JP2010049627A - Computer virus detection system - Google Patents

Computer virus detection system Download PDF

Info

Publication number
JP2010049627A
JP2010049627A JP2008215337A JP2008215337A JP2010049627A JP 2010049627 A JP2010049627 A JP 2010049627A JP 2008215337 A JP2008215337 A JP 2008215337A JP 2008215337 A JP2008215337 A JP 2008215337A JP 2010049627 A JP2010049627 A JP 2010049627A
Authority
JP
Japan
Prior art keywords
guest
computer virus
virus detection
virtual
detection system
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.)
Pending
Application number
JP2008215337A
Other languages
Japanese (ja)
Inventor
Yoshiki Samejima
吉喜 鮫島
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.)
Hitachi Software Engineering Co Ltd
Original Assignee
Hitachi Software Engineering Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Software Engineering Co Ltd filed Critical Hitachi Software Engineering Co Ltd
Priority to JP2008215337A priority Critical patent/JP2010049627A/en
Publication of JP2010049627A publication Critical patent/JP2010049627A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a computer virus detection system for surely detecting computer virus having a concealment function such as "rootkit". <P>SOLUTION: A computer virus detection object includes: a virtualization means which operates a first guest OS which provides an execution environment of an application and a second guest OS which provides an execution environment of a virus detection means separately from each other; and a first means which directly accesses a virtual storage means to be used by the application and the first guest OS to detect whether computer virus exists in the virtual storage means. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は、コンピュータウィルス(あるいはマルウェア)の検出システムに係り、特に「ルートキット」と呼ばれるコンピュータウィルスの検出システムに関するものである。   The present invention relates to a computer virus (or malware) detection system, and more particularly to a computer virus detection system called a “rootkit”.

従来から、コンピュータウィルスの検出技術としては、監視対象のファイルの内容とウィルスパターン(シグネチャ)とを照合する方法が典型であった。
また、下記の特許文献1に開示されているように、OS(オペレーティングシステム)にあたるカーネル空間にイベント監視部を設け、ウィルス侵入の兆候を監視するものが知られている。
Conventionally, as a computer virus detection technique, a method of collating the contents of a monitored file with a virus pattern (signature) has been typical.
Also, as disclosed in Patent Document 1 below, there is known a system in which an event monitoring unit is provided in a kernel space corresponding to an OS (operating system) to monitor a sign of virus intrusion.

特開2006−65835号公報JP 2006-65835 A

しかし、上記の従来の技術にあっては、カーネル空間とはいえOSが提供するインタフェースを通してウィルス侵入を監視しているため、自分自身を隠す機能を備えた「ルートキット」と呼ばれるコンピュータウィルスを検知することはできないという問題がある。
「ルートキット」はアプリケーションやシステムライブラリから汎用的に利用されるプログラムインタフェースをフックして、自身を隠して、検知を逃れる。例えば、稼動中プロセス一覧を取得するプログラミングインターフェースをフックし、自身のプロセス情報を除いて、呼び出し側にプロセス一覧を返すルートキットが存在する。また、別のルートキットでは、仮想メモリの一部モジュールを改変し、メモリからウィルスを検出できないように、自身のデータを隠すものがある。
However, in the above-mentioned conventional technology, since the virus intrusion is monitored through the interface provided by the OS even though it is the kernel space, a computer virus called “rootkit” with a function of hiding itself is detected. There is a problem that you can not do.
A “rootkit” hooks a program interface that is widely used from an application or system library, hides itself, and escapes detection. For example, there is a rootkit that hooks a programming interface for obtaining a list of active processes and returns a process list to a caller, excluding its own process information. In another rootkit, some modules of virtual memory are modified to hide their data so that viruses cannot be detected from the memory.

本発明は、このような問題を解決するためのものであり、その目的は「ルートキット」のような自分自身を隠す機能を備えたコンピュータウィルスを確実に検出することができるコンピュータウィルス検出システムを提供することである。   The present invention is intended to solve such problems, and an object of the present invention is to provide a computer virus detection system capable of reliably detecting a computer virus having a function of hiding itself such as a “rootkit”. Is to provide.

上記目的を達成するために本発明に係るコンピュータウィルス検出システムは、コンピュータウィルス検出対象のコンピュータ内に、アプリケーションの実行環境を提供する第1のゲストOSと、ウィルス検出手段の実行環境を提供する第2のゲストOSを互いに隔離して稼働させる仮想化手段を備えると共に、
前記ウィルス検出手段が、
前記アプリケーション及び第1のゲストOSが使用する仮想記憶手段を直接アクセスし、当該仮想化記憶手段内にコンピュータウィルスが存在するかを検出する第1の手段を備えることを特徴とする。
また、前記第1の手段が、前記仮想記憶手段内のプロセス管理ブロックポインタから辿れるプロセス一覧と前記第1のゲストOSが提供するインタフェースから得られたプロセス一覧とを比較することによりコンピュータウィルスを検出する手段を備えることを特徴とする。
また、前記第1の手段が、前記仮想記憶手段の状態と優先度別スレッド管理ブロックポインタから辿れるスレッド一覧と前記第1のゲストOSが提供するインタフェースから得られたスレッド一覧とを比較することによりコンピュータウィルスを検出する手段を備えることを特徴とする。
また、前記第1の手段が、前記仮想記憶手段の状態と優先度別スレッド管理ブロックポインタから辿れるスレッドの対応するプロセスが、前記仮想記憶手段のプロセス管理ブロックポインタから辿れるプロセスにあるか否かを判定することによりコンピュータウィルスを検出する手段を備えることを特徴とする。
また、前記第1の手段が、前記第1のゲストOSのプロセス管理ブロックから辿れる仮想アドレスと物理アドレス変換テーブルを利用して物理メモリアドレスを特定し、物理メモリ中のコンピュータウィルスを検出する手段を備えることを特徴とする。
また、前記第1の手段が、前記第1のゲストOSからアクセス可能なファイルの一覧と前記第1のゲストOSが利用している仮想記憶手段から得られるファイル一覧を比較することによりコンピュータウィルスを検出する手段を備えることを特徴とする。
また、前記ウィルス検出手段に代えて、前記仮想化手段により構築された仮想マシンがコンピュータウィルスを検出することを特徴とする。
In order to achieve the above object, a computer virus detection system according to the present invention provides a first guest OS providing an application execution environment and a virus detection means execution environment in a computer virus detection target computer. With virtualization means for operating two guest OSes isolated from each other,
The virus detecting means is
The virtual storage means used by the application and the first guest OS is directly accessed, and first means for detecting whether a computer virus exists in the virtual storage means is provided.
The first means detects a computer virus by comparing the process list traced from the process management block pointer in the virtual storage means with the process list obtained from the interface provided by the first guest OS. It is characterized by providing the means to do.
Further, the first means compares the thread list traced from the state of the virtual storage means and the thread management block pointer by priority with the thread list obtained from the interface provided by the first guest OS. A means for detecting a computer virus is provided.
Whether the first means is a process traceable from the process management block pointer of the virtual storage means is a process corresponding to the thread traceable from the thread management block pointer according to the status and priority of the virtual storage means. A means for detecting a computer virus by determining is provided.
A first means for identifying a physical memory address using a virtual address traced from the process management block of the first guest OS and a physical address conversion table and detecting a computer virus in the physical memory; It is characterized by providing.
Further, the first means compares the list of files accessible from the first guest OS with the file list obtained from the virtual storage means used by the first guest OS, thereby preventing computer viruses. It comprises a means for detecting.
Further, the virtual machine constructed by the virtualization means detects a computer virus instead of the virus detection means.

本発明によれば、アプリケーションの実行環境を提供する第1のゲストOSから隔離されて稼働する第2のゲストOSの稼働環境で実行されるウィルス検出手段が、仮想記憶手段(仮想メモリ、仮想ディスク)に直接アクセスしてウィルスを検索することにより、通常のウィルス検出技術では検出できないルートキット型のウィルスも検出できる。特に仮想記憶手段のテキスト領域を直接検索することで、仮想記憶手段内に実行コードで記録されたウィルスも検出できるようになる。ディスク、プロセスについても同様である。   According to the present invention, the virus detection means executed in the operating environment of the second guest OS that operates isolated from the first guest OS that provides the application execution environment is the virtual storage means (virtual memory, virtual disk). ) And directly searching for viruses, it is possible to detect rootkit viruses that cannot be detected by ordinary virus detection technology. In particular, by directly searching the text area of the virtual storage means, it becomes possible to detect a virus recorded as an execution code in the virtual storage means. The same applies to disks and processes.

以下、本発明を図面に示す実施の形態を参照して詳細に説明する。
図1は、本発明の第1の実施形態を示すシステム構成図である。
図1において、101はウィルス検索対象のコンピュータ上で稼動する一般のアプリケーションである。102はウィルス検索対象のコンピュータ上で稼動する監視エージェントであり、通常のOS(後述の第1のゲストOS)が提供するインタフェースを通じてアクセス可能なファイルやプロセスの情報をウィルス検出手段103に通知する。ここで通知する情報はルートキットにより改竄された情報であるかもしれない。
103は、本発明におけるウィルス検索の主要構成要素であるウィルス検出手段であり、検索対象コンピュータのメモリやディスクを直接検索する。
104は、ウィルス検索対象コンピュータにおいてアプリケーション101の実行環境を提供する第1のゲストOSである。
105は、ウィルス検出手段103の実行環境を提供する第2のゲストOSである。
106は、第1、第2のゲストOSを互いに隔離して稼働させるVirtual Machine Monitor(VMM)であり、1つのPCハードウェア上に複数のOSが稼動する際に必要なソフトウェアである。このVMM106は、各ゲストOS104,105のメモリやディスクへのアクセスを制御し、競合が起きないようにする仮想化手段を構成している。
107は、ウィルス検索対象のコンピュータのハードウェアである。このハードウェア107上にVMM106とゲストOS104とゲストOS105が稼動する。
108は、ウィルス検出手段103が利用するウィルスのパターンが含まれるシグネチャのデータベースである。実体は、ハードウェア107に付属のハードディスクの一部である。
109は、ウィルス検出手段103がアクセスする検索対象プロセス管理ブロックであり、図4に示すように構成されている。
Hereinafter, the present invention will be described in detail with reference to embodiments shown in the drawings.
FIG. 1 is a system configuration diagram showing a first embodiment of the present invention.
In FIG. 1, reference numeral 101 denotes a general application that runs on a virus search target computer. Reference numeral 102 denotes a monitoring agent that operates on a virus detection target computer, and notifies the virus detection means 103 of information on accessible files and processes through an interface provided by a normal OS (first guest OS described later). The information notified here may be information that has been falsified by the rootkit.
Reference numeral 103 denotes virus detection means, which is a main component of virus detection in the present invention, and directly searches the memory and disk of the search target computer.
Reference numeral 104 denotes a first guest OS that provides an execution environment for the application 101 in a virus detection target computer.
Reference numeral 105 denotes a second guest OS that provides an execution environment of the virus detection unit 103.
Reference numeral 106 denotes a virtual machine monitor (VMM) that operates the first and second guest OSs separately from each other, and is software necessary for operating a plurality of OSs on one PC hardware. This VMM 106 constitutes a virtualization means for controlling access to the memory and disk of each guest OS 104, 105 and preventing conflicts.
Reference numeral 107 denotes hardware of a computer to be searched for viruses. On this hardware 107, the VMM 106, the guest OS 104, and the guest OS 105 operate.
Reference numeral 108 denotes a signature database including virus patterns used by the virus detection means 103. The entity is a part of a hard disk attached to the hardware 107.
Reference numeral 109 denotes a search target process management block accessed by the virus detection means 103, and is configured as shown in FIG.

110は、第1のゲストOS104が使用する物理メモリに対応する仮想メモリである。実体はハードウェア107の物理メモリの一部である。第1のゲストOS104が意識する物理メモリのアドレスはVMM106によりハードウェア107の物理メモリのアドレスに変換される。ウィルス検出手段103は仮想メモリ中を直接検索する。この検索する際のアドレスは、第1のゲストOS104から見える物理アドレスであり、VMM106によりハードウェア107の物理メモリのアドレスに変換される。
111は、第1のゲストOS104が使用するハードディスクに対応する仮想ディスクである。実体はハードウェア107のハードディスク上のファイルである。第1のゲストOS104が意識するディスクのセクタはVMM106によりファイルのセクタないしはブロックに変換される。ウィルス検出手段103はこの仮想ディスク中を直接検索する。
113は、ウィルス検出手段103が利用するウィルスのパターンを更新したり、ウィルスの検出結果の報告を受ける管理サーバである。
Reference numeral 110 denotes a virtual memory corresponding to the physical memory used by the first guest OS 104. The entity is a part of the physical memory of the hardware 107. The physical memory address recognized by the first guest OS 104 is converted into the physical memory address of the hardware 107 by the VMM 106. The virus detection means 103 searches the virtual memory directly. The address used for this search is a physical address that can be seen from the first guest OS 104, and is converted into a physical memory address of the hardware 107 by the VMM 106.
Reference numeral 111 denotes a virtual disk corresponding to the hard disk used by the first guest OS 104. The entity is a file on the hard disk of the hardware 107. The sector of the disk recognized by the first guest OS 104 is converted into a sector or block of a file by the VMM 106. The virus detection means 103 directly searches the virtual disk.
A management server 113 updates a virus pattern used by the virus detection unit 103 and receives a report of a virus detection result.

図2は、第1のゲストOS104が管理するプロセス管理ブロックの構成例を示す図である。
図2において、201は、物理メモリ上の固定アドレスにある管理ブロックへのポイントを格納するグローバル変数を示す。このポインタから辿ることにより、第1のゲストOS104上で稼動しているプロセスの情報を得ることができる。
211〜216が1つのプロセス管理ブロックである。実際のプロセス管理ブロックは、さらに多くの情報を含んでいるが、これ以上は本発明にかかわらないので省略する。
211はプロセス管理ブロックの一部であるプロセスIDである。
212はプロセス管理ブロックの一部である親プロセスIDであり、このプロセスを生成したプロセスのIDを示す。
213は次のプロセス管理ブロックへのポインタであり、このポインタを次々と辿ることにより、全てのプロセス管理ブロックにアクセスすることができる。
214は、本プロセスが利用する仮想メモリに関する情報を含む。実際には、Page Directory(PD)302へのポインタやメモリのサイズなどの情報を含む。
215は、本プロセスがリソースへアクセスする際の権限を示すアクセストークンであり、本プロセスがファイル等のリソースにアクセスする際に、第1のゲストOS104は本アクセストークンを参照して、該リソースにアクセスを許可するか禁止するか判断する。
216は、本プロセスが保持しているハンドルのテーブルである。ハンドルとは、プロセスがアクセスしているファイルや通信路を識別するための識別子である。
FIG. 2 is a diagram illustrating a configuration example of a process management block managed by the first guest OS 104.
In FIG. 2, reference numeral 201 denotes a global variable that stores a point to a management block at a fixed address on the physical memory. By tracing from this pointer, information of processes running on the first guest OS 104 can be obtained.
211 to 216 are one process management block. The actual process management block contains more information, but more information is omitted because it is not related to the present invention.
Reference numeral 211 denotes a process ID which is a part of the process management block.
A parent process ID 212, which is a part of the process management block, indicates the ID of the process that generated this process.
Reference numeral 213 denotes a pointer to the next process management block. By following this pointer one after another, all process management blocks can be accessed.
214 includes information on the virtual memory used by this process. Actually, it includes information such as a pointer to the Page Directory (PD) 302 and a memory size.
Reference numeral 215 denotes an access token indicating the authority when this process accesses a resource. When this process accesses a resource such as a file, the first guest OS 104 refers to this access token to the resource. Determine whether access is allowed or prohibited.
Reference numeral 216 denotes a handle table held by this process. The handle is an identifier for identifying the file or communication path that is being accessed by the process.

図3は、1つのプロセスに対する仮想メモリを図示したものである。
図3において、301は、図2に示したプロセス管理ブロックのメモリ管理214を示したものであり、PD302の物理アドレスを含んでいる。仮想メモリはプロセスごとに存在するものであるので、仮想メモリの基点となる情報はメモリ管理214に含まれている。
302は、PD(Page Directory)であり、Page Table(PT)304へのポインタを含んだ配列である。本配列のインデックスは仮想アドレスの一部であるPage Directory Index(PDI)311にある。
303は、PD302の一要素であり、PT304の物理アドレスを含んでいる。
304は、PT(Page Table)であり、物理メモリ上のページへのポインタである物理アドレスを含んだ配列である。本配列のインデックスは仮想アドレスの一部であるPage Table Index(PTI)312にある。
305は、PT304の一要素であり、物理メモリ上のページのアドレスを含んでいる。
306は、物理メモリ上のページである。本ページ中のインデックスは仮想アドレスの一部であるByte Index(BI)313にある。
FIG. 3 illustrates virtual memory for one process.
In FIG. 3, 301 indicates the memory management 214 of the process management block shown in FIG. 2, and includes the physical address of the PD 302. Since the virtual memory exists for each process, information serving as a base point of the virtual memory is included in the memory management 214.
Reference numeral 302 denotes a PD (Page Directory), which is an array including a pointer to the Page Table (PT) 304. The index of this array is in the Page Directory Index (PDI) 311 which is a part of the virtual address.
303 is an element of the PD 302 and includes the physical address of the PT 304.
Reference numeral 304 denotes a PT (Page Table), which is an array including a physical address that is a pointer to a page on the physical memory. The index of this array is in Page Table Index (PTI) 312 which is a part of the virtual address.
305 is an element of the PT 304 and includes the address of a page on the physical memory.
Reference numeral 306 denotes a page on the physical memory. The index in this page is in Byte Index (BI) 313 which is a part of the virtual address.

ここで、PDI311とPTI312とBI313の組み合わせである仮想メモリのアドレスから物理メモリのアドレスへの変換は以下のように行われる。
まず、メモリ管理214からPDの物理アドレスを特定し、PDI311からPT304の物理アドレスを特定する。
次に、PTI312から物理メモリ上のページ306を特定し、BI311から物理アドレスを得る。第1のゲストOS104でなくても、メモリ管理214と仮想アドレスがわかれば、第2のゲストOS105からVMM106を通じて第1のゲストOS104上の物理アドレスが特定でき、物理メモリにアクセスできる。なお、通常のVMMでは、ゲストOSごとに仮想メモリや仮想ディスクが管理されており、他のゲストOSの仮想メモリはアクセスできないようになっている。
Here, the conversion from the virtual memory address, which is a combination of the PDI 311, the PTI 312, and the BI 313, to the physical memory address is performed as follows.
First, the physical address of the PD is specified from the memory management 214, and the physical address of the PT 304 is specified from the PDI 311.
Next, the page 306 in the physical memory is specified from the PTI 312 and the physical address is obtained from the BI 311. Even if it is not the first guest OS 104, if the memory management 214 and the virtual address are known, the physical address on the first guest OS 104 can be specified from the second guest OS 105 through the VMM 106, and the physical memory can be accessed. In a normal VMM, a virtual memory and a virtual disk are managed for each guest OS, and the virtual memory of another guest OS cannot be accessed.

以上の説明では、PT304に示される物理メモリのページ306は、物理メモリ上にあると仮定していたが、仮想メモリが物理メモリに格納しきれない場合には、ページフォルトの処理が必要となる。すなわち、ページアウトした物理メモリ上のページを仮想ディスク111から探して対応する仮想ディスク上のページにアクセスする。通常のページフォルトの処理では、物理メモリ上にディスク上のページデータをコピーするが、本来ゲストOS104の物理メモリに別のゲストOS105がアクセスしているので、コピーは行わない。   In the above description, it is assumed that the page 306 of the physical memory indicated by the PT 304 is on the physical memory. However, if the virtual memory cannot be stored in the physical memory, a page fault process is required. . That is, the page on the physical memory that has been paged out is searched from the virtual disk 111 and the corresponding page on the virtual disk is accessed. In normal page fault processing, page data on the disk is copied onto the physical memory, but is not copied because another guest OS 105 originally accesses the physical memory of the guest OS 104.

図4は、ウィルス検出手段103が利用する検索対象プロセス管理ブロック109の構成例を示す図である。
図4において、401は検索しているプロセスのプロセスIDを示し、プロセス管理ブロック109のプロセスID211に相当する。
402は、検索しているプロセス管理ブロックの物理アドレスを示す。
403は、仮想メモリを検索する際の開始する仮想アドレスを示す。
404は、該プロセスの検索が終了したことを示すフラグである。
以下、フローチャートを参照し、仮想メモリ110、仮想ディスク111に含まれるウィルスの検知方法、ファイルに含まれるウィルスの検知方法、プロセスを隠すウィルスの検知方法について説明する。これらは単独でもルートキットを検出することもできるが、これら3つを組み合わせることも可能である。
FIG. 4 is a diagram illustrating a configuration example of the search target process management block 109 used by the virus detection unit 103.
In FIG. 4, 401 indicates the process ID of the process being searched, and corresponds to the process ID 211 of the process management block 109.
Reference numeral 402 denotes the physical address of the process management block being searched.
Reference numeral 403 denotes a virtual address to be started when searching for virtual memory.
Reference numeral 404 denotes a flag indicating that the search for the process has ended.
Hereinafter, a virus detection method included in the virtual memory 110 and the virtual disk 111, a virus detection method included in the file, and a virus detection method that hides the process will be described with reference to flowcharts. These can detect rootkits alone or in combination of these three.

図5は、ウィルス検出手段103によるゲストOS104での仮想メモリ中のウィルスの検出手順を示すフローチャートである。
仮想メモリはプロセスごとに存在しており、プロセスが終了すれば対応する仮想メモリもなくなる。第1のゲストOS104でのプロセスの終了は、ウィルス検出手段103が稼動する第2のゲストOS105では検出できないので、ウィルス検出手段側で独自にプロセスの終了を判断し、終了したプロセスのウィルスを検索する必要がある。このために、図4に示した検索対象プロセス管理ブロック109を利用する。
まず、ステップ510において、検索対象プロセス管理ブロック109中の終了フラグ404が終了を示していれば、第1のゲストOS104が管理する図2に示したプロセス管理テーブルを辿り、次のプロセスをセットする。終了を示していなければ、そのままステップ520に進む。
辿り方の方法であるが、仮想メモリ110中のプロセス管理ブロックアドレス402にあるプロセス管理ブロックにアクセスし、該ブロックのプロセスID211が検索対象プロセス管理ブロックのプロセスID401に一致していることを確認、プロセスリンク213が示す次のプロセス管理ブロックにアクセスし、該ブロックのプロセスID211を検索対象プロセス管理ブロックのプロセスID401にコピー、プロセスリンク213にあったアドレスをプロセス管理ブロックアドレス402にセットし、次スキャンアドレス403をテキスト領域の先頭アドレスに、終了フラグ404をNOにセットする。テキスト領域とは、データではなく、いわゆる実行コードが置かれる領域である。
FIG. 5 is a flowchart showing a virus detection procedure in the virtual memory in the guest OS 104 by the virus detection unit 103.
A virtual memory exists for each process, and when the process ends, the corresponding virtual memory disappears. Since the end of the process in the first guest OS 104 cannot be detected in the second guest OS 105 in which the virus detection means 103 operates, the virus detection means independently determines the end of the process and searches for the virus of the ended process. There is a need to. For this purpose, the search target process management block 109 shown in FIG. 4 is used.
First, in step 510, if the end flag 404 in the search target process management block 109 indicates end, the process management table shown in FIG. 2 managed by the first guest OS 104 is traced to set the next process. . If the end is not indicated, the process proceeds to step 520 as it is.
As a method of tracing, the process management block at the process management block address 402 in the virtual memory 110 is accessed, and it is confirmed that the process ID 211 of the block matches the process ID 401 of the search target process management block. The next process management block indicated by the process link 213 is accessed, the process ID 211 of the block is copied to the process ID 401 of the search target process management block, the address corresponding to the process link 213 is set to the process management block address 402, and the next scan The address 403 is set to the head address of the text area, and the end flag 404 is set to NO. The text area is an area in which so-called execution code is placed instead of data.

次に、ステップ520において、次スキャンアドレス403にある仮想アドレスからウィルスコードが含まれていないか、シグネチャ108と照合する。仮想アドレスから物理メモリへアクセスする方法は、図3にて説明した。
次に、ステップ530において、シグネチャ108に一致するコードのパターンがあった場合には、管理サーバ113に通知する。
次に、ステップ540において、一定サイズのテキスト領域をスキャンしたら、次にスキャンする仮想メモリのアドレスを次スキャンアドレス403に格納する。最後までスキャンしたら終了フラグにYESをセットする。
次にステップ510に戻り、図5の処理を継続する。
Next, in step 520, the signature 108 is checked whether a virus code is included from the virtual address at the next scan address 403. The method of accessing the physical memory from the virtual address has been described with reference to FIG.
Next, in step 530, if there is a code pattern that matches the signature 108, the management server 113 is notified.
Next, in step 540, when a text area of a certain size is scanned, the address of the virtual memory to be scanned next is stored in the next scan address 403. After scanning to the end, set the end flag to YES.
Next, the processing returns to step 510 and the processing of FIG. 5 is continued.

図6は、ウィルス検出手段103による第1のゲストOS104での仮想ディスク中の隠れファイルの検出手順を示すフローチャートである。
まず、ステップ610において、ウィルス検出手段103が第1のゲストOS104上の監視エージェント102にアプリケーションからアクセス可能なファイル一覧を問い合わせる。通常VMM106ではゲストOS間のTCP/IP通信が可能であるので、これを利用する。
次に、ステップ620において、監視エージェント102がファイル一覧をウィルス検出手段103に送り返す。一覧の作成方法は特に重要ではない。通常利用できるOSのインタフェースを利用して作成する。
FIG. 6 is a flowchart showing a procedure for detecting hidden files in the virtual disk in the first guest OS 104 by the virus detection means 103.
First, in step 610, the virus detection means 103 inquires of the monitoring agent 102 on the first guest OS 104 about a list of files accessible from the application. Normally, the VMM 106 uses TCP / IP communication between guest OSes, and this is used.
Next, in step 620, the monitoring agent 102 sends the file list back to the virus detection means 103. The method of creating the list is not particularly important. Created using a normally available OS interface.

次に、ステップ630において、ウィルス検出手段103が先の返答を受信する。さらに、仮想ディスク111を検索して当該仮想ディスク111上のファイル一覧を生成する。仮想ディスク111の実体はファイルであるが、ファイルシステムとしてみれば、ディスクとファイルの差はないので、通常のディスクのセクタをファイルのセクタ(ブロック)と看做すことでファイル一覧が作成できる。
次にステップ640において、2つのファイル一覧を比較し、監視エージェント102から見えないファイルがあれば、ルートキット型ウィルスにより隠蔽されたファイルが存在するものと看做し、管理サーバ113に通知する。
なお、ここでは、ファイル一覧を一挙に比較しているが、フォルダ単位とかファイル一覧作成時のファイル数の上限を定めて、分割しながら比較してもよい。
Next, in step 630, the virus detection means 103 receives the previous response. Further, the virtual disk 111 is searched to generate a file list on the virtual disk 111. The entity of the virtual disk 111 is a file. However, when viewed as a file system, there is no difference between a disk and a file, so that a file list can be created by regarding a normal disk sector as a file sector (block).
Next, in step 640, the two file lists are compared, and if there is a file that cannot be seen from the monitoring agent 102, it is assumed that there is a file hidden by the rootkit virus, and the management server 113 is notified.
Here, the file lists are compared all at once, but the upper limit of the number of files at the time of creating the file list may be determined by dividing the file list.

図7は、ウィルス検出手段103による第1のゲストOS104での隠れプロセスの検出手順を示すフローチャートである。
まず、ステップ710において、ウィルス検出手段103が第1のゲストOS104上の監視エージェント102にアプリケーションから見えるプロセス一覧を問い合わせる。
ステップ720において、監視エージェント103がプロセス一覧をウィルス検出手段103に送り返す。一覧の作成方法は特に重要ではない。通常利用できるOSのインタフェースを利用して作成する。
ステップ730において、ウィルス検出手段103が先の返答を受信する。さらに、図2に示した第1のゲストOS104のプロセス管理ブロック109を辿ることで、プロセス一覧を作成する。
FIG. 7 is a flowchart showing a hidden process detection procedure in the first guest OS 104 by the virus detection means 103.
First, in step 710, the virus detection unit 103 inquires of the monitoring agent 102 on the first guest OS 104 about a process list that can be seen from the application.
In step 720, the monitoring agent 103 sends the process list back to the virus detection unit 103. The method of creating the list is not particularly important. Created using a normally available OS interface.
In step 730, the virus detection means 103 receives the previous response. Further, a process list is created by tracing the process management block 109 of the first guest OS 104 shown in FIG.

続くステップ740において、2つのプロセス一覧を比較し、監視エージェントから見えないプロセスがあれば、ルートキット型ウィルスにより隠蔽されたプロセスが存在するものと看做し、管理サーバ113に通知する。   In subsequent step 740, the two process lists are compared, and if there is a process that cannot be seen by the monitoring agent, it is assumed that there is a process hidden by the rootkit virus, and the management server 113 is notified.

(第2の実施形態)
前述の実施形態においては、隠れプロセスの検出方法を説明したが、同様の方法で隠れスレッドを検出することも可能である。プロセスはプロセスブロックポインタから辿ることができるが、スレッドは、状態や優先度に応じて図2と同様にリンクの形で管理されている。状態としては、レディ、待機などの状態があり、優先度には例えば32のレベルがある。状態と優先度を組み合わせてスレッド管理ブロックを辿ることで、全てのスレッドを得ることができ、プロセスと同様に隠れたスレッドを探すことができる。
スレッド管理ブロックには、対応するプロセスIDが含まれているので、図7で得たプロセス一覧と比較することで、仮に先の形態で検出漏れが生じたプロセスがあったとしても、スレッドから発見することもできる。
(Second Embodiment)
In the above-described embodiment, the hidden process detection method has been described. However, it is also possible to detect a hidden thread by a similar method. The process can be traced from the process block pointer, but the thread is managed in the form of a link in the same manner as in FIG. 2 according to the state and priority. The state includes a state such as ready and standby, and there are 32 levels of priority, for example. By tracing the thread management block with a combination of state and priority, all threads can be obtained, and hidden threads can be searched for as well as processes.
Since the corresponding process ID is included in the thread management block, it is found from the thread even if there is a process that has been missed in the previous form by comparing with the process list obtained in FIG. You can also

(第3の実施形態)
前述の実施形態においては、第1のゲストOS104とは別の第2のゲストOS105上のウィルス検出手段103が検出の主体であったが、第1のOS104とは別に仮想メモリ110と仮想ディスク111にアクセスできる主体であれば良く、VMM106をウィルス検索の主体とする構成であってもよい。
(Third embodiment)
In the above-described embodiment, the virus detection unit 103 on the second guest OS 105 other than the first guest OS 104 is the main subject of detection. However, the virtual memory 110 and the virtual disk 111 are separate from the first OS 104. As long as it is a main body that can access the network, a configuration in which the VMM 106 is a main body for virus search may be used.

本発明の実施の形態を示すシステム構成図である。It is a system configuration figure showing an embodiment of the invention. 図1におけるプロセス管理ブロックの構成例を示す図である。It is a figure which shows the structural example of the process management block in FIG. 図1における仮想メモリの構成例を示す図である。It is a figure which shows the structural example of the virtual memory in FIG. プロセス管理ブロック構成例を示す図である。It is a figure which shows the example of a process management block structure. 仮想メモリ上のウィルス検索手順を示すフローチャートである。It is a flowchart which shows the virus search procedure on a virtual memory. ウィルスによって隠蔽されたディスク上の隠れファイルの検索手順を示すフローチャートである。It is a flowchart which shows the search procedure of the hidden file on the disk concealed with the virus. ウィルスによって隠蔽されたディスク上の隠れプロセスの検索手順を示すフローチャートである。It is a flowchart which shows the search procedure of the hidden process on the disk concealed with the virus.

符号の説明Explanation of symbols

101: 一般アプリケーション
102: 監視エージェント
103: ウィルス検出手段
104: 第1のゲストOS
105: 第2のゲストOS
106: 第1、第2のゲストOSが稼動するVMM(仮想化手段)
107: 第1、第2のゲストOS、VMMが稼動するハードウェア
108: ウィルスのシグネチャのデータベース
109: 検索対象プロセス管理ブロック
110: 仮想メモリ
111: 仮想ディスク
112: ネットワーク
113: 管理サーバ
201: プロセスブロックポインタ
211: プロセスID
212: 親プロセスID
213: 次のプロセス管理ブロックをポイントするプロセスリンク
214: 仮想メモリの情報を含むメモリ管理
215: アクセストークン
216: ハンドルテーブル
311: 仮想メモリアドレス中のPage Directory Index
312: 仮想メモリアドレス中のPage Table Index
313: 仮想メモリアドレス中のByte Index
401: プロセスID
402: プロセス管理ブロックアドレス
403: 次スキャンアドレス
404: 終了フラグ
101: General application 102: Monitoring agent 103: Virus detection means 104: First guest OS
105: Second guest OS
106: VMM (virtualization means) in which the first and second guest OSs run
107: Hardware on which the first and second guest OSs and VMM operate 108: Virus signature database 109: Search target process management block 110: Virtual memory 111: Virtual disk 112: Network 113: Management server 201: Process block Pointer 211: Process ID
212: Parent process ID
213: Process link 214 pointing to the next process management block: Memory management including virtual memory information 215: Access token 216: Handle table 311: Page Directory Index in virtual memory address
312: Page Table Index in the virtual memory address
313: Byte Index in virtual memory address
401: Process ID
402: Process management block address 403: Next scan address 404: End flag

Claims (7)

コンピュータウィルス検出対象のコンピュータ内に、アプリケーションの実行環境を提供する第1のゲストOSと、ウィルス検出手段の実行環境を提供する第2のゲストOSを互いに隔離して稼働させる仮想化手段を備えると共に、
前記ウィルス検出手段が、
前記アプリケーション及び第1のゲストOSが使用する仮想記憶手段を直接アクセスし、当該仮想化記憶手段内にコンピュータウィルスが存在するかを検出する第1の手段を備えることを特徴とするコンピュータウィルス検出システム。
The computer virus detection target computer includes a virtualization unit that operates the first guest OS that provides the execution environment of the application and the second guest OS that provides the execution environment of the virus detection unit separately from each other. ,
The virus detecting means is
A computer virus detection system comprising: first means for directly accessing virtual storage means used by the application and the first guest OS and detecting whether a computer virus exists in the virtual storage means.
前記第1の手段が、前記仮想記憶手段内のプロセス管理ブロックポインタから辿れるプロセス一覧と前記第1のゲストOSが提供するインタフェースから得られたプロセス一覧とを比較することによりコンピュータウィルスを検出する手段を備えることを特徴とする請求項1に記載のコンピュータウィルス検出システム。   The first means detects a computer virus by comparing a process list traced from a process management block pointer in the virtual storage means with a process list obtained from an interface provided by the first guest OS. The computer virus detection system according to claim 1, further comprising: 前記第1の手段が、前記仮想記憶手段の状態と優先度別スレッド管理ブロックポインタから辿れるスレッド一覧と前記第1のゲストOSが提供するインタフェースから得られたスレッド一覧とを比較することによりコンピュータウィルスを検出する手段を備えることを特徴とする請求項1に記載のコンピュータウィルス検出システム。   The first means compares the list of threads traced from the state of the virtual storage means and the thread management block pointer by priority with the list of threads obtained from the interface provided by the first guest OS, thereby generating a computer virus. The computer virus detection system according to claim 1, further comprising means for detecting 前記第1の手段が、前記仮想記憶手段の状態と優先度別スレッド管理ブロックポインタから辿れるスレッドの対応するプロセスが、前記仮想記憶手段のプロセス管理ブロックポインタから辿れるプロセスにあるか否かを判定することによりコンピュータウィルスを検出する手段を備えることを特徴とする請求項1に記載のコンピュータウィルス検出システム。   The first means determines whether or not the corresponding process of the thread traced from the thread management block pointer according to the status and priority of the virtual storage means is a process traced from the process management block pointer of the virtual storage means. The computer virus detection system according to claim 1, further comprising means for detecting a computer virus. 前記第1の手段が、前記第1のゲストOSのプロセス管理ブロックから辿れる仮想アドレスと物理アドレス変換テーブルを利用して物理メモリアドレスを特定し、物理メモリ中のコンピュータウィルスを検出する手段を備えることを特徴とする請求項1に記載のコンピュータウィルス検出システム。   The first means includes means for specifying a physical memory address using a virtual address and a physical address conversion table traced from the process management block of the first guest OS and detecting a computer virus in the physical memory. The computer virus detection system according to claim 1. 前記第1の手段が、前記第1のゲストOSからアクセス可能なファイルの一覧と前記第1のゲストOSが利用している仮想記憶手段から得られるファイル一覧を比較することによりコンピュータウィルスを検出する手段を備えることを特徴とする請求項1に記載のコンピュータウィルス検出システム。   The first means detects a computer virus by comparing a list of files accessible from the first guest OS and a file list obtained from virtual storage means used by the first guest OS. The computer virus detection system according to claim 1, further comprising means. 前記ウィルス検出手段に代えて、前記仮想化手段により構築された仮想マシンがコンピュータウィルスを検出することを特徴とする請求項1〜6のいずれか一項に記載のコンピュータウィルス検出システム。   The computer virus detection system according to claim 1, wherein a virtual machine constructed by the virtualization unit detects a computer virus instead of the virus detection unit.
JP2008215337A 2008-08-25 2008-08-25 Computer virus detection system Pending JP2010049627A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008215337A JP2010049627A (en) 2008-08-25 2008-08-25 Computer virus detection system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008215337A JP2010049627A (en) 2008-08-25 2008-08-25 Computer virus detection system

Publications (1)

Publication Number Publication Date
JP2010049627A true JP2010049627A (en) 2010-03-04

Family

ID=42066633

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008215337A Pending JP2010049627A (en) 2008-08-25 2008-08-25 Computer virus detection system

Country Status (1)

Country Link
JP (1) JP2010049627A (en)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010055318A (en) * 2008-08-27 2010-03-11 Hitachi Ltd Computer system having hypervisor
JP2011233126A (en) * 2010-04-28 2011-11-17 Electronics And Telecommunications Research Institute Device, system and method for detecting malignant code which is disguised as normal and inserted to normal process
JP2012003488A (en) * 2010-06-16 2012-01-05 Kddi Corp Portable terminal and program
CN102339371A (en) * 2011-09-14 2012-02-01 奇智软件(北京)有限公司 Method, device and virtual machine for detecting rogue program
US8745745B2 (en) 2012-06-26 2014-06-03 Lynuxworks, Inc. Systems and methods involving features of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, rootkit detection/prevention, and/or other features
WO2015045043A1 (en) * 2013-09-25 2015-04-02 三菱電機株式会社 Process verification device, process verification program, and process verification method
US9203855B1 (en) 2014-05-15 2015-12-01 Lynx Software Technologies, Inc. Systems and methods involving aspects of hardware virtualization such as hypervisor, detection and interception of code or instruction execution including API calls, and/or other features
US9213840B2 (en) 2014-05-15 2015-12-15 Lynx Software Technologies, Inc. Systems and methods involving features of hardware virtualization, hypervisor, APIs of interest, and/or other features
US9390267B2 (en) 2014-05-15 2016-07-12 Lynx Software Technologies, Inc. Systems and methods involving features of hardware virtualization, hypervisor, pages of interest, and/or other features
JP2018524720A (en) * 2015-06-27 2018-08-30 マカフィー, エルエルシー Malware mitigation
US10824715B2 (en) 2014-07-01 2020-11-03 Lynx Software Technologies, Inc. Systems and methods involving aspects of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, anti-fingerprinting, and/or other features
US11782745B2 (en) 2014-07-01 2023-10-10 Lynx Software Technologies, Inc. Systems and methods involving aspects of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, anti-fingerprinting and/or other features

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010055318A (en) * 2008-08-27 2010-03-11 Hitachi Ltd Computer system having hypervisor
JP2011233126A (en) * 2010-04-28 2011-11-17 Electronics And Telecommunications Research Institute Device, system and method for detecting malignant code which is disguised as normal and inserted to normal process
US8955124B2 (en) 2010-04-28 2015-02-10 Electronics And Telecommunications Research Institute Apparatus, system and method for detecting malicious code
JP2012003488A (en) * 2010-06-16 2012-01-05 Kddi Corp Portable terminal and program
CN102339371A (en) * 2011-09-14 2012-02-01 奇智软件(北京)有限公司 Method, device and virtual machine for detecting rogue program
US9607151B2 (en) 2012-06-26 2017-03-28 Lynx Software Technologies, Inc. Systems and methods involving features of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, rootkit detection/prevention, and/or other features
US8745745B2 (en) 2012-06-26 2014-06-03 Lynuxworks, Inc. Systems and methods involving features of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, rootkit detection/prevention, and/or other features
US11861005B2 (en) 2012-06-26 2024-01-02 Lynx Software Technologies, Inc. Systems and methods involving features of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, rootkit detection/prevention, and/or other features
US10671727B2 (en) 2012-06-26 2020-06-02 Lynx Software Technologies, Inc. Systems and methods involving features of securely handling attempts to perform boot modifications(s) via a separation kernel hypervisor
WO2015045043A1 (en) * 2013-09-25 2015-04-02 三菱電機株式会社 Process verification device, process verification program, and process verification method
JP6000465B2 (en) * 2013-09-25 2016-09-28 三菱電機株式会社 Process inspection apparatus, process inspection program, and process inspection method
US10073973B2 (en) 2013-09-25 2018-09-11 Mitsubishi Electric Corporation Process testing apparatus, computer-readable medium, and process testing method
US9940174B2 (en) 2014-05-15 2018-04-10 Lynx Software Technologies, Inc. Systems and methods involving features of hardware virtualization, hypervisor, APIs of interest, and/or other features
US9648045B2 (en) 2014-05-15 2017-05-09 Lynx Software Technologies, Inc. Systems and methods involving aspects of hardware virtualization such as hypervisor, detection and interception of code or instruction execution including API calls, and/or other features
US10051008B2 (en) 2014-05-15 2018-08-14 Lynx Software Technologies, Inc. Systems and methods involving aspects of hardware virtualization such as hypervisor, detection and interception of code or instruction execution including API calls, and/or other features
US9390267B2 (en) 2014-05-15 2016-07-12 Lynx Software Technologies, Inc. Systems and methods involving features of hardware virtualization, hypervisor, pages of interest, and/or other features
US10095538B2 (en) 2014-05-15 2018-10-09 Lynx Software Technologies, Inc. Systems and methods involving features of hardware virtualization, hypervisor, pages of interest, and/or other features
US9213840B2 (en) 2014-05-15 2015-12-15 Lynx Software Technologies, Inc. Systems and methods involving features of hardware virtualization, hypervisor, APIs of interest, and/or other features
US10789105B2 (en) 2014-05-15 2020-09-29 Lynx Software Technologies, Inc. Systems and methods involving features of hardware virtualization, hypervisor, APIs of interest, and/or other features
US11782766B2 (en) 2014-05-15 2023-10-10 Lynx Software Technologies, Inc. Systems and methods involving features of hardware virtualization, hypervisor, APIs of interest, and/or other features
US9203855B1 (en) 2014-05-15 2015-12-01 Lynx Software Technologies, Inc. Systems and methods involving aspects of hardware virtualization such as hypervisor, detection and interception of code or instruction execution including API calls, and/or other features
US10824715B2 (en) 2014-07-01 2020-11-03 Lynx Software Technologies, Inc. Systems and methods involving aspects of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, anti-fingerprinting, and/or other features
US11782745B2 (en) 2014-07-01 2023-10-10 Lynx Software Technologies, Inc. Systems and methods involving aspects of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, anti-fingerprinting and/or other features
JP2018524720A (en) * 2015-06-27 2018-08-30 マカフィー, エルエルシー Malware mitigation

Similar Documents

Publication Publication Date Title
JP2010049627A (en) Computer virus detection system
US10235520B2 (en) System and method for analyzing patch file
JP6829718B2 (en) Systems and methods for tracking malicious behavior across multiple software entities
US20140259169A1 (en) Virtual machines
KR101946982B1 (en) Process Evaluation for Malware Detection in Virtual Machines
US9323931B2 (en) Complex scoring for malware detection
CN107066311B (en) Kernel data access control method and system
US8719935B2 (en) Mitigating false positives in malware detection
US20170124327A1 (en) Detecting malware when executing in a system
US8474039B2 (en) System and method for proactive detection and repair of malware memory infection via a remote memory reputation system
JP4938576B2 (en) Information collection system and information collection method
JP2017527931A (en) Malware detection method and system
US12001543B2 (en) System and method for container assessment using sandboxing
EP3123311A1 (en) Malicious code protection for computer systems based on process modification
US11928206B2 (en) Selective import/export address table filtering
EP3825883B1 (en) Hypervisor-based interception of memory accesses
JP2010182019A (en) Abnormality detector and program
US12079337B2 (en) Systems and methods for identifying malware injected into a memory of a computing device
US20170286670A1 (en) Malware detection and identification using deviations in one or more operating parameters
US8065730B1 (en) Anti-malware scanning in a virtualized file system environment
US20210049292A1 (en) Hypervisor-Based Interception of Memory and Register Accesses
Mahapatra et al. An online cross view difference and behavior based kernel rootkit detector
WO2022228664A1 (en) Management server and method for file storage management
CN113407935A (en) File detection method and device, storage medium and server