JP5069308B2 - 不適切なコードおよびデータの拡散防止における改善 - Google Patents

不適切なコードおよびデータの拡散防止における改善 Download PDF

Info

Publication number
JP5069308B2
JP5069308B2 JP2009539791A JP2009539791A JP5069308B2 JP 5069308 B2 JP5069308 B2 JP 5069308B2 JP 2009539791 A JP2009539791 A JP 2009539791A JP 2009539791 A JP2009539791 A JP 2009539791A JP 5069308 B2 JP5069308 B2 JP 5069308B2
Authority
JP
Japan
Prior art keywords
content data
file
data
passive
electronic file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2009539791A
Other languages
English (en)
Other versions
JP2010511951A (ja
Inventor
サミュエル・ハリソン・ハットン
トレバー・ゴッダード
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Glasswall IP Ltd
Original Assignee
Glasswall IP Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Glasswall IP Ltd filed Critical Glasswall IP Ltd
Publication of JP2010511951A publication Critical patent/JP2010511951A/ja
Application granted granted Critical
Publication of JP5069308B2 publication Critical patent/JP5069308B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/565Static detection by checking file integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/107Computer-aided management of electronic mailing [e-mailing]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、不適切なコードおよびデータの拡散を防止するコンピュータシステムと、それらシステムをオペレーションする方法とに関する。特に、本発明は出願人による英国特許出願0511749.4に記載されたシステムと方法の改善である。
過去10年間、コンピュータシステムは、不適切なコードの攻撃を受けることが多くなっている。(現在までの)不適切コードの最も極端な例は、コンピューターウイルスである。コンピューターウイルスは、同名の生物ウイルスのように、1台のマシンに感染し、次にそこから、電子メールシステムの情報源を乗っ取ることによって、他のコンピュータに感染することができる。その結果、ウイルスが侵入した各コンピュータのアドレス帳を用いて、ウイルスを含む電子メールが、1台のコンピュータから他の多くのコンピュータに送信される。その結果、帯域幅が浪費され、これがユーザにとって頭痛の種となっている。更に、多くのウイルスは、侵入した各コンピュータにおいて、例えばファイルの消去など、好ましくない動きをする。
ウイルスおよびその他の悪意のあるコンテンツは、典型的には、別個の添付ファイルで到来する。しかし、ウイルスは、電子メールの一部に隠されていることもあり、明確なコードの分離や実行をユーザに要求することなく、活動するようになる。ワードプロセッサ、スプレッドシート、データベースなどの多くのアプリケーションには、強力なマクロスクリプト言語が含まれている。マクロスクリプト言語は、ドキュメントやファイルに、特定の動作を行うことができるスクリプトを含ませることが可能である。ウイルスの作者は、マクロウイルスを書くためにそのようなスクリプト言語を利用し、そして、ドキュメントやファイルを含む電子メールの添付物が、隠蔽ウイルスの隠れ場所となる。
ウイルスは、不適切なコードが唯一の形態ではない。「無料」のプログラムが、隠された「スパイウェア」とともによく配布される。スパイウェアは、例えば、ユーザのコンピュータに密かにインストールされる。スパイウェアは、その後、訪れたウェブサイトや他のトランザクションを遠隔のコンピュータに報告する可能性がある。スパイウェアのうちの或るものは、好ましくない広告を表示させる。また、或るスパイウェアは、モデムが高額料金の番号を繰り返しダイアルするようにし向けて、スパイウェアの作者が遠距離通信オペレータから収入を受け取る。その他の有害な種類のコードとしては、マルウェア、ワーム、トラップドアなどがある。
ウイルスが、或るコンピュータから他のコンピュータへと自己増殖する一方で、スパムメール(無差別広告メール)やディスク上での隠れた配布によって、或いは、益々増加する何の気なしに開いたウェブサイトからのダウンロードによって、ウイルス以外の形態の不適切コードが配布されている。この種の不適切コードは、全て共通して、その存在や真の目的が隠匿され、ターゲットとなったコンピュータの所有者やユーザには分からないという事実である。或る種のものは比較的害が少ないが、貴重なビジネスデータを一掃する能力をもつものもあり、これ故に、ウイルス除去ソフトウェアを提供する産業が発展してきた。
現在知られているアンチウイルス(ウイルス駆除)ソフトウェアは、保護されるコンピュータ上で実行されるプログラムから構成される。このようなプログラムは、典型的には、モニタモードとスキャンモードとで動作する。上記モニタモードでは、アクセスされるファイルに対して、そのファイルへアクセスされるたびにウイルスチェックが行われる。上記スキャンモードでは、(ディスクドライブなどの)特定な場所の全てのファイルがスキャンされる。アンチウイルスプログラムのプロバイダは、ウイルスの発生を監視していて、新しいウイルスが検出されると、アンチウイルスプログラム会社は、ウイルスを解析し、ウイルスを検出するのに使用できるデータを抽出する。次いで、このデータは、当該特定のアンチウイルスプログラムを実行するコンピュータが利用できるものとされる。すなわち、上記プログラムは、典型的には、アンチウイルスプログラム会社のウェブサイト上に提供され、ダウンロードすることによって、上記プログラムの実行が図られる。
ウイルスは種々様々な方法で検出される。ウイルスの一部を形成する一連の特徴コードを保存することができる。また、上記一連の特徴コードの存在に対してスキャンされたファイルを保存することができる。すなわち、上記一連の特徴コードは、ウイルスに対する「サイン」または「指紋」として機能する。これに代わって、ウイルスは、それが意図する挙動によって検出することができる。また、ソースコードやスクリプトファイルを解析して、ウイルスの特徴である所定動作を検出してもよい。
ウイルスは、不幸にも、生物のウイルスと同様、容易に「変化」できる。大文字や小文字の置換に相当するようなコードの小さな変化によって、ウイルスのサインを変化させることができる。したがって、如何なる方法であれ、ウイルスを検出するためのデータファイルは、極めて大きなものとなっている。また、アンチウイルスプログラムに費やされる時間は、チェックすべきサインや規則の数が大きくなるにつれて、それに対応して、増大している。この時間の増大は、ウイルススキャンモードでは許可できるかもしれないが、モニタモードでは、ファイルへのアクセス所要時間に対して、絶えず増加する待ち時間が付加される。更に、ダウンロードがより大きなものとなるにつれて、また、より頻繁に必要になるにつれて、ユーザが必要な最新情報をダウンロードし損なって、したがって、最も新しい(したがって最も危険な)ウイルスに対して無防備となる危険性が高い。
したがって、本発明は、不適切なコードに抗した保護への全く異なるアプローチを取るものである。本発明の一側面によれば、所定のデータフォーマットのコンテンツデータを含む電子ファイルを受信する方法であって、上記電子ファイルを受信するプロセスと、上記データフォーマットを判定するプロセスと、上記コンテンツデータを構文解析するプロセスとを備え、上記コンテンツデータが上記所定のデータフォーマットに一致するか否かを判定し、上記コンテンツデータが上記所定のデータフォーマットに一致している場合、上記構文解析されたデータを再生して上記データフォーマットにて再生電子ファイルを生成する。
対応するコンピュータシステム、プログラム、およびそのようなプログラムを載せる媒体も提供される。
本発明の一実施形態は、それぞれの受信されたファイルを解析し、次いでそれから代替ファイルを再構成するように動作する。オリジナルファイル自体は保護すべきコンピュータ上に直接保存されたりアクセスされたりしないため、オリジナルファイルはそれ自体ではそのコンピュータに害を及ぼすことはできない。オリジナルファイルは、例えば、それが実行できないビット反転形式その他の形式で保存される。一方、上記代替ファイルは、「クリーンな」コードおよびデータしか生成することができないジェネレータルーチンを使用して生成される。したがって、受信されたファイル内のコードがどのようなコードであってもそれに対応した不適切コードを生成することはできない。
本発明の一部は、コンピュータファイルに関する幾つかの長く知られている真実の新たな応用にその根拠を置くことができる。最近ではコンピュータにインポートされる大多数のファイルが標準化されたファイルフォーマットである。独自に開発したプログラムは、それら自身のファイルフォーマットを作り出している(そしてそれらのプログラムによって使用されることを予定しているデータはそれらのフォーマットに一致しなければならない)が、異なる独占プログラム間のデータの交換に対しては少なからぬ需要がある。すなわち、第一に、1つの独占プログラムには別の独占プログラムによって書かれたデータを読み込むためのインポートフィルタがたいてい供給されており、第二に、如何なる独占プログラムにも関連づけられていない幾つかのフォーマットが存在する。そのような汎用的なフォーマットの例としては、ASCIIテキスト、リッチテキストフォーマット(RTF)、ハイパーテキストマークアップランゲージ(HTML)、およびエクステンシブルマークアップランゲージ(XML)がある。
したがって、ファイル中のデータは、それが任意のアプリケーションプログラムによって読み込まれることになっており、かつ様々なファイルで使用される各フォーマットが広く知られているものであるならば、厳格な規格に精確に従っていなければならない。本発明者らは、各ファイルによって使用される各フォーマットは幅広く変化することを許可しているが、大多数のファイルには幾つかの比較的狭い実用的な制約を満たすデータが含まれているということに気づいた。例えば、ほとんどのオペレーティングシステムおよびアプリケーションは、かなりの長さのファイルタイトルを受け入れるが、ほとんどのユーザが、たいてい短くて容易に認識できるファイル名を使用する。
したがって、本発明の一実施形態によって行われる解析は、表明されたファイル形式の仕様にそれ以外では一致しているデータが、実用的な限界に違反しているか否かを検出することを含むものとすることができる。これらの「現実世界」の制約は、本発明が「正常な」受け入れ可能なファイルを検出することを可能にする。このタイプの実用的な限界に対応していない如何なるファイルコンテンツもジェネレータプログラムに渡されることはなく、したがってユーザのコンピュータに実行可能な形式において到達することはない。
したがって、本発明の一実施形態は、周知のアンチウイルスプログラムとは基本的に異なった様式で動作するものであることが分かるであろう。周知のアンチウイルスプログラムは、ウイルスを検出することを狙いとしており、ウイルスであることが検出されない全てのものを通過させる。したがって、それらのプログラムは最大の危険から、すなわち未知のウイルスの危険からユーザを保護することに必ず失敗する。新参のウイルスはそれぞれ、ウイルス対策会社の注目するところとなる前に、既に多くのコンピュータに感染してしまうに違いない。
更に、ウイルス対策ソフトウェアがインストールされ、検出済みデータの最新版を保有している場合でも、ウイルスは、そのウイルス対策ソフトウェアによって検出可能となる前に、通常、保護されるコンピュータのハードドライブその他の媒体に保存されるであろう。何らかの理由でウイルス対策ソフトウェアが動作しないと、そのウイルスは適当な場所にあって活性化される可能性がある。
米国公開特許出願US2003/0145213は、ファイル内においてマクロまたは悪意のあるコードを検出するシステムを開示している。そのファイルは、その後、テンプレートで再構築され、その悪意のあるコードがテンプレートから除去されて、上記ファイルの汚染されていないバージョンを提供する。
全く対照的に、本発明は、ウイルスを検出することも、また代表的なウイルス様の挙動を拒絶することすらも、その狙いとする必要がない。その代わりに、全ての入力ファイルを完全に拒絶することができ、可能な場合はそれらのファイルを、不適切なコードおよびデータを含ませることができない生成ファイルに代替させる。したがって、不適切なコードおよびデータが、保護すべきコンピュータのハードドライブに実行可能な形式で到達することを防ぐことができ、それらが1台のコンピュータから別のコンピュータへ伝染することは不可能となる。さらに、本発明は、全ての既知ウイルスの最新データベースを維持することを必要とすることなく、未知のウイルスから守る「ゼロ・デイ」プロテクションを提供する。
ここで、米国公開特許出願2003/229810が、ウイルスに対する保護策として「光学式ファイアウォール」の提案を開示している。この後すぐに明白になるであろう理由により、このシステムは実施に移された(または、実施に移すことができたものである)とは考えられない。その公開出願には、ファイアウォールコンピュータが画像ファイルなどのファイルを受け取って、そのファイアウォールコンピュータのディスプレイ上にその画像を表示するシステムが記載されている。光学式センサアレイが画像をスキャンし、スキャンされた画像が相手の受信者に与えられる。画像内に隠されたウイルスはどれも表示されず、したがってスキャンされた画像においてウイルスであるとは判定されない。変形例として、スクリーンのビットマップを実際のスクリーン表示の代わりに使用する場合もある。
様々な理由から、上述の米国特許出願において提供される「光学式カプラ」ファイアウォールは、ウイルスに対する有効かつ信頼できる保護を提供することはできないであろう。
例えば、光学式文字認識(OCR)ソフトウェアを使用した再現は、不適切な情報を提供する可能性がある。更に、ビデオ技術を使用した画像の再現は、意図したより低い品質の画像を提供する可能性がある。また、入力ファイルがウイルスを含む場合、その入力ファイルを受信するコンピュータが感染してしまうであろう。
他方、再生ファイルを実行し、表示し、光学スキャンする代わりに、それらのファイルを解析し、次に、再生することにより、本発明の一実施形態は、大多数の場合、オリジナルファイル(それに不適切コードがないならば)と匹敵する代替ファイルをその代替が透明になるようなしかたで提供することができる。
ファイルフォーマットは、それらの複雑さにばらつきがある。一方の極において、テキストファイルは単純なフォーマットを有する。スクリプトやマクロを含むことができるファイル(ワードプロセッサやスプレッドシートファイルなど)は、中間的な複雑さのものであるが、コードを含むファイルはコードパーサ(コード構文解析ツール)によってしか完全に解析することができない。本発明によればそのようなコード解析は結局可能となるが、本発明の実施形態は、その1つの利便性として、ドキュメントファイルから全てのマクロとスクリプトを除去し、プログラム、コード、マクロまたはスクリプトだけから成る如何なるファイルも通過させないように動作することもできる。
ユーザが上記のようなファイルを受信することを望む場合も頻繁におこるであろうことは容易に想像がつく。したがって、1つの好ましい実施形態においては、本発明は、特定のソースに由来するファイル(または特定の形式のファイル)は常時通過させ、他のソースに由来するファイルは拒絶するように、ソースによってファイルをフィルタリングするように構成したフィルタと同時並行で動作するようにしてもよい。
このように、本発明の実施形態は全てのソースからのファイル内のコードを受信することをブロック(阻止)する一方で、並列フィルタが既知のソースからだけの上記ファイルを許可する。したがって、ユーザは、本発明によって拒絶されるであろう、例えば、システム管理者や公認されたウェブサイトからのファイルを受信することができる。ユーザがコードを受信することを望むそれらのソースのみを識別することにより、本発明は不適切コードを阻止することができる。
本発明はウイルスを検出することより、むしろファイル規格との一致および代表的なユーザの対応を検出することによって機能することが可能となるため、頻繁な更新は不要である。そのような更新が必要となるのは、ある規格に対する大きな変更が広範囲に受け容れられたとき、あるいはユーザの対応が実質的に変化したときだけであり、これらはいずれもウイルス対策の更新版を配布しなければならないときの大急ぎのスピードと比べるとスローな処理過程である。同様に、実行すべきテストの回数が時間の経過とともにほぼ安定して維持されるため、プログラム起動のための待ち時間も時の経過によって全く増加しない。
本発明の他の態様、実施形態、利点は以下の説明および特許請求の範囲で論ずる。発明の実施形態は、添付の図面を参照して、例証としてのみ記載されている。
本発明の一実施形態による電子ファイルシステムのブロック図を示す。 本発明の実施形態での使用に適したコンピュータシステムを示す。 本発明の一実施形態によるプロセスのフローチャートを示す。 本発明の一態様による開発と試験の方法のフローチャートを示す。 図4に示す開発と試験の方法の一例の概略図である。 本発明のもう一つの態様による開発と試験の方法の概略図である。 本発明の第2の実施形態による電子メールシステムのブロック図を示す。 本発明の第2の実施形態によるプロセスのフローチャートを示す。 電子メールを形成する異なる部分のレイアウトの例を示す。 本発明の第3の実施形態によるプロセスのフローチャートを示す。
[第1の実施形態]
図1は、本発明の第1の実施形態による基本システムのレイアウトを概略的に示す。電子ファイルは、ソース102で生成され、伝送媒体103を介して伝送される。伝送媒体103としては、例えば、有線システムや無線システム或いはネットワークなどの電子ファイルを伝送するのに適した媒体を用いることができる。電子ファイルは、通常の方式で伝送媒体103を通過して送信先に到達する。本実施形態では、AV(アンチウイルス)アプリケーション105が送信先のシステム109にインストールされている。到来する電子ファイル内のデータは、解析されて許可できると決定されたならば再生されるがそのときまで、AVアプリケーション105が作動して、送信先のシステム109のオペレーティングシステム107への進入が許可されない。後述するように、受信される電子ファイルの或る部分は所定の許可可能フォーマットに照らして解析される。受信される電子ファイルの他の部分については、ハッシュが創成され、悪意のないコンテンツと前もって識別されたハッシュ・データベース106内で調べられる。AVアプリケーション105は、一致解析装置131と、ハッシュ・ジェネレータ(ハッシュ発生装置)133と、ハッシュ・チェッカ134と、コンテンツ・リジェネレータ(コンテンツ再生装置)135とを有して、電子ファイル101がオペレーティングシステム107に通過許可できるかどうかを決定し、また、許可可能なコンテンツを再生している。
図2は、図1に示す受信先のシステム109を実行するようになっているコンピュータシステムを示すブロック図である。上記システム109は、入力インタフェース111において、到来する電子ファイル101を受信する。入力インタフェース111はマイクロプロセッサ113に接続されている。マイクロプロセッサ113は、受信されたファイルに対して、様々なプロセスを実行するように構成されている。マイクロプロセッサ113は、受信した電子ファイル内のコンテンツを構文解析するためのパーサ(構文解析ツール)115を含んでいる。マイクロプロセッサ113は、更に、メモリ装置117と着脱式媒体ドライブ119とに接続されていて、CD120やフロッピーディスク(図示せず)のような着脱式媒体からデータを読み込んだり、媒体にデータを書き込んだりする。マイクロプロセッサ113は、また、ディスプレイ125やキーボード127などの出力装置への接続を可能にする幾つかのインタフェース(121、123)に接続されている。
到来した実行可能なファイルがAVアプリケーション内に入ったときに自動的に実行されることがないように、本システムでは、到来する電子ファイルを構成するデータを、何らかの適切なスクランブル(暗号化)フォーマットで、メモリに格納するようになっている。
この実施形態では、スクランブル法によって、1バイト内のビットの順序が反転されている。すなわち、ビット0〜7は順序通りに受け取られるが、ビット反転方式で格納され、ビット0がビット7に転換され、ビット1がビット6に転換され、ビット2がビット5に転換され、ビット3がビット4に転換される。したがって、例えば、10110000から成る1バイトの場合、00001101の順序で格納される。このようにして、如何なる実行可能なコードも自動的に実行されることが不可能となり、したがって、如何なる既感染電子ファイルもAVアプリケーションまたは送信先のオペレーティングシステムに感染することができない。
図3は、電子ファイル101が送信先のオペレーティングシステム107への通過が許可されるか否かを決定すべく、この実施形態においてAVアプリケーション105が実行する処理ステップのフローチャートを示している。ステップS3−1では、電子ファイル101が、任意の適切な手段を用いて、AVアプリケーション105に入力され、また、AVアプリケーション105によって受信される。この入力手段は、受け取られる電子ファイルの種類と、電子ファイルが伝送される媒体とに依って、変えることができる。この実施形態においては、電子ファイル101はAVアプリケーション内に受け入れられる。
この実施形態では、システム109によって受信される電子ファイル101は、AVアプリケーション105が解析する一つ以上のコンテンツデータ部分を含んでいる。コンテンツデータのこの部分は、パッシブ(受動)コンテンツデータであり得る。上記パッシブ・コンテンツデータは、例えば、テキストやイメージやオーディオやビデオのコンテンツといった所定の目的をもつデータタイプのコンテンツである。
この実施形態では、AVアプリケーションは、既知で許可可能な予め定義された複数の格納済フォーマットのうちの1つに一致する電子ファイルのみを通過できるように、設計されている。また、AVアプリケーションは、悪意のないものとして識別されたアクティブ(能動)コンテンツデータのみを通過できるように、設計されている。一例として、電子ファイルはコンテンツデータから構成される。上記コンテンツデータは、特定の一連の規則から成るファイル形式の仕様にしたがって符号化され配列される。ファイルの各形式(テキスト、HTML、XML、スプレッドシートなど)は関連する一連の規則を有する。一般的なファイルの形式は、しばしば、ファイル名の末尾語(例えば、.pdfや.txtや.doc)によって示される。或いは、それに代わって、ファイル中の初めの数バイトのデータによって示されることがある。ファイルの形式の多くは、ファイル構造に関するものを示すヘッダを含み、次にコンテンツデータ(例えば、テキスト、数字、音声または画像のデータ、スクリプト、マクロ)が続く。電子ファイル101はコンテンツデータの複数の部分を含み得る。その部分の或るものはパッシブ・コンテンツであり、また、或るものはアクティブ・コンテンツである。
パッシブ・コンテンツデータは、パラメータ(例えば、コンテンツデータがボールド体で表示されることを示すタグ)を含んでもよい。ファイル形式の仕様を構成する規則は、そのようなパラメータが取ることのできる値や範囲を指定するものとしてよい。それらの規則は、例えば、コンテンツデータが取り得る許可値または許可範囲値を指定するものとしてもよい。
当業者が認識するように、特定の形式のファイルを開くことができるアプリケーションプログラムが、ファイル形式の仕様を構成する規則をファイルに適用するために、パーサ(構文解析ツール)を含んでいて、コンテンツデータを抽出して表示または処理することは知られている。例えば、ワードプロのアプリケーションは、ファイルを、その工業所有権が保護されたファイルフォーマット(例えば、Microsoft Word(登録商標))で開くことができる。また、その他のワードプロのアプリケーションの所有権保護されたファイルフォーマットでファイルを開くことができるし、リッチテキストフォーマット(RTF)やASCIIやHTMLなどの一般的なファイルフォーマットでも、ファイルを開くことができる。特定の形式のファイルとしてコンテンツデータを格納できるアプリケーションプログラムは、ファイル形式の仕様を構成する規則をパッシブ・コンテンツデータに適用するためのジェネレータを含んでいて、ファイルを所要のフォーマットで作成する。
本実施形態では、各ファイル形式に対して、所定のフォーマットが格納されている。この所定のフォーマットは、通常、そのファイル仕様を構成する規則を含んでいる。しかし、所定のフォーマットは、頻繁に使用されるフォーマット(の一部分)に関連した規則を含んでいるに過ぎない。更に、所定のフォーマットは、一般的かつ頻繁に使用される値と範囲を含むだけのものとなるように、追加規則を含んで、コンテンツおよびパラメータが取り得る数値や範囲を制約する。このようにして、パッシブ・コンテンツの所定形式のファイルの一部分のみが、それらは専ら日常的に頻繁に発生するデータとパラメータとから成るが、本実施形態の対応する格納済の所定フォーマットによって、解析され得る。
システムを通過するのを許可されないパッシブ・コンテンツのデータタイプの構成要素の例としては(何故ならば、稀にしか使用されないので、所定のフォーマットはそれらに関する規則を含んでいないからである)、HTML頁におけるIフレームと、MP3ファイルにおけるジェネラル・カプセル化オブジェクト(GEOB)のタグとがある。稀にしか使用されなくてシステムを通過することが許可されないデータ値の例としては、一般的に使用されるTAB、CB/LF、およびLF文字以外には、ASCIIファイル内の制御文字がある(所定のフォーマットは上記データ値を除外した値に限定される)。
コンテンツデータは、アクティブ・コンテンツのデータでもよい。一例として、受信した電子ファイル101はHTMLページであって、このHTMLページは、HTMLタグを有する幾つかのアクティブ・コンテンツデータの部分と、関連するテキストのコンテンツと、ジャバスクリプトやVBスクリプトファンクションのような実行可能な少なくとも1つのアクティブ・コンテンツデータの部分とを含む。上記アクティブ・コンテンツデータは、また、受信電子ファイル101に関連する特定のルールセットから決定されてもよい。例えば、HTMLドキュメントのルールセットは<ジャバスクリプト>タグの定義を含む。<ジャバスクリプト>タグは、ジャバスクリプトの実行可能コードとして、HTMLファイルの一部を定義するために使用される。もう一つの例としては、マイクロソフト・ワードのファイルやドキュメント用の特定のルールセットは、サブファイルのディレクトリ構造と、特定のマイクロソフト・ワードファイル内に含まれるサブディレクトリとを定義する。「VBA」のラベルが貼られた特定のサブディレクトリは、マイクロソフト・ワードのファイル内のマクロを定義するために使用される。ファイル「VBA_PROJECT」は、アクティブ・コンテンツの一部分を定義するサブファイルのもう一つの例である。標準名を有していない他のサブファイルは、マイクロソフト・ワードのファイル内のアクティブ・コンテンツの部分を定義する「PROJECTwm」ファイルにリストされる。
したがって、ステップS3−3において、プロセッサ113は処理されるコンテンツの次の部分を識別するが、これが、電子ファイル101が初めて処理される受信電子ファイル101内のコンテンツの第1部分である。この実施形態において、部分を識別する方法は、ファイルタイプの仕様に定義されているように、電子ファイル101の構造に依る。したがって、受信されるファイルのタイプに依存して、プロセッサ113は、ファイルタイプの仕様に付随した特定なセットのルールにしたがって、受信電子ファイル101を処理して、コンテンツの次の部分を識別する。例えば、JPEGのファイルタイプの仕様は、JPEGイメージについての情報を含むために幾つかのタグを定義するルールセットを備えている。もう一つの例として、HTMLファイルはコンテンツデータから成り、コンテンツデータは、HTMLファイルの構成要素の異なるセットのタグを定義する特定なセットのルールにしたがって、配置されている。
ステップS3−4において、プロセッサ113は、受信電子ファイル101のタイプに関連する特定なセットのルールによって識別される部分と対応するものとして、コンテンツの今識別された部分が認識されているか否かを、決定する。コンテンツの部分が特定ファイルタイプの仕様によって定義されるものとして認識されないと、プロセッサ113が決定したならば、ステップS3−15において、電子ファイルを隔離することによって、受信電子ファイル101はブロックされる。したがって、受信電子ファイル101は如何なる形態においても再生されなくて、ファイルの処理は終了する。
他方、コンテンツデータの一部が認識されているということをプロセッサ113が決定したならば、次にステップS3−5において、コンテンツの今識別された部分がパッシブ・コンテンツデータであるか、或いはアクティブ・コンテンツデータであるかどうかをプロセッサ113が決定する。この実施形態では、再度、上述したように、プロセッサ113が、受信電子ファイル101に関連する特定なセットのルールから、この決定をする。
ステップS3−5において、コンテンツの一部分がパッシブ・コンテンツデータであることをプロセッサ113が決定するならば、そのときは、ステップS3−6において、一致解析装置131が使用され、パッシブ・コンテンツデータの一部分が処理されて、上述したように、コンテンツの一部分が所定のフォーマットに一致しているかどうかを決定する。当業者が認識するように、パッシブ・コンテンツの識別部分は、複数のサブ部分を含み、サブ部分の各々は付随する所定のフォーマットを有する。このような場合、ステップS3−6において、一致解析装置131が呼び出されて、各サブ部分を順に処理して、各サブ部分が所定のフォーマットに一致しているかどうかを決定する。ステップS3−7では、一致解析装置131が、電子ファイルがそれが示すフォーマット内にあって、全てのパラメータが特定の電子ファイルのタイプに付随する所定のフォーマットと一致することを決定するならば、そのときは、ステップS3−9において、このパッシブ・コンテンツデータの許可された部分が、再生のためにコンテンツ・リジェネレータ135に渡される。この実施形態では、コンテンツ・リジェネレータ135が使用されて、当初の受信電子ファイルのタイプに付随する所定のフォーマットにおいて、許可されたコンテンツデータの一部分から代用ファイルを再生する。
次に、処理はステップS3−13に続く。ステップS3−13では、プロセッサ113が処理するコンテンツがあるかどうかを決定する。処理するコンテンツがあると決定されたならば、プロセッサ113は、ステップS3−3に戻って、処理されるべきコンテンツの次の部分を識別する。
ステップS3−7において、パッシブ・コンテンツの一部分が如何なる所定の構成にも対応しないと一致解析装置131が決定するならば、次に、ステップS3−11において、クリーニングモードフラグがAVアプリケーション105に設定されたかどうかをプロセッサ113が決定する。この実施態様では、電子ファイル101の不一致部分が再生されないように受信電子ファイル101をクリーニングするプロセスは、メモリ117に設定されたフラグ(旗)によって制御され得る。クリーニングモードフラグは、ステップS3−12においてクリーニングプロセスを可能にするようにトゥルー(真)と設定され、その結果、受信電子ファイル101の不一致部分は除去あるいはクリーニングされて、再生ファイルには存在しない。従って、このクリーニングプロセスにおいて、未知のファンクション(関数、機能)を含むファイルの断片や一部分は取り除かれつつ、ユーザには有用な再生ファイルが提供される。一方、クリーニングモードフラグは、クリーニングプロセスを無効にするようにフォールス(偽)と設定される。クリーニングプロセスが無効の場合、メッセージの一部分か電子ファイルが不一致であると決定されているならば、電子ファイルは、完全にブロックされて、如何なる形態においても再生されない。
クリーニングフラグが設定され、ステップS3−12においてクリーニングプロセスが行なわれるならば、処理はパスしてステップS3−9に至る。ステップS3−9では、コンテンツ・リジェネレータ135を用いて、受信電子ファイル101の不一致部分に対応した再生ファイルのクリーン部分が再生される。この実施形態では、結果得られるクリーン部分は、例えば、オリジナルの電子ファイルからの不一致データを有することなく、関連部分のタグを含んでいる。その代わりに、結果得られるファイルが当初の電子ファイルのタイプに付随した所定のフォーマットであるように、タグが挿入される。クリーン部が所定のフォーマットで一旦再生されると、上述したように、ステップS3−13では、プロセッサ113が、処理すべきコンテンツが存在するかどうかを決定する。図3に示す実施形態では、パッシブ・コンテンツデータの全ての部分が、ステップS3−7において、所定のフォーマットに一致するか否かを決定するために、一致解析装置131は、ステップS3−6において、複数のサブポーションの各々を再帰的に処理する。その代わりとして、各サブポーションのクリーニング処理を行うために、一致解析装置131は所定のフォーマットに一致しないと決定することが可能である。
ステップS3−7〜S3−15の上記説明は、受信電子ファイル101におけるコンテンツデータのパッシブ部分の処理に関係する。しかし、上述したように、コンテンツデータの一部は、アクティブ・コンテンツデータであり得る。したがって、プロセッサ113が、上述したステップS3−5において、コンテンツの現在の部分がアクティブ・コンテンツデータであると決定した場合、ステップS3−17において、ハッシュ・ジェネレータ133が使用されて、アクティブ・コンテンツの部分に対してハッシュを生成する。ステップS3−19において、発生したハッシュがハッシュ・データベース106に既に存在するか否かを見るために、ハッシュ・チェッカ134がハッシュ・データベースをチェックする。ハッシュがハッシュ・データベース106に既に存在する場合、アクティブ・コンテンツの付随部分は、悪意のないものとして、以前に識別されている。そして、ステップS3−9において、許可されたアクティブ・コンテンツは、コンテンツ・リジェネレータ135に渡り、上述したようにリジェネレータ135によって再生される。一方、ステップS3−19において、ハッシュがハッシュ・データベース106に存在しない場合、ステップS3−21において、処理がステップS3−11に渡り、上述した同じやり方で、アクティブ・コンテンツデータのこの部分に対して、クリーニングプロセスが行われるべきかどうか、或いは、電子ファイルがブロックされるべきかどうかをプロセッサ113が決定する。次に、処理がステップS3−13に続いて、ステップS3−13では、プロセッサ113が処理するコンテンツが存在するかどうかを決定する。処理するコンテンツが存在すると決定された場合、受信電子ファイル101の部分が許可されたコンテンツデータであるならば、受信電子ファイル101の全ての部分が処理され再生されるまで、プロセッサ113はステップS3−3〜S3−21を繰り返す。
受信電子ファイル101の全ての部分の一処理が一旦完了すると、次にステップS3−25において、通常のやり方で処理されるように、再生電子ファイルが送信先システム109のオペレーティングシステム107に送られる。所定のフォーマットを作成するルールを用いたファイルから抽出可能なパッシブ・コンテンツデータの全てと、悪意のないものとして識別されたアクティブ・コンテンツデータの全てとが、抽出され、再生される。したがって、抽出されない部分は再生されない。
このようにして、ファイルの一致チェックと再生とによって、ウイルスはオペレーティングシステムに侵入できなく感染できない。実際、普通に存在するフォーマットのパッシブ・コンテンツデータと、悪意のないアクティブ・コンテンツのみが、抽出され、したがって再生される。
当業者が認識しているように、受信電子ファイル101の不一致部分が再生されないとき、AVアプリケーション105のコンテンツ・ジェネレータ135が、再生された電子ファイルに関連警告文を挿入して、メッセージの一部分が通過許可されなかったことを受信者に伝える。選択肢として、この警告テキストは、サブパーツが通過許可されない理由を示すものとすることができる。
更に、電子ファイル101のパッシブ・コンテンツの一部分のサブパーツは、このパーツに対応する所定の許可フォーマットに一致していない場合には、ブロックできる。すなわち再生することなく、好ましくは消去できる。すなわち、例えば、ASCII電子ファイルの文字列が制御文字(例えば「BEL」文字)を含んでいる場合、この文字列を、AVアプリケーション105により挿入されるテキスト警告に置き換えて、この文字列は所定フォーマットに一致しないので再生電子ファイルのこの部分から除外されている、と受信者に知らせることができる。上記一致解析装置131は、許可されない制御文字(例えば「BEL」文字)を特別に探索するのではなく、所定の許可フォーマットによって定義された許可される制御文字だけを通過させる。
[ハッシュの登録]
上記説明において、ハッシュ・データベース106は、善良なもの或いは悪意のないものとして、以前に解析されて示されたアクティブ・コンテンツデータに対するハッシュ値を有する。当業者が認識するように、このようなデータベースは、本システムとメソッドとが最も有効であるべく、新たに遭遇する悪質でないスクリプトやマクロ、実行可能コードを用いて最新化するために、不断のメンテナンスを必要とする。さて、このような新たに遭遇するコンテンツデータが、管理モードに際してハッシュ・データベース106に包含すべく、どのように解析されるかについて、簡単な説明がなされる。
この例では、図1に示す送信先システム109は、ウェブ・プロクシー・サーバである。ウェブ・プロクシー・サーバは、システム管理者からの要求を受信して、HTMLのスクリプトを登録する。この例では、システム管理者が、通常のウェブサーフィンに対して異なるポート、例えばポート8181のウェブ・プロクシー・サーバ109に、HTTPのリクエストとして登録すべきスクリプトを用いて、HTMLページを送信する。異なるポートを使用することによって、上記リクエストを通常のウェブ・トラフィックと区別できるとともに、このポートへのアクセスがファイアウォールによって制限されるので、登録するスクリプトがいっそう安全なものになる。このようなユニークなポートを使用することにより、ウェブ・プロクシー・サーバ109は、システム管理者がスクリプトの登録をリクエストしていることを認知できるが、許可されたIPアドレスの制限やパスワードの使用といった特別な追加確認チェックによって実施される付加的なセキュリティを用いることができる。
この確認が成功裏に完了すると、ウェブ・プロクシー・サーバ109は、リクエストをインターネット上に通して、HTTPの応答を待つ。このHTTPの応答は、その後、ウェブ・プロクシー・サーバ109によって受信されて戻される。ウェブ・プロクシー・サーバ109は、通常のサーフィン応答ではなく、登録リクエストとして、受信した応答をマークする。次に、この応答はAVアプリケーション105に渡される。受信された応答は、この例では、登録されるスクリプトを用いたHTMLページである。受信ファイルが登録リクエストとしてマークされるので、AVアプリケーション105が、上述の通常のチェッキングモードではなく登録モードで作動するように設定されていることを除いて、受信された応答は、図3に関して上述したのと同様に、AVアプリケーション105により処理される。
登録プロセスでは、一致解析装置131は、受信ファイルのHTMLの部分がHTML仕様と一致し、合理的な値を有しているかをチェックする。受信ファイルのジャバスクリプトの部分を処理する際には、ハッシュ・ジェネレータ133はジャバスクリプトファンクションのためのハッシュを創成し、AVアプリケーション105はハッシュがハッシュ・データベース106に存在するかどうかをチェックする。スクリプトが以前に登録されているならば、その特定のスクリプトに対して更なる行動は不要である。しかし、スクリプトがハッシュ・データベース106に存在しないならば、そのときは、AVアプリケーション105がその特定のスクリプトに関する情報を集める。その特定のスクリプトは、このスクリプトを登録すべきかどうかの判断をすべく、システム管理者に提示される。この例では、HTMLフォームがシステム管理者に表示するために創成され、システム管理者はどのスクリプトがハッシュ・データベース106に登録されるべきかを表明する。HTMLフォームを形成するために、データ構造が使用されて、処理されるHTML頁のために登録され得るハッシュを全て収集する。システム管理者が情報に基づく決定をすべくシステム管理者に十分な情報を提供されるように、この例では、ファンクションの完全なテキストが、創成されたハッシュとともに、データ構造に含まれる。AVアプリケーション105が受信されたHTMLファイルの全ての部分を一旦処理すると、データ構造にはシステム管理者によって審査されるハッシュおよびファンクションが投入される。データ構造の各エントリーは、HTMLフォームのエントリーにフォーマットされる。データ構造の全てのエントリーがHTMLフォームに処理された後、このフォームはシステム管理者に送られる。システム管理者は、新たに遭遇するスクリプトの内のどれが悪意のないものであるかを、したがって、ハッシュ・データベース106に含むことができるかを、示すことができる。レジスタ応答がシステム管理者から得られると、指示されたスクリプトのハッシュがハッシュ・データベース106に追加される。
[開発段階]
上記内容は、ファイルデータを処理するとともに、既知で良好なデータのファイルを書き直すシステムとメソッドの説明である。この既知で良好なデータとは、ファイルフォーマットの仕様および語用論的限定事項やその他の特定の限定事項に合致するデータであり、或いは、悪意のないデータとして以前に確認されたデータである。したがって、ファイルの受取人は確信を持って悪意のないデータを受取ることができる。開発段階を通じて操作上の連続的な正確性を保証するために、AVアプリケーション105を試験し開発を行うに際して、幾つかの問題が生じる。これらの態様について説明する。
[2つのパスエラーの検出]
この書き直しのプロセスの際に、実行エラーが、上述のシステムや方法が実施することになっているファイルフォーマットの仕様および語用論的限定事項やその他の特定の限定事項に合致しない再生ファイルを生じさせる可能性がある。したがって、コンテンツ・リジェネレータ135の開発に際しては、操作上の連続的な正確性を保証すべく、開発段階を通して、再生されたファイルをテストすることが必要である。
図4は、リジェネレータ135の開発試験段階における処理手続を示す図である。図4に示すように、リジェネレータ135の試験は、ステップS4−1において、電子ファイルの入力から始まる。これは、図3に関して上述したステップS3−1での電子ファイルの受信に類似している。ステップS4−3では、プロセッサ113は電子ファイルを処理して、電子ファイル内のコンテンツが許容されるかを決定し、その結果によって、ファイルを所定のフォーマットで再生する。ステップS4−3で実施される処理ステップは、図3に関連して上述したものである。既に論じたように、図3に示す処理手続の結果は、再生ファイルが創成されるか(ステップS3−25)、或いは、電子ファイルが隔離されるか(ステップS3−15)のいずれかである。したがって、ステップS4−5では、再生ファイルが創成されているのか、或いは、そうでないのかをプロセッサ113が決定する。ステップS4−7では、現在の電子ファイルが所定のフォーマットに一致していなく、したがって、隔離されることが決定される。
一方、再生ファイルが創成されたならば、ステップS4−8において、クリーニングフラグが無効に設定される。したがって、ステップS4−9において、再生ファイルが第2処理パス内で処理されるとき、所定のフォーマットや語用論的限定事項やその他の特定の限定事項に一致しないコンテンツに遭遇すると、たちどころに処理手続は機能しなくなる。ステップS4−9で行なわれるステップは、図3に関連して上述したものである。ステップS4−11では、再生ファイルが創成されているかどうかをプロセッサ113が再び決定する。ステップS4−9の処理手続が再生ファイルの創成という結果になったならば、このことによって、ステップS4−13において、リジェネレータ135の機能が正しいことが保証される。一方、再生ファイルがステップS4−9での処理手続によって創成されなかったならば、このことによって、ステップS4−15において、リジェネレータ135の有効性が損なわれていることが示される。
したがって、ステップS4−3における第1処理手続パスの再生段階の際に、何らのエラーが導入されたならば、これらエラーは、ステップS4−9において第2処理手続パスに渡される再生ファイルに存在することになる。これらのエラーは、次に、第2処理手続パスによって浮き彫りとなる。エラーを有する再生ファイルは、本システムや方法によって実施される所定のフォーマットや語用論的限定事項やその他の特定の限定事項に一致しないからである。
さて、開発試験段階におけるこのエラーの具体的な検出例について説明する。次の例においては、MP3の音楽ファイルは、上述した方法によって処理される。通常、このようなMP3ファイル内には、特定の音楽に関する特別な情報を含むタグであって、符号化された音楽データとは分離しているタグが様々存在する。このようなMP3のタグの一つは「TCOM」タグである。「TCOM」タグは、特定のMP3ファイルの音楽データコンテンツの作成者に関する情報を詳しく記述している。
図5は、2パス試験開発法にしたがって処理されるMP3ファイルの一例を示す。図5に概略図示された典型的なMP3ファイル501は、非交換の未加工メモリデータバッファに格納されていて、タグ「TCOM」とTCOMデータと音楽データコンテンツとを含む。MP3ファイル501は、ステップS4−3において説明したように、第1処理手続パスのときに、プロセッサ113によって読み込まれる。図5に示す例では、リジェネレータ135の実行エラーにより、「TCOM」タグが出力バッフアに誤って書き直されて、再生されたMP3ファイル503がタグ「TCMO」を含むようになる。その結果、このタグはMP3ファイルフォーマット仕様に一致しなくなり、したがって、ステップS4−9において第2処理手続パス中に再生ファイル503が処理される際に、不正な「TCOM」タグに遭遇し、再生ファイル503が隔離される。プロセスの第2パスにおいてファイルを再生し損じた結果として、このことは、リジェネレータ135が第1処理手続パス中に電子ファイルを正しく再生していないことを示している。
[フォールト・スプリット]
本システムと方法の開発時におけるもう一つの問題は、良好な既知ファイルを収集するために、また、既知の悪意のないデータファイル・フォーマットや語用論的限定、その他の限定に関するデータベースを創成するために、多くの電子ファイルについてプロセスを試験しなければならいことである。電子ファイルを調べるプロセスは、典型的には、それぞれが開発モードでファイルされたプロダクト・デベロッパー・プロセッシング(製品開発者処理)に依っていて、その出力を評価して、要求されるアクションを決定する。このプロセスは可成りの資力を必要とする。
この問題を克服するために、試験プロセスを効果的に自動化するとともに、出力の評価では製品開発者を支援する開発試験方法が考え出された。この方法によると、収集されたファイルのディレクトリを介して処理が繰り返され、ディレクトリ内の各ファイルについて、図3の処理のステップと再生のステップが行われる。ディレクトリ内の各ファイルについてのプロセスが進行するにつれて、その処理手続は、ファイルをブロック或いは隔離状態に置く理由を詳述しているステータス・コード(状態コード)やフェイラー・ストリング(不履行文字列)に帰還する。処理に起因する不履行の起こり得る理由は、適当なエラーコードやリーズン・ストリング(理由文字列)に帰還する。本開発試験方法は、これらのリーズン・ストリングを用い、エラーコードやリーズン・ストリングというサブディレクトリ名の「サブディレクトリ」を創成している。また、この方法は、エラーコードやリーズン・ストリングに依るサブディレクトリに各対応ファイルを移動する。全てのファイルの処理が終了すると、製品開発者は、処理によって何故ファイルがブロック或いは隔離状態に置かれているのか、その理由を全て記したリストを迅速に検閲できる。さらに、製品開発者は、各サブディレクトリ内のファイル数を見ることにより、これらの理由の相対的な重要性を確認できる。このようにして、製品開発者は、最も多く停止を引き起こす不履行理由に対して、努力を集中させることができる。
図6は、この開発試験プロセスの概略図である。図6は、フォールト・スプリット開発試験モジュール603によって処理されるJPEGイメージファイル601のディレクトリを示す。ディレクトリ601内の各ファイルはAVアプリケーション105に受け継がれて、図3に関して上述したように、AVアプリケーション105がファイルの各々に作用する。各特定のファイルの処理が完了すると、AVアプリケーション105は、特定のファイルの処理において不履行が存在したかどうかのステータス(状態)およびリーズン(理由)に帰還する。
図6に示す例では、AVアプリケーション105は、ファイル「picture1.jpg」を処理しているときに、リーズン・ストリング「不適切なヘッダー値」の付いたエラー0054を見つけている。このエラーコードとリーズン・ストリングとは、フォールト・スプリットモジュール603に帰還する。フォールト・スプリットモジュール603は、同じエラーストリングを有するサブディレクトリが存在するかどうかを決定する。もし存在するならば、対応ファイルは単にサブディレクトリにコピーされる。図6に示す例では、他のサブディレクトリが存在しないので、フォールト・スプリットモジュール603は、エラーストリング「failure_0054_incorrect_header_value」という名前の新しいサブディレクトリ607を創成する。サブディレクトリ607が一旦創成されると、対応するファイル「picture1.jpg」がこのサブディレクトリ607にコピーされる。
フォールト・スプリットモジュール603は、原初ディレクトリ601の全てのファイルを処理するまで、このディレクトリの各ファイルを処理する。このようにして、開発試験プロセスが完了すると、ディレクトリ構造607は、原初ディレクトリ601のファイルを処理するときに遭遇したエラーコードのサブディレクトリを含むものとなり、対応するファイルは各サブディレクトリにコピーされた状態になっている。
[第2の実施形態]
第1の実施形態に類似していて、以下に説明する第2の実施形態では、電子ファイルとは、インターネット上で作成者からインターネットサービスプロバイダ(ISP)に伝送される電子メールのことである。ISPは、各電子メールを電子メールクライアントサーバに送る。電子メールクライアントサーバは、電子メールを受信すると直ぐに、相手の受信者の受信ボックスに電子メールを送る。
図7は、本発明のAVアプリケーションが組み込まれた本実施形態による電子メールシステムの配置を示す。電子メールは送信者によってソース場所201から送信される。その電子メールは、インターネット203を経由して、インターネットサービスプロバイダ(ISP)205へ送られる。上記ISPは、電子メールに組み込まれたドメイン名によって決定される。受信者の電子メールクライアントサーバ207は、ダイレクトオープン接続によって、ISP205に接続されている。第1の接続は、送信電子メールを電子メールクライアントサーバ207からISP205へ送るためのシンプルメール転送プロトコル(SMTP)送信接続209である。第2の接続は、ISP205から電子メールを取り出すPOP(ポストオフィスプロトコル)の受信接続211である。
AVアプリケーション105はISP205に配置されている。AVアプリケーション105は、受信者の電子メールクライアントサーバ207に接続された入出力ポートに存在して、電子メールクライアントサーバ207によって送受信される全ての送受信電子メールを解析する。
本実施形態では、AVアプリケーション105は一片のコンピュータコードである。上記コンピュータコードは、既知のコンピュータプログラミング技法を用いて実行される。電子メールが電子メールクライアントサーバ207に入る前に、電子メールクライアントサーバ207に送られる電子メールは全て、AVアプリケーション105を通過しなければならない。同様に、電子メールクライアントサーバによってISP205に送られる電子メールは全て、ISP205に入る前に、AVアプリケーション105を通過しなければならない。
AVアプリケーション105は、データがこのアプリケーションに入る際に、そのデータを解析することによって、受信電子メールのメッセージを分析する。第1の実施形態と同様、実行可能なファイルを動作停止させるべく、データはスクランブルモードで格納されている。AVアプリケーション105は、受信電子メールの個々のパーツが所定の許可フォーマットに一致するか否かを判定する。そのパーツが一致する場合は、AVアプリケーション105は電子メールメッセージの各パーツを再生する。したがって、如何なる電子メール内の如何なるウイルスも、受信者のシステムに感染することは許されなく、また、受信者のシステムからISPに通ることは許されない。
第1の実施形態において論じたように、一致解析装置131は、特定のデータ形式の各々を解析するために用いられていて、そのデータ形式に対応した所定フォーマットに一致するか否かを調べ、そして、一致するコンテンツデータを抽出する。次に、コンテンツ・リジェネレータ135は、そのデータ形式に対応した所定の許可フォーマットを用いて、そのデータを再生する。この実施形態では、各データ形式は、それ自身の特有の一致解析装置およびコンテンツ再生装置によって解析され、再生される。
各一致解析装置131は、受け取ったデータに応じて、データに関する特定の規則群を実行する。これらの規則は、ファイル形式に対する所定の公的な仕様によって定義されている。また、現実の世界でよく見られる(したがって安全な)周知のデータ形式の例によって定義されている。上記規則は、一般的に、ファイル形式仕様に一致するファイルのサブセットのみを許可する。しかし、公的仕様の規則の内の或るものは、通常は規則に反するが、緩和することができる。例えば、電子メールアドレスはスペースを含まないが、人気の電子メールアプリケーションにはこの規則を破るものがある。この点に関して仕様に違反する電子メールは、どこにでもある。したがって、本実施形態による電子メールを解析する所定フォーマットは、スペースを含む電子メールアドレスを受け入れて、電子メールアドレスを解析、抽出する。
また、一致解析装置は、データファイル内の特定のパラメータをチェックするものでもよい。例えば、ファイルがRTF(リッチテキストフォーマット)ファイルであるとヘッダに記述されているならば、そのときは、RTFファイル仕様にしたがって、最初の数バイトのデータが読み込まれて、これが正しいかどうかを判定する。
図8は、本実施形態に従ってAVアプリケーションを組み込んだシステムの動作法のフローチャートを示す。図8に見られるように、ステップS8−1において、電子メールが、SMTP受信接続を介して、ISP(インターネットサービスプロバイダ)にて受信される。
ステップS8−3において、プロトコル一致解析装置が、受信電子メールの基本フォーマットを読み込むプロセスを実行する。そして、基本電子メールプロトコルに一致するように電子メールを再生する。(不一致型の電子メールリーダは電子メールを読む。)次いで、読み込まれたデータは、基本電子メールプロトコルに一致する電子メールライタに渡される。このようにして、何処にでもある不一致は一致電子メールに変換される。例えば、受信者の電子メールアドレスが酷い状態に形成されている場合には、(例えば、スペースを除去することによって、或いは、閉じた角括弧を最後に挿入することによって)電子メールライタがそれを書き直して一致させる。
もう一つの例は、電子メールメッセージが、「From:」というヘッダが無い状態で、受け取られるときである。この場合には、電子メールメッセージがカプセル化されて、全体が、ヘッダ「From:」を含む新しい電子メールメッセージとなる。
電子メール内の他のパラメータも一致したものにされる。上記パラメータは、例えば、行長、正しいASCII文字列の使用、適切な場合における正しいBASE64コーディングの使用、完全なヘッダ情報(「To:」、「Subject:」など)、電子メールのヘッダと本文との間のスペースなどである。
電子メールが、その一部を書き直すことができない程に、まずく形成されている場合、不一致部分が脱落しても筋の通る電子メールがまだ存在しているかどうかが判定される。その処理の結果、まだ電子メールが筋の通ると判定された場合、電子メールは、不一致部分が欠けた状態のままで書き直されることができる。その場所には、警告テキストを挿入してもよい。
また、プロトコル一致解析装置は、電子メール全体を拒絶するものとしてもよい。例えば、プロトコル一致解析装置が、不一致BASE64のコード化が電子メール内の大きいデータ片で使用されていることを検出した場合、その電子メールは、ステップS8−17において、完全に拒絶される。
プロトコル一致解析装置が、電子メールが電子メールプロトコルに一致すると判定した場合、その電子メールはプロトコル一致解析装置によって再生される。そして、そのプロセスにおいて、次のステップに渡される。
全ての電子メールは、電子メール用の最新RFC規格(すなわち、RFC822とその後続版)に一致させるべきである。この規格は、電子メールがいかに形成されるかを定義している。電子メールがプロトコル一致解析装置を通した後には、RFC822規格の一致解析装置は、電子メールがRFC822規格に一致しているかどうかを検査する。すなわち、RFC822規格の一致解析装置は、まず、(後述するように)電子メール内の境界を見つけて電子メールを個々の構成部分に分解し、次に、電子メールの各構成部分を解析してそれがRFC822に一致するかを検査することにより、上記一致チェックを行う。
RFC822規格の一致解析装置が、周知の全データ形式の一致をチェックできることを保証すべく、RFC規格が更新される際には、更新が必要であることが理解される。
周知のごとく、電子メールは、例えば図9に示すように、幾つかの別々の部分から構成される。電子メールは、RFC822ヘッダ901から始まる。RFC822ヘッダ901は、「From:」、「To:」、「Subject:」などの幾つかのフィールドが定義される。その次は、MIMEヘッダ903である。MIMEヘッダ903は、「コンテンツ形式」などの拡張プロトコルで使用される幾つかのフィールドを定義する。上記拡張プロトコルは、電子メールの異なる部分間の境界を示すのに使用されるテキストを定義する。
ヘッダ(901と903)に続いて、最初の境界905が示される。電子メールの次の部分は、更なるヘッダであるMIMEヘッダ907から始まる。MIMEヘッダ907は、この部分で使用されるフォーマットを定義する。この例では、この部分は、テキストフォーマットで表示されるテキスト内容を備える。したがって、その後には、テキスト909のブロックが続く。テキストブロック909の終わりには、もう1つの境界911が存在する。
更なるMIMEヘッダ913が、電子メールの次の部分がどのフォーマットであるかを示す。この例では、電子メールの次の部分は、混合テキストおよびHTMLのフォーマットブロック915である。もう1つの境界917は、その部分の終わりを電子メールに示す。
電子メールの次の部分として、MIMEヘッダ919が、電子メールの添付物に関するデータ形式を示す。この場合は、上記データ形式はZIPファイルである。ZIPファイル921は、符号化されて電子メールに加えられるBASE64である。次に、更なる境界923がZIPファイルブロックの終わりを示す。
電子メールの最後部分として、MIMEヘッダ925が、電子メールの添付物に関するもう一つのデータ形式を示す。この場合は、上記データ形式は実行可能コードの一部分である。実行可能コード927は、電子メール内におけるアクティブ・コンテンツデータの一部分の例である。次に、最終境界929が実行可能コードのブロックの終わりを示す。
図8のステップS8−7において、RFC22規格の一致解析装置は、パーサ(構文解析ツール)を用いて、電子メールを構成するASCII文字を解析する。次いで、RFC822規格の一致解析装置は、電子メールにおける境界を検出して、特定のパラメータが既知の許可可能な所定フォーマットに一致するか否かを検査できる。例えば、RFC822規格の一致解析装置は行長を検査して、行長がRFC822規格に一致するか否かを調べ、2000以下の行長のみが再生される。
電子メール内の構文解析されたデータがRFC822規格に一致するか否かを調べるために、更なる検査を行うことができる。例えば、電子メール内の文字が規格で定義された既知の許可可能なASCII文字であるか否か、ヘッダ情報が規格で定義された通りか否か、そしてヘッダ長が規格の定義に一致するか否か、が検査される。ここに挙げたこれらの検査は、RFC822規格の一致解析装置が実行する様々な大検査群の単なる例に過ぎない(その他の部分は、当業者には明白であろう)。本発明は、それ自体、上に挙げた例に限定されるものではない。
RFC822規格の一致解析装置は、構文解析されたデータを解析して基本RFC822規格に一致するか否かを調べると同時に、特定のパラメータがRFC822規格の電子メールの現実の例に一致するか否かをも検査する。すなわち、特定のパラメータの仕様では、ユーザが定義するように開放されているが、現実の世界では、妥当な値のみが使用される。例えば、電子メールは、通常、最小の数のパーツを備えるのみである。したがって、1000個の境界を含む電子メールが受信される場合、この電子メールは、RFC822規格の電子メールの現実例とはならず、したがってRFC822規格の一致解析装置によって、ブロックされる。すなわち、電子メールは再生されず、好ましくは消去される。
更なる一致チェックを要するデータを含んだ電子メールの各構成部分に対しては、第1の実施形態において論じたように、構成部分がパッシブ・コンテンツデータを成すのか或いはアクティブ・コンテンツデータを成すのかについて、AVアプリケーションによって決定される。構成部分がパッシブ・コンテンツデータを成すならば、そのときは、ステップS8−9において、構成部分の対応するデータ形式に依って、構成部分を個別の一致解析装置に送る。すなわち、解析された電子メール部分がテキストと定義された場合、テキストを構成するASCII文字が、テキスト一致解析装置に送られる。解析された電子メール部分がTIFFファイルと定義された場合は、TIFFファイルを構成する文字がTIFF一致解析装置に送られる。
ステップS8−9において、各パッシブデータ一致解析装置は、送られてきたデータを解析して、データが、表明されたフォーマットに一致するか否かを調べる。一致する場合、データは一致解析装置によって再生される。データ内に何らかの不一致がある場合、データは一致解析装置によって除外されるか、或いは、可能ならば、一致するようにデータが再生される。データを一致するように再生する例の一つは、入れ子ブラケットが欠けている場合に、RTFファイルに入れ子ブラケットを追加する例である。
電子メールが異なるデータ形式の入れ子構造を含んでいる場合、パッシブデータ一致解析装置が繰り返し呼び出される。そして、数台の特定の装置は順次動作され、各装置は、新たなデータ形式が発見される各ポイントで、待機させられる。このようにして、電子メールは、JPEG写真ファイルを含むワードプロセッサドキュメント等のZIPファイルを帯同するが、一連の異なる一致解析装置(zip、ワードプロセシング、JPEG)を通過でき、入れ子構造のファイルを介してドロップダウンして、各ファイルが順次解析される。
一方、構成部分がアクティブ・コンテンツデータから成るという決定がAVアプリケーションによってなされると、ステップS8−10において、アクティブ・コンテンツデータ解析装置がデータを解析して、スクリプトやマクロや実行可能コードが悪意のないものかどうかを決定する。アクティブ・コンテンツデータ解析装置によって成された処理は、アクティブ・コンテンツのためのハッシュを創成し、そのハッシュがハッシュ・データベースに存在するか否かを決定する。この処理は、第1の実施形態において上述している。
解析の終わりには、一致する再生部分を用いて、ファイルが再編成される。ステップS8−11において、適切に理路整然として理解可能かつ有意義な電子メールを形成すべく電子メールの十分な部分が再生されていると判定されると、ステップS8−13に示すように、上記再生された部分を用いて、また、RFC822規格の一致解析装置を用いて、データは再編成される。これにより、再生された電子メールが正しいフォーマットで確実に送られる。次いで、ステップS8−15に示すように、SMTPプロトコルを用いて、再生された電子メールはAVアプリケーションにより所望の受信者に送信される。
しかし、ステップS8−11において、有用な電子メールを形成すべく電子メールの十分な部分が再生されなかったとAVアプリケーションが判定した場合、電子メールはステップS8−17において拒絶される。ステップS8−17では、警告テキストが所望の電子メール受信者に送られて、受信者に向けられた電子メールがシステムによって拒絶されたことを受信者に知らせる。警告テキストは、メッセージが削除された詳細な理由を含むことができる。また、警告テキストは、受信者が送信者を識別するのに役立つ情報を更に含むか、或いは電子メールが拒絶された理由を含むことができる。
本実施形態において使用する一致解析装置の幾つかの例を以下に詳細に説明する。これらの一致解析装置は、ステップS8−9において使用できる。RFC822ヘッダやMIMEヘッダ或いはファイル拡張子の情報に基づいて、テキストであると表明する電子メールの構成部分は、S8−9で示すように、テキスト一致解析装置に渡される。テキスト一致解析装置は、以下に述べるように、テキストデータを構文解析し、そのテキストデータが所定の許可可能なフォーマットに一致するか否かを判定する。
例えば、カンマ区切り変数(CSV:Comma Separated Variable)やリッチテキストフォーマット(RTF)などの異なる形式のテキストファイルが幾つか存在するとき、テキスト一致解析装置は、最初に、構文解析されたデータが表明しているのはどの形式のテキストファイルであるのかを識別しなければならない。電子メールに添付されたファイルは、全て、それと関連のあるファイル拡張子を有して、ファイル形式が何であるかを示す。テキスト一致解析装置は、MIMEヘッダ内の構文解析されたファイル拡張子を解析して、そのテキストファイルが純粋なASCIIファイルであるか否かを判定する。純粋なASCIIファイルであれば、以下に述べる通り、ASCII一致解析装置を使用すればよい。
一方、テキスト一致解析装置が、解析の結果、そのテキストファイルが純粋なASCII以外のファイル形式、例えばCSVファイルであると判定した場合は、CSV一致解析装置が呼び出されてCSVデータを解析し、再生する。しかしながら、まず最初に、ASCII一致解析装置が、電子メール内のテキストファイルを構成しているASCII文字を解析して、そのテキスト列がASCIIの所定フォーマットに一致するか否かを調べ、一致していれば、そのASCIIファイルを再生する。
ASCII一致解析装置はデータを解析して、ファイルが最小のASCII所定フォーマットに一致していることを確実にする。例えば、ASCII一致解析装置は、ASCII文字32〜127と、4つの制御文字、すなわち、「改行」(LF=10)、「復帰改行」(CR=13)、「タブ」(TAB=9)および「垂直タブ」(VT=11)のみの再生を許可し、そしてシステムを通過することを許可する。
ベル文字(BEL=7)などの他の制御文字は、AVアプリケーションによって定義されるASCIIファイルの所定の許可可能なフォーマット内には、存在しない。したがって、ASCII一致解析装置は、構文解析されるASCIIコードブロックにおいて「BEL」文字を再生せず、そのASCII文字を拒絶する。
ASCII一致解析装置が実行するその他の解析例は、
・固有の行長さは1024文字未満であるか?
・ワード長さは25文字未満であるか?
・文字に対するスペースの割合は所定限界以下であるか?
である。
データが基本所定フォーマットに一致していないために、ASCII一致解析装置がASCIIコードの一部分のデータを再生することができない場合はいつでも、ASCII一致解析装置は、そのデータを検査して、それが他のいずれかの形式のASCIIコード(例えば、ソースコード、BinHex、BASE64など)に一致するか否かを調べる。データが他の形式のASCIIコードに一致する場合、そのデータはそのASCII形式に関する一致解析装置に送られる。この一致解析装置は、上に示した例では、ソースコード一致解析装置、BinHex一致解析装置、或いはBASE64一致解析装置である。当然のことながら、BASE64ASCIIコードファイルは、符号化されたデータ内に他の形式のファイルを含み得る。これらの他の形式のファイルもまた、次に、関連するファイル形式一致解析装置などに送られる。
他の形式のASCIIコードのためのパッシブ・コンテンツデータ一致解析装置は、電子メールのこの部分のデータに対して更なる一致限定事項を有する。例えば、ファイルがチェックされて、このファイルが適切に構造化されたコードであるか否か、正しい行長を有するか否かなどが調べられる。各パッシブ・コンテンツデータ一致解析装置が、コンテンツおよびパラメータのデータが一致していると判定すると、すなわち、そのデータを抽出すると、抽出されたコンテンツデータは、当該パッシブ・コンテンツデータ一致解析装置を用いて、許可所定フォーマットで再生される。
ASCII一致解析装置がいったんそのタスクを終了すると、再生されたASCIIデータは、そのデータが表明する関連のテキスト一致解析装置に送られる。この実施形態では、テキストファイルがCSVファイルである。したがって、データはCSV一致解析装置に送られる。
CSV一致解析装置によって実行される検査例は以下の通りである。すなわち、CSV一致解析装置は、パラグラフがCSVファイルに対する所定フォーマットの一部でないとき、ASCIIデータを解析して、確実に、長いテキストパラグラフが含まれないようにする。一致しないために解析できないデータは、CSV一致解析装置によって拒絶される。また、CSV一致解析装置は、検査をして、例えば、デリミッター(非制限手段)の数がCSVファイル内のデリミッターの通常所定数に一致するか否かを調べる。データが一致するとCSV一致解析装置が判定した場合、そのデータは同一のフォーマットに再生される。
このようにして、所定のフォーマットに一致するテキストファイル部分のみが、AVアプリケーションの次のステージに通過できる。このテキストファイルの一致部分のみが、再生された他のデータ形式部と共に再生され、再編成されて、送信先に送られる。したがって、電子メールのウイルスを含む部分は、不一致となり、したがってブロックされ、すなわち再生されることがなく、そして好ましくは、削除される。不一致部分は、AVアプリケーションを通過できなく、オペレーティングシステムに感染することが許されない。
一致解析装置の他の例として、TIFFファイルを解析し再生するのに使用されるTIFF(Tagged Image File Format)一致解析装置がある。
TIFFファイルは、1組のディレクトリとタグとが所定のフォーマットで配置された構造化フォーマットを有している。イメージデータ自体が意味のある画像を表しているか否かを判定できる。しかしながら、TIFF一致解析装置は、イメージデータが確実に所定の限界内に収まっているかを確認するために、イメージデータを構文解析し分析する。
TIFFファイル内のヘッダ情報は、正しい情報が完全で手付かずのものであるか否かを調べるために、構文解析され分析される。例えば、TIFF一致解析装置は、ヘッダ情報がTIFF画像に対して妥当限界内の解像度、サイズ、被写界深度を含むものであるか否かを調べるために検査を行う。更に、TIFF一致解析装置は、ヘッダに示された帯片(ストリップ)の数がイメージデータと合っているか否かを判定する。
TIFFファイルは、典型的には、LZW(Lempel-Ziv-Welch)圧縮技術を通常使用して圧縮される。TIFFファイルは複数のTIFFストリップを含む。各TIFFストリップは、この例では、AVアプリケーションによって取り扱われる像の中の最も低い単位またはアトムまたは構成要素であり、語用論的制限が適用され得る。帯片の長が妥当な所定限界内にあるか否かを調べるために、各TIFF帯片は一致解析装置によって解凍される。例えば、帯片長が最大イメージサイズの限界以下の場合(例えば、標準のA0用紙サイズより大きい場合)、帯片は拒絶される。TIFF一致解析装置が1つの帯片を拒絶すると、TIFFファイル全体が拒絶される。
また、TIFF一致解析装置は、TIFFファイル内のタグ(すなわち、パラメータデータ)に関する解析を実行する。タグは所定の許可フォーマットに照らして検査されて、例えば、タグが(ヘッダにおけるタグ情報のディレクトリに従って)指定された順序にあるか否か、タグが互いに正しく関連づけられているか否かについて調べられる。
TIFF一致解析装置が、データが所定の許可フォーマットに一致すると判定すると、データが再生されて、オリジナルのファイル名を有する再生TIFFファイルが作成される(上記ファイル名は所定のフォーマットに一致する)。再生TIFFファイルは電子メールサーバに送られて電子メールに再編成される。
TIFFファイル自体の中に他のイメージ形式をもたせることも可能である。例えば、JPEG画像をTIFFファイル内にカプセル化してもよい。TIFF一致解析装置によって異なるイメージ形式が検出された場合、そのイメージに関連するデータが別の一致解析装置、この例では、JPEG一致解析装置に送られる。次いで、JPEG一致解析装置は、そのデータを構文解析し分析して、データが予期されるJPEGフォーマットに一致するか否かを調べる。一致している場合、そのデータをJPEGフォーマットで再生する。再生されたデータは、次に、再生されたTIFFファイル内に再編成される。上記TIFFファイルは、その後、更に再生電子メールを再編成するために使用される。次に、この電子メールは電子メールサーバに渡される。
本実施形態における別の利用可能な選択肢は、AVアプリケーションが、電子メールの不一致箇所に代えて、警告テキストを挿入することである。すなわち、電子メールの再生時に、一致解析装置が一部分のデータを構文解析して、その一部分が所定の許可可能なフォーマットに一致しないと判定された場合、一致解析装置は、不一致部分の代わりに、警告テキストを挿入して、その電子メールの一部がAVアプリケーションによって拒絶されたことを相手の電子メール受信者に知らせる。或いは、不一致のために一致解析装置が電子メールの一部分全体をブロックする場合、AVアプリケーションは、警告テキストを電子メール内に挿入して、電子メールの一部分がブロックされたことを相手の受信者に知らせる。すなわち、電子メールの一部分が、再生されなかったこと、更に好ましくは消去されたことを相手の受信者に知らせる。
[第3の実施形態]
次に、本発明の第3の実施形態を、図10を参照して説明する。この第3の実施形態は、第1或いは第2の実施形態の全ての特徴が組み込まれ、第1或いは第2の実施形態と関連して述べた選択肢(オプション)のいずれをも含むものである。
本実施形態は、AVアプリケーションが電子メールの一部、部分または全体(本実施形態では「不一致部分」という)をブロックする状況に関する。第1の実施形態において検討した図3を参照すると、これは様々な理由に対して生じる。例えば、パッシブ・コンテンツデータの一部分が所定のフォーマットと一致しないので、また、クリーニングモードフラグが設定されていないので、ステップS3−15において、ファイル全体が隔離状態に置かれる。或いは、ステップS3−11において、クリーニングモードフラグが設定されたならば、パッシブ・コンテンツデータの一部分を除いてもよい。
この実施形態では、電子ファイル或いはその一部が一致しなく、したがって、システムに通過することを許されないという決定が信頼AVアプリケーションによってなされた場合、原初電子ファイルはソースフィルタアプリケーションに移動して、ソースフィルタアプリケーションが、電子ファイルが信頼されるソースを起源にしているかどうかを決定する。
この決定は、システムが或る信頼されるソースから何を受け取ること期待するのかに基づいてなされる。データのタイプがそのソースに許容されるかどうかを見るために、換言すると、電子メールがソースによってフィタに掛けられるかどうかを見るために、システムは、データのタイプのリストを、メモリに記憶されたソースの所定のリストに照らし合わすことによって、上記決定をする。したがって、一致しないデータを含むファイルが同じ信頼されるソースから受け取られた場合、それが同じ信頼されるソースを起源としているので、この不一致データは悪意がないと判断され、この原初の不一致データはオペレーティングシステムに通すことが許される。このようにして、システムはAVアプリケーションを備え、ソースフィルタアプリケーションが、同時に、大多数の安全な電子ファイルを目的とする所に通す。
図10は、本第3の実施形態によるプロセスのフローチャートを示す。ステップS10−1において、部分が不一致であるか否かについて、したがって、部分がブロックされるべきか否かについて、AVアプリケーションが判定を行う。AVアプリケーションによってブロックされた場合、その不一致部分はソースフィルタアプリケーションに送られて、ステップS10−3に示すように、そのファイルが信頼されるソースからのものであるか否かを確認する。
ソースフィルタアプリケーションは、システムユーザの選択に基づいて、その不一致部分が信頼されるソース(例えば、送信者のアドレス)に由来するか否かを判定する。上記システムは、そのメモリ内に、信頼されるソースと考えられないファイル形式のリストと、これらファイル形式に付随したソースとを格納している。したがって、システムは、ファイルの送信者とファイル形式に基づいて、そのファイルが通過許可されるか否かを判定することができる。
ステップS10−3での判定において、ファイル形式が、関連するソースから、許可可能としてリストアップされたものの一つではないと判定された場合、そのファイルはステップS10−5でブロックされる。ファイル形式が許可可能と見なされた場合、ステップS10−7において、不一致部分はAVアプリケーションを迂回する。AVアプリケーションは、ステップS10−9において、受信ファイルの残りを再生する。そして、AVアプリケーションは、ステップS10−11において、ファイルの再生された一致部分と迂回した不一致部分とを再編成する。
例えば、バンキングシステムが多数の電子メールを既知の送信者から受信し、その多数の電子メールが複雑なマクロを組み込んだスプレッドシートを含んでいる場合、これらのマクロが、スプレッドシートの添付ファイル内のマクロ用所定許可フォーマットに収まらないことがある。その場合、マクロ一致解析装置は電子メールのこの部分をブロックすることになる。
しかしながら、誰がその電子メールを送っているかをバンキングシステムが判定でき、また、送信者が、バンキングシステムの信頼できる相手として、これらのファイル形式のデータベース内に入力されているときは、電子メールの中のスプレッドシートは悪意あるものとは見なされない。したがって、システムユーザは上記ソースフィルタアプリケーションをセットアップして、これら不一致マクロ部分が、AVアプリケーションを迂回し、且つ、電子メールの再生された部分と共に再編成された電子メールとすることができる。
これに代替わる方法として、ソースフィルタアプリケーションは或るモードで動作させることができる。これによって、AVアプリケーションから受け取った再生ファイルが、送信先のシステムに連通することを許可されるべきか否かを判定する。不一致部分自体は即座にファイル全体が拒絶される程にはAVアプリケーションに対して不一致ではないが、結果的にはオリジナルのファイルと実質的に異なる再生一致ファイルとなる、そのような不一致部分を含むファイルをAVアプリケーションが受け取った場合、再生ファイルはソースフィルタアプリケーションに送られる。例えば、オリジナルのファイルサイズは、AVアプリケーションによって再生されないマクロ内の膨大な数の書直し言語に起因して、再生された一致ファイルのサイズよりもかなり大きなものになり得る。
ソースフィルタアプリケーションは、ファイル形式がそのファイルに対して承認されたソースから送られているか否かを判定する。送られている場合は、ソースフィルタアプリケーションは、そのファイル形式がシステムを通過することを許可する。
[その他の実施形態]
本発明の実施形態は、単なる例証としてここに記載されているに過ぎないこと、また、本発明の範囲から逸脱することなく種々の変更および変形がなし得ることが理解される。
本発明は、電子ファイルをソースから送信先に移す如何なるシステムにおいても、実施し得ることが理解される。本発明の目的とする電子ファイル送信方法は、特定の方法に限定されるものではない。すなわち、例えば、一つのコンピュータシステムのハードウェア内の1つの構成要素から他の構成要素に、電子ファイルを転送してもよい。或いは、例えば、基地局から空中インタフェースを介して移動電話装置に、電子ファイルを転送してもよい。また、例えば、ローカルエリアネットワーク(LAN)や広域ネットワーク(WAN)を介して、或いはインターネットを経由して、電子ファイルを伝送してもよい。
当業者が認識しているように、携帯電話のようなリソース限定の送信先装置のネットワーク系環境では、リソースが限定されているために、各装置には、上記実施形態で述べた大多数のプロセスのみを行う機能が設けられている。このような環境では、機能性を有する更なるネットワーク装置が、ネットワークに設けられている。この更なるネットワーク装置は、装置に新たな機能性を組み込むことによって、新たな機能性をサポートすることができる。このようにして、ネットワーク上に存在するリソース限定装置毎に更新する必要はない。一例として、携帯電話のネットワークでは、各携帯電話機は初期の限定された機能でもって製造される。携帯電話機の機能は、携帯電話機の使用者が第三者のソフトウェアをインストールすることによって更新される。携帯電話機上のAVアプリケーションに対して未知のフォーマットの電子ファイルを要求あるいは受信するために、新たにインストールされたソフトウェアが使用されるならば、そのときは、AVアプリケーションは、受信電子ファイルを処理する能力を有していない場合を識別し、したがって、フルセットの機能を有するネットワーク装置に電子ファイルを渡す。ネットワーク装置は、この新しい機能を認識するべく更新され、したがって、携帯電話機のために受信電子ファイルを処理することができる。次に、ネットワーク装置は、携帯電話機に電子ファイルの再生版を渡し返すことができる。これに替わる更なる方法として、携帯電話機に送信されるデータを傍受するために、十分に機能的なネットワーク装置を作ってもよい。このネットワーク装置は、そのとき、機能的に限定された携帯電話のために、再生版を携帯電話機に送信する以前に特定の電子ファイルを処理できる。
上述した第1の実施形態では、AVアプリケーションは、送信先のファイル内に配置されている。当業者が認識しているように、それに換えて、或いは、それに加えて、ソースにAVアプリケーションを配置してもよいし、或いは、送信手段のどこかに、或いは、通信路に沿った或る点で電子ファイルを解析することができるどこかに、AVアプリケーションを配置してもよい。
上述した第1の実施形態では、電子ファイルはコンテンツデータから成り、コンテンツデータは、特定のルール集を備えたファイルタイプの仕様にしたがって符号化され、配置されている。当業者が認識するように、電子ファイル101は、ビデオストリームやオーディオストリームのようなストリーミングデータとして受信される。このような場合、受信ファイルは、ファイルタイプの仕様にしたがって符号化、配置されるのではなく、例えばストリーミングデータのための送信プロトコルのような、プロトコル仕様にしたがって符号化され、配置される。したがって、AVアプリケーションは、各ファイルタイプの仕様の所定のフォーマットとルールを保存しているのに加えて、様々なプロトコル仕様の所定のフォーマットとルールをも保存している。そのとき、AVアプリケーションは、受信したストリーミングデータを処理して、このデータがプロトコルの所定のフォーマットに従ったものかどうかを決定することができる。
上述した第1の実施形態では、ハッシュ・データベース106とハッシュ・ジェネレータ133が、送信先システム109内に設けられている。当業者が認識するように、アクティブ・コンテンツデータの部分の処理は、従来の第三者のアンチウイルス・アプリケーションによって実施され得る。例えば、受信電子ファイルがマイクロソフトワード書類のマクロの場合、パッシブ・コンテンツデータを形成するワード書類の大部分は、AVアプリケーションによって処理されて、それが安全か否かを決定する。そして、アクティブ・コンテンツデータを形成するマクロ書類が、それが既知のセキュリティー攻撃ツールを含んでいるかどうかを決定するために、従来のアンチウイルス製品によってスキャンされる。しかし、このような選択肢には、アプリケーションデータベースが更新されていない場合にゼロ・デイ攻撃を受けるおそれのある第3者のアンチウイルス・アプリケーションに頼るという不利益がある。もう一つの選択肢としては、信頼し得る第三者から得られた既知の良好なスクリプト、マクロ、実行可能コードなどのハッシュ・データベースをダウンロードすることによって、例えば、ウイルスの痕跡のデータベースをダウンロードすることで知られたものと同じメカニズムを用いることによって、送信先システム109は、ハッシュ・データベース106を更新するように構成されている。このメカニズムは、第三者のハッシュ・データベースに包含すべく、マクロやスクリプトや実行可能コードに、使用される。
上述した第1の実施形態では、パッシブ・コンテンツデータが所定のフォーマットに一致しなくて、クリーニングモードフラグが無効となる場合、電子ファイル全体が隔離される。当業者が認識するように、全体のファイルを単に隔離することの代替え案として、フォーマットや明細書が未知の電子ファイルの一部は、アクティブ・コンテンツデータと同じようにして取り扱うことができる。したがって、未知のコンテンツのこれらの部分のためにハッシュが創成され、ハッシュは、良好なコンテンツのハッシュ・データベースに対してチェックされる。
上述した第1の実施形態では、クリーニングモードフラグが無効である場合、クリーニングプロセスが実施されて、非一致部分が除去される。また、コンテンツ・リジェネレータが使用されて、必要な空値を再生するか、或いは、所定のファイルのタイプにしたがって、再生されたファイルの一部を除去する。当業者が認識するように、このクリーニングプロセスにおいて、プロセッサは、コンテンツデータの一部に対して明白な訂正を行うように設定されている。例えば、或るデータビットの明白な脱落のために、JPEGファイルが形成される。このような明白なエラーの場合、クリーニングプロセス中に欠落ビットを加えて、コンテンツデータの一部を修正してもよい。
上述した第1の実施形態では、アクティブ・コンテンツデータの部分に対して、ハッシュが生成される。スクリプト、マクロ、実行可能コードが、意味的に異ならないように修正されるならば、アクティブ・コンテンツデータの異なるバージョンは、ハッシュ・データベースに登録される必要のある全て異なるハッシュとなる。このことを回避するために、スクリプトやマクロや実行可能コードは正規化されて、ハッシュ・データベースに記憶されるべきハッシュを創成する前に、レイアウトおよび変数名の変更が削除される。例えば、スペースおよび改行が全て削除され、変数名は標準化された表記に全て置き換えられる。この結果、スクリプトやマクロや実行可能コードは無用となるが、単に表面的に異なっていて機能的には同一なスクリプトやマクロや実行可能コードが同じテキストに標準化されている限り、この無用となることは重要でない。具体的な例として、ジャバスクリプトファンクションを定義するコードの次の部分は、HTMLファイル内に受信される。
Figure 0005069308
コードのこの部分は、全てのスペース(文字列の外)を削除するとともに、全ての変数を標準名(この場合、$<n>。<n>は各新変数に対して変数値を増加させる数)に置き換えることによって、標準化される。この例では、標準化されたコードは、結果的には次のようになる。
Figure 0005069308
上述した第1の実施形態では、アクティブ・コンテンツデータの部分に対して、ハッシュが創成される。当業者が認識するように、2つの異なるスクリプト、マクロ、実行可能コードの機能は、同一のハッシュを与える。これが生じる可能性を減少させるために、反復可能な所定のやり方でランダムビットを加えることにより、スクリプト、マクロ、実行可能コードを塩漬けにすることが可能である。その際には、誰かが悪意のあるスクリプトを登録スクリプトとして通すのをいっそう困難にするために、ハッシュが創成される前に行われる。当業者が認識するように、このようにパッシブ・コンテンツデータを変更することによって、誰かが(特に、ハッシュ・データベースの知識を有する誰かが)、許可アクティブ・コンテンツデータに成り済ました悪意あるスクリプト、マクロ、実行可能コードを創成することが、いっそう困難になる。これは、その誰か(彼または彼女)が、ハッシュが創成される前に、内容を変更または変化させるプロセスに関する知識を有していないと考えられるからである。
上述した第1の実施形態では、ハッシュ・データベース106は単一のデータベースであって、この単一のデータベースは、悪意のないものとして以前に示されたアクティブ・コンテンツデータに対するハッシュの全てを保管する。当業者が認識しているように、ハッシュ・データベースは、その代わりに、例えば、スクリプト、マクロ、実行可能コードのためのデータベース等の複数の既知のタイプのデータベースを保管することができる。このようにして、ハッシュ・データベースの調査は、例えば、ハッシュが登録されたジャバスクリプトのそれと適合しているために、VBスクリプトが誤って通過するということがないように、アクティブ・コンテンツデータのタイプに対して特有なものとなる。
更に、上述した実施形態の更なる選択肢として、ユーザのためにオーバーライド装置を備えて、電子ファイル受信時に、ユーザが、AVアプリケーションまたはソースフィルタアプリケーションによってなされた判定を手動でオーバーライド(処置)することが考えられる。すなわち、不一致に起因してAVアプリケーション内の一致解析装置が電子メールの一部または部分または全体をブロックするときであっても、電子メールの不一致なものの再生、再編成を許可する選択肢がユーザに与えられる。この選択肢の実施の一例は、相手の受信者にテキスト警告書を提供して、不一致と解析された電子メールは、所定の許可フォーマットに一致するものと同様にシステム通過を許可すべきであるか否かを受信者に尋ねることである。この警告に対する応答により、可能であれば、電子メールを再生し、再編成する命令が一致解析装置に与えられる。或いはそれに代わって、オリジナルの電子メールは、AVアプリケーションおよびソースフィルタアプリケーションの両方を迂回することが許可されて、再生されることなくシステムを通過する。
更に、第2の実施形態で説明したAVアプリケーションは、ISP電子メールサーバ以外の場所に設置し得ることが考えられる。例えば、AVアプリケーションは、受信者の電子メールクライアントサーバに配置し設置してもよい。こうして、電子メールクライアントサーバによってハードディスクドライブ上の受信者受信ボックスに送られた電子メールが、上述した再生電子メールとなる。
更に、AVアプリケーションは、限定的なものではないが、シリコン、ガリウム砒素(GaAs)、リン化インジウム(InP)などの半導体素子において、ハードワイヤ接続してもよいことが考えられる。すなわち、AVアプリケーションは定量化可能なタスクを有している。この定量化可能なタスクは、所定の一致フォーマットを形成するプロセスに対して更新する必要がない。構文解析、分析、再生および再編成を含むAVアプリケーションのタスクを実行するのに必要な命令は、任意の適切な半導体装置において、実現可能である。また、AVアプリケーションを実行するのに必要な命令は、半固定メモリ素子や固定メモリ素子に格納しておくことが可能である。そのとき、上記メモリ素子は、接続されたプロセッサと協働して作動し、AVアプリケーションを実行する。これらの場合、本発明を、保護すべきコンピュータとは分離して、別個の装置として提供することが可能となる。上記別個の装置(例えば、モデムカード、ネットワークアダプタカード、またはディスクドライブコントローラなどのカード)には、保護すべきコンピュータとは別のプロセッサやメモリハードウェアが含まれる。そうすることによって、到来する電子ファイルを保護すべきコンピュータのファイルシステムその他のリソースから完全に隔離し、通常書込みや更新のできない場所に上記電子ファイルを保存して、それによりAVアプリケーション自体に対する“トラップドア”攻撃を回避するという利点が得られる。すなわち、一定レベルの物理的セキュリティが得られるという利点がある。上記半導体装置はプロセッサとメモリ素子とから成り、上記プロセッサはメモリ素子からのAVアプリケーションを実行させ、到来ファイルを隔離するために、上記ファイルをメモリ素子に保存する。
更に、上記半導体装置は、従来法を用いる適当なネットワークカードの一部として設けることが考えられる。このようにして、ネットワークカードは、上記方法を用いて受信電子ファイルを再生することによって、ネットワークを不適切なコードおよびデータから確実に保護する手段として、通信ネットワーク内で用いることができる。
更に、上記第1の実施形態で説明した電子ファイルは、コンピュータ装置によって受け取られ、着脱式メモリ素子に保存することが考えられる。例えば、電子ファイルは、直接またはワイヤレスの媒体を介して、コンピュータ装置に接続されたUSBディスク装置、スマートカード、セキュアデジタル(SD)メモリ装置、マルチメディアカード(MMC)メモリ装置、コンパクトフラッシュ(CF)カード1型または2型、スマートメディア(SM)カード、XDカード、フロッピーディスク、ZIPドライブ、ポータブルハードドライブ、その他の適切なメモリ装置に保存することができる。
更に、本出願で説明されるオペレーティングシステムは、ファイルを使用するあらゆるシステムであり得ると考えられる。例えば、埋込み型システム、ルータ、ネットワークカード等である。
更に、他のスクランブル方法を用いて、確実に、受信された実行可能ファイルが自動的には実行され得ないことが考えられる。例えば、スクランブル方法は、バイトスワップ法を用いて、受信バイトの各ペアを格納する。この例では、ABCDEFの6バイトがAVアプリケーションによって受信された場合であって、バイトAが最初にバイトFが最後に受信された場合には、上記ABCDEFはBADCFEの順でメモリに格納される。最初のバイトAは2番目のメモリ位置に格納され、2番目のバイトBは最初のメモリ位置に格納される。この反転は、後続のメモリ位置における受信バイトの各ペアに対しても、生じる。このようにして、如何なる実行可能なコードも自動的に動作することができないので、如何なる感染電子ファイルも、AVアプリケーションや送信先のオペレーティングシステムに感染することができない。
上述した実施形態では、電子ファイルは処理用の送信先システムによって受信される。当業者が認識するように、通信ストリーム内でデータファイルを処理するときに、データは、データのチャンク(塊)またはパケットの形で、送信先システムに達する。上記データのチャンクまたはパケットは、処理される電子ファイルの全てを形成すべく蓄積される。一般に、受信される電子ファイルは、丸ごと受信され、連続する一つのメモリに保存される。このような場合、電子ファイルを有効にするために、電子ファイル内の異なる位置のデータを解析する必要があるならば、このような処理が可能となる。ファイル全体がメモリ内に存在するからである。しかし、当業者が認識するように、電子ファイルの全受信データが、メモリ全体として、保存され得るという訳ではない。例えば、ネットワークカードやルータのような装置は、典型的には限定されたメモリ資源を有していて、処理するためにこれらの装置内の電子ファイル全体を緩衝することは、適切ではない。このような環境では、送信者のパソコンのようなソースの装置は、リソースが限定されたネットワーク装置よりもずっと多くのリソースを有している。したがって、ソース装置は、電子ファイルを書き直すように作られていて、AVアプリケーションによって一緒に処理しなければならないファイルの全ての関係部分が、リソース限定装置に整然と流される。このようにして、リソース限定装置は電子ファイル全体を緩衝する必要はない。また、小さな緩衝材を使用して、処理されるファイルの部分のみを保管してもよい。電子ファイルの一部分が処理されて悪意のないものと一旦決定されると、その部分は再生されて、受信者のパソコンのような送信先装置に即座に送られる。このようにして、ストリーミングデータの送信が行われるが、これは、十分なバッファリングアプローチが使用されるならば、データの流れが連続的に開始され停止される「集中的な」タイプの転送とは対照的である。
誤解を避けるために述べておくと、本明細書によって、上述の新規実施形態のいずれか或いは全てに対して、単独で或いは組み合わせで、保護が求められている。本発明の様々な局面および実施形態およびそれらの変形例について説明したので、本発明が、その原理から逸脱することなく、構成や詳細において変更され得ることを当業者は認識する。我々は、全ての実施形態および請求項の精神と範囲に含まれる変更や変形について権利を主張する。

Claims (38)

  1. 電子ファイルを処理する方法において、
    上記電子ファイル内のコンテンツデータの一部分を識別することと、
    上記コンテンツデータの識別された一部分が、一定の目的を有するパッシブ・コンテンツデータであるか、或いは、関連したファンクションを有するアクティブ・コンテンツデータであるかを決定することと
    を備え、
    上記コンテンツデータの識別された一部分がパッシブ・コンテンツデータであると決定されたならば、そのときは、
    上記パッシブ・コンテンツデータの上記一部分のファイルタイプまたはプロトコルを決定し、且つ、
    上記ファイルタイプまたはプロトコルに対応する一組のルールを備えた所定のデータフォーマットに上記パッシブ・コンテンツデータが一致するかどうかを決定することによって、上記パッシブ・コンテンツデータの一部分が再生されるべきかどうかを決定し、
    上記コンテンツデータの一部分がアクティブ・コンテンツデータであると決定されたならば、そのときは、
    上記アクティブ・コンテンツデータの一部分を解析して、上記アクティブ・コンテンツデータの一部分が再生されるべきどうかを決定し、且つ、
    上記アクティブ・コンテンツデータの一部分が再生されるべきであると決定されたならば、上記アクティブ・コンテンツデータの一部分を再生して、再生電子ファイルを創成し、
    記電子ファイルはコンテンツデータの複数の部分を備え、上記方法は、上記コンテンツデータの複数の部分の各々を処理して、アクティブ・コンテンツデータの各部分が再生されるべきか否かを決定し、且つ、再生されるべきと決定されたコンテンツデータのこれらの部分を再生して、再生電子ファイルを創成し、
    上記方法は、クリーニングモードが有効か無効かどうかを決定するステップを更に備え、パッシブ・コンテンツデータの少なくとも一部分が再生されるべきでないと決定され、且つ、クリーニングモードが無効であると決定されたならば、コンテンツデータの部分を再生して再生電子ファイルを創成する上記ステップは実施されないことを特徴とする方法。
  2. 請求項に記載の方法において、
    パッシブ・コンテンツデータの少なくとも一部分が再生されるべきでないと決定され、且つ、クリーニングモードが無効であると決定されたならば、上記電子ファイルが隔離されることを特徴とする方法。
  3. 請求項1乃至のいずれか一つに記載の方法において、
    アクティブ・コンテンツデータの一部分を解析する上記ステップは、
    上記アクティブ・コンテンツデータの一部分のためのハッシュを創成することと、
    上記創成されたハッシュが既知のアクティブ・コンテンツデータのハッシュ・データベースに存在するかどうかを決定することと、
    上記創成されたハッシュが上記ハッシュ・データベースに存在することが決定されたならば、上記アクティブ・コンテンツデータの一部分は再生されるべきことを決定することと
    を備えていることを特徴とする方法。
  4. 請求項1乃至のいずれか一つに記載の方法において、
    電子ファイル内のパッシブ・コンテンツデータの一部分がパッシブ・コンテンツデータの複数のサブ部分を備え、上記サブ部分の各々が処理されて、上記パッシブ・コンテンツデータのサブ部分が所定のファイルフォーマットに一致するかどうかを決定し、上記サブ部分の全てが所定のファイルフォーマットに一致するならば、上記パッシブ・コンテンツデータの一部分は所定のファイルフォーマットに一致すると決定されることを特徴とする方法。
  5. 請求項に記載の方法において、
    上記パッシブ・コンテンツデータの複数のサブ部分は、異なるファイルタイプを有することを特徴とする方法。
  6. 請求項1または2のいずれか一つに記載の方法において、
    アクティブ・コンテンツデータの一部分を解析する上記ステップは、第三者のアンチウイルス・アプリケーションを用いて上記アクティブ・コンテンツデータの一部分を処理することによって、上記アクティブ・コンテンツデータの一部分が再生されるべきか否かを決定することを特徴とする方法。
  7. 請求項1乃至のいずれか一つに記載の方法において、
    上記パッシブ・コンテンツデータは、テキストまたはイメージまたはオーディオまたはビデオのコンテンツデータを備えていることを特徴とする方法。
  8. 請求項1乃至のいずれか一つに記載の方法において、
    上記アクティブ・コンテンツデータは、スクリプトまたはマクロまたは実行可能コードを備えていることを特徴とする方法。
  9. 請求項1乃至のいずれか一つに記載の方法において、
    パッシブ・コンテンツデータの一部分の意図する所定のデータタイプを決定することができないならば、そのときは、そのパッシブ・コンテンツデータの一部分をアクティブ・コンテンツデータの一部分として解析することを特徴とする方法。
  10. 請求項に記載の方法において、
    アクティブ・コンテンツデータの一部分を標準化するステップを更に備え、ハッシュを創成する上記ステップは、上記アクティブ・コンテンツデータの標準化された一部分のためのハッシュを創成することを特徴とする方法。
  11. 請求項に記載の方法において、
    所定の繰り返し可能なやり方でアクティブ・コンテンツデータの一部分を変換するステップを更に備え、ハッシュを創成する上記ステップは、アクティブ・コンテンツデータの変換された一部分のためのハッシュを創成することを特徴とする方法。
  12. 請求項1乃至1のいずれか一つに記載の方法において、
    メモリ内にスクランブルフォーマットで電子ファイルを格納することを更に備えていることを特徴とする方法。
  13. 請求項1に記載の方法において、
    データの各バイトは、ビットが逆の順で格納されることを特徴とする方法。
  14. 請求項1に記載の方法において、
    上記データは、受信データのバイトの各ペアが逆のメモリ順で配置されるように、格納されることを特徴とする方法。
  15. 請求項1乃至1のいずれか一つに記載の方法において、
    再生されるべきでないと決定されたコンテンツデータの一部分を警告テキストに置き換えることを更に備えていることを特徴とする方法。
  16. 請求項1に記載の方法において、
    上記電子ファイルは電子メールであり、上記方法は再生された電子メールを所望の受信者に送ることを更に備えていることを特徴とする方法。
  17. 請求項1に記載の方法において、
    着脱式メモリ装置から上記電子ファイルを受信することと、計算装置に上記再生された電子ファイルを送ることとを、更に備えていることを特徴とする方法。
  18. コンピュータ可読媒体は、コンピュータ上でコンピュータプログラムを実行させたときに、請求項1乃至17のいずれか一つに記載の方法を行うように構成された上記コンピュータプログラムを備えていることを特徴とする半導体装置。
  19. 請求項1乃至17のいずれか一つに記載の方法を行うための指示を含むメモリ手段を備えていることを特徴とする半導体装置。
  20. 請求項19に記載の半導体装置において、
    上記半導体装置は半永久または永久メモリ装置であることを特徴とする半導体装置。
  21. 請求項19または20に記載の半導体装置を備えていることを特徴とするネットワークカード。
  22. 電子ファイルのコンテンツデータの一部分を識別するための手段と、
    上記コンテンツデータの識別された部分が、一定の目的を有するパッシブ・コンテンツデータであるか、或いは関連するファンクションを有するアクティブ・コンテンツデータであるかどうかを決定するための手段と、
    パッシブ・コンテンツデータの一部分のファイルタイプまたはプロトコルを決定するための手段であって、上記パッシブ・コンテンツデータが、上記ファイルタイプまたは上記プロトコルに対応する一組のルールを備えた所定のデータフォーマットに一致するかどうかを決定することによって、パッシブ・コンテンツデータの一部分が再生されるべきかどうかを決定するための手段と、
    アクティブ・コンテンツデータの一部分を解析してアクティブ・コンテンツデータの一部分が再生されるべきかどうかを決定するための手段と、
    上記コンテンツデータの一部分が再生されるべきであると決定されたならば、上記コンテンツデータの一部分を再生して再生電子ファイルを創成するための手段と
    を備え、
    記電子ファイルはコンテンツデータの複数の部分を備え、上記装置は、上記コンテンツデータの複数の部分の各々を処理して、アクティブ・コンテンツデータの各部分が再生されるべきか否かを決定し、且つ、再生されるべきであると決定されたコンテンツデータのこれらの部分を再生して、再生電子ファイルを創成するように、構成されており、
    リーニングモードが有効なのか無効なのかを決定するための手段を更に備え、
    パッシブ・コンテンツデータの少なくとも一部分が再生されるべきでなく、且つ、上記クリーニングモードが無効であると決定されたならば、コンテンツデータの部分を再生するための上記手段は、再生電子ファイルを創成しないように構成されていることを特徴とする装置。
  23. 請求項22に記載の装置において、
    パッシブ・コンテンツデータの少なくとも一部分が再生されるべきでなく、且つ、上記クリーニングモードが無効であると決定されたならば、上記装置は、上記電子ファイルを隔離するように構成されていることを特徴とする装置。
  24. 請求項22または23に記載の装置において、
    アクティブ・コンテンツデータの一部分を解析するための上記手段は、
    上記アクティブ・コンテンツデータの一部分のためのハッシュを創成し、
    上記創成されたハッシュが既知のアクティブ・コンテンツデータのハッシュ・データベースに存在するかどうかを決定し、
    上記創成されたハッシュが既知のアクティブ・コンテンツデータのハッシュ・データベースに存在すると決定されたならば、上記アクティブ・コンテンツデータの一部分は再生されるべきであると決定する
    ように構成されていることを特徴とする装置。
  25. 請求項22乃至24のいずれか一つに記載の装置において、
    パッシブ・コンテンツデータの一部分のファイルタイプまたはプロトコルを決定するための手段は、特定のファイルタイプまたはプロトコルに各々が関連する複数の一致分析装置を備えていることを特徴とする装置。
  26. 請求項5に記載の装置において、
    上記電子ファイル内のパッシブ・コンテンツデータの一部分は、パッシブ・コンテンツデータの複数のサブ部分を備え、上記サブ部分の各々は上記複数の一致分析装置の内のそれぞれ一つの一致分析装置によって処理されて、上記パッシブ・コンテンツデータのサブ部分が所定のデータフォーマットに一致するかどうかを決定することを特徴とする装置。
  27. 請求項22乃至6のいずれか一つに記載の装置において、
    コンテンツデータの一部分を再生するための手段は、特定のファイルタイプまたはプロトコルに各々が関連する複数のコンテンツ再生装置を備えていることを特徴とする装置。
  28. 請求項22乃至7のいずれか一つに記載の装置において、
    アクティブ・コンテンツデータの一部分を解析するための上記手段は、第三者のアンチウイルス・アプリケーションを用いて上記アクティブ・コンテンツデータの一部分を処理することによって、上記アクティブ・コンテンツデータの一部分が再生されるべきか否かを決定するように構成されていることを特徴とする装置。
  29. 請求項22乃至8のいずれか一つに記載の装置において、
    上記パッシブ・コンテンツデータは、テキストまたはイメージまたはオーディオまたはビデオのコンテンツデータを備えていることを特徴とする装置。
  30. 請求項22乃至9のいずれか一つに記載の装置において、
    上記アクティブ・コンテンツデータは、スクリプトまたはマクロまたは実行可能コードを備えていることを特徴とする装置。
  31. 請求項22乃至0のいずれか一つに記載の装置において、
    アクティブ・コンテンツデータの一部分を解析するための上記手段は、更に、パッシブ・コンテンツデータの一部分の所定とされるデータタイプを決定する上記手段が、上記パッシブ・コンテンツデータの一部分の所定とされるデータタイプを決定することができないならば、パッシブ・コンテンツデータの一部分を解析するように構成されていることを特徴とする装置。
  32. 請求項22乃至1のいずれか一つに記載の装置において、
    アクティブ・コンテンツデータの一部分を標準化する手段を更に備えていることを特徴とする装置。
  33. 請求項22乃至32のいずれか一つに記載の装置において、
    上記電子ファイルをメモリ内にスクランブルフォーマットで格納するための手段を更に備えていることを特徴とする装置。
  34. 請求項33に記載の装置において、
    データの各バイトは、ビットが逆の順で格納されていることを特徴とする装置。
  35. 請求項33に記載の装置において、
    上記データは、受信データのバイトの各ペアが逆のメモリ順で配置されるように、格納されることを特徴とする装置。
  36. 請求項22乃至35のいずれか一つに記載の装置において、
    電子ファイルを再生するための上記手段は、更に、再生されるべきでないと決定されたコンテンツデータの一部分を警告テキストに置き換えるように構成されていることを特徴とする装置。
  37. 請求項22に記載の装置において、
    上記電子ファイルは電子メールであり、また、上記装置は、再生された電子メールを所望の受信者に送付するための手段を更に備えていることを特徴とする装置。
  38. 請求項22に記載の装置において、
    着脱式記憶装置からの上記電子ファイルを受信するための手段と、上記再生された電子ファイルを計算装置に送付するための手段とを、更に備えていることを特徴とする装置。
JP2009539791A 2006-12-04 2007-11-08 不適切なコードおよびデータの拡散防止における改善 Active JP5069308B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB0624224.2 2006-12-04
GB0624224A GB2444514A (en) 2006-12-04 2006-12-04 Electronic file re-generation
PCT/GB2007/004258 WO2008068450A2 (en) 2006-12-04 2007-11-08 Improvements in resisting the spread of unwanted code and data

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2012161669A Division JP2012230704A (ja) 2006-12-04 2012-07-20 不適切なコードおよびデータの拡散防止における改善

Publications (2)

Publication Number Publication Date
JP2010511951A JP2010511951A (ja) 2010-04-15
JP5069308B2 true JP5069308B2 (ja) 2012-11-07

Family

ID=37671847

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2009539791A Active JP5069308B2 (ja) 2006-12-04 2007-11-08 不適切なコードおよびデータの拡散防止における改善
JP2012161669A Pending JP2012230704A (ja) 2006-12-04 2012-07-20 不適切なコードおよびデータの拡散防止における改善
JP2014121522A Active JP5628455B2 (ja) 2006-12-04 2014-06-12 不適切なコードおよびデータの拡散防止における改善

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2012161669A Pending JP2012230704A (ja) 2006-12-04 2012-07-20 不適切なコードおよびデータの拡散防止における改善
JP2014121522A Active JP5628455B2 (ja) 2006-12-04 2014-06-12 不適切なコードおよびデータの拡散防止における改善

Country Status (10)

Country Link
US (3) US8533824B2 (ja)
EP (1) EP2089829A2 (ja)
JP (3) JP5069308B2 (ja)
CN (2) CN101611412B (ja)
AU (1) AU2007330580B2 (ja)
CA (1) CA2671804C (ja)
GB (1) GB2444514A (ja)
MY (2) MY170629A (ja)
TW (2) TWI488065B (ja)
WO (1) WO2008068450A2 (ja)

Families Citing this family (179)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8566946B1 (en) 2006-04-20 2013-10-22 Fireeye, Inc. Malware containment on connection
US9106694B2 (en) 2004-04-01 2015-08-11 Fireeye, Inc. Electronic message analysis for malware detection
US8171553B2 (en) 2004-04-01 2012-05-01 Fireeye, Inc. Heuristic based capture with replay to virtual machine
US8584239B2 (en) 2004-04-01 2013-11-12 Fireeye, Inc. Virtual machine with dynamic data flow analysis
US8549638B2 (en) 2004-06-14 2013-10-01 Fireeye, Inc. System and method of containing computer worms
US8528086B1 (en) 2004-04-01 2013-09-03 Fireeye, Inc. System and method of detecting computer worms
US8898788B1 (en) 2004-04-01 2014-11-25 Fireeye, Inc. Systems and methods for malware attack prevention
US8881282B1 (en) 2004-04-01 2014-11-04 Fireeye, Inc. Systems and methods for malware attack detection and identification
US7587537B1 (en) 2007-11-30 2009-09-08 Altera Corporation Serializer-deserializer circuits formed from input-output circuit registers
US8793787B2 (en) 2004-04-01 2014-07-29 Fireeye, Inc. Detecting malicious network content using virtual environment components
GB2427048A (en) 2005-06-09 2006-12-13 Avecho Group Ltd Detection of unwanted code or data in electronic mail
US8615800B2 (en) * 2006-07-10 2013-12-24 Websense, Inc. System and method for analyzing web content
US20080141376A1 (en) * 2006-10-24 2008-06-12 Pc Tools Technology Pty Ltd. Determining maliciousness of software
US9654495B2 (en) 2006-12-01 2017-05-16 Websense, Llc System and method of analyzing web addresses
US9729513B2 (en) * 2007-11-08 2017-08-08 Glasswall (Ip) Limited Using multiple layers of policy management to manage risk
GB0709527D0 (en) 2007-05-18 2007-06-27 Surfcontrol Plc Electronic messaging system, message processing apparatus and message processing method
CA2729158A1 (en) 2008-06-30 2010-01-07 Websense, Inc. System and method for dynamic and real-time categorization of webpages
US8850571B2 (en) 2008-11-03 2014-09-30 Fireeye, Inc. Systems and methods for detecting malicious network content
US8997219B2 (en) * 2008-11-03 2015-03-31 Fireeye, Inc. Systems and methods for detecting malicious PDF network content
US8881287B1 (en) * 2009-03-20 2014-11-04 Symantec Corporation Systems and methods for library function identification in automatic malware signature generation
US8832829B2 (en) 2009-09-30 2014-09-09 Fireeye, Inc. Network-based binary file extraction and analysis for malware detection
GB201008868D0 (en) * 2010-05-27 2010-07-14 Qinetiq Ltd Computer security
JP5779334B2 (ja) 2010-11-09 2015-09-16 デジタルア−ツ株式会社 出力制御装置、出力制御プログラム、出力制御方法および出力制御システム
AU2012260619B2 (en) 2011-05-20 2016-02-18 Bae Systems Plc Supervised data transfer
CN102855432B (zh) 2011-06-27 2015-11-25 北京奇虎科技有限公司 一种文件、文件夹解锁和删除方法及系统
TWI439097B (zh) 2011-08-26 2014-05-21 Univ Nat Taiwan Science Tech 跨站腳本攻擊產生方法
TWI494787B (zh) * 2012-05-28 2015-08-01 Hung Chi Lin Vba模組隱藏方法
US11126720B2 (en) 2012-09-26 2021-09-21 Bluvector, Inc. System and method for automated machine-learning, zero-day malware detection
US9292688B2 (en) * 2012-09-26 2016-03-22 Northrop Grumman Systems Corporation System and method for automated machine-learning, zero-day malware detection
US10572665B2 (en) 2012-12-28 2020-02-25 Fireeye, Inc. System and method to create a number of breakpoints in a virtual machine via virtual machine trapping events
US9009823B1 (en) 2013-02-23 2015-04-14 Fireeye, Inc. Framework for efficient security coverage of mobile software applications installed on mobile devices
US9367681B1 (en) 2013-02-23 2016-06-14 Fireeye, Inc. Framework for efficient security coverage of mobile software applications using symbolic execution to reach regions of interest within an application
US9176843B1 (en) 2013-02-23 2015-11-03 Fireeye, Inc. Framework for efficient security coverage of mobile software applications
US8990944B1 (en) 2013-02-23 2015-03-24 Fireeye, Inc. Systems and methods for automatically detecting backdoors
US9195829B1 (en) 2013-02-23 2015-11-24 Fireeye, Inc. User interface with real-time visual playback along with synchronous textual analysis log display and event/time index for anomalous behavior detection in applications
US8813242B1 (en) * 2013-02-25 2014-08-19 Mobile Iron, Inc. Auto-insertion of information classification
US9355247B1 (en) 2013-03-13 2016-05-31 Fireeye, Inc. File extraction from memory dump for malicious content analysis
US9626509B1 (en) 2013-03-13 2017-04-18 Fireeye, Inc. Malicious content analysis with multi-version application support within single operating environment
US9104867B1 (en) 2013-03-13 2015-08-11 Fireeye, Inc. Malicious content analysis using simulated user interaction without user involvement
US9311479B1 (en) 2013-03-14 2016-04-12 Fireeye, Inc. Correlation and consolidation of analytic data for holistic view of a malware attack
US9430646B1 (en) 2013-03-14 2016-08-30 Fireeye, Inc. Distributed systems and methods for automatically detecting unknown bots and botnets
WO2014145805A1 (en) 2013-03-15 2014-09-18 Mandiant, Llc System and method employing structured intelligence to verify and contain threats at endpoints
US10713358B2 (en) 2013-03-15 2020-07-14 Fireeye, Inc. System and method to extract and utilize disassembly features to classify software intent
US9495180B2 (en) 2013-05-10 2016-11-15 Fireeye, Inc. Optimized resource allocation for virtual machines within a malware content detection system
US9635039B1 (en) 2013-05-13 2017-04-25 Fireeye, Inc. Classifying sets of malicious indicators for detecting command and control communications associated with malware
US10133863B2 (en) 2013-06-24 2018-11-20 Fireeye, Inc. Zero-day discovery system
EP3014443B1 (en) * 2013-06-24 2020-06-10 Cylance Inc. Automated system for generative multimodel multiclass classification and similarity analysis using machine learning
US9300686B2 (en) 2013-06-28 2016-03-29 Fireeye, Inc. System and method for detecting malicious links in electronic messages
US20150082424A1 (en) * 2013-09-19 2015-03-19 Jayant Shukla Active Web Content Whitelisting
EP3049983B1 (en) * 2013-09-24 2018-07-25 McAfee, LLC Adaptive and recursive filtering for sample submission
US9690936B1 (en) 2013-09-30 2017-06-27 Fireeye, Inc. Multistage system and method for analyzing obfuscated content for malware
US9736179B2 (en) 2013-09-30 2017-08-15 Fireeye, Inc. System, apparatus and method for using malware analysis results to drive adaptive instrumentation of virtual machines to improve exploit detection
US9628507B2 (en) 2013-09-30 2017-04-18 Fireeye, Inc. Advanced persistent threat (APT) detection center
US10515214B1 (en) 2013-09-30 2019-12-24 Fireeye, Inc. System and method for classifying malware within content created during analysis of a specimen
US9171160B2 (en) 2013-09-30 2015-10-27 Fireeye, Inc. Dynamically adaptive framework and method for classifying malware using intelligent static, emulation, and dynamic analyses
US9294501B2 (en) 2013-09-30 2016-03-22 Fireeye, Inc. Fuzzy hash of behavioral results
GB2518880A (en) * 2013-10-04 2015-04-08 Glasswall Ip Ltd Anti-Malware mobile content data management apparatus and method
US9921978B1 (en) 2013-11-08 2018-03-20 Fireeye, Inc. System and method for enhanced security of storage devices
DE102013226171A1 (de) * 2013-12-17 2015-07-02 Siemens Aktiengesellschaft Vorrichtung und Verfahren zur Übertragung von Daten
US9756074B2 (en) 2013-12-26 2017-09-05 Fireeye, Inc. System and method for IPS and VM-based detection of suspicious objects
US9747446B1 (en) 2013-12-26 2017-08-29 Fireeye, Inc. System and method for run-time object classification
US9292686B2 (en) 2014-01-16 2016-03-22 Fireeye, Inc. Micro-virtualization architecture for threat-aware microvisor deployment in a node of a network environment
US10469510B2 (en) * 2014-01-31 2019-11-05 Juniper Networks, Inc. Intermediate responses for non-html downloads
US9262635B2 (en) 2014-02-05 2016-02-16 Fireeye, Inc. Detection efficacy of virtual machine-based analysis with application specific events
US9241010B1 (en) 2014-03-20 2016-01-19 Fireeye, Inc. System and method for network behavior detection
US10242185B1 (en) 2014-03-21 2019-03-26 Fireeye, Inc. Dynamic guest image creation and rollback
US9591015B1 (en) 2014-03-28 2017-03-07 Fireeye, Inc. System and method for offloading packet processing and static analysis operations
US9223972B1 (en) 2014-03-31 2015-12-29 Fireeye, Inc. Dynamically remote tuning of a malware content detection system
US9432389B1 (en) 2014-03-31 2016-08-30 Fireeye, Inc. System, apparatus and method for detecting a malicious attack based on static analysis of a multi-flow object
US9594912B1 (en) 2014-06-06 2017-03-14 Fireeye, Inc. Return-oriented programming detection
US9438623B1 (en) 2014-06-06 2016-09-06 Fireeye, Inc. Computer exploit detection using heap spray pattern matching
US9973531B1 (en) 2014-06-06 2018-05-15 Fireeye, Inc. Shellcode detection
US10084813B2 (en) 2014-06-24 2018-09-25 Fireeye, Inc. Intrusion prevention and remedy system
US9398028B1 (en) 2014-06-26 2016-07-19 Fireeye, Inc. System, device and method for detecting a malicious attack based on communcations between remotely hosted virtual machines and malicious web servers
US10805340B1 (en) 2014-06-26 2020-10-13 Fireeye, Inc. Infection vector and malware tracking with an interactive user display
US10002252B2 (en) 2014-07-01 2018-06-19 Fireeye, Inc. Verification of trusted threat-aware microvisor
US9363280B1 (en) 2014-08-22 2016-06-07 Fireeye, Inc. System and method of detecting delivery of malware using cross-customer data
US9306940B2 (en) 2014-09-08 2016-04-05 Square, Inc. Mitigating risk of account enumeration
US10671726B1 (en) 2014-09-22 2020-06-02 Fireeye Inc. System and method for malware analysis using thread-level event monitoring
US9773112B1 (en) 2014-09-29 2017-09-26 Fireeye, Inc. Exploit detection of malware and malware families
US10027689B1 (en) 2014-09-29 2018-07-17 Fireeye, Inc. Interactive infection visualization for improved exploit detection and signature generation for malware and malware families
US9419991B2 (en) * 2014-09-30 2016-08-16 Juniper Networks, Inc. De-obfuscating scripted language for network intrusion detection using a regular expression signature
JP6916112B2 (ja) 2014-11-21 2021-08-11 ブルヴェクター, インコーポレーテッドBluvector, Inc. ネットワークデータ特性評価のシステムと方法
US9330264B1 (en) 2014-11-26 2016-05-03 Glasswall (Ip) Limited Statistical analytic method for the determination of the risk posed by file based content
US9690933B1 (en) 2014-12-22 2017-06-27 Fireeye, Inc. Framework for classifying an object as malicious with machine learning for deploying updated predictive models
US10075455B2 (en) 2014-12-26 2018-09-11 Fireeye, Inc. Zero-day rotating guest image profile
US9934376B1 (en) 2014-12-29 2018-04-03 Fireeye, Inc. Malware detection appliance architecture
US9838417B1 (en) 2014-12-30 2017-12-05 Fireeye, Inc. Intelligent context aware user interaction for malware detection
US10148693B2 (en) 2015-03-25 2018-12-04 Fireeye, Inc. Exploit detection system
US9690606B1 (en) 2015-03-25 2017-06-27 Fireeye, Inc. Selective system call monitoring
US9438613B1 (en) 2015-03-30 2016-09-06 Fireeye, Inc. Dynamic content activation for automated analysis of embedded objects
US9483644B1 (en) 2015-03-31 2016-11-01 Fireeye, Inc. Methods for detecting file altering malware in VM based analysis
US10417031B2 (en) 2015-03-31 2019-09-17 Fireeye, Inc. Selective virtualization for security threat detection
US10474813B1 (en) 2015-03-31 2019-11-12 Fireeye, Inc. Code injection technique for remediation at an endpoint of a network
US9654485B1 (en) 2015-04-13 2017-05-16 Fireeye, Inc. Analytics-based security monitoring system and method
US9594904B1 (en) 2015-04-23 2017-03-14 Fireeye, Inc. Detecting malware based on reflection
US10642753B1 (en) 2015-06-30 2020-05-05 Fireeye, Inc. System and method for protecting a software component running in virtual machine using a virtualization layer
US10454950B1 (en) 2015-06-30 2019-10-22 Fireeye, Inc. Centralized aggregation technique for detecting lateral movement of stealthy cyber-attacks
US11113086B1 (en) 2015-06-30 2021-09-07 Fireeye, Inc. Virtual system and method for securing external network connectivity
US10726127B1 (en) 2015-06-30 2020-07-28 Fireeye, Inc. System and method for protecting a software component running in a virtual machine through virtual interrupts by the virtualization layer
US10715542B1 (en) 2015-08-14 2020-07-14 Fireeye, Inc. Mobile application risk analysis
US10176321B2 (en) 2015-09-22 2019-01-08 Fireeye, Inc. Leveraging behavior-based rules for malware family classification
US10033747B1 (en) 2015-09-29 2018-07-24 Fireeye, Inc. System and method for detecting interpreter-based exploit attacks
US9825989B1 (en) 2015-09-30 2017-11-21 Fireeye, Inc. Cyber attack early warning system
US10706149B1 (en) 2015-09-30 2020-07-07 Fireeye, Inc. Detecting delayed activation malware using a primary controller and plural time controllers
US10210329B1 (en) 2015-09-30 2019-02-19 Fireeye, Inc. Method to detect application execution hijacking using memory protection
US10817606B1 (en) 2015-09-30 2020-10-27 Fireeye, Inc. Detecting delayed activation malware using a run-time monitoring agent and time-dilation logic
US9825976B1 (en) 2015-09-30 2017-11-21 Fireeye, Inc. Detection and classification of exploit kits
US10601865B1 (en) 2015-09-30 2020-03-24 Fireeye, Inc. Detection of credential spearphishing attacks using email analysis
US10284575B2 (en) 2015-11-10 2019-05-07 Fireeye, Inc. Launcher for setting analysis environment variations for malware detection
US10846117B1 (en) 2015-12-10 2020-11-24 Fireeye, Inc. Technique for establishing secure communication between host and guest processes of a virtualization architecture
US10447728B1 (en) 2015-12-10 2019-10-15 Fireeye, Inc. Technique for protecting guest processes using a layered virtualization architecture
US10108446B1 (en) 2015-12-11 2018-10-23 Fireeye, Inc. Late load technique for deploying a virtualization layer underneath a running operating system
US10133866B1 (en) 2015-12-30 2018-11-20 Fireeye, Inc. System and method for triggering analysis of an object for malware in response to modification of that object
US10565378B1 (en) 2015-12-30 2020-02-18 Fireeye, Inc. Exploit of privilege detection framework
US10050998B1 (en) 2015-12-30 2018-08-14 Fireeye, Inc. Malicious message analysis system
US10621338B1 (en) 2015-12-30 2020-04-14 Fireeye, Inc. Method to detect forgery and exploits using last branch recording registers
US9824216B1 (en) 2015-12-31 2017-11-21 Fireeye, Inc. Susceptible environment detection system
US10581874B1 (en) 2015-12-31 2020-03-03 Fireeye, Inc. Malware detection system with contextual analysis
US11552986B1 (en) 2015-12-31 2023-01-10 Fireeye Security Holdings Us Llc Cyber-security framework for application of virtual features
JP2017142552A (ja) * 2016-02-08 2017-08-17 株式会社日立アドバンストシステムズ マルウェア注意喚起装置および方法
US10601863B1 (en) 2016-03-25 2020-03-24 Fireeye, Inc. System and method for managing sensor enrollment
US10476906B1 (en) 2016-03-25 2019-11-12 Fireeye, Inc. System and method for managing formation and modification of a cluster within a malware detection system
US10785255B1 (en) 2016-03-25 2020-09-22 Fireeye, Inc. Cluster configuration within a scalable malware detection system
US10671721B1 (en) 2016-03-25 2020-06-02 Fireeye, Inc. Timeout management services
US10826933B1 (en) 2016-03-31 2020-11-03 Fireeye, Inc. Technique for verifying exploit/malware at malware detection appliance through correlation with endpoints
US10893059B1 (en) 2016-03-31 2021-01-12 Fireeye, Inc. Verification and enhancement using detection systems located at the network periphery and endpoint devices
US20170353475A1 (en) 2016-06-06 2017-12-07 Glasswall (Ip) Limited Threat intelligence cloud
US10169585B1 (en) 2016-06-22 2019-01-01 Fireeye, Inc. System and methods for advanced malware detection through placement of transition events
US10462173B1 (en) 2016-06-30 2019-10-29 Fireeye, Inc. Malware detection verification and enhancement by coordinating endpoint and malware detection systems
US10592678B1 (en) 2016-09-09 2020-03-17 Fireeye, Inc. Secure communications between peers using a verified virtual trusted platform module
US10491627B1 (en) 2016-09-29 2019-11-26 Fireeye, Inc. Advanced malware detection using similarity analysis
JP2018063563A (ja) * 2016-10-12 2018-04-19 Jns株式会社 コンピュータ装置及びコンピュータシステム
US10795991B1 (en) 2016-11-08 2020-10-06 Fireeye, Inc. Enterprise search
US9858424B1 (en) 2017-01-05 2018-01-02 Votiro Cybersec Ltd. System and method for protecting systems from active content
US10587647B1 (en) 2016-11-22 2020-03-10 Fireeye, Inc. Technique for malware detection capability comparison of network security devices
US10552610B1 (en) 2016-12-22 2020-02-04 Fireeye, Inc. Adaptive virtual machine snapshot update framework for malware behavioral analysis
US10581879B1 (en) 2016-12-22 2020-03-03 Fireeye, Inc. Enhanced malware detection for generated objects
US10523609B1 (en) 2016-12-27 2019-12-31 Fireeye, Inc. Multi-vector malware detection and analysis
US10331890B2 (en) 2017-03-20 2019-06-25 Votiro Cybersec Ltd. Disarming malware in protected content
US10013557B1 (en) 2017-01-05 2018-07-03 Votiro Cybersec Ltd. System and method for disarming malicious code
US10331889B2 (en) 2017-01-05 2019-06-25 Votiro Cybersec Ltd. Providing a fastlane for disarming malicious content in received input content
US10904286B1 (en) 2017-03-24 2021-01-26 Fireeye, Inc. Detection of phishing attacks using similarity analysis
US10798112B2 (en) 2017-03-30 2020-10-06 Fireeye, Inc. Attribute-controlled malware detection
US10902119B1 (en) 2017-03-30 2021-01-26 Fireeye, Inc. Data extraction system for malware analysis
US10848397B1 (en) 2017-03-30 2020-11-24 Fireeye, Inc. System and method for enforcing compliance with subscription requirements for cyber-attack detection service
US10791138B1 (en) 2017-03-30 2020-09-29 Fireeye, Inc. Subscription-based malware detection
US10503904B1 (en) 2017-06-29 2019-12-10 Fireeye, Inc. Ransomware detection and mitigation
US10855700B1 (en) 2017-06-29 2020-12-01 Fireeye, Inc. Post-intrusion detection of cyber-attacks during lateral movement within networks
US10601848B1 (en) 2017-06-29 2020-03-24 Fireeye, Inc. Cyber-security system and method for weak indicator detection and correlation to generate strong indicators
US10893068B1 (en) 2017-06-30 2021-01-12 Fireeye, Inc. Ransomware file modification prevention technique
US10747872B1 (en) 2017-09-27 2020-08-18 Fireeye, Inc. System and method for preventing malware evasion
US10805346B2 (en) 2017-10-01 2020-10-13 Fireeye, Inc. Phishing attack detection
US11108809B2 (en) 2017-10-27 2021-08-31 Fireeye, Inc. System and method for analyzing binary code for malware classification using artificial neural network techniques
US11005860B1 (en) 2017-12-28 2021-05-11 Fireeye, Inc. Method and system for efficient cybersecurity analysis of endpoint events
US11240275B1 (en) 2017-12-28 2022-02-01 Fireeye Security Holdings Us Llc Platform and method for performing cybersecurity analyses employing an intelligence hub with a modular architecture
US11271955B2 (en) 2017-12-28 2022-03-08 Fireeye Security Holdings Us Llc Platform and method for retroactive reclassification employing a cybersecurity-based global data store
US10826931B1 (en) 2018-03-29 2020-11-03 Fireeye, Inc. System and method for predicting and mitigating cybersecurity system misconfigurations
US11558401B1 (en) 2018-03-30 2023-01-17 Fireeye Security Holdings Us Llc Multi-vector malware detection data sharing system for improved detection
US11003773B1 (en) 2018-03-30 2021-05-11 Fireeye, Inc. System and method for automatically generating malware detection rule recommendations
US10956477B1 (en) 2018-03-30 2021-03-23 Fireeye, Inc. System and method for detecting malicious scripts through natural language processing modeling
JP6671693B2 (ja) * 2018-06-27 2020-03-25 株式会社プロット 電子ファイルの無害化処理プログラム、電子ファイルの無害化処理方法および記録媒体
US11075930B1 (en) 2018-06-27 2021-07-27 Fireeye, Inc. System and method for detecting repetitive cybersecurity attacks constituting an email campaign
US11314859B1 (en) 2018-06-27 2022-04-26 FireEye Security Holdings, Inc. Cyber-security system and method for detecting escalation of privileges within an access token
US11228491B1 (en) 2018-06-28 2022-01-18 Fireeye Security Holdings Us Llc System and method for distributed cluster configuration monitoring and management
US11316900B1 (en) 2018-06-29 2022-04-26 FireEye Security Holdings Inc. System and method for automatically prioritizing rules for cyber-threat detection and mitigation
US11182473B1 (en) 2018-09-13 2021-11-23 Fireeye Security Holdings Us Llc System and method for mitigating cyberattacks against processor operability by a guest process
US11763004B1 (en) 2018-09-27 2023-09-19 Fireeye Security Holdings Us Llc System and method for bootkit detection
US12074887B1 (en) 2018-12-21 2024-08-27 Musarubra Us Llc System and method for selectively processing content after identification and removal of malicious content
US11368475B1 (en) 2018-12-21 2022-06-21 Fireeye Security Holdings Us Llc System and method for scanning remote services to locate stored objects with malware
US11347851B2 (en) * 2019-02-25 2022-05-31 Saudi Arabian Oil Company System and method for file artifact metadata collection and analysis
US10992703B2 (en) * 2019-03-04 2021-04-27 Malwarebytes Inc. Facet whitelisting in anomaly detection
US11258806B1 (en) 2019-06-24 2022-02-22 Mandiant, Inc. System and method for automatically associating cybersecurity intelligence to cyberthreat actors
US11556640B1 (en) 2019-06-27 2023-01-17 Mandiant, Inc. Systems and methods for automated cybersecurity analysis of extracted binary string sets
US11392700B1 (en) 2019-06-28 2022-07-19 Fireeye Security Holdings Us Llc System and method for supporting cross-platform data verification
US11886585B1 (en) 2019-09-27 2024-01-30 Musarubra Us Llc System and method for identifying and mitigating cyberattacks through malicious position-independent code execution
US11637862B1 (en) 2019-09-30 2023-04-25 Mandiant, Inc. System and method for surfacing cyber-security threats with a self-learning recommendation engine
TWI723664B (zh) * 2019-12-05 2021-04-01 中華電信股份有限公司 惡意圖像檔案淨化方法及系統
AU2022215147B2 (en) 2021-01-29 2024-05-23 Glasswall (Ip) Limited Machine learning methods and systems for determining file risk using content disarm and reconstruction analysis

Family Cites Families (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5050212A (en) * 1990-06-20 1991-09-17 Apple Computer, Inc. Method and apparatus for verifying the integrity of a file stored separately from a computer
US5649095A (en) * 1992-03-30 1997-07-15 Cozza; Paul D. Method and apparatus for detecting computer viruses through the use of a scan information cache
US5655130A (en) 1994-10-14 1997-08-05 Unisys Corporation Method and apparatus for document production using a common document database
US5745897A (en) * 1994-11-21 1998-04-28 Bay Networks Group, Inc. Method and system for compiling management information base specifications
NL1000669C2 (nl) * 1995-06-26 1996-12-31 Nederland Ptt Werkwijze en inrichtingen voor het overdragen van data met controle op transmissiefouten.
US6493761B1 (en) * 1995-12-20 2002-12-10 Nb Networks Systems and methods for data processing using a protocol parsing engine
US5832208A (en) * 1996-09-05 1998-11-03 Cheyenne Software International Sales Corp. Anti-virus agent for use with databases and mail servers
US6144934A (en) * 1996-09-18 2000-11-07 Secure Computing Corporation Binary filter using pattern recognition
US5951698A (en) * 1996-10-02 1999-09-14 Trend Micro, Incorporated System, apparatus and method for the detection and removal of viruses in macros
JPH10143403A (ja) * 1996-11-12 1998-05-29 Fujitsu Ltd 情報管理装置および情報管理プログラム記憶媒体
US6807632B1 (en) * 1999-01-21 2004-10-19 Emc Corporation Content addressable information encapsulation, representation, and transfer
JPH11224190A (ja) * 1998-02-09 1999-08-17 Yaskawa Electric Corp コンピュータネットワーク網に接続した計算機の保護方法及びそのプログラムを記録した記録媒体
US6401210B1 (en) * 1998-09-23 2002-06-04 Intel Corporation Method of managing computer virus infected files
US6336124B1 (en) * 1998-10-01 2002-01-01 Bcl Computers, Inc. Conversion data representing a document to other formats for manipulation and display
US6519702B1 (en) 1999-01-22 2003-02-11 Sun Microsystems, Inc. Method and apparatus for limiting security attacks via data copied into computer memory
US7391865B2 (en) * 1999-09-20 2008-06-24 Security First Corporation Secure data parser method and system
WO2001026004A2 (en) 1999-10-04 2001-04-12 Kana Communications, Inc. Method and apparatus for interprocess messaging and its use for automatically generating transactional email
US6697950B1 (en) 1999-12-22 2004-02-24 Networks Associates Technology, Inc. Method and apparatus for detecting a macro computer virus using static analysis
DE60122033T4 (de) 2000-02-04 2009-04-02 Aladdin Knowledge Systems Ltd. Schutz von Computernetzen gegen böswillige Inhalte
US7225181B2 (en) 2000-02-04 2007-05-29 Fujitsu Limited Document searching apparatus, method thereof, and record medium thereof
US7093135B1 (en) 2000-05-11 2006-08-15 Cybersoft, Inc. Software virus detection methods and apparatus
GB2357939B (en) * 2000-07-05 2002-05-15 Gfi Fax & Voice Ltd Electronic mail message anti-virus system and method
GB0016835D0 (en) * 2000-07-07 2000-08-30 Messagelabs Limited Method of, and system for, processing email
US7636945B2 (en) * 2000-07-14 2009-12-22 Computer Associates Think, Inc. Detection of polymorphic script language viruses by data driven lexical analysis
US6895011B1 (en) * 2000-08-15 2005-05-17 Lucent Technologies Inc. Method and apparatus for re-sequencing data packets
JP4415232B2 (ja) * 2000-10-12 2010-02-17 ソニー株式会社 情報処理装置および方法、並びにプログラム記録媒体
US9311499B2 (en) 2000-11-13 2016-04-12 Ron M. Redlich Data security system and with territorial, geographic and triggering event protocol
US7322047B2 (en) * 2000-11-13 2008-01-22 Digital Doors, Inc. Data security system and method associated with data mining
JP2002259187A (ja) * 2001-03-01 2002-09-13 Nec Corp 異常ファイル検出および除去を目的とした着脱可能ファイル監視システム
US7058858B2 (en) * 2001-04-23 2006-06-06 Hewlett-Packard Development Company, L.P. Systems and methods for providing automated diagnostic services for a cluster computer system
US6895534B2 (en) * 2001-04-23 2005-05-17 Hewlett-Packard Development Company, L.P. Systems and methods for providing automated diagnostic services for a cluster computer system
US8095597B2 (en) * 2001-05-01 2012-01-10 Aol Inc. Method and system of automating data capture from electronic correspondence
US7502829B2 (en) 2001-06-21 2009-03-10 Cybersoft, Inc. Apparatus, methods and articles of manufacture for intercepting, examining and controlling code, data and files and their transfer
US7526572B2 (en) 2001-07-12 2009-04-28 Research In Motion Limited System and method for providing remote data access for a mobile communication device
ATE358298T1 (de) 2001-07-12 2007-04-15 Research In Motion Ltd System und verfahren zum schieben von daten von einer informationsquelle zu einem mobilen endgerät beinhalten die transcodierung der daten
US7487544B2 (en) 2001-07-30 2009-02-03 The Trustees Of Columbia University In The City Of New York System and methods for detection of new malicious executables
US6947947B2 (en) * 2001-08-17 2005-09-20 Universal Business Matrix Llc Method for adding metadata to data
US20040008368A1 (en) 2001-09-07 2004-01-15 Plunkett Michael K Mailing online operation flow
GB2381170A (en) * 2001-10-19 2003-04-23 Ipwireless Inc Method and arrangement for asynchronous processing of CCTrCH data
US20030079142A1 (en) 2001-10-22 2003-04-24 Aladdin Knowledge Systems Ltd. Classifying digital object security category
US20030079158A1 (en) 2001-10-23 2003-04-24 Tower James Brian Secured digital systems and a method and software for operating the same
CN1352426A (zh) * 2001-11-26 2002-06-05 北京实达铭泰计算机应用技术开发有限公司 一种计算机病毒防御方法
US7363506B2 (en) * 2002-01-30 2008-04-22 Cybersoft, Inc. Software virus detection methods, apparatus and articles of manufacture
US6922827B2 (en) 2002-02-22 2005-07-26 Bea Systems, Inc. Iterative software development environment with prioritized build rules
US20030163732A1 (en) 2002-02-28 2003-08-28 Parry Travis J. Device-specific firewall
US7171691B2 (en) 2002-04-10 2007-01-30 International Business Machines Corporation Content sanitation via transcoding
US20030229810A1 (en) 2002-06-05 2003-12-11 Bango Joseph J. Optical antivirus firewall for internet, LAN, and WAN computer applications
US7240279B1 (en) 2002-06-19 2007-07-03 Microsoft Corporation XML patterns language
DE10235819B4 (de) 2002-08-05 2005-12-01 Utz Schneider Verfahren und Anordnung zum Blockieren von an einen Benutzer gesendeten Daten und/oder Informationen und/oder Signalen elektronischer Medien sowie deren Verwendung
GB2391965B (en) 2002-08-14 2005-11-30 Messagelabs Ltd Method of, and system for, heuristically detecting viruses in executable code
US8335779B2 (en) 2002-08-16 2012-12-18 Gamroe Applications, Llc Method and apparatus for gathering, categorizing and parameterizing data
TWI231899B (en) * 2002-10-29 2005-05-01 Trek 2000 Int Ltd System and method for authentication
US7020804B2 (en) * 2002-12-03 2006-03-28 Lockheed Martin Corporation Test data generation system for evaluating data cleansing applications
US7644361B2 (en) 2002-12-23 2010-01-05 Canon Kabushiki Kaisha Method of using recommendations to visually create new views of data across heterogeneous sources
US20050071477A1 (en) 2003-03-27 2005-03-31 Microsoft Corporation Providing information links via a network
US7269733B1 (en) 2003-04-10 2007-09-11 Cisco Technology, Inc. Reliable embedded file content addressing
GB2400933B (en) 2003-04-25 2006-11-22 Messagelabs Ltd A method of, and system for, heuristically detecting viruses in executable code by detecting files which have been maliciously altered
US20040230903A1 (en) 2003-05-16 2004-11-18 Dethe Elza Method and system for enabling collaborative authoring of hierarchical documents with associated business logic
US20040240472A1 (en) * 2003-05-28 2004-12-02 Alok Kumar Method and system for maintenance of packet order using caching
EP1652033A1 (en) * 2003-07-08 2006-05-03 Seventh Knight Automatic regeneration of computer files description
US20050081057A1 (en) * 2003-10-10 2005-04-14 Oded Cohen Method and system for preventing exploiting an email message
JP4662944B2 (ja) 2003-11-12 2011-03-30 ザ トラスティーズ オブ コロンビア ユニヴァーシティ イン ザ シティ オブ ニューヨーク 正常データのnグラム分布を用いてペイロード異常を検出するための装置、方法、及び媒体
US7467409B2 (en) 2003-12-12 2008-12-16 Microsoft Corporation Aggregating trust services for file transfer clients
US7475427B2 (en) 2003-12-12 2009-01-06 International Business Machines Corporation Apparatus, methods and computer programs for identifying or managing vulnerabilities within a data processing network
US20050149720A1 (en) 2004-01-07 2005-07-07 Shimon Gruper Method for speeding up the pass time of an executable through a checkpoint
US7707634B2 (en) * 2004-01-30 2010-04-27 Microsoft Corporation System and method for detecting malware in executable scripts according to its functionality
US7721334B2 (en) 2004-01-30 2010-05-18 Microsoft Corporation Detection of code-free files
US7512658B2 (en) * 2004-02-26 2009-03-31 International Business Machines Corporation Providing a portion of an electronic mail message based upon a transfer rate, a message size, and a file format
US7607172B2 (en) 2004-03-02 2009-10-20 International Business Machines Corporation Method of protecting a computing system from harmful active content in documents
US8186026B2 (en) * 2004-03-03 2012-05-29 Rockstar Bidco, LP Technique for maintaining secure network connections
US7451394B2 (en) 2004-04-30 2008-11-11 Convergys Cmg Utah System and method for document and data validation
US7444521B2 (en) * 2004-07-16 2008-10-28 Red Hat, Inc. System and method for detecting computer virus
GB0418066D0 (en) 2004-08-13 2004-09-15 Ibm A prioritization system
US20060044605A1 (en) * 2004-08-24 2006-03-02 Schneider Charles R Systems, methods and computer program products for labeled forms processing
WO2006047163A2 (en) * 2004-10-26 2006-05-04 Priderock, L.L.C. System and method for identifying and removing malware on a computer system
US10043008B2 (en) * 2004-10-29 2018-08-07 Microsoft Technology Licensing, Llc Efficient white listing of user-modifiable files
US7636856B2 (en) 2004-12-06 2009-12-22 Microsoft Corporation Proactive computer malware protection through dynamic translation
US8037534B2 (en) 2005-02-28 2011-10-11 Smith Joseph B Strategies for ensuring that executable content conforms to predetermined patterns of behavior (“inverse virus checking”)
US9507919B2 (en) * 2005-04-22 2016-11-29 Microsoft Technology Licensing, Llc Rights management system for streamed multimedia content
JP5118020B2 (ja) * 2005-05-05 2013-01-16 シスコ アイアンポート システムズ エルエルシー 電子メッセージ中での脅威の識別
US20060272006A1 (en) 2005-05-27 2006-11-30 Shaohong Wei Systems and methods for processing electronic data
GB2427048A (en) * 2005-06-09 2006-12-13 Avecho Group Ltd Detection of unwanted code or data in electronic mail
US20070067397A1 (en) * 2005-09-19 2007-03-22 Available For Licensing Systems and methods for sharing documents
US7756834B2 (en) 2005-11-03 2010-07-13 I365 Inc. Malware and spyware attack recovery system and method
US7966654B2 (en) * 2005-11-22 2011-06-21 Fortinet, Inc. Computerized system and method for policy-based content filtering

Also Published As

Publication number Publication date
US20130326624A1 (en) 2013-12-05
CA2671804A1 (en) 2008-06-12
JP2010511951A (ja) 2010-04-15
JP2012230704A (ja) 2012-11-22
US20100154063A1 (en) 2010-06-17
GB2444514A (en) 2008-06-11
CN103530558A (zh) 2014-01-22
US8533824B2 (en) 2013-09-10
CA2671804C (en) 2014-08-26
TW200825836A (en) 2008-06-16
GB0624224D0 (en) 2007-01-10
CN101611412A (zh) 2009-12-23
MY149569A (en) 2013-09-13
CN101611412B (zh) 2014-02-12
WO2008068450A2 (en) 2008-06-12
JP2014194822A (ja) 2014-10-09
TWI488065B (zh) 2015-06-11
TW201525746A (zh) 2015-07-01
US20150269382A1 (en) 2015-09-24
EP2089829A2 (en) 2009-08-19
AU2007330580B2 (en) 2013-03-21
MY170629A (en) 2019-08-21
WO2008068450A3 (en) 2008-08-07
JP5628455B2 (ja) 2014-11-19
US9038174B2 (en) 2015-05-19
TWI534650B (zh) 2016-05-21
AU2007330580A1 (en) 2008-06-12

Similar Documents

Publication Publication Date Title
JP5628455B2 (ja) 不適切なコードおよびデータの拡散防止における改善
US11218495B2 (en) Resisting the spread of unwanted code and data
AU2012258355B2 (en) Resisting the Spread of Unwanted Code and Data
AU2013204036A1 (en) Improvements in Resisting the Spread of Unwanted Code and Data

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101001

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120321

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120620

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120627

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120720

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120814

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120816

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150824

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5069308

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250