この記事は Joel Esler の協力のもと、Martin Zeiser により執筆されました。
Talos は、お客様のネットワークへの脅威に常に目を光らせています。その保護プロセスの一環として、あらゆる攻撃を検出できるように、最新の脆弱性に対する Snort ルールを作成しています。
ルール作成のプロセスをわかりやすく説明するために、サーバ ソフトウェア Server2010 にリモートで不正利用できる脆弱性があると仮定します。概念実証エクスプロイトは作成されており、サーバ ソフトウェアは仮想マシンにセットアップされています。また、攻撃者と被害者間のトラフィックもネットワーク上でキャプチャされています。通常は、この状態でルールの作成を開始できると考えます。
しかし、状況が変わったことを理由に、数ヵ月後、あるいは数年後にルールを再検証する必要があるとしたらどうでしょう。この場合、ネットワークのトラフィックを検査するためには、Server2010 の別の脆弱性バージョンを見つけて再インストールし、脆弱性パラメータを再設定して、何度も検証テストを実施する必要があります。サーバがインストールされると、それまで使用されていた特定のエクスプロイトが機能しなくなります。コードの言語が変わってしまったためです。コードも適宜修正しなければなりません。これらすべてを行うにはかなりの時間を必要とします。この方法が取られていないのはそのためです。その代わりに、脆弱性が特定されたら、エクスプロイトを作成して実行し、Wireshark で攻撃をキャプチャします。それ以降は、pcap ファイルのトラフィックを使って正確なルールを作成できます。pcap ファイルに記録されたトラフィックは、TCP リプレイ ユーティリティを使って簡単にネットワークに再送信できます。また、Snort から直接読み取ることもできます。この理由から、ルール作成者は通常、エクスプロイトではなく、攻撃の pcap ファイルを使用します。
ファイルベースの脆弱性については、元来のプロセスとして、ローカル Web サーバを起動し、ブラウザを使ってエクスプロイト ファイルをダウンロードすると同時に、 Wireshark を使用してファイルの転送を記録していました。しかし、file2pcap が、トラフィックをシミュレーションし、簡単に適切な pcap を作成することで、この要件を一変させました。
サポートされるプロトコル
HTTP:
file2pcap は、Web サーバからブラウザに転送される入力ファイルを表示し、入力ファイルから pcap を作成するツールとして作られました。データ交換全体をシミュレーションすることで、あらゆる入力ファイルから、通常数秒以内で pcap ファイルを作成することができます。結果には常に、順番通りに並んだパケットとチェックサムの修正を含む、SYN から FIN までの完全な TCP ストリームが表示されます。これらの pcap ファイルを TCP リプレイ ツールと組み合わせて使用することで(あるいは Snort から読み取って)、すべてのファイルベースの攻撃を対象に適切なルールを作成することができます。
HTTP/2:
HTTP はここ何年かで進化を遂げ、今では HTTP/2 が広く普及しています。このプロトコルは標準で暗号化されますが、平文での接続にも対応しています。これが HTTP/2 が file2pcap に追加された理由です。
HTTP POST:
ブラウザから送信されるリクエストには、HTTP GET が普及していますが、データが HTTP POST を使用してアップロードされることもあります。この手法にも対応するため、HTTP POST も file2pcap に追加されています。
SMTP/POP3/IMAP:
マシンが侵害を受ける原因としてブラウザベースの攻撃が最も多く挙げられる一方、脅威はメールや添付ファイルからも侵入します。Snort ルールの作成者が、file2pcap でブラウザベース攻撃の pcap ファイルを作成するのと同じ方法で、こうした脅威の pcap を作成できるように、新しい機能、具体的には、SMTP、POP3、IMAP プロトコルへのサポートが追加されました。file2pcap は、入力ファイルから SMTP pcap を作成する指示を受けると、クライアントからメール サーバに送信するメールをシミュレーションし、添付ファイルとして入力ファイルをこのメールに添付しします。POP3、IMAP の場合も同じように機能します。コマンドラインのスイッチを使うことで、添付ファイルの暗号化をデフォルトの MIME から Quoted-Printable Encoding または UU-Encoding にも変換することができます。
FTP:
file2pcap がサポートするもうひとつの標準的なファイル転送プロトコルは、「アクティブ」と「パッシブ」の両方のデータ ストリームを作成できる FTP プロトコルです。
IPV6:
今後発生する攻撃にも対応できるよう file2pcap に加えられたのが、IPv6 へのサポートです。シンプル コマンドラインのフラグを使うことで、他はそのままで、データ交換だけを IPv4 から IPv6 に切り替えることができます。
Talos GitHub
最後にまとめると、file2pcap は転送中の入力ファイルをシミュレーションし、さまざまなプロトコルとエンコーディングを使用して、あらゆる入力ファイルから pcap を作成するツールです。最終的に作成された pcap ファイルは Snort ルールの作成または検証に使用することができます。file2pcap は確実に機能するうえ、作成時間を大幅に削減できるため、Talos でルールの作成に広く使用されています。
file2pcap はシスコの Github ページからダウンロードできます。
フィードバックや機能のリクエストは Github Issues ページからお寄せください。
本稿は 2017年5月24日に Talos Group のブログに投稿された「File2pcap – The Talos Swiss Army Knife of Snort Rule Creation」の抄訳です。