pcap分析のすすめ3

このブログは、進学してかぷかぷ笑っている株式会社Armorisのアルバイトkuramubon_8810が書いています。 あるもりすぶろぐの内容は個人の意見です。

はじめに

今回はmalware-traffic-analysisのエクササイズ問題をお借りしてpcap分析への取り組み方やヒントを解説していきます。

ブログ内で使用するもの

問題

pcapとアラートに基づいて、インシデントレポートを書いてください。
インシデントレポートには、以下3つのセクションが必要です。
- 要約
    - 簡潔かつ、具体的に何が起こったのか(いつ、誰が、何が)
- 詳細
    - 被害者の詳細(ホスト名、IPアドレス、MACアドレス、Windowsのユーザー名
- IoC
    - 攻撃の詳細(IPアドレス、ドメインやURL、マルウェアのバイナリを抽出できる場合はSHA256のハッシュ値)

取り組みの流れ

今回は以下のような流れで取り組んでいきます。

  • 被害者の特定
  • 被害の詳細

Wiresharkの見方

詳しい見方はこちらの記事を参考にしてください。
自分は、こちらの記事を参考に表示列をカスタマイズしています。

Filter

条件を指定してパケットを絞り込むことができます

Packet List

パケット単位で一覧が表示されます

Pakcet Details

選択したパケットの詳細が表示されます

Packet Bytes

選択したパケットの実際のデータが表示されます

pcap分析

問題のサイトからASSOCIATED FILESをダウンロードし、Wiresharkで開きます。

被害者の特定

まずは、被害者を特定していきます。
DHCPサーバへの問い合わせを確認したいため、Filterを「dhcp」とし、DHCPプロトコルでのパケットのみに絞り込みます。 DHCPリクエストパケットの詳細をPacket Detailsで確認してみると、MACアドレスIPアドレス・ホスト名がわかるはずです。

次にWindowsのユーザー名を調べるためにKerberos認証のパケットを確認します。
Filterを「kerberos.CNameString」とし、パケットを絞り込みます。 そして、絞り込んだパケットの中からレスポンスのパケットを選択し、Packet DetailsからCNameStringを見つけて、列として適用します。 その後、もう一度パケットを全体を確認するとユーザー名が表示されているはずです。

被害の詳細

次に被害の詳細を調べていきます。
まず、被害者が危険なサイトなどを開いたことによる感染などを疑い、Webトラフィックに絞り込みます。
Filterを「http.request or ssl.handshake.type eq 1」とすることで、httpリクエストか、sslハンドシェイクのClient Helloのみに絞り込むことができます。
さらに、「(http.request or ssl.handshake.type eq 1) and !(ssdp)」とすることで1900/udpを経由したhttpトラフィックであるssdpプロトコルでのパケットを除外することができます。

すると、不審なWebサイトに対してGETリクエストが送られていることが確認できます。
念のためvirustotalで確認すると、怪しいサイトである可能性が高いと考えられます。

そこで、10.0.19[.]14からoceriesfornot[.]topへのパケットを追跡して詳細を確認していきます。

Cookieを確認すると、何やら様々な値が含まれていることがわかります。 このパラメータをまとめて調べてみると、とあるマルウェアに関する情報が多くヒットするかと思います。
さらに、受け取っているファイルの拡張子がgzipとなっているにも関わらず、データの先頭が「Copper.txt」となっているのもおかしな点です。

その後のパケットを確認してみると、様々な宛先に対してSSLを繋いでいるのが確認できます。
これはおそらくC2サーバーを探していたり、やり取りをしているのだと考えられます。
相手のサーバー名を列として適用し、それぞれvirustotalなどで調べると、いくつか怪しいサイトを見つけることができます。

今回は、マルウェアの特定が被害の詳細を調べた際にできるようになっており、エクスポートできるオブジェクトもあまりないため、マルウェアについてはこの段階である程度同時にまとめられるかと思います。

インシデントレポートをまとめる

ここまでのパケット分析によって得られた情報は、インシデントレポートとしてまとめることができます。
今回のパケット分析では複数台不審な端末があるものの、それぞれの感染の関連性は見えませんでした。
そういった情報を整理し、まとめることで分析結果の再確認も行えるため、問題文も参考に是非やってみてください。

おわりに

今回の問題はマルウェアの特定を行うために気づかなければならない違和感がとても難しくなっていると個人的には感じました。
更に接続先がとても多く、どれが怪しくてどれが怪しくないのかを判断する基準がとても曖昧だと思います。
様々なサイトやツールを活用しながら問題に取り組んでみてください。

この記事を読んでpcap分析を少しでも面白そうと感じていただければ幸いです。
ぜひ一度挑戦してみてください。