
Microsoft 온프레미스 SharePoint 서버를 대상으로 한 ‘ToolShell’ 공격과 관련해 커뮤니티와 업계가 보여준 훌륭한 노력에 경의를 표합니다. 이 글의 목적은 그러한 훌륭한 작업을 바탕으로, 온프레미스 SharePoint 서버를 사용하는 Sumo Logic 고객이 자체 환경에서 증거를 조사하고 식별할 수 있도록 지원하는 것입니다.
사고 개요
2025년 7월 18일, Eye Security1은 온프레미스 SharePoint 서버에서 의심스러운 .aspx 파일이 작성되고 디지털 머신 키가 추출되는 공격을 확인했습니다. 공격 체인 분석 결과, 이전의 취약점 및 Microsoft에서 발표한 패치와 관련된 두 가지 취약점이 확인되었습니다.
공격자는 심각한 원격 코드 실행 취약점(CVE-2025-53770)과 서버 스푸핑 취약점(CVE-2025-53771)을 이용해 온프레미스 SharePoint 서버(2013, 2016, 2019, Subscription Edition)에 웹셸을 배포해 서버의 디지털 머신 키에 접근하는 것을 목표로 했습니다.
2025년 7월 19일, Microsoft는 SharePoint 서버용 긴급 OOB(Out-of-band) 패치를 배포하고, SharePoint 서버 패치 적용, SharePoint Server ASP.NET 머신 키 교체, 탐지 및 헌팅을 위한 추가 권고사항을 MSRC 블로그를 통해 안내했습니다.
Sumo Logic에서의 헌팅 및 탐지 방법
공격을 구성 요소별로 나누어 분석하면 검색과 Cloud SIEM 탐지를 구축하는 데 도움이 됩니다.
Sumo Logic 플랫폼에서 고객 환경의 원시 로그와 Sumo Logic Cloud SIEM의 정규화된 레코드에 대한 예시 검색을 사용해 보겠습니다.
익스플로잇 체인을 시작하는 초기 접근은 ToolPane.aspx로의 POST 요청이며, 이는 고유한 URI 패턴으로 로그에서 식별할 수 있습니다. 아래의 기본 쿼리는 이러한 방식으로 SharePoint와 상호작용을 시도한 흔적을 헌팅하는 데 사용할 수 있습니다.
_sourceCategory=prod/web/iis "ToolPane"
| parse "* * * * * * * * * * * * * * *" as date time cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status time-taken
| where cs-method matches "POST"
AND cs-uri-stem matches "*/_layouts/*/ToolPane.aspx*"
클라우드 SIEM 레코드 검색:
_index=sec_record_network "ToolPane"
| where http_method matches "POST"
AND %"fields.cs-uri-stem" matches "*/_layouts/*/ToolPane.aspx*"
AND http_referer_path matches "/_layouts/SignOut.aspx"
http_referrer_path = /_layouts/SignOut.aspx는 익스플로잇 체인의 또 다른 핵심 요소입니다. 스푸핑된 리퍼러(referrer) 값이 인증 제어를 우회하도록 만들기 때문입니다.
다음은 익스플로잇 체인의 핵심 악성 요소인 웹셸을 탐지하기 위한 검색 예시입니다. 공격자는 이 웹셸을 사용해 대상 SharePoint 서버에서 머신 키를 추출하는 등 여러 작업을 수행한 것으로 관찰되었습니다.
Sumo Logic 검색:
_sourceCategory=prod/web/iis
| parse "* * * * * * * * * * * * * * *" as date time cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status time-taken
| where cs-uri-stem matches /spinstall\S?\.aspx/
AND cs-method = "GET"
클라우드 SIEM 레코드 검색:
_index=sec_record_network "aspx"
| where http_method = "GET"
AND %"fields.cs-uri-stem" matches /spinstall\S?\.aspx/
위의 웹셸은 공격자가 대상 서버에서 목표를 실행할 수 있도록 해줍니다. 이러한 활동은 방어자들이 이미 지적했듯 SharePoint 서버의 정상 동작에서 벗어나는 중요한 이상 행위이며 탐지가 가능합니다.
첫째, cmd.exe의 상위 프로세스로 w3wp.exe가 나타나는지를 확인하겠습니다. 이 검색 결과는 이후 PowerShell 실행 및 이 공격에서 사용된 웹셸 .aspx 파일과 연관된 검색에 활용됩니다.
Sumo Logic 검색:
_sourceCategory=windows_event_logs
| json field=_raw "EventData.CommandLine" as commandLine
| json field=_raw "Computer"
| json field=_raw "EventData.ParentImage" as parentImage
| json field=_raw "EventData.Image" as image
| where toLowerCase(Image) matches "*cmd.exe"
AND toLowerCase(parentImage) matches "*w3wp.exe"
| count by Computer,parentImage,image,commandLine
클라우드 SIEM 레코드 검색:
_index=sec_record_endpoint
| where toLowerCase(parentBaseImage) matches "*w3wp.exe"
AND toLowerCase(baseImage) matches "*cmd.exe"
| count by device_hostname,parentBaseImage,baseImage,commandLine
클라우드 SIEM 활용 팁: 위의 쿼리를 사용하면 보다 면밀한 조사(및 SIEM 알림에서의 심각도 상향 조정)가 필요한 호스트를 찾을 수 있습니다.
Cloud SIEM 고객에게 유용한 매치 리스트(Match Lists) 기능을 사용하면 정규화된 레코드에 메타데이터를 추가할 수 있습니다. 또한 이는 민감한 장비를 추적하고 빠르게 레코드를 검색하는 데에도 유용합니다. 추가로 엔터티 태깅(Entity Tagging) 및 엔터티 중요도(Entity Criticality) 기능도 사용할 수 있습니다. 엔터티 중요도를 높이면 해당 엔터티에 대한 시그널의 심각도 계산이 상향 조정됩니다.
이러한 모든 기능을 사용하면 레코드 검색에서 사용자 환경의 SharePoint 서버를 빠르게 식별하고(매치 리스트 사용), SharePoint 서버를 태깅하여 엔터티 중요도를 증가시키며, Sumo Logic Cloud SIEM에서 관련 시그널과 인사이트가 생성되도록 할 수 있습니다.
둘째, 위 호스트에서 발생한 PowerShell 실행을 검색합니다.
Sumo Logic 검색:
_sourceCategory=windows_event_logs
| json field=_raw "Computer"
| json field=_raw "EventData.ParentImage" as parentImage
| json field=_raw "EventData.Image" as image
| where Computer IN ("[insert list of hosts above]","...")
AND toLowerCase(image) matches "*powershell.exe"
클라우드 SIEM 레코드 검색:
_index=sec_record_endpoint
| where device_hostname IN ("[insert list of hosts above]","...")
AND toLowerCase(baseImage) matches "*powershell.exe"
검색 시 주의 사항: PowerShell은 command line을 통해 다양한 방식으로 실행될 수 있습니다. 위 검색 방법은 그중 한 가지이며, 이 공격 관련 참고 자료에서도 반복적으로 나타난 방식입니다. 시간과 인시던트 상황이 허락하는 범위에서, 이 공격의 영향 범위에 포함될 수 있는 다른 시스템까지 심층 조사할 것을 권장합니다.
프로세스의 세 번째 단계는 네트워크 전체의 호스트 파일 시스템에 웹셸이 기록되는 단계입니다.
Sumo Logic 검색:
"aspx"
| json field=_raw "EventData.TargetFilename" as targetFilename nodrop
| json field=_raw "EventData.CommandLine" as commandLine nodrop
| json field=_raw "Computer" nodrop
| json field=_raw "EventData.ParentImage" as parentImage nodrop
| json field=_raw "EventData.Image" as image nodrop
| where toLowerCase(targetFilename) contains "aspx"
클라우드 SIEM 레코드 검색:
_index=sec_record_endpoint aspx
| where baseImage matches "*powershell.exe"
AND changeTarget contains "aspx"
[보너스 내용] 위 검색을 변형하여, 엔드포인트 레코드 내에서 작성된 .aspx 파일의 다른 생성 원천을 찾는 방법입니다.
클라우드 SIEM 레코드 검색:
_index=sec_record_endpoint aspx
| where changeTarget contains "aspx"
이 검색은 정규화된 엔드포인트 레코드에서 .aspx 파일 생성 여부를 식별할 수 있습니다. 하지만 PowerShell이 해당 파일을 작성한 경우로만 제한되지는 않습니다. 이 분석은 헌팅 목적이며, 지속적인 운영을 위한 것이 아니라 매우 특정한 탐색 상황에서 사용하기 위한 것입니다.
참고: 쿼리의 범위를 _sourceCategory= (raw logs)로 한정하고 sec_record 인덱스를 활용하는 방식은 정확하고 빠른 검색에 매우 유용하므로 적극 권장합니다. 그러나 여러 소스 범주에 걸쳐 의심스러운 활동을 찾는 경우, 처음에는 넓게 시작해 빠르게 활동을 식별한 뒤 필요에 따라 범위를 좁히는 방식도 효과적입니다.
이러한 쿼리는 영향받은 SharePoint 인프라 전체를 완전히 탐색하기 위한 목적이 아닙니다. 대신, 잠재적으로 영향을 받은 환경에서 조사를 빠르게 진행할 수 있도록 돕는 것을 목표로 합니다.
Sumo Logic 클라우드 SIEM 탐지
영향을 받은 시스템(및 관련 엔터티)의 시그널과 인사이트를 식별하고 대응하기 위해 Sumo Logic 클라우드 SIEM 고객 환경에서는 아래와 같은 규칙들이 실행되고 있습니다.
클라우드 SIEM 규칙 중 아래 항목들은 대상 SharePoint 서버에서의 의심스러운 실행 활동에 초점을 맞추고 있으며, 이는 SharePoint 전반에서 발생하는 다양한 활동(일부는 더 일반적임)을 탐지하도록 설계되어 있습니다.
앞서 설명했듯이, 클라우드 SIEM의 엔터티 태깅(Entity Tagging) 및 매치 리스트(Match Lists) 기능은 SharePoint 서버를 식별하고 그 심각도를 높이는 데 매우 유용한 도구입니다.
| 클라우드 SIEM 규칙 ID | 규칙명 |
| MATCH-S00164 | 웹 서버에서 생성된 의심스러운 셸(Shell) |
| MATCH-S00539 | 의심스러운 프로세스를 실행하는 웹 서버* |
| FIRST-S00010 | 해당 컴퓨터에서 최초로 관찰된 PowerShell 실행 |
| MATCH-S00136 | PowerShell 인코딩 명령 |
* MATCH-S00539 규칙은 웹 서버에서 실행된 프로세스를 범위 내에서 탐지하기 위해 ‘web_servers’ 매치 리스트를 생성하고 해당 목록을 채워 넣어야 합니다. 매치 리스트 생성 방법은 여기서 확인하실 수 있습니다.
위협 인텔리전스는 신규 위협 또는 신흥 위협을 탐지하는 데 핵심 요소입니다. 이번 공격과 관련해서도 여러 침해 지표(IOC)가 공유되었습니다. SharePoint 인프라와 관련된 위협 인텔리전스(Threat Intel) 매치를 확인해 조사가 필요한 가능성 있는 이벤트를 탐색할 것을 권장합니다. 이 문서 작성 시점 기준으로 관련 IOC는 블로그를 통해 공유되었고, 아직은 더 큰 규모의 위협 피드에서 보이지는 않습니다.
| 클라우드 SIEM 규칙 ID | 규칙명 |
| MATCH-S01023 | 위협 인텔리전스 – 위협 피드 IP에서 유입된 트래픽 (신뢰도 높음) |
| MATCH-S01027 | 위협 인텔리전스 – 위협 피드 IP에서 유입된 트래픽 (신뢰도 보통) |
| MATCH-S01025 | 위협 인텔리전스 – 위협 피드 IP에서 유입된 트래픽 (신뢰도 낮음) |
| MATCH-S01000 | 위협 인텔리전스 – MD5 일치 |
| MATCH-S01003 | , 위협 인텔리전스 – SHA1 일치 |
| MATCH-S01004 | 위협 인텔리전스 – SHA256 일치 |
Sumo Logic의 위협 인텔리전스를 사용하면 고객이 자체 지표를 업로드할 수 있을 뿐 아니라, 사용자 정의 소스(custom sources)로부터 위협 인텔리전스를 수집할 수도 있습니다. 커뮤니티에 공유된 지표가 많지 않은 상황에서는 클라우드 SIEM 규칙에 대한 위협 인텔리전스 소스를 만드는 것이 위 규칙들에 빠르게 반영하고 적용하는 데 유용합니다. 또한 고객이 직접 생성한 사용자 정의 소스를 활용해 로컬 위협 인텔리전스 규칙을 만들 수도 있습니다. (예시: hasThreatMatch([srcDevice_ip, file_hash_md5, file_hash_sha256], source=”toolshell iocs”)
로컬 규칙 개발을 위한 탐지 이론
제안 아래는 이 공격의 요소를 탐지하기 위해 Cloud SIEM 매치 표현으로 변환한 탐지 이론의 예시입니다. 이를 참고하여 사용자 환경에 맞는 규칙을 직접 개발하는 데 도움이 될 것입니다.
Cloud SIEM을 통한 익스플로잇 체인의 초기 접근(POST 요청)
http_method = 'POST'
AND http_response_statusCode IN (200, 302)
AND http_referer_path MATCHES /(?i)_layouts\/1[56]\/signout\.aspx$/
AND fields['cs_uri_stem'] MATCHES /(?i)_layouts\/1[56]\/toolpane\.aspx$/
탐지 이론: 공격의 초기 접근을 시작시키고 취약한 시스템에 웹셸 설치로 이어지는 POST 요청을 탐지합니다.
Cloud SIEM 실행 파일이 IIS 디렉토리에 추가된 경우
action = "FileCreate"
AND changeTarget MATCHES /(?i:\\wwwroot\\|\\windows\\microsoft\.net\\framework\\|\\microsoft shared\\web server extensions\\).+\.(?i:as[hmp]x|cshtml)$/
AND baseImage NOT MATCHES /(?i)(?:\\w3wp|\\msdeploy|\\svchost|\\explorer)\.exe$/
탐지 이론: IIS 디렉토리에 실행 파일(여기서는 웹셸)이 기록되는 FileCreate 이벤트를 탐지합니다.
GET 요청을 통한 Cloud SIEM의 웹셸 상호작용:
http_method = 'GET'
AND http_response_statusCode IN (200,302)
AND fields['cs_uri_stem'] MATCHES /(?i)_layouts\/1[56]\/spinstall\d{0,2}\.aspx/
탐지 이론: 공격자가 POST 기반 익스플로잇으로 시스템을 이미 침해한 후, 목표 서버에서 목적 수행을 위해 웹셸과 상호작용하는 요청을 탐지합니다.
이러한 탐지 이론은 로컬 탐지 규칙을 빠르게 작성할 수 있도록 제공된 프로토타입으로, 의심되는 취약 환경을 탐지하고 조사하는 데 도움을 줍니다. 이들은 Sumo Logic Cloud SIEM에서 매치 표현으로 실행되도록 특별히 설계되었으며, 앞서 공유된 검색과 유사한 결과를 얻도록 조정해 사용할 수 있습니다.
권장 사항
Microsoft는 해당 취약성이 사용자 환경에서 악용되는 것을 방지하는 방법과 SharePoint 서버가 침해된 경우의 대응 방법에 관한 상세한 가이드를 제공합니다.
SharePoint 취약성의 악용은 매우 쉽습니다. 따라서 환경 내에 취약한 SharePoint 서버가 있다면 해당 서버에 침해가 발생했는지, 침해된 경우 손상의 범위는 물론 필요한 완화 조치가 무엇인지 파악해야 합니다. 공격자가 SharePoint 서버를 성공적으로 침해하면 해당 서버를 기반으로 환경 내 다른 자산을 피벗할 수 있습니다. 이번 블로그에서 소개한 쿼리는 침해가 발생했는지를 판단하는 데 도움이 될 수 있습니다.
지금까지 온프레미스 SharePoint 서버를 대상으로 한 현재 진행 중인 공격에 대한 간단한 분석과 타임라인, 그리고 Sumo Logic을 사용하여 관련 의심 활동을 탐지하고 검색하는 방법을 살펴보았습니다. 이 주제와 관련하여 더 자세한 사항을 원하시면 아래의 추가 자료를 참고해 주시기 바랍니다.
그리고 아직 클라우드 SIEM을 사용하고 있지 않다면, 이와 같은 위협을 탐지하고 대응하는 데 클라우드 SIEM이 어떻게 도움이 되는지 데모를 예약하여 자세히 알아보세요.
참고 자료 및 추가 리소스
NIST 취약성 정보:
영향을 받은 SharePoint 고객을 위한 Microsoft MSRC 블로그:
공격을 최초 보고한 Eye Security의 블로그 게시물:
공격에 대한 사이버 보안 커뮤니티 리소스 및 보고서:
- https://www.crowdstrike.com/en-us/blog/crowdstrike-detects-blocks-sharepoint-zero-day-exploitation/
- https://www.thawd.com.sa/post/cve-2025-53770-unauthenticated-sharepoint-rce-toolshell-exploit-uncovered
- https://blog.qualys.com/vulnerabilities-threat-research/2025/07/21/toolshell-zero-day-microsoft-rushes-emergency-patch-for-actively-exploited-sharepoint-vulnerabilities
- https://www.microsoft.com/en-us/security/blog/2025/07/22/disrupting-active-exploitation-of-on-premises-sharepoint-vulnerabilities/
- https://unit42.paloaltonetworks.com/microsoft-sharepoint-cve-2025-49704-cve-2025-49706-cve-2025-53770/
- https://www.rapid7.com/blog/post/etr-zero-day-exploitation-of-microsoft-sharepoint-servers-cve-2025-53770/


