본문 바로가기
Security/정보보안기사

[OWASP 2017] A4 XML 외부 개체(XXE)

by Berasix 2023. 1. 26.
반응형

1. 개요

XML 업로드가 가능하고, XML 문서에 취약한 코드, 의존성, 통합을 공격하는 악의적인 내용을 포함할 수 있는 경우 발생할 수 있다.

오래된 XML 프로세서들에서 처리 시 참조되는 URI에 대해 외부 개체 지정을 허용하여 발생이 가능하다.

SAST(정적분석)와 DAST(동적분석)로 공격이 가능한지 확인할 수 있다.

XML 기반 웹 서비스나 다운스트림 사용 시 공격에 취약하다.

2. 영향

데이터 가져오기, 원격 요청 실행, 내부 시스템 탐지, 서비스 거부 공격 등을 위해 사용할 수 있다.​

3. 취약점 확인

1) 애플리케이션이 직접 XML를 입력 받거나, 신뢰할 수 없는 곳의 XML을 업로드, 신뢰할 수 없는 데이터를 입력할 수 있는가?

2) SOAP(Simple Object Access Protocol)에 DTD(Document Type Definitaions)가 활성화되어 있는가?

3) SSO 의 목적으로 확인 처리를 위해 SAML을 사용하는가?(SAML에서 assertio 확인을 위해 XML 사용)

4) 애플리케이션이 SOAP 1.2 이전 버전을 사용하는가?

4. 시나리오

1) 공격자가 서버에서 데이터를 가져오려고 시도함

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
<!ELEMENT foo ANY >
<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
<foo>&xxe;</foo>

2) 공격자가 ENTITY 라인을 변경하여 서버의 사설망을 찾으려고 함

<!ENTITY xxe SYSTEM "https://192.168.1.1/private" >]>

3) 공격자가 잠재적으로 무한 파일을 포함하여 서비스 거부 공격을 시도

<!ENTITY xxe SYSTEM "file:///dev/random" >]>

 

​5. 보안 대책

1) JSON과 같은 덜 복잡한 데이터 형식을 사용하거나 민감한 데이터를 지양한다.

2) XML 프로세서 패치, 업그레이드, SOAP 1.2 이상 업그레이드

3) 애플리케이션의 모든 XML 파서의 XML 외부 개체와 DTD 처리 비활성화

4) 화이트리스트를 이용한 입력값 검증, 필터링, 검사 구현

5) XML, XSL 파일 업로드 기능 검증

6) SAST로 소스코드에 존재하는 XXE 탐지 혹은 수동 소스코드 리뷰

7) API 보안 게이트웨이, WAF 사용 고려

출처 : OWASP Top Ten Web Application Security Risks | OWASP

* SOAP 에 관한 글

 

 

728x90

댓글