人気HTTPライブラリ「Axios」で発生したサプライチェーン攻撃のポストモーテムが公式に公開された。今回特に注目すべきは、単なる無差別攻撃ではなく、特定のメンテナを徹底的に調査した上で仕掛けられた「個別ターゲティング型」のソーシャルエンジニアリングだった点だ。OSSエコシステムに関わるすべての開発者が知っておくべき手口が、克明に記録されている。
攻撃の全手順:精巧すぎる罠
メンテナのJason Saayman氏への攻撃は、以下のステップで実行された。
1. 企業・人物の完全クローン 攻撃者はある実在企業を模倣し、その創設者の外見までなりすまし、Saayman氏に接触してきた。単なるメール詐欺ではなく、企業ブランドと人物像を丸ごと模倣した精巧な偽装だ。
2. 説得力のある偽Slackワークスペース 本物の企業名・CIブランドを冠したSlackワークスペースに招待。LinkedInの投稿シェア、他のOSSメンテナの(おそらく偽の)プロフィールまで用意され、非常に自然な「業界コミュニティ」の雰囲気が演出されていた。
3. Microsoft TeamsでのミーティングとRAT投下 複数の「参加者」が揃ったTeamsミーティングを設定。ミーティング中に「お使いのシステムが古い」と表示され、Teamsの動作に必要なものだと思い込んでインストールしたのがRAT(Remote Access Trojan)だった。この罠で認証情報が窃取され、攻撃者はAxiosのリポジトリに悪意ある依存パッケージを公開することに成功した。
この手口はGoogleのThreat IntelligenceチームがUNC1069として文書化している攻撃グループのパターンと一致しており、暗号資産・AI関連企業を標的にした活動として知られる。
なぜこれが重要か
「ソーシャルエンジニアリングに注意」は耳タコな話だ。しかし今回の攻撃は次元が違う。本物そっくりのSlackワークスペース、実在企業の精巧なクローン、複数人が関与するTeamsミーティング——ここまでの工数と精度で特定個人を攻撃するケースは、以前は国家レベルのAPT攻撃でしか見られなかった。それが今やnpmパッケージのメンテナを標的に実行されている。
日本企業でも多数のプロダクトがAxiosに依存しており、悪意あるバージョンがインストールされた環境があればリスクは無視できない。サプライチェーンセキュリティはもはや「大企業だけの話」ではない。
実務での活用ポイント
OSSメンテナ・開発者向け
- ミーティング直前の「ソフトウェアインストール要求」は即座に疑え。時間的プレッシャーは攻撃者が意図的に作り出すものだ
- 初回コンタクトで別のチャンネルへ誘導してくる相手は要注意
- LinkedInや企業サイトが本物そっくりでも、それだけでは信頼の根拠にならない
- npmやGitHubのリリース権限は多要素認証+物理セキュリティキーで保護する
IT管理者・セキュリティ担当者向け
- 依存ライブラリの整合性チェック(
npm audit、SBOMの活用)を自動化する - 新バージョンリリース直後の依存アップデートに対し、短時間の検証フェーズを設ける
- 開発者向けセキュリティトレーニングにサプライチェーン攻撃の具体的シナリオを組み込む
筆者の見解
今回の攻撃でTeamsが最後の一手として使われた点は気になる。攻撃者はTeamsの普及度と「ミーティング直前に何かインストールしなければ」という心理的プレッシャーを巧みに利用している。Teamsそのものの問題ではないが、正規のインストール要求と偽物を区別しにくい現状は課題だ。Microsoftには、こうした手口を踏まえたセキュリティアドバイザリの強化や、インストール要求をより明確に識別できるUX改善を期待したい。ブランドとエコシステムを持つMicrosoftだからこそ、こういう部分で業界をリードしてほしい。
より根本的な問題として、OSSエコシステムはごく少数のメンテナが巨大なサプライチェーンの鍵を握る構造的脆弱性を抱えている。Axiosは週次ダウンロード数が数千万件規模のライブラリだ。一人のメンテナへのソーシャルエンジニアリングが世界中のシステムに影響し得る。
「禁止」や「ゼロトラスト」だけでは解決しない。メンテナが安全に作業できる環境、二人以上のレビューが必要なリリースフロー、そして実例を具体的に共有するコミュニティの文化こそが必要だ。今回Axiosチームが詳細なポストモーテムを公開したことは、その意味で業界全体への貴重な貢献だと思う。
出典: この記事は The Axios supply chain attack used individually targeted social engineering の内容をもとに、筆者の見解を加えて独自に執筆したものです。