今週初め、Aikido Securityは、これまでで最大規模とされるnpmサプライチェーン侵害を公表しました。攻撃者は、合計で週あたり26億回以上ダウンロードされている18の人気npmパッケージに悪意のあるコードを注入することに成功しました。この一連のキャンペーンは、技術的な脆弱性の悪用ではなく、巧妙に作られたフィッシングメールを一人の熟練したメンテナーがクリックしたことから始まりました。

この事件の規模は、業界に対する警鐘となるべきです。金銭的な被害は「最小限」とされていますが、攻撃者はJavaScriptエコシステムの中核をなすパッケージを侵害することができました。この現実は、すべての開発者、セキュリティリーダー、政策立案者にとって懸念材料となるはずです。

私たちは、こうした出来事を日常的でリスクの低いものとして当たり前に受け止める余裕はありません。パッケージの乗っ取りが成功するたびに、私たちのソフトウェア基盤の脆弱さが露呈します。守る側が今回の「雨漏り」を間一髪で食い止めたからといって、安心してはいけません――次に備えて行動を起こすべきなのです。

侵害の概要

攻撃は、よく知られたが効果的な手法、すなわちアカウント乗っ取りから始まりました。Aikidoによると、攻撃者はnpmサポートを装ったフィッシングメールで、影響を受けたライブラリのメンテナーを騙し、二要素認証の更新を促しました。盗まれた認証情報を使い、攻撃者はchalkdebugなどの人気パッケージのindex.jsファイルを改ざんし、悪意のあるバージョンを公開しました。

注入されたペイロードは、暗号通貨の取引を乗っ取るよう設計されていました。fetchやXMLHttpRequest、window.ethereumなどのウォレットインターフェースといったブラウザAPIを監視することで、マルウェアは資金を攻撃者の管理するアドレスへリダイレクトできました。

幸いなことに、悪意のあるバージョンは数分以内に特定され、1時間以内に公表されました。この迅速な対応により、広範な被害が防がれました。それでも、その短い間に何百万人もの開発者が侵害されたバージョンを取得しており、オープンソース基盤への信頼がいかに大きく、そしてその信頼がいかに素早く悪用され得るかを思い知らされます。

さらに、追加調査によって、このキャンペーンの一環として他のnpmパッケージも乗っ取られていたことが明らかになりました。中には週に15万回近くダウンロードされるduckdbも含まれています。これらの発見は、作戦の広範さを裏付けるとともに、サプライチェーン侵害の全容をリアルタイムで把握することの難しさを浮き彫りにしています。

今後も続く手口

今回の侵害は、孤立した出来事ではありません。パッケージの乗っ取りは、脅威アクターにとって標準的な戦術となっています。なぜなら、1つの人気プロジェクトを侵害すれば、瞬時に数百万もの下流システムへアクセスできるからです。

この戦略は、最近ではLazarusなどの高度持続的脅威(APT)グループにとっても重要なツールとなっています。パッケージの乗っ取りにより、リソースの乏しい単一プロジェクトを狙うだけで、世界中の開発者層に大規模に侵入できるのです。

npmエコシステムだけがこのリスクを抱えているわけではありません。PyPI、RubyGems、Maven Centralなど、パッケージレジストリは現代のソフトウェアサプライチェーンにおける重要な配布ポイントです。これらは、攻撃者が今後も狙い続ける単一障害点となっています。

「大したことはなかった」という物語

公表後、一部の業界関係者はこの事件を過小評価しています。報道によれば、攻撃者が盗んだ暗号資産はごくわずかで、ETHで約5セント、小規模なミームコインで20ドル程度とされています。

しかし、この捉え方は短絡的です。本当のコストは盗まれた暗号通貨ではなく、世界中で侵害された環境をクリーンアップするために必要となる何千時間ものエンジニアリングやセキュリティ作業、さらには契約やコンプライアンス要件、監査などにあります。

また、攻撃者がいかに迅速に行動できるようになったかも注目すべき点です。今回の場合、悪意のあるnpmパッケージは数分のうちに何百万回もダウンロードされた可能性があります。同じパターンは、HeartBleedやEquifaxなど、脆弱性の悪用でも何年も前から繰り返されており、公開から悪用までの時間はほぼゼロに縮まっています。

「最小限の影響」という物語は、組織を油断させるリスクがあります。各事件を「低リスク」として片付けてしまう思考を助長し、ある日突然、そうでなくなるまで気づかないのです。

何を変えるべきか

起きなかったことに注目するのは、攻撃者がもっと大きな打撃を与える機会を持っていたという現実を無視することになります。この事件は、以下のような緊急の優先事項を浮き彫りにしています:

  • メンテナーのセキュリティ強化:パッケージメンテナーは、サイバー攻撃の新たな最前線です。フィッシング耐性のある認証やハードウェアキー、より強力な本人確認によるアカウント保護を例外ではなく標準とすべきです。
  • エコシステム全体の防御策強化:レジストリは、必須の多要素認証や異常な公開活動の検知、悪意のあるコードパターンの積極的な監視など、より強力な防御策への投資を継続する必要があります。
  • 業界の意識改革:組織は、広く使われているパッケージの侵害を、たとえ即時の被害が些細に見えても、重大なセキュリティインシデントとして扱うべきです。悪意のあるパッケージはゼロデイ脆弱性と同じ緊急性を持って対応すべきであり、その影響範囲は同等に大きいのです。
  • サプライチェーンの可視化への投資:ソフトウェア部品表(SBOM)や自動依存関係追跡は不可欠です。企業は、侵害されたバージョンを利用していないか迅速に特定し、即座に対応できる体制が必要です。

今回のnpm侵害は「史上最大」として記録されるかもしれませんが、その重要性は規模や盗まれた暗号通貨の少なさにあるのではありません。真の意味は、現代ソフトウェアセキュリティの現状を浮き彫りにした点にあります。私たちのオープンソース基盤への信頼は、思っている以上に脆弱であり、攻撃者はそれを知っています。

こうした侵害の重要性を目先の金銭的被害だけで測るのであれば、本質を見誤っています。これは、嵐の前に雨漏りを発見して食い止めたようなものです――被害が限定的だったのは、たまたま早期発見できたからに過ぎません。次は、そううまくはいかないかもしれません。

ブライアン・フォックスはSonatypeの共同創業者兼CTOです。

翻訳元: https://cyberscoop.com/npm-supply-chain-compromise-brian-fox-sonatype-op-ed/

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です