人気の NPM Package が抗議活動:ファイル破壊などでロシア/ベラルーシを狙い撃ち

Popular NPM Package Updated to Wipe Russia, Belarus Systems to Protest Ukraine Invasion

2022/03/17 TheHackerNews — ロシアのウクライナ侵攻に抗議するために、人気の NPM パッケージ node-ipc の開発者が新バージョンを出荷したが、そのことで、オープンソースとソフトウェア・サプライチェーンにおけるセキュリティへの懸念が高まっている。この変更は、ライブラリの Ver 10.1.1/10.1.2 に影響するものだが、そのメンテナである RIAEvangelist による望ましくない動作を導入し、ロシアおよびベラルーシの IP アドレスを持つユーザーをターゲットにして、任意のファイルのコンテンツを消去し、ハートの絵文字に置き換えるものになっている。

Node-ipc は、Linux/macOS/Windows をサポートし、ローカルとリモートにおけるプロセス間通信で使用される著名な Node モジュールであり、毎週 110万件以上もダウンロードされている。

Synk の研究者である Liran Tal は、「この NPM パッケージを呼び出したシステムが、ロシアまたはベラルーシのロケーションと一致する場合、非常に明確な不正利用と申告なサプライチェーン・セキュリティ・インシデントが発生する」と分析している。

この問題には、CVE-2022-23812 という脆弱性の識別子が割り当てられており、CVSS 値は 9.8 と評価されている。この悪意のコード変更は 3月7日に公開され (Ver 10.1.1) 、同日の 10時間後に2度目のアップデートが行われた (Ver 10.1.1)。

興味深いことに、この破壊的なペイロードは Ver 10.1.3 でライブラリから削除されたが、その4時間弱後にはメジャー・アップデート (Ver 11.0.0) がプッシュされ、RIAEvangelist がロシアの侵略に対する非暴力抗議としてが公開した、peacenotwar という依存関係がインポートされた。


それにより、node-ipc モジュール機能が呼び出されるたびに、peacenotwar モジュールから取り出されたメッセージが STDOUT に出力され、ロシアとウクライナの戦況に関するコンテンツ・ファイルが、ユーザーのデスクトップに配置されると、Liran Tal は説明している。

2022年3月15日の時点において、node-ipc の最新 Ver 11.1.0 は、peacenotwar パッケージを Ver 9.1.3 から Ver 9.1.5 に引き上げ、NPM ライブラリ colors をバンドルし、STDOUT コンソールメッセージも削除している。

colors とは 別の faker という別のパッケージは、2022年1月に開発者 Marak Squires により開発されたものであるが、それらを併用すると、ソースコードに無限ループが導入され、ライブラリに依存するアプリケーションを効果的に破壊するという、意図的な妨害が生じることになる。

この問題を最初に報じた Bleeping Computer によると、この変更は報復的なものだと言われており、開発者は Fortune 500 企業をサポートする気を失っていると指摘している。

このような破壊的なペイロードを展開し、サプライチェーン侵害を引き起こすために、人気のモジュールを「プロテストウェア」として使用する考え方は、オープンソース・ソフトウェアに対する信頼を損ねる危険性がある。

Liran Tal は、「このセキュリティ・インシデントは、あるメンテナによるディスク上のファイルを破壊する行為と、その意図的な破壊行為を隠蔽/再生しようとする試みを含んでい。これは抗議という動機による攻撃だが、ソフトウェア・サプライチェーンが直面しているより大きな問題である、コード内の推移的依存関係がセキュリティに大きな影響を与える可能性があることを、浮き彫りにしている」と述べている。

この node-ipc 開発者の判断というか、決心というか、心が痛くなります。国家という枠組みを突き抜けて、世界で共有されてきたオープンソースですが、そこに制約をかけてしまうことに、とても残念な気持ちになってしまいます。ただ、無辜の人々が命を落としていることに、すべてをかけて抗議する人を、批判はできません。辛い話です。→ Ukraine まとめページ