概要:巧妙なNuGetサプライチェーン攻撃
産業用制御システム(ICS)を標的とした巧妙なサプライチェーン攻撃が発覚しました。この攻撃では、9つの悪意あるNuGetパッケージが使用され、データベース操作や製造環境に時限式の破壊型ペイロードを注入するように設計されています。
Socketの脅威調査チームは、2023年から2024年の間に「shanhai666」というエイリアスで公開されたこれらの悪質なコードを特定しました。これらは2025年11月5日にNuGetに報告されるまでに、合計9,488回ダウンロードされていました。
このキャンペーンは、前例のない攻撃の巧妙さを示しています。99%が正規の機能で構成されたカバーコードと、2027年および2028年の特定の日付以降に各データベースクエリで20%の確率でプロセスを終了させる隠された悪意あるペイロードを組み合わせています。
最も危険なパッケージ:Sharp7Extend
最も危険なパッケージであるSharp7Extendは、タイポスクワッティングを通じてシーメンスの産業用プログラマブルロジックコントローラー(PLC)を標的としています。これは、インストール直後に混乱を引き起こす二重の妨害メカニズムを実装しています。
Sharp7Extendは、製造環境にとって特に壊滅的な脅威となります。信頼されているSharp7ライブラリ名に「Extend」を付加することで、攻撃者はPLC通信の強化を求める開発者を悪用しました。
このパッケージは、完全かつ未変更の正規のSharp7ライブラリ(バージョン1.1.79)をバンドルしているため、コードレビュー中の検出は事実上不可能です。しかし、Sharp7Extendはデータベースに特化したパッケージとは逆のトリガーロジックを実装しています。遅延起動ではなく、インストール直後から2028年6月6日まで、すべてのPLC操作で20%の確率でプロセスを終了させ、その後、書き込み操作を80%の確率で密かに破損させる第二の妨害メカニズムを起動します。
攻撃のメカニズムと影響
この二重メカニズム攻撃は、段階的に悪化する障害を引き起こします。最初の30〜90分間は、プロセス終了のみがアクティブになり、ネットワークの問題に起因するランダムなクラッシュを引き起こします。
猶予期間が経過すると、両方のメカニズムが同時に動作し、断続的なハードウェア障害のように見える連鎖的なシステム障害とデータ破損を引き起こします。1分あたり10回のPLC操作を実行する製造環境では、30秒以内に生産クラッシュが避けられなくなり、80%の書き込み操作障害は安全上重要なシステムを危険にさらします。
この攻撃の巧妙さは、確率的実行によって隠された数学的な必然性にあります。1時間あたり数百のデータベースクエリを実行するアプリケーションは、数秒から数分でクラッシュします。1分あたり100クエリを処理するEコマースプラットフォームは、約3秒でチェックアウト中にクラッシュします。1分あたり50クエリで動作する医療システムは、6秒以内に完全な停止を経験します。1分あたり500クエリで取引する金融プラットフォームは、1秒以内にプラットフォーム全体の障害に直面します。
正規機能による隠蔽
9つの悪意あるパッケージはすべて、データベースリポジトリパターン、LINQサポート、ページネーション、非同期操作、エンティティマッピングを実装する完全に機能する正規のコードを提供しています。この広範な正規機能は、複数の目的を果たします。
- 開発者の信頼を築く
- レビュー担当者が慣れたパターンに遭遇することでコードレビューを通過する
- 実際の価値提供を通じて採用を促す
- 数千行の正規コードの中に約20行の悪意あるペイロードを埋め込む
注入方法と運用上のセキュリティ
拡張メソッドの注入は、C#言語の機能を悪用し、すべてのデータベースおよびPLC操作に悪意あるロジックを透過的に注入します。マルウェアは、データベースコマンドタイプに.Exec()拡張メソッドを、S7Clientオブジェクトに.BeginTran()メソッドを追加し、各操作で自動的に実行されるようにします。
攻撃者は、同じ「shanhai666」というエイリアスで公開されているにもかかわらず、異なる作成者名を表示するパッケージ間でメタデータの一貫性を維持しないことで、運用上のセキュリティの巧妙さを示しました。これは、同一の作成者からのパッケージを検出するシステムを回避するように設計されています。
署名ファイルの分析により、不正な構造、埋め込まれた文字列、および中国語のエラーメッセージやインターネットスラングを含む中国起源を示唆する複数の兆候が明らかになりました。
現状と推奨事項
公開時点では、Socketが11月5日に報告したにもかかわらず、悪意あるパッケージはNuGetレジストリに公開されたままです。NuGetは調査と削除の取り組みを確認しましたが、時限式の起動メカニズムはすでに無数の本番システムを侵害しています。
組織は、直ちにこれら9つのパッケージに対する依存関係を監査し、影響を受けたシステムが完全に侵害されていると想定する必要があります。Sharp7Extendを実行している産業用制御システムでは、PLC通信の問題に誤って起因する断続的な障害が発生している可能性があり、同時に密かな書き込み障害が重要な製造操作を破損させている可能性があります。
