JP2010262609A - Efficient technique for dynamic analysis of malware - Google Patents

Efficient technique for dynamic analysis of malware Download PDF

Info

Publication number
JP2010262609A
JP2010262609A JP2009124674A JP2009124674A JP2010262609A JP 2010262609 A JP2010262609 A JP 2010262609A JP 2009124674 A JP2009124674 A JP 2009124674A JP 2009124674 A JP2009124674 A JP 2009124674A JP 2010262609 A JP2010262609 A JP 2010262609A
Authority
JP
Japan
Prior art keywords
program
malware
analysis
detection
dynamic analysis
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
JP2009124674A
Other languages
Japanese (ja)
Inventor
Ryoji Kanai
良治 金居
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.)
Fourteenforty Research Institute
Original Assignee
Fourteenforty Research Institute
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 Fourteenforty Research Institute filed Critical Fourteenforty Research Institute
Priority to JP2009124674A priority Critical patent/JP2010262609A/en
Publication of JP2010262609A publication Critical patent/JP2010262609A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a high-precision malware detection technique capable of reducing the rate of malware detection errors and reducing the processing load on a system. <P>SOLUTION: Analysis information obtained from static analysis is reflected also on a module of dynamic analysis and thereby the static analysis is associated with the dynamic analysis. A determination is made as to whether or not a program to be analyzed is a malware. Further, a determination is made as to whether not the program is a malware, by detecting the behavior of the program to unmap its own file image, and detecting the behavior of the program to register itself as a service. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、プログラム、情報機器およびマルウェア判定方法に関する。The present invention relates to a program, an information device, and a malware determination method.

マルウェア(malicious software)は、悪意あるコードを含むソフトウェアおよびファイルを指す。コンピュータウイルス、トロイの木馬、ボット、ワーム、スパイウェア等、遠隔地のコンピュータに侵入し攻撃を行うプログラム、他のコンピュータへの感染活動や破壊活動を行うプログラム、および、情報を外部に漏洩する有害な動作を含める。Malware (software) refers to software and files that contain malicious code. Computer viruses, Trojan horses, bots, worms, spyware, and other programs that invade and attack remote computers, programs that infect or destroy other computers, and harmful information that leaks information to the outside Include behavior.

マルウェアの静的解析は、解析対象となるプログラムの実行前に検査を行い、マルウェアかどうか判定する手法を指す。Windows(登録商標;以下、略記する)プログラムでは、プログラム実行前であってもプログラムファイルを検査することで取得できる情報がある。プログラム自身のファイルサイズ、プログラムに電子署名があるかどうか、実行プログラムファイルのハッシュ値等が実行前に取得できる情報に含まれる。各プログラムはこれら実行前に分かる情報をデータベースとして持っており、静的解析ではこのデータベースを検査することでマルウェアか否かを判定する。Malware static analysis refers to a method of determining whether or not malware is inspected before execution of a program to be analyzed. In a Windows (registered trademark; hereinafter abbreviated) program, there is information that can be acquired by inspecting a program file even before the program is executed. Information that can be acquired before execution includes the file size of the program itself, whether the program has an electronic signature, the hash value of the execution program file, and the like. Each program has information that can be understood before execution as a database, and in static analysis, this database is inspected to determine whether it is malware or not.

マルウェアの動的解析は、解析対象となるプログラムを実行後、その挙動を検査してマルウェアか否か判定する手法を指す。マルウェアらしき振る舞いとして判定する挙動には、メールを大量に送り始める、ファイアウォールやOS(Operating System)のセキュリティ機能を停止する、システムファイルを削除する、他のプロセスに侵入しコードを実行する等が含まれる。これらの挙動を行っているかを解析することで、プログラムがマルウェアか否かを判定する。The dynamic analysis of malware refers to a method of determining whether or not the program is malware by inspecting its behavior after executing the analysis target program. Behaviors that are determined to be malware-like behavior include starting to send a large amount of emails, stopping firewall and OS (Operating System) security functions, deleting system files, intruding into other processes and executing code, etc. It is. By analyzing whether these behaviors are performed, it is determined whether or not the program is malware.

従来のマルウェア検出手法では、静的解析(段落0003)と動的解析(段落0004)が別々のモジュールとして実装されており、それぞれのモジュールが独立して動作していた。もしくは、静的解析と動的解析の両モジュール間に情報の受け渡しがあったとしても、例えば一部の信用できるプログラムについては動的解析を一切実行しないといった限定的な手法が採用されていた。なお、本項(段落0005)での「信用できるプログラム」とは、静的解析単独の判断によって非マルウェアと分類されたファイルを指す。In the conventional malware detection method, static analysis (paragraph 0003) and dynamic analysis (paragraph 0004) are implemented as separate modules, and each module operates independently. Or, even if there is information exchange between both modules of static analysis and dynamic analysis, for example, a limited method is adopted in which dynamic analysis is not executed at all for some trusted programs. Note that the “trusted program” in this section (paragraph 0005) refers to a file classified as non-malware based on the judgment of static analysis alone.

特許公表2009−500706Patent publication 2009-500706 特許出願2008−518975Patent application 2008-518975

従来の手法では、ファイルがマルウェアであるか否かを判定する際に、静的解析および動的解析がそれぞれ独立したモジュールで解析を行っている。判定基準となる情報が限定的であるため、False Positive(マルウェアとして検出しなくてもよい通常のプログラムを誤ってマルウェアと判断してしまう状態)やFalse Negative(検出すべきマルウェアを取りこぼす状態)といった誤検出が発生する等、セキュリティ対策プログラムとしての有用性および可用性に欠けていた。In the conventional method, when determining whether or not a file is malware, static analysis and dynamic analysis are performed by independent modules. Because the information that is the criterion is limited, False Positive (a state in which a normal program that does not need to be detected as malware is mistakenly determined as malware) or False Negative (a state in which malware to be detected is missed) As a result of such a false detection, the utility and availability as a security countermeasure program were lacking.

あるいは、特許文献1による請求項12および請求項24において、マルウェアもしくは非マルウェアと判断されたオブジェクトに対して動作を制限するマスクを設定、そのマスクで規定された動作以外の動きをした場合にマルウェアとして判定する。マルウェア判定もしくはマスク設定の根拠として、オブジェクトのサイズ、ファイル名、およびヘッダ情報等があげられている。この方式の問題点の一つに、サーバが必要となることがあげられる。また、マスクを行うことによりマルウェアを判定するとあるが、マスクとして説明されている挙動(段落0088)はどれもマルウェアに限らず通常のプログラムでも見られる基本的な挙動であり、マルウェア判定基準としては決定力に欠ける。前記理由により、当該の発明はポリシー制御を行うためのアプローチにすぎず、マルウェアを解析もしくは検出する手法としては精度が不十分である。Alternatively, in claims 12 and 24 according to Patent Document 1, a mask is set that restricts the operation of an object that is determined to be malware or non-malware, and the malware moves when a movement other than the action defined by the mask is performed. Judge as. As the basis for malware determination or mask setting, object size, file name, header information, and the like are listed. One of the problems with this method is that a server is required. In addition, although malware is determined by performing a mask, all the behaviors described as masks (paragraph 0088) are basic behaviors that can be seen in ordinary programs as well as malware. Lack of decisive power. For the above reasons, the present invention is merely an approach for policy control, and the accuracy is insufficient as a technique for analyzing or detecting malware.

上記課題を解決するため、請求項1に記載の発明は、コンピュータを静的解析と動的解析を効果的に連携させることにより、解析対象ソフトウェアがマルウェアか否かを効率よく判定する制御手段、として機能させる。In order to solve the above problem, the invention according to claim 1 is a control means for efficiently determining whether or not the analysis target software is malware by effectively linking a computer with static analysis and dynamic analysis. To function as.

また、請求項2および請求項3に記載の発明は、従来技術での検出方法の不足を補い、検出漏れの防止を目的として、(7)プログラムが自分自身のファイルイメージをアンマップしようする挙動や、(8)プログラムが自分自身をサービスとして登録しようとする挙動を捕らえる、新しい動的解析手法として機能させる。Further, the inventions according to claim 2 and claim 3 are (7) a behavior in which a program attempts to unmap its own file image for the purpose of compensating for the lack of detection methods in the prior art and preventing detection omissions. And (8) The program functions as a new dynamic analysis method that captures the behavior of registering itself as a service.

静的解析で得られる情報を、段落0009の手法により段落0010および背景技術(段落0004)を含めた動的解析にフィードバックさせることで、マルウェア検出精度の向上と検出手続きの効率化を図る。The information obtained by the static analysis is fed back to the dynamic analysis including the paragraph 0010 and the background art (paragraph 0004) by the method of the paragraph 0009, thereby improving the malware detection accuracy and improving the efficiency of the detection procedure.

本発明は、マルウェア誤検出の割合低減による効率的なマルウェア検出、かつ、実施システムでの負荷軽減を特徴としている。マルウェア攻撃の未然防御ならびに被害の拡大防止に繋がり、よって、本発明を含むプログラムの利用者に、セキュリティシステム構築に主眼をおくマルウェア対策として十分な機能を提供できる。The present invention is characterized by efficient malware detection by reducing the rate of malware false detection and reducing the load on the implementation system. This leads to the prevention of malware attacks and the prevention of the spread of damage. Therefore, it is possible to provide the user of the program including the present invention with a sufficient function as a malware countermeasure focusing on security system construction.

プログラムと呼び出される関数間の動的リンクを示すブロック図である。It is a block diagram which shows the dynamic link between the program and the function called. プログラムをメモリ空間にマップする処理を示すブロック図である。It is a block diagram which shows the process which maps a program to memory space. 静的解析によるファイル種別の判定処理を示すフローチャートである。It is a flowchart which shows the determination processing of the file type by static analysis. 静的解析で取得したファイル種別の判定情報を動的解析に反映しマルウェア検出処理を行う手順を示すフローチャートである。It is a flowchart which shows the procedure which reflects the determination information of the file type acquired by static analysis in dynamic analysis, and performs a malware detection process. 静的解析および動的解析の連携による効率的なマルウェア検出の手法を取り入れたセキュリティ対策プログラムの動作処理を示すフローチャートである。It is a flowchart which shows the operation | movement process of the security countermeasure program which took in the technique of the efficient malware detection by cooperation of a static analysis and a dynamic analysis.

(a)「プログラムに電子署名が付与されているか」を判定する静的解析
(b)「プログラムはインストーラか」を判定する静的解析
(c)「プログラムはパッカーを使用しているか」を判定する静的解析
(d)「プログラムはコピープロテクト等の商用パッカーを使用しているか」を判定する静的解析
(e)「プログラムは自己解凍書庫か」を判定する静的解析
(1)「関数が通常とは異なる方法で呼ばれた」挙動を捕らえる動的解析
(2)「自分自身のコピーを作成し、それを実行しようとした」挙動を捕らえる動的解析
(3)「GUIを持たないプログラムが、システムユーティリティやバッチファイルを実行した」挙動を捕らえる動的解析
(4)「デバッグ権限を取得しようとした」挙動を捕らえる動的解析
(5)「ドライバをロードしようとした」挙動を捕らえる動的解析
(6)「他プロセスを開こうとした」挙動を捕らえる動的解析
(7)「自分自身のファイルイメージをアンマップしようとした」挙動を捕らえる動的解析
(8)「自分自身をサービスとして登録しようとした」挙動を捕らえる動的解析
(A) Static analysis for determining whether the program has an electronic signature (b) Static analysis for determining whether the program is an installer (c) Judging whether the program uses a packer Static analysis (d) Static analysis to determine "The program uses a commercial packer such as copy protection" (e) Static analysis to determine "The program is a self-extracting archive" (1) "Function Dynamic analysis that captures the behavior that was called in a different way than usual (2) Dynamic analysis that captures the behavior that "created a copy of itself and tried to execute it" (3) "does not have a GUI Dynamic analysis that captures the behavior of a program that has executed a system utility or batch file (4) Dynamic analysis that captures a behavior that "tried to acquire debugging privileges" (5) Dynamic analysis that captures the “tried” behavior (6) Dynamic analysis that captures the “tried to open another process” behavior (7) Dynamic analysis that captures the “tried to unmap your own file image” behavior (8) Dynamic analysis that captures the behavior of "attempting to register itself as a service"

以下、本発明の実施形態を、静的解析と動的解析を連携させたマルウェア検出の手順に基づいて説明する。なお、実施形態は下記に限定されるものではない。Hereinafter, an embodiment of the present invention will be described based on a malware detection procedure in which static analysis and dynamic analysis are linked. The embodiment is not limited to the following.

ユーザーがプログラムを実行する時、解析モジュールはまずその実行されるプログラムに対して静的解析を行う。この静的解析ではプログラム実行前のマルウェアチェックを行う。この段階でマルウェアと判定できない場合に、プログラムを実行して動的解析を行う。When a user executes a program, the analysis module first performs a static analysis on the executed program. This static analysis checks for malware before running the program. If it cannot be determined as malware at this stage, the program is executed to perform dynamic analysis.

段落0016の静的解析時にマルウェアか否かの判定と同時にプログラムの種類も判定する。このプログラムの種類の判定材料として、下記(a)〜(e)を使用する。
(a)プログラムに電子署名が付与されているか
(b)プログラムはインストーラか
(c)プログラムはパッカーを使用しているか
(d)プログラムはコピープロテクト等の商用パッカーを使用しているか
(e)プログラムは自己解凍書庫か
The type of program is also determined simultaneously with the determination of whether or not it is malware during the static analysis in paragraph 0016. The following (a) to (e) are used as judgment materials for this type of program.
(A) Is the program digitally signed? (B) Is the program an installer? (C) Is the program using a packer? (D) Is the program using a commercial packer such as copy protection? (E) The program. Is self-extracting archive

段落0017で判定されたプログラムの種類を手掛かりとして使用し、その解析結果で取得されたプログラムの種類に基づいて、対象プログラムに対し下記(1)〜(6)の挙動を捕らえる動的解析を行う。
(1)関数が通常とは異なる方法で呼ばれた
(2)自分自身のコピーを作成し、それを実行しようとした
(3)GUIを持たないプログラムが、システムユーティリティやバッチファイルを実行した
(4)デバッグ権限を取得しようとした
(5)ドライバをロードしようとした
(6)他プロセスを開こうとした
The type of program determined in paragraph 0017 is used as a clue, and based on the type of program acquired as a result of the analysis, dynamic analysis that captures the following behaviors (1) to (6) is performed on the target program: .
(1) The function was called in a different way than usual (2) Created a copy of itself and tried to execute it (3) A program without a GUI executed a system utility or batch file ( 4) Attempt to acquire debugging authority (5) Attempt to load driver (6) Attempt to open another process

段落0018(1)〜(6)は、どれもマルウェアがよく行う挙動である。ただし、通常のプログラムも同様の動作を行うことがあるため、プログラムの種類ごとに動的解析による検出の有効/無効を切り替えることで、誤検出の割合を減らすことが可能となる。具体的には、静的解析(段落0017)で「(a)電子署名がある」と判定された場合は、動的解析(段落0018)による検出のうち(2)、(3)、(4)、(5)、(6)の挙動を検出しない。「(b)プログラムがインストーラ」と判定された場合は(2)、(3)、(4)、(5)の挙動を検出しない。「(c)プログラムがパッカーを使用している」と判定された場合は(1)を検出しない。このように、静的解析で得られたプログラムの種類を動的解析に反映させることで、誤検出を減らしつつ、新しい検出方法(段落0010)の(7)および(8)を導入できる。Paragraphs 0018 (1) to (6) are behaviors frequently performed by malware. However, since a normal program may perform the same operation, it is possible to reduce the rate of false detection by switching between valid / invalid detection by dynamic analysis for each type of program. Specifically, when it is determined in the static analysis (paragraph 0017) that “(a) there is an electronic signature”, (2), (3), (4) among the detections by the dynamic analysis (paragraph 0018). ), (5) and (6) are not detected. When it is determined that “(b) the program is an installer”, the behaviors (2), (3), (4), and (5) are not detected. When it is determined that “(c) the program uses a packer”, (1) is not detected. Thus, by reflecting the type of program obtained by static analysis in dynamic analysis, new detection methods (paragraphs 0010) (7) and (8) can be introduced while reducing false detections.

ここで、段落0019の検出する/しないの根拠を説明する。(1)はOSが提供する動的なライブラリのリンクに注目した機能である。通常のプログラムはOSの提供する動的リンクの機能を使用するが、パッカーと呼ばれるプログラムは自分でこの機能の一部を内蔵してしまっていることがある。この場合、(1)の方法での検出は困難なことから、検出から除外する。(2)、(3)、(4)、(5)、(6)については単純にこの動作がマルウェアとは特定できないが「怪しい」「疑わしい」といった挙動である。また、電子署名やインストーラは、(2)、(3)、(4)、(5)、(6)の動作を行うことがあるため、このように除外するようにした。Here, the basis for detecting / not detecting paragraph 0019 will be described. (1) is a function that focuses on dynamic library linking provided by the OS. A normal program uses a function of dynamic linking provided by the OS, but a program called a packer may incorporate a part of this function by itself. In this case, since detection by the method (1) is difficult, it is excluded from detection. (2), (3), (4), (5), and (6) are behaviors such as “suspicious” and “suspicious” although this operation cannot be identified as malware. In addition, since the electronic signature and installer may perform the operations (2), (3), (4), (5), and (6), they are excluded in this way.

各検出方法と静的解析による結果を動的解析にフィードバックする機能が本発明の主要手法となる。静的解析でどの種類のプログラムを検出した場合にどの検出機能を有効/無効にするかという検出機能の切り替えに関しては、段落0019に手法の一部をあげ、プログラム種類の判定方法と段落0010を含めた動的解析による検出方法の組み合わせ詳細については実施例に説明する。The function of feeding back each detection method and the result of the static analysis to the dynamic analysis is the main method of the present invention. Regarding switching of the detection function, which detection function is enabled / disabled when detecting which type of program in the static analysis, a part of the method is given in paragraph 0019, and the program type determination method and paragraph 0010 are Details of the combination of detection methods by dynamic analysis included will be described in the embodiment.

静的解析により得られた(a)〜(e)の結果に応じて、任意の(1)〜(8)の検出方法を無効にしてもよい。Depending on the results of (a) to (e) obtained by static analysis, any detection method (1) to (8) may be invalidated.

下記(段落0024〜0029)に、静的解析によるプログラムの種類の判定方法について説明する。プログラムの種類は、プログラムファイルに含まれるPE(Portable Executable)ヘッダを解析することで特定できる。In the following (paragraphs 0024 to 0029), a method for determining the type of program by static analysis will be described. The type of program can be specified by analyzing a PE (Portable Executable) header included in the program file.

(a)プログラムに電子署名が付与されているか
Windowsの場合、OS提供のWinVerifyTrust関数を使用する。
(A) If the program has an electronic signature or is Windows, the OS-provided WinVerifyTrust function is used.

(b)プログラムはインストーラか
インストーラはデータセクションの中に特定の文字列が含まれる。例えばInstallShieldの場合は「InstallShieldMSI」という文字列がデータセクションに埋め込まれている。このように、インストーラごとに埋め込まれている文字列をデータベースとして保持し、検出対象プログラムのデータセクションにそのデータベース中の文字列が含まれるかどうかを調べることで、インストーラを検出できる。
(B) The program is an installer or the installer includes a specific character string in the data section. For example, in the case of InstallShield, a character string “InstallShieldMSI” is embedded in the data section. Thus, the installer can be detected by holding the character string embedded for each installer as a database and checking whether the data section of the detection target program includes the character string in the database.

(c)プログラムはパッカーを使用しているか
パッカー検出にセクションの名前による検出を行う。パッカーはセクション名に通常のプログラムではあまり使われない名前を使用している。このような特徴的なセクションをパッカー検出に使用する。
(C) The program uses a section name to detect whether a packer is being used. Packers use section names that are not often used in regular programs. Such characteristic sections are used for packer detection.

段落0026のパッカー検出のかわりに、PEヘッダもしくはデータセクションに含まれる特定のバイト列による検出を使用してもよい。これを行うには、パッカーの持つ特徴的なバイト列をデータベース化して保持し、検出対象プログラムのデータセクションにそのデータベース中の文字列が含まれるかどうかを調べることで、これを検出に使う。Instead of the packer detection in paragraph 0026, detection by a specific byte sequence included in the PE header or data section may be used. To do this, the characteristic byte sequence of the packer is stored in a database, and it is used for detection by checking whether the data section of the detection target program contains a character string in the database.

段落0026のパッカー検出のかわりに、コードセクションに含まれる0x00の割合による検出を用いてもよい。その割合が一定の割合未満の場合、パッカーを使用していると判断できる。例えば「一定の割合」に3%などの数字を使用できる。Instead of the packer detection in paragraph 0026, detection based on the ratio of 0x00 included in the code section may be used. When the ratio is less than a certain ratio, it can be determined that the packer is used. For example, a number such as 3% can be used for the “certain ratio”.

段落0026のパッカー検出のかわりに、リンクしているDLL(Dynamic Link Library)や関数の名前による検出を使用してもよい。通常のプログラムは多数の関数を使用するが、パッカーは特定の関数のみを使用している場合が多い。検査対象プログラムが使用しているDLLや関数がそのようなパッカーがよく使う関数のみで構成していたら、パッカーと判断する。5つ目は、プログラムの開始アドレスの場所を使用する。通常のプログラムは最初のコードセクションの中に開始アドレスが含まれる。それより外れている場所に開始アドレスがある場合は、やはりパッカーである可能性が高いと判断する。Instead of the packer detection in paragraph 0026, detection by the name of a linked DLL (Dynamic Link Library) or function may be used. Normal programs use many functions, but packers often use only specific functions. If the DLL or function used by the program to be inspected is composed only of functions that are frequently used by such packers, it is determined that the packer is a packer. The fifth uses the location of the start address of the program. A normal program contains a start address in the first code section. If there is a start address at a location outside of that, it is determined that there is a high possibility of being a packer.

(c)プログラムはパッカーを使用しているか、の実現方法として段落0026〜0029までの検出方法を組み合わせて判断してもよい。(C) The program may determine whether the packer is used by combining the detection methods in paragraphs 0026 to 0029 as a method for realizing whether the packer is used.

(d)プログラムはコピープロテクト等の商用パッカーを使用しているか
基本的には段落0026のパッカー検出と同様の方法で検出する。また、コピープロテクト等の商用パッカーは、特定のセクション名を使用しているか、特定の文字列もしくはバイト列が含まれるか、の2点で判断してもよい。
(D) The program detects whether a commercial packer such as copy protection is used or not by basically the same method as the packer detection in paragraph 0026. Further, commercial packers such as copy protection may determine whether a specific section name is used or whether a specific character string or byte string is included.

(e)プログラムは自己解凍書庫か
自己解凍書庫も段落0026〜0029のパッカー検出と同様の方法で検出する。
特定のセクション名を使用しているかどうか、もしくは、特定の文字列もしくはバイト列が含まれるかどうかで判断する。
(E) The program detects a self-extracting archive or a self-extracting archive in the same manner as the packer detection in paragraphs 0026 to 0029.
Judgment is made based on whether a specific section name is used or whether a specific character string or byte string is included.

静的解析によるファイル種別の判定の流れを図3に示す。The flow of file type determination by static analysis is shown in FIG.

下記(段落0035〜0042)に動的解析による検出方法について説明する。プログラム実行時に検出した(1)〜(8)の挙動により、マルウェアと判定する。The detection method by dynamic analysis will be described below (paragraphs 0035 to 0042). It is determined as malware based on the behaviors (1) to (8) detected at the time of program execution.

(1)関数が通常とは異なる方法で呼ばれた
プログラムは通常、OSが提供するライブラリを動的にリンクし、ライブラリ内の関数を呼び出す。その時、プログラムはどのファイルのどの関数をリンクするのか指定する必要がある。この指定はOSによって決められた方法で行う。WindowsではIAT(Import Address Table)と呼ばれるテーブルを作成することで、この動的リンクを実現している。図1に、プログラム「program.exe」がkernel32.dllを動的リンクしてCreateFileA関数を呼び出す関連を示す。このようなOS標準の方法を使用するとプログラムの解析が容易になってしまうため、マルウェアはOS標準ではない方法を用いて関数を呼び出すことが多い。従って、IATに無い関数が呼ばれたらマルウェアによる不正な関数呼び出しと判定できる。
(1) A program in which a function is called in a different way from a normal one usually links a library provided by the OS dynamically and calls a function in the library. At that time, the program needs to specify which function in which file to link. This designation is performed by a method determined by the OS. In Windows, this dynamic link is realized by creating a table called IAT (Import Address Table). In FIG. 1, the program “program.exe” is kernel32. Indicates the association of dynamically linking dll and calling the CreateFileA function. When such an OS standard method is used, it becomes easy to analyze a program. Therefore, malware often calls a function using a method that is not an OS standard. Therefore, if a function that is not in the IAT is called, it can be determined that the function call is illegal by malware.

(2)自分自身のコピーを作成し、それを実行しようとした
実行中のプログラムが自分自身のプログラムをファイルとして出力して、さらにそれを実行しようとしたらマルウェアだと判断する。
(2) Make a copy of itself, and the running program that tried to execute it outputs its own program as a file, and if it tries to execute it further, it is judged as malware.

(3)GUI(Graphical User Interface)を持たないプログラムが、システムユーティリティやバッチファイルを実行した
ウィンドウを持たず、タスクトレイのアイコンも持たないプログラムがcmd.exeといったシステムユーティリティを実行した。もしくは、バッチファイルを実行した。
(3) A program that does not have a GUI (Graphical User Interface) does not have a window for executing a system utility or batch file, and does not have a task tray icon. A system utility such as exe was executed. Or the batch file was executed.

(4)デバッグ権限を取得しようとした
プログラムがデバッグに必要な権限を取得しようとした。WindowsではZwAdjustPrivilegesToken関数で権限の調節を行う。関数の引数としてどのような権限の調整を行うのかを指定し、その指定にSeDebugPrivilegeが入っていたらデバッグ権限を取得しようとしたとして検出する。
(4) The program that attempted to acquire debugging authority attempted to acquire authority necessary for debugging. In Windows, the authority is adjusted by the ZwAdjustPrivilesToken function. It specifies what kind of authority is adjusted as an argument of the function, and if the specification includes SeDebugprivilege, it is detected that an attempt to acquire debugging authority is made.

(5)ドライバをロードしようとした
ドライバをロードして実行しようとしたらマルウェアだと判断することができる。
ドライバとは、より権限の高いカーネル内で動作するプログラムである。マルウェアはより高い権限で悪意あるコードを実行しようとする。
(5) It can be determined that the driver is trying to load and execute the driver, and it is malware.
A driver is a program that runs in a more privileged kernel. Malware tries to execute malicious code with higher privileges.

(6)他プロセスを開こうとした
Windowsの場合、マルウェアが他プロセスに感染する時、まずOpenProcessという関数を呼び出す。この関数でどのプロセスに対して、どのような権限で操作を行うのかを指定する。権限には例えばPROCESS_VM_WRITE権限があり、この権限付きでプロセスを開くと、対象プロセスのメモリ空間に対して任意のデータを書き込みできるようになる。このような書き込み権限で他のプロセスを開こうとする動作を、マルウェアの動作として検出する。
(6) In the case of Windows trying to open another process, when malware infects another process, first, a function called OpenProcess is called. This function specifies which process is used for which process. The authority includes, for example, PROCESS_VM_WRITE authority. When a process is opened with this authority, arbitrary data can be written to the memory space of the target process. An operation that attempts to open another process with such write authority is detected as a malware operation.

(7)自分自身のファイルイメージをアンマップしようとした
プログラムが実行される時、プロセスのメモリ空間にプログラムの実行コードをロードする。このロードはWindowsの場合、プログラムファイルをメモリにマップする、という処理を行うことで実現される。例えば図2の場合、program.exeとkernel32.dllがプロセスメモリ空間にマップされている。これにより、program.exe内にあるプログラムコードを実行できるようになる。
マルウェアの挙動の一つとして、自分で自分のプログラムファイルを削除して、感染した痕跡を消す、というものがある。Windowsは上記の例のようにプログラムファイルがメモリにマップされていると、プログラムファイルが削除できない。
従って、マルウェアはprogram.exeつまり自分自身をアンマップ(マップを解除)した上で、プログラムファイルを削除する。このように自分をアンマップしようとしていたらマルウェアだと判断する。
(7) When a program that attempts to unmap its own file image is executed, the execution code of the program is loaded into the memory space of the process. In the case of Windows, this loading is realized by performing a process of mapping a program file to a memory. For example, in the case of FIG. exe and kernel32. dll is mapped into the process memory space. As a result, program. The program code in exe can be executed.
One of the behaviors of malware is to delete its own program files and erase infected traces. Windows cannot delete a program file if the program file is mapped to memory as in the above example.
Therefore, the malware is program. exe, that is, the program file is deleted after unmapping (unmapping) itself. If you are trying to unmap yourself like this, it's determined to be malware.

(8)自分自身をサービスとして登録しようとした
サービスとして自分自身を登録しようとしていたらマルウェアと判断する。サービスに登録されたプログラムはユーザーが明示的に指示しなくても自動的に実行されるためマルウェアによく利用される。
(8) If it is trying to register itself as a service that attempts to register itself as a service, it is determined as malware. Programs registered in the service are often used for malware because they are automatically executed without any explicit instruction from the user.

以下、静的解析から動的解析を経て、ユーザーにマルウェア検出を通知するまでの流れを説明する。The flow from static analysis to dynamic analysis to notifying the user of malware detection will be described below.

まず、プログラムの実行前に、解析対象となるプログラムの種類を特定する(図3)。
これにより、プログラムに電子署名があるか、インストーラか、パッカーかを識別する。
続いてプログラムの挙動を監視するための準備を行う。これは、監視する関数にフックをかけ、監視対象関数が呼ばれるたびに、動的解析を行えるようにする。この監視の準備が終ったら、プログラムを実行させる。
プログラムが実際に実行されると、監視対象の関数が呼ばれるたびに、「動的解析による検出」が実行され、その中でマルウェアかどうかの判定を行う(図4)。この判定は、監視対象の関数が呼び出される直前に行う。
動的解析による検出では、段落0018および段落0019で示した処理を行う。
マルウェアらしき動作を検出した場合は、攻撃検出をユーザーに通知し、検出した関数を実行せずにエラーで元に戻るようにする(図4)。
このように関数の呼び出し前にマルウェア判定を行うことにより、マルウェアの攻撃を事前に防御できる。
First, before executing the program, the type of program to be analyzed is specified (FIG. 3).
This identifies whether the program has an electronic signature, an installer, or a packer.
Next, prepare to monitor the behavior of the program. This hooks the function to be monitored and enables dynamic analysis each time the monitored function is called. When this monitoring preparation is completed, the program is executed.
When the program is actually executed, “detection by dynamic analysis” is executed every time the function to be monitored is called, and it is determined whether it is malware or not (FIG. 4). This determination is performed immediately before the monitoring target function is called.
In the detection by the dynamic analysis, the processes shown in paragraphs 0018 and 0019 are performed.
When a malware-like operation is detected, the user is notified of attack detection, and the detected function is returned to the original state without executing the detected function (FIG. 4).
By performing malware determination before calling a function in this way, it is possible to prevent malware attacks in advance.

図5に、前記静的解析および動的解析の連携による検出手法がセキュリティ対策を目的としたプログラムに導入された場合のプログラム実行例を示す。なお、記述する実施の形態は、一例を示すものであり、これに限定するものではない。実行例における構成及び動作に関しては、適宜変更が可能である。FIG. 5 shows a program execution example when the detection method based on the linkage of the static analysis and the dynamic analysis is introduced into a program for the purpose of security countermeasures. The described embodiment shows an example, and the present invention is not limited to this. The configuration and operation in the execution example can be changed as appropriate.

Claims (4)

コンピュータを、
静的解析により得られる解析情報を動的解析のモジュールへも反映することにより、静的解析および動的解析を連携させた、解析対象ファイルがマルウェアか否かを効率的に判定する制御手段、
として機能させるためのプログラム。
Computer
A control means for efficiently determining whether or not the analysis target file is malware by linking static analysis and dynamic analysis by reflecting the analysis information obtained by static analysis to the dynamic analysis module,
Program to function as.
自分自身のファイルイメージをアンマップしようとするプログラムの挙動を検知することでマルウェアか否かを判定する、請求項1に記載のプログラム。The program according to claim 1, wherein it is determined whether or not the program is malware by detecting a behavior of a program that attempts to unmap its own file image. 自分自身をサービスとして登録しようとするプログラムの挙動を検知することでマルウェアか否かを判定する、請求項1に記載のプログラム。The program according to claim 1, wherein it is determined whether or not the program is malware by detecting a behavior of a program that attempts to register itself as a service. 請求項1、請求項2、請求項3の一項以上を含むマルウェア検出手法およびセキュリティ対策を目的としたプログラム。A program intended for malware detection and security measures including one or more of claims 1, 2, and 3.
JP2009124674A 2009-04-28 2009-04-28 Efficient technique for dynamic analysis of malware Pending JP2010262609A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009124674A JP2010262609A (en) 2009-04-28 2009-04-28 Efficient technique for dynamic analysis of malware

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009124674A JP2010262609A (en) 2009-04-28 2009-04-28 Efficient technique for dynamic analysis of malware

Publications (1)

Publication Number Publication Date
JP2010262609A true JP2010262609A (en) 2010-11-18

Family

ID=43360598

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009124674A Pending JP2010262609A (en) 2009-04-28 2009-04-28 Efficient technique for dynamic analysis of malware

Country Status (1)

Country Link
JP (1) JP2010262609A (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013168141A (en) * 2012-01-31 2013-08-29 Trusteer Ltd Method for detecting malware
JP2014504765A (en) * 2011-01-21 2014-02-24 ファイヤアイ インク System and method for detecting malicious PDF network content
WO2014049499A2 (en) * 2012-09-28 2014-04-03 International Business Machines Corporation Identifying whether an application is malicious
JP2014235745A (en) * 2013-05-30 2014-12-15 トラスティア、リミテッドTrusteer Ltd. Method and system for preventing screen capture in state where there exist no window
JP2015503789A (en) * 2011-12-30 2015-02-02 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Computer-implemented methods, computer program products, and systems for targeted security testing
JP2015511047A (en) * 2012-03-19 2015-04-13 クアルコム,インコーポレイテッド Computing device that detects malware
JP2015531508A (en) * 2012-09-06 2015-11-02 トライアムファント, インコーポレイテッド System and method for automated memory and thread execution anomaly detection in computer networks
CN105512556A (en) * 2015-11-27 2016-04-20 浪潮(北京)电子信息产业有限公司 Malicious software processing method and device
JP2017500668A (en) * 2013-12-27 2017-01-05 マカフィー, インコーポレイテッド System and method for detecting malicious multimedia files
JP2017527864A (en) * 2014-05-22 2017-09-21 ソフトキャンプ カンパニー,リミテッド Patch file analysis system and analysis method
JPWO2021038780A1 (en) * 2019-08-29 2021-03-04

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014504765A (en) * 2011-01-21 2014-02-24 ファイヤアイ インク System and method for detecting malicious PDF network content
US9971896B2 (en) 2011-12-30 2018-05-15 International Business Machines Corporation Targeted security testing
US9971897B2 (en) 2011-12-30 2018-05-15 International Business Machines Corporation Targeted security testing
JP2015503789A (en) * 2011-12-30 2015-02-02 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Computer-implemented methods, computer program products, and systems for targeted security testing
JP2013168141A (en) * 2012-01-31 2013-08-29 Trusteer Ltd Method for detecting malware
US9973517B2 (en) 2012-03-19 2018-05-15 Qualcomm Incorporated Computing device to detect malware
US9832211B2 (en) 2012-03-19 2017-11-28 Qualcomm, Incorporated Computing device to detect malware
JP2015511047A (en) * 2012-03-19 2015-04-13 クアルコム,インコーポレイテッド Computing device that detects malware
JP2015531508A (en) * 2012-09-06 2015-11-02 トライアムファント, インコーポレイテッド System and method for automated memory and thread execution anomaly detection in computer networks
US10169580B2 (en) 2012-09-28 2019-01-01 International Business Machines Corporation Identifying whether an application is malicious
WO2014049499A2 (en) * 2012-09-28 2014-04-03 International Business Machines Corporation Identifying whether an application is malicious
GB2519882B (en) * 2012-09-28 2015-10-21 Ibm Identifying whether an application is malicious
GB2519882A (en) * 2012-09-28 2015-05-06 Ibm Identifying whether an application is malicious
US11188645B2 (en) 2012-09-28 2021-11-30 International Business Machines Corporation Identifying whether an application is malicious
JP2015530673A (en) * 2012-09-28 2015-10-15 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Method, processing system, and computer program for identifying whether an application is malicious
US10599843B2 (en) 2012-09-28 2020-03-24 International Business Machines Corporation Identifying whether an application is malicious
US8990940B2 (en) 2012-09-28 2015-03-24 International Business Machines Corporation Identifying whether an application is malicious
US8869274B2 (en) 2012-09-28 2014-10-21 International Business Machines Corporation Identifying whether an application is malicious
WO2014049499A3 (en) * 2012-09-28 2014-05-22 International Business Machines Corporation Identifying whether an application is malicious
JP2014235745A (en) * 2013-05-30 2014-12-15 トラスティア、リミテッドTrusteer Ltd. Method and system for preventing screen capture in state where there exist no window
JP2017500668A (en) * 2013-12-27 2017-01-05 マカフィー, インコーポレイテッド System and method for detecting malicious multimedia files
US10356108B2 (en) 2013-12-27 2019-07-16 Mcafee, Llc System and method of detecting malicious multimedia files
JP2017527864A (en) * 2014-05-22 2017-09-21 ソフトキャンプ カンパニー,リミテッド Patch file analysis system and analysis method
CN105512556B (en) * 2015-11-27 2018-11-23 浪潮(北京)电子信息产业有限公司 A kind of Malware processing method and processing device
CN105512556A (en) * 2015-11-27 2016-04-20 浪潮(北京)电子信息产业有限公司 Malicious software processing method and device
JPWO2021038780A1 (en) * 2019-08-29 2021-03-04
WO2021038780A1 (en) * 2019-08-29 2021-03-04 日本電気株式会社 Backdoor inspection device, backdoor inspection method, and non-transitory computer-readable medium
JP7276465B2 (en) 2019-08-29 2023-05-18 日本電気株式会社 BACKDOOR INSPECTION DEVICE, BACKDOOR INSPECTION METHOD, AND PROGRAM

Similar Documents

Publication Publication Date Title
JP2010262609A (en) Efficient technique for dynamic analysis of malware
US9779240B2 (en) System and method for hypervisor-based security
KR101445634B1 (en) Device and Method for detecting vulnerability attack in any program
US8719935B2 (en) Mitigating false positives in malware detection
RU2531861C1 (en) System and method of assessment of harmfullness of code executed in addressing space of confidential process
US9530001B2 (en) System and method for below-operating system trapping and securing loading of code into memory
US9392016B2 (en) System and method for below-operating system regulation and control of self-modifying code
JP6370747B2 (en) System and method for virtual machine monitor based anti-malware security
EP3039608B1 (en) Hardware and software execution profiling
US8904537B2 (en) Malware detection
US8925089B2 (en) System and method for below-operating system modification of malicious code on an electronic device
US9330259B2 (en) Malware discovery method and system
US9032525B2 (en) System and method for below-operating system trapping of driver filter attachment
US20120255014A1 (en) System and method for below-operating system repair of related malware-infected threads and resources
US20070055711A1 (en) Generic rootkit detector
US20100064367A1 (en) Intrusion detection for computer programs
US8495741B1 (en) Remediating malware infections through obfuscation
US20110219453A1 (en) Security method and apparatus directed at removeable storage devices
RU2724790C1 (en) System and method of generating log when executing file with vulnerabilities in virtual machine
WO2004075060A1 (en) Computer virus detection device
JP2014056563A (en) Device and method for detecting malicious shell code using debugging event
US9342694B2 (en) Security method and apparatus
KR20130078960A (en) Malicious code which exploit office software vulnerability activity-based diagnosis and blocking methods
Grover et al. An Event-Driven, Inclusionary and Secure Approach to Kernel Integrity.