This post is also available in: English (英語)
概要
新たなマルウェア ファミリまたはキャンペーンを見つけて調査する作業は、衣服のほつれた糸を辿っていくようなものです。糸をゆっくりと引くと網目がほどけていくように、真相が徐々に解明されるのです。今回はSquirtDangerという新たなマルウェア ファミリの調査から開始しました。このマルウェアの攻撃では、DLLファイル「SquirtDanger.dll」が使用されるからです。このマルウェア ファミリは、ハンドル名「TheBottle」で知られるロシア人のマルウェア作成者によるものであることを示す強力な証拠があります。いくつかのリードを辿っていくことで、TheBottleが背後にいることが明らかになりました。この投稿では、TheBottleの活動と、彼が作成した最新のマルウェア ファミリがどのように特定されたかを詳細に説明していきます。
マルウェアの概要
SquirtDangerは、いくつかの特徴と機能を備えた商用ボットネット マルウェア ファミリです。このマルウェアはC# (Cシャープ)で記述されており、何層もの埋め込みコードを含んでいます。システムでいったん実行されると、1分おきに実行されるスケジュール化されたタスクによってその存続が維持されます。SquirtDangerはネットワーク通信を可能にするために、リモートのコマンド&コントロール(C2)サーバーにTCP接続します。
SquirtDangerは、次のような数多くの機能を備えています。
- スクリーンショットの取得
- マルウェアの削除
- ファイルの送信
- ブラウザのCookieの消去
- プロセスの一覧表示
- プロセスの強制終了
- ドライブの一覧表示
- ディレクトリの取得
- ファイルのダウンロード
- ファイルのアップロード
- ファイルの削除
- ウォレットの窃取
- ブラウザ パスワードの窃取
- 被害端末のクリップボードで特定したウォレットの交換
- ファイルの実行
特定したウォレットを、攻撃者があらかじめ用意したウォレットと交換する機能は、これまでもComboJackマルウェア ファミリの分析で報告されており、新たな発見ではありません。SquirtDangerマルウェア ファミリの動作の詳細については、この投稿の付録の詳細な分析を参照してください。
パロアルトネットワークのUnit 42の研究者は、さまざまな分析技法を駆使し、約400個のSquirtDangerサンプルからある埋め込みIDを抽出しました。このIDは、以前私たちが独立したキャンペーンであると結論づけた複数の攻撃でも使われていたものでした。WildFireで観察された個々のミューテックスやその他のインジケータから、これらのマルウェア群は2つのサブセットに大別できることがわかりました。本マルウェアの調査を進めるにつれ、観察対象サンプルの機能とスタイルに合致するコード リポジトリを発見しました。図1に、このリポジトリのベース ページのスクリーンショットを示します。
このリポジトリのコードの詳細な分析によって、最初の評価が正しかったことと、このリポジトリがSquirtDangerのソース コードであることが明らかになりました。このコードを精査するうちに、TheBottleは、telegra.phで掲載した「告白」ブログの関連トピックとしてこのリポジトリ(およびその他のコード)を投稿したことが判明しました。
THEBOTTLEコネクション
悪名高いロシア人のサイバー犯罪者であるTheBottleは、何年もの間、世界中の地下市場で活動してきました。TheBottleは、地下市場やフォーラムでのマルウェアとソース コードの配布、販売、取引を生業にしています。どうやらTheBottleは、マルウェア作成者としてこれまで幾多の困難を経験してきたようです。FlashpointのVitali Kremz氏によると、
「顧客への背任行為が原因で、TheBottleは、地下サイトの運営者全員に締め出されてしまったことがあります。この背任行為は大きな損失でした。長期にわたる犯罪行為に不可欠なマルウェア サポートを提供しなかったことを訴える、何件ものクレーム事案を抱えることになったからです。」
SquirtDangerを調査する際に、TheBottleによるものとする「告白」ブログを見つけました。このブログの作者は、Odysseus Project、Evrial、Ovidiy Stealerを含む複数のマルウェア ファミリを作成したことを認めています。FlashpointのVitali氏はこう続けます。
「telegra.phに掲載した最近の告白で、彼は、地下舞台を歩き回る俳優のように、マルウェア開発者が実世界の問題に対処するのはいかに大変かを嘆いており、良心の呵責に耐え切れず、これまで作成したマルウェアをすべて告白することにしたと明かしています。この中には、Ovidiy StealerからReborn Stealerに至るまで、過去のサイバー犯罪に使われた多くの有名なマルウェアが含まれます。」
次のスクリーンショットは、原語であるロシア語によるTheBottleの投稿です。
図2 マルウェア ファミリの作成者であることを認めるTheBottleのブログのスクリーンショット。数多くのマルウェア ファミリを作成したことを後悔していることがわかる。
TheBottleのブログを綿密に調査すると、約900人からなるグループの存在を明らかにするテレグラム チャネルが特定されます。このグループのメンバーのほとんどはロシア人であるようです。チャネル メンバーは攻撃の実施、コード作成、さまざまなボットネットやビルダーへのアクセスの取引/販売を行っています。さらに、このテレグラム グループを拠点とする攻撃者の存在は注目に値します。その中には非常に有名な名前があります。たとえば、マルウェアの開発者として地下サイトのコミュニティで名を馳せているfoxovskyという攻撃者がいます。このブログの読者は、foxovskyが、以前に報告したマルウェア ファミリRarogの作成者であることを思い起こされることでしょう。また、1MSORRY仮想通貨ボットネットの攻撃者がこのコミュニティのメンバーであること、またほかにも、世界中で配布されているその他のマルウェア ファミリによる攻撃に関わっていることが明かされています。
オンライン調査の結果、TheBottleが頻繁にアクセスしていた複数のソーシャル メディアのアカウントを見つけることができました。それらのソーシャル メディア サイトのほとんどで、TheBottleが自分のハッカーとしてのアイデンティティを重視していたことが散見されます。
TheBottleのツイッターでの会話を精査すると、マルウェアを使用しているユーザーについて彼がどう思っているかを窺い知ることができます。
感染ベクトル/被害について
全体的に、複数のキャンペーンにおいて1,277個のSquirtDangerサンプルが使用されました。SquirtDangerは、「Warez」と呼ばれる不正なダウンロード ソフトウェア経由で配布されているようです。
この記事の執筆時点では、次の地域に分散された119台のC2サーバーが利用されていました。
さらに、出回っている中で、配信インフラストラクチャとして動作している52個の固有のIPまたはドメインを特定できました。このインフラストラクチャはマルウェアを積極的に流布するためのポイントとして機能します。この配信インフラストラクチャの一部は、無意識のうちにSquirtDangerを配布している侵害された正規のWebサイトのようです。
私たちは、トルコの大学、アフリカの電気通信会社、シンガポールのインターネット サービス プロバイダーなど、世界中で個人に対して使用されているSquirtDangerを目撃してきました。
結論
SquirtDangerマルウェア ファミリは、今日作成されている多くのコモディティ化されたファミリの1つにすぎません。攻撃者が侵害されたマシンでさまざまなアクションを迅速に実行できる、数多くの機能を備えています。マルウェア自体も興味深いことは明らかですが、さらにより興味深いストーリーを提供しているのは、その背後にいる攻撃者です。
TheBottleのスレッドを探ったときに、私たちの見つけたものがよく言われる氷山の一角にすぎないことがだんだんわかってきました。TheBottleのマルウェアとオンラインの活動をさらに深く調べたところ、これが連携して活動している犯罪者のより大きなウェブの中で実行されているマイナーな活動にすぎないことに気付きました。事実、ごく最近、TheBottleの仲間の1人が、Benkowとして知られるリサーチャーによって明らかにされました。
最後に、私たちは犯罪者の活動の一部を明らかにしているうちに、ほぼ個人的なレベルで投稿していた、多少後悔していると思われるマルウェア作成者の1人に気づきました。最終的に、TheBottleは彼のやり方を変えるのでしょうか? さらに調べるつもりです。
インテリジェンスのいくつかのソースを使用している点が、この攻撃者とマルウェアの調査において鍵となります。パロアルトネットワークのお客様は、この脅威から以下によって保護されています。
- WildFireは、悪意があると判断した、すべてのSquirtDangerファイルを検出します。
- AutoFocusをご使用のお客様は、SquirtDangerタグでこれらのサンプルを調べることができます。
- Trapsは、SquirtDangerに関連付けられたすべてのファイルをブロックします。
付録
マルウェアの分析
SquirtDangerマルウェア ファミリは、作成者によって数多くの機能が装備されています。マルウェアは、C#でコーディングされています。マルウェアの作成者は、SquirtDangerペイロードをコンパイル済みの実行可能ファイルに埋め込むためにCosturaアドインを使用することを選択しました。
メイン モジュールがロードされ、その後、実行されると、まずは、インストール ディレクトリを作成し、マルウェアは自身をそこにコピーします。以下のディレクトリと対応するインストール実行可能ファイルが、分析されたサンプル内で観察されています。
- %TEMP%\Microsoft_SQL_SDKs\AzureService.exe
- %TEMP%\MonoCecil\Fazathron.exe
SquirtDangerが必要なパスにコピーされた後、現在のプロセスを強制終了する前に、このマルウェアの新しいインスタンスが生成されます。
インストール段階が完了し、正しい場所から実行すべきマルウェアが見つかると、一度に実行されるマルウェアのインスタンスが1つだけになるように新しいミューテックスが作成されます。分析したすべてのサンプルにおいて、以下の2つのミューテックスが観察されています。
- Omagarable
- AweasomeDendiBotnet
ミューテックス生成後、SquirtDangerは、永続的なメカニズムとして動作する別の実行可能ファイルが存在しないかどうかをチェックします。このシンプルな実行可能ファイルは、SquirtDangerペイロードの存在をチェックするだけです。ペイロードが見つからない場合は、ディスクに新しいコピーが書き込まれ、新しいインスタンスが生成されます。この実行可能ファイルはSquirtDangerペイロードに埋め込まれ、次の場所にドロップされることが観察されています。
- %TEMP%\MSBuild.exe
- %TEMP%\OmagarableQuest.exe
このドロップされたファイルには、被害者による検出を妨げるために、SYSTEM属性とHIDDEN属性の両方が与えられます。このファイルを実行するために、「CheckUpdate」という名前の新たにスケジュールされたタスクが作成されます。このスケジュールされたファイルは、その初期セットアップ後、1分ごとにチェックします。
SquirtDangerは、標準TCPソケットを使用してリモートC2サーバーとの通信に進みます。クライアントとサーバー間で送信されたデータは、シリアル化されますが、難読化はされません。マルウェアは、最初にリモート サーバーと通信するときに、インストールする追加モジュールのリストの取得を試みます。この通信の例は、以下のようになります。
モジュールとそれらの関連付けられたURLのリストが収集された後、SquirtDangerは、HTTP通信を介してこれらのモジュールをダウンロードします。
SquirtDangerは、次のような数多くの機能を備えています。
- スクリーンショットの取得
- マルウェアの削除
- ファイルの送信
- ブラウザのCookieの消去
- プロセスの一覧表示
- プロセスの強制終了
- ドライブの一覧表示
- ディレクトリ情報の取得
- ファイルのダウンロード
- ファイルのアップロード
- ファイルの削除
- ウォレットの窃取
- ブラウザ パスワードの窃取
- 被害端末のクリップボードで特定したウォレットの交換
- ファイルの実行
ブラウザからのパスワードの窃取の場合は、以下を含む多数のブラウザがサポートされています。
- Chrome
- Firefox
- Yandex Browser
- Kometa
- Amigo
- Torch
- Opera
また、SquirtDangerは、以下を含む、さまざまな仮想通貨のウォレットを検索する機能も備えています。
- Litecoin
- ビットコイン
- Bytecoin
- Dash
- Electrum
- Ethereum
- Monero
ウォレットの窃取に加え、マルウェアには、特定の正規表現が見つかったときに、被害端末のクリップボードのデータを交換する機能も含まれています。マルウェア内には、以下の正規表現が存在していました。
タイプ | 正規表現 |
QIWI | (^\+\d{1,2})?((\(\d{3}\))|(\-?\d{3}\-)|(\d{3}))((\d{3}\-\d{4})|(\d{3}\-\d\d\-\d\d)|(\d{7})|(\d{3}\-\d\-\d{3})) |
BTC | ^([13][a-km-zA-HJ-NP-Z1-9]{25,34})$ |
ETH | ^(0x[0-9a-fA-F]{40})$ |
LTC | ^(L[a-zA-Z0-9]{26,33})$ |
XRP | ^(r[rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz]{27,35})$ |
DOGE | ^(t[0-9a-zA-Z]{34})$ |
ZEC | ^(D{1}[5-9A-HJ-NP-U]{1}[1-9A-HJ-NP-Za-km-z]{32})$ |
XMR | ^(4[0-9AB][1-9A-Za-z]{93,104})$ |
マルウェアは、これらのデジタル通貨アドレスのいずれかが見つかると、その値を事前に決定されている値と交換するように構成されています。このブログ記事の付録に記載したように、サンプル セットからは多数のデジタル通貨アドレスを取得できました。以前に、ComboJackマルウェア ファミリの分析時にこの機能についてレポートしたとおり、この機能は新しいものではありません。
SQUIRTDANGERのサンプル
SquirtDangerハッシュの完全なリストおよび最初に見つかったタイムスタンプについては、次のリンクを参照してください。
C2サーバー
C2サーバーの完全なリストおよび最初に見つかったタイムスタンプについては、次のリンクを参照してください。
配信サーバー
配信サーバーの完全なリストおよび最初に見つかったタイムスタンプについては、次のリンクを参照してください。