1. 概要
BlueShell脆弱性は、Go言語で開発されたバックドア型マルウェアです。
バックドアの単純な形態であるBlueShell脆弱性は、C&Cサーバーとの通信にTLS暗号化をサポートし、ネットワーク検知を回避して攻撃者のコマンド(リモートコマンド実行、ファイルダウンロード/アップロード、Socks5プロキシ)を実行する。
ソース: GitHub https://github.com/restran/BlueShell
2. 攻撃プロセス
BlueShellは、C&CサーバのIPアドレス、ポート番号、レイテンシーの3つの設定データを持っています。また、C2サーバーから合計4つのコマンド("shell"、"upload"、"download"、"socks")を受け取ることができ、それぞれのコマンドに応じた特定のアクションで攻撃を行います。
2-1 シェルコマンド
- C2 サーバから受信したコマンドが "shell "の場合,ユーザ定義パッケージである shell パッケージの GetInteractiveShell メソッドが呼び出される.
- cmd プロセスの入出力を、現在接続している C2 のネットワーク入出力に変更し、cmd を実行する。
- これにより、攻撃者はリモートで cmd コマンドを実行できる。
2-2 アップロードコマンド
- C2 サーバから受信したコマンドが「upload」であった場合、ユーザ定義パッケージである shell パッケージの UploadFile メソッドが呼び出される。
- UploadFileメソッドが呼び出されると、被害者サーバは攻撃者が指定したパスにファイルを作成し、ネットワーク経由で受信したデータを使用する。
- 攻撃者はこのコマンドを使用して、被害者サーバー上の特定のパスにファイルをアップロードする。
2-3 ダウンロード・コマンド
- C2サーバから受信したコマンドが "download "であった場合、ユーザ定義パッケージであるシェルパッケージのDownloadFileメソッドが呼び出される。
- DownloadFileメソッドが呼び出されると、被害者サーバは攻撃者が指定したファイルを被害者サーバから読み出し、C2サーバに送信する。
- これにより、攻撃者は被害者サーバから特定のファイルをダウンロードすることができる。
2-4 Socksコマンド
- C2サーバから受信したコマンドが "socks "の場合、ユーザ定義パッケージであるshellパッケージのRunSocks5Proxyメソッドが呼び出される。
- RunSocks5Proxy メソッドが呼び出されると、C2 サーバーから受け取った認証情報(ユーザー名:パスワード)に基づいてプロキシ・サーバーがセットアップされる。
- その後、攻撃者は被害者のPC上でプロキシ機能を使用することができる。
3. 対策
バックドア型マルウェアは、マルウェアを仕込む過程で、ファイルのアップロードなどの事前動作が必要となる、
この脆弱性は、バイナリー・マルウェアをパターンとして検出することが困難であるため、パターン化が困難である。
BlueShell脆弱性と同様の事例がないか継続的に監視している。
4. 結論
BlueShellは、感染したシステム上で攻撃者からのコマンドを受け取り、コマンドの実行、ファイルのダウンロード/アップロード、Socksのプロキシ5などの機能を実行するバックドア型マルウェアである。
Go言語で開発されているため、WindowsだけでなくLinux環境も狙える。また、GitHub上でオープンソース化されており、様々な攻撃者が攻撃に利用している。
このようなセキュリティの脅威を防ぐためには、脆弱な設定がないか環境をスキャンし、関連するシステムを常に最新バージョンにアップデートして攻撃から守る必要がある。また、マルウェア感染を未然に防ぐために、ファイアウォール/セキュリティ・プログラムを最新バージョンにアップデートするよう注意する必要がある。
5.参考文献