ここ数ヶ月で明らかになったことがある。攻撃者はもはや推測していない。開発者が依存関係をインストールする方法を監視し、タイミングそのものを攻撃手段として利用しているのだ。攻撃者はまず最新版を狙い、素早く攻撃を仕掛けてくる。
そこで、その隙間を塞ぐためにセーフチェーンをアップグレードしました。
Safe Chainはパッケージの最低年齢を強制し、過去24時間以内に公開されたバージョンを保持します。これによりインストール前に適切に分析が可能となります。攻撃者が潜伏しやすいのは新規リリースであるため、この時間枠によりセキュリティツールが分析する十分な時間が確保されます。バージョンが新しすぎて未検証の場合、Safe Chainは自動的に古いクリーンなバージョンにフォールバックします。これによりビルドが中断されることはありません。Safe Chainは無料でオープンソースであり、ローカルで動作します。
この変更により、Safe Chainが開発者にとって安全なデフォルトとなります。
攻撃者が最新版に狙いを定める理由
2025年のインシデント全体において、攻撃者は常に新たに公開されたバージョンを最初の感染経路として利用した。この傾向はマルウェアキャンペーン全体に見られ、攻撃者にとって新バージョンが有効である理由は以下の通りである:
- 新バージョンは通常のメンテナンスに溶け込み、開発者はそれらを信頼している
- CIシステムは直ちに最新版を取得する
- レジストリ、サンドボックス、セキュリティチームは新しいコードを分析する時間が必要である
- 推移的依存関係チェーンは悪意のあるバージョンを急速に拡散させる
これらの行動は、今年発生した実際のインシデントで確認された。具体的には、9月と11月のShai Hulud攻撃、React Native Ariaの侵害、XRPバックドア事件、rand-user-agent RAT、そして複数のメンテナートークン乗っ取り事件であり、これら全てが新たなリリースを起点として発生した。
今年当社が警告を発したすべての重大なインシデントにおいて、悪意のあるバージョンは、誰かがレビューや警告を発する前に、新たに公開されたリリースとして登場しました。
最低パッケージ年齢を導入した理由
新しいバージョンはnpmエコシステムにおける最大の盲点となった。攻撃者はこのタイミングの隙間を繰り返し悪用した。なぜなら効果的だからだ。当社の脅威パイプラインでは毎週同じパターンが確認される:新たな悪意あるバージョンが公開され、CIパイプラインや開発者マシンが即座にそれを取得し、広範なコミュニティが不審な動きに気付くずっと前に情報漏洩が始まる。
最低24時間の待機期間を設けることで、防御側にリリースを分類・検証する時間的余裕を与えます。この期間中、Safe Chainは以下の点を確認します:
- そのバージョンはAikido 知られている
- マルウェアスキャンを通過しました
- それはアクティブな脅威パターンまたはインシデントに関連付けられています
.png)
検証が不完全な場合、Safe Chainは当該バージョンを一時的に抑制し、最後に安全と確認されたバージョンにフォールバックします。これにより、テスト時点でnpm上に公開されていたtoonfetchなどの侵害パッケージを含む、アクティブなShai Huludマルウェアのインストールが既に防止されています。
.gif)
Safe Chainは開発者にとって安全なデフォルトです
開発者はマルウェアキャンペーンを追跡したり、依存関係の更新を手動で確認したりする必要はありません。ツールが自動的に処理すべきです。
セーフチェーンは、邪魔にならずに、より強固な基盤を提供します:
- インストール前に悪意のあるパッケージをブロックする
- 24時間未満のバージョンは検証されるまで非表示にする
- 自動的に最後のクリーンなバージョンにロールバックします
- npm CLI、npx、yarn、pnpm、pnpx、Bun、bunx、および pip で動作します
- 無料、オープンソース、トークンや設定不要
セーフチェーンは、当社の脅威パイプライン「Aikido 」によって駆動されています。これは、公開脆弱性データベースに掲載される前に、1日あたり約200の悪意あるパッケージを特定します。他のツールはマルウェアをインストール後に検出しますが、セーフチェーンはそれがあなたのマシンに到達する前に阻止します。
これがパッケージエコシステムのデフォルトの動作形態であるべき姿だ。Safe Chainはこのモデルを開発ワークフローに直接組み込む。
今すぐセーフチェーンを導入しましょう
Aikido の取り付けは簡単です。以下の3つの簡単な手順で完了します:
npmを使用してAikido Chainパッケージをグローバルにインストールします:
npm install -g @aikidosec/safe-chain
以下のコマンドを実行してシェル統合を設定します:
安全チェーン設定
Aikido Chainを使用するには、ターミナルを再起動してください。
- この手順は、npm、npx、yarn のシェルエイリアスが正しく読み込まれることを保証するため非常に重要です。ターミナルを再起動しないと、これらのエイリアスは利用できません。
インストールを確認するには、以下を実行してください:
npm install safe-chain-test
- 出力には、Aikido Chainがこのパッケージをマルウェアとしてフラグ付けしているためインストールをブロックしていることが表示されるはずです。(このパッケージのインストールにはリスクはありません)
今すぐソフトウェアを保護しましょう



.avif)
