Wireshark(ツール解説)

この記事をシェア

概要

Wiresharkは、世界で最も広く利用されているパケットキャプチャツールの1つです。ネットワーク上を流れるパケット(通信データ)をリアルタイムで取得・解析し、詳細な情報を確認できます。オープンソースで無償提供されており、Windows・Linux・macOSなどの主要なOSで利用可能です。

Wiresharkには、以下の機能が備わっています。

  • パケットキャプチャ
    ネットワークインターフェースを通過するパケットを取得し、保存や再解析が可能
  • プロトコル解析
    TCP/IP、HTTP、DNS、TLSなど数千種類のプロトコルに対応し、階層ごとにデコードして表示
  • フィルター機能
    「特定のIPアドレス」「特定のプロトコル」「特定のポート」などの条件を指定して解析を効率化
  • 統計機能
    通信量の統計、会話(セッション)ごとのやりとり表示、フローチャート生成など
  • 暗号化通信の解析
    TLSキーやWi-Fi WPAキーを設定することで復号が可能な場合がある

マルウェア解析時におけるWiresharkの利用例

マルウェアにとって外部との通信は一般的かつ重要な機能の1つです。C&Cサーバーとのやり取りによって、攻撃者は感染端末の制御、追加モジュールの配布、データ窃取や暗号鍵の取得といった活動を行います。そのため、マルウェアが行う通信を詳細に調査・解析することは、マルウェア解析における大きな柱の1つと位置付けられます。
Wiresharkを用いて通信パケットを解析する際は、仮想環境内に「マルウェアを実行する仮想マシン」と「マルウェアの通信先となる仮想マシン」の2つを用意し、サンドボックス内でマルウェアのC&Cサーバーとの通信を疑似的に再現します。

解析用環境のイメージ図

それでは、Wiresharkとこのサンドボックスを用いたマルウェア解析の流れを紹介します。

①感染PCでWiresharkを起動する

Wiresharkの画面

Wiresharkを起動すると、パケットを取得するネットワークインターフェースを選択することができます。EthernetやWi-Fiといったネットワークインターフェースを選ぶと、上に示したWiresharkの画面が表示されます。
左上赤枠内のボタンを使ってパケットの取得・停止を切り替えることができます。デフォルトではパケットを取得する状態になっています。

②感染PCでマルウェアを実行する

パケットを取得する状態になっていることを確認し、マルウェアを実行します。

③マルウェアの活動が終了したら、Wiresharkの通信パケット取得を停止する

マルウェアの活動が終了するまで一定時間待機し、通信パケットを取得します。通信パケットを解析する前に、左上のボタンでパケット取得を停止し、パケットをpcapファイルに出力しておきます。

④Wiresharkでパケットを解析する

Wiresharkにはさまざまな通信パケット解析のための機能が用意されています。そのうちのいくつかを紹介します。

・プロトコル階層

プロトコル階層を表示した画面

パケットを階層ごとに分類して表示する機能です。この画面から特定のプロトコルに絞り込んで表示することもできます。

・HTTPのエンドポイントを表示する

HTTPのエンドポイントを表示した画面

Wiresharkでは、それぞれのプロトコルに特化した分析機能が用意されています。これはHTTPパケットを対象に、リクエストが送信された終端を表示する機能です。1つの通信先に複数回リクエスト送る、さまざまな通信先に1回ずつリクエストを送る、といった特徴的な挙動がこの機能で可視化されます。

・フィルタリング機能

DNSでのフィルタリング結果

Wiresharkは独自のフィルター式に基づいてパケットのフィルタリングをすることができます。上の画像では、DNSでの通信に限ってパケットを表示しました。

Wiresharkのパケット解析を通じて、マルウェアが不審な通信先に対してHTTPSでの通信を試みていることがわかりました。
HTTPS通信の場合、TLSハンドシェイク以降のアプリケーションデータは基本的にすべて暗号化されます。マルウェア解析ではマルウェアが行う通信のリクエスト・レスポンスの中身が重要となりますが、Wiresharkを使って暗号化された部分を復号するためには追加の設定が必要です。

不審な通信パケット(HTTPS)

補足:HTTPSのパケットをWiresharkで解析する方法

マルウェアが行うHTTPS通信のパケットをWiresharkで解析する場合は、Burp SuiteやmitmproxyなどのSSL/TLSプロキシを利用する必要があります。
SSL/TLSプロキシを感染PCと通信先PCの中間で機能するプロキシとして設定し、感染PC側にプロキシのルート証明書をインストールします。また、Wiresharkはプロキシで復号された通信をキャプチャするように設定します。
これらの設定を行った後にマルウェアの通信を発生させることで、Wiresharkで復号されたHTTPS通信の解析を行うことができます。

⑤通信先などの情報を手掛かりに更なるOSINTを実施する

④で発見した通信先の情報をVirusTotalで調査します。

VirusTotalでの調査結果

このURLでは、過去に別種のマルウェアが配布されていたことがわかりました。VirusTotalでは、このURLのペイロードを調査することができるため、この調査結果から更に調査対象マルウェアの挙動を深堀りすることができます。
このように、Wiresharkを活用することで、マルウェアが行う通信について詳細に調査することが可能です。

この記事をシェア

サイバー攻撃対策に

引用・出典元

サイバーセキュリティ
情報局の最新情報を
チェック!