PropertyAccessor とウイルス感染


コメントにて以下のようなご質問をいただきました。


こんにちは。メールを開くことによるウイルス感染を防止するため、メールを開かずにヘッダ情報より、送信者のアドレスを表示する方法を検討しています。

■環境
・windows10
・Outlook2010(サポート終了後はOutlook2016)

■知りたいこと
別の方法があればご教示いただけますと幸いですが、現在は、PropertyAccessor を使用し、ヘッダ情報より「From:」を検索し、送信者アドレスをmsgboxで表示できるようにvbaを作成しております。

ここで疑問なのですが、PropertyAccessor を使用し取得したヘッダ情報は、メールを開いて取得したものではないのか?ということです。

やりたいことが、ウイルス感染防止。そのために、メールを開かずに送信者アドレスを知りたいなので、PropertyAccessorで、実はメールを開いていたでは、全く意味がありません。
上記の情報または、別にアドイン等導入することなくメールを開かずに、送信者アドレスを取得する方法がありましたら、ご教示いただければと思っております。
よろしくお願いします。


結論から言えば、PropertyAccessor を使用したタイミングでウイルスに感染するというようなことはありません。
それを説明するには、まず「メールを開く」とはどういうことなのかを定義する必要があるでしょう。

一般的な概念では「メールを開く」というのは Outlook のユーザー インターフェイスで本文を表示することを指すと考えられます。
この状態でウイルスに感染する可能性があるのは、本文を表示するコンポーネントにセキュリティ ホールが存在した場合になります。

Outlook 2003 までの Outlook は Internet Explorer により HTML メールの本文を表示しており、Internet Explorer には比較的容易な方法 (HTML に JavaScript を埋め込むなど) でセキュリティ ホールを悪用することができていたため、実際に本文を表示した際にウイルスに感染するという問題が発生することがありました。
しかし、Outlook 2007 以降の Outlook では本文の表示には Word のコンポーネントを使用しており、Internet Explorer のセキュリティ ホールの影響を受けることはありません。
もちろん、Word にセキュリティ ホールがあればそれを悪用した攻撃は可能となるのですが、Outlook の本文の表示の際に悪用するより、細工した Word ファイルを添付して送信したほうが Outlook 以外のメーラーも攻撃できるので、現在の Outlook で本文を表示するだけで感染するウイルスが登場する可能性は極めて低いと思われます。
また、Word のセキュリティ ホールを狙うようなウイルスの対策としては [ファイル]-[オプション]-[セキュリティ センター] の [セキュリティ センターの設定] (または [トラスト センター] の [トラスト センターの設定]) をクリックし、[電子メールのセキュリティ] で [すべての標準メールをテキスト形式で表示する] をオンにするというものがあります。
これにより、Word のコンポーネントを使用せずに抽出したテキスト本文のみが表示されるようになります。

いずれにせよ、「メールを開く」が本文を表示するという意味なら、PropertyAccessor を使用する際に Word のコンポーネントは使用されないので、メールを開いて取得したものではないといえます。

一方、「メールを開く」というのが「メールのデータを参照する」ということになると、話が変わってきます。
一般的に、SMTP で送信されるメールは MIME というフォーマットで送信されます。
このフォーマットは単一のテキスト データの中にメールのヘッダーや本文、添付ファイルなどをエンコードして格納するようなものであるため、受信したメール サーバーやメール クライアントはこの MIME データから件名や差出人などの情報を解析して取り出す必要があります。
そして、この解析処理に何らかのセキュリティ ホールがあり、それを悪用するようなウイルスが存在した場合、メール ソフトがメールを受信した瞬間に感染するという可能性もあるということになるのです。

そのような意味では、PropertyAccessor を使用して取得したヘッダー情報は「メールを開いて」取得したものと言えます。
ただ、Outlook ではヘッダー情報は受信したタイミングで MIME データから MAPI プロパティに変換されているため、PropertyAccessor を使用するタイミングでウイルスに感染するということはありません。
なお、この問題について対処するとなると、Outlook のセキュリティ修正を適用する以外に方法はないでしょう。

ちなみに、ウイルス感染防止のために送信者アドレスをチェックしたいとのことですが、SMTP では送信者のなりすましが簡単にできます。
実際、最近ではすでにやり取りした相手のメール アドレスやメールの内容などを使用してウイルスが含まれる添付ファイルを送って感染させるというような手口も確認されています。
そのため、送信者のアドレスだけで安全かどうかを判断するのはかえって危険なのではないかと思います。

参考リンク:
「Emotet」と呼ばれるウイルスへの感染を狙うメールについて

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中