[공격] 분석 — CVE-2020-1147
Immediate remediation of CVE-2020-1147 is mandatory as it allows RCE via unvalidated XML markup in critical .NET infrastructure, with an extremely high actual exploitation probability (EPSS 0.93966).
📋 요약
- 심각도 high · CVSS 7.8 · EPSS 0.93966 · 악용난이도 easy · KEV
🔍 공격 기법
본 취약점은 .NET Framework, SharePoint Server, Visual Studio가 XML 입력값의 소스 마크업을 적절히 검증하지 않아 발생하는 RCE이다. 공격자는 특수하게 조작된 XML 파일을 타겟 시스템이 처리하도록 유도하여 임의 코드를 실행한다.
- 공격 표면 및 트리거:
- 노출 엔드포인트: 외부에서 접근 가능한 SharePoint 웹 서비스, Visual Studio 프로젝트 파일(.csproj, .sln 등)을 통한 협업 환경, XML 입력을 받는 .NET 기반 API 엔드포인트.
- 트리거 조건:
XmlDocument또는XmlTextReader와 같은 클래스가 DTD(Document Type Definition) 처리가 활성화된 상태에서 외부 입력 XML을 파싱할 때 발생한다.
- 공격 체인 (Attack Chain):
- 정찰: 타겟 서버의 .NET Framework 버전 및 SharePoint 사용 여부 확인.
- 초기 접근 (Initial Access):
AV:L/UI:R벡터에 따라, 공격자는 사용자에게 악성 XML 파일을 다운로드하게 하거나(Phishing), SharePoint의 파일 업로드 기능을 통해 조작된 XML을 서버에 배치한다. - 실행 (Execution): 애플리케이션이 해당 XML을 파싱하는 순간, 마크업 내부에 삽입된 악성 페이로드가 트리거된다. 추정: 단순한 XXE(XML External Entity)를 넘어, 특정 가젯 체인을 통한 Deserialization 취약점으로 이어져 메모리 상의 객체 상태를 조작하고 RCE를 달성한다.
- 권한 획득 및 영향: 실행 컨텍스트는 해당 프로세스(예:
w3wp.exe또는 Visual Studio 프로세스)의 권한을 따른다. SharePoint의 경우 서비스 계정 권한으로 코드가 실행된다.
- CVSS 벡터 분석:
AV:L/AC:L/PR:N/UI:R은 로컬 접근이나 사용자 상호작용이 필요함을 뜻하지만, EPSS 0.93966(실측 악용 예측치)과 KEV 등재 사실은 실제 환경에서 사회공학적 기법이나 파일 업로드 경로를 통해 이 제약 조건이 매우 쉽게 극복되고 있음을 시사한다.
악용 가능성: 본 취약점은 XML 입력값의 소스 마크업 검증 미흡을 이용한 RCE로, 공격 난이도는 매우 낮으며 악용 가능성은 극도로 높습니다. AV:L과 UI:R 벡터가 결합되어 있어, 공격자는 타겟 사용자가 특수하게 조작된 XML 파일을 열도록 유도하는 사회공학적 기법(Phishing)을 통해 초기 진입점을 확보합니다. AC:L 및 PR:N 조건은 별도의 권한 없이 파일 실행만으로 트리거됨을 의미하며, 이는 내부망 침투 후 횡적 이동(Lateral Movement) 단계에서 매우 치명적인 무기가 됩니다. 특히 EPSS 점수가 0.93966에 달하고 KEV에 등재되었다는 점은 이론적 위험을 넘어 이미 야생(In-the-wild)에서 공격 도구가 보편화되어 실전 배치되었음을 증명합니다. 주요 공격 표면은 .NET Framework 기반 애플리케이션, SharePoint Server의 파일 업로드/처리 엔드포인트, Visual Studio의 프로젝트 파일 로더 등 XML 파싱이 발생하는 모든 인터페이스입니다. 결과적으로 공격자는 조작된 마크업을 통해 런타임에 임의 코드를 실행함으로써 시스템 권한을 획득하고 내부 자원을 완전히 장악할 수 있습니다.
💥 영향 분석
- 서버 탈취: SharePoint Server와 같은 핵심 인프라가 장악될 경우, 기업 내부 데이터 유출 및 서비스 중단 가능성이 높다.
- 권한 확장: 서버 점유 후 메모리 덤프나 설정 파일 접근을 통해 Active Directory(AD) 자격 증명을 탈취, 도메인 전체 권한으로 상승할 수 있는 교두보가 된다.
🔗 관련 취약점·체이닝
- Deserialization 체이닝: 추정: XML 파싱 단계에서 특정 타입의 객체가 인스턴스화되는 과정(Insecure Deserialization)과 결합하여 샌드박스를 우회하고 임의 명령을 실행하는 가젯 체인으로 연결될 가능성이 높다.
- 권한 상승 패턴: [정보 노출/초기 접근] $\rightarrow$ [XML 마크업 취약점 통한 RCE] $\rightarrow$ [서비스 계정 권한 획득] $\rightarrow$ [AD 자격 증명 탈취 및 도메인 관리자 권한 상승] 순의 체이닝이 전형적이다.
- 우회 경로: 단순한 DTD 차단만으로는 부족하며, 애플리케이션 내부에서
XmlResolver를 통해 외부 리소스를 호출하는 로직이 남아있을 경우 이를 통한 SSRF 및 RCE 체이닝이 가능할 것으로 추정된다.
🔎 탐지
- 네트워크/WAF: HTTP 요청 바디나 업로드 파일 내에
<!DOCTYPE,<!ENTITY등 DTD 선언문이 포함된 패턴 감시. - 호스트 로그: .NET 프로세스(
w3wp.exe,devenv.exe)가 비정상적인 자식 프로세스(예:cmd.exe,powershell.exe)를 생성하는 행위 모니터링. - 런타임 감시:
XmlResolver클래스의 외부 리소스 호출 이벤트 및 예외 로그 분석.
🛡️ 완화 방안
- 즉시 조치:
- 외부 노출된 SharePoint 엔드포인트의 XML 입력 경로 전수 조사 및 불필요한 기능 차단.
- 코드 레벨에서
XmlReaderSettings.DtdProcessing = Prohibit설정을 적용하여 DTD 처리 원천 차단.
- 근본 해결: 다중 소스 교차검증 결과 영향 범위가 .NET Framework, SharePoint, Visual Studio 등 광범위하므로, 해당 제품군에 대한 최신 보안 패치를 즉시(24h 내) 적용. (우선순위
immediate결정 근거: KEV 등재 및 EPSS 0.93966의 실측 악용 위험도 반영)
⚖️ 위험도 / 우선순위
- 조치: immediate (지금 즉시(24h 내))
- 근거: CVSS=7.8 · KEV · EPSS=0.93966 · exploit=easy · in_scope=None