[방어] 분석 — CVE-2019-0604
Critical unauthenticated RCE in SharePoint (CVE-2019-0604) requires immediate blocking of WSP uploads, MFA enforcement for admin accounts, and rapid patching.
📋 요약
- 심각도 critical · CVSS 9.8 · EPSS 0.99825 · 악용난이도 easy · KEV
🔍 공격 기법
SharePoint는 업로드된 .wsp(웹 솔루션 패키지) 파일의 마크업을 검증하지 않아, 원격 사용자가 HTTP POST 요청으로 임의 .wsp 를 전송하면 서버가 해당 패키지를 역직렬화하고 System.Web.UI.Page 객체를 변조한다. 이 과정에서 악성 코드가 실행되어 전체 시스템 권한으로 명령이 수행된다. 인증 여부와 무관하게 네트워크 접근만 가능하면 공격이 성립한다.
악용 가능성: 이 취약점은 AV:N·AC:L·PR:N·UI:N 로 표시된 바와 같이 네트워크를 통해 직접 접근 가능하고, 공격자는 별도의 인증이나 사용자 상호작용 없이 즉시 악성 패키지를 전송해 원격 코드 실행을 달성할 수 있어 난이도가 “easy” 로 평가됩니다. EPSS 0.99825 라는 거의 100%에 가까운 실측 위협 점수는 실제 공격이 발생할 확률이 매우 높다는 것을 의미하며, KEV(공개 악용) 등재 사실은 이미 공격자들이 이 취약점을 활용하고 있음을 입증합니다. 공격자는 SharePoint 서버가 제공하는 애플리케이션 패키지 업로드 엔드포인트(예: /_layouts/15/appcatalog/upload.aspx 또는 REST API 기반 /_api/web/GetFolderByServerRelativeUrl) 를 통해 악성 마크업을 삽입합니다. 이 엔드포인트는 기본적으로 HTTP/HTTPS 포트(80·443) 에 노출되어 있어 외부 네트워크에서 직접 접근이 가능하고, 방화벽이나 프록시가 별도로 차단하지 않는 한 공격 표면이 넓습니다. 취약점이 존재하는 버전의 SharePoint는 내부 혹은 DMZ에 배치된 경우에도 동일하게 악용될 수 있어, 네트워크 경계와 관계없이 모든 서비스 인스턴스가 위험 대상이 됩니다. 따라서 이 취약점은 공격자가 최소한의 사전 준비만으로도 광범위히 악용할 수 있는 고위험 시나리오에 해당합니다.
💥 영향 분석
- 서버 수준에서 임의 .NET 코드 실행 → 전역 관리자 권한 탈취
- 파일 시스템·레지스트리·서비스 제어 등 모든 로컬 자원에 대한 완전 통제 확보
- 추가 악성 웹쉘 배포·데이터 유출·랜섬웨어 침투 등 2차 공격 경로 개방
🔗 관련 취약점·체이닝
- 동일 SharePoint 솔루션 배포 파이프라인을 이용한 CVE-2019-0594(권한 상승)
- 일반적인 .NET 역직렬화 취약점(CWE‑502)과 결합 시 페이로드 변조가 쉬워짐
🔎 탐지
-
로그 지표
- IIS Access 로그:
cs-uri-stem에 “*.wsp” 포함, HTTP method = POST,sc-status≥ 200. - ULS 로그: EventID = “SolutionDeployment”, Category = “SharePoint Solutions”.
- PowerShell‑Operational 로그:
ScriptBlockText에 “Add‑Solution”, “Install‑Solution” 등. - WebDAV 요청 로그: verb = PUT/PROPFIND, URL 경로 포함 “/_catalogs/” 또는 “/_layouts/”.
- IIS Access 로그:
-
SIEM 쿼리 예시 (KQL)
text1// 1) .wsp 파일 업로드 시도 감지2IISLogs3| where csMethod == "POST"4 and csUriStem matches regex @"\.wsp$"5 and scStatus in (200,201,202)text1// 2) SharePoint 솔루션 배포 이벤트 탐지2ULS_Logs3| where Message contains "SolutionDeployment"4 or Message contains "Add‑Solution"text1// 3) PowerShell을 통한 솔루션 설치 시도2SecurityEvent3| where EventID == 41044 and ScriptBlockText matches regex @"\b(Add|Install)-Solution\b" -
오탐 튜닝
- 정상적인 관리자가 배포하는 .wsp 파일은 사전에 허용된 경로와 해시 목록을 화이트리스트에 추가.
sc-status가 404·403인 경우는 차단 이벤트이므로 알림 제외.- PowerShell 로그에서 “Add‑Solution”이지만
UserDomain\Administrator등 신뢰 계정이면 경고 레벨 낮춤.
🛡️ 완화 방안
| 단계 | 조치 내용 | 구현 난이도 | 운영 영향 | 검증 방법 |
|---|---|---|---|---|
| 즉시(긴급 차단) | 웹 서버 requestFiltering에 .wsp 확장자 차단 규칙 적용 (<add fileExtension=".wsp" allowed="false"/>). <br>필요 시 URLRewrite 로 / _layouts/15/*.wsp 경로 차단. | 낮음 (IIS 설정만 수정) | 업로드 기능 일시 중단, 기존 정상 솔루션은 배포 불가 → 비상 상황에서만 적용 | curl -X POST http://sharepoint/site/_catalogs/xxx.wsp 로 403 응답 확인 |
| 단기(완화) | 1. 관리 계정에 MFA 강제 적용·불필요한 서비스 계정 비활성화.<br>2. 파일 무결성 모니터링 도입 – 지정 폴더(/_catalogs/, /_layouts/15/)에 신규 .wsp 생성 시 알림.<br>3. 네트워크 세분화: SharePoint 웹 프론트엔드와 백엔드 DB 사이에 방화벽 규칙으로 외부 IP의 HTTP PUT·POST 제한. | 중간 (AD 정책, 파일 무결성 솔루션, 방화벽 ACL) | MFA 적용 시 일부 관리자 로그인 절차 증가; 파일 모니터링은 CPU/IO 부하 최소하지만 경보 관리 필요. | - AD 로그에서 MFA 성공 여부 확인.<br>- 파일 무결성 툴이 신규 .wsp 감지 시 알림 발생 테스트.<br>- 방화벽 로그에 차단된 PUT 요청 기록 검증. |
| 근본(해결) | Microsoft가 제공한 보안 업데이트(KB 4474419 등) 적용 후 SharePoint 재시작.<br>패치 전 테스트 환경에서 기능 검증·롤백 계획 수립.<br>가능하면 솔루션 배포 기능 자체를 비활성화하고 필요 시만 별도 승인 절차 도입. | 높음 (패치 적용, 서비스 중단 및 테스트) | 서비스 재시작으로 가용성 일시 감소; 패치 전후 호환성 검증 필요. | - Patch 설치 후 `Get-SPFarm |
잔여 리스크: 패치 적용 전까지는 파일 무결성 모니터링·네트워크 차단이 핵심; 이미 침투된 세션이나 탈취된 인증 토큰은 완전 차단이 어려우므로 사고 발생 시 즉시 계정 비밀번호 재설정 및 MFA 재등록 절차를 수행해야 함.
인시던트 대응 플레이북 요약
- 경보 발생 → 해당 요청 IP와 사용자 계정 확인.
IIS·ULS로그에서 동일 파일 업로드 시도 여부 전수 조사.- 신규 .wsp 파일이 존재하면 즉시 격리(파일 삭제) 및 시스템 재부팅.
- 관련 계정 MFA 적용 상태 점검, 필요 시 비활성화 후 재인증.
- 패치가 가능해지는 대로 긴급 업데이트 적용.
⚖️ 위험도 / 우선순위
- 조치: immediate (지금 즉시(24h 내))
- 근거: CVSS=9.8 · KEV · EPSS=0.99825 · exploit=easy · in_scope=None