
いろいろなタイプのマルウェアがありますが、また新たな作戦のマルウェアが確認されています。
現地のソフトウェアをマルウェア化するマルウェアです。
今回の例の舞台はnpmリポジトリです。
どんな動きをするのでしょうか。
- 人気のライブラリのようなもの
npmリポジトリでは、たくさんの有名で便利なライブラリが公開されています。
その一つにssh2というライブラリがあります。
これは その名前が示す通り、このライブラリを使うことで自作のアプリケーションの中に簡単にsshクライアントの機能やsshサーバの機能を実現することができるようになります。
全部自分で実現しようとすると手間がかかる内容ですが、有名な実装で作成済みのssh2を利用すれば、簡単に この機能を利用できる状態にできます。
脅威アクターはこの内容をコピーし、ethers-provider2という名称で公開しました。
内容はほぼssh2なのですが、ssh2にはない悪意ある機能が追加されたものとなっていました。 - 外部ツールを設置するethers-provider2
正規のssh2にはない機能がethers-provider2には搭載されています。
ethers-provider2がインストールされる際に実行される機構の内容がssh2の内容から変更されており、この段階で外部から悪意ある別のインストール用ファイルを手元に持ってきて実行する動きをします。
実行された追加のインストール作業が完了すると、その悪意ある追加インストーラーは侵害環境から削除されます。
しかし、悪意あるインストーラーが設置した第2段階のマルウェアは環境に残った状態になります。 - 環境を確認する第2段階のマルウェア
このマルウェアは無限ループで環境を監視します。
監視している内容は、特定のnpmパッケージがインストールされるかどうか、です。
ethers-provider2の場合、この監視対象はethersでした。
ethersが環境にインストールされた状態となったことが確認されると、第2段階のマルウェアはethersを構成するファイルの一つを変更します。
変更されたファイルが動作すると、第3段階のマルウェアを設置する動作を開始します。 - リバースシェルの設置
第3段階のマルウェアはリバースシェル機能を持ったものです。
といっても、体裁としてはこの第3段階のマルウェアはsshクライアントです。
しかし、このsshクライアントは接続先のsshサーバから特定の文字列を受信するとリバースシェルに動作が変化する機構が実装されています。
この第3段階のマルウェアは独立して動作します。
つまり、この第3段階のマルウェアを設置することになる原因のethers-provider2には依存していません。
設置が完了した第3段階のマルウェアは、ethers-provider2が侵害環境から削除された後も引き続き悪意ある機能を提供できます。
いろいろなタイプのマルウェアが登場してきます。
今回の話は、現地の正規のソフトウェアにパッチを適用してマルウェア化して悪用するという作戦です。
今回はnpmで公開されていたライブラリの話でしたが、これはnpmに限ったことではありません。
同じような作戦は他のソフトウェア公開機構でも実現できてしまう内容です。
なにかを入手しようとするとき、その入手しようとしているものが妥当なものなのか、よく確認しないとですね。
Malware found on npm infecting local package with reverse shell
https://www.reversinglabs.com/blog/malicious-npm-patch-delivers-reverse-shell
この記事をシェア |
---|