(英語)概要QakbotはQbotという名前でも知られる情報窃取を行うマルウェアです。長年にわたり活発に利用され、非常に特徴的なトラフィックパターンがあります。今回のWiresharkチュートリアルでは、最近のQakbot感染トラフィックのパケットキャプチャ(pcap)を確認していくことにしましょう。セキュリティ専門家がQakbotによる感染を検出・調査するには、同マルウェアによる感染トラフィックパターンを理解することが重要です。本チュートリアルは、Wiresharkに関する基本的知識があることを前提としています。チュートリアルで設定したカスタマイズ済みの列表示を使います。この回で解説したWiresharkディスプレイフィルタもすでに実装されているものとしています。本チュートリアルで説明する内容は次のとおりです。こちらから取得してください。内にありますのでダウンロード後展開してください。パスワードは「infected」です。図1は、以前のチュートリアルで設定したWireshark環境で開いた上記pcapの見えかたを示しています。本チュートリアルで使うpcapをWireSharkで開いたところQakbotの配布方法Qakbotはほとんどの場合、悪意のあるスパム(マルスパム)を介して配布されますが、最近(2019年11月)ではエクスプロイトキットを介しても配布されています。2019年3月のこちらの報告でも指摘されているとおり、QakbotはEmotetをはじめとするさまざまな別種マルウェアのフォローアップ感染に利用されることもあります。Qakbotの最近のマルスパムベース配布キャンペーンでは、図2のフローチャートに示した経過をたどります。最近のQakbot配布キャンペーンのフローチャートマルスパム内のリンクからの最初のzipアーカイブQakbotを配布する最近のマルスパムは、正当な電子メールアドレスを偽装し、偽のメールスレッドの体裁をとっています。した例の1つを図3に示します。Qakbotをプッシュする最近のマルスパムサンプルこうしたメールに含まれるURLは一連の短い数字の後ろに.zipがついています。URLhausとTwitterで最近報告されていたQakbotマルスパムのURLサンプルをいくつか表1にまとめましたので参考にしてください。.zipというフィルタを指定すれば、zipアーカイブを含むHTTPリクエストを見つけることができます(図4参照)。初期zipアーカイブのURLを見つけるではここで、図5と6に示した手順でTCPストリームを追跡し、これがzipアーカイブであることを確認してください。その後、図7に示した手順でpcapからzipアーカイブをエクスポート可能かどうかを確認してみましょう。このURLがzipアーカイブを返したことを示すインジケータ(痕跡)を確認する(zipの最初の2バイトは、ASCII文字でPK。pcapのHTTPトラフィックからオブジェクトをエクスポートできるか確認([ファイル]メニューで[オブジェクトをエクスポート]、[HTTP]の順にクリック)ほとんどの場合、[ファイル]、[オブジェクトのエクスポート]、[HTTP]の順でメニューをたどれば、HTTP経由で送信されたzipアーカイブをエクスポートできるはずですが、残念ながらこのケースでは、この方法で単純に9312.zipをエクスポートすることができません。HTTPオブジェクト一覧]ウィンドウ内でファイルが数百個の小さなチャンクに分割されてしまっているためです。9312.zipが一覧上数百のオブジェクトに分割されているためこの方法でエクスポートすることはできない幸いこれでもエクスポートする方法はあります。[TCPストリーム]のウィンドウからデータをエクスポートし、バイナリエディタで開いてHTTPのレスポンスヘッダを削除すれば大丈夫です。HTTPオブジェクト一覧]ウィンドウをいったん閉じて、次の手順でこのpcapからzipアーカイブを抽出してください。.zip」のフィルタをもう一度実行し、図5に示した手順で9312.zipのHTTPリクエストのTCPストリームを追跡します。kB)」を選択し、サーバーからのレスポンストラフィックのみを表示させます。図10を参考にして、[としてデータを表示して保存する]ドロップダウンボックスを[ASCII]から[Raw(無加工)形式]に変更します。図11を参考にして、データをバイナリとして保存します。この例では「9312.zip.bin」というファイル名で保存しています。図12を参考にして、任意のバイナリエディタで保存したバイナリデータ(9312.zip.bin)を開き、zipアーカイブの最初の2バイト(ASCIIでは「PK」と表示)より前にあるHTTPリクエストヘッダを削除します。バイナリエディタでは、カーソルで先頭から「PK」より前の部分をなぞって選択した上でDeleteキーを押下すれば削除できるでしょう。図13を参考にして、バイナリエディタ上でファイルをzipアーカイブとして保存します(ここでは「9312.zip」として保存しました)。図14を参考にして、ターミナルないしコマンドプロンプトを開き、fileコマンドでファイルをチェックし、これが実際にzipアーカイブであることを確認します。コマンドでzipアーカイブを展開し、.vbsファイルを取得後、fileコマンドでこの.vbsファイルをチェックしてからshasumコマンドでSHA256値を計算します。この一連の手順を行うさいは、図9〜14を参考にしてください。データをバイナリとして保存。任意のバイナリエディタで保存したバイナリデータ(9312.zip.bin)を開き、zipアーカイブの最初の2バイト(ASCIIでは「PK」と表示)より前にあるHTTPリクエストヘッダを削除。コマンドでzipアーカイブを展開。ウィンドウでファイルをチェックした例です。このpcapから抽出したzipアーカイブは、VirusTotalに提供されているこのファイルと同じものになるはずです。zipアーカイブから抽出したVBSファイルもVirusTotalに送信済みのこちらのファイルと同じもののはずです。抽出されたVBSファイルをこちらのパブリックなサンドボックス分析にかけた結果からは、これが感染チェーンにおける次のQakbot関連URL、すなわちQakbotのWindows実行可能ファイルを返すURLを生成していることがわかります。QakbotのWindows実行可能ファイル抽出されたVBSファイルは、QakbotのWindows実行可能ファイルを返すURLを生成します。2019年12月以降のQakbot実行可能ファイル用URLは44444.pngまたは444444.pngで終わっています。URLの最近のサンプルを表2にまとめましたので参考にしてください。GETリクエストを見つけましょう(図15参照)。順にクリックしてエクスポートしてください。つづいて図17を参考にエクスポートした結果をチェックしてください。ウィンドウでエクスポートしたファイルを確認しているところ(fileコマンドおよびshasumコマンド)このpcapから抽出したQakbotのWindows実行ファイルはVirusTotalに提供されているこのファイルと同じものになるはずです。Qakbot関連のインジケータが生成され、これがQbotとして識別されたことがわかります。感染後のHTTPS活動まずは、以前のWIresharkチュートリアルで作成した「basic」フィルタを使い、pcapのWebトラフィックをざっと眺めてみましょう。GETリクエスト後の活動までスクロールダウンしてください。図18に示すように、関連付けられたドメインのない68.1.115[.]106へのHTTPSトラフィックやSSL/TLSトラフィックのインジケータが複数表示されるはずです。QakbotによるHTTPSトラフィックとSSL/TLSトラフィックこのトラフィックには、Qakbot感染時によく見られる異常な証明書発行者データが含まれています。以前、Ursnif感染の解析をしたWIresharkチュートリアルで、こうした異常な証明書発行者を確認する方法を学習しましたね。やりかたを忘れてしまったかたは、こちらのチュートリアルでおさらいしておいてください。以下のWiresharkフィルタを指定してQakbot証明書発行者データを確認しましょう。3.0以降をお使いの場合は、ssl.handshake.typeの代わりにtls.handshake.typeを指定してください。24が表示されます)。列に表示される行(フレーム3174)が見つかりますので、この行を選択して図19に示した手順で証明書発行者データが見つかるまでフレームの詳細ウィンドウを展開していきます。Qakbotトラフィックから証明書発行者データを確認したところ(フレーム3174)。Name)のパターンは通常のものからの乖離が見られ、正当なHTTPS、SSL、TLSトラフィックで見られる証明書のパターンを踏襲していません。このケースでの発行者データは次のようになっています。LLC.id-at-commonName=gaevietovp.mobiその他の感染後トラフィックさて、このpcapには、Qakbot感染に関連した他の活動も含まれています。これらの活動はそれ自体に悪意のあるものではありませんが、これまでの調査結果に照らせば、ここでのQakbotによる感染はすでに完了しているものと想定できます。Qakbot感染のもう1つのインジケータとなるのが、cdn.speedof[.]meへのHTTPSトラフィックです。ドメインspeedof[.]meは、正規のインターネット速度テストサービスに使用されるものでこれ自体は悪意のあるトラフィックではありません。Qakbotに感染するとcdn.speedof[.]meへのトラフィックが頻繁に見られるようになります。図20は、pcapから抽出したこの活動を示しています。ドメインへの接続Qakbotはまた、感染Windowsホスト上のすべてのブラウザのウィンドウを開きます。Explorerを開いている様子がわかります。この分析からはQakbotが次のURLへのトラフィックを生成した様子もわかります。hxxp://store.nvprivateoffice[.]com/redir_chrome.htmlhxxp://store.nvprivateoffice[.]com/redir_ff.htmlhxxp://store.nvprivateoffice[.]com/redir_ie.htmlドメインnvprivateoffice[.]comは2012年からGoDaddy経由で登録されているドメインで、store.nvprivateoffice[.]comはFedoraサーバー上のnginxのデフォルトwebページを表示します。10ホストでのQakbot感染によるものです。Edgeのwebトラフィックのみが表示されています。どちらのブラウザでもQakbotが生成したURLはhxxp://store.nvprivateoffice[.]com/redir_ie.htmlです。このトラフィックを見つけるには次のWiresharkフィルタを使用します(図21参照)。GETリクエストそれぞれについて、TCPストリームを追跡しましょう。ExplorerのHTTPヘッダにはUser-Agentが含まれています。EdgeのHTTPヘッダにUser-Agentが含まれています。11を使用するstore.nvprivateoffice[.]comへのQakbotトラフィック。Edgeを使用するstore.nvprivateoffice[.]comへのQakbotトラフィック。ブラウザのもの最後に、今回のQakbotに感染したホストのpcapには、SMTP、IMAP、POP3など、さまざまな電子メールプロトコル用ポートに対する電子メール関連TCPトラフィックが含まれています。このweb以外のトラフィックがどんなものであるかを把握するには、次のWiresharkフィルタを使用します(図25参照)。Qakbot感染トラフィックに含まれるweb以外のトラフィックがどのようなものかをおおまかにつかむ図25は、さまざまな電子メールプロトコルで一般的に使用されている25、110、143、465、587、993、995などのポートへのTCP接続と、試行されたTCP接続を示しています。結果の最初の2行は65400/tcpへのトラフィックを示していますが、関連するTCPストリームを確認すると、これも電子メール関連のトラフィックであることがわかります。次のWiresharkフィルタを使用して、感染ホストからの電子メール関連のトラフィックの詳細を確認してください(図26参照)。pcap内でQakbotが生成した電子メール関連のトラフィックを見つけるこの手の電子メールトラフィックについてもっとよく把握するにはいくつかTCPストリームを追跡してみるとよいでしょう。通常であれば、WindowsクライアントからパブリックなIPアドレスに対してこのように暗号化されていない電子メールのトラフィックを見かけることはまずありません。他のインジケータと合わせれば、このsmtp、imap、popフィルタからQakbotによる活動が明らかになることもあります。本チュートリアルでは、QakbotマルウェアによるWindows感染を調べるさいのヒントを見ていきました。malware-traffic-analysis.netにも多数掲載しています。『Wiresharkによるパケット解析講座』シリーズの以前の講座は以下から確認してください。