ロシアのウクライナ侵攻に抗議する意図でオープンソースパッケージに悪質コード
今回は「ロシアのウクライナ侵攻に抗議する意図でオープンソースパッケージに悪質コード」についてご紹介します。
関連ワード (セキュリティ等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、ZDNet Japan様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
最初は邪心のない抗議活動だった。JavaScriptのパッケージマネージャー「npm」のメンテナーであるBrandon Nozaki Miller氏(RIAEvangelist)は、「peacenotwar」というオープンコードのnpmソースコードパッケージを開発し、公開した。ロシアによるウクライナ侵攻に対する抗議メッセージを追加する以外、特別な機能はなかった。しかしその後、このパッケージはダークサイドに向かって舵を切り、コンピューター上のファイルを破壊し始めた。
正確には、Miller氏はロシアまたはベラルーシのIPアドレスを使用しているコンピューター上のファイルを破壊するようなコードを追加した。そしてこのモジュールを、広く普及しているnode-ipcモジュールに依存するパッケージとして追加したのだ。このnode-ipcは、多くのJavaScriptプログラマーが使用し、依存関係の多いパッケージだ。このためpeacenotwarは、ちょっと気に障る存在から、システム破壊者へと姿を変えたのだ。
peacenotwarは、最初に公開された時から数回の変更を経ているが、極めて危険なものと見なす必要がある。Miller氏は被害の拡大を狙い、コードの変更部分をBase64でエンコードすることで、単にコードを見るだけでは問題を発見しづらくしている。
この問題を発見した、開発者向けセキュリティプラットフォームを手掛けるSnykによると、「node-ipc(10.1.1以降で10.1.3よりも前のバージョン)は、悪意あるパッケージだ。ロシアやベラルーシのIPを用いているユーザーを標的にする悪質なコードが含まれている。絵文字のハートでユーザーのファイルを上書きする」という。この問題は現在、「CVE-2022-23812」として追跡されている。Snykはこの悪質なオープンソースパッケージに対して、共通脆弱性評価システム(CVSS)で9.8(緊急)というスコアを付与している。
つまり、このパッケージは絶対に使うべきではないということだ。
これは、言うは易く行うは難しだ。node-ipcは数多くのプログラムに組み込まれている。このnodejsモジュールは「Linux」や「Mac」「Windows」システム上のローカルやリモートでのプロセス間通信(IPC)で用いられている。また、広く普及しているVue CLIでも用いられている。そのため、このマルウェアは多数のシステムに影響を及ぼす恐れがある。
この問題を発見したSnykの研究者Liran Tal氏は、「メンテナーRIAEvangelistの意図的で危険な行為が、一部で正当な抗議の行動だと受け止められるとしても、開発者コミュニティーにおけるこのメンテナーの今後の評判や利害にどう影響を及ぼすだろうか?このメンテナーは今後、彼らが参加するどのプロジェクトに対しても、そのような行為、あるいは一層攻撃的な行為を実行に移すことはないと、再び信用を得ることはないのではないか?」と述べている。
Miller氏はGitHubで公開しているpeacenotwarモジュールについて、「これは、完全に公開され、文書化され、ライセンス化されているオープンソース(プログラム)だ」と自ら擁護している。
しかし、もし誰かがこのようなことを実行し、そのようなメッセージを残さなければどうなるだろうか。ユーザーが詳細な情報を得て判断できるようにすることが重要であれば、この危険なコードが見えなくなっていたのはなぜか。
いずれにせよ、誰もが知っている通り、人はドキュメントを読みたがらないものだ。さらに、Sophosの上級脅威リサーチャーSean Gallagher氏もツイートしているように、本番システムに対して何も考えずにコードを追加するような人は、自らでトラブルを呼び込むことになる。同氏は「品質保証(QA)を適切に実施できない依存関係をそのままパッチとして適用しているのであれば、セキュリティ運用(SecOps)をまったく実行していないことになる」と記している
とは言うものの、この「プロテスト(抗議)ウェア」は危険な前例を作り出したといえるだろう。あるプログラマーはGitHubで、「これで何が起こるかといえば、ロシアや政治と無関係の西側企業のセキュリティチームがフリー、オープンソースのソフトウェアをサプライチェーン攻撃の手段として捉え始め、フリー、オープンソースのソフトウェアをすべて社内で禁止し始める。あるいは、少なくともコミュニティーがメンテナンスしているものすべてをだ。ウクライナの人々にとって、プラスの影響はなく、FOSS(フリーオープンソースソフトウェア)の導入を損なうだけだろう」と指摘している。
その一方で、オープンソース界の持つ自浄作用が働き始めている。開発者のTyler S. Resch氏(MidSpike)によって、安全なnode-ipcのフォークをGitHub上に構築する取り組みが開始されている。