JP2017134574A - Program, information processing device and information processing method - Google Patents

Program, information processing device and information processing method Download PDF

Info

Publication number
JP2017134574A
JP2017134574A JP2016013232A JP2016013232A JP2017134574A JP 2017134574 A JP2017134574 A JP 2017134574A JP 2016013232 A JP2016013232 A JP 2016013232A JP 2016013232 A JP2016013232 A JP 2016013232A JP 2017134574 A JP2017134574 A JP 2017134574A
Authority
JP
Japan
Prior art keywords
malware
program
information processing
mutex
operating 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.)
Granted
Application number
JP2016013232A
Other languages
Japanese (ja)
Other versions
JP5955475B1 (en
Inventor
孝志 吉川
Takashi Yoshikawa
孝志 吉川
圭 菅原
Kei Sugawara
圭 菅原
優 関原
Yu Sekihara
優 関原
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.)
Mitsui Bussan Secure Directions Inc
Original Assignee
Mitsui Bussan Secure Directions Inc
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 Mitsui Bussan Secure Directions Inc filed Critical Mitsui Bussan Secure Directions Inc
Priority to JP2016013232A priority Critical patent/JP5955475B1/en
Application granted granted Critical
Publication of JP5955475B1 publication Critical patent/JP5955475B1/en
Publication of JP2017134574A publication Critical patent/JP2017134574A/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a program, an information processing device and an information processing method capable of reliably and effectively preventing an attack by malware.SOLUTION: In an information processing method, a mutex value that malware uses is registered in an operating system and a process which uses the mutex value is always remained in the operating system. Also, a process which has a process name identical to an analytical tool of the operating system is activated and the process which has the process name is always remained in the operating system.SELECTED DRAWING: Figure 5

Description

本発明は、プログラム、情報処理装置、及び情報処理方法に関する。   The present invention relates to a program, an information processing apparatus, and an information processing method.

近年、不正なプログラムコードがコンピューターを始めとする各種情報処理装置において実行されることにより個人情報や機密情報が流出する事件が後をたたず、社会問題となっている。このような不正、有害な動作を行うための悪意あるソフトウェアは、マルウェア(不正ソフトウェア、不正プログラム)とも呼ばれる。   In recent years, cases in which personal information and confidential information are leaked due to execution of illegal program codes in various information processing apparatuses such as computers have become a social problem. Such malicious software for performing illegal and harmful operations is also called malware (unauthorized software, illegal program).

マルウェアによる不正アクセスの検出精度を高める方法として、所定の関数の呼び出しを検出し、関数の検出が行われた際に、スタック領域に格納されているリターンアドレスを取得し、検出された関数が、メモリー上の指定されたアドレス範囲の領域に実行可能属性を付与する関数であり、リターンアドレスの指し示す先の1つ前の命令が関数の呼び出し命令でない場合に、当該アドレス範囲をアドレス範囲記憶部に記憶し、検出された関数のリターンアドレスがアドレス範囲記憶部に記憶されているアドレス範囲内である場合に、不正アクセスが行われていると判定する方法が知られている(特許文献1参照)
モバイル向けオペレーティングシステムであるAndroid(登録商標)において、簡易な手法でマルウェアの検出を可能とするプログラムとして、情報処理装置を、APKファイルが持ち、当該APKファイルに関する情報をオペレーションシステムへ提供するためのマニフェストファイルを読み込むマニフェスト解析部と、マニフェストファイルに記載された各機能の使用許可情報に基づき、APKファイルのマルウェアらしさを解析するパラメータ解析エンジンとして機能させるプログラムが知られている(特許文献2参照)。
As a method of improving the detection accuracy of unauthorized access by malware, a call to a predetermined function is detected, and when a function is detected, a return address stored in the stack area is acquired, and the detected function is A function that assigns an executable attribute to a specified address range area in memory, and if the previous instruction pointed to by the return address is not a function call instruction, the address range is stored in the address range storage unit. A method is known in which it is determined that an unauthorized access has been made when the return address of the stored and detected function is within the address range stored in the address range storage unit (see Patent Document 1).
In the Android (registered trademark) mobile operating system, the APK file has an information processing device as a program that enables detection of malware by a simple method, and provides information related to the APK file to the operation system. A manifest analysis unit that reads a manifest file and a program that functions as a parameter analysis engine that analyzes the malware likeness of an APK file based on use permission information of each function described in the manifest file are known (see Patent Document 2). .

特許第4927231号公報Japanese Patent No. 4927231 特開2013−222422号公報JP 2013-222422 A

しかしながら、従来の方法ではマルウェアによる攻撃を有効に阻止することが困難であった。   However, it has been difficult for conventional methods to effectively prevent malware attacks.

本発明の目的は、マルウェアによる攻撃を有効に阻止することができるプログラム、情報処理装置、及び情報処理方法を提供することにある。   An object of the present invention is to provide a program, an information processing apparatus, and an information processing method that can effectively prevent an attack by malware.

本発明の一態様によるプログラムは、コンピューターを、マルウェアが使用するミューテックス値をオペレーティングシステムに登録する登録部と、前記ミューテックス値を利用するプロセスを常駐させる常駐部と、して機能させることを特徴とする。   A program according to an aspect of the present invention causes a computer to function as a registration unit that registers a mutex value used by malware in an operating system and a resident unit that makes a process that uses the mutex value resident. To do.

上述したプログラムにおいて、前記登録部は、ソフトウェアがミューテックス値を作成する関数の実行をフックして、前記関数が作成しようとする前記ミューテックス値を前記オペレーティングシステムに登録する、ようにしてもよい。   In the above-described program, the registration unit may hook the execution of a function for creating a mutex value by software, and register the mutex value to be created by the function in the operating system.

上述したプログラムにおいて、前記コンピューターを、起動しようとするソフトウェアがマルウェアであるか否かを判断する判断部として更に機能させ、前記登録部は、前記判断部によりマルウェアであると判断されたソフトウェアのミューテックス値を前記オペレーティングシステムに登録する、ようにしてもよい。   In the above-described program, the computer is further caused to function as a determination unit that determines whether or not the software to be started is malware, and the registration unit is a mutex of software that is determined to be malware by the determination unit. The value may be registered with the operating system.

本発明の一態様によるプログラムは、コンピューターを、オペレーティングシステムの解析ツールと同じプロセス名のプロセスを起動する起動部と、前記プロセス名のプロセスを常駐させる常駐部と、して機能させることを特徴とする。   A program according to an aspect of the present invention causes a computer to function as an activation unit that starts a process having the same process name as an analysis tool of an operating system and a resident unit that makes the process with the process name resident. To do.

上述したプログラムにおいて、前記起動部は、前記プロセスのコピーを他のプロセス名に変更して起動することにより前記他のプロセス名のプロセスを起動する、ようにしてもよい。   In the above-described program, the activation unit may activate the process having the other process name by changing the process copy to another process name and activating the copy.

本発明の一態様による情報処理装置は、マルウェアが使用するミューテックス値をオペレーティングシステムに登録する登録部と、前記ミューテックス値を利用するプロセスを常駐させる常駐部と、を有することを特徴とする。   An information processing apparatus according to an aspect of the present invention includes a registration unit that registers a mutex value used by malware in an operating system, and a resident unit that makes a process that uses the mutex value resident.

本発明の一態様による情報処理装置は、オペレーティングシステムの解析ツールと同じプロセス名のプロセスを起動する起動部と、前記プロセス名のプロセスを常駐させる常駐部と、を有することを特徴とする。   An information processing apparatus according to an aspect of the present invention includes an activation unit that activates a process having the same process name as an analysis tool of an operating system, and a resident unit that makes the process with the process name resident.

本発明の一態様による情報処理方法は、マルウェアが使用するミューテックス値をオペレーティングシステムに登録し、前記ミューテックス値を利用するプロセスを常駐させる、ことを特徴とする。   An information processing method according to an aspect of the present invention is characterized in that a mutex value used by malware is registered in an operating system, and a process that uses the mutex value is made resident.

本発明の一態様による情報処理方法は、オペレーティングシステムの解析ツールと同じプロセス名のプロセスを起動し、前記プロセス名のプロセスを常駐させる、ことを特徴とする。   An information processing method according to an aspect of the present invention is characterized in that a process having the same process name as an analysis tool of an operating system is started and the process having the process name is made resident.

以上の通り、本発明によれば、コンピューターを、マルウェアが使用するミューテックス値をオペレーティングシステムに登録する登録部と、前記ミューテックス値を利用するプロセスを常駐させる常駐部と、して機能させるようにしたので、マルウェアによる攻撃を有効に阻止することができる。   As described above, according to the present invention, the computer functions as a registration unit that registers a mutex value used by malware in an operating system and a resident unit that makes a process that uses the mutex value resident. Therefore, it is possible to effectively prevent malware attacks.

一般的な情報処理装置を示すブロック図である。It is a block diagram which shows a general information processing apparatus. コンピュータープログラムの動作をコンピューターのハードウェアとの関連で示す説明図(その1)である。It is explanatory drawing (the 1) which shows operation | movement of a computer program in relation to the hardware of a computer. コンピュータープログラムの動作をコンピューターのハードウェアとの関連で示す説明図(その2)である。It is explanatory drawing (the 2) which shows operation | movement of a computer program in relation to the hardware of a computer. ミューテックスの原理を示す説明図である。It is explanatory drawing which shows the principle of a mutex. ミューテックスの機能を利用した本発明の原理を示す説明図である。It is explanatory drawing which shows the principle of this invention using the function of a mutex. 解析環境検知の原理を示す説明図である。It is explanatory drawing which shows the principle of analysis environment detection. 解析環境検知の機能を利用した本発明の原理を示す説明図である。It is explanatory drawing which shows the principle of this invention using the function of analysis environment detection. 本発明の第1実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その1)である。It is explanatory drawing (the 1) explaining the program, information processing apparatus, and information processing method by 1st Embodiment of this invention. 本発明の第1実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その2)である。It is explanatory drawing (the 2) explaining the program, information processing apparatus, and information processing method by 1st Embodiment of this invention. 本発明の第2実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その1)である。It is explanatory drawing (the 1) explaining the program, information processing apparatus, and information processing method by 2nd Embodiment of this invention. 本発明の第2実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その2)である。It is explanatory drawing (the 2) explaining the program, information processing apparatus, and information processing method by 2nd Embodiment of this invention. 本発明の第2実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その3)である。It is explanatory drawing (the 3) explaining the program, information processing apparatus, and information processing method by 2nd Embodiment of this invention. 本発明の第2実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その4)である。It is explanatory drawing (the 4) explaining the program, information processing apparatus, and information processing method by 2nd Embodiment of this invention. 本発明の第2実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その5)である。It is explanatory drawing (the 5) explaining the program, information processing apparatus, and information processing method by 2nd Embodiment of this invention. 本発明の第2実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その6)である。It is explanatory drawing (the 6) explaining the program, information processing apparatus, and information processing method by 2nd Embodiment of this invention. 本発明の第2実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その7)である。It is explanatory drawing (the 7) explaining the program, information processing apparatus, and information processing method by 2nd Embodiment of this invention. 本発明の第2実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その8)である。It is explanatory drawing (the 8) explaining the program, information processing apparatus, and information processing method by 2nd Embodiment of this invention. 本発明の第2実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その9)である。It is explanatory drawing (the 9) explaining the program, information processing apparatus, and information processing method by 2nd Embodiment of this invention. 本発明の第2実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その10)である。It is explanatory drawing (the 10) explaining the program, information processing apparatus, and information processing method by 2nd Embodiment of this invention. 本発明の第2実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その11)である。It is explanatory drawing (the 11) explaining the program, information processing apparatus, and information processing method by 2nd Embodiment of this invention. 本発明の第2実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その12)である。It is explanatory drawing (the 12) explaining the program, information processing apparatus, and information processing method by 2nd Embodiment of this invention. 本発明の第3実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その1)である。It is explanatory drawing (the 1) explaining the program, information processing apparatus, and information processing method by 3rd Embodiment of this invention. 本発明の第3実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その2)である。It is explanatory drawing (the 2) explaining the program, information processing apparatus, and information processing method by 3rd Embodiment of this invention. 本発明の第3実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その3)である。It is explanatory drawing (the 3) explaining the program, information processing apparatus, and information processing method by 3rd Embodiment of this invention. 本発明の第3実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その4)である。It is explanatory drawing (the 4) explaining the program, information processing apparatus, and information processing method by 3rd Embodiment of this invention. 本発明の第3実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その5)である。It is explanatory drawing (the 5) explaining the program, information processing apparatus, and information processing method by 3rd Embodiment of this invention. 本発明の第3実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その6)である。It is explanatory drawing (the 6) explaining the program, information processing apparatus, and information processing method by 3rd Embodiment of this invention. 本発明の第3実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その7)である。It is explanatory drawing (the 7) explaining the program, information processing apparatus, and information processing method by 3rd Embodiment of this invention. 本発明の第3実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その8)である。It is explanatory drawing (the 8) explaining the program, information processing apparatus, and information processing method by 3rd Embodiment of this invention.

[情報処理装置]
本発明が適用される一般的な情報処理装置及びその動作について図1乃至図3を用いて説明する。
[Information processing device]
A general information processing apparatus to which the present invention is applied and its operation will be described with reference to FIGS.

図1は一般的な情報処理装置を示すブロック図である。   FIG. 1 is a block diagram showing a general information processing apparatus.

標準的なスタンドアロン環境における情報処理装置10は、コンピューター(PC)20と、外部周辺装置30とから構成されている。   The information processing apparatus 10 in a standard stand-alone environment includes a computer (PC) 20 and an external peripheral device 30.

コンピューター(PC)20は、命令を実行するCPU21と、データおよびプログラムを格納するハードディスク22と、データやプログラムをCPU21が読み込むためのメモリー23と、ユーザーの操作を受け付けるマウスやキーボードのような入出力装置24と、操作内容や処理結果等を表示するディスプレイ25等から構成されている。   The computer (PC) 20 includes a CPU 21 for executing instructions, a hard disk 22 for storing data and programs, a memory 23 for the CPU 21 to read data and programs, and input / output such as a mouse and a keyboard for receiving user operations. The apparatus 24 is configured by a display 25 and the like for displaying operation contents, processing results, and the like.

外部周辺装置30は、処理結果等を印刷するためのプリンター31や、USBメモリー等の外部記憶装置32等から構成されている。   The external peripheral device 30 includes a printer 31 for printing processing results and the like, an external storage device 32 such as a USB memory, and the like.

次に、図2及び図3を用いて、コンピュータープログラム、すなわち、コンピューターに行わせる処理の手順を決められた形式(プログラム言語)に従って書き表したものを実行させる場合の一連の動作について、コンピューター20におけるCPU21、ハードディスク22、メモリー23等のハードウェアとの関連で説明する。   Next, with reference to FIG. 2 and FIG. 3, a series of operations in the case where a computer program, that is, a processing procedure to be performed by a computer written according to a predetermined format (program language) is executed in the computer 20 will be described. The description will be made in relation to hardware such as the CPU 21, the hard disk 22, and the memory 23.

コンピューター20が起動する前は、オペレーションソフトウェア(OS)のプログラムやデータを含むOSデータと、コンピューター20で実行させるプログラムと、文書、図面等のユーザーデータ等がファイルとしてハードディスク22に格納されている(図2(a))。メモリー23にはプログラムやデータ等は展開されていない。   Before the computer 20 is started, OS data including programs and data of operation software (OS), programs to be executed by the computer 20, user data such as documents and drawings, and the like are stored in the hard disk 22 as files ( FIG. 2 (a)). In the memory 23, no program or data is developed.

コンピューター20が起動して、CPU21が、ハードディスク22に格納されたOSデータをメモリー23にロードする命令を実行すると、OSデータがメモリー23上にプロセスとして展開される(図2(b))。   When the computer 20 is activated and the CPU 21 executes an instruction to load the OS data stored in the hard disk 22 into the memory 23, the OS data is expanded as a process on the memory 23 (FIG. 2B).

次に、CPU21がメモリー23上のOSデータのプロセスを実行して、ハードディスク22に格納されたプログラムにアクセスして、そのプログラムを読み込む(図2(c))。ハードディスク22に格納されたプログラムはメモリー23にロードされ、メモリー23上にプロセスとして展開される(図3(a))。   Next, the CPU 21 executes an OS data process on the memory 23 to access a program stored in the hard disk 22 and read the program (FIG. 2C). The program stored in the hard disk 22 is loaded into the memory 23 and developed as a process on the memory 23 (FIG. 3A).

次に、CPU21がメモリー23上のプログラムのプロセスを実行して、ハードディスク22に格納されたユーザーデータにアクセスして、ハードディスク22へのデータの読み書きを行う(図3(b))。   Next, the CPU 21 executes a program process on the memory 23 to access user data stored in the hard disk 22 and read / write data from / to the hard disk 22 (FIG. 3B).

このように、オペレーションソフトウエアやプログラムにより、CPU21、ハードディスク22、メモリー23との間での動作が行われる。   In this way, operations among the CPU 21, the hard disk 22, and the memory 23 are performed by operation software and programs.

[発明の原理]
本発明の原理について説明する。
[Principle of the Invention]
The principle of the present invention will be described.

近年、マルウェアを利用する攻撃者の目的は大多数が金銭や機密情報の搾取であり、これらの攻撃では組織的に開発されたマルウェア作成ツールが利用されている場合が多い。   In recent years, the majority of attackers who use malware are exploiting money and confidential information, and these attacks often use systematically developed malware creation tools.

本願発明者等は、こういったツールで作成されたマルウェアの多くは、マルウェアの多重起動による処理の競合や予期せぬ動作停止等を予防するため、多重起動状態を認識して自身の動作を停止する機能や、自身が解析環境上で動作していることを検知した場合、動作を停止しマルウェア解析側に対して素性を隠すような動作を持つという機能を有していることに気がついた。   Inventors of the present application recognize that multiple malware created with these tools recognizes the multiple activation status and performs its own operation in order to prevent conflicts in processing due to multiple activation of malware and unexpected operation stoppage. I noticed that it has a function to stop the operation and to hide the feature from the malware analysis side when it detects that it is operating in the analysis environment. .

プログラムが多重起動状態を認識するために、マイクロソフトのオペレーティングシステムであるマイクロソフトウィンドウズ(Microsoft Windows:登録商標)にはミューテックス(Mutex)と呼ばれる機能が用意されている。OSのシステムには起動したプログラムの名前であるミューテックス値が登録される。   In order for the program to recognize the multiple activation state, Microsoft Windows (registered trademark), which is a Microsoft operating system, is provided with a function called a mutex. A mutex value, which is the name of the activated program, is registered in the OS system.

ミューテックスの原理について図4の概念図を用いて説明する。   The principle of the mutex will be described with reference to the conceptual diagram of FIG.

図4(a)の場合には、オペレーティングシステムに、Mutex001、Mutex002、Mutex003というミューテックス値が既に登録されている。   In the case of FIG. 4A, the mutex values of Mutex001, Mutex002, and Mutex003 are already registered in the operating system.

この状態で、ミューテックス機能を使用するマルウェアAが起動すると、図4(a)に示すように、Mutex004というミューテックス値を作成してオペレーティングシステムに登録しようとする。オペレーティングシステムにはMutex004というミューテックス値は登録されていないので、図4(b)に示すように、Mutex004を登録に成功し、マルウェアAの動作が継続される。   In this state, when the malware A that uses the mutex function is activated, as shown in FIG. 4A, a mutex value called Mutex004 is created and registered in the operating system. Since the mutex value of Mutex004 is not registered in the operating system, as shown in FIG. 4B, the Mutex004 is successfully registered, and the operation of the malware A is continued.

この状態で、ミューテックス機能を使用するマルウェアAが二重起動すると、図4(c)に示すように、Mutex004というミューテックス値を作成してオペレーティングシステムに登録しようとする。オペレーティングシステムにはMutex004というミューテックス値は既に登録されているので、図4(c)に示すように、Mutex004の登録に失敗し、マルウェアAの二重起動が阻止される。   In this state, when the malware A that uses the mutex function is double-launched, as shown in FIG. 4C, it creates a mutex value called Mutex004 and tries to register it in the operating system. Since the mutex value of Mutex004 is already registered in the operating system, as shown in FIG. 4 (c), the registration of Mutex004 fails and double activation of malware A is prevented.

本発明ではこの機能を利用してマルウェアの動作を阻止する。本発明の原理について図5の概念図を用いて説明する。   In the present invention, this function is used to prevent the operation of malware. The principle of the present invention will be described with reference to the conceptual diagram of FIG.

図5(a)の場合には、オペレーティングシステムに、Mutex001、Mutex002、Mutex003というミューテックス値が既に登録されている。   In the case of FIG. 5A, the mutex values of Mutex001, Mutex002, and Mutex003 are already registered in the operating system.

この状態で、本発明のプログラムを起動させ、図5(a)に示すように、Mutex004というミューテックス値を作成してオペレーティングシステムに登録しようとする。オペレーティングシステムにはMutex004というミューテックス値は登録されていないので、図5(b)に示すように、Mutex004を登録に成功し、本発明のプログラムはそのまま待機状態となる。   In this state, the program of the present invention is started, and a mutex value called Mutex004 is created and registered in the operating system as shown in FIG. Since the mutex value of Mutex004 is not registered in the operating system, as shown in FIG. 5B, the mutex004 is successfully registered, and the program of the present invention is in a standby state as it is.

この状態で、ミューテックス機能を使用するマルウェアAが起動しようとして、図5(c)に示すように、Mutex004というミューテックス値を作成してオペレーティングシステムに登録しようとする。オペレーティングシステムにはMutex004というミューテックス値は既に登録されているので、図5(c)に示すように、Mutex004の登録に失敗し、マルウェアAの起動が阻止される。   In this state, the malware A that uses the mutex function tries to start up, and as shown in FIG. 5C, creates a mutex value called Mutex004 and tries to register it in the operating system. Since the mutex value of Mutex004 is already registered in the operating system, as shown in FIG. 5C, the registration of Mutex004 fails and the activation of the malware A is prevented.

なお、ミューテックスとは一般的にプロセスやスレッドが同時に一つしかリソースへアクセスできないようにするコンピューターにおける排他的制御の仕組みの一つであり、マルウェアではない通常のプログラムにおいても同様に多重起動を防止する用途等で利用されることがある。ただし、それら通常のウィンドウズのプログラムにおいては自身の複数起動を許可しているものも少なくなく、多重起動することで目的の不正動作を遂行しづらくなるマルウェアの方がよりこのミューテックスによる排他制御を多用する傾向にある。   Mutexes are one of the exclusive control mechanisms in computers that generally allow only one process or thread to access a resource at the same time, and prevent multiple activations in normal programs that are not malware. It may be used for purposes such as However, many of these normal Windows programs allow multiple activations of their own, and malware that makes it difficult to perform the intended unauthorized operation by multiple activations is more frequently used for exclusive control by this mutex. Tend to.

また、本願発明者等は、マルウェアには、オペレーティングシステムが解析環境上で動作しているかを検知し、解析環境上で動作している場合には、マルウェア自身の動作を停止させる機能を有するものがあることに気がついた。   Further, the inventors of the present application have a function for detecting whether the operating system is operating in the analysis environment, and stopping the operation of the malware itself when operating in the analysis environment. I noticed that there is.

オペレーティングシステムが解析環境上で動作している状況の検知には、広く知られる解析ツールのプロセス名のリストをあらかじめマルウェアが保持しており、動作時にこのリストの内容と、システムで動作しているプロセス名を比較し、合致するものがあるかどうかを確認する。合致した場合にはマルウェアは動作を停止する。   In order to detect the situation where the operating system is operating in the analysis environment, the malware maintains a list of process names of widely-known analysis tools in advance, and the contents of this list and the system are operating during operation. Compare process names to see if there is a match. If it matches, the malware stops working.

解析環境検知の原理について図6を用いて説明する。   The principle of analysis environment detection will be described with reference to FIG.

オペレーティングシステムには動作中のプロセス名が登録されている。図6では、notepad.exe、calc.exe、analyzer.exe、…が登録されている。このオペレーティングシステムでは、解析プログラムのプロセス名であるanalyzer.exeが登録されており、解析環境上にあることがわかる。   The operating process name is registered in the operating system. In FIG. 6, notepad.exe, calc.exe, analyzer.exe,... Are registered. In this operating system, analyzer.exe, which is the process name of the analysis program, is registered, and it can be seen that it is in the analysis environment.

この状態で、マルウェアBが起動すると、自身の動作環境が解析環境上にあるかを予め検知する。マルウェアBは、よく使われる調査ツールのプロセス名のリストを有している。図6では、debugger.exe、analyzer.exe、monitor.exe、…等のプロセス名のリストを有している。マルウェアBは、自分が有しているリストと、現在オペレーティングシステムで動作中のプロセス名と順次照合し、合致する場合には解析環境上にあると判断し、自分の動作を停止させる。図6では、リスト中のanalyzer.exeのプロセス名がシステムに登録されたプロセス名と合致したので、その段階で自分の動作を停止させている。   In this state, when the malware B is activated, it is detected in advance whether its own operating environment is on the analysis environment. Malware B has a list of process names of commonly used survey tools. 6 includes a list of process names such as debugger.exe, analyzer.exe, monitor.exe,. The malware B sequentially compares the list it owns with the name of the process that is currently operating in the operating system, and if they match, determines that it is in the analysis environment and stops its operation. In FIG. 6, since the process name of analyzer.exe in the list matches the process name registered in the system, its operation is stopped at that stage.

本発明ではこの機能を利用してマルウェアの動作を阻止する。本発明の原理について図7の概念図を用いて説明する。   In the present invention, this function is used to prevent the operation of malware. The principle of the present invention will be described with reference to the conceptual diagram of FIG.

本発明のプログラムを起動し、予めよく使われる調査ツールのプロセス名をオペレーティングシステムに登録しておく。図7では、debugger.exe、monitor.exe、analyzer.exe、…等のプロセス名のリストを登録する。   The program of the present invention is activated, and a process name of a frequently used investigation tool is registered in the operating system in advance. In FIG. 7, a list of process names such as debugger.exe, monitor.exe, analyzer.exe,... Is registered.

この状態で、マルウェアBが起動すると、自身の動作環境が解析環境上にあるかを予め検知する。マルウェアBは、よく使われる調査ツールのプロセス名のリストを有している。図7では、debugger.exe、analyzer.exe、monitor.exe、…等のプロセス名のリストを有している。マルウェアBは、自分が有しているリストと、現在オペレーティングシステムで動作中のプロセス名と順次照合し、合致する場合には解析環境上にあると判断し、自分の動作を停止させる。図7では、リスト中のdebugger.exeのプロセス名がシステムに登録されたプロセス名と合致したので、その段階で自分の動作を停止させる。このようにしてマルウェアBの動作を停止させることができる。   In this state, when the malware B is activated, it is detected in advance whether its own operating environment is on the analysis environment. Malware B has a list of process names of commonly used survey tools. 7 includes a list of process names such as debugger.exe, analyzer.exe, monitor.exe,. The malware B sequentially compares the list it owns with the name of the process that is currently operating in the operating system, and if they match, determines that it is in the analysis environment and stops its operation. In FIG. 7, since the process name of debugger.exe in the list matches the process name registered in the system, the operation is stopped at that stage. In this way, the operation of the malware B can be stopped.

[第1実施形態]
本発明の第1実施形態によるプログラム、情報処理装置及び情報処理方法について図8及び図9を用いて説明する。
[First Embodiment]
The program, information processing apparatus, and information processing method according to the first embodiment of the present invention will be described with reference to FIGS.

本実施形態は、マルウェアに使用される既知のミューテックス値を使用するプログラムを常駐させておき、マルウェアの実行を阻止しようとするものである。   In the present embodiment, a program that uses a known mutex value used for malware is made resident to prevent execution of the malware.

本実施形態によるプログラム(本発明プログラム)は、マルウェアに使用される既知のミューテックス値をメモリー23内のミューテックス値リストに登録する命令CreateMutexを含んでいる。   The program according to the present embodiment (the program of the present invention) includes an instruction CreateMutex for registering a known mutex value used for malware in a mutex value list in the memory 23.

本発明プログラムは、図2及び図3におけるプログラムと同様に、ハードディスク22に格納されており、CPU21からの命令によりメモリー23に展開され、CPU21からの命令により実行される。   The program of the present invention is stored in the hard disk 22 in the same manner as the programs in FIGS. 2 and 3, expanded in the memory 23 by a command from the CPU 21, and executed by a command from the CPU 21.

本発明プログラムは、マルウェアが導入される危険性のある状態となる前であればいつ実行させてもよいが、スタートアッププログラムとして、コンピューター20の起動時に起動させておくことが望ましい。それによりコンピューター20を、起動直後から常にマルウェアから保護することができる。   The program of the present invention may be executed at any time before entering a state where there is a risk that malware will be introduced, but it is desirable that the program is started as a startup program when the computer 20 is started up. Thereby, the computer 20 can always be protected from malware immediately after starting.

本発明プログラムにより登録するミューテックス値について説明する。   The mutex value registered by the program of the present invention will be described.

既知のマルウェアに使用されるミューテックス値の多くは、インターネット上で公開されているマルウェアの解析情報の一部として掲載されている。例えば、オンラインバンキングマルウェアで使用されるZBOTと呼ばれるマルウェアは第一世代が「_AVIRA_2108」「_AVIRA_2109」「__SYSTEM__64AD0625__」のいずれかのミューテックス値を固定値で使用している。また、新種のマルウェアであってもマルウェア解析が実施された場合は、ほとんどのケースでミューテックス情報も各マルウェア対策ベンダー等から解析情報と併せて公開される。   Many of the mutex values used for known malware are posted as part of malware analysis information published on the Internet. For example, the first generation of malware called ZBOT used in online banking malware uses a mutex value of “_AVIRA_2108”, “_AVIRA_2109”, or “__SYSTEM__64AD0625__” as a fixed value. In addition, when malware analysis is performed even for new types of malware, in most cases, mutex information is also released along with the analysis information from each anti-malware vendor.

本発明プログラムでは、例えば、次に示すミューテックス値の全て又は任意のいずれかを登録する。   In the present invention program, for example, all or any of the following mutex values are registered.

25cbfc4f-Mutex、470a1245-Mutex、894133bf-Mutex、aMD6qt7lWb1N3TNBSe4N、b845ef76-Mutex、bcd8f464-Mutex、beta100-Mutex、bfbd401b-Mutex、DC_MUTEX-B2FTUQZ、e26f5077-Mutex、e621ca05-Mutex、e621ca05Mutex、e621ca05_0、f4448e25-Mutex、f5399233-Mutex、faebec4a-Mutex、fuckareyoulookin、IrcPeru-Mutex、KyUffThOkYwRRtg、lyhrsugiwwnvnn、Microsoft-Windows-LDAP32-Client、Prowin32Mutex、Rapid Antivirus_AppManager_server_mutex、s5rBKCUVfOF8JLVi、SPYNET、System1230123、t2f-Mutex、Windows Update System Verifier、wuqntwklyxwhac、xXxXxXXxXxxxxx02。   25cbfc4f-Mutex, 470a1245-Mutex, 894133bf-Mutex, aMD6qt7lWb1N3TNBSe4N, b845ef76-Mutex, bcd8f464-Mutex, beta100-Mutex, bfbd401b-Mutex, DC_MUTEX-B2FTUQ77-052 f5399233-Mutex, faebec4a-Mutex, fuckareyoulookin, IrcPeru-Mutex, KyUffThOkYwRRtg, lyhrsugiwwnvnn, Microsoft-Windows-LDAP32xClient, Prowin32Mutex, Rapid Antivirus_AppManager_server_mutex, s5rBKCUVfY8XLVxSP12

セキュリティ対策として一般的に用いられるパターンファイルやハッシュ値に依存したマルウェア防御方法ではマルウェアのバイナリが少しでも変化すると対応できなくなる場合が多いが、ミューテックス値の場合は、複数の亜種(同一種類のマルウェア群)ではミューテックス値が同一である場合が多く、ひとつミューテックス値に対する処置で複数の未知のマルウェアに対する防御を行うことが可能となる。   Malware protection methods that rely on pattern files and hash values that are commonly used as security measures often cannot respond if the malware binary changes even a little, but in the case of mutex values, multiple variants (of the same type) The malware group) often has the same mutex value, and it is possible to protect against a plurality of unknown malware by a single mutex value.

一般的なマルウェアを生成する際、最初から開発するケースはまれであり、流出したマルウェアのソースコードの改変や、マルウェアを自動生成するツールであるビルダー等を利用して作成されることが多い。そうした流出したソースコードや自動生成するツールではミューテックスが意図的に変更されるケースはあまり多くない。結果として、固定のミューテックス値を持つ複数のマルウェア、すなわち亜種のマルウェアが作り出されることになる。   When generating general malware, it is rare to develop it from the beginning, and it is often created using a builder that is a tool for automatically generating malware or modifying the source code of the leaked malware. In such leaked source code and automatically generated tools, there are not many cases where the mutex is intentionally changed. As a result, multiple malware with a fixed mutex value, that is, a variant of malware, is created.

なお、ハッシュ値や一般的なパターンファイルがとらえるバイナリの特徴点は、バイナリが生成されるタイミングで必然的に変化してしまうため、一つの情報で複数を捉える事は困難となってしまう背景がある。   Note that the binary feature points captured by hash values and general pattern files inevitably change at the time the binary is generated, so it is difficult to capture multiple items with a single piece of information. is there.

これらの情報をあらかじめ収集して、既知のマルウェアのミューテックス値リストのデータベースを作成しておく。本発明プログラムでは、データベース化された既知のマルウェアのミューテックス値を生成して登録する。   This information is collected in advance, and a database of known malware mutex value lists is created. In the program of the present invention, a mutex value of known malware stored in a database is generated and registered.

マルウェアのミューテックス値リストのデータベースは常に更新しておき本発明プログラムを起動したときに、データベースに登録された全てのミューテックス値を生成して登録することが望ましい。   It is desirable to constantly update the database of malware mutex values and generate and register all mutex values registered in the database when the program of the present invention is started.

次に、本発明プログラムが実行された状態でマルウェアの実行が阻止される仕組みについて説明する。   Next, a mechanism for preventing the execution of malware while the program of the present invention is executed will be described.

図8に示すように、メモリー23のオペレーティングシステムのデータ内の所定位置にミューテックス値リストの領域が設けられている。図8では、ミューテックス値リストの領域に、AAAAA、BBBBB、CCCCC、…というミューテックス値が登録されている。登録されたミューテックス値は、データベース化された既知のマルウェアのミューテックス値である。   As shown in FIG. 8, a mutex value list area is provided at a predetermined position in the operating system data of the memory 23. In FIG. 8, mutexes values AAAA, BBBBB, CCCCC,... Are registered in the mutex value list area. The registered mutex value is a mutex value of known malware stored in a database.

この状態でマルウェアを実行しようとする場合の処理の一連の流れについて図9を用いて説明する。   A series of processing flow when attempting to execute malware in this state will be described with reference to FIG.

まず、マルウェアの実行ファイルを起動すると、メモリー23上に実行ファイルのイメージデータが配置される(図9(a))。   First, when the malware executable file is activated, the image data of the executable file is arranged on the memory 23 (FIG. 9A).

次に、マルウェアが"EEEEEEEE"というミューテックス値をシステムに登録しようとした場合、メモリー23上にあるオペレーティングシステムのCreateMutex関数が"EEEEEEEE"という引数でCPU21を介してマルウェアから呼び出される(図9(b))。   Next, when the malware tries to register the mutex value “EEEEEEEE” in the system, the CreateMutex function of the operating system on the memory 23 is called from the malware via the CPU 21 with the argument “EEEEEEEE” (FIG. 9B). )).

次に、オペレーティングシステムは、CreateMutex関数が呼び出されると、メモリー23上に存在するミューテックスリストにアクセスし、引数として渡された"EEEEEEEE"というミューテックス値がミューテックスリスト中に存在するか否か確認する(図9(c))。   Next, when the CreateMutex function is called, the operating system accesses the mutex list existing on the memory 23 and checks whether or not the mutex value “EEEEEEEE” passed as an argument exists in the mutex list ( FIG. 9 (c)).

ミューテックスリスト中に"EEEEEEEE"というミューテックス値が存在する場合、オペレーティングシステムはCreateMutex関数の戻り値として、null値をマルウェアへ返答する(図9(d))。   When a mutex value “EEEEEEEE” exists in the mutex list, the operating system returns a null value to the malware as a return value of the CreateMutex function (FIG. 9D).

マルウェアは、関数の戻り値がnull値であることを確認することで、CreateMutex関数によるミューテックス登録が失敗したこと、すなわち、自分と同じマルウェアのプロセスや、自分の複製のプロセスがオペレーティングシステム上で起動していることを認識する。そのことを認識すると、マルウェアはその後の処理を自ら停止する。それにより、マルウェアの不正な動作を阻止することができる。   Malware confirms that the return value of the function is a null value, so that the mutex registration by the CreateMutex function has failed, that is, the same malware process as itself or the process of its own replication is started on the operating system. Recognize that Upon recognizing that, the malware stops further processing itself. Thereby, it is possible to prevent unauthorized operation of malware.

ミューテックスリスト中に"EEEEEEEE"というミューテックス値が存在しない場合には、オペレーティングシステムは渡された"EEEEEEEE"という値をミューテックスリストに追加したのち、CreateMutex関数の戻り値としてnull値以外の値をマルウェアへ返答する(図9(e))。   If a mutex value "EEEEEEEE" does not exist in the mutex list, the operating system adds the passed value "EEEEEEEE" to the mutex list, and then returns a non-null value to the malware as the return value of the CreateMutex function. A response is made (FIG. 9 (e)).

マルウェアは、関数の戻り値がnull値ではないことを確認することで、CreateMutex関数によるミューテックス登録が成功したこと、すなわち、自分と同じマルウェアのプロセスや、自分の複製のプロセスがオペレーティングシステム上で起動してないことを認識する。そのことが認識できると、その後のマルウェアの処理を継続する。この場合にはマルウェアの実行を阻止できない。   By confirming that the return value of the function is not a null value, the malware has successfully registered the mutex using the CreateMutex function, that is, the same malware process as itself or the process of its replication is started on the operating system. Recognize that you are not. If this is recognized, the subsequent malware processing is continued. In this case, malware execution cannot be prevented.

[第2実施形態]
本発明の第2実施形態によるプログラム、情報処理装置及び情報処理方法について図10乃至図21を用いて説明する。
[Second Embodiment]
A program, an information processing apparatus, and an information processing method according to a second embodiment of the present invention will be described with reference to FIGS.

本実施形態は、マルウェアが使用するミューテックス値が不明であっても、マルウェアがミューテックス値を作成しようする関数の実行をフックして横取りして、事前にミューテックス値リストに登録しておくことで、マルウェアの実行を阻止しようとするものである。   In this embodiment, even if the mutex value used by the malware is unknown, the execution of the function that the malware tries to create the mutex value is hooked and pre-registered and registered in the mutex value list in advance. It tries to prevent the execution of malware.

本発明プログラムは、マルウェアが導入される危険性のある状態となる前であればいつ実行させてもよいが、スタートアッププログラムとして、コンピューター20の起動時に起動させておくことが望ましい。それにより、起動直後から常に、コンピューター20をマルウェアから保護することができる。   The program of the present invention may be executed at any time before entering a state where there is a risk that malware will be introduced, but it is desirable that the program is started as a startup program when the computer 20 is started up. Thereby, the computer 20 can always be protected from malware immediately after startup.

図10に、コンピューター20が起動した直後のメモリー23の状態を示す。メモリー23には、オペレーティングシステムと共に本発明プログラムや他のスタートアッププログラムが展開され配置されている。   FIG. 10 shows the state of the memory 23 immediately after the computer 20 is activated. In the memory 23, the program of the present invention and other startup programs are developed and arranged together with the operating system.

本発明プログラムは、まず、自身が起動した後に起動する全てのプロセスの情報を確認し、不審なプログラムのプロセスでないかを判断する。なお、以降の説明では、そのような不審なプログラムのことを便宜上「マルウェア」又は「不審プログラム」と称して説明する。   The program of the present invention first checks the information of all processes that are started after it is started, and determines whether it is a process of a suspicious program. In the following description, such a suspicious program is referred to as “malware” or “suspicious program” for convenience.

マルウェアが起動すると、図11に示すように、メモリー23上に、オペレーティングシステム、本発明プログラム、他のスタートアッププログラムと共に、マルウェアが展開されてマルウェアのプロセス動作が開始される。   When the malware starts, as shown in FIG. 11, the malware is deployed on the memory 23 together with the operating system, the program of the present invention, and other startup programs, and the malware process operation is started.

次に、本発明プログラムは、図12に示すように、メモリー23上に展開されたマルウェアのプロセスの情報を取得し、ハードディスク22に格納されたマルウェアの実行ファイルを確認し、不審なプログラムであるか否かを判断する。   Next, as shown in FIG. 12, the program of the present invention is a suspicious program that acquires malware process information developed on the memory 23 and confirms the malware executable file stored on the hard disk 22. Determine whether or not.

そのような判断基準の具体例として例えば次のようなものがある。
(a)正常なデジタル署名が付与されているか否かを判断する。
(b)開発元などのプロパティ情報が存在するか否かを判断する。
(c)ユーザーにより設定された除外リストに適合しているか否かを判断する。
(d)プロセスの実行ファイルがアイコン偽装を行っているか否かを判断する。
(e)拡張子が偽装されているか否かを判断する。
(f)既知の不正な情報をファイル内部に保有しているか否かを判断する。
(g)ユーザーの一時領域から実行されているか否かを判断する。
(h)OSの自動起動エントリーに登録されているか否かを判断する。
(i)既知の不正および不正ではないハッシュ値に属しているか否かを判断する。
Specific examples of such criteria are as follows.
(A) It is determined whether or not a normal digital signature is given.
(B) It is determined whether or not property information such as a developer exists.
(C) It is determined whether or not it matches the exclusion list set by the user.
(D) It is determined whether or not the process execution file is performing icon disguise.
(E) It is determined whether the extension is camouflaged.
(F) It is determined whether or not known illegal information is held in the file.
(G) It is determined whether or not the process is executed from the temporary area of the user.
(H) It is determined whether it is registered in the automatic start entry of the OS.
(I) It is determined whether or not it belongs to a known illegal and non-invalid hash value.

このような判断基準で不審であると認定されると、そのプログラムがミューテックス値を作成しようする関数の実行をフックして横取りして、事前にミューテックス値リストに登録しておくことで、そのプログラムの実行を阻止する。   If it is determined to be suspicious by such criteria, the program hooks and intercepts the execution of the function that creates the mutex value and registers it in the mutex value list in advance. To prevent execution.

ウインドウズプログラムは起動するとそれぞれのプロセス空間(メモリ空間)と呼ばれる仮想メモリー上に配置される。それぞれのプロセス空間にはIAT(ImportAddressTable)という項目があり、IATにはプログラムが使用する関数の一覧とそれに応じたメモリアドレスが記録されている。これは、プログラムが動作する際にどういった関数がどのアドレスに読み込まれているかをオペレーティングシステムが把握するための情報である。   When the Windows program is activated, it is arranged in a virtual memory called a process space (memory space). Each process space has an item called IAT (Import Address Table). A list of functions used by the program and a memory address corresponding to the list are recorded in the IAT. This is information for the operating system to know what function is read into which address when the program operates.

図13は、メモリー23上に展開されたマルウェアのプロセス空間のメモリー番地45000000にCreateMutexという関数が配置されている状態を示している。   FIG. 13 shows a state in which a function called CreateMutex is arranged at a memory address 45000000 in the process space of malware developed on the memory 23.

この状態においてフック制御を行う方法の詳細について説明する。   Details of the method of performing the hook control in this state will be described.

まず、マルウェアのプロセス空間に偽のCreateMutex関数、例えば、FakeCreateMutex関数を埋め込む。   First, embed a fake CreateMutex function, for example, the FakeCreateMutex function, in the malware process space.

自分以外の他のプロセス空間にコードを注入するためには、そのプロセスのメモリー空間において、VirtualAllocEx関数というWindowsAPIを利用し、まだ使用されていない領域に一定サイズのメモリー領域を確保する(図14参照)。   In order to inject code into another process space other than itself, a WindowsAPI called VirtualAllocEx function is used in the memory space of the process, and a memory area of a certain size is secured in an area not yet used (see FIG. 14). ).

次に、確保したメモリー領域にWriteProcessMemoryというWindowsAPIを利用し、実行させたいコード、すなわち、FakeCreateMutex関数本体と、そのFakeCreateMutex関数をマルウェアのIATへ組み込むための関数Aとを書き込む(図15参照)。なお、確保したメモリー領域の具体的なアドレスはVirtualAllocExの戻り値を確認することで取得することができる。   Next, using the Windows API called WriteProcessMemory in the reserved memory area, the code to be executed, that is, the FakeCreateMutex function main body and the function A for incorporating the FakeCreateMutex function into the malware IAT are written (see FIG. 15). The specific address of the secured memory area can be obtained by checking the return value of VirtualAllocEx.

次に、書き込んだコード(関数A)を実行させるためにCreateRemoteThreadというWindowsAPIを呼び出すことにより、その任意のコードをマルウェアのプロセス空間上で実行させる(図16参照)。ここで、不審プログラムのプロセス空間のみに注目すると、図17のようになる。   Next, by calling a Windows API called CreateRemoteThread to execute the written code (function A), the arbitrary code is executed on the malware process space (see FIG. 16). Here, when attention is paid only to the process space of the suspicious program, it is as shown in FIG.

次に、CreateRemoteThreadにより、関数Aが実行されると、不審プログラムのプロセス空間のIATにおける、正規のCreateMutex関数のアドレス、例えば45000000番地を、偽のFakeCreateMutex関数のアドレス、例えば、48500000番地へと書き換える(図18(a)、(b)参照)。これでフックの事前処理が行えたこととなる。   Next, when the function A is executed by CreateRemoteThread, the address of the regular CreateMutex function, for example, 45000000, in the IAT of the process space of the suspicious program is rewritten to the address of the fake FakeCreateMutex function, for example, 48.500000 ( (See FIGS. 18A and 18B). This completes the hook pre-processing.

なお、どの関数がどのアドレスに展開されているか、すなわち、IATにあるその関数に対応するアドレスを知るには、GetProcAddressというWindowsAPIの引数に関数名を渡すことで、指定した関数がプロセス空間のどのアドレスに対応づけられているのか知ることができる。   To find out which function is expanded to which address, that is, the address corresponding to that function in IAT, pass the function name to the Windows API argument GetProcAddress, and the specified function will be in the process space. You can know if it is associated with an address.

次に、不審プログラムが、例えば"MAL123"というミューテックス名をシステムに登録しようとしたとする。その場合、CreateMutex関数が呼び出されると、システムはマルウェアのIATを参照した結果、正規のCreateMutex関数ではなく、予め用意しておいた偽のFakeCreateMutex関数に"MAL123"というパラメータを渡すことになる(図19参照)。   Next, it is assumed that the suspicious program tries to register a mutex name such as “MAL123” in the system. In that case, when the CreateMutex function is called, as a result of referring to the malware IAT, the system passes the parameter "MAL123" to the fake FakeCreateMutex function prepared in advance instead of the regular CreateMutex function (Fig. 19).

次に、FakeCreateMutex関数の内部では、本発明プログラムへ、「不審プログラムが"MAL123"という名前のミューテックスを作成しようとしている」という情報を渡す処理を行う。その情報を受け取った本発明プログラムは、不審プログラムよりも先にミューテックスを登録することが可能となる(図20参照)。   Next, inside the FakeCreateMutex function, processing is performed to pass information that “the suspicious program is about to create a mutex named“ MAL123 ”” to the present invention program. The present invention program that has received the information can register the mutex prior to the suspicious program (see FIG. 20).

この時点で、まだ、不審プログラムは常駐してはいないが、不審プログラムが常駐する際に登録されるミューテックスはシステムに登録されている、という状態になる。   At this point, the suspicious program is not resident yet, but the mutex registered when the suspicious program resides is registered in the system.

また、不審プログラムのCreateMutex関数の呼び出し元に対しては、呼び出した結果、関数が失敗した、つまり、すでに"MAL123"というミューテックスがシステムに登録されていたという結果を返すことで、不審プログラムに偽りの情報を渡すことが可能となり、結果として、その後の動作継続を妨げることが可能となる(図20参照)。   In addition, for the caller of the CreateMutex function of the suspicious program, the function failed as a result of the call, that is, by returning the result that the mutex "MAL123" has already been registered in the system, it is false for the suspicious program. As a result, it is possible to prevent the subsequent operation from continuing (see FIG. 20).

なお、図20に示す処理は、結果的に、次の図21に示す処理と同等となり、本発明プログラムは常に失敗という値を返すこととなる。   The process shown in FIG. 20 is equivalent to the process shown in FIG. 21 as a result, and the program of the present invention always returns a value of failure.

このようにして、本実施形態は、マルウェアが使用するミューテックス値が不明であっても、マルウェアがミューテックス値を作成しようする関数の実行をフックして横取りして、事前にミューテックス値リストに登録しておくことで、マルウェアの実行を阻止することができる。   In this way, in the present embodiment, even if the mutex value used by the malware is unknown, the execution of the function that the malware tries to create the mutex value is hooked and pre-registered in the mutex value list in advance. By doing so, malware execution can be prevented.

[第3実施形態]
本発明の第2実施形態によるプログラム、情報処理装置及び情報処理方法について図22乃至図29を用いて説明する。
[Third Embodiment]
A program, an information processing apparatus, and an information processing method according to the second embodiment of the present invention will be described with reference to FIGS.

本実施形態は、よく使われる調査ツールのプロセス名をオペレーティングシステムに予め登録しておき、マルウェアが解析環境上にあると判断すると自分の動作を停止させるという機能を利用して、マルウェアの実行を阻止しようとするものである。   In this embodiment, the process name of a frequently used investigation tool is registered in the operating system in advance, and the malware is executed using the function of stopping its operation when it is determined that the malware is in the analysis environment. It is something to try to stop.

解析環境上で動作している状況の実現のためには、広く知られる解析ツールのプロセス名を持つプロセスをあらかじめコンピューター20上で動作させておくことで解決する。このプロセスは実際の解析ツールのプロセスである必要はなく、プロセス名が解析ツールと同一であれば実態はなんでもよく、コンピューター20への負荷の少ないプロセスであることが望ましい。   The realization of the situation operating in the analysis environment is solved by operating a process having a process name of a widely known analysis tool on the computer 20 in advance. This process does not have to be an actual analysis tool process, and any actual process may be used as long as the process name is the same as the analysis tool, and it is desirable that the process has a low load on the computer 20.

マルウェアが解析環境であることを検知するために存在確認を行う解析ツールのプロセス名としては、例えば、ネットワーク調査ツールであるWireShark(プロセス名:Wireshark.exe)、動的解析ツールであるOllyDbg(プロセス名:ollydbg.exe)、プロセス監視ツールであるProcess Monitor(プロセス名:procmon.exe)、静的解析ツールであるIDA Pro(プロセス名:idaq.exe)、プロセス管理ツールであるProcess Explorer(プロセス名:procexp.exe)等がある。   Examples of the process name of the analysis tool that checks the presence of malware in the analysis environment include WireShark (process name: Wireshark.exe), which is a network investigation tool, and OllyDbg (process, which is a dynamic analysis tool). Name: ollydbg.exe), Process Monitor (process name: procmon.exe), a process monitoring tool, IDA Pro (process name: idaq.exe), a static analysis tool, Process Explorer (process name), a process management tool : Procexp.exe).

本実施形態では、例えば、次に示すプロセス名の全て又は任意のいずれかを動作させておく。   In this embodiment, for example, all or any of the following process names are operated.

360Tray.exe、ashWebSv.exe、avcenter.exe、avguard.exe、avp.exe、ccSvcHst.exe、ekrn.exe、idag.exe、idaq.exe、idaq64.exe、ImmunityDebugger.exe、InstallRite.exe、kissvc.exe、Mcshield.exe、NTRTSCAN.exe、ollydbg.exe、outpost.exe、ProccessHacker.exe、Regshot.exe、SbieCtrl.exe、Smc.exe、tcpdump.exe、tcpview.exe、tmproxy.exe、VBoxService.exe、VBoxTray.exe、vmtoolsd.exe、VPTray.exe、windbg.exe、wireshark.exe。   360Tray.exe, ashWebSv.exe, avcenter.exe, avguard.exe, avp.exe, ccSvcHst.exe, ekrn.exe, idag.exe, idaq.exe, idaq64.exe, ImmunityDebugger.exe, InstallRite.exe, kissvc. exe, Mcshield.exe, NTRTSCAN.exe, ollydbg.exe, outpost.exe, ProccessHacker.exe, Regshot.exe, SbieCtrl.exe, Smc.exe, tcpdump.exe, tcpview.exe, tmproxy.exe, VBoxService.exe, VBoxTray.exe, vmtoolsd.exe, VPTray.exe, windbg.exe, wireshark.exe.

なお、本発明プログラムの実行により正常なプログラムへの影響はほとんどないと想定される。例外的に、一部PCゲーム等解析を検知すると動作しないものも考えられるが、その場合は、予め、除外リストへ検知から除外したいファイルやフォルダを設定しておくことで、そうした正常なPC操作上の不都合を回避することが可能である。   It is assumed that the execution of the program of the present invention has little influence on a normal program. Exceptionally, some PC games etc. may not work when an analysis is detected. In that case, such normal PC operation can be performed by setting a file or folder to be excluded from detection in the exclusion list in advance. The above inconvenience can be avoided.

マルウェアの中には、リストと合致した場合、自身の動作を停止するのではなく、合致した解析ツールのプロセスを停止させるものがある。このようなマルウェアに対しては、あらかじめマルウェアのコードが配置されたメモリー23内の、プロセスを停止させる関数、TerminateProcess等をフックしておき、解析ツールを終了しようとする場合には自身の動作を停止させるように変更する。すなわち、マルウェアが呼び出したTerminateProcessの引数が開発ツールのプロセスを示していた場合、その引数をマルウェア自身のプロセス情報に変更する。   Some malware does not stop its operation when it matches a list, but stops the process of the matching analysis tool. For such malware, hook the “TerminateProcess” function to stop the process in the memory 23 where the malware code is placed in advance, and if you want to terminate the analysis tool, Change to stop. That is, when the argument of TerminateProcess called by the malware indicates the process of the development tool, the argument is changed to the process information of the malware itself.

プロセスを停止させる関数をフックする処理については、第2実施形態におけるCreateMutex関数のフックと同様に行えばよい。   The process for hooking the function for stopping the process may be performed in the same way as the hook for the CreateMutex function in the second embodiment.

本実施形態では、次のようにして、任意のプロセス名を持つプロセスを起動する。   In this embodiment, a process having an arbitrary process name is started as follows.

例えば、"OllyDbg.exe"という名前のプロセスを起動したい場合、本発明プログラム"MyProgram.exe"は一時領域に自身の実行ファイルのコピーを"OllyDbg.exe"というファイル名で作成し、その実行ファイルを起動させる。   For example, if you want to start a process named "OllyDbg.exe", the program "MyProgram.exe" of the present invention creates a copy of its executable file in the temporary area with the file name "OllyDbg.exe". Start up.

これにより、オペレーティングシステム上には、本発明プログラムのプロセス"MyProgram.exe"という親プロセスと"OllyDbg.exe"("MyProgram.exe"のコピー)という子プロセスが2つ起動していることになる。起動しているプロセスの親子関係をあまり意識しないタスクマネージャーなどの他のプロセスから見ると、システムのプロセスリストにはそれぞれのプロセスが独立して起動しているように見える(図22参照)。   As a result, two parent processes called “MyProgram.exe” and a child process called “OllyDbg.exe” (a copy of “MyProgram.exe”) are running on the operating system. . When viewed from other processes such as a task manager that is not so conscious of the parent-child relationship of the activated processes, each process appears to be activated independently in the system process list (see FIG. 22).

この動作、すなわち、自身のコピーを任意のファイル名に変更して起動させる動作を繰り返すことにより、複数の任意のプロセスを一斉に起動することとなる(図23参照)。そのときのウインドウズシステムの状態は図24に示すようになる。   By repeating this operation, that is, the operation of changing the copy of itself to an arbitrary file name and starting it, a plurality of arbitrary processes are started simultaneously (see FIG. 23). The state of the Windows system at that time is as shown in FIG.

繰り返しコピーを作成しそれを利用して複数のプロセスを起動する上記の操作を行った際、一時領域フォルダ内に各プロセス名と同一の実行ファイル、すなわち、実行ファイル"MyProgram.exe"のコピー、が起動したプロセスの数だけ複数存在している状態となる。この状態でプロセス"MyProgram.exe"のみが終了してしまうと、残りのプロセスが孤立して起動することなり、作成した複数の実行ファイル、すなわち、実行ファイル"MyProgram.exe"のコピーがハードディスク22上に残留してしまうことになり、ウインドウズシステムへの負荷を残すこととなる。   When the above operation to create multiple copies and use them to start multiple processes is performed, a copy of the executable file "MyProgram.exe" that is the same as each process name in the temporary area folder, As many processes exist as the number of processes started. If only the process “MyProgram.exe” is terminated in this state, the remaining processes are started in isolation, and a plurality of created executable files, that is, copies of the executable file “MyProgram.exe” are stored on the hard disk 22. It will remain on top, leaving a load on the Windows system.

本発明プログラムでは、そうした事態を避けるため、プロセス"MyProgram.exe"が終了した場合、作成した複数の実行ファイル、すなわち、実行ファイル"MyProgram.exe"のコピーおよびそのプロセスは不必要となるため、次のようにして全ての関連子プロセスも併せて終了し、実行ファイルも削除されるようにしている。その動作の詳細について説明する。   In the program of the present invention, in order to avoid such a situation, when the process "MyProgram.exe" ends, a plurality of created executable files, that is, copies of the executable file "MyProgram.exe" and the process thereof are unnecessary. In the following way, all related child processes are terminated together, and the executable file is also deleted. Details of the operation will be described.

作成された子プロセス、すなわち"OllyDbg.exs"、"Wireshark.exe"等は常時自身の親プロセスが起動しているかどうかを監視する(図25参照)。   The created child processes, that is, “OllyDbg.exs”, “Wireshark.exe”, and the like constantly monitor whether their parent process is activated (see FIG. 25).

子プロセスが親プロセスを監視する具体的な方法として次のようなものがある。   There are the following specific methods for the child process to monitor the parent process.

まず、親プロセスが自身のコピーである子プロセスを起動させる際、自身(親)のプロセスIDを実行引数として渡した状態で子プロセスを呼び出す。次に、呼び出された側のプロセスは自身がプロセスIDを実行引数に付与された状態で起動したと判断すると、自身が「子」であり、引数のプロセスIDを持つプロセスが「親」であるというプロセスの親子関係を把握することができる。   First, when starting a child process that is a copy of itself, the parent process is called with the process ID of itself (parent) passed as an execution argument. Next, when the called process determines that it has started up with the process ID assigned to the execution argument, it is a “child” and the process having the argument process ID is the “parent”. To understand the parent-child relationship of the process.

プロセスIDがわかれば、WindowsAPIであるCreateToolhelp32SnapShot 関数、Process32First関数、Process32Next関数を組み合わせることで、指定したプロセスIDを持つプロセスが現在起動しているかどうかを判断することができる。   If the process ID is known, it is possible to determine whether the process having the specified process ID is currently activated by combining the CreateAPIhelp32SnapShot function, Process32First function, and Process32Next function that are Windows APIs.

親プロセスが終了していると判断した場合、子プロセスは自身を終了して削除する動作を行う。   If it is determined that the parent process is terminated, the child process performs an operation of terminating and deleting itself.

プロセスが起動している最中は、そのプロセスの実体となる実行ファイルを削除することはオペレーティングシステムにおいて基本的に不可能である。つまり、実体である実行ファイルを削除するにはそのプロセスを終了させなければならない。このため、自分自身の実行ファイルを削除してプロセスを終了する動作、またはその逆の動作は、プログラム単体で実現することは不可能である。   While the process is running, it is basically impossible in the operating system to delete the executable file that is the substance of the process. In other words, to delete the actual executable file, the process must be terminated. For this reason, it is impossible to realize the operation of deleting the own executable file and ending the process, or vice versa, with a single program.

そのため、次のようにして、実質的に、自分自身のプロセス終了およびその実体である実行ファイルの削除を行う。   Therefore, the process itself is terminated and the execution file that is the substance of the process is substantially deleted as follows.

例えば、実行ファイル名およびそのプロセスが"AAAAA.exe"であると仮定すると、プロセスAAAAA.exeは、一時的に削除用のバッチファイル(Batch File)を作成する。そのバッチファイルには、AAAAA.exeというプロセスがいなくなるまでスリープを繰り返し、AAAAA.exeというプロセスがいなくなったら、実行ファイルAAAAA.exeを削除する、という命令コードを記載する。   For example, assuming that the execution file name and its process are “AAAAA.exe”, the process AAAAA.exe temporarily creates a batch file (Batch File) for deletion. In the batch file, an instruction code is written that repeatedly sleeps until the AAAA.exe process disappears, and deletes the executable file AAAAA.exe when the AAAAA.exe process disappears.

バッチファイルを呼び出したプロセスAAAAA.exeは、その後自身のプロセスを終了させる。すると、AAAAA.exeのプロセスが存在しなくなった状態を確認したバッチファイルが、プロセスAAAAA.exeの実体である実行ファイルAAAAA.exeを削除する(図26参照)。   The process AAAAA.exe that called the batch file then terminates its process. Then, the batch file that has confirmed that the AAAA.exe process no longer exists deletes the execution file AAAAA.exe that is the entity of the process AAAAA.exe (see FIG. 26).

次に、バッチファイルは、自分自身であるバッチファイルを削除するために、DELコマンドで自身を削除するコマンドをコマンドプロンプトに渡して実行させバッチファイル自身を終了させる。その後、コマンドプロンプトはバッチファイルをDELコマンドで削除した後、終了する(図27参照)。コマンドプロンプトは渡された処理が全て終了すると自身(コマンドプロンプト自身のプロセス)を終了する動作があるため、それを利用する。   Next, in order to delete the batch file which is itself, the batch file itself is executed by passing a command for deleting itself to the command prompt with the DEL command, and the batch file itself is terminated. Thereafter, the command prompt is terminated after deleting the batch file with the DEL command (see FIG. 27). Since the command prompt has an operation to terminate itself (process of the command prompt itself) when all the passed processing is completed, it is used.

以上が、プログラムが自分自身を終了&削除する方法となるが、この方法を起動した全ての子プロセスが同時に行う。   The above is the method for the program to terminate and delete itself, but all the child processes that started this method perform it simultaneously.

このようにして"MyProgram.exe"が終了すると、そのコピーである各プロセスおよびその実体であるファイルが削除され、"MyProgram.exe"が起動する前の環境状態にすることができる。   When "MyProgram.exe" ends in this way, each process that is a copy and the file that is the entity are deleted, and the environment state before "MyProgram.exe" is activated can be set.

また、本発明プログラムでは、マルウェアの攻撃検知機能も機能のひとつとして搭載している。   The program of the present invention also includes a malware attack detection function as one of the functions.

一般的にマルウェアは、解析ツールやマルウェア対策製品のプロセスが起動していると判断した場合、その多くが自身を終了する動作を行う。その一方で、自身を終了するのではなく、相手側を終了させようと試みるタイプのマルウェアも存在する。何か解析ツールのプロセスが起動していた場合は、その解析ツールを終了させることでユーザーの操作を妨害し、自分が解析されることを妨害するものがある。   In general, when it is determined that the process of the analysis tool or the anti-malware product is activated, most of the malware performs an operation of terminating itself. On the other hand, there is also a type of malware that tries to terminate the other party rather than terminating itself. If an analysis tool process has been started, exiting the analysis tool may interfere with the user's operation and prevent the user from being analyzed.

本発明プログラムでは、自身の子プロセスが終了されていないかどうかを親プロセスが監視することで、その攻撃を検知する(図28参照)。   In the program of the present invention, the parent process monitors whether or not its own child process has been terminated, thereby detecting the attack (see FIG. 28).

マルウェアが、例えば、"WireShark.exe"を強制終了した場合、本発明プログラムは自身の子プロセスがひとつ存在しなくなったため、マルウェアによって強制終了されたと判断する(図29(a)〜(c)参照)。   For example, when the malware forcibly terminates “WireShark.exe”, the program of the present invention determines that the program has been forcibly terminated by the malware because one child process does not exist (see FIGS. 29A to 29C). ).

プログラムがプロセスの強制終了を行う場合は、通常TerminateProcessというWindowsAPIを呼び出すことで実現している。ウィンドウズに標準搭載されているタスクマネージャーというプログラムでプロセスを強制終了させた場合も"TerminateProcess"が呼び出される。   When a program forcibly terminates a process, it is usually realized by calling a Windows API called TerminateProcess. "TerminateProcess" is also called when a process is forcibly terminated by a program called Task Manager, which is standard on Windows.

ユーザーが誤ってタスクマネージャーからユーザー操作で子プロセスを終了した場合、マルウェアの攻撃により子プロセスを終了されたと誤検知する可能性がある。そのため、本発明プログラムはその誤検知が起こらないようにしている。   If a user accidentally terminates a child process by a user operation from the task manager, there is a possibility that the child process is erroneously detected as being terminated by a malware attack. Therefore, the program of the present invention prevents the erroneous detection from occurring.

一般的なプロセスが、TerminateProcess関数により他のプロセスの強制終了を行う場合には、以下の手順となる。   When a general process forcibly terminates another process using the TerminateProcess function, the procedure is as follows.

OpenProcessというWindowsAPIの関数に対し、強制終了させたいプロセスのプロセスIDを第三引数に、第一引数に「PROCESS_TERMINATE」というアクセス権を割り当てた状態で開く。この引数を渡した状態でOpenProcess関数の呼び出しに成功すると、それは与えられたアクセス権、ここではPROCESS_TERMINATE、つまり強制終了の権限でプロセスを扱う権利を得たという意味になる。   For the WindowsAPI function OpenProcess, the process ID of the process to be forcibly terminated is opened as the third argument and the access right "PROCESS_TERMINATE" is assigned as the first argument. Successful calls to the OpenProcess function with this argument passed mean that you have obtained the right to handle the process with the given access right, here PROCESS_TERMINATE, that is, the forced termination right.

次に、上記のOpenProcessが成功すると、戻り値でプロセスハンドル(プロセスを取り扱うオブジェクト)が応答されるため、そのプロセスハンドルをTerminateProcessの引数として渡すことで、該当のプロセスを強制終了させることが可能となる。   Next, if the above OpenProcess succeeds, a process handle (an object that handles the process) is returned as a return value. By passing the process handle as an argument of TerminateProcess, the corresponding process can be forcibly terminated. Become.

つまり、OpenProcess関数により「PROCESS_TERMINATE」というアクセス権で自身のプロセスが開かれる事を失敗させることができれば、他のプログラムからの強制終了(TerminateProcessの呼び出し)を結果的に失敗させることが可能となる。   In other words, if the OpenProcess function can fail to open its own process with the access right “PROCESS_TERMINATE”, it is possible to cause the forced termination (call of TerminateProcess) from another program to fail as a result.

指定したアクセス権によるOpenProcessを失敗させるには、TerminateProcessからの強制終了から守りたいプロセスを作成する際、具体的にはCreateProcessを用いてプロセスを作成する際に、そのプロセスに付与するセキュリティ情報、すなわち、CreateProcessを呼出す際の第三引数のセキュリティ記述子から「PROCESS_TERMINATE」というアクセス権、すなわち、他のプロセスからの強制終了を許可するというアクセス権を取り除くことで、他の一般的なプロセスから強制終了を許可しないアクセス権を持ったプロセスを作成することができる。   To make OpenProcess fail with the specified access right, when creating a process that you want to protect from forced termination from TerminateProcess, specifically when creating a process using CreateProcess, security information to be given to that process, that is, , By removing the access right of "PROCESS_TERMINATE" from the security descriptor of the third argument when calling CreateProcess, that is, the access right to allow forced termination from another process, the forced termination from another general process You can create a process with access rights that do not allow access.

本発明プログラムでは、この手法により、親プロセスおよび子プロセスが一般的な強制終了、つまり、タスクマネージャーなどからのユーザー操作による強制終了をブロックすることが可能となり、誤検知を防ぐことができる。   In the program of the present invention, this method makes it possible to block a general forced termination of the parent process and the child process, that is, forced termination by a user operation from a task manager or the like, thereby preventing erroneous detection.

また、併せて、ユーザー操作レベルで強制終了させようとする種類のマルウェアの挙動をブロックすることが可能となり、結果的にそうしたマルウェアの動作継続を妨害することもできる。   In addition, it is possible to block the behavior of the type of malware that is forced to terminate at the user operation level, and as a result, it is possible to prevent the operation of such malware from continuing.

一方で、マルウェアの中には、TerminateProcessの呼び出しが上記の手法でブロックされていても、対象を強制終了させることができるタイプのものが存在する。具体的にはSeDebugPrivilege関数を利用して自身をデバッガと同じ特権状態に上げることで、相手が設定したアクセス権を無視して強制的に操作し、さらに強力に強制終了させることが可能となる。   On the other hand, some types of malware can forcibly terminate the target even if TerminateProcess is blocked by the above method. Specifically, by using the SeDebugPrivilege function to raise itself to the same privileged state as the debugger, it is possible to forcibly operate by ignoring the access right set by the other party, and forcibly terminate it.

本発明プログラムの強制終了検知は、こうしたタイプのマルウェアが強制的に子プロセスを終了させたことを検知することができ、そうしたマルウェアがそのコンピューター内に存在すると検出することができることとなる。   The forced termination detection of the program of the present invention can detect that such a type of malware has forcibly terminated the child process, and can detect that such malware is present in the computer.

[変形実施形態]
本発明は上記実施形態に限らず種々の変形が可能である。
[Modified Embodiment]
The present invention is not limited to the above embodiment, and various modifications can be made.

例えば、上記実施形態では、マイクロソフトのオペレーティングシステムであるマイクロソフトウィンドウズ(Microsoft Windows)に本発明を適用したが、Android、BSD、iOS、Linux、OS X、Windows Phone、IBM z/OS(全て登録商標)等の他のオペレーティングシステムに本発明を適用してもよい。各オペレーティングシステムに対するマルウェアによる攻撃を確実かつ有効に阻止することができる。   For example, in the above embodiment, the present invention is applied to Microsoft Windows, which is a Microsoft operating system, but Android, BSD, iOS, Linux, OS X, Windows Phone, IBM z / OS (all registered trademarks). The present invention may be applied to other operating systems. It is possible to reliably and effectively prevent malware attacks on each operating system.

10…情報処理装置
20…コンピューター(PC)
30…外部周辺装置
21…CPU
22…ハードディスク
23…メモリー
24…入出力装置
25…ディスプレイ
31…プリンター
32…外部記憶装置
10 ... Information processing device 20 ... Computer (PC)
30 ... External peripheral device 21 ... CPU
22 ... Hard disk 23 ... Memory 24 ... Input / output device 25 ... Display 31 ... Printer 32 ... External storage device

Claims (9)

コンピューターを、
マルウェアが使用するミューテックス値をオペレーティングシステムに登録する登録部と、
前記ミューテックス値を利用するプロセスを常駐させる常駐部と、
して機能させるためのプログラム。
Computer
A registration unit that registers the mutex value used by the malware in the operating system;
A resident part that makes a process that uses the mutex value resident, and
Program to make it function.
請求項1記載のプログラムにおいて、
前記登録部は、ソフトウェアがミューテックス値を作成する関数の実行をフックして、前記関数が作成しようとする前記ミューテックス値を前記オペレーティングシステムに登録する、
プログラム。
The program according to claim 1,
The registration unit hooks execution of a function for creating a mutex value by software, and registers the mutex value to be created by the function in the operating system.
program.
請求項2記載のプログラムにおいて、
前記コンピューターを、起動しようとするソフトウェアがマルウェアであるか否かを判断する判断部として更に機能させ、
前記登録部は、前記判断部によりマルウェアであると判断されたソフトウェアのミューテックス値を前記オペレーティングシステムに登録する
プログラム。
The program according to claim 2,
Causing the computer to further function as a determination unit that determines whether the software to be started is malware;
The registration unit registers a mutex value of software determined to be malware by the determination unit in the operating system.
コンピューターを、
オペレーティングシステムの解析ツールと同じプロセス名のプロセスを起動する起動部と、
前記プロセス名のプロセスを常駐させる常駐部と、
して機能させるためのプログラム。
Computer
A launcher that launches a process with the same process name as the operating system analysis tool;
A resident part for resident the process having the process name;
Program to make it function.
請求項4記載のプログラムにおいて、
前記起動部は、前記プロセスのコピーを他のプロセス名に変更して起動することにより前記他のプロセス名のプロセスを起動する
プログラム。
The program according to claim 4, wherein
The activation unit activates a process having the other process name by changing a copy of the process to another process name and activating the copy.
マルウェアが使用するミューテックス値をオペレーティングシステムに登録する登録部と、
前記ミューテックス値を利用するプロセスを常駐させる常駐部と、
を有する情報処理装置。
A registration unit that registers the mutex value used by the malware in the operating system;
A resident part that makes a process that uses the mutex value resident, and
An information processing apparatus.
オペレーティングシステムの解析ツールと同じプロセス名のプロセスを起動する起動部と、
前記プロセス名のプロセスを常駐させる常駐部と、
を有する情報処理装置。
A launcher that launches a process with the same process name as the operating system analysis tool;
A resident part for resident the process having the process name;
An information processing apparatus.
マルウェアが使用するミューテックス値をオペレーティングシステムに登録し、
前記ミューテックス値を利用するプロセスを常駐させる
情報処理方法。
Register the mutex value used by the malware in the operating system,
An information processing method in which a process using the mutex value is made resident.
オペレーティングシステムの解析ツールと同じプロセス名のプロセスを起動し、
前記プロセス名のプロセスを常駐させる
情報処理方法。
Start a process with the same process name as the operating system analysis tool,
An information processing method for causing a process having the process name to reside.
JP2016013232A 2016-01-27 2016-01-27 Program, information processing apparatus, and information processing method Active JP5955475B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016013232A JP5955475B1 (en) 2016-01-27 2016-01-27 Program, information processing apparatus, and information processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016013232A JP5955475B1 (en) 2016-01-27 2016-01-27 Program, information processing apparatus, and information processing method

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2016106257A Division JP2017134805A (en) 2016-05-27 2016-05-27 Program, information processing device and information processing method

Publications (2)

Publication Number Publication Date
JP5955475B1 JP5955475B1 (en) 2016-07-20
JP2017134574A true JP2017134574A (en) 2017-08-03

Family

ID=56421669

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016013232A Active JP5955475B1 (en) 2016-01-27 2016-01-27 Program, information processing apparatus, and information processing method

Country Status (1)

Country Link
JP (1) JP5955475B1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111625813B (en) * 2020-05-27 2023-02-28 重庆夏软科技有限公司 Method for protecting program by modifying process
US11768933B2 (en) 2020-08-11 2023-09-26 Saudi Arabian Oil Company System and method for protecting against ransomware without the use of signatures or updates
WO2023201583A1 (en) * 2022-04-20 2023-10-26 西门子股份公司 Network system protection method and apparatus, and computer device and storage medium

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7472288B1 (en) * 2004-05-14 2008-12-30 Trend Micro Incorporated Protection of processes running in a computer system
JP5083760B2 (en) * 2007-08-03 2012-11-28 独立行政法人情報通信研究機構 Malware similarity inspection method and apparatus

Also Published As

Publication number Publication date
JP5955475B1 (en) 2016-07-20

Similar Documents

Publication Publication Date Title
US7571482B2 (en) Automated rootkit detector
US7620992B2 (en) System and method for detecting multi-component malware
US8904537B2 (en) Malware detection
KR102307534B1 (en) Systems and methods for tracking malicious behavior across multiple software entities
US10055585B2 (en) Hardware and software execution profiling
Wang et al. Detecting stealth software with strider ghostbuster
Mariani Userland hooking in windows
US20140053267A1 (en) Method for identifying malicious executables
US20030212906A1 (en) Method and apparatus for determination of the non-replicative behavior of a malicious program
JP2018041438A (en) System and method for detecting malicious codes in file
US20220035919A1 (en) Just in time memory analysis for malware detection
US8370941B1 (en) Rootkit scanning system, method, and computer program product
US8898591B2 (en) Program removal
JP5955475B1 (en) Program, information processing apparatus, and information processing method
US10902122B2 (en) Just in time memory analysis for malware detection
JP5326063B1 (en) Malicious shellcode detection apparatus and method using debug events
JP6714112B2 (en) Mitigating malicious behavior associated with graphical user interface elements
Bravo et al. Proactive detection of kernel-mode rootkits
Sun et al. API monitoring system for defeating worms and exploits in MS-Windows system
JP2017134805A (en) Program, information processing device and information processing method
Muthumanickam CoPDA: concealed process and service discovery algorithm to reveal rootkit footprints
US20240111860A1 (en) Systems and methods for preventing hollowing attack
US20220215090A1 (en) Detecting Stack Pivots Using Stack Artifact Verification
JP2018195155A (en) Program, information processing apparatus, and information processing method
KR20090080220A (en) Malware(useless process) dectect/blocking and prevent recrudescence method

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160426

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160527

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160614

R150 Certificate of patent or registration of utility model

Ref document number: 5955475

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250