JP2003186687A - Method and apparatus for virus detection - Google Patents

Method and apparatus for virus detection

Info

Publication number
JP2003186687A
JP2003186687A JP2001382592A JP2001382592A JP2003186687A JP 2003186687 A JP2003186687 A JP 2003186687A JP 2001382592 A JP2001382592 A JP 2001382592A JP 2001382592 A JP2001382592 A JP 2001382592A JP 2003186687 A JP2003186687 A JP 2003186687A
Authority
JP
Japan
Prior art keywords
virus
risk
weight
code
database
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
JP2001382592A
Other languages
Japanese (ja)
Other versions
JP3992136B2 (en
Inventor
Michimitsu Hattori
進実 服部
Yasushi Sengoku
靖 千石
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.)
Kanazawa Institute of Technology (KIT)
Original Assignee
Kanazawa Institute of Technology (KIT)
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 Kanazawa Institute of Technology (KIT) filed Critical Kanazawa Institute of Technology (KIT)
Priority to JP2001382592A priority Critical patent/JP3992136B2/en
Publication of JP2003186687A publication Critical patent/JP2003186687A/en
Application granted granted Critical
Publication of JP3992136B2 publication Critical patent/JP3992136B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

<P>PROBLEM TO BE SOLVED: To detect new or varietal computer viruses. <P>SOLUTION: A microextraction unit 14 extracts micro information from an inspection object file 12 and re-builds to a source code. A trace detection unit 16 traces the re-built source code of the macro one line by one line, to detect whether or not the characteristic code of a virus is included. A risk degree calculating unit 18 calculates the degree of risk of the macro, based on weighting of the feature code extracted by the trace detection unit 16 and judges whether the macro is a virus. When a virus is detected, a weighing updating unit 24 of a database updating unit 20 updates the weighting of a feature code record 28 of a virus database 26 for the feature code extracted by the trace detection unit 16. <P>COPYRIGHT: (C)2003,JPO

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】この発明はコンピュータウイ
ルスの検出技術、とくにコンピュータのプログラムファ
イルやデータファイルに感染するウイルスを検出する方
法、装置およびシステムに関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a computer virus detection technique, and more particularly to a method, device and system for detecting a virus that infects a computer program file or data file.

【0002】[0002]

【従来の技術】情報処理振興事業協会(IPA)が公表
している国内のウイルス被害届出状況によると、199
7年を境に急激に被害が増加しだしたことがわかる。1
990年から1996年の間では、年間1,000件を
越した年はわずか一年だけであったのに対し、1997
年からは2,000件を下回ることは無くなり、200
0年では11,109件と加速的に増加している。
2. Description of the Related Art According to the domestic virus damage notification status announced by Information-technology Promotion Agency (IPA), 199
It can be seen that the damage began to increase rapidly after seven years. 1
Between 990 and 1996, the number of cases exceeding 1,000 a year was only one year, whereas 1997
Since the year, the number of cases has not fallen below 2,000, 200
In 0 years, the number is increasing to 11,109.

【0003】このようにウイルス被害件数が急増してき
た要因は、パソコンやネットワークが広く普及したこと
による感染機会の増加や、個人や企業のウイルス対策意
識が低いことの他、ウイルス対策の技術的な面にもその
要因があるといえる。なぜなら、1997年の被害の急
増はマクロウイルスという新たな種のウイルスの出現に
よるものであり、近年突発的に被害が大きく増えたの
も、VBS(ビジュアルベーシック(商標)スクリプ
ト)ウイルスやWindows(商標)ウイルスなどの
新種の出現によるものだからである。
The reason for the rapid increase in the number of virus damages is that the number of infection opportunities increases due to the widespread use of personal computers and networks, that individuals and companies have low awareness of virus countermeasures, and that they are technically related to virus countermeasures. It can be said that there is also a factor in that aspect. This is because the rapid increase in damage in 1997 was due to the emergence of a new type of virus, the macrovirus. This is due to the emergence of new species such as.

【0004】[0004]

【発明が解決しようとする課題】このように、従来のウ
イルス対策は非常に新種ウイルスに対して弱いことを意
味しており、これはウイルス検出方法に問題があるとい
える。従来のウイルス検出方法は、過去に発見されたウ
イルスに固有のコードとのパターンマッチングに依存し
ており、新たなウイルスが出現するたびにウイルス定義
ファイルを更新する手間があるため、ユーザの対応に遅
れが生じる。
As described above, the conventional anti-virus means that it is very weak against the new virus, which means that there is a problem in the virus detection method. Conventional virus detection methods rely on pattern matching with codes unique to viruses discovered in the past, and it takes time and effort to update the virus definition file each time a new virus appears. There will be a delay.

【0005】本発明はこうした状況に鑑みてなされたも
のであり、新種ウイルスまたは変種ウイルスを効果的に
検出するウイルス検出技術を提供することを目的とす
る。
The present invention has been made in view of such circumstances, and an object thereof is to provide a virus detection technique for effectively detecting a new virus or a variant virus.

【0006】[0006]

【課題を解決するための手段】本発明のある態様はウイ
ルス検出方法に関する。この方法は、ウイルス特有の動
作に係る特徴コードに危険性を示す重みを関連づけてデ
ータベースに登録する工程と、検査対象ファイルをトレ
ースして、前記データベースに登録された前記特徴コー
ドを収集する工程と、前記収集された特徴コードの組み
合わせにもとづいて、各特徴コードに関連づけられた前
記重みを評価して、前記検査対象ファイルの危険度を算
出する工程とを含む。ここで検査対象ファイルはプログ
ラムファイルと、文書やマクロなどのデータファイルと
を含む。
One aspect of the present invention relates to a virus detection method. This method includes a step of associating a characteristic code related to a virus-specific operation with a weight indicating a risk in a database, and a step of tracing a file to be inspected to collect the characteristic code registered in the database. Calculating the risk of the inspection target file by evaluating the weight associated with each feature code based on the collected combination of feature codes. Here, the files to be inspected include program files and data files such as documents and macros.

【0007】前記収集された特徴コードに関して、前記
データベースに格納された前記重みを更新する工程をさ
らに含んでもよい。前記重みの更新は、前記検査対象フ
ァイルにウイルスが検出された場合になされてもよい。
前記検査対象ファイルにウイルスが含まれるかどうかの
判定を外部から与えてもよい。また前記ウイルスの検出
は、前記危険度にもとづいてなされてもよい。たとえば
危険度が所定の基準値を超えた場合に、前記検査対象フ
ァイルにウイルスが含まれると判定してもよい。
The method may further include the step of updating the weights stored in the database with respect to the collected characteristic codes. The updating of the weight may be performed when a virus is detected in the inspection target file.
The determination as to whether or not the inspection target file contains a virus may be given from the outside. In addition, the detection of the virus may be performed based on the risk level. For example, when the risk level exceeds a predetermined reference value, it may be determined that the inspection target file contains a virus.

【0008】前記収集された特徴コードを階層的なレベ
ルに分類した上でレベルによって前記重みの評価を異な
らせて前記危険度を算出してもよい。階層的なレベル
は、たとえばモジュール、サブルーチン、命令コード、
およびオペランドといった処理コードの階層構造のレベ
ルであり、モジュール、サブルーチンのような処理ルー
チン単位レベルと、命令コード、オペランドのような下
位のプリミティブなコマンドレベルとで重みの評価の仕
方を異ならせ、その評価の組み合わせで前記危険度を算
出してもよい。
The risk may be calculated by classifying the collected characteristic codes into hierarchical levels and then varying the evaluation of the weight depending on the level. Hierarchical levels include modules, subroutines, opcodes,
And the level of the hierarchical structure of the processing code such as the operand, the method of evaluating the weight is made different between the processing routine unit level such as the module and the subroutine and the lower primitive command level such as the instruction code and the operand. The risk may be calculated by a combination of evaluations.

【0009】本発明の別の態様はウイルス検査装置に関
する。この装置は、ウイルス特有の動作に係る特徴コー
ドに危険性を示す重みを関連づけて格納したデータベー
スと、検査対象ファイルをトレースして、前記データベ
ースに登録された前記特徴コードを収集し、収集した特
徴コードの組み合わせを動作パターンとして特定する検
査部と、前記収集した特徴コードの組み合わせと前記重
みにもとづいて前記動作パターンの危険度を算出する危
険度算出部とを含む。
Another aspect of the present invention relates to a virus inspection device. This device traces a database in which a feature code relating to a virus-specific operation is associated with a weight indicating a risk and a file to be inspected, collects the feature code registered in the database, and collects the feature. An inspection unit that identifies a combination of codes as an operation pattern, and a risk degree calculation unit that calculates a risk degree of the operation pattern based on the collected combination of characteristic codes and the weight are included.

【0010】前記危険度に応じて、前記動作パターンを
構成する前記特徴コードに関して、前記データベースに
格納された前記重みを更新する更新部をさらに含んでも
よい。たとえば前記危険度が所定の基準値以上である場
合に、前記動作パターンをウイルスと判定して、前記重
みを更新するが、前記危険度が基準値に満たない場合に
は、前記重みを更新しないようにしてもよい。
An update unit may be further included for updating the weight stored in the database for the characteristic code forming the operation pattern according to the degree of risk. For example, when the risk is equal to or higher than a predetermined reference value, the operation pattern is determined to be a virus and the weight is updated, but when the risk is less than the reference value, the weight is not updated. You may do it.

【0011】前記データベースは、ウイルスの動作パタ
ーンを格納し、前記更新部は、前記特定された動作パタ
ーンを前記データベースに格納されたウイルスの動作パ
ターンと比較して、その類似度に応じて、前記特定され
た動作パターンを構成する前記特徴コードの重みを更新
してもよい。また前記特定された動作パターンの危険度
が基準値以上である場合、この動作パターンを新たなウ
イルスの動作パターンとして前記データベースに格納し
てもよい。
The database stores an operation pattern of a virus, and the updating unit compares the specified operation pattern with an operation pattern of the virus stored in the database and, in accordance with the similarity, You may update the weight of the said characteristic code which comprises the specified operation pattern. Further, when the risk level of the specified operation pattern is equal to or higher than the reference value, this operation pattern may be stored in the database as a new virus operation pattern.

【0012】前記検査部は、前記収集した特徴コードを
処理ルーチン単位とプリミティブなコマンド単位とに階
層分けして分類し、前記危険度算出部は前記階層によっ
て前記重みの評価を異ならせて前記危険度を算出しても
よい。また前記危険度算出部は、前記収集した特徴コー
ドを命令と操作対象の種別により区別し、その命令と操
作対象の種別の組み合わせによって前記重みの評価を異
ならせて前記危険度を算出してもよい。たとえば、ファ
イルの自動オープンの命令のように、命令自体にリスク
を伴うものや、システムフォルダ内のファイル、テンプ
レートファイル、実行形式のファイルなどに対するアク
ションのように、操作対象にリスクを伴うものがあり、
命令と操作対象の種別の組み合わせによって重みの評価
の仕方を変えてもよい。
The inspection unit classifies the collected feature codes into processing routine units and primitive command units and classifies them, and the risk degree calculation unit changes the evaluation of the weights according to the hierarchy to classify the risk. The degree may be calculated. Further, the risk degree calculation unit may distinguish the collected characteristic codes by the type of the instruction and the operation target, and may calculate the risk degree by changing the evaluation of the weight depending on the combination of the instruction and the operation target type. Good. For example, some commands have risks, such as automatic file opening commands, and some actions have risks, such as actions for files in system folders, template files, and executable files. ,
The method of evaluating the weight may be changed depending on the combination of the command and the type of the operation target.

【0013】本発明のさらに別の態様はコンピュータプ
ログラムに関する。このプログラムは、ウイルス特有の
動作に係る特徴コードに危険性を示す重みを関連づけて
登録したデータベースを参照して、検査対象ファイルか
ら前記データベースに登録された前記特徴コードを収集
する工程と、前記収集された特徴コードの組み合わせに
もとづいて、各特徴コードに関連づけられた前記重みを
評価して、前記検査対象ファイルの危険度を算出する工
程とをコンピュータに実行させる。
Yet another aspect of the present invention relates to a computer program. This program refers to a database in which a characteristic code relating to a virus-specific operation is associated with a weight indicating a risk, and collects the characteristic code registered in the database from an inspection target file; Calculating the degree of risk of the inspection target file by evaluating the weight associated with each feature code based on the combination of the selected feature codes.

【0014】前記データベースはサーバに設けられ、ネ
ットワークを介して前記データベースを参照してもよ
い。また当該プログラムがインストールされたユーザ端
末と前記サーバを含むシステムが構成されてもよい。ま
た当該プログラムはネットワーク上のユーザ端末を巡回
してウイルス検査を行うモバイルエージェントとして構
成されてもよい。
The database may be provided in a server, and the database may be referred to via a network. A system including a user terminal in which the program is installed and the server may be configured. Further, the program may be configured as a mobile agent that patrolles a user terminal on the network and inspects for viruses.

【0015】本発明のさらに別の態様もウイルス検出方
法に関する。この方法は、マクロウイルス特有の動作を
とるために必要なコードと、そのコードがウイルスとし
て使用された場合の危険性を示す値を一つのレコードと
してデータベースに登録する工程と、マクロを一行ずつ
トレースし、前記登録したコードを収集し、コードの組
み合わせを記録する工程と、収集したコードの組み合わ
せから、各重みを基にしてウイルスであるかどうかの判
断値となる危険度を算出する工程と、危険度が基準とな
る値を超えたとき、そのマクロはウイルスであると判断
する工程と、ウイルスを検出した場合、収集したコード
を基に重みを増減させて前記データベースを更新する工
程とを含む。前記更新する工程は、過去に検出したウイ
ルスとパターン比較を行い、類似点が多ければ、収集し
たコードの重みを増加させてもよい。
Yet another aspect of the present invention also relates to a virus detection method. This method is to register the code necessary to take the behavior peculiar to macro viruses and the value indicating the risk when the code is used as a virus as one record in the database, and trace the macro line by line. Then, collecting the registered codes, recording a combination of codes, and calculating a risk degree that is a judgment value of whether or not a virus is based on each weight from the combination of collected codes, When the risk exceeds a reference value, the macro includes a step of judging that the macro is a virus, and when a virus is detected, a step of updating the database by increasing or decreasing the weight based on the collected code. . In the updating step, pattern comparison may be performed with a virus detected in the past, and if there are many similarities, the weight of the collected code may be increased.

【0016】なお、以上の構成要素の任意の組み合わ
せ、本発明の表現を方法、装置、サーバ、システム、コ
ンピュータプログラム、記録媒体などの間で変換したも
のもまた、本発明の態様として有効である。
It should be noted that any combination of the above components, and the expression of the present invention converted between a method, a device, a server, a system, a computer program, a recording medium, etc. are also effective as an aspect of the present invention. .

【0017】[0017]

【発明の実施の形態】本発明では、新種ウイルスまたは
変種ウイルスを効果的に検出することを目的とし、新種
ウイルス検出に適すとされるヒューリスティック検査法
の概念を取り入れたウイルス検出システムを提案、構築
する。また、実施の形態では新種、変種ウイルスの多さ
と、この先感染機会が増えるであろうことからマクロウ
イルスに対象を絞っている。
BEST MODE FOR CARRYING OUT THE INVENTION The present invention proposes and constructs a virus detection system for the purpose of effectively detecting a new virus or variant virus, which incorporates the concept of a heuristic test method suitable for detecting a new virus. To do. Further, in the embodiments, the macro viruses are targeted because of the large number of new and variant viruses and the possibility of future infection.

【0018】まず検査対象としたマクロウイルスについ
て、マクロウイルスの特徴、感染メカニズム、およびマ
クロウイルス検出方法を述べる。
First, regarding the macro virus to be inspected, the features of the macro virus, the infection mechanism, and the macro virus detection method will be described.

【0019】マクロウイルスは、文書ファイルなどのデ
ータファイルに付加しているマクロ部分に感染するウイ
ルスである。コンピュータで扱うファイルは大きく分け
ると「プログラムファイル」と「データファイル」の2
種類があり、従来のウイルスはデータファイルには感染
しないという定説があったがマクロウイルスの登場によ
り覆されている。現在、マクロ機能を持つアプリケーシ
ョンプログラムは多数存在するが、中でもシェアが大き
く、マクロ機能に制限が少なく安全性が低いものはウイ
ルス製作者の標的にされている。また、OLE(Object
Linking and Embedding)オートメーション機能やDD
E(Dynamic Data Exchange)機能を使って、異なるア
プリケーションプログラム間の感染が可能であり、これ
により感染力の非常に強いウイルスを出現させる結果と
なっている。
The macro virus is a virus that infects a macro part added to a data file such as a document file. The files handled by a computer are roughly divided into "program files" and "data files".
There is a kind, and there was a dogma that conventional viruses do not infect data files, but it has been overturned by the advent of macro viruses. Currently, there are many application programs that have macro functions, but among them, those with a large market share, limited macro functions, and low security are targeted by virus makers. In addition, OLE (Object
Linking and Embedding) Automation function and DD
Infection between different application programs is possible using the E (Dynamic Data Exchange) function, which results in the emergence of a virus with a very strong infectivity.

【0020】マクロウイルスはその作成が非常に容易で
あるということも重要な点である。従来のウイルスと比
較するとはるかに多くの新種、変種が存在するのはこの
ためである。従来のウイルスの作成には、アセンブラな
どの低級言語によるプログラミングやOSの知識などが
必要であったが、マクロウイルスの場合は、マクロ言語
そのものかビジュアルベーシック(Visual Basic)(商
標)についての知識をある程度持っていれば十分であ
る。
It is also important that macroviruses are very easy to make. This is why there are far more new species and variants than conventional viruses. In the past, creating a virus required programming in a low-level language such as assembler and knowledge of the OS, but in the case of a macro virus, knowledge of the macro language itself or Visual Basic (trademark) is required. It is enough to have some.

【0021】マクロウイルス自体はデータファイルであ
るため、マクロを動作させるアプリケーションを介して
感染や発病をする。以下にマクロウイルスが感染を広げ
ていく流れを示す。 (1)電子メールやダウンロードにより外部からコンピ
ュータにウイルスが侵入する。 (2)ファイルを開くためにアプリケーションプログラ
ムを起動する。 (3)アプリケーションプログラムがファイルを読込み
マクロを実行する。 (4)ウイルスマクロが実行されると、標準テンプレー
トファイルに自分自身のコピーを書込む。 (5)その後、そのアプリケーションプログラムに読込
まれたファイルには、ウイルスに感染したテンプレート
が適応され、そのファイルのマクロもウイルスとなる。
Since the macro virus itself is a data file, it infects and becomes infected via an application that operates the macro. The flow of macro viruses spreading infection is shown below. (1) A virus invades a computer from the outside by e-mail or download. (2) Launch the application program to open the file. (3) The application program reads the file and executes the macro. (4) When the virus macro is executed, it writes a copy of itself in the standard template file. (5) After that, a template infected with a virus is applied to the file read by the application program, and the macro of the file also becomes a virus.

【0022】先に述べたように、マクロウイルスには非
常に多くの変種ウイルスが存在しており、従来の単にコ
ードを比較するだけのウイルス検出方法では、全ての変
種ウイルスを捕らえることは困難である。
As described above, there are a large number of variant viruses in macroviruses, and it is difficult to catch all variant viruses by conventional virus detection methods that merely compare codes. is there.

【0023】そこで、本実施の形態ではマクロウイルス
が感染を広げるために標準テンプレートに必ず自分自身
のコピーを書込むことなど、マクロウイルスが特有の動
作パターンを持つことに着目し、これらの動作パターン
を捕らえることでマクロウイルスを検出する。また本実
施の形態では、このマクロウイルス特有の動作パターン
を捕らえるために、これから述べるヒューリスティック
検査法の概念を取り入れている。
Therefore, in the present embodiment, attention is paid to the fact that the macrovirus has a unique operation pattern such as writing a copy of itself in the standard template in order to spread the infection, and these operation patterns are considered. To detect macro viruses. Further, in the present embodiment, the concept of the heuristic inspection method to be described below is introduced in order to capture the operation pattern peculiar to the macro virus.

【0024】ヒューリスティック検査法というのは、検
査対象のプログラムの中からコンピュータウイルス特有
の動作パターンに必要となるコードを収集し、そのプロ
グラム中にどれだけそのコードが含まれるか、そのコー
ドがウイルスである可能性はどれだけあるかを、ウイル
ス検出システム自身に試行錯誤させてウイルスであるか
どうかを判断させる技術である。
The heuristic inspection method is to collect the code required for the operation pattern peculiar to the computer virus from the program to be inspected, how much the code is included in the program, and the code is a virus. It is a technology that allows the virus detection system itself to make trial and error to determine whether there is a possibility or not, whether or not it is a virus.

【0025】この技術を使えば従来のコード比較による
ウイルス検出とは違い、新種ウイルスが出現する度にウ
イルス定義ファイルを更新する手間が無くなり、対応の
遅れをなくすことができる。また、ウイルスの特性だけ
を取り上げるので、新種や変種ウイルスの検出には最適
である。
By using this technique, unlike the conventional virus detection by code comparison, it is not necessary to update the virus definition file each time a new virus appears, and it is possible to eliminate the delay in response. Moreover, since it only deals with the characteristics of viruses, it is suitable for detecting new and variant viruses.

【0026】本実施の形態に係るウイルス検出システム
ではヒューリスティック検査法の概念を取り入れ以下の
ようにしてウイルス特有の動作パターンを捕らえ、ウイ
ルスであるかどうかの判定をしている。 (1)マクロウイルス特有の動作をとるために必要なコ
ードと、そのコードがウイルスとして使用された場合の
危険性を示す値(以下、重みという)などを1レコードと
してデータベースに登録する。 (2)マクロを一行ずつトレースし、登録したコードを
収集する。このときコードがどのように組み合わさって
いたのかを記録する。 (3)収集したコードの組み合わせから、各重みを基に
してウイルスであるかどうかの判断値となる危険度を算
出する。 (4)危険度が基準となる値を超えたとき、そのマクロ
はウイルスであると判断する。 (5)ウイルスを検出した場合、このとき収集したコー
ドや、過去にウイルスを検出した状態を基に重みを増減
させてデータベースを更新する。
In the virus detection system according to this embodiment, the concept of the heuristic inspection method is introduced, and the operation pattern peculiar to the virus is captured in the following manner to determine whether or not it is a virus. (1) A code necessary for taking an operation peculiar to a macro virus and a value (hereinafter, referred to as a weight) indicating a risk when the code is used as a virus are registered as one record in the database. (2) Trace the macro line by line and collect the registered code. At this time, record how the codes were combined. (3) From the collected code combinations, the degree of risk, which is a judgment value as to whether a virus is present, is calculated based on each weight. (4) When the risk level exceeds the standard value, the macro is judged to be a virus. (5) When a virus is detected, the database is updated by increasing or decreasing the weight based on the code collected at this time and the state of the virus being detected in the past.

【0027】図1に示すように、本ウイルス検出システ
ムは4つの処理ルーチンで構成されている。各ルーチン
の働きとそれらの連携について述べる。
As shown in FIG. 1, the virus detection system is composed of four processing routines. The function of each routine and their cooperation are described.

【0028】1.マクロ抜き出し処理ルーチン このルーチンでは、マクロを含むファイルからマクロの
みを抜きだす処理を行う。マクロをアプリケーションを
介さずに読むにはOLE2の複合ファイルの仕組みや構
造化記憶について理解する必要がある。図2に示すよう
に、OLE2の複合ファイルはファイル内の構造がファ
イルシステムのようになっており、ディレクトリに相当
するストレージとファイルに相当するストリ−ムで構成
される。マクロや特にVBA(Visual Basic For Appli
cation)を使用しているファイルでは、それを扱うスト
リームを容易に特定することができるので、これを利用
してマクロを再構築する。
1. Macro Extraction Processing Routine This routine extracts only macros from a file containing macros. In order to read macros without using an application, it is necessary to understand the mechanism of OLE2 composite files and structured storage. As shown in FIG. 2, the OLE2 composite file has a file system structure like a file system, and is composed of a storage corresponding to a directory and a stream corresponding to a file. Macros and especially VBA (Visual Basic For Appli)
For a file that uses cation), the stream that handles it can be specified easily, so this is used to reconstruct the macro.

【0029】ストリームに格納されているマクロの情報
は、命令や、変数名を文字列として格納するデータ群
や、それをどのように配置するかを表すデータ群で構成
されている。このままでは、次のマクロのトレース処理
を効率よく行えないため、一度マクロをトレースしやす
い形態に再構築する。図3は、マクロを構成する文字列
データ群を格納するストリームの一部である。これを規
則に従い再構築しテキストに書き出したのが図4であ
る。
The macro information stored in the stream is composed of a command, a data group that stores variable names as a character string, and a data group that shows how to arrange them. As it is, the trace processing of the next macro cannot be performed efficiently, so the macro is once reconstructed into a form that is easy to trace. FIG. 3 is a part of a stream storing a character string data group forming a macro. This is reconstructed according to the rules and written out as text in Fig. 4.

【0030】2.マクロトレース処理ルーチン マクロを一行ずつトレースしながら、データベースに登
録した特徴コードを検査していく。ここでいう特徴コー
ドとは、ウイルスの自己伝染、発病、潜伏機能を実行す
るために使われるであろうコードであり、データベース
にはこの特徴コードとそれに対応した重みを記録してお
く。レコードの詳細については後述の学習手法で説明す
る。
2. Macro trace processing routine The feature code registered in the database is inspected while tracing the macro line by line. The feature code mentioned here is a code that will be used to execute the virus auto-infection, disease onset, and latent functions. The feature code and the weight corresponding to it are recorded in the database. Details of the record will be described in a learning method described later.

【0031】特徴コードが発見された場合は、図5に示
す4つのレベルに分類してそれぞれの重みを危険度算出
ルーチンに送る。すなわちモジュールレベル、サブルー
チンレベル、命令コードレベル、および引数(以下、オ
ペランドともいう)レベルの4つの階層化されたレベル
である。コードがどのレベルであるかの判断はマクロを
再構築する際に得た情報を利用する。モジュールレベル
とサブルーチンレベルでは、その名前によってウイルス
活動のトリガーとしての働きをし、命令コードレベルと
引数レベルでは、その組み合わせによって大きくウイル
スである危険度が変わる。
When the characteristic code is found, it is classified into four levels shown in FIG. 5 and the respective weights are sent to the risk degree calculation routine. That is, there are four hierarchical levels of a module level, a subroutine level, an instruction code level, and an argument (hereinafter, also referred to as an operand) level. The level of code is determined by using the information obtained when reconstructing the macro. At the module level and subroutine level, the name acts as a trigger for virus activity, and at the instruction code level and argument level, the risk of being a virus greatly changes depending on the combination.

【0032】3.危険度算出ルーチン 危険度はそのままウイルスらしさを表し、基準値以上の
ものをウイルスであると判断する。危険度は、先のトレ
ース処理(以下、トレース検査ともいう)で収集した重
みを基に以下のような流れで算出する。 (1)まず、モジュールレベルの重みが得られるのでこ
れを記憶する。 (2)次にサブルーチンレベルの重みが得られるので、
ここでウイルス活動のトリガーになり得ないかをモジュ
ールレベルの重みと合わせて算出し、その値をAとす
る。 (3)命令コードレベルの重みを得たときに、引数レベ
ルの重みが同時に得られていれば、その組み合わせから
ウイルスの行動に対する値Bを算出する。引数レベルの
重みが無い場合は、命令コードレベルの重みをBとす
る。 (4)マクロをトレース中にサブルーチンの終了を検出
した時点で、AとBの組み合わせから危険度を算出す
る。全てのサブルーチンについて危険度を算出し、一番
高い危険度をそのマクロの危険度とする。
3. Danger degree calculation routine The degree of danger expresses the virus-likeness as it is, and those above the reference value are judged to be viruses. The risk level is calculated in the following flow based on the weights collected in the previous trace processing (hereinafter, also referred to as trace inspection). (1) First, a module-level weight is obtained and stored. (2) Next, since the subroutine level weight is obtained,
Here, whether or not the virus activity cannot be triggered is calculated in combination with the module level weight, and the value is set to A. (3) When the weight of the instruction level is obtained at the same time as the weight of the instruction code level, the value B for the action of the virus is calculated from the combination. If there is no argument level weight, the instruction code level weight is B. (4) When the end of the subroutine is detected while tracing the macro, the risk is calculated from the combination of A and B. The risk level is calculated for all subroutines, and the highest risk level is used as the macro risk level.

【0033】4.データベース更新ルーチン このルーチンでは、データベースに登録した重みを増減
させる。重みは、ウイルスであるかどうかを判定するた
めの基になる重要な値であり、この重みを巧く増減させ
ることで、ウイルス検出精度の向上が期待できる。
4. Database Update Routine This routine increases or decreases the weight registered in the database. The weight is an important value that serves as a basis for determining whether or not it is a virus, and it is expected to improve the accuracy of virus detection by skillfully increasing or decreasing the weight.

【0034】重みを増減させるタイミングは、ウイルス
を検出した時とし、そのコードがウイルスに使われた頻
度、時間間隔を考慮して増減させるが、重みの減少させ
すぎによる検出ミスは避ける必要がある。その対策とし
ては重みの下限を設定し、重みを増加させる量よりも、
減少させる量を少なくしている。
The timing for increasing / decreasing the weight is when a virus is detected, and the code is increased / decreased in consideration of the frequency and time interval used by the virus, but it is necessary to avoid a detection error due to the excessive reduction of the weight. . As a countermeasure, set the lower limit of the weight, rather than the amount of increasing the weight,
The amount of reduction is reduced.

【0035】また、後述の学習手法で説明するが、過去
にウイルスを検出した時のマクロのパターンもデータベ
ースに記録するため、マクロトレース処理ルーチンから
送られたコードも全てデータベースに記録する。
As will be described later with reference to a learning method, since the macro patterns at the time of detecting a virus in the past are also recorded in the database, all the codes sent from the macro trace processing routine are also recorded in the database.

【0036】次に学習手法について詳細に説明する。本
ウイルス検出システムでは、マクロウイルスの本質的な
動作パターンを突き詰めていくことが必要不可欠であ
り、そのために過去にウイルスを検出した経験を反映さ
せる方法をとっている。また、ここでいう学習とは重み
を適切な値に近づけるもので、データベースの自動更新
がこれにあたる。
Next, the learning method will be described in detail. In this virus detection system, it is indispensable to investigate the essential operation patterns of macro viruses, and for that reason, we have adopted a method to reflect the experience of detecting viruses in the past. Further, the learning referred to here is to bring the weight close to an appropriate value, which corresponds to automatic updating of the database.

【0037】まずデータベースの構成を説明する。デー
タベースは2つのテーブルからなり、1つは、特徴コー
ドと重みの対を格納し、1つは過去に検出したウイルス
マクロをパターン化したものを格納している。マクロの
パターン化は、特徴コードに通し番号を付け、それを集
めたものである。レコードの構成は次のようになってい
る。
First, the structure of the database will be described. The database consists of two tables, one stores a pair of feature code and weight, and one stores a pattern of virus macros detected in the past. Macro patterning is a serialization of feature codes and a collection of them. The structure of the record is as follows.

【0038】特徴コード用テーブルのレコード (1)通し番号 (2)基本値 (3)付加値 (4)特徴コードの文字列 (5)出現頻度Record of table for feature code (1) Serial number (2) Basic value (3) Additional value (4) Character string of feature code (5) Frequency of appearance

【0039】マクロパターン化用テーブルのレコード (1)タイムスタンプ (2)通し番号列の文字列 (3)出現頻度Record of table for macro patterning (1) Time stamp (2) Character string of serial number string (3) Frequency of appearance

【0040】これまで述べてきた重みは基本値のことを
いっており、付加値は過去の経験を反映させる重みであ
り、ここで述べる学習処理で使用する。通し番号列は、
特徴コード用テーブルの通し番号を集めて文字列にした
ものである。
The weights described so far refer to basic values, and the additional values are weights that reflect past experience and are used in the learning process described here. The serial number string is
It is a collection of serial numbers in the feature code table into a character string.

【0041】次に図6を参照しながら学習手順を示す。 (1)基本値による危険度を前述のように算出する。こ
のときマクロのパターン化も同時に行う。 (2)次に、過去に検出したウイルスマクロとパターン
比較を行う。類似点が多ければ、過去に同じような動作
をするウイルスを検出していることになる。また、まっ
たく同じ動作をしている部分があればそれは、ウイルス
の本質的な動作であるとみなすことができ、そのコード
の付加値を増加させる。 (3)すでにコンピュータ内にウイルスが広まっている
場合も考慮し、全てが同じパターンである場合は付加値
を増加させない。これは、特定のウイルスの影響を受け
て重みが不適切に偏ることを防ぐためである。 (4)危険度に付加値を与え、新たな危険度を算出す
る。 (5)出現頻度の一番多いものを基準に、その差が一定
値以上ついたコードの付加値を減少させる。
Next, the learning procedure will be described with reference to FIG. (1) The risk degree based on the basic value is calculated as described above. At this time, macro patterning is also performed at the same time. (2) Next, the pattern is compared with the virus macro detected in the past. If there are many similarities, it means that viruses that have similar behavior have been detected in the past. Also, if there is a part that operates exactly the same, it can be regarded as an essential operation of the virus, and the added value of the code is increased. (3) Considering the case where the virus has already spread in the computer, if all the patterns are the same, the additional value is not increased. This is to prevent the weight from being improperly biased under the influence of a specific virus. (4) A new risk is calculated by giving an additional value to the risk. (5) Decrease the additional value of the code whose difference is equal to or more than a certain value with reference to the one having the highest appearance frequency.

【0042】図7は、実施の形態に係るウイルス検出装
置10の構成図である。この構成は、ハードウェア的に
は、任意のコンピュータのCPU、メモリ、その他のL
SIで実現でき、ソフトウェア的にはメモリにロードさ
れたウイルス検出機能のあるプログラムなどによって実
現されるが、ここではそれらの連携によって実現される
機能ブロックを描いている。したがって、これらの機能
ブロックがハードウェアのみ、ソフトウェアのみ、また
はそれらの組み合わせによっていろいろな形で実現でき
ることは、当業者には理解されるところである。
FIG. 7 is a block diagram of the virus detection device 10 according to the embodiment. In terms of hardware, this configuration is the CPU, memory, and other L of any computer.
It can be realized by SI, and in terms of software, it is realized by a program or the like having a virus detection function loaded in the memory, but here, the functional blocks realized by the cooperation thereof are drawn. Therefore, it will be understood by those skilled in the art that these functional blocks can be realized in various forms by only hardware, only software, or a combination thereof.

【0043】ウイルス検出装置10のマクロ抽出部1
4、トレース検査部16、危険度算出部18、およびデ
ータベース更新部20は、ソフトウェア処理としては、
それぞれ前述のウイルス検出システムにおけるマクロ抜
き出し処理ルーチン、マクロトレース処理ルーチン、危
険度算出ルーチン、およびデータベース更新ルーチンを
実行するものである。
Macro extraction unit 1 of virus detection device 10
4, the trace inspecting unit 16, the risk calculating unit 18, and the database updating unit 20, as software processing,
The macro extraction processing routine, the macro trace processing routine, the risk degree calculation routine, and the database update routine in the virus detection system described above are executed respectively.

【0044】ウイルスデータベース26は、特徴コード
レコード28とマクロパターンレコード30を格納して
いる。特徴コードレコード28は、ウイルス特有の特徴
コードに危険性を示す重みを関連づけたものであり、前
述の特徴コード用テーブルのレコードである。マクロパ
ターンレコード30は、特徴コードの組み合わせで構成
されるウイルスのパターンを示すものであり、前述のマ
クロパターン化用テーブルのレコードである。
The virus database 26 stores a characteristic code record 28 and a macro pattern record 30. The characteristic code record 28 is a record of the characteristic code table, in which the characteristic code peculiar to the virus is associated with the weight indicating the risk. The macro pattern record 30 indicates a virus pattern composed of a combination of feature codes, and is a record of the macro patterning table described above.

【0045】特徴コードは図5のように4つのレベルに
分けられて重みづけされている。ファイルの自動オープ
ンのようにその動作自体がリスクを伴うようなモジュー
ルやサブルーチンの場合、モジュール名またはサブルー
チン名から危険度を把握できる。またシステムフォルダ
内のファイルの操作、テンプレートファイルの操作、実
行形式のファイルのオープンなど操作対象の種別から危
険度を把握できるものもある。したがって命令と操作対
象を別々に登録しておいて、その組み合わせについて重
みづけをすることが必要である。また特徴コードを階層
的にレベル分けして、モジュールやサブルーチンといっ
た大きな処理単位で危険性を判断するとともに、命令コ
ードやオペランドといったよりプリミティブな単位で危
険性を判断することが必要である。たとえばファイルの
自動オープンを使用せずに、ダイアログを表示して、ユ
ーザにダイアログのボタンをクリックさせることで実質
的にファイルの自動オープンを行うことも可能である。
したがってモジュール名やサブルーチン名だけに頼った
危険性の判断だけでは不十分であり、より下位の命令コ
ードやオペランドのレベルでの危険性の判断が要求され
る。
The feature code is divided into four levels and weighted as shown in FIG. In the case of a module or subroutine whose operation itself involves a risk such as automatic opening of a file, the degree of danger can be known from the module name or the subroutine name. In addition, there is also a thing in which the degree of risk can be grasped from the type of operation target such as operation of a file in the system folder, operation of a template file, opening of an executable file. Therefore, it is necessary to register the command and the operation target separately and weight the combination. In addition, it is necessary to hierarchically classify the characteristic codes to judge the risk in large processing units such as modules and subroutines, and to judge the risk in more primitive units such as instruction codes and operands. For example, instead of using the automatic opening of a file, it is also possible to display the dialog and to cause the user to click the button of the dialog, thereby substantially automatically opening the file.
Therefore, it is not enough to judge the risk only by using the module name or the subroutine name, and it is necessary to judge the risk at a lower instruction code or operand level.

【0046】図8を参照して、ウイルス検出装置10に
よるウイルス検出手順の大まかな流れを説明する。マク
ロ抽出部14は、検査対象ファイル12を読込む(S1
0)。次にマクロ抽出部14は、検査対象ファイルから
マクロ情報を抜き出し、マクロ情報をソースコードの状
態に再構築する(S12)。トレース検査部16は再構
築されたマクロのソースコードを一行ずつトレースし
て、ウイルスの特徴コードが含まれていないかどうか検
査する(S14)。このときトレース検査部16は、特
徴コードの組み合わせから構成される動作パターンを特
定する。
A general flow of the virus detection procedure by the virus detection device 10 will be described with reference to FIG. The macro extraction unit 14 reads the inspection target file 12 (S1
0). Next, the macro extraction unit 14 extracts macro information from the file to be inspected and reconstructs the macro information into the state of the source code (S12). The trace checking unit 16 traces the reconstructed macro source code line by line to check whether the virus characteristic code is included (S14). At this time, the trace inspection unit 16 identifies an operation pattern composed of a combination of feature codes.

【0047】危険度算出部18は、トレース検査部16
により抽出された特徴コードの重みにもとづいて、マク
ロの危険度を算出し、マクロがウイルスであるかどうか
を判定する(S16)。ウイルス判定により、ウイルス
が検出された場合(S18のY)、データベース更新部
20は、トレース検査部16により特定されたマクロの
動作パターンを構成する特徴コードに関して、ウイルス
データベース26の特徴コードレコード28の重みを更
新する(S20)。ウイルスが検出されない場合(S1
8のN)、ウイルスデータベース26の更新は行わな
い。
The risk degree calculation unit 18 includes a trace inspection unit 16
Based on the weight of the feature code extracted by, the macro risk is calculated and it is determined whether the macro is a virus (S16). When a virus is detected by the virus determination (Y in S18), the database updating unit 20 stores the feature code record 28 of the virus database 26 with respect to the feature code forming the macro operation pattern identified by the trace inspecting unit 16. The weight is updated (S20). If no virus is detected (S1
8 N), the virus database 26 is not updated.

【0048】図9はマクロの再構築処理S12の詳細な
手順を示すフローチャートである。既に図3に示したよ
うに、マクロ情報は検査対象の文書ファイルのバイナリ
データ中に散らばっており、このままではトレースが難
しい。マクロ抽出部14は検査対象ファイルからマクロ
情報を抽出して、図4のようなソースコードの形に組み
上げる再構築の処理を行う。まず検査対象ファイルが構
造化記憶を利用したものであるかどうかを調べる(S3
0)。構造化記憶を利用していない場合(S30の
N)、ウイルスの検査を行わずに終了する。構造化記憶
を利用している場合(S30のY)、検査対象ファイル
にマクロが含まれるかどうかを調べる(S32)。マク
ロが含まれない場合(S32のN)、ウイルスの検査を
行わずに終了する。マクロが含まれる場合(S32の
Y)、マクロ情報を組み上げ、ソースコードの状態にし
て書き出す(S34)。
FIG. 9 is a flow chart showing the detailed procedure of the macro reconstruction processing S12. As already shown in FIG. 3, the macro information is scattered in the binary data of the document file to be inspected, and it is difficult to trace it as it is. The macro extraction unit 14 extracts the macro information from the file to be inspected and performs a reconstruction process for assembling the source code as shown in FIG. First, it is checked whether the file to be inspected uses structured storage (S3).
0). When the structured storage is not used (N in S30), the process ends without inspecting for viruses. When the structured storage is used (Y in S30), it is checked whether or not the inspection target file includes a macro (S32). When the macro is not included (N in S32), the process ends without inspecting for viruses. If the macro is included (Y in S32), the macro information is assembled, and the state of the source code is written out (S34).

【0049】図10はマクロのトレース検査処理S14
の詳細な手順を示すフローチャートである。トレース検
査部16は、再構築されたマクロのソースコードを一行
ずつトレースしながら、ウイルスデータベース26を参
照して、登録された特徴コードレコード28に一致する
ものがあるかどうか調べ、一致した特徴コードとその重
みを収集する(S40)。またマクロのサブルーチンご
とに、そのサブルーチンを構成する特徴コードの種類を
動作パターンとして記憶する(S42)。
FIG. 10 shows a macro trace inspection process S14.
5 is a flowchart showing a detailed procedure of the above. The trace checking unit 16 traces the source code of the reconstructed macro line by line, refers to the virus database 26, and checks whether or not there is a match in the registered feature code record 28, and the matched feature code. And its weights are collected (S40). In addition, for each macro subroutine, the type of the characteristic code forming the subroutine is stored as an operation pattern (S42).

【0050】図11はウイルス判定処理S16の詳細な
手順を示すフローチャートである。危険度算出部18
は、トレース検査部16により抽出された特徴コードの
重みにもとづいて、マクロのサブルーチンごとに危険度
を算出する。トレース検査部16は、特徴コードを図5
に示した4つのレベルに分類している。危険度算出部1
8は、モジュールレベルの重みMとサブルーチンレベル
の重みSとを組み合わせて、ウイルス活動のトリガーに
なりうる危険度VTを算出する(S50)。たとえば、
VT=max(M,S)とする。次にサブルーチンの一
つ一つの命令について、命令コードレベルの重みIとオ
ペランドレベルの重みOとを組み合わせて、ウイルス活
動に対する危険度VAを算出する(S52)。たとえば
VA=I×Oとする。
FIG. 11 is a flow chart showing the detailed procedure of the virus judgment processing S16. Risk calculator 18
Calculates the degree of danger for each macro subroutine based on the weight of the feature code extracted by the trace inspection unit 16. The trace inspection unit 16 uses the feature code shown in FIG.
It is classified into the four levels shown in. Risk calculator 1
In step S50, the module-level weight M and the subroutine-level weight S are combined to calculate a risk VT that can trigger virus activity (S50). For example,
Let VT = max (M, S). Next, for each instruction of the subroutine, the instruction code level weight I and the operand level weight O are combined to calculate the risk VA against virus activity (S52). For example, VA = I × O.

【0051】次にサブルーチンごとに、評価した重みの
階層レベルが異なる2種類の危険度VT、VAを組み合
わせてサブルーチンの危険度を算出する(S54)。た
とえば、VTの値とサブルーチン内の最も大きいVAの
値の和をそのサブルーチンの危険度とする。マクロのす
べてのサブルーチンについてサブルーチンの危険度が算
出されると、それらのサブルーチンの危険度の内、もっ
とも高い危険度をマクロの危険度とする(S56)。マ
クロの危険度が所定の基準値を越える場合(S58の
Y)、そのマクロはウイルスであると判定し(S6
0)、そうでない場合(S58のN)、そのマクロをウ
イルスとは判定しない。
Next, the risk level of the subroutine is calculated by combining the two risk levels VT and VA having different hierarchical levels of the evaluated weights for each subroutine (S54). For example, the sum of the value of VT and the largest value of VA in the subroutine is set as the risk level of the subroutine. When the risk of the subroutine is calculated for all the subroutines of the macro, the highest risk of the risk of those subroutines is set as the risk of the macro (S56). When the macro risk exceeds the predetermined reference value (Y in S58), it is determined that the macro is a virus (S6).
0), otherwise (N in S58), the macro is not determined as a virus.

【0052】図12はデータベース更新処理S20の詳
細な手順を示すフローチャートである。データベース更
新部20は、マクロパターン登録部22と重み更新部2
4を含む。マクロがウイルスと判定された場合に、マク
ロパターン登録部22はトレース検査部16により特定
されたマクロの動作パターンを新たなマクロパターンレ
コード30としてウイルスデータベース26に登録し、
重み更新部24はその動作パターンを構成する特徴コー
ドに関して、特徴コードレコード28の重みを更新す
る。
FIG. 12 is a flow chart showing the detailed procedure of the database updating process S20. The database update unit 20 includes a macro pattern registration unit 22 and a weight update unit 2
Including 4. When it is determined that the macro is a virus, the macro pattern registration unit 22 registers the operation pattern of the macro specified by the trace inspection unit 16 in the virus database 26 as a new macro pattern record 30.
The weight updating unit 24 updates the weight of the characteristic code record 28 with respect to the characteristic code forming the operation pattern.

【0053】学習アルゴリズムの基本方針は、多種のウ
イルスに共通する動作パターンはウイルスの本質的な動
作とみなし、その動作パターンを構成する特徴コードの
重みを増加させることである。たとえば、ウイルスA、
B、Cの動作が以下であるとする。
The basic principle of the learning algorithm is to regard the operation pattern common to various viruses as the essential operation of the virus, and increase the weight of the characteristic code forming the operation pattern. For example, virus A,
The operations of B and C are as follows.

【0054】(A)ウイルスAの動作: (A−1)ファイルオープンをトリガーとする、(A−
2)レジスタにXを書込む、(A−3)標準テンプレー
トファイルを書き換える。
(A) Operation of virus A: (A-1) Trigger file open, (A-
2) Write X in the register, (A-3) Rewrite the standard template file.

【0055】(B)ウイルスBの動作: (B−1)ファイルオープンをトリガーとする、(B−
2)システムファイルを削除する、(B−3)標準テン
プレートファイルを書き換える。
(B) Operation of virus B: (B-1) File open as a trigger, (B-
2) Delete system file, (B-3) Rewrite standard template file.

【0056】(C)ウイルスCの動作: (C−1)アプリケーションの起動をトリガーとする、
(C−2)ファイルYを改ざんする、(C−3)標準テ
ンプレートファイルを書き換える。
(C) Operation of virus C: (C-1) Triggered by starting application
(C-2) Alter the file Y, (C-3) Rewrite the standard template file.

【0057】このとき、「標準テンプレートファイルを
書き換える」という動作パターンは3種のウイルスA、
B、Cに共通しており、「ファイルオープンをトリガー
とする」という動作パターンは2種のウイルスA、Bに
共通している。そこで「標準テンプレートファイルを書
き換える」という動作パターンを構成する特徴コードに
ついては重みの増加量を大きくとり、「ファイルオープ
ンをトリガーとする」という動作パターンを構成する特
徴コードについては重みの増加量を小さくとる。
At this time, the operation pattern of "rewriting the standard template file" has three types of virus A,
It is common to B and C, and the operation pattern "trigger on file open" is common to the two viruses A and B. Therefore, the increase amount of weight is large for the feature code that constitutes the operation pattern "Rewrite standard template file", and the increase amount of weight is small for the feature code that constitutes the operation pattern "Trigger file open". To take.

【0058】重みは基本値と付加値に分かれている。基
本値は特徴コードに対して予想される危険度を示す固定
の値であり、付加値は初期値をゼロとして、学習アルゴ
リズムにより更新される値である。ウイルスに頻繁に使
用される特徴コードについては付加値が増加し、ほとん
どウイルスに使用されない特徴コードについては付加値
が減少する。特徴コードの危険度を示す重みは基本値と
付加値の和で与えられるため、過去に発見されたウイル
スの動作パターンによって重みが更新されることにな
る。
The weight is divided into a basic value and an additional value. The basic value is a fixed value indicating the degree of danger expected for the feature code, and the additional value is a value updated by the learning algorithm with the initial value set to zero. The additional value increases for feature codes that are frequently used by viruses, and the additional value decreases for feature codes that are rarely used by viruses. Since the weight indicating the degree of risk of the feature code is given by the sum of the basic value and the additional value, the weight is updated according to the operation pattern of the virus found in the past.

【0059】具体的な学習手順を説明する。発見された
ウイルスの動作パターンについて、その動作パターンを
構成する特徴コードの種類ごとに出現回数をカウントす
る(S50)。たとえばウイルスの動作パターンが3種
の特徴コードa、b、cから構成される場合、3種の特
徴コードa、b、cのそれぞれの出現回数のカウント数
を1だけインクリメントする。ウイルスのすべての動作
パターンについて、その動作パターンに含まれる特徴コ
ードの出願回数をこのようにカウントする。次に、特徴
コードの付加値をこの出現回数のカウント数に比例して
増加させる(S52)。たとえば出現回数に所定の増加
係数をかけた値を新たな付加値とする。これにより、多
種のウイルスに共通する動作パターンの特徴コードほど
付加値が大きくなる。
A specific learning procedure will be described. With respect to the found operation pattern of the virus, the number of appearances is counted for each type of feature code forming the operation pattern (S50). For example, when the operation pattern of the virus is composed of three types of characteristic codes a, b, and c, the number of appearances of each of the three types of characteristic codes a, b, and c is incremented by one. For all operation patterns of the virus, the number of application of the feature code included in the operation pattern is counted in this way. Next, the additional value of the feature code is increased in proportion to the number of appearance counts (S52). For example, a value obtained by multiplying the number of appearances by a predetermined increase coefficient is set as a new additional value. As a result, the additional value increases as the feature code of the operation pattern common to various viruses.

【0060】出現回数のカウント数が特定数以上である
場合(S54のY)、カウント数が極端に大きい特徴コ
ードの付加値を減少させる(S56)。たとえば特徴コ
ード間の出現回数の差に比例して付加値を減少させる。
すなわち出現回数の差に所定の減少係数をかけた値を付
加値から差し引く。付加値の減少は、特定のウイルスの
影響を受けて重みが偏るのを防ぐために行われる。
If the number of appearances is greater than or equal to the specific number (Y in S54), the additional value of the feature code having an extremely large number of counts is decreased (S56). For example, the additional value is decreased in proportion to the difference in the number of appearances between feature codes.
That is, a value obtained by multiplying the difference in the number of appearances by a predetermined reduction coefficient is subtracted from the additional value. The addition value is reduced to prevent the weight from being biased under the influence of a specific virus.

【0061】以上述べたように、実施の形態では検査対
象にマクロウイルスを取り上げ、ヒューリスティック検
査法の概念を取り入れた新種ウイルスに有効な検出方法
を提案した。マクロウイルスに特有のコードをデータベ
ース化し、その危険性を学習するシステムであるため、
単純なコードのパターンマッチングによるウイルス検出
の方法とは違って、既存ウイルスの一部を変えた変形型
のウイルスにも柔軟に対応でき、またこれまでになかっ
た新種のウイルスであっても検出することが可能とな
る。
As described above, in the embodiment, the macrovirus was taken up as the inspection object, and the effective detection method for the new virus incorporating the concept of the heuristic inspection method was proposed. Since it is a system that stores the code unique to macro viruses and learns the danger,
Unlike the virus detection method by simple pattern matching of the code, it can flexibly deal with a modified virus that is a part of the existing virus, and detects even a new virus that has never existed before. It becomes possible.

【0062】以上、本発明を実施の形態をもとに説明し
た。実施の形態は例示であり、それらの各構成要素や各
処理プロセスの組合せにいろいろな変形例が可能なこ
と、またそうした変形例も本発明の範囲にあることは当
業者に理解されるところである。以下そのような変形例
を説明する。
The present invention has been described above based on the embodiments. It is understood by those skilled in the art that the embodiments are exemplifications, that various modifications can be made to combinations of respective constituent elements and respective processing processes, and that such modifications are within the scope of the present invention. . Hereinafter, such a modified example will be described.

【0063】実施の形態では、新種、変種のウイルスが
多く出現するマクロウイルスを例にあげてウイルス検出
手法を説明したが、マクロウイルスに限定する趣旨では
なく、本発明はプログラムコードに感染するウイルス一
般にも適用可能である。
In the embodiment, the virus detection method has been described by taking as an example a macrovirus in which many new and variant viruses appear. However, the present invention is not limited to the macrovirus, and the present invention is a virus that infects a program code. It is also applicable to the general public.

【0064】実施の形態では、ウイルス特有のコードを
収集したデータベースが検査対象のコンピュータ内に設
けられが、このようなデータベースがサーバに設けら
れ、ネットワークを介して必要なデータを検索したり、
ダウンロードする構成でもよい。また本実施の形態のウ
イルス検出プログラムを有するモバイルエージェントが
ユーザのコンピュータに配信されて、分散型のウイルス
検出が行われてもよい。このようなエージェントを用い
る構成においても、ウイルスコードのデータベースはユ
ーザのコンピュータ内に設けられてもサーバに設けられ
てもよい。またエージェントプログラムのデータ領域に
そのようなデータベースの少なくとも一部が含まれてい
てもよい。
In the embodiment, a database in which codes peculiar to viruses are collected is provided in the computer to be inspected, but such a database is provided in the server to search for necessary data via the network,
It may be configured to download. In addition, a mobile agent having the virus detection program according to the present embodiment may be distributed to a user's computer for distributed virus detection. Even in the configuration using such an agent, the virus code database may be provided in the user's computer or in the server. Further, the data area of the agent program may include at least a part of such a database.

【0065】またウイルス検出システムは、コンピュー
タのハードディスク等をスキャンしてウイルスの検査、
除去を行うウイルス検疫ソフトウェアのような独立した
アプリケーションとして提供されてもよい。その場合、
CD−ROMなどの記録媒体から読みとられたデータや
ネットワークを介してダウンロードされたデータがハー
ドディスクに書込まれるときに、オンデマンドでデータ
をスキャンしてもよい。また、ウイルス検出システム
は、マクロ機能をもつアプリケーションに組み込まれる
形態で提供されてもよい。この場合、アプリケーション
がマクロファイルをオープンする際、本ウイルス検出シ
ステムによりマクロの危険度を測定して、マクロファイ
ルをオープンして実行する前に危険度をユーザに通知し
て警告を与えてもよい。
In addition, the virus detection system scans the hard disk of the computer and inspects for viruses,
It may be provided as a standalone application such as virus quarantine software that performs the removal. In that case,
When data read from a recording medium such as a CD-ROM or data downloaded via a network is written to the hard disk, the data may be scanned on demand. Further, the virus detection system may be provided in a form incorporated in an application having a macro function. In this case, when the application opens the macro file, the virus detection system may measure the macro risk and notify the user of the risk before the macro file is opened and executed to give a warning. .

【0066】上記の学習手順では、ウイルスが検出され
た場合に重みの更新が行われたが、ウイルスかどうかの
判定は、外部から与えられてもよい。たとえばユーザが
ウイルスかどうかを判断して、判定結果をウイルス検出
システムに与えてもよい。またデータベース更新部は、
外部から提供されるウイルス定義ファイルを用いて、危
険度算出部によるウイルス判定の成否を評価してもよ
い。
In the above learning procedure, the weight is updated when a virus is detected, but the determination as to whether it is a virus may be given from the outside. For example, the user may determine whether it is a virus and give the determination result to the virus detection system. Also, the database update section
A virus definition file provided externally may be used to evaluate the success or failure of the virus determination by the risk degree calculation unit.

【0067】[0067]

【発明の効果】本発明によれば、新種または変種のウイ
ルスを効果的に検出することができる。
INDUSTRIAL APPLICABILITY According to the present invention, a new or variant virus can be effectively detected.

【図面の簡単な説明】[Brief description of drawings]

【図1】 実施の形態に係るウイルス検出システムの全
体構成図である。
FIG. 1 is an overall configuration diagram of a virus detection system according to an embodiment.

【図2】 ウイルス検査対象ファイルの一例である複合
ファイルのデータ構造を説明する図である。
FIG. 2 is a diagram illustrating a data structure of a composite file that is an example of a virus inspection target file.

【図3】 図2の複合ファイルのストリームに格納され
ているマクロ情報を示す図である。
3 is a diagram showing macro information stored in a stream of the composite file in FIG.

【図4】 図3のマクロ情報を再構築してテキストに書
き出した状態を示す図である。
FIG. 4 is a diagram showing a state in which the macro information of FIG. 3 is reconstructed and written in a text.

【図5】 ウイルスの特徴コードに対応づける重みのレ
ベル分けを説明する図である。
FIG. 5 is a diagram for explaining level division of weights associated with virus feature codes.

【図6】 図1のデータベースの学習手順を説明する図
である。
FIG. 6 is a diagram illustrating a learning procedure of the database of FIG.

【図7】 実施の形態に係るウイルス検出装置の構成図
である。
FIG. 7 is a configuration diagram of a virus detection device according to an embodiment.

【図8】 ウイルス検出装置におけるウイルス検出手順
を示すフローチャートである。
FIG. 8 is a flowchart showing a virus detection procedure in the virus detection device.

【図9】 図8のマクロの再構築処理の詳細な手順を示
すフローチャートである。
9 is a flowchart showing a detailed procedure of macro reconstruction processing of FIG.

【図10】 図8のマクロのトレース検査処理の詳細な
手順を示すフローチャートである。
10 is a flowchart showing a detailed procedure of a trace inspection process of the macro of FIG.

【図11】 図8のウイルス判定処理の詳細な手順を示
すフローチャートである。
FIG. 11 is a flowchart showing a detailed procedure of virus determination processing in FIG.

【図12】 図8のデータベース更新処理の詳細な手順
を示すフローチャートである。
FIG. 12 is a flowchart showing a detailed procedure of the database update processing of FIG.

【符号の説明】[Explanation of symbols]

10 ウイルス検出装置、 12 検査対象ファイル、
14 マクロ抽出部、 16 トレース検査部、 1
8 危険度算出部、 20 データベース更新部、 2
2 マクロパターン登録部、 24 重み更新部、 2
6 ウイルスデータベース、 28 特徴コードレコー
ド、 30 マクロパターンレコード。
10 virus detection device, 12 inspection target file,
14 macro extraction unit, 16 trace inspection unit, 1
8 Risk calculation part, 20 Database update part, 2
2 macro pattern registration unit, 24 weight update unit, 2
6 virus database, 28 feature code record, 30 macro pattern record.

Claims (13)

【特許請求の範囲】[Claims] 【請求項1】 ウイルス特有の動作に係る特徴コードに
危険性を示す重みを関連づけてデータベースに登録する
工程と、 検査対象ファイルをトレースして、前記データベースに
登録された前記特徴コードを収集する工程と、 前記収集された特徴コードの組み合わせにもとづいて、
各特徴コードに関連づけられた前記重みを評価して、前
記検査対象ファイルの危険度を算出する工程とを含むこ
とを特徴とするウイルス検出方法。
1. A step of registering a feature code related to a virus-specific operation with a weight indicating a risk in a database, and a step of tracing an inspection target file to collect the feature code registered in the database. And based on the combination of the collected feature codes,
Evaluating the weight associated with each feature code and calculating the degree of risk of the file to be inspected.
【請求項2】 前記収集された特徴コードに関して、前
記データベースに格納された前記重みを更新する工程を
さらに含むことを特徴とする請求項1に記載のウイルス
検出方法。
2. The virus detection method according to claim 1, further comprising the step of updating the weights stored in the database for the collected characteristic codes.
【請求項3】 前記重みの更新は、前記検査対象ファイ
ルにウイルスが検出された場合になされることを特徴と
する請求項2に記載のウイルス検出方法。
3. The virus detecting method according to claim 2, wherein the updating of the weight is performed when a virus is detected in the inspection target file.
【請求項4】 前記ウイルスの検出は、前記危険度にも
とづいてなされることを特徴とする請求項3に記載のウ
イルス検出方法。
4. The virus detection method according to claim 3, wherein the detection of the virus is performed based on the degree of risk.
【請求項5】 前記収集された特徴コードを階層的なレ
ベルに分類した上でレベルによって前記重みの評価を異
ならせて前記危険度を算出することを特徴とする請求項
1に記載のウイルス検出方法。
5. The virus detection according to claim 1, wherein the collected characteristic codes are classified into hierarchical levels, and the risk is calculated by changing the evaluation of the weight depending on the level. Method.
【請求項6】 ウイルス特有の動作に係る特徴コードに
危険性を示す重みを関連づけて格納したデータベース
と、 検査対象ファイルをトレースして、前記データベースに
登録された前記特徴コードを収集し、収集した特徴コー
ドの組み合わせを動作パターンとして特定する検査部
と、 前記収集した特徴コードの組み合わせと前記重みにもと
づいて前記動作パターンの危険度を算出する危険度算出
部とを含むことを特徴とするウイルス検査装置。
6. A database in which feature codes related to virus-specific operations are associated with weights indicating danger, and a file to be inspected is traced to collect and collect the feature codes registered in the database. A virus inspection including: an inspection unit that specifies a combination of characteristic codes as an operation pattern; and a risk degree calculation unit that calculates a risk degree of the operation pattern based on the collected combination of characteristic codes and the weight. apparatus.
【請求項7】 前記危険度に応じて、前記動作パターン
を構成する前記特徴コードに関して、前記データベース
に格納された前記重みを更新する更新部をさらに含むこ
とを特徴とする請求項6に記載のウイルス検査装置。
7. The updating unit according to claim 6, further comprising an updating unit that updates the weight stored in the database for the characteristic code forming the operation pattern according to the degree of risk. Virus inspection device.
【請求項8】 前記データベースは、ウイルスの動作パ
ターンを格納し、前記更新部は、前記特定された動作パ
ターンを前記データベースに格納されたウイルスの動作
パターンと比較して、その類似度に応じて、前記特定さ
れた動作パターンを構成する前記特徴コードの重みを更
新することを特徴とする請求項7に記載のウイルス検査
装置。
8. The database stores an operation pattern of a virus, and the update unit compares the specified operation pattern with an operation pattern of a virus stored in the database and determines the similarity according to the similarity. The virus inspection apparatus according to claim 7, wherein the weight of the characteristic code forming the specified operation pattern is updated.
【請求項9】 前記検査部は、前記収集した特徴コード
を処理ルーチン単位とプリミティブなコマンド単位とに
階層分けして分類し、前記危険度算出部は前記階層によ
って前記重みの評価を異ならせて前記危険度を算出する
ことを特徴とする請求項6に記載のウイルス検査装置。
9. The inspecting unit classifies the collected characteristic codes into a processing routine unit and a primitive command unit, and the risk calculating unit changes the weight evaluation depending on the hierarchy. The virus inspection apparatus according to claim 6, wherein the risk level is calculated.
【請求項10】 前記危険度算出部は、前記収集した特
徴コードを命令と操作対象の種別により区別し、その命
令と操作対象の種別の組み合わせによって前記重みの評
価を異ならせて前記危険度を算出することを特徴とする
請求項6または9に記載のウイルス検査装置。
10. The risk level calculation unit distinguishes the collected characteristic codes by the type of an instruction and an operation target, and evaluates the weight by changing the evaluation of the weight depending on the combination of the command and the type of the operation target. The virus inspection apparatus according to claim 6 or 9, which is calculated.
【請求項11】 ウイルス特有の動作に係る特徴コード
に危険性を示す重みを関連づけて登録したデータベース
を参照して、検査対象ファイルから前記データベースに
登録された前記特徴コードを収集する工程と、 前記収集された特徴コードの組み合わせにもとづいて、
各特徴コードに関連づけられた前記重みを評価して、前
記検査対象ファイルの危険度を算出する工程とをコンピ
ュータに実行させることを特徴とするコンピュータプロ
グラム。
11. A step of collecting the feature code registered in the database from a file to be inspected by referring to a database in which a feature code relating to an operation peculiar to a virus is associated with a weight indicating a risk and registered, Based on the collected feature code combinations,
A computer program for causing a computer to execute a step of evaluating the weight associated with each characteristic code and calculating a risk degree of the inspection target file.
【請求項12】 マクロウイルス特有の動作をとるため
に必要なコードと、そのコードがウイルスとして使用さ
れた場合の危険性を示す値を一つのレコードとしてデー
タベースに登録する工程と、 マクロを一行ずつトレースし、前記登録したコードを収
集し、コードの組み合わせを記録する工程と、 収集したコードの組み合わせから、各重みを基にしてウ
イルスであるかどうかの判断値となる危険度を算出する
工程と、 危険度が基準となる値を超えたとき、そのマクロはウイ
ルスであると判断する工程と、 ウイルスを検出した場合、収集したコードを基に重みを
増減させて前記データベースを更新する工程とを含むこ
とを特徴とするウイルス検出方法。
12. A code required for performing an operation peculiar to a macro virus, a step of registering a value indicating a risk when the code is used as a virus as one record in a database, and a macro for each line. A step of tracing and collecting the registered codes and recording a combination of the codes, and a step of calculating a risk degree which is a judgment value of whether or not the virus is based on each weight from the collected code combinations, When the risk exceeds the standard value, the macro judges that the macro is a virus, and when a virus is detected, it increases or decreases the weight based on the collected code and updates the database. A method for detecting a virus, comprising:
【請求項13】 前記更新する工程は、過去に検出した
ウイルスとパターン比較を行い、類似点が多ければ、収
集したコードの重みを増加させることを特徴とする請求
項12に記載のウイルス検出方法。
13. The virus detection method according to claim 12, wherein the updating step performs pattern comparison with a virus detected in the past, and if there are many similarities, the weight of the collected code is increased. .
JP2001382592A 2001-12-17 2001-12-17 Virus detection method and apparatus Expired - Fee Related JP3992136B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001382592A JP3992136B2 (en) 2001-12-17 2001-12-17 Virus detection method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001382592A JP3992136B2 (en) 2001-12-17 2001-12-17 Virus detection method and apparatus

Publications (2)

Publication Number Publication Date
JP2003186687A true JP2003186687A (en) 2003-07-04
JP3992136B2 JP3992136B2 (en) 2007-10-17

Family

ID=27592882

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001382592A Expired - Fee Related JP3992136B2 (en) 2001-12-17 2001-12-17 Virus detection method and apparatus

Country Status (1)

Country Link
JP (1) JP3992136B2 (en)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008176753A (en) * 2007-01-22 2008-07-31 National Institute Of Information & Communication Technology Data similarity inspection method and device
JP2009140226A (en) * 2007-12-06 2009-06-25 Sprasia Inc Received data inspection apparatus, received data inspection method, and program thereof
WO2011124084A1 (en) * 2010-04-09 2011-10-13 Pan Yanhui System and method for multi-user cooperative security protection based on cloud calculation
JP2011530121A (en) * 2008-08-05 2011-12-15 北京金山▲軟▼件有限公司 Method and system for filtering and monitoring program behavior
JP2012501028A (en) * 2008-08-28 2012-01-12 エーブイジー テクノロジーズ シーゼット、エス.アール.オー. Heuristics for code analysis
JP2012512489A (en) * 2008-12-16 2012-05-31 マイクロソフト コーポレーション User script code conversion for debugging
KR101550820B1 (en) 2014-02-14 2015-09-07 한국과학기술원 The device for analyzing a malware based on similarity
JP2015526824A (en) * 2012-09-03 2015-09-10 アンラブ,インコーポレイテッド Malicious application diagnostic apparatus and method
JP2016507115A (en) * 2013-02-10 2016-03-07 サイバー アクティブ セキュリティー エルティーディー. Methods and products that provide predictive security products and evaluate existing security products
KR101639675B1 (en) * 2015-05-29 2016-07-14 주식회사 하우리 Polymorphic virus analysis system and method therof
JP2016536667A (en) * 2013-10-04 2016-11-24 ビットディフェンダー アイピーアール マネジメント リミテッド Complex scoring for malware detection
JP2017505947A (en) * 2013-12-27 2017-02-23 マカフィー, インコーポレイテッド Reputation based on frequency
JP2018508054A (en) * 2014-11-26 2018-03-22 グラスウォール・(アイピー)・リミテッド Statistical analysis method for risk assessment of file-based content

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008176753A (en) * 2007-01-22 2008-07-31 National Institute Of Information & Communication Technology Data similarity inspection method and device
JP2009140226A (en) * 2007-12-06 2009-06-25 Sprasia Inc Received data inspection apparatus, received data inspection method, and program thereof
JP2011530121A (en) * 2008-08-05 2011-12-15 北京金山▲軟▼件有限公司 Method and system for filtering and monitoring program behavior
JP2012501028A (en) * 2008-08-28 2012-01-12 エーブイジー テクノロジーズ シーゼット、エス.アール.オー. Heuristics for code analysis
US9632909B2 (en) 2008-12-16 2017-04-25 Microsoft Technology Licensing, Llc Transforming user script code for debugging
JP2012512489A (en) * 2008-12-16 2012-05-31 マイクロソフト コーポレーション User script code conversion for debugging
WO2011124084A1 (en) * 2010-04-09 2011-10-13 Pan Yanhui System and method for multi-user cooperative security protection based on cloud calculation
JP2015526824A (en) * 2012-09-03 2015-09-10 アンラブ,インコーポレイテッド Malicious application diagnostic apparatus and method
JP2016507115A (en) * 2013-02-10 2016-03-07 サイバー アクティブ セキュリティー エルティーディー. Methods and products that provide predictive security products and evaluate existing security products
JP2016536667A (en) * 2013-10-04 2016-11-24 ビットディフェンダー アイピーアール マネジメント リミテッド Complex scoring for malware detection
US10044739B2 (en) 2013-12-27 2018-08-07 McAFEE, LLC. Frequency-based reputation
JP2017505947A (en) * 2013-12-27 2017-02-23 マカフィー, インコーポレイテッド Reputation based on frequency
KR101550820B1 (en) 2014-02-14 2015-09-07 한국과학기술원 The device for analyzing a malware based on similarity
JP2018508054A (en) * 2014-11-26 2018-03-22 グラスウォール・(アイピー)・リミテッド Statistical analysis method for risk assessment of file-based content
KR101639675B1 (en) * 2015-05-29 2016-07-14 주식회사 하우리 Polymorphic virus analysis system and method therof

Also Published As

Publication number Publication date
JP3992136B2 (en) 2007-10-17

Similar Documents

Publication Publication Date Title
CN111259388B (en) Malicious software API (application program interface) calling sequence detection method based on graph convolution
Nix et al. Classification of Android apps and malware using deep neural networks
Jindal et al. Neurlux: dynamic malware analysis without feature engineering
Canfora et al. Detecting android malware using sequences of system calls
Carmony et al. Extract Me If You Can: Abusing PDF Parsers in Malware Detectors.
Kephart A biologically inspired immune system for computers
US9747452B2 (en) Method of generating in-kernel hook point candidates to detect rootkits and the system thereof
US5675711A (en) Adaptive statistical regression and classification of data strings, with application to the generic detection of computer viruses
CN117951701A (en) Method for determining flaws and vulnerabilities in software code
CN103150509B (en) A kind of virus detection system based on virtual execution
JP2003186687A (en) Method and apparatus for virus detection
US20080189787A1 (en) Method and Apparatus for the Automatic Determination of Potentially Worm-Like Behavior of a Program
US20020162015A1 (en) Method and system for scanning and cleaning known and unknown computer viruses, recording medium and transmission medium therefor
Zhang et al. Identifying security critical properties for the dynamic verification of a processor
KR100620313B1 (en) The system for detecting malicious code using the structural features of microsoft portable executable and its using method
CN103065094A (en) System and method for detecting malware targeting the boot process of a computer using boot process emulation
CN114117311B (en) Data access risk detection method and device, computer equipment and storage medium
US11797668B2 (en) Sample data generation apparatus, sample data generation method, and computer readable medium
CN101183414A (en) Program detection method, device and program analyzing method
CN104504334B (en) System and method for assessing classifying rules selectivity
CN112749389B (en) Detection method and device for detecting vulnerability of intelligent contract damage sensitive data
JP2010257150A (en) Device and method for detection of fraudulence processing, and program
JP2010097342A (en) Malfunction detection device and program
Siqueira et al. Characterisation of challenges for testing of adaptive systems
Chen et al. Invariants based failure diagnosis in distributed computing systems

Legal Events

Date Code Title Description
A80 Written request to apply exceptions to lack of novelty of invention

Free format text: JAPANESE INTERMEDIATE CODE: A80

Effective date: 20011226

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20030902

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060906

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070319

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070718

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110803

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120803

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120803

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130803

Year of fee payment: 6

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

LAPS Cancellation because of no payment of annual fees