JP2001508564A - マクロ中のウイルスの検出および除去のためのシステム、装置および方法 - Google Patents

マクロ中のウイルスの検出および除去のためのシステム、装置および方法

Info

Publication number
JP2001508564A
JP2001508564A JP51659398A JP51659398A JP2001508564A JP 2001508564 A JP2001508564 A JP 2001508564A JP 51659398 A JP51659398 A JP 51659398A JP 51659398 A JP51659398 A JP 51659398A JP 2001508564 A JP2001508564 A JP 2001508564A
Authority
JP
Japan
Prior art keywords
macro
virus
instruction
file
suspected
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.)
Granted
Application number
JP51659398A
Other languages
English (en)
Other versions
JP4372228B2 (ja
Inventor
ワイ. チェン,エヴァ
ティー. ロー,ジョニー
エム. デン,ミン
エム. チー,レータ
Original Assignee
トレンド マイクロ,インコーポレーテッド
ワイ. チェン,エヴァ
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 トレンド マイクロ,インコーポレーテッド, ワイ. チェン,エヴァ filed Critical トレンド マイクロ,インコーポレーテッド
Publication of JP2001508564A publication Critical patent/JP2001508564A/ja
Application granted granted Critical
Publication of JP4372228B2 publication Critical patent/JP4372228B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

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/563Static detection by source code analysis

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)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

(57)【要約】 マクロの中のウイルスの検出および除去を開示している。マクロウイルス検出モジュール(206)はマクロ位置特定および復号化モジュール(302)と、マクロウイルス走査モジュール(304)と、マクロ処置モジュール(306)と、ファイル処置モジュール(310)と、ウイルス情報モジュール(308)とを含む。マクロ位置特定および復号化モジュール(302)は、対象ファイルがマクロを含むか否かを判定し、マクロ有りの場合にそのマクロを位置特定して復号化ずみマクロを生ずるように復号化する。マクロウイルス走査モジュール(304)は復号化ずみマクロにアクセスし、そのマクロがウイルスを含むか否かを判定するようにそのマクロを走査する。未知のマクロウイルスの検出は、マクロウイルス走査モジュール(304)が、ウイルス情報モジュール(308)からの命令識別子組含有比較データの取込みおよび前記命令識別子対応の容疑命令組合せの前記復号化ずみマクロにおける含有の有無の判定に基づいて行う。マクロ処置モジュール(310)は前記比較データを用いて前記復号化ずみマクロの中で容疑命令を位置特定し、その容疑命令を除去して処置ずみマクロを生ずる。ファイル訂正モジュール(310)は、汚染マクロ含有の対象ファイルにアクセスし、マクロ処置モジュール(306)からの処置ずみマクロでその汚染マクロを置換する。

Description

【発明の詳細な説明】 マクロ中のウイルスの検出および除去のための システム、装置および方法 発明の背景 発明の技術分野 この発明は概括的にはコンピュータファイルの中のウイルスの検出および除去 に関する。 関連技術の説明 コンピュータ利用の普及および莫大な数のコンピュータ相互間の通信の拡大は コンピュータウイルスの広がりを著しく容易にし助長してきた。コンピュータウ イルスはコンピュータプログラムの中に埋め込まれたコードの種々の部分に見出 される。ウイルスに感染したプログラムが実行されると、それらコード部分が活 性化されて、コンピュータシステムに意図しない、場合によっては有害な動作を 生じさせる。 ウイルスの検出は通常シグネチャ走査手法を用いて行う。既知のウイルスのた めに、ウイルス検出に使用可能な指紋同等のストリングまたはシグネチャが長く なった。シグネチャ走査では実行可能なファイルシーケンスを走査して、ウイル スとして既知のストリングに合致する延長ストリングを含むか否かを調べる。そ の実行可能なファイルの中に上記シグネチャまたはストリングが見出されると、 積極的ウイルス判定を行う。既知のパターンとのマッチングを伴うので、パター ンの特定されていないウイルスに対してはシグネチャ走査手法はほとんど役に立 たない。とくに、新しい未知のウイルスの種類の検出はシグネチャ走査手法には 全く不可能であり、複製の際に多様な形状および形式を意図的にとる突然変異性 ウイルスに対しては十分な保護を提供できない。また、実行可能なファイル(例 えば拡張子.exeまたは.comつきのファイル)も通常走査されるので、それらファ イルの中にないウイルスは検査されず、したがってシグネチャ走査では検出され ない。 多数のアプリケーションプログラムが、動作の長いシーケンスまたは反復シー ケンスの自動的遂行のためのマクロの使用をサポートしている。マクロは、メニ ュー選択やキー押下や蓄積され名称またはキーの割当てを受けるコマンドなどの 一連の命令である。マクロは、アプリケーションプログラムによってキーの押下 げまたはマクロ名称の呼出しに応答して起動できる。アプリケーションデータフ ァイルに埋め込まれていて、ユーザから隠れた状態に留まるマクロもある。また 、マクロはユーザからの入力なしに自動的に実行するようにすることもできる。 すなわち、ユーザに知られる必要がなくユーザによる始動を必要としないマクロ がアプリケーションデータファイルなどのファイルに常駐することがあり得る。 ある種のウイルスはマクロに常駐し、マクロ命令を用いて想定外の有害な動作を 行う。それらのウイルスをマクロウイルスと呼ぶ。マクロウイルスの一つの問題 は、実行可能なファイルには通常は常駐しないので実行可能なファイルスキャナ ーを避けることである。また、マクロウイルスはアプリケーションデータファイ ルなどのファイルの中に隠されたり埋め込まれたりされ得るので、検出を免れる 。さらに、マクロプログラム用言語の使い方を知っているコンピュータユーザは 多数にのぼるので、マクロウイルスの数と多様性は極めて大きい。したがって、 マクロの中のウイルスの検出にシグネチャ走査手法を用いても、多数の未知のマ クロウイルスがあるので効果がない。また、網羅的シグネチャスキャナーを使え たとしても、新たな未知のマクロウイルスの発生が継続するのでそのスキャナー はすぐ陳腐化する。 慣用のウイルス除去手法もウイルス感染マクロの処置には不十分である。それ ら慣用の手法は特定の既知のウイルスを探索し、その探索により検出された特定 のウイルスに応じて特定の訂正手法を適用する。その訂正手法は、未知のマクロ ウイルスの莫大な糸列のために、ウイルス感染マクロの処置にはあまり効果がな い。未知のマクロを検出しても、ウイルス感染マクロ含有のファイルを消去する だけでは有効な解決方法にはならない。ウイルス感染マクロの中にユーザが保持 したい正常動作が含まれていることが多いからである。したがって、マクロから ウイルス、とくに未知のウイルスを選択的に除去して、その後で使用可能な感染 なしの訂正ずみファイルを生ずる必要がある。 もう一つの問題はウイルスもそれらウイルスの検出に必要な情報も常に変動し ていることである。したがって、ウイルス検出情報の更新の容易なウイルス検出 方法およびウイルス検出装置が必要である。容易に改変可能な未知マクロウイル ス検出情報がとくに必要である。 上述のとおり、マクロに常駐するウイルスの検出が必要である。さらに、未知 のマクロウイルスを検出し、マクロウイルスを選択的に清浄化し、マクロウイル ス検出情報を簡便に更新する必要がある。 発明の概要 この発明はマクロからウイルスを検出し除去するシステム、装置および方法に よって従来技術の制約と欠点を解消する。 この発明によると、マクロウイルス検出モジュールはマクロ位置特定および復 号化モジュールと、マクロウイルス走査モジュールと、マクロ処置モジュールと 、ウイルス情報モジュールと、ファイル訂正モジュールと、データバッファとを 含む。マクロウイルス検出モジュールのコンフィギュレーション設定にしたがっ て一つのファイルをウイルス検出の対象にし、データバッファにコピーして分析 に備える。マクロ位置特定および復号化モジュールでそのファイルを試験して、 それがテンプレートファイルか否かを判定する。テンプレートファイルと判定し た場合は、そのテンプレートファイルの中のマクロはすべて位置特定して復号化 する。対象ファイルがテンプレートファイルでない場合は、マクロ位置特定およ び復号化モジュールでその対象ファイルを調べ、埋込みマクロを含むか否かを判 定し、その位置特定を行い復号化する。復号化されたマクロはデータバッファに 蓄積する。 マクロ走査モジュールはこのマクロ位置特定および復号化モジュールおよびデ ータバッファと信号授受し、したがって復号化ずみのマクロにアクセスしてウイ ルス走査に備える。マクロウイルス走査モジュールはマクロウイルス情報モジュ ールとも信号授受する。マクロウイルス情報モジュールは、マクロ中の既知およ び未知のウイルスの検出のためにマクロウイルス走査モジュールが用いる情報を 含む。上記復号化ずみのマクロをまず既知のウイルスの探索のために走査する。 既知のウイルスが検出された場合はその復号化ずみマクロは感染のフラグで表示 する。その復号化ずみマクロ、そのフラグ、およびその復号化ずみマクロをその マクロ中で検出された既知のマクロに関連づける情報をデータバッファに蓄積す る。上述のとおり感染マクロおよびその感染マクロの常駐するファイルはマクロ 処置モジュールおよびファイル訂正モジュールによって適切に処置され訂正され る。 既知のウイルスが検出されなかった場合は、復号化ずみマクロが未知のウイル スが含んでいるか否かをマクロウイルス走査モジュールが判定する。マクロウイ ルス走査モジュールはウイルス情報モジュール中に蓄積されている比較データを 用いて未知のマクロウイルスを検出する。この比較データは、マクロ中の容疑命 令の組合せの検出に用いる情報を含む。比較データの組の好例は第1および第2 の容疑命令特定コードを含む。マクロウイルス走査モジュールは、それら第1お よび第2の容疑命令が両方ともマクロに含まれていた場合にそのマクロがウイル スを含んでいると判定する。未知のウイルスが検出された場合は、その未知のウ イルスの検出に導く容疑命令特定コードの組にしたがって、そのマクロを汚染マ クロとフラグ表示する。既知のウイルスの検出の場合と同様に、明確な検出に導 いた情報を汚染マクロとともにデータバッファに蓄積し、マクロ処置モジュール およびファイル訂正モジュールが汚染マクロを適切に処置し訂正するようにする 。特定のシーケンス状のシグネチャでなく容疑命令の組合せを探索するので、マ クロウイルス走査モジュールで未知のウイルスが検出される。既知のウイルスお よび未知のウイルスの検出のための情報は別のモジュールに常駐しているので容 易に更新される。 マクロ処置モジュールはマクロウイルス走査モジュールおよびデータバッファ と信号授受し、それによって検出ウイルス関連の情報を得る。マクロ処置モジュ ールはマクロからウイルスを除去して清浄化ずみマクロまたはウイルス除去ずみ マクロを発生し、汚染マクロ含有のファイルをファイル処置モジュールで補修ま たは訂正できるようにする。マクロ処置モジュールはデータバッファ内の復号化 ずみマクロにアクセスし、既知のウイルスによる汚染のフラグ表示があるか否か を判定する。そのマクロに既知のウイルスによる汚染のフラグ表示がある場合は 、その既知のウイルスをそのマクロから除去する。そのマクロが既知のウイルス に汚染されていない場合は、マクロ処置モジュールがマクロ中の未知のウイルス の検出のための命令特定コードの組を用いてマクロを処置する。このマクロ処置 モジュールは、マクロウイルス走査モジュールおよびデータバッファから、復号 化 ずみマクロおよびウイルスの存在に関する情報を受ける。復号化ずみマクロの中 の容疑命令は命令特定コードを用いて特定し位置特定する。次に、好ましくは非 感染命令で置換することによって汚染マクロから容疑命令を除去し、清浄化ずみ またはウイルス除去ずみの処置ずみマクロを生ずる。この処置ずみマクロはデー タバッファに蓄積してファイル訂正モジュールによるアクセスに備える。この処 置ずみマクロの完全無欠性を検査し、検査結果に応じてその有効性をフラグ表示 する。マクロの完全無欠性がマクロ処置の完了の時点で維持されている場合は有 効のフラグ表示をする。完全無欠性が維持されていない場合はフラグ表示しない 。 ファイル訂正モジュールは、マクロ位置特定および復号化モジュール、マクロ ウイルス走査モジュール、マクロ処置モジュール、データバッファおよびウイル ス情報モジュールと信号授受する。処置ずみのマクロおよび汚染マクロ含有の対 象ファイルに関する情報はデータバッファ内でアクセスを受ける。ファイル訂正 モジュールはもとの形の対象ファイルにアクセスし、対象ファイルのコピーをデ ータバッファに蓄積する。対象ファイルのコピーは汚染マクロを含む。マクロ有 効性フラグ表示がない場合は、処置ずみマクロを汚染マクロ置換に用いることは せず、対象ファイル消去など代替の訂正動作を行わせ、汚染マクロ含有ファイル の存在のユーザへの通知、または対象ファイルからの汚染ファイルの除去および マクロなしバージョンへの対象ファイルの置換を行う。マクロ有効性のフラグ表 示がある場合は、ファイル訂正モジュールが汚染マクロを処置ずみマクロに置換 することによって対象ファイルを訂正する。汚染マクロを置換するために、ファ イル訂正モジュールは汚染マクロを位置特定して対象ファイルから除去し、その マクロ抜きの対象ファイルのバージョンがデータバッファに蓄積されるようにす る。次に処置ずみマクロを前記マクロ抜きの対象ファイルのバージョンに加えて 訂正ずみファイルを生ずる。この訂正ずみファイルを対象ファイル(もとの位置 の)の置換に用いる。したがって、未知のウイルスはマクロから除去され、その ようなマクロを含むファイルは正しい機能を保持するよう修正される。 図面の簡単な説明 この発明の上記および上記以外の詳細な特定の特徴は添付図面を参照した次の 説明により詳細に開示する。 図1はこの発明によるマクロウイルス検出装置を含むコンピュータシステムを 図解するブロック図である。 図2はこの発明によるメモリ装置の好ましい実施例を図解するブロック図であ る。 図3はこの発明によるマクロウイルス検出モジュールの好ましい実施例を図解 するブロック図である。 図4はこの発明によるマクロウイルス検出および訂正方法を図解する流れ図で ある。 図5はこの発明によるマクロの位置特定および復号化方法を図解する流れ図で ある。 図6はこの発明によるウイルス探索用マクロ走査方法を図解する流れ図である 。 図7はこの発明によるマクロ処置方法を図解する流れ図である。 図8はこの発明によるファイル訂正方法を図解する流れ図である。 図9はマクロウイルスの検出に用いる比較データの組の好例を含む表である。 発明の詳細な説明 図1を参照すると、この発明によって構成したコンピュータシステム100は 中央処理装置(CPU)104、表示装置102、メモリ装置106、入力装置 108、データ蓄積装置110および通信ユニット112を含む。CPU104 は、パーソナルコンピュータの場合のようにフォン ノイマン アーキテクチャな ど慣用のアーキテクチャでバス114によって表示装置102、メモリ装置10 6、入力装置108、データ蓄積装置110および通信ユニット112に接続す る。CPU104はカリフォルニア州サンタクララのインテル社から市販されて いるPentiumなどのマイクロプロセッサ、表示装置102はビデオモニタ、メモ リ装置106はランダムアクセスメモリ(RAM)、入力装置108はキーボード およびマウス、データ蓄積装置110はハードディスク装置、および通信ユニッ ト112は他システムとの信号授受を容易にするモデムなどの装置でそれぞれ構 成するのが好ましい。 上記以外の多様なコンピュータシステム構成が利用可能であり、この発明はそ れら構成のいずれを用いるかに制約されない。例えば、CPU104にはモトロ ーラ社から市販されている代替のプロセッサを用いることができ、メモリ装置1 06は読出専用メモリ(ROM)またはRAMおよびROMの組合せでも構成できる。ま た、 システム100をネットワークインタフェース(図示してない)を通ずるなどし て他のコンピュータシステムに接続することもできる。また、コンピュータシス テム100はミニコンピュータまたはメインフレームコンピュータでも差し支え ないものと理解されたい。 CPU104は、メモリ106からのこの発明によって構成された命令に従っ て、コンピュータファイルへのアクセス、それらファイルがマクロを含むか否か の判定、未知ウイルス含有ウイルスの有無の判断のためのマクロ位置特定および マクロ走査、およびウイルス検出の場合の訂正動作のための信号の供給を行う。 図2を参照すると、この発明にしたがって構成したメモリ装置106の好まし い実施例をより詳細に示してある。メモリ装置106はオペレーティングシステ ム102、アプリケーションプログラム204およびマクロウイルス検出モジュ ール206を蓄積している。 オペレーティングシステム202はワシントン州レッドモンドのマイクロソフ ト社から市販されているWINDOWS 3.1などのパーソナルコンピュータ用の慣用の もので構成するのが好ましい。ワードプロセッシング、表計算、作図など多様な アプリケーションプログラムの任意のものをメモリ装置106に蓄積できる。例 えば、メモリ装置106にはワードプロセッシング用アプリケーションとしてマ イクロソフトWORDを、表計算アプリケーションとしてマイクロソフトEXCELをそ れぞれ蓄積できる。アプリケーションプログラム204は通常アプリケーション データファイルを作成する。例えば、WORDは通常ファイル拡張子.DOCを有するデ ータファイルを発生する。通常のアプリケーションプログラム204はユーザか らの反復入力なしに逐次動作を可能にするマクロを含む。慣用のマクロには、キ ー押下げなど相対的に単純な動作のためのもの、ファイルを開きコピーし消去す るなどの動作のためのものなど多様な命令が含まれる。マクロ命令がFORMATなど 下位の命令を実行するようにオペレーティングシステム(またはDOSシェル)を 呼び出すこともある。マクロの用いる命令はマクロプログラム用言語をサポート するアプリケーションプログラム204で通常定まってくる。例えば、WORDファ イル用のマクロはWordBasicプログラミング言語を用いて書かれる。 IBM社から市販されているOS/2など多様なオペレーティングシステム202を この発明に代替的に用いることもできる。また、多様なアプリケーションプログ ラ ム204を用いることもできる。この発明の実施例の一部ではWORDアプリケーシ ョンデータファイルにWordBasicコマンドを用いるマクロウイルスの検出を記載 しているが、この発明が上記のような代替のオペレーティングシステム202お よび代替のアプリケーションプログラム204にも適用できることは当業者には 理解されよう。 マクロウイルス検出モジュール206は、ファイルへのアクセス、それらファ イルがマクロを含むか否かの判定、ウイルス含有の有無の判定のためのマクロの 走査、およびウイルス含有と判定されたマクロの処置および汚染マクロ含有ファ イルの訂正のためのルーチンを含む。マクロウイルス検出モジュール206はオ ペレーティングシステム202およびアプリケーションプログラム204と連携 して動作する。マクロウイルス検出モジュール206は通常ソフトウェアで実動 化するがハードウェアまたはファームウェアでも実動化できる。マクロウイルス 検出モジュール206は図示のとおりオペレーティングシステム202およびア プリケーションプログラム204と別になっているのが好ましいが、マクロウイ ルス検出モジュールをオペレーティングシステム202またはアプリケーション プログラム204と一体化して同様のウイルス検出訂正動作をさせることもでき る。 図3を参照すると、マクロウイルス検出モジュール206の好ましい実施例は マクロ位置特定および復号化モジュール302、マクロウイルス走査モジュール 304、マクロ処置モジュール306、およびファイル訂正モジュール310を 含む。これらに加えて、ウイルス情報モジュール308がマクロ中のウイルス検 出およびウイルス汚染マクロの処置のための比較データを供給し、データバッフ ァ312がマクロウイルス検出訂正用情報を蓄積する。データバッファ312を いくつかの蓄積位置を含む単一のモジュールとして図示してあるが、このデータ バッファ312の多様な機能のために複数の個別データバッファを用いることも できる。 マクロウイルス検出モジュール206は対象ファイルにアクセスしてマクロ含 有の有無を判定する。ファイルへのアクセスはユーザが予め設定または決定した モジュール302のコンフィギュレーション設定に左右される。例えば、ユーザ は分析のために単一のファイルだけを対象にする場合もある。また、選ばれたア プリケーションプログラム204に対応するファイルなどファイル群を対象にし たり、選択したディレクトリまたは蓄積領域内のファイル全部を対象にしたりす ることもできる。多様な事象でファイル分析を起動できる。例えば、ユーザはウ イルス走査を起動し、分析はあるアプリケーションファイルを開いた任意の時点 で起動でき、またシステム100のブートアップn回ごとまたは特定時間間隔ご とに完全分析を図ることもできる。マクロ位置特定および復号化モジュール30 2は、マクロウイルスを含み得る任意のファイルにアクセスし、それらファイル へのアクセスをアプリケーションプログラムの起動前、すなわちアプリケーショ ンデータファイルを開く前に行うように構成するのが好ましい。マクロウイルス の中には、関連アプリケーションプログラムの起動とともに動作し、したがって ユーザによる走査始動前の検出を要するものがあるからである。 対象ファイルの各々はマクロウイルス検出モジュール206によってアクセス され、分析用にデータバッファ312に蓄積される。理解を容易にするために諸 モジュール302、304、306、308、310、312の特定の機能に関 連して単一のファイルの分析を説明するが、この発明によりいくつかのファイル を同時並行的にまたは逐次的に分析することもできる。 マクロ位置特定および復号化モジュール302は、対象ファイルをそれらファ イルがマクロ含有型のものか否かの判定および埋め込みマクロ含有の有無の判定 のために調べ、対象ファイル内でマクロを位置特定し復号化する。 このマクロ位置特定および復号化モジュール302はデータバッファ312と 信号授受し、対象ファイルに分析のためのアクセスする。マクロはテンプレート ファイルにも見出され、アプリケーションデータファイルに埋め込まれる。マク ロ位置特定および復号化モジュール302は対象ファイルがテンプレートファイ ルであるか否かをまず判定する。この判定は拡張子をチェックすることによって 行う。例えば、そのファイルがWORDアプリケーションプログラム204関連であ ればファイルを拡張子.DOTについてチェックする。この.DOT拡張子はファイルが テンプレートファイルであることを示す。 対象ファイルがテンプレートファイルであると判定されない場合は、埋込みマ クロを含んでいる場合がある。例えば、.DOC拡張子つきのWORDファイルなどのア プリケーションデータファイルは埋込みマクロを含んでいることがあり得る。マ クロ位置特定および復号化モジュール302はデータバッファ312に蓄積され ている対象ファイルにアクセスし、そのフォーマティングが埋込みマクロを示す か否かを判定する。フォーマティングフィールドは各アプリケーションプログラ ム204の慣用の規則に従って変動し、アプリケーションプログラム204の製 造業者から供給される。 対象ファイルがマクロを含むか否か、そのマクロが埋め込まれているか否か、 テンプレートファイルの形になっているかまたはマクロをサポート可能な他の形 式のファイルになっているかが判定されるとマクロは対象ファイル中で位置特定 される。マクロ位置特定および復号化モジュール302はオペレーティングシス テム202と信号授受する。オペレーティングシステムはWINDOWS 3.1で提供さ れるようなオブジェクト連結埋込み(OLEまたはOLE2)などの情報共用資源を含 む。この情報共用資源はアプリケーションファイルなどファイル構造の詳細を提 供し、埋め込まれているオブジェクトをファイル内で位置特定できるようにする 。情報共用資源コマンドはオペレーティングシステム202に応じて変わるが、 一般に、オブジェクトを開く、特定の流れをシークする、ファイルに対して読出 し書込みを行うなどの単純なコマンドである。マクロの位置特定および復号化に おける情報共用資源の実働化に慣用のプログラム手法を用いることができる。マ クロの位置特定ののちマクロ位置特定および復号化モジュール302はマクロを 復号化してウイルス探索のための走査ができるようにする。オペレーティングシ ステム202の情報共用資源をコヒーレントな情報へのマクロの復号化に用い、 ASCII変換を走査に適した形式への復号化ずみマクロの変換に用いる。復号化ず みマクロはデータバッファ312に蓄積する。また、復号化ずみマクロをそのマ クロの抽出元の対象ファイルに関連づける情報をデータバッファ312に蓄積す る。 マクロウイルス走査モジュール304はマクロ位置特定および復号化モジュー ル302およびデータバッファ312と信号授受しており、したがって、モジュ ール302は復号化ずみマクロをマクロ走査モジュール304に供給する。この モジュール302に用いられるマクロ位置特定および復号化の好ましい方法は図 5を参照してさらに詳細に説明する。 マクロウイルス走査モジュール304は、復号化ずみマクロとウイルス情報モ ジュール308からのデータとの比較に基づき既知のウイルスおよび未知のウイ ルスの検出のために復号化ずみマクロを走査するルーチンを含む。マクロウイル ス走査モジュール304はマクロウイルス検出の諸態様を提供するように構成で きる。例えば、走査周期を短くできるようにウイルスの特定の群だけ、すなわち ウイルスのうち既知の形式のものだけ、未知の形式のものだけまたは両形式のも のとも検出するように構成でき、ウイルスの最初の検出に応答して警報を発する とか、ウイルス検出の表示の前にいくつかの対象ファイルの走査を完了させてお くなどの構成も可能である。 マクロウイルス走査モジュール304はデータバッファ312中の復号化ずみ マクロにアクセスし、既知のウイルスについてその復号化ずみマクロを走査し、 そのマクロが見出されない場合は未知のウイルスについてその復号化ずみマクロ を走査する。既知のウイルスについて走査する際には、マクロウイルス走査モジ ュール304はシグネチャ走査手法を用いる。すなわちウイルス走査モジュール 304はウイルス情報モジュール308と信号授受している。ウイルス情報モジ ュール308は既知のウイルスを検出する情報を含む。例えば、ウイルス情報モ ジュールは既知のウイルスを特定するデータまたはシグネチャのストリングを含 む。ウイルス情報モジュール304はデータバッファ312の中の復号化ずみマ クロにアクセスしその復号化ずみマクロを走査してウイルスシグネチャ含有の有 無を判定する。この走査を行うのに状態マシーンまたは同様の手法を用いること ができる。既知のウイルスシグネチャがその復号化ずみマクロ中に見出された場 合は、マクロウイルス走査モジュール304が既知ウイルスに従ってその復号化 ずみマクロを汚染マクロと特定し、その復号化ずみマクロをデータバッファ中の 既知のウイルスに関連づける情報を蓄積し、マクロ処置モジュール306など他 のモジュールがその汚染マクロを処置できるようにする。 既知のウイルスが検出されなかった場合は、マクロ走査モジュールが復号化ず みマクロの中の未知のウイルスについて走査を行う。上述のとおり、アプリケー ションプログラム204は種々の動作にマクロが用いる命令を含むWordBasicな どのプログラム言語を含むことが多い。マクロウイルスは不要で有害な動作を行 う種々の動作および命令を用いる。 通常のアプリケーションプログラム204はマクロをテンプレートファイルに 提供することによってマクロをサポートする。テンプレートファイルはワードプ ロセシング設定など飾りほかの設定を含む。また、テンプレートファイルはマク ロを含み得る。通常は、グローバルテンプレートファイルはデータファイルのた めに設定およびマクロを提供する。例えば、マイクロソフトWORDについては、グ ローバル設定およびマクロのプールはテンプレートファイルNORMAL.DOTに常駐す る。アプリケーションプログラム204がデータファイルを開くと、それによっ てグローバルテンプレートファイルがまず開き、グローバル設定およびマクロを ロードし、そのあとでデータファイルを開く。通常のデータファイルは埋込みマ クロを含まないアプリケーションプログラム204を表すようにフォーマットさ れている。しかし、データファイルはテンプレートファイルを含まない旨をアプ リケーションプログラム204に表示するようにフォーマットすることもできる 。 ある種のマクロウイルスは汚染された文書ファイルをテンプレートフォーマッ トで保存し文書ファイルまたはデータファイル拡張子(.DOC)は消去しないまま 保存するようにする。したがって、汚染マクロは外見上アプリケーションデータ ファイルの文書の中に埋め込まれ得る。その種のマクロには「AutoOpen」、「Au toExec」、「AutoClose」など、すなわちデータファイルを開いた際にマクロを 実行させるようマクロが含まれる。したがって、ユーザは通常のデータファイル に見えるものを開こうとすることはできるが、そうすると、埋込みマクロを自動 的に実行させることになる。マクロウイルスも他のファイルで複製を生じる。例 えば、マクロウイルスはデータファイル中に自分自身をコピーしてそのデータフ ァイルへの通常のファイル拡張子を維持しながらテンプレートフォーマットを表 示するようにデータファイルをフォーマットすることがよくある。 マクロウイルスに汚染されたファイルはそのフォーマットを変えられてしまっ たり、汚染されたデータファイルが更新ずみのフォーマット情報とともにマクロ ウイルスによって保存されたりする。また、汚染されたマクロがグローバルテン プレートにコピーされ、その結果、他のファイルが開かれる際にそれら他のファ イルに広がり得る。 マクロウイルス走査モジュール304はマクロウイルスに使われる可能性の高 いマクロ命令組合せ、換言すれば容疑命令組合せを検出するルーチンを含む。マ クロウイルス走査モジュール304の検出する容疑命令の一つの組合せはマクロ イネーブル化命令およびマクロ複製命令である。マクロイネーブル化命令はファ イルのフォーマッティングが実行用マクロ含有ファイルを表示するように設定可 能な命令である。例えば、ファイルフォーマッティングの設定を、ファイルを開 いた際にテンプレートファイルがアプリケーションプログラム204で実行され るようにテンプレートファイルを表示するように行うことができる。マクロ複製 命令はマクロウイルスの複製を可能にする命令である。マクロイネーブル化命令 とマクロ複製命令との組合せはマクロウイルスを表示する。すなわち、そのよう な命令は先行ファイルにおけるマクロの複製および実行を可能にするからであり 、これらはマクロウイルスの二つの通常の特徴を構成する。 容疑命令の組合せを特定するためにマクロウイルス走査モジュール304はウ イルス情報モジュール308からの比較データにアクセスする。この比較データ は、復号化ずみマクロの中の容疑命令の組合せの特定のための命令識別子組を含 む。それら命令識別子組の好例は第1および第2の容疑命令識別子を含む。命令 識別子は二進のストリングであり、復号化ずみマクロの走査はこれら二進のスト リング、すなわち容疑命令をそれらマクロが含んでいるか否かを判定するように 行う。命令識別子の組で定義した容疑命令の組合せをマクロが含むと判定された 場合は、そのマクロがそのデータ組に対応する未知のウイルスで汚染されている と判定する。マクロウイルス走査モジュール304は復号化ずみマクロを未知ウ イルスによる汚染マクロとフラグ表示し、その復号化ずみマクロをデータバッフ ァ312中における未知ウイルス検出に導いた命令識別子に関連づける情報を蓄 積し、マクロ処置モジュール306など他のモジュールが汚染マクロを然るべく 処置できるようにする。マクロウイルス走査モジュール304の検出した容疑命 令の組合せ、すなわちマクロウイルスイネーブル化およびマクロウイルス複製の 命令などの命令の組合せは図6を参照してさらに詳述する。 ウイルス情報モジュール308はマクロウイルス検出モジュール206中の他 のモジュール302、304、306、310、312から分離するのが好まし い。それによって、マクロウイルス検出用の情報の更新が容易になる。例えば、 ウイルス情報308はフロッピーディスクなどの媒体から得た新しい情報をコピ ーすることによって更新できる。また、コンピュータシステム100の通信ユニ ット112経由、またはネットワークリンク(図示してない)経由でアクセスし たインターネット資源から新たな情報をダウンロードすることもできる。分離し たウイルス情報モジュール308によって情報転送がより容易になり、更新も容 易になり、したがって未知ウイルスを含むウイルスに対するシステム100の保 護が強化される。 マクロ処置モジュール306はデータバッファ312およびマクロウイルス走 査モジュール304と信号授受し、したがって対象ファイルからの復号化ずみマ クロの中のウイルスの検出に関する情報を受ける。マクロ処理モジュール306 は、マクロウイルス走査モジュール304が復号化ずみマクロの中に既知または 未知のウイルスを検出したか否かを判定するための復号化ずみマクロの状態のチ ェックのルーチン、復号化ずみマクロからマクロウイルスを除去するルーチン、 および処置ずみマクロの完全無欠性を検証するルーチンを含む。 マクロ処置モジュール306はデータバッファ312の中の復号化ずみマクロ にアクセスして復号化ずみマクロの状態をチェックし、マクロウイルス走査モジ ュール304が既知のウイルスを検出したか否かを判定する。そのマクロの状態 はデータバッファ312内では状態フラグなどの情報で表される。また、データ バッファ312は復号化ずみマクロをそのマクロに含まれる既知のウイルスと関 連づける情報を蓄積している。上述のとおり、この情報はマクロウイルス走査モ ジュール304から供給される。マクロウイルス走査モジュール304に適切な 情報を蓄積しマクロ処置モジュール306と直接に信号授受することもできる。 既知ウイルス判定フラグが表示されている場合は、マクロ処置モジュールは復号 化ずみマクロからその既知マクロを除去するための既知ウイルス関連情報を用い る。既知のマクロウイルスを復号化ずみマクロから選択的に除去し非汚染命令と 置換して、そのマクロの残余の部分がそれ以降の動作のために保持するのが好ま しい。処置ずみマクロはマクロ処置モジュール306によってデータバッファ3 12内に区別して蓄積される。次に、処置ずみマクロの完全無欠性をマクロ処置 モジュールで確認し、完全無欠性が維持されている場合はその処置ずみマクロに 有効とフラグ表示する。処置ずみマクロの完全無欠性が維持されていなかった場 合は、処置ずみマクロを無効と表示する。マクロの完全無欠性のチェックは、残 余の命令が無傷であるか否かの確認および命令の逐次連結が無傷の状態に留まっ ているか否かの確認によって行う。マクロの完全無欠性の検証は、ファイル訂正 モジュール310など他のモジュールが、汚染マクロを処置ずみマクロで置換す るまたは対象ファイルから汚染マクロ消去するに留めるなどの代替処置を決定す ることを可能にする。 マクロウイルス走査モジュール304が未知のウイルスを検出した場合は、そ の未知のウイルスの影響を除去するようにマクロ処置モジュール306がそのマ クロを処置する。既知ウイルス処置プロトコルと同様に、マクロ処置モジュール 306はデータバッファ312と信号授受して未知のウイルスの検出の有無を判 定し、有りと判定した場合はウイルス有りの判定に導いた命令識別子を特定する 。マクロの中の未知ウイルスの検出に導いた容疑命令識別子の組をそのマクロの 訂正に用いる。各命令識別子は、各命令の識別およびマクロからの除去を可能に するように一つ以上の容疑命令と関連づけてある。ウイルス訂正用のマクロ処置 モジュール306はマクロを復号化して訂正に備え、またはマクロウイルス走査 モジュール304で復号化ずみのマクロにアクセスする。ここでも容疑命令を復 号化マクロから除去し非汚染命令と置換するのが好ましい。処置ずみマクロはデ ータバッファ312に蓄積し、ファイル訂正モジュール310など他のモジュー ルによるアクセスに備える。上記の対既知ウイルス処置プロトコルと同様に、処 置ずみマクロの完全無欠性を検証し、そのマクロに然るべきフラグ表示を立てる 。好適なマクロ処置ルーチンは図7を参照してより詳細に述べる。 ファイル訂正モジュール310はデータバッファ312およびマクロ処置モジ ュール306ほかのモジュールと信号授受し、対象ファイルからのマクロで検出 されたウイルスに関する情報をその信号授受を通じて受ける。ファイル訂正モジ ュール310は汚染ファイルの表示があった場合の処置動作のためのルーチンを 含む。マクロ処置モジュール306の中のルーチンは自動的にまたはユーザ許可 時のみに種々の処置動作を行うように構成できる。例えば、ファイル訂正モジュ ール310は汚染マクロ含有の対象ファイルをコピーし、その汚染マクロ処置ず みマクロと置換し、ユーザへの通知なしに対象ファイルを訂正ずみと置換するこ とができる。ファイル訂正モジュール310も、訂正動作の諸段階でユーザに進 行の可否を問い合わせるプロンプトを生ずるように構成できる。この動作がコン ピュータシステム100の入力装置108および表示装置102を用いて対話式 に行われることはもちろんである。例えば、ファイル訂正モジュール310が対 象ファイルからのマクロの中にある種のウイルスまたは未知のウイルスが検出さ れたことをユーザに表示する。次に、ユーザは対象ファイルを訂正ずみファイル に置換することを望むか否かの問合せを受ける。ファイル訂正モジュール310 の構成の仕方、および諸段階におけるプロント表示の仕方が多様であることは当 業者に理解されよう。 ファイル訂正モジュール310はデータバッファ312と信号授受し、それに よって汚染マクロ含有の対象ファイルを表示する。ファイル訂正モジュール31 0は汚染マクロ含有の対象ファイルにアクセスし、その対象ファイルのコピーを そのファイルの訂正のためにデータバッファ312に蓄積する。マクロ位置特定 および復号化モジュール302、マクロウイルス走査モジュール304およびマ クロ処置モジュール306について上述したとおり、データバッファ312は対 象ファイルと処置ずみマクロとの関係やその処置ずみマクロの有効無効などに関 する情報および検出ウイルスの種類に関する情報を蓄積している。ファイル訂正 モジュール310はデータバッファ312の中のマクロ有効性フラグをチェック して、マクロ処置モジュール306による検出ウイルスの除去および処置ずみマ クロの完全無欠性の維持が可能であったか否かを判定する。処置ずみマクロの完 全無欠性が維持されていなかった場合は、ファイル訂正モジュール310がデー タバッファ312の中の対象ファイルをその中の汚染マクロを処置ずみマクロと 置換することによって訂正する。ウイルス汚染マクロを汚染ファイルの中でまず 位置特定する。この動作はマクロ位置特定および復号化モジュール302との信 号授受によって行うことができ、またモジュール302と同様にオペレーティン グシステム202の情報共用資源にマクロ位置特定のためにアクセスできるファ イル訂正モジュール310によって独立に行うこともできる。汚染を受けた対象 ファイルのコピーをデータバッファ312に蓄積する。次に処置ずみマクロをそ のマクロ抜きの対象ファイルのバージョンに加えて訂正ずみファイルを生ずる。 この訂正ずみファイルを元の位置の対象ファイルへの置換に用いる。これは対象 ファイルを訂正ずみファイルで直接に置換する手法である。代替的に、対象ファ イルを消去または上書きし、訂正ずみファイルを別の位置に蓄積することもでき る。 無効とフラグ表示された対象ファイルに対応する処置ずみマクロは汚染マクロ との置換には用いないのが好ましい。その場合は、ファイル訂正モジュール31 0によって種々の代替的訂正動作を行うことができる。例えば、対象ファイルが ウイルスを含んでいることをユーザに知らせ、汚染マクロを置換なしに汚染ファ イルから除去し、または対象ファイルを除去することができる。 図4を参照すると、マクロの中の未知のウイルスを検出する方法400流れ図 が示してある。ウイルス検出のための対象ファイルにまずアクセスする。対象フ ァイルは通常メモリ106内にあり、それら対象ファイルをデータバッファ31 2にコピーしてマクロウイルス検出モジュール206がそれら対象ファイルから マクロウイルスを検出し除去できるようにする。対象のファイル一つだけについ て処理を詳述するが、この発明では多数のファイルにアクセスして検査すること が可能である。ファイルへのアクセスのタイミングと範囲は、マクロウイルス検 出モジュール206の説明において上述したとおり、このモジュール206がど のように構成されているかに左右される。すなわち、多様なファイルを対象にで き、ユーザに選択可能な条件に基づいてウイルス検出を起動できる。しかし、マ クロウイルス検出モジュール206はアプリケーションプログラム204の起動 の必要なしにアプリケーションプログラム204起動で動作するマクロウイルス の検出および除去が可能になるようにするのが望ましい。 マクロ位置特定および復号化モジュール302は対象ファイルにアクセスしデ ータバッファに供給したのち、その対象ファイル中のマクロの有無を判定し、そ れらマクロの位置特定および復号化に進む。ファイルの位置特定および復号化の 好ましい方法500は図5を参照してより詳細に述べる。次に、マクロが位置特 定および復号化モジュール302によって見出されたか否かを判定する(440 )。マクロが対象ファイルの中にあると判定された場合(440)は、マクロを マクロウイルス走査モジュール304で走査し(600)、そのマクロがマクロ ウイルスで汚染されているかどうかを判定する。対象ファイルの中にマクロがな いと判定された場合(440)は、このマクロウイルス検出方法は終了する。好 ましい走査の方法(600)は図6を参照してより詳細に述べる。走査において ウイルスが検出された場合(460)は、汚染マクロをマクロ処置モジュール3 06で処置する(700)。走査においてウイルスが検出されなかった場合(4 60)は、このウイルス検出方法は終了する。マクロ処置の好ましい方法は図7 を参照してより詳細に述べる。マクロ処置ののち(700)、汚染した対象ファ イルに 対して訂正動作(800)を行い、そのあとでマクロウイルス検出の好ましい方 法を終了する。好ましい訂正方法は図8を参照して詳述する。 図5を参照すると、この発明によるマクロ位置特定および復号化の好ましい方 法500が示してある。アプリケーションデータファイルやテンプレートファイ ルなど種々のファイルを対象にすることができる。マクロ位置特定および複合化 モジュール302は、対象ファイルのマクロ含有の有無の判定をそのファイルの 所属種類の判定(ステップ505)によってまず行うルーチンを含む。この判定 は対象ファイルのファイル拡張子をチェックすることによって行う。所属ファイ ル種類のチェックによって、対象ファイルがテンプレートファイルであるか否か を判定できる。そのファイルがテンプレートファイルである場合は、マクロ位置 特定および復号化モジュール302は対象ファイルにおける埋込みマクロの有無 を判定する必要はない。したがって、そのファイルがテンプレートファイルであ るとステップ510で判定された場合は、そのファイルの中のどのマクロも位置 特定され(525)復号化され(530)、マクロウイルス走査モジュール30 4によるウイルスについての走査に備える。復号化ずみのマクロはいずれもデー タバッファ312に蓄積され(535)、マクロウイルス走査モジュール304 によるアクセスに備える。 そのファイルがテンプレートファイルまたはそれ以外のマクロを含有し得る種 類のファイルでないとステップ510で判定された場合は、ステップ515で対 象ファイルを調べて埋込みマクロの有無を判定する。埋込みマクロがない場合は 、対象ファイルがマクロを含まないとステップ540で判定して、この好ましい 方法は終了する。ファイルが埋込みマクロを含むか否かの判定はファイルフォー マッティングをチェックすることによって行う。例えば、一つのフォーマットは 、アプリケーションデータファイルが拡張子の表示如何に関わらずテンプレート ファイルを含む旨をアプリケーションプログラム204に示すことを可能にする 。そのファイルフォーマットがテンプレートファイル含有を表す場合は、その対 象ファイルは埋込みマクロを含むかもしれない。ステップ520においてファイ ルが埋込みマクロを含まないと判定された場合は、ステップ540においてマク ロは対象ファイル中にないと判定し、この好ましい方法500は終了する。 対象ファイルは埋込みマクロを含まないとステップ520で判定された場合、 または対象ファイルはマクロ含有テンプレートファイルであるとステップ510 で判定された場合は、そのマクロをステップ525で位置特定しステップ530 で復号化する。位置特定および復号化モジュール302は、WINDOWS 3.1オペレ ーティングシステムで提供されているようなオブジェクト連結埋込み(OLEまたは OLE2)などのオペレーティングシステム202情報共用資源を用いるルーチンを 含む。位置特定および復号化モジュール302について上述したとおり、情報共 用資源は、ファイルに一体化されたオブジェクトの位置特定および復号化を可能 にするように、ファイル構造に関する詳細、すなわちアプリケーションファイル やテンプレートファイルの詳細を提供する命令を含む。慣用のプログラム作成手 法をマクロ位置特定および復号化のための情報共用資源の実働化に使うことがで きる。マクロを位置特定し復号化したのち二進符号に変換し(例えばASCII変換 により)、ステップ535においてデータバッファ312に蓄積してウイルスに ついての走査ができるようにする。マクロ位置特定および復号化モジュール30 2は、復号化マクロの蓄積のほかに、復号化ずみマクロと対象ファイルとの間の 関連を維持し蓄積し、マクロウイルス走査モジュール304、マクロ処置モジュ ール306およびファイル訂正モジュール310が対象ファイルの正しい走査お よび処置、および訂正をできるようにする。ステップ535でマクロの復号化お よび蓄積が終了したのち、この好ましい位置特定および復号化の方法500は終 了する。 図6の流れ図を参照すると、この発明によるマクロ中ウイルス検出の好ましい 方法600が示してある。マクロウイルス走査モジュール304は、位置特定お よび復号化モジュール302の提供する復号化ずみマクロ情報にアクセスし、復 号化ずみマクロの情報とウイルス情報308との比較によりウイルスの存在を検 出するルーチンを含む。 第1のステップ605において、復号化マクロを既知のウイルスについて走査 する。既知のウイルスについて走査するために、マクロウイルス走査モジュール 304はシグネチャ走査手法を用いる。マクロウイルス走査モジュール304は データバッファ312中の復号化ずみマクロにアクセスし、ウイルス情報モジュ ールの提供するウイルスシグネチャをそれらマクロが含むか否かを判定する。ス テップ610において、既知ウイルス走査ステップ605に基づく既知ウイルス を復号化ずみマクロが含むか否かを判定し、既知ウイルス有りの場合は、ステッ プ615においてマクロウイルス走査モジュールがそのマクロを既知ウイルスに よる汚染有りとフラグ表示しその復号化ずみマクロとその既知マクロとを関連づ ける情報をデータバッファ312に蓄積する。 走査ステップ605で既知ウイルスが検出されなかったとステップ610で判 定した場合は、マクロウイルス走査モジュール304が復号化ずみマクロの中の 未知のウイルスについて走査を行う。ステップ615において、マクロウイルス 走査モジュール304は未知のウイルスの検出のための一連の命令識別子を取り 入れる。マクロ走査モジュール304はマクロウイルスに使われそうな命令を検 出する。これら命令は容疑命令とも呼ぶ。容疑命令の特定の組合せはマクロウイ ルスに使われる可能性が高い。容疑命令の組合せの探索によって、誤ったウイル ス検出を回避できる。二つ(またはそれ以上)の互いに異なる容疑命令を含むマ クロは汚染されている可能性がごく高いからである。 マクロウイルス走査モジュール304の説明で述べたとり、通常のアプリケー ションプログラム204はテンプレートファイルにマクロを提供する。通常はア プリケーションデータファイルはグローバルテンプレートファイルを使うが、埋 込みマクロを含むことを示すようにフォーマットすることもできる。例えば、WO RDファイルをテンプレートファイル含有の表示のために.DOTフォーマットで保存 することができる。多くのマクロウイルスが、汚染ドキュメントファイルをテン プレートフォーマット(.DOT)で保存させ、ドキュメントまたはデータファイル 拡張子(.DOC)を不変のまま保持させる。したがって、汚染マクロは外見上単な るアプリケーションデータファイルに見えるドキュメントに埋め込まれるかもし れない。マクロウイルスは他のファイルに自分自身の複製を作る。例えば、マク ロウイルスはデータファイルに自分自身をコピーして、データファイル用の通常 のファイル拡張子を維持しながらデータファイルをテンプレートフォーマット表 示状態にフォーマットすることが多い。 マクロ走査モジュール304の検出した容疑命令の一つの組合せはマクロイネ ーブル化命令およびマクロ複製命令である。マクロネーブル化命令は、そのファ イルが実行用のマクロを含むことを表すようにファイルをフォーマットするもの である。例えば、ファイルフォーマッティングをテンプレートファイルを表すよ うに設定して、アプリケーションプログラム204がテンプレートファイルをフ ァイルが開いたとき実行するようにすることができる。マクロ複製命令はマクロ ウイルスの複製を可能にする命令である。マクロイネーブル化命令とマクロ複製 命令との組合せはマクロウイルスを表す。それら命令によって先行ファイルにお けるマクロウイルスの二つの通常の特徴、すなわちマクロの複製および実行が可 能になるからである。 マイクロソフトWORDファイルなど特定のアプリケーションファイルでは、ファ イルフォーマットフィールド.formatを1に設定すると、アプリケーションプロ グラム204(WORD)がファイルに埋込みマクロが含まれているものと判断し、 適当な始動により、ファイルに埋込みずみの任意のマクロにアクセスしてそれを 実行する。すなわち、ファイル中で.formatを1に設定することによって、その ファイルの中のマクロの実行をイネーブルし、先行ファイルでそのような設定の 提供を求める命令はすべてマクロイネーブル化命令とみなす。例えば、命令「if dlg.format=0,then dlg.format=1」は先行ファイルで.formatを0から1に変 えることを可能にするのでマクロイネーブル化命令である。命令「FileSaveAsa$ ,1」など他の命令は元のファイルを保持し、ファイルが埋込みマクロを含み得る 旨を表示するフォーマットなど別のフォーマットでそのファイルの追加のコピー を保存する。したがって、この種の命令もマクロイネーブル化命令である。ファ イル中でマクロウイルス実行をイネーブルする種々の代替的命令が認識されよう 。 マクロウイルス複製命令はマクロウイルスの反復を可能にする種類のものであ る。例えば、命令「MacroCopy」はマクロをコピーし、そのマクロが汚染してい る場合は有害な命令全部、すなわち送信元から宛先まで全部をコピーする。命令 「Organizer.copy」など上記以外の命令もマクロウイルス複製を容易にする。種 々の代替的命令がマクロウイルス複製を容易にできることを理解されたい。 マクロ位置特定および復号化の好ましい方法500について述べたとおり、対 象ファイルからのマクロ命令は位置特定されたのち分析のために2進符号に変換 される。特有の2進符号は容疑命令にも対応する。例えば、マクロウイルスイネ ーブル化命令「ifdlg.format=0thendlg.format=1」はマクロウイルス複製命令「 MacroCopy」と同様に特定の対応2進符号を有する。したがって、ウイルス情報 モジュール308から得られる比較データ(615)は第1および第2の命令用 の2進符号または2進符号の特有部分をそれぞれ含み、それによって対象ファイ ルからのマクロの中の第1および第2の命令を特定する。 また、この発明によって特有の2進符号部分がいくつかの容疑命令に対応する と判定された。例えば、2進ストリング「73 CB 00 0C 6C 01 00」(16進表記 )はいくつかのマクロウイルスイネーブル化命令中に見出される命令部分「.for mat=1」に対応する。また、例えば、上記命令「ifdlg.format=0thendlg.format= 1」、「ifbewaardlg.format=0thenbewoordlg.format=1;およびFileSaveAs.Forma t=1」、および「FileSaveAs.Name=Filename$(),.Format=1」は2進ストリング「 73 CB 00 0C 6C 01 00」は2進ストリングを含む。したがって、この発明はこの 73 CB 00 0C 6C 01 00など特定のストリングを複数の互いに異なる容疑マクロ命 令の検出のための識別子として用いる。 ウイルス情報モジュール308の中の比較データにはいくつかの組の命令識別 子を含めるのが好ましい。容疑命令の種々の組合せをそれら命令識別子組の利用 により検出できる。種々のマクロウイルスイネーブル化命令やマクロウイルス複 製命令をこれら命令識別子の各組を用いて識別できる。命令識別子はマクロウイ ルスイネーブル化命令およびマクロウイルス複製命令に限られない。例えば、コ ンピュータハードディスク装置に認証および命令なしに再初期化を行わせる命令 、すなわちユーザへの通知なしの再初期化を可能にするようにシステム設定を変 更する命令は容疑命令組合せとして使用可能である。 図9を参照すると、ウイルス情報モジュール308に蓄積した命令識別子の好 例を含むデータ表が示してある。この好例データ表900はいくつかの互いに異 なる命令識別子に対応する行902を含む。また、命令識別子903の組を識別 する列、命令識別子ID番号904および命令識別子2進符号のテキストおよび 対応16進表記905もこの表に含めてある。命令識別子の各組に二つの命令識 別子を含めるのが好ましいが、付加的な命令識別子は一つの組に含め得る。また 、マクロウイルス判定は三つの命令識別子のうちの二つまたはそれ以外の識別子 小群の検出に基づいて行うことができる。データ表900は例示にすぎない。ウ イルス情報モジュール308への比較データの蓄積は種々の手法で行うことがで きる。 図6の流れ図を参照すると、ステップ615においてマクロウイルス走査モジ ュール304で一組の命令識別子を得たのち復号化ずみマクロを走査して、命令 識別子の識別したような容疑命令の組合せを含むか否かを判定する。ステップ6 20において復号化ずみマクロを第1の命令識別子を用いて走査する。例えば、 復号化ずみマクロを走査して(620)、命令識別子900の第1の組の中の第 1の命令識別子に対応するストリング73 CB 00 0C 6C 01 00が存在するか否かを 判定する。ステップ620における走査は状態マシーン、すなわち復号化ずみマ クロを走査して上記ストリングの有無を判定する状態マシーンで行う。ステップ 625において、第1の容疑命令識別子が復号化ずみマクロに存在するか否かを 判定する。この第1の命令識別子に対応する命令はないと判定した場合は(62 5)、ステップ645でこの命令識別子組にしたがってそのマクロを非汚染と判 定し、このマクロウイルス走査方法600を終了する。 ステップ625において上記第1の命令識別子があると判定した場合は、ステ ップ630で復号化ずみマクロを走査し、第2の命令識別子の有無を判定する。 ステップ635でこのマクロが第2の容疑命令識別子を含むと判定した場合は、 ステップ640で復号化ずみマクロをその命令識別子組対応の未知のウイルスに よる汚染マクロとフラグ表示する。未知ウイルス検出に導いた命令識別子組に復 号化ずみマクロ関連づける情報をデータバッファ312に蓄積して、マクロ処置 モジュール306など他のモジュールが汚染マクロを然るべく処置できるように する。 ステップ635で第2の容疑命令識別子なしと判定した場合は、ステップ64 5でマクロウイルス走査モジュール304が命令識別子組にしたがって復号化マ クロ中には未知ウイルスなしと判定し、マクロウイルス走査方法600を終了す る。ステップ635におけるこの判定は命令識別子の単一の組について行われる 。命令識別子の上記以外の組は復号化マクロを反復的に比較して、未知ウイルス の判定を可能にする。また、共通の第1の命令識別子の有無は、種々の代替的な 第2の命令識別子の探索の前に判定できる。 図7の流れ図を参照すると、好適な汚染マクロ処置方法700が示してある。 ステップ705において、未知ウイルス判定フラグをチェックしてマクロウイル ス走査モジュール304が復号化ずみマクロの中に既知のウイルスを検出したか 否かを判定する。既知ウイルス判定フラグはデータバッファ312の中のマクロ 処置モジュール306、すなわち既知ウイルスの検出に用いたウイルス情報に復 号化ずみマクロを関連づけるモジュール306に供給する。ステップ715でこ のウイルス情報を用いて既知ウイルスを復号化ずみマクロから除去する。マクロ からのウイルスの除去は、ウイルスを非汚染命令(no-opなど)に置換すること によって行う。ウイルスは既知であるから、マクロの正常部分がそのまま残るよ うに選択的に除去できる。ウイルス除去ののち、ステップ735において処置ず みマクロをチェックしてその完全無欠性を検証する。処置ずみマクロの完全無欠 性が維持されていると判定した場合は、ステップ745で処置ずみマクロにマク ロ処置モジュール306で有効とフラグ表示する。処置ずみマクロは、そのマク ロの有効性関連データとともにデータバッファ312に蓄積しその状態に保つ。 ステップ740において上記完全無欠性が維持されていないと判定された場合は 、ステップ750においてその処置ずみマクロを無効とフラグ表示し、関連情報 をデータバッファ312に同様に蓄積する。 図7に戻って、既知のウイルスは復号化ずみマクロにないとマクロ処置モジュ ール306が判定した場合は、未知のウイルスを選択的に除去するようにマクロ を処置する。復号化ずみマクロの中の未知のウイルスの検出に用いた命令識別子 の組をデータバッファ312の中のマクロ処置モジュール306に利用できる。 この命令識別子の組は例えば第1および第2の容疑命令識別子を含む。ステップ 720では第1の容疑命令識別子をその識別子対応の容疑命令の各々の位置特定 に用いる。マクロウイルス走査モジュール304の用いる命令の検出に関連づけ て説明した手法を用いて上記命令を位置特定するのに復号化ずみマクロを走査で きる。命令識別子が命令全体でなく命令の断片と対応する場合は、マクロ処置モ ジュール306が検出された断片の各々を命令全体に関連づける。この関連づけ はマクロの用いるプログラム用言語に左右される。この関連づけには慣用の手法 を使用できる。ステップ725では追加の容疑命令識別子を対応の容疑命令の検 出に用いる。次に、ステップ730で、位置特定した容疑命令を置換する。既知 のウイルスストリングの置換と同様に、容疑命令を非汚染命令と置換するのが好 ましい。マクロの完全無欠性を検証し、完全無欠性維持の有無に応じて処置ずみ マクロにフラグ表示し、マクロ処置方法700を終了する。 図8を参照すると、この発明による好ましい訂正方法800が示してある。フ ァイル訂正モジュール310はデータバッファ312および種々のモジュール3 02、304、306、308、310と信号授受し、検出されたマクロウイル スや汚染マクロ含有の検出された対象ファイルなどの情報にアクセスする。ステ ップ805でマクロウイルス含有の対象ファイルをデータバッファ312に蓄積 する。対象ファイルを元の位置でアクセスしその汚染マクロとともにデータバッ ファ312にコピーするのが好ましい。次に、ファイル訂正モジュール310は 対象ファイルの中のマクロを処置ずみマクロに置換するか代替的訂正手法を用い るかによって訂正動作を行う。ステップ810でマクロ有効性フラグをチェック し、対象ファイル対応の処置ずみマクロの完全無欠性を判定する。処置ずみマク ロが有効と表示されている場合は、ファイル訂正モジュール310が対象ファイ ルの中の汚染マクロを処置ずみマクロで置換する。ステップ810では、汚染マ クロは対象ファイル中で位置特定される。この動作はオペレーティングシステム 202の情報共用資源(OLE)を用いて行う。ステップ820では、位置特定し たマクロを情報共用資源の利用により対象ファイルから除去し、そのマクロ抜き の対象ファイルのバージョンをデータバッファ312に蓄積する。ステップ82 5では、マクロ処置モジュール306の発生した処置ずみマクロをそのマクロ抜 きの対象ファイルのバージョンに加えて訂正ずみファイルを発生する。ステップ 830では、この訂正ずみファイルを元の位置で対象ファイルの代わりに入れる のに用いる。訂正ずみファイルで初めからの対象ファイルを直接に置換すること もできる。また、対応の対象ファイルは消去または上書きでき、訂正ずみのファ イルは任意の位置に蓄積できる。 ステップ810に戻ると、対象ファイル対応の処置ずみマクロを無効とフラグ 表示し、この処置ずみマクロは汚染マクロの置換には用いないのが好ましい。す なわち、ステップ835では、ユーザのコンフィギュレーション設定に応じて、 ファイル訂正モジュールで代替の訂正動作を行う。多様な代替の訂正過程、すな わち対象ファイルがウイルスを含む旨をユーザに知らせる、対象ファイルからの 汚染ファイルの除去を置換なしに行う、または目標ファイルを消去するなど代替 の訂正過程が認識されよう。 特定の実施例を参照してこの発明を上に説明してきたが、種々の変形が可能で あることは当業者に認識されよう。例えば、種々のモジュールについてアクセス 、位置特定、復号化、検出および訂正の系列を説明してきたが、マクロ中で未知 の ウイルスを検出する際に等価の機能を発揮する通常のモジュールに種々のプロセ スを取り込めることは理解されよう。上記実施例のこれらのおよびこれら以外の 変形および改変をこの発明は提供するものであり、この発明の範囲は添付請求の 範囲のみによって限定されるものである。 ブロック図(図1−3)および流れ図(図4−8) の各構成部分の対応訳 (図1) 102 表示装置 104 中央処理装置(CPU) 106 メモリ装置 108 入力装置 110 データ蓄積装置 112 通信ユニット (図2) 202 オペレーティングシステム 204 アプリケーションプログラム 206 マクロウイルス検出モジュール (図3) 206 マクロウイルス検出モジュール 302 マクロ位置特定および復号化モジュール 304 マクロウイルス走査モジュール 306 マクロ処置モジュール 308 ウイルス情報モジュール 310 ファイル訂正モジュール 312 データバッファ (図4) 420 ファイルにアクセスする 500 ファイルからのマクロを位置特定し復号化する 440 マクロ有り? 600 ウイルスについてマクロを走査する 460 ウイルス検出された? 700 汚染マクロを処置する 800 汚染ファイルに対して訂正動作を行う (図5) 505 ファイル種類を判定する 510 テンプレートファイル? 515 埋込みマクロ含有の有無を判定するようにファイルを調べる 520 埋込みファイル有り? 525 ファイル中でマクロを位置特定する 530 走査のためにマクロを復号化する 535 復号化ずみマクロをバッファに蓄積する 540 ファイル中にマクロ常駐なしと判定する (図6) 605 既知ウイルスについて走査する 610 既知ウイルス有り? 615 未知ウイルス特定用の比較データを取り込む 620 比較データからの第1の命令識別子を用いマクロを走査する 625 第1の容疑命令有り? 630 比較データからの第2の命令識別子を用いマクロを走査する 635 第2の容疑命令有り? 640 この命令識別子組対応の未知ウイルスで汚染とマクロにフラグ表示する 645 この命令識別子組によるマクロの汚染なしと判定する 650 既知ウイルスによる汚染有りとマクロにフラグ表示する (図7) 705 既知ウイルス判定フラグをチェックする 710 既知ウイルス有り? 715 既知ウイルスをマクロから除去する 720 第1命令識別子対応の各容疑命令を位置特定する 725 追加の命令識別子対応の各容疑命令を位置特定する 730 特定ずみの各容疑命令を非汚染命令で置換する 735 処置ずみマクロの完全無欠性を検証する 740 完全無欠性は維持されている? 745 処置ずみマクロを有効とフラグ表示する 750 処置ずみマクロを無効とフラグ表示する (図8) 805 対象ファイルをデータバッファに蓄積する 810 マクロ有効性フラグ表示有り? 815 対象ファイル中でマクロを位置特定する 820 対象ファイルからマクロを除去しマクロなしファイルの複製を蓄積する 825 処置ずみマクロをマクロ除去ずみファイルに加える 830 対象ファイルを訂正ずみファイルで置換する
───────────────────────────────────────────────────── フロントページの続き (72)発明者 チェン,エヴァ ワイ. アメリカ合衆国 カリフォルニア州 95014 クペルティーノ,オレンジ アヴ ェニュー 10408 (72)発明者 ロー,ジョニー ティー. 台湾 シン チュウ カウンティ,チュウ トゥン タウン,クァン ミン ロー ド,アリー 56,54 (72)発明者 デン,ミン エム. 台湾 台北,ユン ホー ストリート レ ーン 75,2 フロア ナンバー 5 (72)発明者 チー,レータ エム. 台湾 台北,リン イ ストリート レー ン33,1 フロア ナンバー 30 【要約の続き】 を位置特定し、その容疑命令を除去して処置ずみマクロ を生ずる。ファイル訂正モジュール(310)は、汚染 マクロ含有の対象ファイルにアクセスし、マクロ処置モ ジュール(306)からの処置ずみマクロでその汚染マ クロを置換する。

Claims (1)

  1. 【特許請求の範囲】 1.プロセッサおよびメモリ装置を含むコンピュータシステムにおいてマクロの 中のウイルスを検出する方法であって、 ウイルス検出のための情報を含む比較データを得る過程と、 マクロを読み込む過程と、 復号化ずみマクロを生ずるように前記マクロを復号化する過程と、 前記復号化ずみマクロを前記比較データと比較することによってウイルスにつ いて前記復号化ずみマクロを走査する過程と を含む方法。 2.前記復号化ずみマクロを走査する過程がそのマクロの前記ウイルスによる汚 染を示す場合に処置ずみマクロを生ずるように前記マクロから前記ウイルスを除 去する過程 をさらに含む請求項1記載の方法。 3.前記マクロを読み込む過程が、 対象ファイルがテンプレートファイルであるか否かを判定する過程と、 前記対象ファイルがテンプレートファイルでない場合にその対象ファイルが埋 込みマクロを含むか否かを判定する過程と、 前記対象ファイルがテンプレートファイルを含む場合に前記埋込みマクロを位 置特定する過程と を含む請求項1記載の方法。 4.前記比較データが第1の容疑命令識別子および第2の容疑命令識別子を含む 請求項1記載の方法。 5.前記ウイルスについて前記復号化ずみデータを走査する過程が、 前記復号化ずみマクロが前記第1の容疑命令識別子に対応する第1の部分を含 むか否かを判定する過程と、 前記復号化ずみマクロが前記第2の容疑命令識別子に対応する第2の部分を含 むか否かを判定する過程と、 前記復号化ずみマクロが前記第1および第2の部分を含む場合に前記復号化ず みマクロが前記ウイルスを含むと判定する過程と を含む請求項4記載の方法。 6.前記第1の容疑命令識別子がマクロウイルスイネーブル化命令を検出する請 求項5記載の方法。 7.前記第2の容疑命令識別子がマクロウイルス複製命令を検出する請求項6記 載の方法。 8.前記ウイルスを除去する過程が、 前記第1の容疑命令識別子に対応する第1のマクロ命令を前記復号化ずみマク ロの中で位置特定する過程と、 前記第1の容疑マクロ命令を除去する過程と を含む請求項2記載の方法。 9.前記処置されたマクロの完全無欠性を検証する過程と、 前記処置されたマクロの完全無欠性検証に応じて、対象ファイルの中の前記汚 染マクロを修復ずみマクロに置換する過程と をさらに含む請求項8記載の方法。 10.前記第1の容疑マクロ命令を除去する過程が前記第1の容疑命令を非汚染 命令に置換する過程を含む請求項8記載の方法。 11.前記ウイルスを除去する過程が、 前記第2の容疑命令識別子に対応する第2の容疑マクロ命令を前記復号化ずみ マクロの中で位置特定する過程と、 処置ずみマクロを生ずるように前記第2の容疑マクロ命令を前記復号化ずみマ クロから除去する過程と を含む請求項8記載の方法。 12.前記比較データが複数の容疑命令識別子組を含む請求項1記載の方法。 13.第1の容疑命令識別子組がストリング73 CB 00 0C 6C 01 00および67 C2 80を含む請求項12記載の方法。 14.第2の容疑命令識別子組がストリング73 CB 00 0C 6C 01 00および64 6F 02 67 DE 00 73 87 01 12 73 7Fを含み、第3の容疑命令識別子組がストリング7 3 CB 00 0C 6C 01 00および6D 61 63 72 6F 73 76 08を含み、第4の容疑命令識 別子組がストリング12 6C 01 00および64 67 C2 80 6A 0F 47を含み、第5の容 疑命令識別子組がストリング79 7C 66 6F 72 6D 61 74 20 63 6Aおよび80 05 6A 07 43 4F 4Dを含む請求項13記載の方法。 15.プロセッサおよびメモリ装置を含むコンピュータシステムにおいてマクロ 中のウイルスを検出する方法であって、 マクロ読み込む過程と、 第1の容疑命令識別子および第2の容疑命令識別子を含み、ウイルスを検出す るための比較データを得る過程と、 前記第1の容疑命令識別子に対応する第1の部分を前記マクロが含むか否かを 判定するように前記マクロを走査する過程と、 前記第2の容疑命令識別子に対応する第2の部分を前記マクロが含むか否かを 判定するように前記マクロを走査する過程と、 前記マクロが前記第1および第2の部分を含んでいた場合に前記マクロが前記 ウイルスで汚染されていたと判定する過程と を含む方法。 16.前記マクロが前記第1および第2の部分を含むと判定された場合に処置ず みマクロを生ずるように前記マクロを処置する過程 をさらに含む請求項15記載の方法。 17.前記マクロを処置する過程が、 前記第1の容疑命令識別子に対応する第1のマクロ命令を前記汚染マクロの中 で位置特定する過程と、 前記汚染マクロを修復するように前記第1のマクロ命令を前記汚染マクロから 除去する過程と を含む請求項16記載の方法。 18.前記マクロを処置する過程が、 前記第2の容疑命令識別子に対応する第2のマクロ命令を前記汚染マクロの中 で位置特定する過程と、 前記汚染マクロを修復するように前記第2のマクロ命令を前記汚染マクロから 除去する過程と を含む請求項17記載の方法。 19.前記マクロを読み込む過程が、 対象ファイルにアクセスする過程と、 前記対象ファイルがテンプレートファイルであるかどうかを判定する過程と、 そのファイルがテンプレートファイルであった場合にそのファイルが埋込みマ クロを含むか否かを判定する過程と、 そのファイルが埋込みマクロを含む場合にその埋込みマクロを位置特定する過 程と を含む請求項15記載の方法。 20.前記第1の容疑命令識別子がストリング73 CB 00 0C 6C 01 00を含み、前 記第2の容疑命令識別子がストリング67 C2 80を含む請求項15記載の方法。 21.前記比較データが複数の容疑命令識別子を含む請求項15記載の方法。 22.第1の容疑命令識別子組がストリング73 CB 00 0C 6C 01および67 C2 82 を含み、第2の容疑命令識別子組がストリング73 CB 00 0C 6C 01 00および64 6 F 02 67 DE 00 73 87 01 12 73 7Fを含み、第3の容疑命令識別子組がストリン グ73 CB 00 0C 6C 01 00および6D 61 63 72 6F 73 76 08を含み、第4の容疑命 令識別子組がストリング12 6C 01 00および64 67 C2 80 6A 0F 47を含み、第5 の容疑命令識別子組がストリング79 7C 66 6F 72 6D 61 74 20 63 6Aおよび80 0 5 6A 07 43 4F 4Dを含む請求項21記載の方法。 23.対象ファイルにアクセスする過程と、 前記対象ファイルの中で前記マクロを位置特定する過程と、 前記マクロを前記対象ファイルから除去する過程と、 修復ずみファイルを生ずるように前記処置されたマクロを前記対象ファイルに 加える過程と をさらに含む請求項15記載の方法。 24.マクロの中のウイルスを検出する装置であって、 第1の容疑命令識別子および第2の容疑命令識別子を含みウイルスを検出する ための比較データを蓄積するウイルス情報モジュールと、 前記ウイルス情報モジュールと信号授受して、前記比較データを受けるととも に、前記マクロが前記第1の容疑命令識別子対応の第1の部分および前記第2の 容疑命令識別子対応の第2の部分を含むか否かを判定するように前記マクロを走 査するマクロウイルス走査モジュールと を含む装置。 25.前記マクロウイルス走査モジュールと信号授受して、対象ファイルにアク セスし、その対象ファイルがテンプレートファイルであるか否かを判定し、その 対象ファイルが埋込みマクロを含むか否かを判定し、復号化ずみマクロを生ずる ようにそのマクロを復号化するマクロ位置特定および復号化モジュール をさらに含む請求項24記載の装置。 26.前記ウイルス情報モジュールと信号授受して、前記復号化ずみマクロにア クセスし前記第1の容疑命令識別子対応の第1のマクロ命令および前記第2の容 疑命令識別子対応の第2のマクロ命令を除去し処置ずみマクロを生ずるマクロ処 置モジュール をさらに含む請求項25記載の装置。 27.前記マクロ処置モジュールと信号授受して、前記対象ファイルにアクセス し前記対象ファイルの中でマクロを位置特定しその対象ファイルからそのマクロ を除去し前記処置ずみマクロを前記対象ファイルに加えて訂正ずみファイルを生 ずるファイル訂正モジュール をさらに含む請求項26記載の装置。 28.前記第1の命令識別子がストリング73 CB 00 0C 6C 01 00を含み、前記第 2の命令識別子がストリング67 C2 80を含む請求項27記載の方法。 29.前記比較データが複数の容疑命令識別子組を含む請求項27記載の方法。 30.第1の容疑命令識別子組がストリング73 CB 00 0C 6C 01 00および67 C2 82を含み、第2の容疑命令識別子組がストリング73 CB 00 0C 6C 01 00および64 6F 02 67 DE 00 73 87 01 12 73 7Fを含み、第3の容疑命令識別子組がストリ ング73 CB 00 0C 6C 01 00および6D 61 63 72 6F 73 76 08を含み、第4の容疑 命令識別子組がストリング12 6C 01 00および64 67 C2 80 6A 0F 47を含み、第 5の容疑命令識別子組がストリング79 7C 66 6F 72 6D 61 74 20 63 6Aおよび80 05 6A 07 43 4F 4Dを含む請求項29記載の方法。 31.マクロの中のウイルスを検出する装置であって、 第1の容疑命令識別子および第2の容疑命令識別子を含む比較データをウイル ス検出用に得る手段と、 前記第1の容疑命令識別子対応の第1の部分をマクロが含むか否かを判定する ように前記マクロを走査する手段と、 前記第2の容疑命令識別子対応の第2の部分をマクロが含むか否かを判定する ように前記マクロを走査する手段と、 前記第1および第2の部分を含んでいた場合に前記マクロがウイルスに汚染さ れていると判定する手段と を含む装置。 32.前記第1の容疑命令識別子および前記第2の容疑命令識別子にそれぞれ対 応する第1のマクロ命令および第2のマクロ命令を前記マクロの中で位置特定す る手段と、 処置ずみマクロを生ずるように前記第1のマクロ命令および前記第2のマクロ 命令を前記マクロから除去する手段と をさらに含む請求項31記載の装置。 33.対象ファイルにアクセスしその対象ファイルがマクロを含むか否かを判定 する手段をさらに含む請求項32記載の装置。 34.前記対象ファイルにアクセスする手段と、前記マクロを前記対象ファイル から除去する手段と、訂正ずみファイルを生ずるように前記処置ずみマクロを前 記対象ファイルに加える手段とを含むファイル訂正手段 をさらに含む請求項33記載の装置。 35.マクロの中のウイルスを検出するシステムであって、 第1の容疑命令識別子および第2の容疑命令識別子を含むウイルス検出用比較 データおよびルーチンを蓄積するメモリ装置と、 前記メモリ装置と信号授受し、前記マクロが前記第1の容疑命令識別子対応の 第1の部分および前記第2の容疑命令識別子対応の第2の部分を含むか否かを判 定するように前記比較データを受けるとともに前記マクロを走査するプロセッサ と を含むシステム。
JP51659398A 1996-10-02 1997-09-29 マクロ中のウイルスの検出および除去のためのシステム、装置および方法 Expired - Lifetime JP4372228B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/724,949 1996-10-02
US08/724,949 US5951698A (en) 1996-10-02 1996-10-02 System, apparatus and method for the detection and removal of viruses in macros
PCT/US1997/016675 WO1998014872A1 (en) 1996-10-02 1997-09-29 System, apparatus and method for the detection and removal of viruses in macros

Publications (2)

Publication Number Publication Date
JP2001508564A true JP2001508564A (ja) 2001-06-26
JP4372228B2 JP4372228B2 (ja) 2009-11-25

Family

ID=24912542

Family Applications (1)

Application Number Title Priority Date Filing Date
JP51659398A Expired - Lifetime JP4372228B2 (ja) 1996-10-02 1997-09-29 マクロ中のウイルスの検出および除去のためのシステム、装置および方法

Country Status (4)

Country Link
US (1) US5951698A (ja)
JP (1) JP4372228B2 (ja)
AU (1) AU4487297A (ja)
WO (1) WO1998014872A1 (ja)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006127497A (ja) * 2004-10-29 2006-05-18 Microsoft Corp ユーザ変更可能ファイルの効率的なホワイトリスティング
JP2006127498A (ja) * 2004-10-29 2006-05-18 Microsoft Corp 文書へのアンチウイルスマニフェストのスタンピング
JP2006524396A (ja) * 2003-04-17 2006-10-26 ネットワークス アソシエイツ テクノロジー インコーポレイテッド 移動通信フレームワークに使用するためのプラットホーム独立のスキャニングサブシステム
JP2006526222A (ja) * 2003-04-17 2006-11-16 株式会社エヌ・ティ・ティ・ドコモ 移動通信フレームワークにおいてコンテンツ/セキュリティ分析機能にアクセスするためのapiシステム、方法、及びコンピュータプログラム製品
JP2007080281A (ja) * 2005-09-13 2007-03-29 Cloudmark Inc 実行可能コードのためのシグネチャ
JP2007122745A (ja) * 2006-12-20 2007-05-17 Trend Micro Inc ネットワークを介して通信端末に提供されるプログラムに対する伝送経路上でのセキュリティの確保
JP2007524902A (ja) * 2003-04-17 2007-08-30 株式会社エヌ・ティ・ティ・ドコモ 移動通信装置を使用してコンテンツ/コンテクストの高感度スキャニングを行うシステム、方法及びコンピュータプログラム製品
US7827612B2 (en) 2003-02-26 2010-11-02 Secure Ware Inc. Malicious-process-determining method, data processing apparatus and recording medium
US7895655B2 (en) 2003-02-26 2011-02-22 Secure Ware Inc. Malicious-process-determining method, data processing apparatus and recording medium
US8429749B2 (en) 2007-03-27 2013-04-23 National Institute Of Advanced Industrial Science And Technology Packet data comparator as well as virus filter, virus checker and network system using the same
US8490183B2 (en) 2004-02-05 2013-07-16 Trend Micro Incorporated Security ensuring by program analysis on information device and transmission path
WO2014049758A1 (ja) * 2012-09-26 2014-04-03 富士通株式会社 情報処理装置、情報処理方法、及び情報処理プログラム
WO2020003959A1 (ja) * 2018-06-27 2020-01-02 株式会社プロット 電子ファイルの無害化処理プログラム、電子ファイルの無害化処理方法および記録媒体
JP2021082959A (ja) * 2019-11-20 2021-05-27 コニカミノルタ株式会社 ジョブ制御モジュール、画像形成装置

Families Citing this family (150)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6151643A (en) 1996-06-07 2000-11-21 Networks Associates, Inc. Automatic updating of diverse software products on multiple client computer systems by downloading scanning application to client computer and generating software list on client computer
US7613926B2 (en) * 1997-11-06 2009-11-03 Finjan Software, Ltd Method and system for protecting a computer and a network from hostile downloadables
US9219755B2 (en) 1996-11-08 2015-12-22 Finjan, Inc. Malicious mobile code runtime monitoring system and methods
US8079086B1 (en) 1997-11-06 2011-12-13 Finjan, Inc. Malicious mobile code runtime monitoring system and methods
US6167520A (en) 1996-11-08 2000-12-26 Finjan Software, Inc. System and method for protecting a client during runtime from hostile downloadables
US7058822B2 (en) * 2000-03-30 2006-06-06 Finjan Software, Ltd. Malicious mobile code runtime monitoring system and methods
US7975305B2 (en) * 1997-11-06 2011-07-05 Finjan, Inc. Method and system for adaptive rule-based content scanners for desktop computers
US7418731B2 (en) * 1997-11-06 2008-08-26 Finjan Software, Ltd. Method and system for caching at secure gateways
US8225408B2 (en) * 1997-11-06 2012-07-17 Finjan, Inc. Method and system for adaptive rule-based content scanners
US6108799A (en) * 1997-11-21 2000-08-22 International Business Machines Corporation Automated sample creation of polymorphic and non-polymorphic marcro viruses
WO1999066383A2 (en) * 1998-06-15 1999-12-23 Dmw Worldwide, Inc. Method and apparatus for assessing the security of a computer system
US6338141B1 (en) * 1998-09-30 2002-01-08 Cybersoft, Inc. Method and apparatus for computer virus detection, analysis, and removal in real time
US6577920B1 (en) * 1998-10-02 2003-06-10 Data Fellows Oyj Computer virus screening
US6266774B1 (en) 1998-12-08 2001-07-24 Mcafee.Com Corporation Method and system for securing, managing or optimizing a personal computer
US6499109B1 (en) * 1998-12-08 2002-12-24 Networks Associates Technology, Inc. Method and apparatus for securing software distributed over a network
US6922781B1 (en) 1999-04-30 2005-07-26 Ideaflood, Inc. Method and apparatus for identifying and characterizing errant electronic files
US7089591B1 (en) * 1999-07-30 2006-08-08 Symantec Corporation Generic detection and elimination of marco viruses
US6728886B1 (en) 1999-12-01 2004-04-27 Trend Micro Incorporated Distributed virus scanning arrangements and methods therefor
US6836792B1 (en) 1999-12-03 2004-12-28 Trend Micro Incorporated Techniques for providing add-on services for an email system
US6697950B1 (en) * 1999-12-22 2004-02-24 Networks Associates Technology, Inc. Method and apparatus for detecting a macro computer virus using static analysis
US6738972B1 (en) * 1999-12-30 2004-05-18 Opentv, Inc. Method for flow scheduling
US8176551B1 (en) * 2000-01-27 2012-05-08 Trapware Corporation Detection of observer programs and countermeasures against observer programs
US7908652B1 (en) 2001-12-21 2011-03-15 Trapware Corporation Detection of observers and countermeasures against observers
US6842861B1 (en) * 2000-03-24 2005-01-11 Networks Associates Technology, Inc. Method and system for detecting viruses on handheld computers
US6640317B1 (en) * 2000-04-20 2003-10-28 International Business Machines Corporation Mechanism for automated generic application damage detection and repair in strongly encapsulated application
US20040073617A1 (en) 2000-06-19 2004-04-15 Milliken Walter Clark Hash-based systems and methods for detecting and preventing transmission of unwanted e-mail
GB2357939B (en) * 2000-07-05 2002-05-15 Gfi Fax & Voice Ltd Electronic mail message anti-virus system and method
US7398553B1 (en) * 2000-10-30 2008-07-08 Tread Micro, Inc. Scripting virus scan engine
US6965928B1 (en) * 2001-03-09 2005-11-15 Networks Associates Technology, Inc. System and method for remote maintenance of handheld computers
US7010696B1 (en) 2001-03-30 2006-03-07 Mcafee, Inc. Method and apparatus for predicting the incidence of a virus
WO2002093334A2 (en) * 2001-04-06 2002-11-21 Symantec Corporation Temporal access control for computer virus outbreaks
CN1147795C (zh) * 2001-04-29 2004-04-28 北京瑞星科技股份有限公司 检测和清除已知及未知计算机病毒的方法、系统
US7210041B1 (en) * 2001-04-30 2007-04-24 Mcafee, Inc. System and method for identifying a macro virus family using a macro virus definitions database
US6957423B1 (en) * 2001-05-15 2005-10-18 Xilinx, Inc. Method of inlining a VHDL function call into Verilog
US7917585B2 (en) * 2001-06-21 2011-03-29 Cybersoft, Inc. Apparatus, methods and articles of manufacture for intercepting, examining and controlling code, data and files and their transfer
US7421587B2 (en) * 2001-07-26 2008-09-02 Mcafee, Inc. Detecting computer programs within packed computer files
US7657935B2 (en) 2001-08-16 2010-02-02 The Trustees Of Columbia University In The City Of New York System and methods for detecting malicious email transmission
FR2830638A1 (fr) * 2001-10-05 2003-04-11 France Telecom Procede de detection generique de programmes d'attaque caches dans des chaines de donnees
US20030079142A1 (en) * 2001-10-22 2003-04-24 Aladdin Knowledge Systems Ltd. Classifying digital object security category
US9306966B2 (en) 2001-12-14 2016-04-05 The Trustees Of Columbia University In The City Of New York Methods of unsupervised anomaly detection using a geometric framework
US7225343B1 (en) 2002-01-25 2007-05-29 The Trustees Of Columbia University In The City Of New York System and methods for adaptive model generation for detecting intrusions in computer systems
US7363506B2 (en) * 2002-01-30 2008-04-22 Cybersoft, Inc. Software virus detection methods, apparatus and articles of manufacture
US20030204569A1 (en) * 2002-04-29 2003-10-30 Michael R. Andrews Method and apparatus for filtering e-mail infected with a previously unidentified computer virus
GB2383444B (en) * 2002-05-08 2003-12-03 Gfi Software Ltd System and method for detecting a potentially malicious executable file
US7155742B1 (en) 2002-05-16 2006-12-26 Symantec Corporation Countering infections to communications modules
US7367056B1 (en) 2002-06-04 2008-04-29 Symantec Corporation Countering malicious code infections to computer files that have been infected more than once
US7418732B2 (en) * 2002-06-26 2008-08-26 Microsoft Corporation Network switches for detection and prevention of virus attacks
US7418729B2 (en) * 2002-07-19 2008-08-26 Symantec Corporation Heuristic detection of malicious computer code by page tracking
US7380277B2 (en) * 2002-07-22 2008-05-27 Symantec Corporation Preventing e-mail propagation of malicious computer code
US7478431B1 (en) 2002-08-02 2009-01-13 Symantec Corporation Heuristic detection of computer viruses
US7469419B2 (en) 2002-10-07 2008-12-23 Symantec Corporation Detection of malicious computer code
US7159149B2 (en) * 2002-10-24 2007-01-02 Symantec Corporation Heuristic detection and termination of fast spreading network worm attacks
US7249187B2 (en) 2002-11-27 2007-07-24 Symantec Corporation Enforcement of compliance with network security policies
US7631353B2 (en) * 2002-12-17 2009-12-08 Symantec Corporation Blocking replication of e-mail worms
JP3979285B2 (ja) * 2002-12-17 2007-09-19 株式会社日立製作所 情報処理システム
US20040128379A1 (en) * 2002-12-30 2004-07-01 Jerry Mizell Collecting standard interval metrics using a randomized collection period
US7296293B2 (en) 2002-12-31 2007-11-13 Symantec Corporation Using a benevolent worm to assess and correct computer security vulnerabilities
US6965968B1 (en) 2003-02-27 2005-11-15 Finjan Software Ltd. Policy-based caching
US7203959B2 (en) 2003-03-14 2007-04-10 Symantec Corporation Stream scanning through network proxy servers
US8984644B2 (en) 2003-07-01 2015-03-17 Securityprofiling, Llc Anti-vulnerability system, method, and computer program product
US9100431B2 (en) 2003-07-01 2015-08-04 Securityprofiling, Llc Computer program product and apparatus for multi-path remediation
US20070113272A2 (en) 2003-07-01 2007-05-17 Securityprofiling, Inc. Real-time vulnerability monitoring
US8271774B1 (en) 2003-08-11 2012-09-18 Symantec Corporation Circumstantial blocking of incoming network traffic containing code
US7426574B2 (en) * 2003-12-16 2008-09-16 Trend Micro Incorporated Technique for intercepting data in a peer-to-peer network
WO2005062707A2 (en) 2003-12-30 2005-07-14 Checkpoint Software Technologies Ltd. Universal worm catcher
US20050154601A1 (en) * 2004-01-09 2005-07-14 Halpern Joshua I. Information security threat identification, analysis, and management
WO2005076135A1 (en) * 2004-01-09 2005-08-18 Internet Crimes Group, Inc. Information security threat identification, analysis, and management
US7669059B2 (en) * 2004-03-23 2010-02-23 Network Equipment Technologies, Inc. Method and apparatus for detection of hostile software
US7337327B1 (en) 2004-03-30 2008-02-26 Symantec Corporation Using mobility tokens to observe malicious mobile code
US7533415B2 (en) * 2004-04-21 2009-05-12 Trend Micro Incorporated Method and apparatus for controlling traffic in a computer network
US7484094B1 (en) 2004-05-14 2009-01-27 Symantec Corporation Opening computer files quickly and safely over a network
US7373667B1 (en) 2004-05-14 2008-05-13 Symantec Corporation Protecting a computer coupled to a network from malicious code infections
US7370233B1 (en) 2004-05-21 2008-05-06 Symantec Corporation Verification of desired end-state using a virtual machine environment
US7441042B1 (en) 2004-08-25 2008-10-21 Symanetc Corporation System and method for correlating network traffic and corresponding file input/output traffic
US7690034B1 (en) 2004-09-10 2010-03-30 Symantec Corporation Using behavior blocking mobility tokens to facilitate distributed worm detection
US7533131B2 (en) * 2004-10-01 2009-05-12 Webroot Software, Inc. System and method for pestware detection and removal
US7480683B2 (en) * 2004-10-01 2009-01-20 Webroot Software, Inc. System and method for heuristic analysis to identify pestware
US7565686B1 (en) 2004-11-08 2009-07-21 Symantec Corporation Preventing unauthorized loading of late binding code into a process
WO2006101549A2 (en) 2004-12-03 2006-09-28 Whitecell Software, Inc. Secure system for allowing the execution of authorized computer program code
US7636856B2 (en) * 2004-12-06 2009-12-22 Microsoft Corporation Proactive computer malware protection through dynamic translation
US8104086B1 (en) 2005-03-03 2012-01-24 Symantec Corporation Heuristically detecting spyware/adware registry activity
US8359645B2 (en) * 2005-03-25 2013-01-22 Microsoft Corporation Dynamic protection of unpatched machines
US8516583B2 (en) 2005-03-31 2013-08-20 Microsoft Corporation Aggregating the knowledge base of computer systems to proactively protect a computer from malware
US7603712B2 (en) * 2005-04-21 2009-10-13 Microsoft Corporation Protecting a computer that provides a Web service from malware
US20060253908A1 (en) * 2005-05-03 2006-11-09 Tzu-Jian Yang Stateful stack inspection anti-virus and anti-intrusion firewall system
US20060259971A1 (en) * 2005-05-10 2006-11-16 Tzu-Jian Yang Method for detecting viruses in macros of a data stream
US20060259967A1 (en) * 2005-05-13 2006-11-16 Microsoft Corporation Proactively protecting computers in a networking environment from malware
US20060271597A1 (en) * 2005-05-31 2006-11-30 Microsoft Corporation Code-enabled/code-free files
US20060277183A1 (en) * 2005-06-06 2006-12-07 Tony Nichols System and method for neutralizing locked pestware files
US8452744B2 (en) * 2005-06-06 2013-05-28 Webroot Inc. System and method for analyzing locked files
GB2427048A (en) 2005-06-09 2006-12-13 Avecho Group Ltd Detection of unwanted code or data in electronic mail
US20070006311A1 (en) * 2005-06-29 2007-01-04 Barton Kevin T System and method for managing pestware
US20090144826A2 (en) * 2005-06-30 2009-06-04 Webroot Software, Inc. Systems and Methods for Identifying Malware Distribution
US8984636B2 (en) 2005-07-29 2015-03-17 Bit9, Inc. Content extractor and analysis system
US8272058B2 (en) 2005-07-29 2012-09-18 Bit 9, Inc. Centralized timed analysis in a network security system
US7895651B2 (en) 2005-07-29 2011-02-22 Bit 9, Inc. Content tracking in a network security system
US8060747B1 (en) 2005-09-12 2011-11-15 Microsoft Corporation Digital signatures for embedded code
US7721333B2 (en) * 2006-01-18 2010-05-18 Webroot Software, Inc. Method and system for detecting a keylogger on a computer
US8190902B2 (en) * 2006-02-27 2012-05-29 Microsoft Corporation Techniques for digital signature formation and verification
US8205087B2 (en) * 2006-02-27 2012-06-19 Microsoft Corporation Tool for digitally signing multiple documents
US20070203884A1 (en) * 2006-02-28 2007-08-30 Tony Nichols System and method for obtaining file information and data locations
US8079032B2 (en) * 2006-03-22 2011-12-13 Webroot Software, Inc. Method and system for rendering harmless a locked pestware executable object
US20070226800A1 (en) * 2006-03-22 2007-09-27 Tony Nichols Method and system for denying pestware direct drive access
US8181244B2 (en) * 2006-04-20 2012-05-15 Webroot Inc. Backward researching time stamped events to find an origin of pestware
US20070250818A1 (en) * 2006-04-20 2007-10-25 Boney Matthew L Backwards researching existing pestware
US8201243B2 (en) * 2006-04-20 2012-06-12 Webroot Inc. Backwards researching activity indicative of pestware
US20070261117A1 (en) * 2006-04-20 2007-11-08 Boney Matthew L Method and system for detecting a compressed pestware executable object
US20080010326A1 (en) * 2006-06-15 2008-01-10 Carpenter Troy A Method and system for securely deleting files from a computer storage device
US20070294396A1 (en) * 2006-06-15 2007-12-20 Krzaczynski Eryk W Method and system for researching pestware spread through electronic messages
US20070294767A1 (en) * 2006-06-20 2007-12-20 Paul Piccard Method and system for accurate detection and removal of pestware
US8239915B1 (en) 2006-06-30 2012-08-07 Symantec Corporation Endpoint management using trust rating data
US7802303B1 (en) * 2006-06-30 2010-09-21 Trend Micro Incorporated Real-time in-line detection of malicious code in data streams
US7996903B2 (en) 2006-07-07 2011-08-09 Webroot Software, Inc. Method and system for detecting and removing hidden pestware files
US20080016573A1 (en) * 2006-07-13 2008-01-17 Aladdin Knowledge System Ltd. Method for detecting computer viruses
US20080028462A1 (en) * 2006-07-26 2008-01-31 Michael Burtscher System and method for loading and analyzing files
US8578495B2 (en) * 2006-07-26 2013-11-05 Webroot Inc. System and method for analyzing packed files
US20080028466A1 (en) * 2006-07-26 2008-01-31 Michael Burtscher System and method for retrieving information from a storage medium
US7590707B2 (en) * 2006-08-07 2009-09-15 Webroot Software, Inc. Method and system for identifying network addresses associated with suspect network destinations
US8065664B2 (en) * 2006-08-07 2011-11-22 Webroot Software, Inc. System and method for defining and detecting pestware
US8190868B2 (en) 2006-08-07 2012-05-29 Webroot Inc. Malware management through kernel detection
US8171550B2 (en) * 2006-08-07 2012-05-01 Webroot Inc. System and method for defining and detecting pestware with function parameters
US7769992B2 (en) 2006-08-18 2010-08-03 Webroot Software, Inc. File manipulation during early boot time
US20080127352A1 (en) * 2006-08-18 2008-05-29 Min Wang System and method for protecting a registry of a computer
US9729513B2 (en) 2007-11-08 2017-08-08 Glasswall (Ip) Limited Using multiple layers of policy management to manage risk
GB2444514A (en) 2006-12-04 2008-06-11 Glasswall Electronic file re-generation
US8286246B2 (en) 2007-08-10 2012-10-09 Fortinet, Inc. Circuits and methods for efficient data transfer in a virus co-processing system
US8079084B1 (en) 2007-08-10 2011-12-13 Fortinet, Inc. Virus co-processor instructions and methods for using such
US9100319B2 (en) 2007-08-10 2015-08-04 Fortinet, Inc. Context-aware pattern matching accelerator
US8375449B1 (en) 2007-08-10 2013-02-12 Fortinet, Inc. Circuits and methods for operating a virus co-processor
US8312537B1 (en) * 2008-03-28 2012-11-13 Symantec Corporation Reputation based identification of false positive malware detections
US8239944B1 (en) * 2008-03-28 2012-08-07 Symantec Corporation Reducing malware signature set size through server-side processing
US20100169972A1 (en) * 2008-12-31 2010-07-01 Microsoft Corporation Shared repository of malware data
US11489857B2 (en) 2009-04-21 2022-11-01 Webroot Inc. System and method for developing a risk profile for an internet resource
US20120072988A1 (en) * 2010-03-26 2012-03-22 Telcordia Technologies, Inc. Detection of global metamorphic malware variants using control and data flow analysis
GB201008868D0 (en) 2010-05-27 2010-07-14 Qinetiq Ltd Computer security
US9032526B2 (en) 2011-05-12 2015-05-12 Microsoft Technology Licensing, Llc Emulating mixed-code programs using a virtual machine instance
CN102855432B (zh) * 2011-06-27 2015-11-25 北京奇虎科技有限公司 一种文件、文件夹解锁和删除方法及系统
CN103425927A (zh) * 2012-05-16 2013-12-04 腾讯科技(深圳)有限公司 计算机文档病毒清除装置及清除方法
US9754105B1 (en) 2012-09-25 2017-09-05 Malwarebytes Corporation Preventing the successful exploitation of software application vulnerability for malicious purposes
CN103246847B (zh) * 2013-05-13 2016-03-23 腾讯科技(深圳)有限公司 一种宏病毒查杀的方法和装置
CN103294955B (zh) * 2013-06-28 2016-06-08 北京奇虎科技有限公司 宏病毒查杀方法及系统
GB2518880A (en) 2013-10-04 2015-04-08 Glasswall Ip Ltd Anti-Malware mobile content data management apparatus and method
US9202044B2 (en) 2013-11-21 2015-12-01 The Board Of Regents, The University Of Texas System System and method for retrofitting application code
CN103810428B (zh) * 2014-02-24 2017-05-24 珠海市君天电子科技有限公司 一种宏病毒检测方法及装置
TWI507912B (zh) * 2014-04-03 2015-11-11 Wistron Corp 輸出入重定向方法、輸出入指令虛擬化系統與方法以及其電腦程式產品
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
US9836605B2 (en) 2015-12-08 2017-12-05 Bank Of America Corporation System for detecting unauthorized code in a software application
CN110874472B (zh) * 2018-09-04 2024-02-13 中国信息安全测评中心 一种pe病毒逃逸样本的生成方法和系统
US11574053B1 (en) * 2019-01-04 2023-02-07 Trend Micro Incorporated System and method for detecting malicious scripts
US20220083661A1 (en) * 2020-09-11 2022-03-17 Zscaler, Inc. Utilizing Machine Learning to detect malicious Office documents

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5321840A (en) * 1988-05-05 1994-06-14 Transaction Technology, Inc. Distributed-intelligence computer system including remotely reconfigurable, telephone-type user terminal
US4975950A (en) * 1988-11-03 1990-12-04 Lentz Stephen A System and method of protecting integrity of computer data and software
US5319776A (en) * 1990-04-19 1994-06-07 Hilgraeve Corporation In transit detection of computer virus with safeguard
US5408642A (en) * 1991-05-24 1995-04-18 Symantec Corporation Method for recovery of a computer program infected by a computer virus
DK170490B1 (da) * 1992-04-28 1995-09-18 Multi Inform As Databehandlingsanlæg
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
US5278901A (en) * 1992-04-30 1994-01-11 International Business Machines Corporation Pattern-oriented intrusion-detection system and method
US5550976A (en) * 1992-12-08 1996-08-27 Sun Hydraulics Corporation Decentralized distributed asynchronous object oriented system and method for electronic data management, storage, and communication
JP2501771B2 (ja) * 1993-01-19 1996-05-29 インターナショナル・ビジネス・マシーンズ・コーポレイション 不所望のソフトウェア・エンティティの複数の有効なシグネチャを得る方法及び装置
US5440723A (en) * 1993-01-19 1995-08-08 International Business Machines Corporation Automatic immune system for computers and computer networks
JPH06350784A (ja) * 1993-06-08 1994-12-22 Ricoh Co Ltd ファクシミリ装置
US5448668A (en) * 1993-07-08 1995-09-05 Perelson; Alan S. Method of detecting changes to a collection of digital signals
US5444850A (en) * 1993-08-04 1995-08-22 Trend Micro Devices Incorporated Method and apparatus for controlling network and workstation access prior to workstation boot
US5414833A (en) * 1993-10-27 1995-05-09 International Business Machines Corporation Network security system and method using a parallel finite state machine adaptive active monitor and responder
FR2715788B1 (fr) * 1994-02-01 1996-03-29 Dassault Automatismes Telecomm Communication sur réseau numérique, avec anti-virus.
US5530757A (en) * 1994-06-28 1996-06-25 International Business Machines Corporation Distributed fingerprints for information integrity verification
US5485575A (en) * 1994-11-21 1996-01-16 International Business Machines Corporation Automatic analysis of a computer virus structure and means of attachment to its hosts
US5550984A (en) * 1994-12-07 1996-08-27 Matsushita Electric Corporation Of America Security system for preventing unauthorized communications between networks by translating communications received in ip protocol to non-ip protocol to remove address and routing services information
US5491791A (en) * 1995-01-13 1996-02-13 International Business Machines Corporation System and method for remote workstation monitoring within a distributed computing environment

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7895655B2 (en) 2003-02-26 2011-02-22 Secure Ware Inc. Malicious-process-determining method, data processing apparatus and recording medium
US7827612B2 (en) 2003-02-26 2010-11-02 Secure Ware Inc. Malicious-process-determining method, data processing apparatus and recording medium
JP2006524396A (ja) * 2003-04-17 2006-10-26 ネットワークス アソシエイツ テクノロジー インコーポレイテッド 移動通信フレームワークに使用するためのプラットホーム独立のスキャニングサブシステム
JP2006526222A (ja) * 2003-04-17 2006-11-16 株式会社エヌ・ティ・ティ・ドコモ 移動通信フレームワークにおいてコンテンツ/セキュリティ分析機能にアクセスするためのapiシステム、方法、及びコンピュータプログラム製品
JP2007524902A (ja) * 2003-04-17 2007-08-30 株式会社エヌ・ティ・ティ・ドコモ 移動通信装置を使用してコンテンツ/コンテクストの高感度スキャニングを行うシステム、方法及びコンピュータプログラム製品
US8490183B2 (en) 2004-02-05 2013-07-16 Trend Micro Incorporated Security ensuring by program analysis on information device and transmission path
JP2006127498A (ja) * 2004-10-29 2006-05-18 Microsoft Corp 文書へのアンチウイルスマニフェストのスタンピング
JP2006127497A (ja) * 2004-10-29 2006-05-18 Microsoft Corp ユーザ変更可能ファイルの効率的なホワイトリスティング
US10043008B2 (en) 2004-10-29 2018-08-07 Microsoft Technology Licensing, Llc Efficient white listing of user-modifiable files
JP2007080281A (ja) * 2005-09-13 2007-03-29 Cloudmark Inc 実行可能コードのためのシグネチャ
JP4512083B2 (ja) * 2006-12-20 2010-07-28 トレンドマイクロ株式会社 ネットワークを介して通信端末に提供されるプログラムに対する伝送経路上でのセキュリティの確保
JP2007122745A (ja) * 2006-12-20 2007-05-17 Trend Micro Inc ネットワークを介して通信端末に提供されるプログラムに対する伝送経路上でのセキュリティの確保
US8429749B2 (en) 2007-03-27 2013-04-23 National Institute Of Advanced Industrial Science And Technology Packet data comparator as well as virus filter, virus checker and network system using the same
WO2014049758A1 (ja) * 2012-09-26 2014-04-03 富士通株式会社 情報処理装置、情報処理方法、及び情報処理プログラム
JPWO2014049758A1 (ja) * 2012-09-26 2016-08-22 富士通株式会社 情報処理装置、情報処理方法、及び情報処理プログラム
US9699210B2 (en) 2012-09-26 2017-07-04 Fujitsu Limited Data processing device that executes virus countermeasure processing, data processing method, and recording medium storing a data processing program
WO2020003959A1 (ja) * 2018-06-27 2020-01-02 株式会社プロット 電子ファイルの無害化処理プログラム、電子ファイルの無害化処理方法および記録媒体
JP2021082959A (ja) * 2019-11-20 2021-05-27 コニカミノルタ株式会社 ジョブ制御モジュール、画像形成装置
JP7380125B2 (ja) 2019-11-20 2023-11-15 コニカミノルタ株式会社 ジョブ制御モジュール、画像形成装置

Also Published As

Publication number Publication date
AU4487297A (en) 1998-04-24
WO1998014872A1 (en) 1998-04-09
JP4372228B2 (ja) 2009-11-25
US5951698A (en) 1999-09-14

Similar Documents

Publication Publication Date Title
JP2001508564A (ja) マクロ中のウイルスの検出および除去のためのシステム、装置および方法
US7636945B2 (en) Detection of polymorphic script language viruses by data driven lexical analysis
CN101438529B (zh) 经由动态转换的主动计算机恶意软件保护
Nachenberg Computer virus-antivirus coevolution
CN103761475B (zh) 检测智能终端中恶意代码的方法及装置
US5485575A (en) Automatic analysis of a computer virus structure and means of attachment to its hosts
US7478431B1 (en) Heuristic detection of computer viruses
US7367057B2 (en) Processor based system and method for virus detection
US8117433B2 (en) Method and apparatus to prevent vulnerability to virus and worm attacks through instruction remapping
US5822517A (en) Method for detecting infection of software programs by memory resident software viruses
US7934197B2 (en) Maintaining code integrity in a central software development system
KR100503387B1 (ko) 악성 암호화 스크립트에 대한 분석 및 해독 방법
KR19990044887A (ko) 다형 및 비-다형 마크로 바이러스의 자동적인 샘플 생성
WO2015101096A1 (zh) 检测智能终端中恶意代码的方法及装置
CN100485703C (zh) 一种计算机恶意代码处理方法和系统
US20030033536A1 (en) Virus scanning on thin client devices using programmable assembly language
US20100262584A1 (en) Disinfecting a file system
KR20030085071A (ko) 악의적인 컴퓨터 프로그램에 의하여 손상된 컴퓨터시스템의 복구 시스템 및 방법
WO2005076101A2 (en) System and method for securing computers against computer virus
JPH1049521A (ja) プレーンテキスト情報に識別情報を添加する方法及びそのための装置
RU2427890C2 (ru) Система и способ сравнения файлов на основе шаблонов функциональности
US7283993B2 (en) Methods, systems, and media for handling errors in script files
Naidu et al. Needleman-wunsch and smith-waterman algorithms for identifying viral polymorphic malware variants
Naidu et al. A syntactic approach for detecting viral polymorphic malware variants
US20030115446A1 (en) System and method for verifying database security across multiple platforms

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040927

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070911

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20071207

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071219

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081014

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081203

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090128

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090528

A072 Dismissal of procedure [no reply to invitation to correct request for examination]

Free format text: JAPANESE INTERMEDIATE CODE: A072

Effective date: 20090707

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: 20090825

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: 20090902

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

Free format text: PAYMENT UNTIL: 20120911

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130911

Year of fee payment: 4

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

EXPY Cancellation because of completion of term