(57)【要約】  本発明は、電子メールメッセージおよびそのシステムの悪用を防止する方法に関する。この方法は：前記電子メールメッセージをその構成要素に分解するステップと；前記構成要素の各々に対して、前記構成要素の構造形式がその共通の規則から外れている場合には常に、前記構成要素の構造形式(例えば、構造、フォーマット、内容）をその共通の規則に適合するように修正するステップと；およびその構成要素から前記電子メールメッセージを（以前の状態に）再構成するステップと；を含む。前記共通の規則は、電子メールメッセージの不正な形式の構造を防止すること、電子メールメッセージの悪用を防止すること等のための、電子メールメッセージの構造に関する。前記構成要素の構造形式を識別できない場合、その構成要素は、再構成された電子メールメッセージ中に含まれることも、再構成された電子メールメッセージにそのまま含まれることもない。
2007512585.tif 000002
【特許請求の範囲】
【請求項１】
電子メールメッセージの悪用を防止する方法であって：
−前記電子メールメッセージをその構成要素に分解するステップ；
−前記構成要素の各々に対して、前記構成要素の構造形式がその規則から外れている場合に、前記構成要素の構造形式を前記規則に適合するように修正するステップ；および
−前記電子メールメッセージをその構成要素から再構成するステップ：
を含む方法。
【請求項２】
前記規則は、電子メールメッセージの共通構造に関する、請求項１に記載の方法。
【請求項３】
前記規則の少なくとも１つは、前記電子メールメッセージの不正な形式の構造を検出することに関する、請求項１に記載の方法。
【請求項４】
前記規則の少なくとも１つは、前記電子メールメッセージ中の悪用行為を検出することに関する、請求項１に記載の方法。
【請求項５】
前記構造形式は、構造、フォーマット、および内容を含む群から選択される、請求項１に記載の方法。
【請求項６】
前記修正するステップは、前記再構成するステップから前記規則に反する構成要素を省くステップを含む、請求項１に記載の方法。
【請求項７】
前記構成要素の少なくとも１つの中で敵対的な内容を検出するステップをさらに含む、請求項１に記載の方法。
【請求項８】
前記電子メールメッセージの前記不正な形式の構造は、構成要素の無効な構造と、構成要素の無効な内容と、矛盾した情報と、不正な形式の添付ファイルと、独自の符号化タイプと、ファイルタイプの偽装と、を含む群から選択される、請求項３に記載の方法。
【請求項９】
電子メールメッセージの悪用を防止するシステムであって、前記システムは、ホスト機能を有するプラットフォームにおいて実行され、前記システムは、：
−電子メールメッセージの構成要素を識別するモジュール；
−前記電子メールメッセージの前記構造形式の、その規則に対する適合性を検査するモジュール；
−前記電子メールメッセージの前記構造形式を修正するモジュール；および
−前記電子メールメッセージをその構成要素から再構成するモジュール；
を含むシステム。
【請求項１０】
前記規則は、電子メールメッセージの共通構造に関する、請求項９に記載のシステム。
【請求項１１】
前記規則のうちの少なくとも１つは、前記電子メールメッセージの不正な形式の構造を検出することに関する、請求項９に記載のシステム。
【請求項１２】
前記規則のうちの少なくとも１つは、前記電子メールメッセージ中の悪用行為を検出することに関する、請求項９に記載のシステム。
【請求項１３】
前記構造形式は、構造、フォーマット、および内容を含む群から選択される、請求項９に記載のシステム。
【請求項１４】
前記構成要素中の敵対的な内容を検出するモジュールをさらに含む、請求項９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子メールウイルスを防止する分野に関する。
【背景技術】
【０００２】
電子メール（eメール）メッセージの構造は、例えばＲＦＣ２８２２および２０４５から２０４９に定義されている。これらの文献では、電子メールメッセージは、テキスト形式であること、すなわちバイナリフォーマットではなく、ＡＳＣＩＩ文字だけを含むべきことを勧告している。このように、電子メールの構造に関する定義が存在してはいるが、電子メールメッセージの構造は、実際には柔軟なものである。さらに、電子メールクライアントは、できる限り多くの電子メールクライアント同士で通信できるように、基準と考えられるものから外れていても、それを処理しようと試みる。
構造を比較的自由なものにすると、このことを「ハッカー」が悪用し、受信側のコンピューター、メールサーバー、並びに送信側と受信側との間で作用する検査機能（即ち電子メールメッセージ中の敵対的な内容を検出するシステム）に、敵対的な内容を導入してしまう可能性がある。
【０００３】
図１は、簡易な電子メールメッセージを示す。このメッセージは、３つの構成要素を含む：
ヘッダー：構成要素１１から１４；
デリミター行：空白行１５；
メッセージテキスト：番号１６から１８で示す。
「構成要素」は、「従要素」を含み得る。例えば、構成要素１１から１４は、電子メールヘッダーの「従要素」であり、構成要素１６から１８は、電子メールの内容の構成要素の従要素であると考えることができる。
デリミター行１５は、ヘッダー１１から１４を、番号１６から１８で示すメッセージテキストから分離する。
メッセージは、４つのヘッダーから構成される：
「Ｆｒｏｍ」：番号１１で示す送信側の身元
「Ｔｏ」：番号１２で示す受信側の身元
「Ｓｕｂｊｅｃｔ」：番号１３で示すメッセージの主題
「Ｄａｔｅ」：番号１４で示すメッセージの送信日
上記のように、電子メールメッセージは、ＡＳＣＩＩ文字だけを含むと想定されるが、電子メールのクライアントのソフトウェア（例えばアウトルックエクスプレス（Outlook Express））は、ＡＳＣＩＩ文字でないもの（無効な内容）を含む電子メールメッセージを受け取っても、エラーを示さない。電子メールメッセージの送信日のフォーマットも定義されていないため、このフィールドに付加的な文字が追加されても、電子メールクライアントまたはサーバーにエラーが表示されることはないであろう。
当技術分野における「悪用（exploit）」という用語は、コンピューターシステムの特定の脆弱性を利用したコンピューターシステム上の攻撃のことを言う。例えば、「バッファーオーバーフロー攻撃」は、種々のシステムにおける周知のバグである。それは、アプリケーションに、システムスタックといったシステム領域をオーバーレイさせ、それによってシステム上のコントロールを得る。
【０００４】
図２は、バッファーオーバーフロー攻撃の概要を示す。コンピューターメモリー２０は電子メールクライアントソフトウェア２１、電子メールメッセージ２２、およびシステムスタック２３を「保持する」。電子メールメッセージ２２の不正な形式の構造を使用して、電子メールメッセージ２２の内容が、システムスタック２３に割り当てられたメモリーに上書きされる。このことは、矢印２４で示すように、電子メールメッセージ２２の保持に必要なメモリーの拡張を示している。このように、コンピューターコードが電子メールメッセージの想定外の場所に挿入されることによって、コードが受信側のコンピューター上で実行され、被害が発生する可能性がある。さらに、電子メールサーバーは、通常検査機能を有しているため、かかる悪用行為が検査機能、電子メールサーバー等を実行するコンピューターに対してもまた行使される可能性がある。
電子メール関連システムは、検査機能が電子メールメッセージの一部の構造に対応していないことで、添付ファイルを受信側システムに到達させてしまうという、また別の周知の脆弱性を有している（「独自の符号化タイプ」）。このことが悪用され、受信側のマシンとメールサーバーに敵対的な内容が導入されてしまう可能性がある。例えば、Ｂａｓｅ６４とＴＮＥＦは、電子メールメッセージに添付されるファイルのフォーマットであるが、電子メールの検査機能の中には、ＴＮＥＦに対応しないものもある。したがって、マイクロソフトアウトルック（Microsoft Outlook）により送信された電子メールメッセージがＴＮＥＦフォーマットを使用している場合、ＴＮＥＦに対応しない検査機能であれば、添付ファイル中の敵対的な内容を見逃してしまい、その結果受信側は、検査されていないファイルを受信するおそれがある。さらに、電子メールクライアントが、ある添付ファイルのフォーマットに対応していなければ、ユーザーはこのフォーマットの添付ファイルを使用できない。このような場合には、ユーザーは、なすすべがない。
【０００５】
図３は、アウトルックエクスプレスの電子メールクライアントによって生成された電子メールメッセージを示す。ＦＩＧ００００．ＢＭＰという名前のファイルがメッセージに添付されている。ファイルは、Ｂａｓｅ６４のフォーマットであり、その行３２の長さは、最終行でない限り、文字７６個分である。この電子メールは、１つだけの文字行３４を含む。電子メールは、複数の構成要素からなるメッセージであり、それぞれの構成要素は、境界行３１により画定される。ファイル名は、２つの構成要素３３に表示されている。
メッセージの構造が柔軟なものであれば、悪用される余地も大きくなる。例えば、添付ファイル名は、２度現れている。そこで、次のような疑問が生じる：
それらの名前が同一でなければ（情報が矛盾していれば）、ある電子メールクライアントは、どのような反応をするか？
添付ファイルの行が同じサイズでなければ（添付ファイルが不正な形式のものであれば）、ある電子メールクライアントは、どのような反応をするか？
添付ファイルがイメージファイルを示すＢＭＰ拡張子を有しているにもかかわらず、添付ファイルが実際に実行可能なファイルである（「ファイルタイプの偽装」である）場合、ある検査機能はどのように作用するか？
ファイルされた日付の長さが数十バイトではなく、６４Ｋバイトであれば、電子メールクライアントのメモリーにメッセージがロードされる際に、どのようなことが起こるか？
などである。
【０００６】
不正な形式の添付ファイルに関する別の周知の問題は、ある電子メールクライアント、例えばマイクロソフトアウトルックの行の長さが４の倍数、すなわち４、８、１２、１６、２０、２４…７６…バイト等であるということである。実際の行の長さがこの規則に適合しないと、その行は、電子メールクライアントごとに、そしてメールスキャナーごとに異なって解釈される可能性がある。
電子メールメッセージに関する周知の別の問題は、例えばマイクロソフトアウトルックなど一部の電子メールクライアントが、電子メールの規格に特定されていないフィールドを、送信する電子メールメッセージに付加するということである。通常、そのようなフィールドは、受信側の電子メールクライアントが送信側の電子メールクライアントと同じ製品である場合（例えば送信側と受信側がどちらもアウトルックエクスプレスである場合）、受信側電子メールクライアントに送られる。しかし送信側から見れば、この余分なフィールドには、送信側が受信側に送ることを望まない情報が含まれている可能性がある。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従って、本発明の目的は、電子メールメッセージの非共通構造を使用することによって、電子メールメッセージの悪用を防止する方法を提供することである。
本発明のさらなる目的は、様々な電子メールクライアントの要求に電子メールメッセージを適合させることである。
本発明の目的は、さらに電子メールの基準に適合しない情報が電子メールメッセージを介して送信されることを防止することである。
本発明の他の目的および利点は、以下の記載を読み進むにつれて明らかとなろう。
【課題を解決するための手段】
【０００８】
本発明の一態様は、電子メールメッセージおよびそのシステムの悪用を防止する方法に関する。この方法は：電子メールメッセージをその構成要素に分解するステップ；前記構成要素の各々に対して、前記構成要素の構造形式がその共通の規則から外れている場合には常に、前記構成要素の構造形式(例えば、構造、フォーマット、内容）を前記共通の規則に適合するように修正するステップ；および、その構成要素から電子メールメッセージを（以前の状態に）再構成するステップ；を含む。前記共通の規則は、電子メールメッセージの不正な形式の構造を防止すること、電子メールメッセージの悪用を防止すること等のための、電子メールメッセージの構造に関する。構成要素の構造形式を識別できない場合、その構成要素は、再構成された電子メールメッセージ中に含まれることも、再構成された電子メールメッセージにそのまま含まれることもない。電子メールメッセージの不正な形式の構造とは、構成要素の無効な構造、構成要素の無効な内容、矛盾した情報、不正な形式の添付ファイル、独自の符号化タイプ、ファイルタイプの偽装等であり得る。
本発明の別の態様は、電子メールメッセージの悪用を防止するシステムに関する。このシステムは：電子メールメッセージの構成要素を識別するモジュール；前記電子メールメッセージの構造形式の、その共通の規則に対する適合性を検査するモジュール；前記電子メールメッセージの構造形式を修正するモジュール；および、前記電子メールメッセージの構成要素から電子メールメッセージを以前の状態に再構成するモジュール；を含む。前記システムは、さらに前記構成要素中の敵対的な内容を検出するモジュールを含み得る。電子メールクライアント、電子メールクライアントへのアドイン、電子メールサーバー、電子メールサーバーへのアドイン、アプライアンス等のホスト機能を有するプラットフォームが、前記システムのホストとして機能する。
【発明を実施するための最良の形態】
【０００９】
添付の図面を参照することで、本発明は、より良く理解されよう。
図４は、本発明の好適な実施形態による、電子メールメッセージの悪用を防止するプロセスのハイレベルフローチャートである。このフローチャートは、電子メールメッセージのすべての構成要素を検査するループを示している。
ブロック４０において、電子メールメッセージから次の構成要素が「フェッチされる」（電子メールメッセージにブロック４０が最初に実行される場合には、電子メールメッセージ中の構成要素の順序によって電子メールメッセージの最初の構成要素が「次の」構成要素ということなる）。
判断ブロックである次のブロック４１において、共通の電子メールの構造に対する電子メールの構造の適合性の問題が問われる。例えば、構成要素の内容は、ＡＳＣＩＩ文字だけを含むものであるか？または、構成要素が１つ以上の電子メールアドレスに関する場合には、構成要素とその内容は、電子メールアドレスの共通構造に適合しているか？などである。
構成要素とその内容が電子メールの共通構造に適合している場合には、フローは、ブロック４１からブロック４３に続き、適合していない場合には、フローは、ブロック４２に続く。
【００１０】
ブロック４２において、その構造と内容が電子メールメッセージの共通構造に適合するように、構成要素が再構成される。例えば、文字列がＡＳＣＩＩ文字でない文字を含む場合には、これらの文字の除去もしくはスペースとの置き換えが行われる。あるいは、構成要素の文字列の長さが内容に対して妥当でない（例えば、日付に２００個の文字が使用されている）場合には、余分な文字が除去される、などである。
ブロック４３では、変更された構成要素が、再構成された電子メールメッセージに追加される（あるいは、電子メールメッセージの共通構造に適合していた場合には、その構成要素は変更されないまま追加される）。
処理すべき構成要素がさらに存在する場合には、フローはブロック４４からブロック４０に続き、存在しない場合には、フローはブロック４５へと進み、そこで終了する。
構成要素の内容が電子メールメッセージの共通構造でなければ、その構成要素は、再構成された電子メールメッセージに追加されない。
当然のことながら、電子メールメッセージの構成要素を、敵対的な内容の有無に関して検査することができる。
【００１１】
上記のように、電子メール関連システムの周知の脆弱性は、一部のフォーマットの長さであり、例えば、それはＢａｓｅ６４では４の倍数、すなわち４、８、１２、１６、３２、６４バイト等である。本発明の一実施形態によれば、添付ファイルのフォーマットを有効なフォーマット（必ずしもＢａｓｅ６４である必要はない）に変更することで、このフォーマットに対応するすべての電子メールクライアントがデータを処理できることが保証される。しかし、「有効な」添付ファイルが、元は無効な添付ファイルであったと解釈されない可能性もある。この問題に対しては幾つか解決法があり、それは、例えば「平均的」電子メールクライアント（アウトルックエクスプレスが良い例である）が、再構成された添付ファイルと元の添付ファイルを同じ様に解釈するように、電子メールの構成要素を再構成することである。最悪の場合には、分解することで添付ファイルが修正されても、エンドユーザーは、スキャナーに達したものと同じデータを入手する。実際には、それが元の添付ファイルでないにせよ、ウイルスを「フィルターにかける」ことはできる。
したがって、本発明は、電子メールメッセージの非共通構造を使用して電子メールメッセージの悪用を防止する方法およびモジュールを提供する。このことにより、電子メールメッセージが種々の電子メールクライアントの要求に適合することも可能となり、また電子メールの基準に適合しない情報を電子メールメッセージを介して送信することも防止され、不要な情報が間違った相手に届くことも防止される。
電子メールクライアントの一部として、メールクライアントへのアドインとして、電子メールサーバーの一部として、メールサーバーへのアドインとして、アプライアンスとして（特定の機能を提供するための「ブラックボックス」であり、通常はホスティングシステムにインストールされるべきソフトウェアの代用である）等、本発明を実施することができる。例えば、アウトルックの電子メールクライアントにおいて、本発明は、「アドイン」モジュールを介して実行され得る。
【００１２】
図５は、本発明の好適な実施形態による電子メールメッセージの悪用を防止するシステムのモジュールの概略図である。このシステムは、ホスト機能を有するプラットフォーム５０内に埋め込まれている。ホスト機能を有するプラットフォーム５０は、電子メールクライアント、メールクライアントへのアドイン、電子メールサーバーの一部、メールサーバーへのアドイン、アプライアンス（特定の機能を提供するための「ブラックボックス」であり、通常は、ホストティングシステムにインストールされるべきソフトウェアの代用である）等であり得る。例えば、アウトルックの電子メールクライアントでは、「アドイン」モジュールを介して本発明を実施することができる。
電子メールメッセージの悪用を防止するシステム５０のモジュールとして、以下のものを挙げることができる：
−番号５１で示す、電子メールメッセージの構成要素を識別するモジュール。
−番号５２で示す、前記電子メールメッセージの構造形式のその共通規則に対する適合性を検査するモジュール。
−番号５３で示す、前記電子メールメッセージの構造形式を修正するモジュール。
−番号５５で示す、前記電子メールメッセージをその構成要素から以前の状態に再構成するモジュール。
【００１３】
また、電子メールメッセージの悪用を防止するシステム５０は、電子メールの構成要素中の敵対的な内容を検出するモジュール５４をさらに含む。ウイルスの「署名（シグネチャ）」を検出することなど、当技術分野で周知の種々の方法により、敵対的な内容の検出を実行できることは、当業者であれば理解できよう。
要素５１から５５は、例えばソフトウェア／ハードウェアモジュール等、コンピューター化された機能である。電子メールメッセージがホスト機能を有するプラットフォーム５０（例えばメールサーバー）に到達すると、電子メールメッセージは、電子メールの構成要素を識別するモジュール５１に送られる。各構成要素は、共通規則に対する電子メールメッセージの構造形式の適合性を検査するモジュール５２に送られる。検査された構成要素あるいはその内容が前記規則に適合しない場合、その構成要素は、これらの規則に適合するように修正される。さらに、構成要素については、敵対的な内容を検出するモジュール５４で、敵対的コードを含んでいるかどうかを検査してもよい。このことは、ウイルスの署名を検出すること等、当技術分野で周知の種々の方法で実行することができる。構成要素は、修正された後に、電子メールメッセージをその構成要素から再構成するモジュール５５により、再構成された電子メールメッセージに付加される。当然のことながら、要素５１から５５は、単一モジュールのサブモジュールであり得る。
【００１４】
図６は、電子メールメッセージの悪用を防止する装置を実行するメールシステムのレイアウトを概略的に示す図である。ユーザー７１から７４は、ローカルエリアネットワーク（ＬＡＮ）６５を通して電子メールサーバー６０に接続される。電子メールサーバー６０は、電子メールボックス６１から６４を含み、それらは、それぞれユーザー７１から７４に属している。電子メールサーバーはインターネット６７に接続されており、インターネット６７を通じてユーザー７１から７４は、世界中の他のユーザーと電子メールメッセージをやりとりすることができる。ユーザー７１から７４は、相互に電子メールメッセージをやりとりすることも当然できるが、この場合、インターネットに接続することは無意味である。図６に示すレイアウトは、電子メールメッセージの悪用を防止するシステム６６が存在することで、従来技術のものとは異なっている。システム６６のホスト機能は、電子メールサーバー６０が有している。システム６６のモジュールの一例が、図５に示されている。
当業者は、本発明の範囲を逸脱することなく、他の形態および方法により本発明を実施できることを理解できよう。本明細書中に記載した実施形態は、例示であり、本発明を限定するものではないことを理解されたい。
【図面の簡単な説明】
【００１５】
【図１】簡易な電子メールメッセージを示す図。
【図２】バッファーオーバーフロー攻撃の概略図。
【図３】電子メールクライアント・アウトルックエクスプレスによって生成された電子メールメッセージを示す図。
【図４】本発明の好適な実施形態による電子メールメッセージの悪用を防止するプロセスのハイレベルフローチャート。
【図５】本発明の好適な実施形態による電子メールメッセージの悪用を防止するシステムのモジュールの概略を示す図。
【図６】電子メールメッセージの悪用を防止するためのシステムを実行するメールシステムのレイアウトの概略を示す図。
【符号の説明】
【００１６】
２０  コンピューターメモリー、２１  電子メールクライアントソフトウェア、２２  電子メールメッセージ、２３  システムスタック、６０  電子メールサーバー、６１〜６４  電子メールボックス、６５  ローカルエリアネットワーク、５０、６６  電子メールメッセージの悪用を防止するシステム、６７  インターネット、７１〜７４  ユーザー
【図１】
2007512585.tif 000003
【図２】
2007512585.tif 000004
【図３】
2007512585.tif 000005
【図４】
2007512585.tif 000006
【図５】
2007512585.tif 000007
【図６】
2007512585.tif 000008
【国際調査報告】
2007512585.tif 000009
2007512585.tif 000010