開発の現場では、いろいろなコンピューター言語が利用されています。
そういったものの一つに、Node.jsがあります。
Node.jsは、大量の同時接続をさばけるネットワークアプリケーションの構築を目的に設計されたJavaScript環境で、Webサーバなどのスケーラブルなネットワークプログラムの記述に利用されます。
この言語も、他のモダンな言語と同じく、巨大なリポジトリを持っていて、多くのライブラリを使用して効率的な開発を進めることができるようになっています。
Node.jsのリポジトリは、npmです。
このnpmに含まれるパッケージの中に、最近削除されたパッケージが2つありました。
どのようなものだったのでしょうか。
- warbeast2000
開発中に見える状態で公開されていました。
このパッケージは、すでに削除されています。
開発は活発で、削除された時点では、8つのバージョンが公開されていました。
問題があるバージョンがインストールされると、ポストインストールスクリプトが実行される構造になっていました。
ポストインストールスクリプトは感染環境のssh秘密鍵を取得し、それをBase64で符号化してGitHubにアップロードする動作を行います。
この悪意ある機能は、8つのバージョンの最後のバージョンにのみ搭載されていました。 - kodiak2k
こちらも、すでに削除されています。
削除された時点では、30以上のバージョンが公開されていました。
これも同じく、問題があるバージョンがインストールされると、ポストインストールスクリプトが実行される構造になっていました。
ポストインストールスクリプトは感染環境のssh秘密鍵を取得し、それをBase64で符号化してGitHubにアップロードする動作を行います。
この悪意ある機能は、最初のいくつかのバージョンには含まれませんでしたが、後ろのほうのすべてのバージョンに搭載されていました。
開発者が一時的に使うツールなどの小規模な開発では、使うパッケージの数が少ないこともあるでしょう。
しかし、通常の開発の場面では、それなりの数のパッケージを使うことが多いように思えます。
そういった多数利用されるパッケージの中に、更新されて、途中からこういった悪意ある機能が追加実装されたものが含まれているかもしれないのです。
機能の追加、機能的なバグの解消、脆弱性となる問題の解消、処理効率の向上など、パッケージの更新は、通常、実施したいものです。
しかし、こういった事例があると考えさせられます。
こういった脅威には、どのように対応していくことができるでしょうか。
参考記事(外部リンク):GitGot: GitHub leveraged by cybercriminals to store stolen
data
www.reversinglabs.com/blog/gitgot-cybercriminals-using-github-to-store-stolen-data
この記事をシェア |
---|