SharePoint ゼロデイ脆弱性 ToolShell:脅威ハンティング・クエリや緩和策などが公開される

Microsoft Releases Mitigations and Threat Hunting Queries for SharePoint Zero-Day

2025/07/22 CyberSecurityNews — 世界中の数千の組織が、Microsoft SharePoint サーバーの2つの深刻な脆弱性を悪用するサイバー攻撃を受けており、緊急警告と緊急パッチの適用が政府から促されている。先週末に Microsoft が発表したのは、オンプレミス環境の SharePoint サーバに存在する2つのゼロデイ脆弱性 CVE-2025-53770/CVE-2025-53771 が、攻撃者により悪用されている状況である。

この攻撃チェーンは、セキュリティ研究者により “ToolShell” と名付けられた。2025年7月18日以降において、世界中の多数の組織に対して攻撃が展開され、被害が拡大しているが、その中には、米国の連邦機関/大学/エネルギー企業なども含まれている。

ToolShell 攻撃チェーンは、2つの脆弱性 CVE-2025-53770/CVE-2025-53771 の組み合わせにより構成されるものだ。そこで、中心的な役割を果たすのが脆弱性 CVE-2025-53770 であり、深刻度 Critical (CVSS:9.8) と評価されている。この脆弱性は、信頼できないデータに対する、安全が確保されないデシリアライズに起因し、未認証によるリモートコード実行を可能にするものだ。

もう一つの脆弱性 CVE-2025-53771 (CVSS 6.3) は、攻撃者に対して HTTP ヘッダーの操作を許すものだ。その結果として、SharePoint のサインアウト・ページを指す、偽の Referer ヘッダーを取り込んだ、悪意のリクエストを作成する攻撃者に対して、認証のバイパスを許してしまう。

7月20日に、米国の CISA (Cybersecurity and Infrastructure Security Agency) は、脆弱性 CVE-2025-53770 を KEV (Known Exploited Vulnerabilities) カタログに追加し、連邦政府機関に対して 24 時間以内に緩和策を講じるよう通達した。

CISA の代理事務局長である Chris Butera は、信頼できるパートナーから警告を受けた同機関が、速やかに Microsoft と連携して、その対応に当たったことを発表している。

その一方で、Check Point Research の Director of Threat Intelligence である Lotem Finkelstein は、「この脅威は、緊急の高い進行中のものである。7月7日以降において、政府/通信/テクノロジー分野を標的とする、多数の侵害試行を確認している」と警告を発している。

セキュリティ研究者たちの推計によると、世界中で 10,000台以上の SharePoint サーバが、依然として脆弱な状態にあるという。それらの所在は、特に米国に集中し、オランダ/英国/カナダなどが後に続いているという。

この攻撃の存在を、最初に明らかにした Eye Security は、8,000台以上の SharePoint サーバをスキャンした結果として、複数回にわたる攻撃の波を確認したと報告している。

ToolShell は高度な戦術で構成されている。その攻撃チェーンは、SharePoint の脆弱な ToolPane.aspx エンドポイントに対して、特別に細工された POST リクエストを送るところから始まる。

攻撃者は Referer ヘッダーを改竄して認証をバイパスし、”spinstall0.aspx” などの名前を持つ悪意の ASPX ファイルのアップロードにより、サーバから重要な暗号化キーを抽出する。

こうして盗まれた ValidationKey や DecryptionKey を悪用する攻撃者は、正規の認証トークンを偽造し、パッチ適用後も持続的なアクセスを維持する。

この手法により攻撃者は、SharePoint の IIS ワーカープロセス (w3wp.exe) を介して、PowerShell コマンドの実行を達成する。多くの場合において、このプロセスは、NT AUTHORITY\IUSR 権限で実行される。

Strobes Security の研究者は、「この脆弱性は、SharePoint のセキュリティ・モデルを根本から破壊する。この脆弱性の悪用に成功した攻撃者は、SharePoint の暗号化 MachineKey コンフィグを盗み出し、その結果として、永続的なアクセス権を無限に許可できるようになる」と説明している。

緊急パッチおよび緩和策

すでに Microsoft は、2025年7月21日の時点で、SharePoint Server Subscription Edition (KB5002768)/SharePoint Server 2019 (KB5002754) 用の緊急セキュリティ更新プログラムをリリースしている。それに加えて、各バージョンの言語パックに対する更新プログラムも提供している。ただし、SharePoint Server 2016 は依然として脆弱な状態にあり、現時点で Microsoft は、包括的なパッチの開発を進めている。

ProductSecurity Update link
Microsoft SharePoint Server Subscription EditionDownload Security Update for Microsoft SharePoint Server Subscription Edition (KB5002768) from Official Microsoft Download Center
Microsoft SharePoint Server 2019Download Security Update for Microsoft SharePoint 2019 (KB5002754) from Official Microsoft Download CenterSecurity Update for Microsoft SharePoint Server 2019 Language Pack (KB5002753)
Microsoft SharePoint Server 2016Security Update for Microsoft SharePoint Enterprise Server 2016 (KB5002760)Security Update for Microsoft SharePoint Enterprise Server 2016 Language Pack (KB5002759)
推奨される緩和策:
  1. サポート対象のオンプレミス SharePoint Server を使用する。
  2. 上述のセキュリティ・アップデートを適用する。
  3. Microsoft Defender for Endpoint による保護、または、同等の脅威ソリューションによる保護を導入する。
  4. Defender Antivirus などの適切なウイルス対策ソリューションを使用して、マルウェア対策スキャン・インターフェイス (AMSI:Antimalware Scan Interface) が ON になっていること、それが、正しくコンフィグされていることを確認する。
  5. SharePoint Server ASP.NET の MachineKey をローテーションする。
Microsoft Defender Unified Advanced Hunting query
DeviceTvmSoftwareVulnerabilities
| where CveId in ("CVE-2025-49706","CVE-2025-53770")
To Check for Successful exploitation via file creation
DeviceFileEvents
| where FolderPath has_any (@'microsoft shared\Web Server Extensions\16\TEMPLATE\LAYOUTS', @'microsoft shared\Web Server Extensions\15\TEMPLATE\LAYOUTS')
| where FileName has "spinstall0"
| project Timestamp, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, FileName, FolderPath, ReportId, ActionType, SHA256
| order by Timestamp desc
To check for process creation
DeviceProcessEvents
| where InitiatingProcessFileName has "w3wp.exe"
and InitiatingProcessCommandLine !has "DefaultAppPool"
and FileName =~ "cmd.exe"
and ProcessCommandLine has_all ("cmd.exe", "powershell")
and ProcessCommandLine has_any ("EncodedCommand", "-ec")
| extend CommandArguments = split(ProcessCommandLine, " ")
| mv-expand CommandArguments to typeof(string)
| where CommandArguments matches regex "^[A-Za-z0-9+/=]{15,}$"
| extend B64Decode = replace("\\x00", "", base64_decodestring(tostring(CommandArguments)))
| where B64Decode has_any ("spinstall0", @'C:\PROGRA~1\COMMON~1\MICROS~1\WEBSER~1\15\TEMPLATE\LAYOUTS', @'C:\PROGRA~1\COMMON~1\MICROS~1\WEBSER~1\16\TEMPLATE\LAYOUTS')

PoC の公開から 72時間以内において、これらのゼロデイ脆弱性が、大規模な悪用に発展したことが示すのは、速やかなゼロデイの兵器化が達成される状況である。すべての組織に強く推奨されるのは、今回の事案を緊急対応が必要なインシデントとみなし、即時の対応を取ることである。