Part 4 : OWASP 2017 TOP 10 RC2 A4 - XML 외부 개체[External Entity, XXE]

개발/OWASP 2017 2018.01.22 댓글 임통끼
728x90

 

A4 : XML 외부 개체[External Entity, XXE]

 

 

* 정의

XXE란 XML external entities(XML 외부개체의 준말)  

: XML문서에서 동적으로 외부 url의 리소스를 포함시킬 수 있는 외부 엔티티(Entity, 이하 엔티티)를 사용할 때 발생합니다. 외부 엔티티는 파일 URL 처리기, 패치되지 않은 Windows 서버의 내부 SMB파일 공유, 내부 포트 검색, 원격 코드 실행 및 Billion Laughs 공격과 같은 서비스 거부 공격과 내부 파일 공개에 악용될 수 있습니다. 

 

* 안드로이드 스튜디오, 인텔리제이(IntelliJ),이클립스, APK툴이며, 대부분의 안드로이드 통합 개발 환경(IDE)에서도 취약점이 발견됩니다. 이 취약점을 통틀어 파스드로이드(ParseDriod)라고 보안 전문 업체 체크포인트가 명시했습니다. 주로 XML 외부 개체 취약점이 있다는 것이 공통점입니다. (프로그램 내에서 XML파일을 분석 parse 할 때, 설정된 XML 분석기 parser가 외부 개체 레퍼런스를 비활성화 시키는 데에서 비롯된 취약점입니다.)

 


 

* 대응방법

1. XML Parser 에서 DOCTYPE 태그를 사용하지 않도록 설정합니다. 

2. 코드 상 DOCTYPE 태그를 포함하는 입력을 차단하도록 입력 검증을 사용합니다. 

3. XML 파서에서 외부 엔티티를 금지해야 합니다. 

Ex) JAXP와 Xerces와 같은 파서는 기본적으로 lib.xml에서 확장 엔티티를 해제 해야합니다. 

4. 엔티티 기능을 비활성화 합니다. 

   Libxml_use_internal_errors(true)  

 : Xml 파싱 도중 오류가 발생하였을 경우, 오류 메시지를 출력하지 않게 해주는 함수입니다. 오류 메시지를 해커에게 노출시키지 않는 것도 도움된다. 

   Libxml_disable_entity_loader(true)  

 : 외부 리소스를 불러오지 못하게 하는 함수

 

 

 


 

* 실제 사례

 

[데이터넷] XML 취약점 악용 온라인게임 악성코드 유포

2012년 07월 03일 17:11:22 

 

안랩(대표 김홍선)은 마이크로소프트(Microsoft)의 XML 코어 서비스 취약점(CVE-2012-1889)을 악용이 계속되고 있다고 밝혔다. 코드를 변형한 XML 코어 서비스 취약점 악용이 지속돼 취약한 웹 사이트를 중심으로 유포가 진행되고 있어 특별한 주의가 요청된다는 것이다. 

 

출처 : http://www.datanet.co.kr/news/articleView.html?idxno=61228

 

그럼 Part 5로 넘어갑니당 ~

 

 

 

반응형

댓글