研究者、arrayref Rustクレートの乗っ取りを北朝鮮系ハッカーに結び付ける
重要ポイント
- •侵害された Rust パッケージの元のコードは改変されておらず、攻撃者が追加したのは、広く信頼される proc-macro2 クレートを模倣した proc-macro1 という単一の新しい依存関係だけだった。
- •Cargo は compile 時に build script を自動実行するため、汚染版を取り込んだプロジェクトをビルドするだけでマルウェアが起動し、開発者は Cargo.lock で proc-macro1 を確認できる。
- •Wiz の研究者は、Mastra キャンペーンや axios npm 攻撃で見られた Hostwinds の利用、共通のセキュリティ証明書、コマンド・アンド・コントロール経路の一致を根拠に、攻撃を北朝鮮関連作戦と結び付けたが、正式な政府帰属認定には至っていない。
- •Aikido は、arrayref の総ダウンロード数が約 2億4400万で、悪性版の公開期間は約 86分だったことから、今回の事案をダウンロード数ベースで過去最大の Rust クレート侵害だと述べた。
- •Rust Security Response Team は、作者が悪意を持っていたのではなく、メンテナーのマシンまたは認証情報が侵害されたと判断しており、2024年の XZ Utils バックドアと同様に、メンテナーアカウントの侵害が繰り返し問題になっている。

Wiz のセキュリティ研究者によると、arrayref を汚染した supply chain 攻撃は、Rust 環境のおよそ4分の3で使われているこのパッケージを狙ったもので、最近の北朝鮮による作戦との類似性が指摘されています。
この不正な更新には、ユーザーがプロジェクトをコンパイルしたときに自動実行されるコードの中へ、ログイン情報を盗むバックドアが隠されていました。そのため、木曜日に該当プロジェクトをコンパイルした人は、自分のコンピューターと機密情報を露出した可能性があります。
なぜ北朝鮮の関与が疑われているのか
Wiz の研究者 Rami McCarthy と Benjamin Read は、レポートの中で、arrayref のペイロードがコマンド・アンド・コントロールの経路 /49890878 に通信しており、これは Mastra キャンペーンにも見られると指摘しました。Microsoft は Mastra キャンペーンを、Sapphire Sleet と呼ぶ北朝鮮系のハッキンググループに関連付けています。Microsoft はこれを、偽の採用誘導やその他のソーシャルエンジニアリングを通じて暗号資産を盗む、資金目的の活動として以前に説明していました。
この種のインフラの重複――一致するコマンド・アンド・コントロール経路、共有されたセキュリティ証明書、共通のホスティング事業者――は、研究者が別々のキャンペーンを同一の実行主体に結び付ける標準的な手法ですが、正式な政府による帰属認定には至りません。
arrayref 攻撃で使用された IP アドレスは、Mastra で使われた別のアドレスと同じセキュリティ証明書を共有していました。さらに、不審な活動を報告した被害者が示した IP は、Google Cloud が axios npm 攻撃で確認したものと一致しました。Mandiant は、この攻撃は UNC1069 と呼ばれる北朝鮮系グループによるものだとしています。両方の攻撃は同じホスティング企業 Hostwinds を使用していました。
目立ちにくかった最小限の変更
この攻撃が検出しにくかったのは、変更がごくわずかだったためです。Aikido のセキュリティ研究者 Ilyas Makari は、3つの Rust パッケージ arrayref、internment、append-only-vec の実際のコードは改変されていないことを確認しました。変更点は、各パッケージの依存関係リストに proc-macro1 という新しい依存関係が1つ追加されたことだけでした。
この名前は、154 million 以上のダウンロード数を持つ人気クレート proc-macro2 のスペルをわざと誤らせたものです。広く信頼されているパッケージ名を模倣する手口は、npm や PyPI のようなオープンソースレジストリで長く使われてきました。これらの場では、更新が手動レビューなしで公開されます。偽のクレートには本物の proc-macro2 のコードまで含まれているため、ソフトウェアは通常どおりビルドされ、すべてのテストも通過します。
悪意ある部分は build script の中に隠されていました。
Cargo は compile 時に build script を自動実行するため、Rust Security Response Team が勧告で説明したように、悪性版を取り込んだプロジェクトを単にコンパイルするだけで攻撃が発動します。Cargo は各プロジェクトの Cargo.lock に正確な依存関係のバージョンを記録するため、開発者はそのファイル内で proc-macro1 を検索し、汚染版を取り込んだかどうか確認できます。
起動後、攻撃の第2段階は Chrome、Brave、Edge ブラウザーに保存されていたパスワードを盗み、Windows、Mac、Linux の再起動後も残るように自身をインストールしました。
ダウンロード数で見た史上最大の Rust 侵害
Aikido は、この攻撃をダウンロード数で見たことのある中で最大の Rust クレート侵害だと述べました。arrayref は Solana や Ethereum のツールで使われており、総ダウンロード数は約 2億4400万です。公開されていた悪性版は、削除されるまで 86分間存在していたと報告されています。
同チームによると、最初の報告を行ったのは Nextron Systems でした。攻撃が判明すると、チームは正常版の unyank を行い、メンテナーのアカウントをロックしました。
Rust チームは、作者が悪意を持って行動したとは考えておらず、代わりに本人のマシンまたは認証情報が侵害されたと見ています。
なお Amazon は 7月29日、npm ライブラリーの一連の侵害を単一の DPRK 関連アクターに結び付けたと明らかにしました。TRM Labs も、2026年4月までの暗号資産ハッキング被害額の約 76%(およそ 5億7700万ドル)を北朝鮮系グループが占めたと報告しています。
Black Hat の研究者 Vangelis Stykas は、北朝鮮系ハッカーを 57カ国の 1,640社にまで追跡したと述べています。同氏は、彼らが偽の求人を使って開発者を誘い、マルウェアを仕込むことが多いと指摘しており、今回の汚染された build dependency と同様の手口だとしています。
暗号資産ニュースを読むだけでなく、理解してください。ニュースレターを購読しましょう。無料です。