Source:https://thehackernews.com/2025/11/hidden-logic-bombs-in-malware-laced.html
🛡 概要
2023〜2024年にNuGetへ公開された9つの悪性パッケージが、タイムトリガで将来発火するロジックボムを内包していたことが判明しました。供給元は「shanhai666」。合計ダウンロードは9,488回。特にSharp7ExtendはSiemens S7系PLCを狙い、導入直後からの確率的プロセス強制終了と、30〜90分後からのPLC書き込みサボタージュ(静かな失敗)という二段構えの破壊機能を持ちます。全9件はNuGetから削除済みです。
🔍 技術詳細
対象パッケージは、C#の拡張メソッドを悪用して既存型にフックを差し込み、DBクエリやPLC操作の実行パス上で隠れた検査・妨害コードを自動実行します。多くのパッケージはハードコードされた発火日(例:2027-08-08、2028-11-29)と現在日時を比較し、しきい日を超えると20%の確率でプロセスをKill/Exit。またSharp7Extendは、導入直後から2028-06-06まで確率的終了を継続し、加えて30〜90分の遅延後にPLC書き込みの80%を静かに失敗させ、制御信号の改ざんや未反映状態を引き起こします。Sharp7Extendは正規のSharp7ライブラリを同梱し信頼を装いつつ、暗号化設定で発火条件を秘匿(他は多くが平文日付)。DB向けのMyDbRepository/MCDbRepository/SqlDbRepository/SqlRepository/SqlUnicornCoreTest/SqlUnicornCore/SqlUnicorn.Core/SqlLiteRepositoryは、SQL Server/PostgreSQL/SQLiteの操作拡張を経由して同様のロジックを差し込みます。これらは「即時にICSを撹乱」「DBは2027〜2028年に遅延爆発」という段階的戦術で、インシデントを偶発的障害に見せかけ、因果追跡を困難にします。CVE/CVSS: 該当なし(設計上の脆弱性ではなく、意図的に悪意あるパッケージ)。
確認された悪性パッケージ(最終更新日):MyDbRepository(2023-05-13)、MCDbRepository(2024-06-05)、Sharp7Extend(2024-08-14)、SqlDbRepository(2024-10-24)、SqlRepository(2024-10-25)、SqlUnicornCoreTest(2024-10-26)、SqlUnicornCore(2024-10-26)、SqlUnicorn.Core(2024-10-27)、SqlLiteRepository(2024-10-28)。発火日はMCDbRepository: 2027-08-08、SqlUnicornCore/SqlUnicornCoreTest: 2028-11-29などが報告されています。
⚠ 影響
・ICS/製造:PLC書き込みの失敗が安全計装や生産品質を劣化。ランダム終了によりHMI/SCADAやセル制御アプリが停止し、プロセス安全余裕が削られる恐れ。
・エンタープライズアプリ:DBクエリ経路で突然終了・整合性低下が発生し、障害調査が長期化。
・法令/監査:原因特定不能による是正措置遅延、信頼性・可用性SLA違反のリスク。
🛠 対策
・ソース制御/依存統制:NuGetロックファイル(packages.lock.json)を有効化し、RestoreLockedModeで再現性を強制。許可されたプライベートフィード(Azure Artifacts等)にミラーし、公開レジストリ直参照を遮断。署名付きパッケージのみ許可し、nuget verifyで署名検証をパイプラインに組込み。
・コード/ビルド検査:SBOM(SPDX/CycloneDX)を生成し継続監査。IL/ASTスキャンでDateTime.Now/UtcNowと固定日付比較、Environment.Exit/Process.Kill、拡張メソッドによるDB/PLC操作の横取りを静的検知。
・実行時防御:アプリケーション健全性監視(ヘルスチェック、ウォッチドッグ/プロセス監視)で異常終了を検知・自動復旧。PLCへの書き込み結果を双方向検証(read-back/CRC)し、サイレント失敗を検出。
・ICS分離:PLC書込み権限を最小化し、変更は管理端末と署名付きジョブに限定。テスト/本番の完全分離、変更前後のプロセス安全レビューを必須化。
・緊急対応:当該9パッケージの全リポジトリ/成果物を棚卸しし、ビルドキャッシュとアーティファクトを再生成。発火条件(2027/2028)前でもSharp7Extendは即時影響あり。代替のクリーン実装へ全面置換。
📌 SOC視点
・EDR/ログ:プロセスの異常終了イベント(Windows: Application Error 1000、Service Control Manager 7034等)、.NETランタイム例外/ETW(Microsoft-Windows-DotNETRuntime)を収集。終了直前のコールスタックに拡張メソッドの不審名前空間(例:SqlUnicorn*, *Repository, Sharp7Extend)混入を相関。
・テレメトリ:DB/PLC書込み要求と実際の反映差分のスパイク(80%失敗など)を時系列検知。導入30〜90分後のエラー率上昇をアラート化。
・ハンティング:リポジトリとSBOMから当該パッケージ履歴を照合。アセンブリに固定日時(2027-08-08、2028-11-29、2028-06-06等)や疑似乱数による確率分岐が存在しないかILで確認。
📈 MITRE ATT&CK
・T1195.001 Supply Chain Compromise: Compromise Software Dependencies—攻撃者はNuGet依存関係として悪性パッケージを公開。開発者が正規の依存として取り込むことで初期侵入が成立。
・T1036 Masquerading—Sharp7を同梱し正規拡張に見せかけ信頼を獲得。
・T1027 Obfuscated/Compressed Files and Information—Sharp7Extendは暗号化設定で発火条件を秘匿。
・T1204 User Execution—開発者/CIが依存を取得・実行することでコードが発火。
・T1499 Endpoint Denial of Service—20%確率のプロセス強制終了で可用性を低下。
・T1565 Data Manipulation—PLC/DBの書込み失敗を誘発し、データ/制御の整合性を損なう。
🏢 組織規模別助言
・小規模(〜50名):パッケージ取得元を1本化(私設フィード)、ロックファイル必須、危険名(上記9件)を即時ブロック。簡易SBOM(CycloneDX)をCIに追加。ICSは手動二重確認(read-back)を運用に組込む。
・中規模(50〜500名):SCA/OSSリスクツールをCI/CDへ常時接続、署名検証と復元ロックをポリシー化。観測系(APM/EDR/SIEM)で異常終了・失敗率のSLO逸脱を即アラート。検証用の隔離ICSテストベッドを用意。
・大規模(500名〜):サプライチェーンリスク管理(SCRM)委員会を設置し、パッケージ許可リスト/署名/ミラー配布を標準化。SBOMの継続監査と緊急撤去フローを自動化。ICSは変更管理(MOC)と署名付きワークフロー、双方向検証を必須化。
🔎 類似事例
・npm event-stream依存関係乗っ取り(2018)
・ua-parser-jsの悪性リリース混入(2021)
・npm「coa」「rc」のアカウント乗っ取りによるマルウェア配布(2021)
・PyPIでの悪性/タイポスクワット・パッケージ拡散の複数事案(継続的)
🧭 次の一手
1) 全コードベースとCIのSBOMを生成し、当該9パッケージ混入を即確認。2) 混入があれば除去・再ビルド・再署名・展開。3) NuGetロック/署名検証/プライベートミラーを標準化。4) ICSはPLC書込みのread-back検証と変更管理を強化。参考コンテンツ:NuGetロックファイルと署名検証の実装手順、SBOM運用ガイド(CycloneDX/SPDX)、Sharp7安全利用チェックリスト。


