ViewState逆シリアル化脆弱性を通じたKnowledgeDeliverの悪用

執筆者:Takahiro Sugiyama、Peter Revelant、Mathew Potaczek


はじめに

2025年後半、MandiantはKnowledgeDeliverを実行する侵害されたウェブサーバーに関連するセキュリティインシデントに対応しました。KnowledgeDeliverはDigital Knowledgeによって開発された学習管理システム(LMS)で、日本で一般的に使用されています。Mandiantは認証なしでリモートコード実行(RCE)を可能にする重大な脆弱性を特定しました。未知の脅威アクターはこのアクセスを利用してLMSプラットフォームに悪意のあるコードを注入し、サイトにアクセスするユーザーに感染させることを目的としていました。

この脆弱性は、複数の顧客デプロイメント全体で同じ事前共有ASP.NETマシンキーを使用することに由来しています。この脆弱性は当初ゼロデイとして悪用され、現在はCVE-2026-5426として追跡されています。

脆弱性について

2026年2月24日より前にデプロイされたKnowledgeDeliverのインストールは、ベンダーによって提供される標準化されたweb.configファイルに依存していました。このコンフィグレーションファイルには、ViewStateペイロードを含むデータの暗号化と署名にASP.NETフレームワークによって使用されるハードコードされたmachineKey値が含まれていました。

これらのキーは独立した顧客環境全体で同じであったため、1つのデプロイメントからキーを取得した脅威アクターは、他のインターネット向けKnowledgeDeliverインスタンスを侵害する可能性がありました。

以下は、web.configファイルに見られた関連するコンフィグレーションラインの例です:

<machineKey decryptionKey="<REDACTED>" validationKey="<REDACTED>" />

ASP.NET ViewStateはポストバック全体でページの状態を永続化します。machineKeyが既知の場合、脅威アクターは悪意のあるViewStateペイロードを作成できます。このペイロードをHTTPリクエストで送信することにより(__VIEWSTATEパラメータ経由)、脅威アクターはサーバーにそれを逆シリアル化させることができます。

この手法は、Sitecore(Mandiantによって以前報告された)に影響を与えるViewState逆シリアル化ゼロデイ脆弱性のパターンに従い、Microsoftによって報告された公開されたASP.NETマシンキーを使用したコード注入攻撃も含みます。これは、マシンキーをユニークで安全に保つことがいかに重要であるかを強調しています。

悪用後のアクティビティ

アクセスが確立されると、脅威アクターは自分たちのプレゼンスを維持し、侵害の影響を拡大することに焦点を当てました。

BLUEBEAMウェブシェルのデプロイ

脅威アクターはBLUEBEAM(Godzillaとしても知られている)と呼ばれる.NETベースのインメモリウェブシェルをデプロイしました。BLUEBEAMの使用はMicrosoftの報告と一致しています。このマルウェアはIISワーカープロセス(w3wp.exe)内のメモリ内全体で動作し、従来のファイルベースのスキャンによる検出を困難にします。これにより、脅威アクターはHTTP POSTリクエストボディで暗号化されたデータを送信することで、さらなるコマンドとペイロードを実行できます。

ファイルの改ざん

脅威アクターはウェブサーバーのファイルシステムに対する制御をエスカレートするコマンドを実行していることが観察されました:

  1. 権限の変更:脅威アクターはicaclsを使用してウェブアプリケーションディレクトリへの「Everyone」フルアクセスを付与しました。

  2. JavaScriptの改ざん:脅威アクターはアプリケーションJavaScriptファイルを変更し、以下を実行するコードを追加しました:

    • ユーザーに「セキュリティ認証プラグイン」のインストールをプロンプトする偽のセキュリティアラートを表示します。

    • 脅威アクター管理ドメインでホストされているリモート悪意スクリプトを静かにロードします。

Cobalt Strikeの感染

リモートスクリプトはユーザーに偽のインストーラーをダウンロードするよう説得し、その結果ワークステーションはCobalt StrikeBEACONバックドアに感染しました。ペイロードは侵害された組織の名前を使用したキーで暗号化されていました。これは脅威アクターがこのペイロードをターゲット組織用に特別に準備したことを示していました。

このアクティビティを検索する方法

組織はViewState悪用と悪用後のアクティビティの可能性を特定するために以下のインジケータを監視する必要があります。

1. アプリケーションイベントログ(イベントID 1316)

ソースASP.NET 4.0.30319.0(または同様)からのイベントID 1316についてWindowsアプリケーションログを監視してください。

  • 失敗した試み(整合性エラー):Event code: 4009-++-Viewstate verification failed. Reason: The viewstate supplied failed integrity check.不正なキーでの攻撃の試みを示す可能性があります。

  • 成功した実行(無効なViewState):Event code: 4009-++-Viewstate verification failed. Reason: Viewstate was invalid.整合性チェックが合格したことを確認します。ペイロードの逆シリアル化が試みられ、成功した可能性があります。ペイロードは実行されている場合も、されていない場合もあります。 

Mandiantはサーバーのマシンキーでイベントログメッセージに記録されたペイロード文字列を復号化し、BLUEBEAMウェブシェルに関連するペイロードを復元しました。

2. 疑わしいプロセスアクティビティ

  • cmd.exe /c ...

  • whoami

  • powershell.exe

3. ファイル整合性監視

ウェブルート内の.js.aspx、または.configファイルへの未承認の変更を監視してください。特に、リモートスクリプトローダーの追加や一般的に使用されるライブラリ内の異常なロジックを探してください。

4. 異常なUser-Agentストリング

Mandiantは2つの異なるidentifierが連結されているUser-Agentストリングを特定しました。これはViewState逆シリアル化ゼロデイ脆弱性で報告されたものと一致していました。ウェブリクエストログでそのような異常なUser-Agentストリングを監視してください。以下は特定されたUser-Agentストリングの例です:

  • Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/22.0.1216.0 Safari/537.2 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36

  • Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101213 Opera/9.80 (Windows NT 6.1; U; zh-tw) Presto/2.7.62 Version/11.01 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36

  • Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) chromeframe/10.0.648.205 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36

修復と軽減

  • マシンキーをローテーションする:各KnowledgeDeliverインスタンスに対して、一意の暗号化強度の高いマシンキーを即座に生成してください。これは共有シークレットを無効にする唯一の方法です。

  • アクセスを制限する:可能であれば、LMSへのアクセスを既知の組織IPアドレス範囲に制限してください。

  • 調査:このアクティビティを検索し、悪用の兆候が特定された場合は徹底的な調査を実施してください。

展望と含意

KnowledgeDeliverの悪用は、デプロイメントテンプレートで共有シークレットを使用することの深刻なリスクを強調しています。単一のリークされたキーは、インストール全体のエコシステムを侵害する可能性があります。ユニークなシークレットと堅牢なエンドポイント監視を実装することにより、組織はこれらの逆シリアル化攻撃に対して防御できます。

侵害のインジケータ(IOC)

ファイル名

タイプ

SHA-256

LoadLibrary.dll

BLUEBEAM

7c1f99dca8e5a7897892f9d224a6495023a2cfd2671697d229d355978c415ed2

Google Security Operations(SecOps)

以下のSecOps検索を使用してこのアクティビティを検索できます。

(metadata.log_type = "WINEVTLOG" or metadata.log_type = "WINEVTLOG_XML") 
metadata.product_event_type = "1316"
additional.fields["Message"] = /Event code: 4009\b/ nocase
(metadata.event_type = "PROCESS_LAUNCH" or metadata.event_type = "PROCESS_OPEN") AND
principal.process.command_line = /w3wp.exe/ nocase AND
target.process.command_line = /cmd.+ \/c |whoami|powershell/ nocase

SecOpsのお客様はMandiant Hunting Rules、Mandiant Frontline Threats、Mandiant Intel Emerging Threatsルールパック以下の以下のルール等にアクセスできます:

  • ASP.NET ViewState逆シリアル化試行

  • W3wpがリコンコマンドでCmdを起動

  • W3wpがエンコードされたPowershellを起動

  • W3wpがIcaclsを起動

  • ウェブサーバープロセスがWhoamiを起動

  • IIS ViewState悪用成功

  • IIS ViewState悪用とそれに続くウェブルートファイル改ざん

  • Windows Exchange Serverがシェルを起動している可能性

謝辞

Mandiantはこの情報開示に関する協力について、Digital Knowledgeチームに感謝を申し上げたいと思います。

カテゴリ:

翻訳元: https://cloud.google.com/blog/topics/threat-intelligence/knowledgedeliver-viewstate-deserialization-vulnerability/

ソース: cloud.google.com