web-dev-qa-db-ja.com

電子メールヘッダーに基づく電子メールクライアントのパッシブフィンガープリント

メール送信者が使用しているオペレーティングシステムまたはメールクライアントを、その送信者からのメールのヘッダーに基づいて受動的にフィンガープリント(推測)する方法はありますか?

私はp0fのようなパッシブネットワークフィンガープリントツールに精通しています。特定のマシンから送信されたいくつかのパケットのトレースが与えられると、それらはそのマシンが使用しているオペレーティングシステムを推測しようとします。電子メールメッセージで類似のことを行うための手法やツールはありますか?

場合によっては一部の情報を取得するいくつかの手法を考えることができますが、これが既に存在するか、すでに研究されている場合は、ホイールを再発明したくありません。たとえば、私はX-Mailer:ヘッダーを知っています。このヘッダーがあると、通常、送信者が使用しているメールクライアントが明らかになります。しかし、X-Mailer:が存在しない場合にメールクライアントを推測したり、オペレーティングシステムを推測したりするためのテクニックはありますか?

7
D.W.

その送信者からの電子メールのヘッダーに基づいて、電子メール送信者が使用しているオペレーティングシステムまたはメールクライアントを受動的にフィンガープリント(推測)する方法はありますか?

はい。ただし、意図的または非意図的に、非常にエラーが発生しやすくなり、なりすましが非常に簡単になります(たとえば、一部のハイエンドファイアウォールシステムは、添付ファイルの削除/サニタイズ、一部の情報の変更後にメッセージを「再パック」します)。

X-Mailerヘッダーとは別に、存在する場合は、メッセージIDやマルチパート境界などの他のフィールドからいくつかの情報を収集できます。どちらもniqueシーケンスを含む必要があり、システムが異なれば生成方法も異なります。一部のMUAは独自のメッセージIDを生成し、他のMUAは雑用をサーバーに任せます。つまり、「[email protected]」が表示され、GMailの顧客であることがわかり、[email protected]はMicrosoft Windowsでのみ実行されるソフトウェアであるFortéAgentによって生成されたIDです。

6.1までの古いEudoraにはX-Senderヘッダーがあり、メールの送信に使用された「ペルソナ」も明らかになりました。

Microsoft Outlookは_NextPart_XXX_0000_HHHHHHHH.HHHHHHHHという形式の境界を使用していると思います。Hは16進数で、XXXは内部シーケンス番号(000以降)を表しますが、Mozilla Thunderbird(ユーザーエージェントヘッダーも追加)は「 ------------ 0x0x0x0x0x0x0x0x0x0x0x0x "ここで、xは0〜9の数字です。

いくつかのケースでは、uniqueidの一部が実際にはタイムスタンプであることがわかります。これは、日付ヘッダーの検証としても使用できます。

つまり、some情報があります-しかし、指紋データベースを構築する必要があります。また、前述したように、単一のヘッダーを変更するのは比較的簡単です。これを考慮に入れて、戦略がまだ目的に合っているかどうかを確認する必要があります。

9
LSerni