
NPMエコシステム史上最大のサプライチェーン侵害は、全クラウド環境のおよそ10%に影響を与えたが、攻撃者はほとんど利益を得なかった。
この攻撃は今週初め、メンテナのJosh Junon(qix)がパスワードリセットのフィッシング詐欺に引っかかり、chalkや degub-jsなど、非常に人気の高い複数のNPMパッケージが危険にさらされた後に発生した。
Junonのアカウントにアクセスした後、攻撃者は、トランザクションを脅威行為者にリダイレクトすることで暗号通貨を盗む悪意のあるモジュールを含む悪意のあるアップデートをプッシュしました。
オープンソースソフトウェアコミュニティはすぐにこの攻撃を発見し、すべての悪意のあるパッケージは2時間以内に削除された。
クラウドセキュリティ企業Wizの研究者によると、ほぼすべてのJavaScript/Nodeプロジェクトの基本的な構成要素である侵害されたパッケージの1つ以上が、99%のクラウド環境で使用されていたという。
ダウンロード可能だった2時間の間に、漏洩したパッケージはおよそ10%のクラウド環境で利用されていた。
「悪意のあるバージョンがnpmで利用可能であった2時間という短い時間枠の間に、悪意のあるコードは10に1つのクラウド環境に到達しました。
“これは、今回のようなサプライチェーン攻撃において、悪意のあるコードがいかに速く伝播するかを実証するものです”

この10%という数字は、Wizが顧客のクラウド環境を可視化した結果であり、公開されている情報源でもある。代表的な割合とは言えないかもしれないが、それでもこの攻撃の急速な広がりと広がりを示している。
攻撃者が稼いだ金額は1,000ドル未満
この攻撃は、企業に多大な混乱をもたらし、クリーンアップ、再構築、監査に多大な時間を要したが、脅威行為者の利益と同様、セキュリティへの影響はごくわずかである。
Security Allianceの分析によると、注入されたコードはブラウザ環境を標的とし、EthereumとSolanaの署名要求をフックし、暗号通貨のウォレットアドレスを攻撃者が管理するものと交換した(クリプトジャッキング)。
ペイロードの種類は、侵害されたデバイスを引き抜いた企業を、より深刻なセキュリティ・インシデントから救ったものだ。脅威行為者は、そのアクセスを使ってリバース・シェルを仕込んだり、ネットワーク上を横方向に移動したり、破壊的なマルウェアを仕込んだりする可能性があったからだ。
攻撃の規模が大きく、多数の被害者がいたにもかかわらず、攻撃者が流用できたのは5セント相当のETHと20ドル相当の事実上未知のmemecoinだけだった。
Socketの研究者は昨日レポートを発表し、同じフィッシングキャンペーンがDuckDBのメンテナアカウントにも影響を与え、同じ暗号を盗むコードでプロジェクトのパッケージを危険にさらしたと警告した。
彼らによると、攻撃者のウォレットに追跡された利益は、イーサリアムでおよそ429ドル、ソラナで46ドル、BTC、トロン、BCH、LTCで少額の合計600ドルである。
また、重要な金額を保有する攻撃者のウォレットアドレスはフラグが立てられ、彼らが稼いだわずかなお金を換金したり使用したりする能力が制限されていることも指摘されている。
.ia_ad { background-color:#width: 95%; max-width: 800px; margin: 15px auto; border-radius: 8px; border:1px solid #d6ddee; display: flex; align-items: stretch; padding: 0; overflow: hidden; }:0; overflow: hidden; } .ia_lef { flex: 1; max-width: 200px; height: auto; display: flex; align-items: stretch; } .ia_lef a { display: flex; width: 100%; height: 100%; } .ia_lef a img { width: 100%; height: 100%; object-fit: cover; border-radius: 8px 0 0 8px; margin: 0; display: block; } .ia_rig { flex: 2; padding:display: flex; flex-direction: column; justify-content: center; } .ia_rig h2 { font-size: 17px !important; font-weight: 700; color:#line-height: 1.4; font-family:margin: 0 0 14px 0; } .ia_rig p { font-weight: bold; font-size: 14px; margin: 0 0 clamp(6px, 2vw, 14px) 0; } .ia_button { background-color:#border:1px solid #3b59aa; color: black; text-align: center; text-decoration: none; border-radius: 8px; display: inline-block; font-size: 16px; font-weight: bold; cursor: pointer; padding:width: fit-content; } .ia_button a { text-decoration: none; color: inherit; display: block; } @media (max-width: 600px) { .ia_ad { flex-direction: column; align-items: center; } .ia_lef { max-width: 100%; } .ia_lef a img { border-radius: 8px 8px 0 0; } .ia_rig { padding:15px;
width: 100%;
}
.ia_button {
width: 100%;
margin: 0px auto;
}
}





Comments