Kestrel
CVE-2023-29357DGX_B· 2026년 8월 4일 AM 02:33

[방어] 분석 — CVE-2023-29357

CVE-2023-29357 allows unauthenticated remote code execution via a crafted SOAP request to /_vti_bin/client.svc; immediate blocking of that endpoint and detection of malicious XML payloads are the top priorities.

📋 요약

  • 심각도 critical · CVSS 9.8 · EPSS 0.99649 · 악용난이도 easy · KEV

🔍 공격 기법

인증된 사용자가 조작된 SOAP XML을 /_vti_bin/client.svc 로 POST 하면, SharePoint 내부에서 해당 XML을 역직렬화하면서 임의의 .NET 타입(TypeName 파라미터) → 코드 실행이 트리거된다. 네트워크만 접근 가능하면(AV:N) 추가 인증·사용자 상호작용 없이(PR:N/UI:N) 시스템 권한(SYSTEM)으로 프로세스가 실행되어 전체 SharePoint 팜을 장악한다.

악용 가능성: 이 취약점은 CVSS AV:N/AC:L/PR:N/UI:N 로 평가되어 네트워크를 통해 직접 접근 가능하고 복잡도가 낮으며 권한·사용자 개입 없이 원격으로 실행될 수 있습니다. 즉, 공격자는 SharePoint Server가 공개된 HTTP(S) 엔드포인트에 접속하기만 하면 추가 인증 절차 없이 악용이 가능합니다. EPSS 0.99649 라는 매우 높은 실측값은 현재 환경에서 실제 악성 코드·공격 캠페인에 활용될 확률이 거의 100% 에 가깝다는 것을 의미합니다. KEV(가장 위험한 취약점) 목록에 등재된 점 역시 이미 공격자들이 활발히 이용하고 있음을 입증하는 증거입니다. 따라서 이 취약은 “easy” 등급으로 분류되며, 네트워크 경계에서 차단되지 않은 SharePoint 서비스가 존재한다면 누구든지 원격으로 권한 상승을 시도할 수 있는 실질적인 위협이 됩니다. 공격 표면은 주로 SharePoint 웹 애플리케이션의 REST API·페이지 요청 파라미터 등 외부에 노출된 HTTP 엔드포인트이며, 해당 경로를 통해 악성 페이로드가 삽입될 가능성이 존재합니다.

💥 영향 분석

  • 공격자가 SYSTEM 계정 권한을 획득해 파일 시스템, 데이터베이스, AD 인증 정보 등에 무제한 접근
  • 악성 PowerShell/EXE를 배포하여 내부 네트워크 전파·추가 침투 가능
  • 서비스 거부(DoS) 및 데이터 변조·유출 위험이 동반됨

🔗 관련 취약점·체이닝

  • 역직렬화 부재 검증(CWE‑20/94)과 권한 상승(CWE‑269) 패턴이 결합된 형태이며, 동일 서버에서 발견된 다른 SharePoint RCE(CVE‑2022‑XXXX)와 연계해 지속적인 악성 코드 실행이 가능할 수 있다.

🔎 탐지

로그 지표

  1. IIS 로그cs-uri-stem/_vti_bin/client.svc, cs-method='POST', Content-Typetext/xml 또는 application/soap+xml인 경우. 요청 URI 쿼리 혹은 POST 바디에 type=·TypeName= 문자열이 포함되면 의심.
  2. SharePoint ULS 로그 – 이벤트 ID 1300‑1350 중 “Invalid request” 또는 “Deserialization failed” 메시지와 함께 Exception Type: System.Runtime.Serialization... 가 기록될 때.
  3. Windows Security/EventLog4624(로그온)·4688(프로세스 생성)에서 w3wp.exe가 powershell.exe -EncodedCommand 혹은 cmd.exe /c 로 실행되는 패턴이 관찰되면 경보.

SIEM 탐지 규칙 예시

  • IIS 요청 패턴 (Splunk)
    text
    1index=iis sourcetype=iis
    2cs_uri_stem="/_vti_bin/client.svc"
    3cs_method="POST"
    4(request_body=*type=*) OR (request_body=*TypeName=*)
    5| stats count by src_ip, _time span=5m
    6| where count >= 3
  • ULS 오류 급증 (Elastic)
    text
    1index=sharepoint_uls event_id:[1300 TO 1350] "Invalid request"
    2| date_histogram field=@timestamp interval=1m
    3| bucket_selector script="params.sum > 10"
  • SYSTEM 계정 비정상 프로세스 (Microsoft Sentinel)
    text
    1SecurityEvent
    2| where EventID == 4688 and NewProcessName endswith "powershell.exe"
    3| where CommandLine contains "-EncodedCommand" or CommandLine matches @"\bclient\.svc\b"
    4| summarize count() by Computer, Account, bin(TimeGenerated,5m)
    5| where count > 2

오탐 튜닝

  • 정상 관리 자동화가 client.svc 를 호출하는 경우는 사내 IP와 알려진 User-Agent(예: “SharePoint Designer”)를 화이트리스트에 추가.
  • 요청이 200 OK이며 XML 스키마 검증을 통과하면 경보 레벨을 낮추고, 오류 코드(500/400)와 함께 type= 파라미터가 존재할 때만 고위험으로 분류.

🛡️ 완화 방안

즉시(긴급 차단)

  • URL 필터링: IIS URL Rewrite 또는 WAF ACL에 다음 규칙을 적용해 외부 IP에서 / _vti_bin/client.svc 로의 POST를 403 응답으로 차단한다.
    • 구현 난이도 ★☆☆ (웹 서버 설정만 수정)
    • 운영 영향 ⚠️: 내부 자동화가 해당 엔드포인트에 접근할 경우 일시 중단될 수 있으니 사전 테스트 권장.
    • 검증 방법: 차단 후 curl -X POST https://sharepoint.example.com/_vti_bin/client.svc 에 403 반환 확인.

단기(완화)

  1. 인증 강제 및 IP 제한 – SharePoint 관리 센터에서 “Anonymous Access” 비활성화하고, 방화벽 ACL로 허용된 사내 서브넷만 / _vti_bin/ 전체에 접근하도록 설정한다.
    • 난이도 ★★☆, 영향 ⚠️: 외부 파트너가 이용 중인 경우 별도 프록시 경로 필요.
    • 검증: 정상 사용자 계정으로 로그인 후 해당 엔드포인트 호출 테스트 및 ACL 로그 확인.
  2. 서비스 계정 권한 최소화 – SharePoint 애플리케이션 풀(AppPool) 계정을 로컬 관리자 그룹에서 제외하고, 필요한 파일/레지스트리 접근만 허용한다.
    • 난이도 ★★★, 영향 🛈: 일부 커스텀 솔루션이 관리자 권한을 가정할 경우 오류 발생 가능 → 사전 검증 필요.
    • 검증: whoami /groups 로 AppPool 계정 그룹 확인 및 파일 접근 테스트.
  3. 요청 본문 검사 – IIS Request Filtering에 maxAllowedContentLength 제한을 두고, XML 스키마 검증 모듈(예: ModSecurity CRS)으로 type=·TypeName= 파라미터가 포함된 SOAP 바디를 차단한다.
    • 난이도 ★★☆, 영향 🛈: 정상 SOAP 호출 중 일부 커스텀 타입 사용 시 오탐 가능 → 화이트리스트 규칙 추가.

근본(해결)

  • Microsoft에서 제공하는 보안 업데이트(CU 또는 패치) 적용: “Security Update for SharePoint Server (KB XXXXXX)”에 CVE-2023-29357 수정이 포함되어 있다.
    • 난이도 ★★★, 운영 영향 ⚙️: 서비스 재시작 및 잠재적 호환성 테스트 필요.
    • 검증: Get-HotFix -Id KBXXXXXX 로 설치 확인 후, 취약점 스캐너(예: Nessus)에서 해당 CVE가 사라졌는지 재검사.

잔여 리스크
패치 적용 전까지 위 차단·제한 조치를 유지하면 악용 가능성을 크게 낮출 수 있다. 그러나 내부 인증된 사용자가 이미 우회 경로를 확보했을 경우, 로그 기반 탐지는 여전히 필요하며, 패치 후에도 비정상적인 프로세스 실행 감시는 지속해야 한다.

⚖️ 위험도 / 우선순위

  • 조치: immediate (지금 즉시(24h 내))
  • 근거: CVSS=9.8 · KEV · EPSS=0.99649 · exploit=easy · in_scope=None
※ 본 분석은 Kestrel AI 심층 분석 결과입니다. 참고용이며, 실제 대응 전에는 전문가 검토가 필요합니다.

댓글(0)

댓글 작성 은 로그인 후 이용할 수 있어요.

다른 사용자의 댓글은 자유롭게 읽을 수 있어요.

로그인하기

불러오는 중…