2009-12-15 5 views
10

xml은 SOA (서비스 지향 응용 프로그램)의 백본이었으며 향후에 유용 할 것입니다. xml은 쉽고 유연하기 때문에 쉽게 공격받을 수 있으며 공격자는 자신의 목적에 맞게 사용할 수 있습니다. 공격의 일부로 강제적 인 구문 분석 공격, xml 외부 엔티티 (XEE) 공격, xml dos (xdos) 공격, xml 폭탄입니다.
누구나 이러한 공격에 대해 자세히 알 수 있습니다.
어떻게 이러한 공격을 단일 시스템에서 실제로 시뮬레이트 할 수 있습니까?xml 취약점

+3

학업 성취도와 비슷합니다. – Emyr

답변

18

는 먼저 우리는 악용하는 기능에서 공격의 효과을 구별 할 필요가있다. 이용 될 수있는 XML의

특별한 기능은

  • XML 엔티티 파서와 검증의
  • 독점 확장
  • 순환/순환 참조
  • 원격 액세스

효과있다 둘 중 하나 일 수 있습니다.

  • DOS
  • 정보 공개

나는 "폭탄"의 percise 정의는 없다고 생각하지만, 특히 "컴팩트"하고있는 "팽창"공격을 의미합니다. "강제적 인 구문 분석 공격"은 파서를 압도하기 위해 XML 모델의 특성을 이용합니다.

아래의 예는 XML Denial of Service Attacks and Defenses에서 가져온 것입니다. 또한 프랑스어를 이해하는 경우 우수한 잡지 "La security des web services"을 읽어보십시오.

예 1

당신이 50'000이있는 경우는 메모리

<?xml version="1.0"?> 
<!DOCTYPE kaboom [ 
    <!ENTITY a "aaaaaaaaaaaaaaaaaa..."> 
]> 
<kaboom>&a;&a;&a;&a;&a;&a;&a;&a;&a;...</kaboom> 

을 배출하기 때문에 DOS 결과 엔티티를 사용하는 폭탄 "AAA ... AAAA"및 50'0000 &a:&a;...&a;는 2백킬로바이트의 페이로드 메모리

예 2

0 2기가바이트 이상으로 확장

엔티티는 인증되지 않은 방식으로 다른 파일에 액세스하는 데 사용될 수 있습니다. 이것은 정보 유출로 이어집니다.

<?xml version="1.0"?> 
<!DOCTYPE letter [ 
    <!ENTITY file SYSTEM "/sensitive.txt" > 
]> 
<tag> &file; </tag> 

예 3

원격 리소스에 액세스하기 위해 특정 파서의 능력을 사용하여 (현재 파일 bigfile.xml 2GB의이 아마 DOS로 연결됩니다. 경우 어떻게되는지 파악 이동 http://www.ibm.com/developerworks/xml/library/x-tipgentity.html)를 참조하십시오.

<?xml version="1.0"?> 
<!DOCTYPE letter [ 
    <!ENTITY file SYSTEM "http://www.mysite.com/bigfile.xml" > 
]> 
<tag> &file; </tag> 

예 4

이 재귀 메모리 배기와 아마 DOS로 이어질 것입니다.

<!ENTITY companyname "Contoso Inc."> 
<!ENTITY divisionname "&companyname; Web Products Division"> 

이 학업이 경우, 당신은 또한 당신이 등의 공격으로부터에게 자신을 보호 할 수있는 방법에 대해 생각해야합니다.

+0

아마도 여기에 둔한 사람 이겠지만 예제 4에서 누군가가 재귀를 설명 할 수 있습니까? 내가 말할 수있는 한, '& companyname;'은 "Contoso Inc."로 확장 될 것입니다. 및 & divisionname;은 "Contoso Inc. 웹 제품 부문"으로 확장 될 예정입니다. 이들 중 하나가 어떻게 문제를 일으킬 수 있는지 나는 알지 못합니다. –

+0

@skamamishossifrage 예제를 가져온 링크로 이동하면 훨씬 더 명확한 설명을 얻을 수 있습니다. 재귀에 대해 여기에 주어진 예제는 기사에서 재귀 예제가 아니라 간단한 중첩 예제입니다. 또한 재귀 공격은 파서가이 기사에서 설명한대로 유효하지 않은 XML을 허용하는 경우에만 작동합니다. – JimmyJames