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

Program, information processing device, and information processing method Download PDF

Info

Publication number
JP2018010499A
JP2018010499A JP2016139145A JP2016139145A JP2018010499A JP 2018010499 A JP2018010499 A JP 2018010499A JP 2016139145 A JP2016139145 A JP 2016139145A JP 2016139145 A JP2016139145 A JP 2016139145A JP 2018010499 A JP2018010499 A JP 2018010499A
Authority
JP
Japan
Prior art keywords
file
function
path
called
condition
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
JP2016139145A
Other languages
Japanese (ja)
Other versions
JP5996145B1 (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 JP2016139145A priority Critical patent/JP5996145B1/en
Application granted granted Critical
Publication of JP5996145B1 publication Critical patent/JP5996145B1/en
Priority to US15/645,270 priority patent/US10264002B2/en
Publication of JP2018010499A publication Critical patent/JP2018010499A/en
Priority to US16/144,606 priority patent/US11159541B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a program, an information processing device, and an information processing method capable of efficiently blocking an attack from malware.SOLUTION: A prescribed process is determined to be malware when a file writing function called from a prescribed process satisfies a first condition that a file reading function has already been called from the prescribed process and a second condition that the file writing function rewrites the header of a file of a file path for the file path being the same as a file path to which data is written.SELECTED DRAWING: Figure 26

Description

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

近年、ランサムウェアと呼ばれる種類のマルウェアが世界的に流行している。   In recent years, a type of malware called ransomware has become popular worldwide.

ランサムウェアは、他の一般的なマルウェアと同じくインターネットやメール経由で端末に感染する。   Ransomware, like other common malware, infects devices via the Internet and email.

ランサムウェアは一度感染すると、端末上の一部のファイルまたは全体を暗号化(ロック)し、ファイルの使用または端末の使用を不可能にした上で、身代金(ランサム:ransom)を支払うよう要求する。暗号化されたファイルを復元することの見返りに金銭を要求する脅迫型のマルウェアである。   Once the ransomware is infected, it encrypts (locks) some or all of the files on the device, makes it impossible to use the file or the device, and asks to pay a ransom. . It is a threatening malware that demands money in return for restoring encrypted files.

ランサムウェアの場合、感染すると直ちにファイルの暗号化が開始される。このため、そのランサムウェアがセキュリティ製品にとって未知の検体である場合、パターンファイルによる検知等の通常の検知では間に合わず、ファイルの暗号化を阻止することは困難である。仮にランサムウェアの感染に早期に気付き、直ちに端末の電源を切る等の処置をとったとしても、ランサムウェアによりいくらかのファイルが暗号化されることは免れず、被害を完全に阻止することは非常に困難である。   In the case of ransomware, file encryption starts immediately after infection. For this reason, when the ransomware is an unknown sample for a security product, it is difficult to prevent file encryption because normal detection such as detection by a pattern file is not in time. Even if you notice ransomware infection at an early stage and immediately take measures such as turning off the power of the terminal, it is inevitable that some files will be encrypted by ransomware, and it is very difficult to completely prevent damage It is difficult to.

ランサムウェアを検出するための方法として、ランサムウェアがユーザーによる操作や入力状態に関係なく、突然ウィンドウを表示する等の特徴的動作をすることを利用して、キーボード、マウス等の入力インターフェースの操作状態と、ディスプレイデバイスの変更状態とを監視してランサムウェアを検出する方法が知られている(特許文献1参照)   As a method for detecting ransomware, operation of input interfaces such as a keyboard and a mouse is performed by utilizing a characteristic operation such as suddenly displaying a window regardless of a user's operation or an input state. A method for detecting a ransomware by monitoring a state and a change state of a display device is known (see Patent Document 1).

米国特許出願公開第2014/0181971号明細書US Patent Application Publication No. 2014/0181971

従来の方法ではランサムウェアのようなマルウェアによるファイルの暗号化等の攻撃を有効に阻止することが困難であった。   In the conventional method, it has been difficult to effectively prevent attacks such as file encryption by malware such as ransomware.

本発明の目的は、マルウェアによる攻撃を有効に阻止することができるプログラム、情報処理装置、及び情報処理方法を提供することにある。   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.

本発明の一態様によるプログラムは、コンピューターを、所定のプロセスから呼び出されるファイル書込関数がデータを書き込むファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル読出関数が既に呼び出されているという第1の条件と、前記ファイル書込関数が、前記ファイルパスのファイルのヘッダを書き換えるという第2の条件とを満足する場合に、前記所定のプロセスをランサムウェアと判断する判断部として機能させることを特徴とする。   In the program according to one aspect of the present invention, the file read function is already called from the predetermined process with respect to the same file path as the file write function to which the file write function called from the predetermined process writes data. Function as a determination unit that determines that the predetermined process is ransomware when the file write function satisfies the second condition that the file write function rewrites the header of the file in the file path. It is characterized by making it.

上述したプログラムにおいて、前記判断部は、前記第1の条件及び前記第2の条件に加えて、前記ファイルパスのファイルがヘッダを有しないテキストファイルであるという第3の条件とを満足する場合には、前記所定のプロセスをランサムウェアとして処理するか否かの処理の選択肢をユーザーに提示するようにしてもよい。   In the above-described program, when the determination unit satisfies the third condition that the file of the file path is a text file having no header in addition to the first condition and the second condition. May present a user with a processing option as to whether or not to process the predetermined process as ransomware.

上述したプログラムにおいて、前記判断部は、前記第1の条件及び前記第2の条件に加えて、前記所定のプロセスから、前記ファイル書込関数の呼び出しの前に、前記ファイルパスに含まれるパスと同一のパスにおける他のファイルを検索するファイル検索関数が呼びだされているという第4の条件とを満足する場合に、前記所定のプロセスをランサムウェアと判断するようにしてもよい。   In the above-described program, the determination unit includes, in addition to the first condition and the second condition, a path included in the file path from the predetermined process before the file write function is called. The predetermined process may be determined as ransomware when the fourth condition that a file search function for searching for another file in the same path is called is satisfied.

上述したプログラムにおいて、前記判断部は、前記第1の条件及び前記第2の条件に加えて、前記所定のプロセスから、前記ファイル書込関数の呼び出しの後に、前記ファイルパスに含まれるパスと同一のパスを移動元のパスとし、前記ファイルパスに含まれるパスと同一のパスを移動元のパスとするファイル移動関数が呼びだされているという第5の条件を満足する場合に、前記所定のプロセスをランサムウェアと判断するようにしてもよい。   In the above-described program, the determination unit is the same as the path included in the file path after calling the file write function from the predetermined process in addition to the first condition and the second condition. When the fifth condition is satisfied that the file movement function is called with the path of the file as the movement source path and the same path as the path included in the file path being called, The process may be determined as ransomware.

本発明の一態様によるプログラムは、コンピューターを、所定のプロセスから呼び出されるファイル削除関数が削除するファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル読出関数が既に呼び出されているという第1の条件と、前記所定のプロセスから呼び出される前記ファイル削除関数が削除する前記ファイルパスと同一のファイルパスを移動先とする第1のファイル移動関数が既に呼び出されているという第2の条件と、前記所定のプロセスから呼び出される第2のファイル移動関数の移動元のファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル書込関数が既に呼び出されているという第3の条件と、前記第1のファイル移動関数の移動元のファイルパスのファイルのヘッダと、前記ファイル削除関数が削除する前記ファイルパスのファイルのヘッダとが相違しているという第4の条件とを満足する場合に、前記所定のプロセスをランサムウェアと判断する判断部として機能させることを特徴とする。   In the program according to one aspect of the present invention, the file read function is already called from the predetermined process with respect to the same file path as the file path deleted by the file deletion function called from the predetermined process. The first condition and the second condition that the first file movement function having the same file path as the file path to be deleted by the file deletion function called from the predetermined process has already been called And a third condition that the file write function is already called from the predetermined process for the same file path as the source file path of the second file move function called from the predetermined process. And a file header of the file path of the movement source of the first file movement function, When the fourth condition that a file header of the file path to be deleted is different from the file path to be deleted by the file deletion function is made to function as a determination unit that determines the predetermined process as ransomware. And

本発明の一態様によるプログラムは、コンピューターを、所定のプロセスから呼び出されるファイル移動関数の移動先のファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル読出関数が既に呼び出されているという第1の条件と、前記ファイル移動関数の移動元のファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル書込関数が既に呼び出されているという第2の条件と、前記ファイル移動関数の移動元のファイルパスのファイルのヘッダと、前記ファイル移動関数の移動先のファイルパスのファイルのヘッダとが相違しているという第3の条件とを満足する場合に、前記所定のプロセスをランサムウェアと判断する判断部として機能させることを特徴とする。   In the program according to one aspect of the present invention, the file read function is already called from the predetermined process with respect to the same file path as the destination file path of the file move function called from the predetermined process. A second condition that a file write function has already been called from the predetermined process for a file path that is the same as the file path that is the source of the file move function, and the file The predetermined process when the third condition that the header of the file path of the file path of the movement function is different from the header of the file path of the file path of the movement destination of the file movement function is satisfied. It is made to function as a judgment part which judges that is ransomware.

本発明の一態様によるプログラムは、コンピューターに、所定のプロセスから呼び出されるファイル書込関数がデータを書き込むファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル読出関数が既に呼び出されているという第1の条件と、前記ファイル書込関数が、前記ファイルパスのファイルのヘッダを書き換えるという第2の条件とを満足する場合に、前記所定のプロセスをランサムウェアと判断する手順を実行させることを特徴とする。   In the program according to one aspect of the present invention, the file read function is already called from the predetermined process to the computer for the same file path as the file write function to which the file write function called from the predetermined process writes data. When the file write function satisfies the second condition that the file write function rewrites the header of the file in the file path, a procedure for determining the predetermined process as ransomware is executed. It is characterized by that.

本発明の一態様によるプログラムは、コンピューターに、所定のプロセスから呼び出されるファイル削除関数が削除するファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル読出関数が既に呼び出されているという第1の条件と、前記所定のプロセスから呼び出される前記ファイル削除関数が削除する前記ファイルパスと同一のファイルパスを移動先とする第1のファイル移動関数が既に呼び出されているという第2の条件と、前記所定のプロセスから呼び出される第2のファイル移動関数の移動元のファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル書込関数が既に呼び出されているという第3の条件と、前記第1のファイル移動関数の移動元のファイルパスのファイルのヘッダと、前記ファイル削除関数が削除する前記ファイルパスのファイルのヘッダとが相違しているという第4の条件とを満足する場合に、前記所定のプロセスをランサムウェアと判断する手順を実行させることを特徴とする。   In the program according to one aspect of the present invention, the file read function is already called from the predetermined process for the same file path as the file path to be deleted by the file deletion function called from the predetermined process. The first condition and the second condition that the first file movement function having the same file path as the file path to be deleted by the file deletion function called from the predetermined process has already been called And a third condition that the file write function is already called from the predetermined process for the same file path as the source file path of the second file move function called from the predetermined process. And a file header of the file path of the movement source of the first file movement function, When the fourth condition that a file header of the file path to be deleted is different from the file header to be deleted by the file deletion function, a procedure for determining the predetermined process as ransomware is executed. To do.

本発明の一態様によるプログラムは、コンピューターに、所定のプロセスから呼び出されるファイル移動関数の移動先のファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル読出関数が既に呼び出されているという第1の条件と、前記ファイル移動関数の移動元のファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル書込関数が既に呼び出されているという第2の条件と、前記ファイル移動関数の移動元のファイルパスのファイルのヘッダと、前記ファイル移動関数の移動先のファイルパスのファイルのヘッダとが相違しているという第3の条件とを満足する場合に、前記所定のプロセスをランサムウェアと判断する手順を実行させることを特徴とする。   In the program according to one aspect of the present invention, the file read function is already called from the predetermined process for the same file path as the destination file path of the file move function called from the predetermined process. A second condition that a file write function has already been called from the predetermined process for a file path that is the same as the file path that is the source of the file move function, and the file The predetermined process when the third condition that the header of the file path of the file path of the movement function is different from the header of the file path of the file path of the movement destination of the file movement function is satisfied. Is executed as a ransomware.

本発明の一態様による情報処理装置は、所定のプロセスから呼び出されるファイル書込関数がデータを書き込むファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル読出関数が既に呼び出されているという第1の条件と、前記ファイル書込関数が、前記ファイルパスのファイルのヘッダを書き換えるという第2の条件とを満足する場合に、前記所定のプロセスをランサムウェアと判断する判断部を有することを特徴とする。   In the information processing apparatus according to one aspect of the present invention, the file read function is already called from the predetermined process with respect to the same file path as the file write function called from the predetermined process. And a determination unit that determines that the predetermined process is ransomware when the file write function satisfies a second condition of rewriting a header of a file in the file path. It is characterized by.

本発明の一態様による情報処理装置は、所定のプロセスから呼び出されるファイル削除関数が削除するファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル読出関数が既に呼び出されているという第1の条件と、前記所定のプロセスから呼び出される前記ファイル削除関数が削除する前記ファイルパスと同一のファイルパスを移動先とする第1のファイル移動関数が既に呼び出されているという第2の条件と、前記所定のプロセスから呼び出される第2のファイル移動関数の移動元のファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル書込関数が既に呼び出されているという第3の条件と、前記第1のファイル移動関数の移動元のファイルパスのファイルのヘッダと、前記ファイル削除関数が削除する前記ファイルパスのファイルのヘッダとが相違しているという第4の条件とを満足する場合に、前記所定のプロセスをランサムウェアと判断する判断部を有することを特徴とする。   In the information processing apparatus according to one aspect of the present invention, the file read function is already called from the predetermined process for the same file path as the file path to be deleted by the file deletion function called from the predetermined process. And a second condition that a first file movement function having the same file path as the file path to be deleted by the file deletion function called from the predetermined process has already been called. A third condition that a file write function has already been called from the predetermined process for the same file path as the source file path of the second file move function called from the predetermined process; , A file header of the source file path of the first file transfer function, and the file deletion When satisfying the fourth condition that the header of the file of the file path number is deleted is different, characterized by having a determining section for determining the predetermined process and ransomware.

本発明の一態様による情報処理装置は、所定のプロセスから呼び出されるファイル移動関数の移動先のファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル読出関数が既に呼び出されているという第1の条件と、前記ファイル移動関数の移動元のファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル書込関数が既に呼び出されているという第2の条件と、前記ファイル移動関数の移動元のファイルパスのファイルのヘッダと、前記ファイル移動関数の移動先のファイルパスのファイルのヘッダとが相違しているという第3の条件とを満足する場合に、前記所定のプロセスをランサムウェアと判断する判断部を有することを特徴とする。   In the information processing apparatus according to one aspect of the present invention, the file read function is already called from the predetermined process for the same file path as the destination file path of the file move function called from the predetermined process. A first condition; a second condition that a file write function has already been called from the predetermined process with respect to a file path that is the same as a source file path of the file move function; and the file move When the third condition that the header of the file path of the file path to which the function is moved differs from the header of the file path of the file path to which the file movement function is moved is satisfied, the predetermined process is performed. It has a judgment part which judges as ransomware.

本発明の一態様による情報処理方法は、所定のプロセスから呼び出されるファイル書込関数がデータを書き込むファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル読出関数が既に呼び出されているという第1の条件と、前記ファイル書込関数が、前記ファイルパスのファイルのヘッダを書き換えるという第2の条件とを満足する場合に、前記所定のプロセスをランサムウェアと判断することを特徴とする。   In the information processing method according to one aspect of the present invention, the file read function is already called from the predetermined process with respect to the same file path as the file path in which the file write function called from the predetermined process writes data. The predetermined process is determined to be ransomware when the file write function satisfies the second condition of rewriting the header of the file in the file path. .

本発明の一態様による情報処理方法は、所定のプロセスから呼び出されるファイル削除関数が削除するファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル読出関数が既に呼び出されているという第1の条件と、前記所定のプロセスから呼び出される前記ファイル削除関数が削除する前記ファイルパスと同一のファイルパスを移動先とする第1のファイル移動関数が既に呼び出されているという第2の条件と、前記所定のプロセスから呼び出される第2のファイル移動関数の移動元のファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル書込関数が既に呼び出されているという第3の条件と、前記第1のファイル移動関数の移動元のファイルパスのファイルのヘッダと、前記ファイル削除関数が削除する前記ファイルパスのファイルのヘッダとが相違しているという第4の条件とを満足する場合に、前記所定のプロセスをランサムウェアと判断することを特徴とする。   According to an information processing method of one aspect of the present invention, a file read function is already called from the predetermined process for the same file path as the file path to be deleted by the file deletion function called from the predetermined process. And a second condition that a first file movement function having the same file path as the file path to be deleted by the file deletion function called from the predetermined process has already been called. A third condition that a file write function has already been called from the predetermined process for the same file path as the source file path of the second file move function called from the predetermined process; , A file header of the source file path of the first file transfer function, and the file deletion When satisfying the fourth condition that the header of the file of the file path number is deleted is different, and wherein the determining the predetermined process and ransomware.

本発明の一態様による情報処理方法は、所定のプロセスから呼び出されるファイル移動関数の移動先のファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル読出関数が既に呼び出されているという第1の条件と、前記ファイル移動関数の移動元のファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル書込関数が既に呼び出されているという第2の条件と、前記ファイル移動関数の移動元のファイルパスのファイルのヘッダと、前記ファイル移動関数の移動先のファイルパスのファイルのヘッダとが相違しているという第3の条件とを満足する場合に、前記所定のプロセスをランサムウェアと判断することを特徴とする。   In the information processing method according to an aspect of the present invention, the file read function is already called from the predetermined process for the same file path as the destination file path of the file move function called from the predetermined process. A first condition; a second condition that a file write function has already been called from the predetermined process with respect to a file path that is the same as a source file path of the file move function; and the file move When the third condition that the header of the file path of the file path to which the function is moved differs from the header of the file path of the file path to which the file movement function is moved is satisfied, the predetermined process is performed. It is characterized by being determined as ransomware.

以上の通り、本発明によれば、所定のプロセスから呼び出されるファイル書込関数がデータを書き込むファイルパスと同一のファイルパスに対して、所定のプロセスからファイル読出関数が既に呼び出されているという第1の条件と、ファイル書込関数が、ファイルパスのファイルのヘッダを書き換えるという第2の条件とを満足する場合に、所定のプロセスをランサムウェアと判断するようにしたので、マルウェアによる攻撃を有効に阻止することができる。   As described above, according to the present invention, the file read function is already called from the predetermined process with respect to the same file path as the file path in which the file write function called from the predetermined process writes data. Since the predetermined process is judged as ransomware when the condition 1 and the second condition that the file write function rewrites the header of the file in the file path are satisfied, the attack by the malware is effective. Can be prevented.

一般的な情報処理装置を示すブロック図である。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. ランサムウェアCryptoLockerによるファイル暗号化の説明図(その1)である。It is explanatory drawing (the 1) of file encryption by ransomware CryptoLocker. ランサムウェアCryptoLockerによるファイル暗号化の説明図(その2)である。It is explanatory drawing (the 2) of file encryption by ransomware CryptoLocker. ランサムウェアCryptoLockerによるファイル暗号化の説明図(その3)である。It is explanatory drawing (the 3) of file encryption by ransomware CryptoLocker. ランサムウェアCryptoLockerによるファイル暗号化の説明図(その4)である。It is explanatory drawing (the 4) of file encryption by ransomware CryptoLocker. ランサムウェアCryptoWallによるファイル暗号化の説明図(その1)である。It is explanatory drawing (the 1) of file encryption by ransomware CryptoWall. ランサムウェアCryptoWallによるファイル暗号化の説明図(その2)である。It is explanatory drawing (the 2) of file encryption by ransomware CryptoWall. ランサムウェアCryptoWallによるファイル暗号化の説明図(その3)である。It is explanatory drawing (the 3) of file encryption by ransomware CryptoWall. ランサムウェアCryptoWallによるファイル暗号化の説明図(その4)である。It is explanatory drawing (the 4) of file encryption by ransomware CryptoWall. ランサムウェアCryptoWallによるファイル暗号化の説明図(その5)である。It is explanatory drawing (the 5) of file encryption by ransomware CryptoWall. ランサムウェアCryptoWallによるファイル暗号化の説明図(その6)である。It is explanatory drawing (the 6) of file encryption by ransomware CryptoWall. ランサムウェアCERBERによるファイル暗号化の説明図である。It is explanatory drawing of file encryption by ransomware CERBER. ランサムウェアTeslaCryptによるファイル暗号化の説明図(その1)である。It is explanatory drawing (the 1) of file encryption by ransomware TeslaCrypt. ランサムウェアTeslaCryptによるファイル暗号化の説明図(その2)である。It is explanatory drawing (the 2) of file encryption by ransomware TeslaCrypt. 本発明の第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. 本発明の第1実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その3)である。It is explanatory drawing (the 3) explaining the program, information processing apparatus, and information processing method by 1st Embodiment of this invention. 本発明の第1実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その4)である。It is explanatory drawing (the 4) explaining the program, information processing apparatus, and information processing method by 1st Embodiment of this invention. 本発明の第1実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その5)である。It is explanatory drawing (the 5) explaining the program, information processing apparatus, and information processing method by 1st Embodiment of this invention. 本発明の第1実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その6)である。It is explanatory drawing (the 6) explaining the program, information processing apparatus, and information processing method by 1st Embodiment of this invention. 本発明の第1実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その7)である。It is explanatory drawing (the 7) explaining the program, information processing apparatus, and information processing method by 1st Embodiment of this invention. 本発明の第1実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その8)である。It is explanatory drawing (the 8) explaining the program, information processing apparatus, and information processing method by 1st Embodiment of this invention. 本発明の第1実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その9)である。It is explanatory drawing (the 9) explaining the program, information processing apparatus, and information processing method by 1st Embodiment of this invention. 本発明の第1実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その10)である。It is explanatory drawing (the 10) explaining the program, information processing apparatus, and information processing method by 1st Embodiment of this invention. 本発明の第1実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その11)である。It is explanatory drawing (the 11) explaining the program, information processing apparatus, and information processing method by 1st Embodiment of this invention. 本発明の第1実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その12)である。It is explanatory drawing (the 12) explaining the program, information processing apparatus, and information processing method by 1st Embodiment of this invention. 本発明の第1実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その13)である。It is explanatory drawing (the 13) explaining the program, information processing apparatus, and information processing method by 1st Embodiment of this invention. 本発明の第1実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その14)である。It is explanatory drawing (the 14) explaining the program, information processing apparatus, and information processing method by 1st Embodiment of this invention. 本発明の第1実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その15)である。It is explanatory drawing (the 15) explaining the program, information processing apparatus, and information processing method by 1st Embodiment of this invention. 本発明の第1実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その16)である。It is explanatory drawing (the 16) explaining the program, information processing apparatus, and information processing method by 1st Embodiment of this invention. 本発明の第1実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その17)である。It is explanatory drawing (the 17) explaining the program, information processing apparatus, and information processing method by 1st Embodiment of this invention. 本発明の第1実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その18)である。It is explanatory drawing (the 18) explaining the program, information processing apparatus, and information processing method by 1st Embodiment of this invention. 本発明の第1実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その19)である。It is explanatory drawing (the 19) explaining the program, information processing apparatus, and information processing method by 1st Embodiment of this invention. 本発明の第1実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その20)である。It is explanatory drawing (the 20) explaining the program, information processing apparatus, and information processing method by 1st Embodiment of this invention. 本発明の第1実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その21)である。It is explanatory drawing (the 21) explaining the program, information processing apparatus, and information processing method by 1st Embodiment of this invention. 本発明の第1実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その22)である。It is explanatory drawing (the 22) explaining the program, information processing apparatus, and information processing method by 1st Embodiment of this invention. 本発明の第1実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その23)である。It is explanatory drawing (the 23) explaining the program, information processing apparatus, and information processing method by 1st Embodiment of this invention. 本発明の第1実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その24)である。It is explanatory drawing (the 24) explaining the program, information processing apparatus, and information processing method by 1st Embodiment of this invention. 本発明の第1実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その25)である。It is explanatory drawing (the 25) explaining the program, information processing apparatus, and information processing method by 1st Embodiment of this invention. 本発明の第1実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その26)である。It is explanatory drawing (the 26) explaining the program, information processing apparatus, and information processing method by 1st Embodiment of this invention. 本発明の第1実施形態によるプログラム、情報処理装置及び情報処理方法を説明する説明図(その27)である。It is explanatory drawing (the 27) 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.

[情報処理装置]
本発明が適用される一般的な情報処理装置及びその動作について図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. 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 a process of OS data on the memory 23, accesses a program stored in the hard disk 22, and reads the program (FIG. 2C). The program stored in the hard disk 22 is loaded into the memory 23 and expanded 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.

なお、本明細書において「プロセス」とは「メモリ23上に展開されたプログラム」のことであり、「プログラム」とは「ハードディスク等に格納されたプログラム(ファイル)」のことである。理解しやすさのため「プロセス」である「メモリ23上に展開されたプログラム」のことを単に「プログラム」と記載することもある。   In this specification, “process” means “a program developed on the memory 23”, and “program” means “a program (file) stored in a hard disk or the like”. For ease of understanding, “a program developed on the memory 23”, which is a “process”, may be simply referred to as “program”.

また、本明細書において、Windows API関数の文字列末尾に付与されている"W"や"Ex"は、付与されていないものと同じ意味合いとする。例えば、"FindFirstFileW"は"FindFirstFile"と同義であり、"MoveFileEx"は"MoveFile"と同義である。   Further, in this specification, “W” and “Ex” given at the end of the character string of the Windows API function have the same meaning as those not given. For example, “FindFirstFileW” is synonymous with “FindFirstFile”, and “MoveFileEx” is synonymous with “MoveFile”.

[発明の原理]
本発明の原理について図4乃至図16を用いて説明する。
[Principle of the Invention]
The principle of the present invention will be described with reference to FIGS.

(ランサムウェアの分析)
本願発明者等は、まず、国内外で被害が報告されている主なランサムウェア複数種について、ファイルの暗号化を行う際のファイル操作に関わる挙動について解析した。具体的には、4種類のランサムウェア、CryptoLocker、CryptWall、CERBER、TeslaCryptのファイル操作の挙動について解析した。
(a)ランサムウェアCryptoLockerの分析
APIモニター(API Monitor)という解析ツールを用いてランサムウェアCryptoLockerの動作を分析した。APIモニターは、アプリケーションから呼ばれるWindows API(Application Programming Interface)コールの引数、戻り値を、アプリケーションを変更することなくモニターすることができるプログラムである。Windowsは登録商標である。
(Ransomware analysis)
The inventors of the present application first analyzed the behavior related to file operations when performing file encryption on a plurality of main types of ransomware for which damage has been reported both in Japan and overseas. Specifically, we analyzed the behavior of four types of ransomware, CryptoLocker, CryptWall, CERBER, and TeslaCrypt.
(A) Analysis of Ransomware CryptoLocker The operation of ransomware CryptoLocker was analyzed using an analysis tool called API Monitor. The API monitor is a program that can monitor arguments and return values of a Windows API (Application Programming Interface) call called from an application without changing the application. Windows is a registered trademark.

図4にランサムウェアCryptoLockerのファイル暗号化時に呼び出されたAPIのログ(log)を示す。ランサムウェアCryptoLockerにより、フォルダ"C:\Python27\Lib\compiler"内のファイルが順次暗号化される場合のログである。   FIG. 4 shows an API log called when encrypting a file of the ransomware CryptoLocker. This is a log when files in the folder "C: \ Python27 \ Lib \ compiler" are sequentially encrypted by the ransomware CryptoLocker.

1行目のFindNextFileは、次のファイルを検索するというWindows API関数である。   FindNextFile on the first line is a Windows API function that searches for the next file.

2行目のCreateFileWは、引数"C:\Python27\Lib\compiler\consts.py"のファイルを開くというWindows API関数である。   CreateFileW on the second line is a Windows API function that opens the file with the argument "C: \ Python27 \ Lib \ compiler \ consts.py".

3−4行目のReadFileは、CreateFileWで開いたファイル"C:\Python27\Lib\compiler\consts.py"を読み出すというWindows API関数である。   ReadFile on line 3-4 is a Windows API function that reads the file “C: \ Python27 \ Lib \ compiler \ consts.py” opened by CreateFileW.

5−7行目のWriteFileは、CreateFileWで開いたファイル"C:\Python27\Lib\compiler\consts.py"にデータを書き込むというWindows API関数である。   WriteFile on line 5-7 is a Windows API function that writes data to the file “C: \ Python27 \ Lib \ compiler \ consts.py” opened by CreateFileW.

1−7行目のログは次のことを示している。   The log on the 1-7th line indicates the following.

1行目のFindNextFileにより次のファイルを検索し、2行目のCreateFileWにより引数"C:\Python27\Lib\compiler\consts.py"のファイルを開き、3−4行目のReadFileと5−7行目のWriteFileにより、ファイル"C:\Python27\Lib\compiler\consts.py"の暗号化が実行される。   FindNextFile is searched with FindNextFile on the first line, and the file with the argument "C: \ Python27 \ Lib \ compiler \ consts.py" is opened with CreateFileW on the second line. ReadFile and 5-7 on lines 3-4 The file "C: \ Python27 \ Lib \ compiler \ consts.py" is encrypted by WriteFile on the line.

8行目のFindNextFileは、次のファイルを検索するというWindows API関数である。   FindNextFile on the 8th line is a Windows API function that searches for the next file.

9行目のCreateFileWは、引数"C:\Python27\Lib\compiler\future.py"のファイルを開くというWindows API関数である。   The CreateFileW on the 9th line is a Windows API function that opens the file with the argument “C: \ Python27 \ Lib \ compiler \ future.py”.

10−11行目のReadFileは、CreateFileWで開いたファイル"C:\Python27\Lib\compiler\future.py"を読み出すというWindows API関数である。   ReadFile on line 10-11 is a Windows API function that reads the file “C: \ Python27 \ Lib \ compiler \ future.py” opened by CreateFileW.

12−15行目のWriteFileは、CreateFileWで開いたファイル"C:\Python27\Lib\compiler\future.py"にデータを書き込むというWindows API関数である。   WriteFile on the 12th to 15th lines is a Windows API function for writing data to the file “C: \ Python27 \ Lib \ compiler \ future.py” opened by CreateFileW.

8−15行目のログは次のことを示している。   The logs on the 8th to 15th lines indicate the following.

8行目のFindNextFileにより次のファイルを検索し、9行目のCreateFileWにより引数"C:\Python27\Lib\compiler\future.py"のファイルを開き、10−11行目のReadFileと12−15行目のWriteFileにより、ファイル"C:\Python27\Lib\compiler\future.py"の暗号化が実行される。   Search for the next file using FindNextFile on the 8th line, and open the file with the argument "C: \ Python27 \ Lib \ compiler \ future.py" using CreateFileW on the 9th line. ReadFile and 12-15 on the 10-11th line WriteFile on the line encrypts the file "C: \ Python27 \ Lib \ compiler \ future.py".

16行目のFindNextFileは、次のファイルを検索するというWindows API関数である。   FindNextFile on the 16th line is a Windows API function that searches for the next file.

17行目のCreateFileWは、引数"C:\Python27\Lib\compiler\misc.py"のファイルを開くというWindows API関数である。   CreateFileW on the 17th line is a Windows API function that opens a file with an argument “C: \ Python27 \ Lib \ compiler \ misc.py”.

18−19行目のReadFileは、CreateFileWで開いたファイル"C:\Python27\Lib\compiler\misic.py"を読み出すというWindows API関数である。   ReadFile on the 18th to 19th lines is a Windows API function that reads the file “C: \ Python27 \ Lib \ compiler \ misic.py” opened by CreateFileW.

20−22行目のWriteFileは、CreateFileWで開いたファイル"C:\Python27\Lib\compiler\misic.py"にデータを書き込むというWindows API関数である。   WriteFile on lines 20-22 is a Windows API function that writes data to the file “C: \ Python27 \ Lib \ compiler \ misic.py” opened by CreateFileW.

16−22行目のログは次のことを示している。   The log on lines 16-22 indicates the following.

16行目のFindNextFileにより次のファイルを検索し、17行目のCreateFileWにより引数"C:\Python27\Lib\compiler\misic.py"のファイルを開き、18−19行目のReadFileと20−22行目のWriteFileにより、ファイル"C:\Python27\Lib\compiler\misic.py"の暗号化が実行される。   The next file is searched by FindNextFile on the 16th line, the file of the argument “C: \ Python27 \ Lib \ compiler \ misic.py” is opened by CreateFileW on the 17th line, ReadFile and 20-22 on the 18th to 19th lines WriteFile on the line encrypts the file "C: \ Python27 \ Lib \ compiler \ misic.py".

以下同様にして、フォルダ"C:\Python27\Lib\compiler\"内のファイルが順次暗号化される。   Similarly, the files in the folder "C: \ Python27 \ Lib \ compiler \" are sequentially encrypted.

このログから、ランサムウェアCryptoLockerは、次のようにしてファイルを暗号化していることがわかる。
(1)FindFirstFile、FindNextFileによりファイルを検索する。FindFirstFile、 FindNextFileは、セットで使用される検索用のWindows API関数である。
(2)CreateFileにより暗号化対象のファイルを開く。
(3)開いたファイルに対し、ReadFile、WriteFileでファイルを書き換えて暗号化する。すなわち、ReadFileにより、暗号化対象ファイルのファイル内容を読み込み、読み込んだ暗号化対象ファイル内容をマルウェアが暗号化し、暗号化された後のデータをWriteFileにより元の暗号化対象ファイルに書き込む。
From this log, you can see that the ransomware CryptoLocker encrypts files as follows:
(1) Search for a file using FindFirstFile and FindNextFile. FindFirstFile and FindNextFile are search Windows API functions used in the set.
(2) Open the file to be encrypted with CreateFile.
(3) For the opened file, rewrite and encrypt the file with ReadFile and WriteFile. That is, ReadFile reads the file contents of the encryption target file, the malware encrypts the read encryption target file contents, and writes the encrypted data to the original encryption target file by WriteFile.

図5にランサムウェアCryptoLockerのファイル暗号化時に呼び出されたAPIのログを示す。ランサムウェアCryptoLockerにより、フォルダ"C:\User\Public\Videos"下にあるファイル"Wildlife.wmv"が検索され暗号化される場合のログである。   FIG. 5 shows a log of an API called at the time of file encryption of the ransomware CryptoLocker. This is a log when the file "Wildlife.wmv" under the folder "C: \ User \ Public \ Videos" is searched and encrypted by the ransomware CryptoLocker.

3行目のFindFirstFileは、引数"C:\Users\Public\Videos\*.*"の最初のファイルを検索するというWindows API関数である。   FindFirstFile on the third line is a Windows API function that searches for the first file of the argument “C: \ Users \ Public \ Videos \ *. *”.

4−9行目のFindNextFileは、次のファイルを検索するというWindows API関数である。   FindNextFile on line 4-9 is a Windows API function that searches for the next file.

10行目のFindFirstFileは、引数"C:\Users\Public\Videos\Sample Videos\*.*"の最初のファイルを検索するというWindows API関数である。   FindFirstFile on the 10th line is a Windows API function that searches for the first file of the argument “C: \ Users \ Public \ Videos \ Sample Videos \ *. *”.

11−13行目のFindNextFileは、次のファイルを検索するというWindows API関数である。   FindNextFile on the 11th to 13th lines is a Windows API function that searches for the next file.

14行目のCreateFileWは、引数"C:\Users\Public\Videos\Sample Videos\Wildlife.wmv"のファイルを開くというWindows API関数である。   The CreateFileW on the 14th line is a Windows API function that opens the file of the argument “C: \ Users \ Public \ Videos \ Sample Videos \ Wildlife.wmv”.

15−16行目のReadFileは、CreateFileWで開いたファイル"C:\Users\Public\Videos\Sample Videos\Wildlife.wmv"を読み出すというWindows API関数である。   ReadFile on the 15th to 16th lines is a Windows API function that reads the file “C: \ Users \ Public \ Videos \ Sample Videos \ Wildlife.wmv” opened by CreateFileW.

17−19行目のWriteFileは、CreateFileWで開いたファイル"C:\Users\Public\Videos\Sample Videos\Wildlife.wmv"にデータを書き込むというWindows API関数である。   WriteFile on the 17th to 19th lines is a Windows API function for writing data to a file “C: \ Users \ Public \ Videos \ Sample Videos \ Wildlife.wmv” opened by CreateFileW.

20行目のFindNextFileは、次のファイルを検索するというWindows API関数である。   FindNextFile on the 20th line is a Windows API function that searches for the next file.

3−9行目のログは次のことを示している。   The log on lines 3-9 indicates the following.

3行目のFindFirstFileと4−9行目のFindNextFileにより、フォルダ"C:\Users\Public\Videos\*.*"内のファイルを検索したが、ファイルが見つからない。   A file in the folder “C: \ Users \ Public \ Videos \ *. *” Is searched by FindFirstFile on the 3rd line and FindNextFile on the 4th-9th line, but the file is not found.

10−14行目のログは次のことを示している。   The logs on lines 10-14 indicate the following.

10行目のFindFirstFileにより、フォルダ"C:\Users\Public\Videos\*.*"より下層のフォルダ"C:\Users\Public\Videos\Sample Videos\*.*"に移行し、11−13行目のFindNextFileにより、フォルダ"C:\Users\Public\Videos\Sample Videos\*.*"内を検索し、ファイル"C:\Users\Public\Videos\Sample Videos\Wildlife.wmv"を見つけたので、14行目のCreateFileWにより開く。   With FindFirstFile on the 10th line, the folder "C: \ Users \ Public \ Videos \ *. *" Is moved to a lower folder "C: \ Users \ Public \ Videos \ Sample Videos \ *. *", And 11-13 FindNextFile on the line searched the folder "C: \ Users \ Public \ Videos \ Sample Videos \ *. *" And found the file "C: \ Users \ Public \ Videos \ Sample Videos \ Wildlife.wmv" So, open with CreateFileW on the 14th line.

15−20行目のログは次のことを示している。   The logs on the 15th to 20th lines indicate the following.

CreateFileWにより開いたファイル"C:\Users\Public\Videos\Sample Videos\Wildlife.wmv"を、15−16行目のReadFileと17−19行目のWriteFileにより、暗号化する。   The file "C: \ Users \ Public \ Videos \ Sample Videos \ Wildlife.wmv" opened by CreateFileW is encrypted using ReadFile on the 15th to 16th lines and WriteFile on the 17th to 19th lines.

そして、20行目のFindNextFileにより、フォルダ"C:\Users\Public\Videos\Sample Videos\*.*"内の次のファイルを検索する。   Then, the next file in the folder “C: \ Users \ Public \ Videos \ Sample Videos \ *. *” Is searched by FindNextFile on the 20th line.

図5のように、あるフォルダ下にあるファイルが検索され暗号化される場合も、図4と同様に、FindFirstFile、FindNextFile、CreateFile、ReadFile、WriteFileにより、ファイルを検索し、検索されたファイルを書き換えて暗号化する。   As shown in Fig. 5, when a file under a certain folder is searched and encrypted, the file is searched using FindFirstFile, FindNextFile, CreateFile, ReadFile, and WriteFile as in Fig. 4, and the searched file is rewritten. To encrypt.

図6は、ランサムウェアCryptoLockerによりアクセスされる前と後のファイル"Wildlife.wmv"の状態を示す。図6(a)が、ランサムウェアCryptoLockerによりアクセスされる前の状態であり、図6(b)が、ランサムウェアCryptoLockerによりアクセスされた後の状態である。   FIG. 6 shows the state of the file “Wildlife.wmv” before and after being accessed by the ransomware CryptoLocker. FIG. 6A shows a state before being accessed by the ransomware CryptoLocker, and FIG. 6B shows a state after being accessed by the ransomware CryptoLocker.

図6に示すように、ランサムウェアCryptoLockerによりアクセスされた後には、暗号化されたファイル"Wildlife.wmv"のヘッダが書き換えられている。   As shown in FIG. 6, after being accessed by the ransomware CryptoLocker, the header of the encrypted file “Wildlife.wmv” is rewritten.

図7は、ランサムウェアCryptoLockerにより暗号化される前と後のファイル"Wildlife.wmv"のヘッダを示す。図7(a)が、ランサムウェアCryptoLockerにより暗号化される前のヘッダであり、図7(b)が、ランサムウェアCryptoLockerにより暗号化された後のヘッダである。   FIG. 7 shows the header of the file “Wildlife.wmv” before and after being encrypted by the ransomware CryptoLocker. FIG. 7A shows a header before being encrypted by the ransomware CryptoLocker, and FIG. 7B shows a header after being encrypted by the ransomware CryptoLocker.

図7に示すように、ファイル"Wildlife.wmv"の先頭から末尾までの全てのバイトの部分が書き換えられている。少なくとも、バイナリファイルであれば、ファイルの種類や、サイズ、ファイルの種類に応じた各種情報の情報を表す「ヘッダ」と呼ばれる部分(通常、先頭から数バイトから数十バイト)が書き換えられている。   As shown in FIG. 7, all bytes from the beginning to the end of the file “Wildlife.wmv” are rewritten. At least in the case of a binary file, the part called “header” (typically several bytes to several tens of bytes from the beginning) representing the information of various types of information according to the file type, size, and file type has been rewritten. .

以上のことから、ランサムウェアCryptoLockerの暗号化時のファイル操作に関する挙動は、次の通りであることがわかった。
(1)ファイル検索のWindows API関数であるFindFirstFile、FindNextFileが呼び出される。
(2)ファイルを開くWindows API関数であるCreateFileが呼び出される。
(3)CreateFileの対象ファイルに、ファイルを読み出すWindows API関数であるReadFileと、ファイルにデータを書き込むWindows API関数であるWriteFileが呼び出される。
(4)CreateFileの対象ファイルのヘッダが、ランサムウェアCryptoLockerのアクセス前後で相違している。
(b)ランサムウェアCryptoWallの分析
プログラムのデバッグを支援するプログラムであるデバッガ(Debugger)を用いてランサムウェアCryptoWallの動作を分析した。
From the above, it was found that the behavior related to file operations during encryption of the ransomware CryptoLocker is as follows.
(1) FindFirstFile and FindNextFile, which are Windows API functions for file search, are called.
(2) CreateFile, a Windows API function that opens a file, is called.
(3) ReadFile, which is a Windows API function that reads a file, and WriteFile, which is a Windows API function that writes data to the file, are called to the target file of CreateFile.
(4) The target file header of CreateFile is different before and after the access of ransomware CryptoLocker.
(B) Analysis of ransomware CryptoWall The operation of ransomware CryptoWall was analyzed using a debugger (Debugger) which is a program that supports program debugging.

ランサムウェアCryptoWallは、まずファイルを検索するWindows API関数であるFindFirstFileWにより、ルートドライブから端末内のファイルを検索する。   The ransomware CryptoWall first searches for files in the terminal from the root drive using FindFirstFileW, which is a Windows API function for searching for files.

図8は、ランサムウェアCryptoWallがファイル検索を開始する際の様子を示すデバッガの画面のキャプチャである。   FIG. 8 is a screen capture of the debugger showing how the ransomware CryptoWall starts searching for a file.

最初の図8(a)のキャプチャは、FindFirstFileWに、ドライブのルートである"C:\*"が引数として渡されていることを示している。   The first capture in FIG. 8A shows that “C: \ *”, which is the root of the drive, is passed to FindFirstFileW as an argument.

次の図8(b)のキャプチャは、FindFirstFileWに、ドライブのルート"C:\*"より下層のフォルダである"C:\Users\*"が引数として渡されていることを示している。   The next capture in FIG. 8B shows that “C: \ Users \ *”, which is a folder below the root “C: \ *” of the drive, is passed to FindFirstFileW as an argument.

その次の図8(c)のキャプチャは、FindFirstFileWに、フォルダ"C:\Users\*"より下層のフォルダである"C:\Users\Publice\*"が引数として渡されていることを示している。   The next capture shown in Fig. 8 (c) shows that "C: \ Users \ Publice \ *", which is a folder lower than the folder "C: \ Users \ *", is passed to FindFirstFileW as an argument. ing.

更にその次の図8(d)のキャプチャは、FindFirstFileWに、フォルダ"C:\Users\Public\*"より下層のフォルダである"C:\Users\Publice\Videos\*"が引数として渡されていることを示している。   In the next capture shown in FIG. 8D, “C: \ Users \ Publice \ Videos \ *”, which is a folder below the folder “C: \ Users \ Public \ *”, is passed to FindFirstFileW as an argument. It shows that.

Windows API関数であるFindFirstFileWによる、ルートドライブから端末内の更なるファイル検索の結果、最初に"C:\Users\Public\Videos\Sample Videos\Wildlife.wmv"が検索され、ランサムウェアCryptoWallにより暗号化される。   As a result of further file search in the terminal from the root drive by the Windows API function FindFirstFileW, "C: \ Users \ Public \ Videos \ Sample Videos \ Wildlife.wmv" is first searched and encrypted by the ransomware CryptoWall Is done.

図9は、ランサムウェアCryptoWallがファイル"C:\Users\Public\Videos\Sample Videos\Wildlife.wmv"を暗号化する際の様子を示すデバッガの画面のキャプチャである。   FIG. 9 is a screen capture of the debugger showing how the ransomware CryptoWall encrypts the file “C: \ Users \ Public \ Videos \ Sample Videos \ Wildlife.wmv”.

最初の図9(a)のキャプチャは、Windows API関数であるCreateFileWにより、ファイル"C:\Users\Public\Videos\Sample Videos\Wildlife.wmv"が開かれていることを示している。   The first capture in FIG. 9A shows that the file “C: \ Users \ Public \ Videos \ Sample Videos \ Wildlife.wmv” has been opened by the Windows API function CreateFileW.

次の図9(b)のキャプチャは、Windows API関数であるReadFileと、Windows API関数であるWriteFileが交互に呼び出され、ファイル"C:\Users\Public\Videos\Sample Videos\Wildlife.wmv"が所定のサイズ分ずつ書き換えられて暗号化されていることを示している。   In the next capture in Fig. 9 (b), the Windows API function ReadFile and the Windows API function WriteFile are called alternately, and the file "C: \ Users \ Public \ Videos \ Sample Videos \ Wildlife.wmv" It shows that the data is rewritten and encrypted by a predetermined size.

その次の図9(c)のキャプチャは、Windows API関数であるMoveFileが呼び出され、元のファイル"C:\Users\Public\Videos\Sample Videos\Wildlife.wmv"のファイル名を暗号化後の別のファイル名に変更されていることを示している。   The next capture shown in Fig. 9 (c) is the Windows API function MoveFile called, and the original file "C: \ Users \ Public \ Videos \ Sample Videos \ Wildlife.wmv" is encrypted. Indicates that the file name has been changed to another file name.

図10は、ランサムウェアCryptoWallによりアクセスされる前と後のファイル"Wildlife.wmv"の状態を示す。図6(a)が、ランサムウェアCryptoWallによりアクセスされる前の状態であり、図6(b)が、ランサムウェアCryptoWallによりアクセスされた後の状態である。   FIG. 10 shows the state of the file “Wildlife.wmv” before and after being accessed by the ransomware CryptoWall. FIG. 6A is a state before being accessed by the ransomware CryptoWall, and FIG. 6B is a state after being accessed by the ransomware CryptoWall.

図10に示すように、ランサムウェアCryptoWallによりアクセスされた後には、フォルダ"C:\Users\Public\Videos\Sample Videos\*.*"内に元のファイル名"野生動物.wmv(Wildlif.wmv)"とは別のファイル名に変更され、ファイルのヘッダが書き換えられている。   As shown in FIG. 10, after being accessed by the ransomware CryptoWall, the original file name “wild animal.wmv (Wildlif.wmv in the folder“ C: \ Users \ Public \ Videos \ Sample Videos \ *. * ” ) "Has been changed to a different file name, and the file header has been rewritten.

図11は、ランサムウェアCryptoWallにより暗号化される前と後のファイル"Wildlife.wmv"のヘッダを示す。図11(a)が、ランサムウェアCryptoLockerにより暗号化される前のヘッダであり、図11(b)が、ランサムウェアCryptoLockerにより暗号化された後のヘッダである。暗号化されたファイルはファイル名が変更されている。   FIG. 11 shows the header of the file “Wildlife.wmv” before and after being encrypted by the ransomware CryptoWall. FIG. 11A shows a header before being encrypted by the ransomware CryptoLocker, and FIG. 11B shows a header after being encrypted by the ransomware CryptoLocker. The file name of the encrypted file has been changed.

図11に示すように、ファイル"Wildlife.wmv"の先頭から末尾までの全てのバイトの部分が書き換えられている。少なくとも、バイナリファイルであれば、ファイルの種類や、サイズ、ファイルの種類に応じた各種情報の情報を表す「ヘッダ」と呼ばれる部分(通常、先頭から数バイトから数十バイト)が書き換えられている。   As shown in FIG. 11, all bytes from the beginning to the end of the file “Wildlife.wmv” are rewritten. At least in the case of a binary file, the part called “header” (typically several bytes to several tens of bytes from the beginning) representing the information of various types of information according to the file type, size, and file type has been rewritten. .

次に、別のファイルを暗号化する際の様子について説明する。   Next, how to encrypt another file will be described.

図12及び図13は、ランサムウェアCryptoWallがファイル"C:\Users\Public\Pictures\Sample Pictures\Tulips.jpg"を暗号化する際の様子を示すデバッガの画面のキャプチャである。   12 and 13 are screen shots of the debugger showing how the ransomware CryptoWall encrypts the file “C: \ Users \ Public \ Pictures \ Sample Pictures \ Tulips.jpg”.

最初の図12(a)のキャプチャは、Windows API関数であるCreateFileにより、ファイル"C:\Users\Public\Pictures\Sample Pictures\Tulips.jpg"が開かれていることを示している。   The first capture in FIG. 12A shows that the file “C: \ Users \ Public \ Pictures \ Sample Pictures \ Tulips.jpg” has been opened by the Windows API function CreateFile.

次の図12(b)のキャプチャは、Windows API関数であるReadFileと、Windows API関数であるWriteFileが繰り返し呼び出されることを示している。   The next capture in FIG. 12B shows that ReadFile, which is a Windows API function, and WriteFile, which is a Windows API function, are repeatedly called.

その次の図13のキャプチャは、ファイル"C:\Users\Public\Pictures\Sample Pictures\Tulips.jpg"が暗号化により破損され、サムネイルで表示できなくなっていることを示している。更に、Windows API関数であるMoveFileEXが呼び出され、元のファイル"C:\Users\Public\Pictures\Sample Pictures\Tulips.jpg"が暗号化後の別のファイル名"C:\Users\Public\Pictures\Sample Pictures\p3EiSzLkWhfU5pgrD5SX9PdYPyP5ICa5iXzySi34oaY=.E08A29776586FC717E27.breaking_bad"に変更されていることを示している。   The next capture in FIG. 13 shows that the file “C: \ Users \ Public \ Pictures \ Sample Pictures \ Tulips.jpg” is damaged by encryption and cannot be displayed as a thumbnail. Furthermore, the Windows API function MoveFileEX is called, and the original file "C: \ Users \ Public \ Pictures \ Sample Pictures \ Tulips.jpg" is another file name after encryption "C: \ Users \ Public \ Pictures \ Sample Pictures \ p3EiSzLkWhfU5pgrD5SX9PdYPyP5ICa5iXzySi34oaY = .E08A29776586FC717E27.breaking_bad ".

以上のことから、ランサムウェアCryptoWallの暗号化時のファイル操作に関する挙動は、次の通りであることがわかった。
(1)ファイル検索のWindows API関数であるFindFirstFile、FindNextFileが呼び出される。
(2)ファイルを開くWindows API関数であるCreateFileが呼び出される。
(3)CreateFileの対象ファイルに、ファイルを読み出すWindows API関数であるReadFileと、ファイルにデータを書き込むWindows API関数であるWriteFileが呼び出される。
(4)CreateFileの対象ファイルのヘッダが、ランサムウェアCryptoWallのアクセス前後で相違している。
(5)ファイルを移動するWindows API関数であるMoveFileExが呼び出され、移動元の移動先が同じでファイル名が変更される。
(c)ランサムウェアCERBERの分析
プログラムのデバッグを支援するプログラムであるデバッガ(Debugger)を用いてランサムウェアCERBERの動作を分析した。
From the above, it was found that the behavior related to file operations during encryption of ransomware CryptoWall is as follows.
(1) FindFirstFile and FindNextFile, which are Windows API functions for file search, are called.
(2) CreateFile, a Windows API function that opens a file, is called.
(3) ReadFile, which is a Windows API function that reads a file, and WriteFile, which is a Windows API function that writes data to the file, are called to the target file of CreateFile.
(4) The target file header of CreateFile is different before and after the access of ransomware CryptoWall.
(5) MoveFileEx, which is a Windows API function for moving files, is called, and the file name is changed with the same movement destination.
(C) Analysis of ransomware CERBER The operation of ransomware CERBER was analyzed using a debugger (Debugger) which is a program that supports program debugging.

ランサムウェアCERBERは、まずファイルを検索するWindows API関数であるFindFirstFile、FindNextFileにより、端末内のファイルを検索し、特定の拡張子を持つファイルを暗号化対象ファイルとして、そのリストをあらかじめ作成する。   The ransomware CERBER first searches for a file in the terminal by using FindFirstFile and FindNextFile, which are Windows API functions for searching for a file, and creates a list in advance with a file having a specific extension as an encryption target file.

次に、リスト化した暗号化対象ファイルを、Windows API関数であるCreateFileWにより順に開いたのち、Windows API関数であるReadFileによりファイルを一度読み出し、その後、Windows API関数であるWriteFileによりファイルにデータを書き込むことにより暗号化を行う。更に、WriteFileによるデータの書き込みにより暗号化が終了すると、Windows API関数であるMoveFileWにより、同一フォルダにファイルを移動、すなわちファイル名の変更が行われる。   Next, after opening the listed files to be encrypted in turn with the Windows API function CreateFileW, read the file once with the Windows API function ReadFile, and then write the data to the file with the Windows API function WriteFile. Encryption. Further, when encryption is completed by writing data by WriteFile, the file is moved to the same folder, that is, the file name is changed by MoveFileW which is a Windows API function.

図14は、ランサムウェアCERBERがファイルを暗号化する際の様子を示すデバッガの画面のキャプチャである。   FIG. 14 is a screen capture of the debugger showing how the ransomware CERBER encrypts a file.

最初の図14(a)のキャプチャは、Windows API関数であるCreateFileWにより、ファイル"C:\Python27\Lib\unittest\test\test_assertions.py"が開かれていることを示している。   The first capture in FIG. 14A shows that the file “C: \ Python27 \ Lib \ unittest \ test \ test_assertions.py” is opened by the Windows API function CreateFileW.

次の図14(b)のキャプチャは、Windows API関数であるReadFileにより、CreatFileWで開いたファイルを読み込むことを示している。   The next capture in FIG. 14B shows that a file opened with CreatFileW is read by ReadFile, which is a Windows API function.

更に次の図14(c)のキャプチャは、Windows API関数であるWriteFileにより、CreatFileWが開いたファイルにデータを書き込むことを示している。   Further, the next capture in FIG. 14C shows that WriteFileW writes data to a file opened by WriteFile which is a Windows API function.

更に次の図14(d)のキャプチャは、Windows API関数であるMoveFileWが呼び出され、CreatFileWが開いたファイルのファイル名を変更されたことを示している。   Further, the capture shown in FIG. 14D shows that MoveFileW, which is a Windows API function, is called, and the file name of the file opened by CreatFileW is changed.

以上のことから、ランサムウェアCERBERの暗号化時のファイル操作に関する挙動は、次の通りであることがわかった。
(1)ファイル検索のWindows API関数であるCreateFileが呼び出される。
(2)CreateFileの対象ファイルに、ファイルを読み出すWindows API関数であるReadFileと、ファイルにデータを書き込むWindows API関数であるWriteFileが呼び出される。
(3)CreateFileの対象ファイルのヘッダが、ランサムウェアCERBERのアクセス前後で相違している。
(4)ファイルを移動するWindows API関数であるMoveFileExが呼び出され、移動元の移動先が同じでファイル名が変更される。
(d)ランサムウェアTeslaCryptの分析
プログラムのデバッグを支援するプログラムであるデバッガ(Debugger)を用いてランサムウェアTeslaCryptの動作を分析した。
From the above, it was found that the behavior related to file operations during encryption of ransomware CERBER is as follows.
(1) CreateFile, a Windows API function for file search, is called.
(2) ReadFile, which is a Windows API function that reads a file, and WriteFile, which is a Windows API function that writes data to the file, are called to the target file of CreateFile.
(3) The header of the target file of CreateFile is different before and after the access of ransomware CERBER.
(4) MoveFileEx, which is a Windows API function for moving files, is called, and the file name is changed with the same movement destination.
(D) Analysis of ransomware TeslaCrypt The operation of ransomware TeslaCrypt was analyzed using a debugger (Debugger) which is a program that supports program debugging.

ランサムウェアTeslaCryptは、まずファイルを検索するWindows API関数であるFindFirstFile、FindNextFileにより、Cドライブ直下から端末内のファイルを検索する。暗号化対象ファイルである特定の拡張子を持つファイルが存在した場合、Windows API関数であるCreateFileWにより開いたのち、Windows API関数であるReadFileを複数回実行してメモリ上にファイルを読み出し、そのメモリ上のファイルを暗号化し、その後、Windows API関数であるWriteFileを複数回実行して、暗号化対象ファイルを上書きする。   The ransomware TeslaCrypt first searches for a file in the terminal from directly under the C drive by using FindFirstFile and FindNextFile which are Windows API functions for searching for a file. If there is a file with a specific extension that is the file to be encrypted, it is opened with the Windows API function CreateFileW, then the Windows API function ReadFile is executed multiple times to read the file on the memory, and the memory Encrypt the above file, and then execute the Windows API function WriteFile multiple times to overwrite the file to be encrypted.

図15は、ランサムウェアTeslaCryptがファイルを暗号化する際の様子を示すデバッガの画面のキャプチャである。   FIG. 15 is a screen shot of the debugger showing how the ransomware TeslaCrypt encrypts a file.

最初の図15(a)のキャプチャは、Windows API関数であるFindFirstFile、FindNextFileにより、Cドライブ直下から端末内のファイルを検索していくことを示している。   The first capture in FIG. 15A shows that a file in the terminal is searched from directly under the C drive by the Windows API functions FindFirstFile and FindNextFile.

次の図15(b)のキャプチャは、Windows API関数であるCreateFileWにより、ファイル"C:\Users\test\Desktop\おとり.png"が開かれていることを示している。   The next capture in FIG. 15B shows that the file “C: \ Users \ test \ Desktop \ Decoy.png” has been opened by the Windows API function CreateFileW.

更に次の図15(c)のキャプチャは、Windows API関数であるReadFileにより、CreatFileWが開いたファイルを複数回にわけて読み出すことを示している。   Further, the next capture shown in FIG. 15C shows that the file opened by CreatFileW is read in a plurality of times by ReadFile which is a Windows API function.

更に次の図15(d)のキャプチャは、Windows API関数であるWriteFileにより、CreatFileWが開いたファイルにデータを複数回にわけて書き込むことを示している。   Further, the next capture shown in FIG. 15D shows that data is written in multiple times in the file opened by CreatFileW by WriteFile, which is a Windows API function.

図16は、ランサムウェアTeslaCryptにより暗号化される前と後のファイル"C:\Users\test\Desktop\おとり.png"のヘッダを示す。図16(a)が、ランサムウェアTeslaCryptoにより暗号化される前のヘッダであり、図16(b)が、ランサムウェアTeslaCryptoにより暗号化された後のヘッダである。   FIG. 16 shows the header of the file “C: \ Users \ test \ Desktop \ Decoy.png” before and after being encrypted by the ransomware TeslaCrypt. FIG. 16A is a header before being encrypted by the ransomware TeslaCrypto, and FIG. 16B is a header after being encrypted by the ransomware TeslaCrypto.

図16に示すように、ファイル"おとり.png"の先頭から末尾までの全てのバイトの部分が書き換えられている。少なくとも、バイナリファイルであれば、ファイルの種類や、サイズ、ファイルの種類に応じた各種情報の情報を表す「ヘッダ」と呼ばれる部分(通常、先頭から数バイトから数十バイト)が書き換えられている。   As shown in FIG. 16, all bytes from the beginning to the end of the file “Decoy.png” are rewritten. At least in the case of a binary file, the part called “header” (typically several bytes to several tens of bytes from the beginning) representing the information of various types of information according to the file type, size, and file type has been rewritten. .

以上のことから、ランサムウェアTeslaCryptの暗号化時のファイル操作に関する挙動は、次の通りであることがわかった。
(1)ファイル検索のWindows API関数であるFindFirstFile、FindNextFileが呼び出される。
(2)ファイル検索のWindows API関数であるCreateFileが呼び出される。
(3)CreateFileの対象ファイルに、ファイルを読み出すWindows API関数であるReadFileと、ファイルにデータを書き込むWindows API関数であるWriteFileが呼び出される。
(4)CreateFileの対象ファイルのヘッダが、ランサムウェアTeslaCryptのアクセス前後で相違している。
From the above, it was found that the behavior related to file operations during encryption of ransomware TeslaCrypt is as follows.
(1) FindFirstFile and FindNextFile, which are Windows API functions for file search, are called.
(2) CreateFile, a Windows API function for file search, is called.
(3) ReadFile, which is a Windows API function that reads a file, and WriteFile, which is a Windows API function that writes data to the file, are called to the target file of CreateFile.
(4) The target file header of CreateFile is different before and after the access of ransomware TeslaCrypt.

(本発明の原理)
本願発明者等は、これら4種類のランサムウェアの分析結果から、ファイルを暗号化する際のファイル操作の挙動に、次のような共通する挙動があることに気がついた。
(1)ファイルを開くWindows API関数であるCreateFileが呼び出される。
(2)CreateFileの対象ファイルに、Windows API関数であるReadFile、WriteFileが1回以上呼び出される。
(3)CreateFileの対象ファイルのヘッダが変化している。
(Principle of the present invention)
The inventors of the present application have noticed from the analysis results of these four types of ransomware that the file operation behavior when encrypting a file has the following common behavior.
(1) CreateFile, a Windows API function that opens a file, is called.
(2) ReadFile and WriteFile, which are Windows API functions, are called at least once for the target file of CreateFile.
(3) The header of the target file of CreateFile has changed.

一般のアプリケーションで、このような挙動をするものは想定しにくく、ランサムウェア特有の挙動である。   It is difficult to imagine a general application that behaves like this, and this behavior is unique to ransomware.

そこで、本願発明者等は、このような挙動を検出することにより、ファイルを暗号化しようとする未知のランサムウェアを確実に検出し、未知のランサムウェアによる攻撃を有効に阻止することができると考え、本発明を着想するに至った。   Therefore, the inventors of the present application can detect an unknown ransomware that attempts to encrypt a file by detecting such a behavior, and can effectively prevent an attack by the unknown ransomware. Have come up with the idea of the present invention.

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

(本実施形態の概要)
本実施形態の概要について図17及び図18を用いて説明する。
(Outline of this embodiment)
The outline of the present embodiment will be described with reference to FIGS. 17 and 18.

本実施形態では、ハードディスク22に保存されたユーザーデータへアクセスするという挙動を有するプログラムの全ての挙動が検出対象である。   In the present embodiment, all behaviors of a program having a behavior of accessing user data stored in the hard disk 22 are detection targets.

CPU21がメモリ23上のOSデータのプロセスを実行して、ハードディスク22に格納されたプログラムにアクセスして、そのプログラムを読み込み(図2(c))、ハードディスク22に格納されたプログラムがメモリ23にロードされ、メモリ23上にプロセスとして展開される(図3(a))前に、メモリ23に本発明プログラムのプロセスを常駐させておく(図17(a))。   The CPU 21 executes a process of OS data on the memory 23, accesses a program stored in the hard disk 22, reads the program (FIG. 2C), and stores the program stored in the hard disk 22 in the memory 23. Before being loaded and expanded as a process on the memory 23 (FIG. 3A), the process of the program of the present invention is made resident in the memory 23 (FIG. 17A).

本発明プログラムは、ランサムウェアが導入される危険性のある状態となる前であればいつ実行してメモリ23上にプロセスとして常駐させてもよい。   The program of the present invention may be executed at any time before the ransomware is in danger of being introduced and may be made resident as a process in the memory 23.

例えば、スタートアッププログラムとして、コンピューターの起動時に起動させておく。Windows OSには、PCの起動と共に実行されるプログラムとして「スタートアッププログラム」が登録できる仕組みがある。本実施形態では、その仕組みを利用し本発明プログラムをスタートアッププログラムとして登録しておく。これにより、本発明プログラムがPCの起動直後からメモリ23上に配置している状態にする。   For example, it is started as a startup program when the computer is started. The Windows OS has a mechanism that allows a “startup program” to be registered as a program that is executed when the PC is started. In the present embodiment, the program of the present invention is registered as a startup program using the mechanism. As a result, the program of the present invention is placed on the memory 23 immediately after the PC is started.

また、PCの起動時にプログラムを起動する方法としては、レジストリやサービスの仕組みを使用する方法もあるが、いずれの方法を用いてもよい。   In addition, as a method of starting a program when the PC is started, there is a method of using a registry or a service mechanism, but any method may be used.

これにより、PCの起動直後から常にコンピューターをランサムウェアから保護することができる。   As a result, the computer can always be protected from ransomware immediately after the PC is started.

本発明プログラムは、図17(a)に示すように、ハードディスク22に格納されたプログラムがメモリ23にロードするという動作と、CPU21がプログラムを実行するという動作との間に割り込む。CPU21によるプログラムに基づく動作をフックすることにより、プログラムが実行される直前で、そのプログラムの挙動を本発明プログラムの監視下に置く。   As shown in FIG. 17A, the program of the present invention interrupts between an operation in which the program stored in the hard disk 22 is loaded into the memory 23 and an operation in which the CPU 21 executes the program. By hooking the operation based on the program by the CPU 21, the behavior of the program is placed under the monitoring of the program of the present invention immediately before the program is executed.

これにより、これ以降、監視対象プログラムの全ての挙動は、本発明プログラムが実行直前に把握することができる。必要に応じて、監視対象プログラムの処理に機能を加えたり、変更したりすることができる。   Thereby, thereafter, all behaviors of the monitoring target program can be grasped immediately before execution of the program of the present invention. As necessary, functions can be added to or changed in the processing of the monitoring target program.

本発明プログラムにより、監視対象プログラムの挙動が、ランサムウェア特有の挙動であると判断された場合には、図17(b)に示すように、本発明プログラムは、監視対象プログラムがハードディスク22内のファイルにアクセスを行おうとする直前に、そのアクセスをブロックする。このようにして、未知のランサムウェアによる攻撃をブロックしてファイルの暗号化を阻止する。   When it is determined by the program of the present invention that the behavior of the monitoring target program is unique to the ransomware, as shown in FIG. 17B, the monitoring target program is stored in the hard disk 22 as shown in FIG. Block access just before trying to access the file. In this way, attacks by unknown ransomware are blocked to prevent file encryption.

本発明プログラムは3つの機能を有する。本発明プログラムの3つの機能について図18を用いて説明する。   The program of the present invention has three functions. Three functions of the program of the present invention will be described with reference to FIG.

第1の機能は、現在動作中のプログラムや、後ほど起動するプログラムである監視対象プログラムが使用するWindows APIをフックする機能である。図18に示すように、本発明プログラムから、現在起動中のプロセス、すなわち、notepad.exe、WINWORD.exe、calc.exe、Ramsomware.exe、cmd.exe、…のプロセスが使用するWindows APIをフックする。   The first function is a function for hooking a Windows API used by a currently running program or a monitoring target program that is a program to be activated later. As shown in FIG. 18, from the program of the present invention, a currently running process, that is, a notepad.exe, WINWORD.exe, calc.exe, Ramsomware.exe, cmd.exe,... To do.

第2の機能は、フックしたWindows APIにより、監視対象プログラムの挙動を本発明プログラムに通知、問い合わせをして、その結果に基づいて監視対象プログラムがランサムウェアであるか判断する機能である。   The second function is a function of notifying and inquiring of the program of the present invention the behavior of the monitored program by the hooked Windows API, and determining whether the monitored program is ransomware based on the result.

第3の機能は、フックしたWindows APIからの通知の受領、記録、問い合わせに応答する機能である。   The third function is a function that responds to receipt, recording, and inquiry of notification from the hooked Windows API.

第1の機能と第3の機能は、常駐している本発明プログラムの機能であり、第2の機能は、監視対象プログラム内に組み込まれる本発明プログラムの機能である。   The first function and the third function are functions of the resident program of the present invention, and the second function is a function of the program of the present invention incorporated in the monitoring target program.

(フック対象のWindows API関数)
本発明プログラムは、監視対象プロセスにおいて、ランサムウェアの分析結果から得られた共通の挙動であるWindows API関数をフックすることにより、ランサムウェアの検知および防御を実現する。
(Windows API function to be hooked)
The program of the present invention realizes detection and protection of ransomware by hooking a Windows API function, which is a common behavior obtained from the analysis result of ransomware, in the process to be monitored.

ランサムウェアの共通の挙動であるWindows API関数とは、本発明の原理で指摘したように、CreateFile(ファイル作成関数(ファイルハンドル取得関数))、(ファイル生成関数)、ReadFile(ファイル読出関数)、WriteFile(ファイル書込関数)である。   As pointed out in the principle of the present invention, the Windows API function that is a common behavior of ransomware is CreateFile (file creation function (file handle acquisition function)), (file generation function), ReadFile (file read function), WriteFile (file write function).

本実施形態では、共通のWindows API関数である、ファイルを開きファイルハンドルを取得するためのCreateFile(ファイル生成関数)はフック対象とせず、ReadFile(ファイル読出関数)、WriteFile(ファイル書込関数)のみをフック対象としている。それは次のような理由からである。   In this embodiment, CreateFile (file creation function) for opening a file and acquiring a file handle, which is a common Windows API function, is not a hook target, only ReadFile (file read function) and WriteFile (file write function). Is a hook target. The reason is as follows.

まず、共通のWindows API関数である、ReadFile(ファイル読出関数)、WriteFile(ファイル書込関数)を実行するためには、ファイルのハンドルを取得することは事前に必須の処理であるので、ReadFile(ファイル読出関数)、WriteFile(ファイル書込関数)をフック対象とするだけで、ファイルのハンドルを取得することを検出できる。   First, in order to execute the common Windows API functions, such as ReadFile (file read function) and WriteFile (file write function), it is essential to obtain a file handle in advance. It is possible to detect that the handle of the file is acquired simply by setting the file reading function) and WriteFile (file writing function) as a hook target.

また、ファイルのハンドルを取得するためには、CreateFile(ファイル生成関数)以外のWindows API関数、例えば、OpenFile(ファイルオープン関数)でも実現可能であるので、CreateFile(ファイル生成関数)はファイルのハンドルを取得するために必須のWindows API関数とは言えない。   In addition, since the file handle can be obtained with Windows API functions other than CreateFile (file creation function), for example, OpenFile (file open function), CreateFile (file creation function) It is not a Windows API function that is essential to obtain.

(HookReadFile)
HookReadFileは、ReadFile(ファイル読出関数)をフックするWindows API関数である。
(HookReadFile)
HookReadFile is a Windows API function that hooks ReadFile (file read function).

HookReadFileは、通常のReadFileの動作に加えて、本発明プログラムに対して、次の情報(a)〜(c)を通知する機能を付加したWindows API関数である。   HookReadFile is a Windows API function to which the function of notifying the following information (a) to (c) is added to the program of the present invention in addition to the normal operation of ReadFile.

通知手段としては、プロセス間通信等、プロセスの動作に大きな遅延を発生させない程度の高速な手法が望ましい。ソケット通信やファイルによる受け渡し等でも、高速に実現できる環境であれば、いかなる方法でもよい。
(a)通知元API名。フックするWindows API関数の名前であるReadFileである。
(b)自身のプロセスID。フックするReadFileを呼び出す監視対象プロセスのプロセスIDである。
(c)ReadFileの対象ファイルパス。通知元APIであるReadFileのパラメータに指定されたファイルハンドルを示すファイルパスである。
As the notification means, a high-speed method that does not cause a large delay in the operation of the process, such as inter-process communication, is desirable. Any method may be used as long as the environment can be realized at high speed, such as socket communication or file delivery.
(A) Notification source API name. ReadFile, the name of the Windows API function to hook.
(B) its own process ID; This is the process ID of the monitored process that calls the hooked ReadFile.
(C) Target file path of ReadFile. This is a file path indicating a file handle specified in a parameter of ReadFile that is a notification source API.

ここで「ファイルパス」とは、その「ファイル」を保存している「フォルダ」に辿り着くまでに階層を重ねたフォルダの「経路(path)」を含めたものである。例えば、ハードディスクの「Cドライブ」上のフォルダ「Users」内のフォルダ「user」内のフォルダ「Desktop」内にあるファイル「note.doc」の「ファイルパス」は次の通りである。   Here, the “file path” includes a “path” of folders that are layered up to the “folder” in which the “file” is stored. For example, the “file path” of the file “note.doc” in the folder “Desktop” in the folder “user” in the folder “Users” on the “C drive” of the hard disk is as follows.

C:\Users\user\desktop\note.doc
また、ファイルパス(C:\Users\user\desktop\note.doc)からファイル名(note.doc)を除いたファイルパス(C:\Users\user\desktop\)のことを「フォルダパス」と言う。
C: \ Users \ user \ desktop \ note.doc
Also, the file path (C: \ Users \ user \ desktop \) excluding the file name (note.doc) from the file path (C: \ Users \ user \ desktop \ note.doc) say.

HookReadFile(ReadFileのフック関数)から通知を受けた本発明プログラムは、通知された内容、すなわち、API名、プロセスID、ファイルパスを、順次、通知記録データとしてメモリ23に保存する。この通知記録データは、後述するHookWriteFile(WriteFileのフック関数)において使用される。   Receiving notification from HookReadFile (ReadFile hook function), the program of the present invention sequentially stores the notified contents, that is, the API name, process ID, and file path in the memory 23 as notification record data. This notification record data is used in HookWriteFile (WriteFile hook function) described later.

なお、オペレーティングシステムではプロセスIDを再利用する機能があるので、長時間継続していると、異なるプロセスに対して偶発的に同じプロセスIDが割り当てられる可能性がある。このような偶発的なプロセスIDの一致によるランサムウェアの誤検知を防止するため、通知記録データを定期的にクリアすることが望ましい。   Since the operating system has a function of reusing process IDs, there is a possibility that the same process ID may be accidentally assigned to different processes if the process ID continues for a long time. In order to prevent such erroneous detection of ransomware due to an accidental process ID match, it is desirable to periodically clear the notification record data.

通議記録データの定期的クリアの間隔は任意であるが、長くともオペレーティングシステムの終了時または再起動時にはクリアすることが望ましい。クリア間隔をユーザーが設定できるようにしてもよい。   Although the interval for periodically clearing the conference record data is arbitrary, it is desirable to clear it at the end of the operating system or at the restart. The clear interval may be set by the user.

図19に上述したHookReadFileによる動作のイメージを示す。図19左部に監視対象プログラムのプロセスを示し、図19右部に本発明プログラムのプロセスを示す。   FIG. 19 shows an image of the operation by the above HookReadFile. The left part of FIG. 19 shows the process of the monitoring target program, and the right part of FIG. 19 shows the process of the program of the present invention.

図19左側の監視対象プログラムのプロセスには、本発明プログラムのフック機能であるHookReadFileが組み込まれている。組み込まれたHookReadFileは、通常のReadFileの動作に加えて、(a)通知元API名、(b)自身のプロセスID、(c)ReadFile対象ファイルパスを、図19右側の本発明プロセスに通知する。   The process of the monitoring target program on the left side of FIG. 19 incorporates HookReadFile which is a hook function of the program of the present invention. The incorporated HookReadFile notifies (a) the notification source API name, (b) its own process ID, and (c) the ReadFile target file path to the process of the present invention on the right side of FIG. 19 in addition to the normal ReadFile operation. .

図19右側の本発明プログラムのプロセスは、HookReadFileからの通知への対応を行う。図19左側のHookReadFileからの通知を受け取り、通知記録データとして順次記録する。   The process of the present invention program on the right side of FIG. 19 responds to notifications from HookReadFile. The notification from the HookReadFile on the left side of FIG. 19 is received and sequentially recorded as notification record data.

図19では、HookReadFileは、(a)通知元API名、(b)自身のプロセスID、(c)ReadFile対象ファイルパスとして、(a)[ReadFile]と(b)pid:3421と(c)filename:c:\Users\user\Desktop\note.docの組;(a)[ReadFile]と(b)pid:1568と(c)filename:c:\Users\user\Documents\schedule.xlsの組;(a)[ReadFile]と(b)pid:1568と(c)filename:c:\Users\user\Documents\schedule.xlsの組;・・・・を順次通知し、本発明プログラムは順次通知されたものを通知記録データとして記録している。   In FIG. 19, HookReadFile includes (a) [NotFile] API name, (b) own process ID, (c) ReadFile target file path, (a) [ReadFile], (b) pid: 3421, and (c) filename. : c: \ Users \ user \ Desktop \ note.doc; (a) [ReadFile], (b) pid: 1568, and (c) filename: c: \ Users \ user \ Documents \ schedule.xls; (A) [ReadFile], (b) pid: 1568 and (c) filename: c: \ Users \ user \ Documents \ schedule.xls Are recorded as notification record data.

(HookWriteFile)
HookWriteFileは、WriteFile(ファイル書込関数)をフックするWindows API関数である。
(HookWriteFile)
HookWriteFile is a Windows API function that hooks WriteFile (file write function).

HookWriteFileは、通常のWriteFileの動作に加えて、次の機能を付加したWindows API関数である。   HookWriteFile is a Windows API function that adds the following functions to the normal WriteFile operation.

WriteFileに指定されたパラメータ及びパラメータから取得できる情報が、後述する「ランサムウェアによるファイル暗号化操作であることの判断基準」に合致した場合、ランサムウェアによるファイル暗号化操作であると判断し、WriteFileによるデータ書き込みを行わずにプロセスを終了させる機能。   If the parameters specified in WriteFile and the information that can be acquired from the parameters match the “criteria for file encryption operation by ransomware” described later, it is determined that the file encryption operation is by ransomware, and WriteFile A function that terminates the process without writing the data.

上記の「ランサムウェアによるファイル暗号化操作であることの判断基準」とは、次の条件(A)〜(C)を満足することである。   The above “determination criteria for file encryption operation by ransomware” means that the following conditions (A) to (C) are satisfied.

条件(A):WriteFileの書き込み対象に指定されたファイルハンドルのファイルポインタの現在位置を取得し、その現在位置が先頭またはヘッダ範囲内であること。ファイルポインタの現在位置はSetFilePointer関数を使用する等で取得可能である。   Condition (A): The current position of the file pointer of the file handle specified as the write target of WriteFile is acquired, and the current position is within the head or header range. The current position of the file pointer can be obtained by using the SetFilePointer function.

条件(B):WriteFileの呼び出しにより書き換え前後でデータが変化すること。   Condition (B): Data changes before and after rewriting by calling WriteFile.

条件(C):本発明プログラムに問い合わせた結果、WriteFileが呼び出し時に指定されたファイルに対して、既に自身のプロセスから ReadFileが呼び出されていること。   Condition (C): As a result of inquiring the program of the present invention, ReadFile has already been called from its own process for the file specified when WriteFile is called.

条件(A)と条件(B)により、ファイルの先頭またはヘッダ範囲内情報が変化しているかを判断する。   Based on the condition (A) and the condition (B), it is determined whether the head of the file or the information in the header range has changed.

条件(C)を含めたのは次の理由である。   The reason for including the condition (C) is as follows.

一般的なファイルの暗号化手順では、プログラムの実装方法として、ReadFileで読み取った内容を暗号化した後、WriteFileで別のファイルに直接書き込む手法がとられる。しかし、今回分析したランサムウェアにおいては、そのような手法をとらず、あえて ReadFileで読み込んだファイルをWriteFileで書き換え、その後にリネームするといった動作を行っていた。これは、フォレンジック技術によるファイルの復元を防止するためと考えられる。ReadFileで読み込んだファイルをあえてWriteFileで上書きすることで、ディスク上のデータを上書きするため、フォレンジック技術を用いた方法でも、ファイルの復元ができなくなる可能性が高い。ランサムウェアの作者はあえてその状況を狙っているものと考えられる。本発明プログラムでは、この挙動を検知条件のひとつとしているため、このようなランサムウェアの特性に非常に効果的である。   In a general file encryption procedure, as a method for implementing a program, a method of encrypting the content read by ReadFile and then directly writing to another file by WriteFile is employed. However, the ransomware analyzed this time did not take such a technique, and rewritten the file read by ReadFile with WriteFile, and then renamed it. This is considered to prevent file restoration by the forensic technique. By overwriting the file read with ReadFile with WriteFile, the data on the disk is overwritten. Therefore, there is a high possibility that the file cannot be restored even by a method using forensic technology. The author of ransomware seems to be aiming for the situation. In the program of the present invention, this behavior is one of the detection conditions, so it is very effective for such ransomware characteristics.

この付加した機能により、HookWriteFile(WriteFileのフック関数)内で、呼び出し元プロセスがランサムウェアかどうかを判断し、ランサムウェアである場合、ファイル暗号化の防止、ランサムウェア検知の通知、ランサムウェアのプロセスの強制終了を行うことができる。   With this added function, HookWriteFile (WriteFile hook function) determines whether the calling process is ransomware. If it is ransomware, it prevents file encryption, ransomware detection notification, and ransomware process. Can be forcibly terminated.

条件(A)のイメージを図20に示す。   An image of condition (A) is shown in FIG.

図20(a)(b)左部はメモリ23上の監視対象プログラムのプロセスを示し、図20(a)(b)右部はハードディスク22上の書き込み対象ファイルを示す。   The left part of FIGS. 20A and 20B shows the process of the monitoring target program on the memory 23, and the right part of FIGS. 20A and 20B shows the write target file on the hard disk 22.

メモリ23上の監視対象プロセスに組み込まれたHookWriteFileから、ハードディスク22上の書き込み対象ファイルへの書き込み開始位置が指定される。   A write start position to the write target file on the hard disk 22 is designated from the HookWriteFile incorporated in the monitoring target process on the memory 23.

図20(a)の場合、ハードディスク22上の上側の書き込み対象ファイルに対する書き込み開始位置"0x00000020"はファイルの先頭ではなく、下側の書き込み対象ファイルに対する書き込み開始位置"0x00000000"はファイルの先頭である。書き込み開始位置がファイルの先頭である下側の書き込み対象ファイルへの書き込みが条件(A)を満足し、ランサムウェアによる書き込みの可能性があると判断する。   In the case of FIG. 20A, the write start position “0x00000020” for the upper write target file on the hard disk 22 is not the start of the file, and the write start position “0x00000000” for the lower write target file is the start of the file. . It is determined that the writing to the lower writing target file whose writing start position is the head of the file satisfies the condition (A) and there is a possibility of writing by ransomware.

図20(b)の場合、ハードディスク22上の上側の書き込み対象ファイルに対する書き込み開始位置"0x00000024"はファイルのヘッダの範囲内でなく、下側の書き込み対象ファイルに対する書き込み開始位置"0x00000004"はファイルの先頭ではないがヘッダの範囲内である。書き込み開始位置がファイルのヘッダの範囲内である下側の書き込み対象ファイルへの書き込みが条件(A)を満足し、ランサムウェアによる書き込みの可能性があると判断する。   In the case of FIG. 20B, the write start position “0x00000024” for the upper write target file on the hard disk 22 is not within the range of the file header, and the write start position “0x00000004” for the lower write target file is the file. It is not at the beginning but is within the range of the header. It is determined that writing to the lower writing target file whose writing start position is within the range of the file header satisfies the condition (A) and there is a possibility of writing by ransomware.

なお、ヘッダの範囲内であるかを判断するためには、ファイルの各拡張子に対するヘッダのサイズが予め分かっている必要がある。各拡張子に対応するヘッダのサイズは予めHookWriteFile(WriteFileのフック関数)内に保持しておく。例えば、拡張子が"pdf"であるPDFファイルでは先頭から5バイトがヘッダである。   In order to determine whether it is within the header range, the header size for each extension of the file needs to be known in advance. The size of the header corresponding to each extension is stored in advance in HookWriteFile (WriteFile hook function). For example, in the PDF file with the extension “pdf”, the first 5 bytes are the header.

条件(B)のイメージを図21に示す。   An image of the condition (B) is shown in FIG.

図21左部はメモリ23上の監視対象プログラムのプロセスを示し、図21右部はハードディスク22上の書き込み対象ファイルを示す。   The left part of FIG. 21 shows the process of the monitoring target program on the memory 23, and the right part of FIG. 21 shows the write target file on the hard disk 22.

メモリ23上の監視対象プロセスに組み込まれたHookWriteFileが書き込もうとする書き込み予定データと、ハードディスク22上の書き込み対象ファイルの書き込み前の状態のデータとを比較する。   The write-scheduled data to be written by the HookWriteFile incorporated in the monitoring target process on the memory 23 is compared with the data before the writing of the write target file on the hard disk 22.

図21の場合、HookWriteFileが書き込もうとする書き込み予定データ"00 AA 00 BB 00 CC 00 DD 00 EE 00 FF 00 00 08 00"と、ハードディスク22上の書き込み対象ファイルの書き込み前の状態のデータ"50 4B 03 04 14 00 06 00 08 00 00 00 21 00 A3 EF"とは相違するので、条件(B)を満足し、ランサムウェアによる書き込みの可能性があると判断する。   In the case of FIG. 21, the data to be written “00 AA 00 BB 00 CC 00 DD 00 EE 00 FF 00 00 08 00” to be written by HookWriteFile and the data before writing of the write target file on the hard disk 22 “50 4B Since 03 04 14 00 06 00 08 00 00 00 21 00 A3 EF ", it is judged that the condition (B) is satisfied and there is a possibility of writing by ransomware.

条件(C)のイメージを図22に示す。   An image of the condition (C) is shown in FIG.

図22(a)左部にメモリ23上の監視対象プログラムのプロセスを示し、図22(a)右部にメモリ23上の本発明プログラムのプロセスを示す。   22A shows the process of the monitoring target program on the memory 23 on the left side, and FIG. 22A shows the process of the program of the present invention on the memory 23 on the right side.

図22(a)左部の監視対象プロセスに組み込まれたHookWriteFileは、自身(監視対象プロセス)のプロセスIDと、WriteFileの対象ファイルパスに基づいて、図22(a)右部の本発明プログラムのプロセスに対して、ReadFileの通知記録データ中に、同一プロセスID、同一対象ファイルパスのReadFileの記録があるか否かを問い合わせる。図22右側の本発明プログラムは、同一プロセスID、同一対象ファイルパスのReadFileの記録があるか否かをHookWriteFileに応答する。   The hook write file incorporated in the monitoring target process on the left side of FIG. 22 (a) is based on the process ID of itself (monitoring target process) and the target file path of WriteFile. The process is inquired of whether there is a record of ReadFile with the same process ID and the same target file path in ReadFile notification record data. The program of the present invention on the right side of FIG. 22 responds to HookWriteFile whether there is a record of ReadFile with the same process ID and the same target file path.

図22(a)の場合、監視対象プロセスに組み込まれたHookWriteFileからプロセスID"pid:1568"とファイルパス"C:\Users\user\Documents\schedule.xls"に基づいて、ReadFileの通知記録データに対して問い合わせる。   In the case of FIG. 22A, ReadFile notification record data based on the process ID “pid: 1568” and the file path “C: \ Users \ user \ Documents \ schedule.xls” from the HookWriteFile embedded in the monitored process. Inquire against.

図22(b)にReadFileの通知記録データを示す。   FIG. 22B shows the notification record data of ReadFile.

ReadFileの通知記録データの第4〜6行、第7〜9行、第13〜15行に、HookWriteFileのプロセスID"pid:1568"、ファイルパス"C:\Users\user\Documents\schedule.xls"と同一である、プロセスID"pid:1568"、ファイルパス"C:\Users\user\Documents\schedule.xls"のReadFileの記録があるので、条件(C)を満足し、ランサムウェアによる書き込みの可能性があると判断する。   Lines 4-6, 7-9, and 13-15 of ReadFile notification record data show the HookWriteFile process ID “pid: 1568” and file path “C: \ Users \ user \ Documents \ schedule.xls”. Since there is a ReadFile record with the same process ID “pid: 1568” and file path “C: \ Users \ user \ Documents \ schedule.xls”, the condition (C) is satisfied and the ransomware writes It is determined that there is a possibility.

その結果、図22(a)右側の本発明プログラムは、同一プロセスID、同一対象ファイルパスのReadFileの記録があった旨をHookWriteFileに応答する。   As a result, the program of the present invention on the right side of FIG. 22A responds to HookWriteFile that ReadFile of the same process ID and the same target file path has been recorded.

(除外リスト)
本発明プログラムを、システム上において動作する全てのプロセスから呼び出される全てのReadFile、WriteFileをフックし、そのプロセスがランサムウェアである否かを判断することは、システムに新たな負荷を加えることになる。
(Exclusion list)
Hooking all ReadFile and WriteFile called from all processes running on the system and determining whether the process is ransomware adds a new load to the system. .

そこで、本実施形態では、明らかにランサムウェアではないプログラムを予め登録した「除外リスト」を作成しておき、除外リストに登録されたプログラムに対しては、本発明プログラムを実行しないようにする。   Therefore, in this embodiment, an “exclusion list” in which programs that are clearly not ransomware are registered in advance is created, and the program of the present invention is not executed for the programs registered in the exclusion list.

図23に除外リストの具体例を示す。   FIG. 23 shows a specific example of the exclusion list.

除外リストには正規のプログラムを登録する。例えば、システムにインストールされている「プログラム名」「プログラムファイル」「ファイルのフルパス」「ファイルサイズ」「ハッシュ値」「デジタル著名」等を必要に応じて登録する。   Regular programs are registered in the exclusion list. For example, “program name”, “program file”, “full file path”, “file size”, “hash value”, “digital signature”, and the like installed in the system are registered as necessary.

図23では、正規のプログラムとして、「インターネットエクスプローラー」「MSワード」「MSエクセル」を登録している。   In FIG. 23, “Internet Explorer”, “MS Word”, and “MS Excel” are registered as regular programs.

除外リストは、システムへのプログラムをインストールするたびに更新し、ハードディスク22上に格納しておく。本発明プログラムの起動時に除外リストの内容を読み込むようにする。   The exclusion list is updated each time a program is installed in the system and stored on the hard disk 22. The contents of the exclusion list are read when the program of the present invention is started.

本発明プログラムの動作後、読み込んだ除外リストの情報はメモリ23上にマッピングされる。突然のマシントラブルでメモリ情報が揮発しても内容を失わないよう、ハードディスク22上のファイルに対して常に更新しておくことがよい。   After the operation of the program of the present invention, the read exclusion list information is mapped onto the memory 23. It is preferable to always update the files on the hard disk 22 so that the contents are not lost even if the memory information is volatilized due to a sudden machine trouble.

また、除外リストのファイルは、マルウェアやランサムウェアによる編集を避けるため、暗号化しておくことが望ましい。   Also, it is desirable to encrypt the exclusion list file to avoid editing by malware or ransomware.

(ユーザーによる除外リストへの追加)
「ランサムウェアによるファイル暗号化操作であることの判断基準」の条件(A)は、HookWriteFileからの書き込み対象ファイルへの書き込み開始位置が先頭又はヘッダ範囲内であることである。この条件(A)は、監視対象プログラムがファイルのヘッダを書き換えるものであるかを判断するための条件である。監視対象プログラムがファイルのヘッダを書き換える場合には、監視対象プログラムがランサムウェアの可能性があると判断する。監視対象プログラムがファイルのヘッダ以外の部分を書き換える場合には、通常の書き換え処理でありランサムウェアの可能性がないと判断する。
(User added to exclusion list)
The condition (A) of “Judgment criteria for file encryption operation by ransomware” is that the write start position from HookWriteFile to the write target file is within the head or header range. This condition (A) is a condition for determining whether the monitoring target program rewrites the header of the file. When the monitoring target program rewrites the header of the file, it is determined that the monitoring target program may be ransomware. When the program to be monitored rewrites a part other than the header of the file, it is determined that there is no possibility of ransomware because it is a normal rewriting process.

一般的に、コンピューターが扱うファイルは「テキストファイル(テキスト形式)」と「バイナリファイル(バイナリ形式)」の2種類に分類される。   Generally, files handled by a computer are classified into two types: “text file (text format)” and “binary file (binary format)”.

バイナリファイル、例えば、拡張子が"doc"、"ppt"、"exe"、"pdf"、"jpg"、"bmp"等のファイルは、通常、ファイル種別に応じたヘッダ情報を有している。バイナリファイルの内容を編集して変更し上書き保存した場合でも、通常、ヘッダ情報となるファイルの先頭部分は変更されず、データ部分が変更される。バイナリファイルのヘッダが書き換えられると、そのファイルは適切に開けなくなり、通常のアプリケーションではそのようなことは行われない。したがって、ファイルのヘッダを書き換えるプログラムはランサムウェアの可能性がある。   Binary files, for example, files with extensions "doc", "ppt", "exe", "pdf", "jpg", "bmp", etc. usually have header information corresponding to the file type. . Even when the contents of a binary file are edited and changed and overwritten, the head part of the file serving as header information is normally not changed, but the data part is changed. When the binary file header is rewritten, the file cannot be opened properly, and this is not done in normal applications. Therefore, the program that rewrites the file header may be ransomware.

ファイルの先頭部分のヘッダを書き換えるような処理を行うアプリケーションも存在するが、その場合には、ヘッダの書き換えに応じて、ファイルの拡張子も変更されてファイル種別が変更される。拡張子を含むファイル名が変わらないままで、ヘッダを書き換えることは通常のアプリケーションでは行われない。したがって、ファイル名が変わらないままで、ファイルのヘッダを書き換えるプログラムはランサムウェアの可能性がある。   There are applications that perform processing to rewrite the header at the beginning of the file. In this case, the file type is changed by changing the file extension in accordance with the rewriting of the header. Rewriting the header without changing the file name including the extension is not performed in a normal application. Therefore, a program that rewrites the header of a file without changing the file name may be ransomware.

一方、テキストファイル、例えば、拡張子が"txt"、"csv"等のファイルは、通常、ファイル種別に応じたヘッダ情報を有していない。テキストファイルの場合、ファイルの先頭部分もデータ部分である。したがって、テキストファイルが先頭部分から書き換えられていても、それがランサムウェアによる暗号化か、通常のアプリケーションにより書き換えかを判断することは困難である。   On the other hand, a text file, for example, a file with extensions “txt”, “csv” or the like usually does not have header information corresponding to the file type. In the case of a text file, the top part of the file is also a data part. Therefore, even if the text file is rewritten from the beginning, it is difficult to determine whether the text file is encrypted by ransomware or rewritten by a normal application.

本発明プログラムでは、ファイルの拡張子に基づいて、テキスト形式のファイルであると判断された場合は、その対応をユーザーの判断にゆだねるようにする。   In the program of the present invention, when it is determined that the file is in text format based on the extension of the file, the correspondence is left to the user's determination.

図24は、テキスト形式のファイルの書き換えを検出した場合の警告画面である。   FIG. 24 shows a warning screen when rewriting of a text format file is detected.

警告画面では「以下のプロセスがテキストファイルの改変挙動を行っています。どう処理しますか。」と尋ね、「プロセス名:AAATextEditor.exe」、「該当挙動:ファイル内容の改変」、「対象ファイル:C:\Users\test\Desktop\議事録.txt」、「書き込み内容:"[議事録]\n 出席者:佐藤・・・"」を示す。   The warning screen asks "The following process is modifying the text file. How do you handle it?", "Process name: AAATextEditor.exe", "Applicable behavior: Modification of file contents", "Target file : C: \ Users \ test \ Desktop \ Minutes.txt "," Content to be written: "[Minutes] \ n Attendees: Sato ..." ".

更に「※現在の操作に心当たりのないプロセスおよびファイルである場合、ランサムウェアによるファイルの暗号化処理の可能性があります。」と警告し、その対応処理の選択ボタン「プロセスを終了」、「この警告を放置」、「プロセスを除外に追加」を示す。   In addition, “* If there is a process or file that you are unfamiliar with the current operation, there is a possibility that the file will be encrypted by ransomware.” And the corresponding process selection buttons “End Process”, “This “Leave warning” and “Add process to exclusion”.

ユーザーが「プロセスを終了」を選択した場合には、プロセス"AAATextEditor.exe"を直ちに終了させる。ユーザーが、そのプロセスをランサムウェアであると判断した場合である。   If the user selects “End Process”, the process “AAATextEditor.exe” is immediately ended. This is when the user determines that the process is ransomware.

ユーザーが「この警告を放置」を選択した場合には、プロセス"AAATextEditor.exe"を終了させることなく、そのまま処理を続行する。ユーザーが、そのプロセスをランサムウェアであるか否か判断できない又は判断を保留する場合である。   When the user selects “Leave this warning”, the process is continued without terminating the process “AAATextEditor.exe”. This is the case when the user cannot determine whether the process is ransomware or withholds the determination.

ユーザーが「プロセスを除外に追加」を選択した場合には、プロセス"AAATextEditor.exe"を、図25に示すように、「除外リスト」に追加し、同じプロセスに対する警告を再度行わないようにする。ユーザーが、そのプロセスはランサムウェアでないと判断した場合である。   When the user selects “Add Process to Exclude”, the process “AAATextEditor.exe” is added to the “Exclusion List” as shown in FIG. 25 so that the warning for the same process is not performed again. . If the user determines that the process is not ransomware.

なお、監視対象プログラムからの除外リスト(ホワイトリスト)の参照および追加は、直接ハードディスク22上のファイルへアクセスするよう実装してもよいし、一度常駐プログラムを経由してアクセスするように実装してもよい。   The reference and addition of the exclusion list (white list) from the monitoring target program may be implemented so as to directly access a file on the hard disk 22 or once so as to be accessed via a resident program. Also good.

(対処行動)
本発明プログラムが、監視対象プログラムをランサムウェアであると判断した場合の対処行動について説明する。
(Coping behavior)
The coping behavior when the program of the present invention determines that the monitored program is ransomware will be described.

監視対象のプログラムをランサムウェアであると判断した場合には、WriteFileによるファイルへの書き込みは行わず、監視対象プログラムによるプロセスを強制終了する。   If the monitoring target program is determined to be ransomware, the process by the monitoring target program is forcibly terminated without writing to the file by WriteFile.

プロセスの強制終了は、WriteFileをフックしているHookWriteFile関数内で行う。一般的には、ExitProcess関数や、Exit関数等を用いることで実現できるが、プロセスを終了可能な命令であればいかなるものを使用してもよい。   The process is forcibly terminated in the HookWriteFile function that hooks WriteFile. Generally, this can be realized by using the ExitProcess function, the Exit function, or the like, but any instruction that can terminate the process may be used.

プロセスの強制終了により、ランサムウェアによるファイルの暗号化を防ぐことができる。プロセスの強制終了では、当該ファイルは暗号化されないため、事前のファイルのバックアップ等も不要である。   By forcibly terminating the process, file encryption by ransomware can be prevented. When the process is forcibly terminated, the file is not encrypted, so it is not necessary to back up the file in advance.

なお、直ちにプロセスを終了させることにより不都合が生じる可能性のある環境においては、例えば、ユーザーに強制終了予定であることを事前に通知し、強制終了するか否かの判断を仰ぐようにしてもよい。また、後述する「付加機能による検出精度のコントロール」の機能を用いて対応するようにしてもよい。   In an environment where inconvenience may be caused by terminating the process immediately, for example, the user is notified in advance that the process is scheduled to be forcibly terminated, and the user is asked to determine whether to terminate the process forcibly. Good. Further, a function of “control of detection accuracy by additional function” described later may be used.

(HookReadFileとHookWriteFile)
図26に、本発明プログラムによるHookReadFileによる動作とHookWriteFileによる動作のイメージをまとめて示す。
(HookReadFile and HookWriteFile)
FIG. 26 collectively shows an image of the operation by HookReadFile and the operation by HookWriteFile according to the program of the present invention.

図26左部に監視対象プログラムのプロセスを示し、図26右部に本発明プログラムのプロセスを示す。   The left part of FIG. 26 shows the process of the program to be monitored, and the right part of FIG. 26 shows the process of the program of the present invention.

図26左側の監視対象プログラムのプロセスには、本発明プログラムのフック機能であるHookReadFileとHookWriteFileが組み込まれている。   The process of the monitoring target program on the left side of FIG. 26 incorporates HookReadFile and HookWriteFile which are hook functions of the program of the present invention.

組み込まれたHookReadFileは、通常のReadFileの動作に加えて、(a)通知元API名、(b)自身のプロセスID、(c)ReadFile対象ファイルパスを、図19右側の本発明プロセスに通知する。   The incorporated HookReadFile notifies (a) the notification source API name, (b) its own process ID, and (c) the ReadFile target file path to the process of the present invention on the right side of FIG. 19 in addition to the normal ReadFile operation. .

図26右側の本発明プログラムのプロセスは、図26左側のHookReadFileからの通知を受け取り、通知記録データとして順次記録する。   The process of the present invention program on the right side of FIG. 26 receives notifications from the HookReadFile on the left side of FIG. 26 and sequentially records them as notification record data.

組み込まれたHookWriteFileは、自身(監視対象プロセス)のプロセスIDと、WriteFileの対象ファイルパスに基づいて、図26右部の本発明プログラムのプロセスに対して、ReadFileの通知記録データ中に、同一プロセスID、同一対象ファイルパスのReadFileの記録があるか否かを問い合わせる。図26右側の本発明プログラムは、同一プロセスID、同一対象ファイルパスのReadFileの記録があるか否かをHookWriteFileに応答する。   The incorporated HookWriteFile is the same process in the ReadFile notification record data with respect to the process of the program of the present invention on the right side of FIG. 26 based on the process ID of itself (monitored process) and the target file path of WriteFile. Queries whether there is a record of ReadFile of ID and the same target file path. The program of the present invention on the right side of FIG. 26 responds to HookWriteFile whether there is a record of ReadFile with the same process ID and the same target file path.

組み込まれたHookWriteFileは、更に、書き換え対象ファイルがテキストファイルの場合にユーザーに通知し、その対処方法の選択肢をユーザーに示す。   The incorporated HookWriteFile further notifies the user when the file to be rewritten is a text file, and shows the user the options of how to deal with it.

ユーザーにより監視対象プロセスの除外リストへの追加が選択された場合には、除外リストに当該プロセスを追加する。   If the user selects to add the monitored process to the exclusion list, the process is added to the exclusion list.

ユーザーにより監視対象プロセスの終了が選択された場合には、監視対象プロセスを強制終了する。   When the end of the monitored process is selected by the user, the monitored process is forcibly terminated.

(Windows APIのフック方法)
本発明プログラムが、Windows APIをフックする具体的な方法について、図27乃至図34を用いて説明する。
(Windows API hook method)
A specific method for hooking the Windows API by the program of the present invention will be described with reference to FIGS.

すべてのWindowsプログラムは、起動するとそれぞれのプロセス空間(メモリ空間)と呼ばれる仮想メモリ上に配置される仕組みとなっている。   All Windows programs are arranged in virtual memory called process space (memory space) when started.

それぞれのプロセス空間には、マルウェアのプロセス空間の状態を拡大して表示した図27に示すように、Import Address Table(IAT)という項目があり、IAT にはプログラムが使用する関数(API)の一覧とそれに応じたメモリアドレス(番地)が記録されている。これはプログラムが動作する際に、どういった関数がどこのメモリに読み込まれているかを把握するための一般的な仕組みである。   Each process space has an item called Import Address Table (IAT) as shown in FIG. 27, which is an enlarged view of the state of the malware process space, and IAT contains a list of functions (APIs) used by the program. And a memory address (address) corresponding to this. This is a general mechanism for grasping what function is loaded into which memory when the program runs.

この前提のもとフック制御を行う方法について記述する。   A method for hook control based on this premise will be described.

まず、図28に示すように、監視対象プログラムのプロセス空間に、フック用の WriteFile関数(HookWriteFile関数)を埋め込む。自分以外の他のプロセスにコードを注入する、すなわち、コードをインジェクションするには、そのプロセスのメモリ空間において、VirtualAllocEx関数というWindows APIを利用し、まだ使用されていない領域に一定サイズのメモリ領域を確保する。図28右部の網掛け部分がそのメモリ領域である。   First, as shown in FIG. 28, a hook WriteFile function (HookWriteFile function) is embedded in the process space of the monitoring target program. To inject code into other processes other than yourself, that is, to inject code, use the Windows API called VirtualAllocEx function in the memory space of that process, and allocate a memory area of a certain size to an area that has not been used yet. Secure. The shaded portion on the right side of FIG. 28 is the memory area.

次に、図29に示すように、WriteProcessMemoryというWindows APIを利用し、確保したメモリ領域に実行させたいコード、ここではHookWriteFile関数本体、および、その HookWriteFile関数を監視対象プログラムのプロセス空間内のIATへ組み込むための関数Aを書き込む。この動作を図29の太線矢印で示す。なお、確保したメモリ領域の具体的なアドレスはVirtualAllocExの戻り値を確認することで取得することができる。    Next, as shown in FIG. 29, the Windows API called WriteProcessMemory is used to execute the code to be executed in the reserved memory area, here the HookWriteFile function body, and the HookWriteFile function to the IAT in the process space of the monitored program. Write function A for inclusion. This operation is indicated by a thick arrow in FIG. Note that the specific address of the secured memory area can be obtained by checking the return value of VirtualAllocEx.

次に、図30に示すように、書き込んだコード(関数A)を実行させるために CreateRemoteThreadというWindows APIを呼び出すことにより、その任意のコードをマルウェアのプロセス空間上で実行することができる。この動作を図30の太線矢印で示す。   Next, as shown in FIG. 30, by calling a Windows API called CreateRemoteThread to execute the written code (function A), the arbitrary code can be executed in the malware process space. This operation is indicated by a thick arrow in FIG.

ここで、監視対象プログラムのプロセス空間のみに注目すると、図31に示すようになる。   Here, when attention is paid only to the process space of the monitoring target program, it is as shown in FIG.

次に、図32に示すように、CreateRemoteThreadにより、関数Aが実行されると、関数 Aは、監視対象プログラムのプロセス空間のIATにおける、正規のWriteFile関数のアドレス(図32ではアドレス"0x46700000"番地)を、HookWriteFile関数のアドレス(図32ではアドレス"0x49000000"番地)へ書き換える。これでフックの事前処理が完了する。   Next, as shown in FIG. 32, when the function A is executed by CreateRemoteThread, the function A is the address of the regular WriteFile function in the IAT of the process space of the monitored program (the address “0x46700000” in FIG. 32). ) Is rewritten to the address of the HookWriteFile function (the address “0x49000000” in FIG. 32). This completes the hook pre-processing.

なお、どの関数がどのアドレスに展開されているか、すなわち、IATにあるその関数に対応するアドレス、を知るには、GetProcAddressというWindows APIの引数に関数名を渡すことで、指定した関数がプロセス空間のどのアドレスに対応づけられているのか、具体的なアドレスを知ることができる。   To know 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. It is possible to know the specific address of which address is associated with.

次に、図33及び図34に示すように、監視対象プログラムが、例えば"0x3C0"というファイルハンドルの指すファイル内容を書き換えようとしたと仮定する。その場合、WriteFile関数が呼び出されると、監視対象プログラムは自身のプロセス空間内のIATを参照した結果、正規の WriteFile関数ではなく、HookWriteFile関数に"0x3C0"というパラメータを渡すことになる。   Next, as shown in FIGS. 33 and 34, it is assumed that the monitoring target program tries to rewrite the file content indicated by the file handle “0x3C0”, for example. In this case, when the WriteFile function is called, the monitored program refers to the IAT in its process space, and as a result, passes the parameter “0x3C0” to the HookWriteFile function instead of the regular WriteFile function.

HookWriteFile関数の内部では、任意の処理を行うことが可能である。具体的には、本来WriteFileを使用して書き込むデータの内容を事前にチェックする、変更する等である。本発明プログラムにおけるHookWriteFile関数の内容は、前述のとおりである。   Arbitrary processing can be performed inside the HookWriteFile function. Specifically, the content of data originally written using WriteFile is checked or changed in advance. The contents of the HookWriteFile function in the program of the present invention are as described above.

(付加機能による検出精度のコントロール)
本発明プログラムが監視対象プログラムをランサムウェアであると判断した場合には、ランサムウェアによるファイルの暗号化を防ぐため、監視対象プログラムによるプロセスを強制終了する。
(Control of detection accuracy with additional functions)
When the program of the present invention determines that the monitoring target program is ransomware, the process by the monitoring target program is forcibly terminated to prevent file encryption by the ransomware.

しかしながら、環境によっては、直ちにプロセスを強制終了させることにより不都合が生じる場合がある。そこで、本発明プログラムに付加機能を設けて、ランサムウェアの検出精度をコントロールするようにする。   However, depending on the environment, there may be a problem that the process is immediately terminated. Therefore, an additional function is provided in the program of the present invention to control the detection accuracy of ransomware.

(HookFindNextFileによるコントロール)
HookFindNextFileは、FindNextFile(ファイル検索関数)をフックするWindows API関数である。
(Control by HookFindNextFile)
HookFindNextFile is a Windows API function that hooks FindNextFile (file search function).

ReadFile(ファイル読出関数)をフックするHookReadFile、WriteFile(ファイル書込関数)をフックするHookWriteFileに加えて、HookFindNextFileによりFindNextFile(ファイル検索関数)をフックするようにして、ランサムウェアの検出精度を向上させる。   In addition to HookReadFile that hooks ReadFile (file read function) and HookWriteFile that hooks WriteFile (file write function), HookFindNextFile hooks FindNextFile (file search function) to improve the detection accuracy of ransomware.

FindFirstFileとFindNextFileは、ファイルの検索や列挙に使用するWindows API関数であり、通常、セットで使用される。   FindFirstFile and FindNextFile are Windows API functions used to find and enumerate files and are typically used in sets.

図35に、FindFirstFileとFindNextFileによる動作を示す。   FIG. 35 shows operations by FindFirstFile and FindNextFile.

まず、場所を指定してFindFirstFileを呼び出すと、その場所の最初のファイルの情報がシステムから応答され、最初のファイルの情報(AAA.txt)が取得できる。   First, when FindFirstFile is called by specifying the location, the information on the first file at that location is returned from the system, and the information on the first file (AAA.txt) can be obtained.

次に、FindNextFileを呼び出すと、FindFirstFileにより取得したファイルハンドルから、その場所の次のファイルの情報(BBB.pdf)が取得できる。   Next, when FindNextFile is called, the information (BBB.pdf) of the next file at the location can be acquired from the file handle acquired by FindFirstFile.

以降、FindNextFileを呼び出すことにより、その場所の更に次のファイルの情報(CCC.txt、DDD.exe、…)を順次取得できる。   Thereafter, by calling FindNextFile, information on the next file at that location (CCC.txt, DDD.exe,...) Can be acquired sequentially.

したがって、HookReadFile、HookWriteFileによる上述したランサムウェアの検知時に、FindFirstFileやFindNextFileが常に呼び出されている場合には、ランサムウェアが連続してファイルの暗号化を行っていると判断することができる。   Therefore, if FindFirstFile or FindNextFile is always called when the above-described ransomware is detected by HookReadFile and HookWriteFile, it can be determined that the ransomware is continuously encrypting the file.

図36に示すように、まず、FindFirstFileを呼び出し、ある場所の最初のファイルの情報を取得する。続いて、ReadFileとWriteFileを呼び出し、そのファイルの暗号化処理を行う。次に、FindNextFileを呼び出し、その場所の次のファイルの情報を取得する。続いて、ReadFileとWriteFileを呼び出し、そのファイルの暗号化処理を行う。次に、同様に、FindNextFileを呼び出し、その場所の次のファイルの情報を取得する。続いて、ReadFileとWriteFileを呼び出し、そのファイルの暗号化処理を行う。以降、同様な処理を繰り返して、その場所のファイルを連続して暗号化する。   As shown in FIG. 36, first, FindFirstFile is called to obtain information on the first file at a certain location. Subsequently, ReadFile and WriteFile are called and the files are encrypted. Next, call FindNextFile to get information about the next file in that location. Subsequently, ReadFile and WriteFile are called and the files are encrypted. Next, similarly, FindNextFile is called to obtain information about the next file at that location. Subsequently, ReadFile and WriteFile are called and the files are encrypted. Thereafter, the same processing is repeated to continuously encrypt the files at that location.

このようなファイルの連続した暗号化処理を検出するためには、FindNextFileのみをフックして監視すればよい。FindFirstFileは必ずしもフックして監視しなくともよい。   In order to detect such continuous encryption processing of files, it is only necessary to hook and monitor FindNextFile. FindFirstFile does not have to be hooked and monitored.

FindNextFileをフックするHookFindNextFileは、呼び出されると通常のFindNextFileの動作に加えて、本発明プログラムに対して次の情報(a)〜(c)を通知する。   When called, HookFindNextFile that hooks FindNextFile notifies the following information (a) to (c) to the program of the present invention in addition to the normal operation of FindNextFile.

通知手段としては、プロセス間通信等、プロセスの動作に大きな遅延を発生させない程度の高速な手法が望ましい。ソケット通信やファイルによる受け渡し等でも、高速に実現できる環境であれば、いかなる方法でもよい。
(a)通知元API名。フックするWindows API関数の名前であるFindNextFileである。
(b)自身のプロセスID。フックするFindNextFileを呼び出す監視対象プロセスのプロセスIDである。
(c)通知元APIであるFindNextFileのパラメータで指定されたデータバッファから取得できるファイル名。データバッファには次のファイルの情報が格納されている。
As the notification means, a high-speed method that does not cause a large delay in the operation of the process, such as inter-process communication, is desirable. Any method may be used as long as the environment can be realized at high speed, such as socket communication or file delivery.
(A) Notification source API name. FindNextFile, the name of the Windows API function to hook.
(B) its own process ID; This is the process ID of the monitored process that calls FindNextFile to hook.
(C) File name that can be acquired from the data buffer specified by the parameter of FindNextFile that is the notification source API. The data buffer stores information about the next file.

したがって、HookReadFile、HookWriteFileによりランサムウェアが検知されたことを条件として、その暗号化処理の前に、FindNextFileが呼び出され、かつ、取得された次のファイル名がReadFileおよびWriteFileの対象ファイルと合致するかどうかを確認することにより、暗号化処理が複数のファイルに対して連続して行われていることを判断することができる。   Therefore, on the condition that ransomware is detected by HookReadFile and HookWriteFile, FindNextFile is called before the encryption process, and whether the next file name obtained matches the target file of ReadFile and WriteFile. By confirming whether or not, it is possible to determine that the encryption process is continuously performed on a plurality of files.

上記を判断するためには、例えば、HookReadFile、HookWriteFile、HookNextFileが、それぞれ、本発明プログラムに対して通知する(a)通知元API名、(b)プロセスID、(c)ファイルパスを、通知記録データに記録しておき、その通知記録データに基づいて判断する。   In order to determine the above, for example, HookReadFile, HookWriteFile, and HookNextFile respectively notify (a) a notification source API name, (b) a process ID, and (c) a file path that are notified to the program of the present invention. The data is recorded in advance, and the determination is made based on the notification record data.

図37に通知記録データの具体例を示す。   FIG. 37 shows a specific example of the notification record data.

図37の通知記録データには、第4〜6行に、FindNextFileのプロセスID"pid:1568"、ファイルパス"C:\Users\user\Documents\schedule.xls"の記録があり、第7〜9行、第13〜15行に、ReadFileのプロセスID"pid:1568"、ファイルパス"C:\Users\user\Documents\schedule.xls"の記録があり、第10〜12行、第16〜118行に、WriteFileのプロセスID"pid:1568"、ファイルパス"C:\Users\user\Documents\schedule.xls"の記録がある。   The notification record data in FIG. 37 includes records of FindNextFile process ID “pid: 1568” and file path “C: \ Users \ user \ Documents \ schedule.xls” in the fourth to sixth lines. Lines 9 and 13 to 15 have a record of ReadFile process ID “pid: 1568” and file path “C: \ Users \ user \ Documents \ schedule.xls”. Lines 10 to 12 and 16 to 16 Line 118 has a record of WriteFile process ID “pid: 1568” and file path “C: \ Users \ user \ Documents \ schedule.xls”.

FindNextFileのプロセスIDとファイルパスは、ReadFileとWriteFileのプロセスIDとファイルパスと同一である。WriteFileにより、ファイル"schedule.xls"のヘッダが変更されたことが検出された場合には、暗号化処理が複数のファイルに対して連続して行われていると判断する。   The process ID and file path of FindNextFile are the same as the process ID and file path of ReadFile and WriteFile. When it is detected by WriteFile that the header of the file “schedule.xls” has been changed, it is determined that the encryption process is continuously performed on a plurality of files.

図37の通知記録データには、更に、第22〜36行に、同じフォルダ
"C:\Users\user\Documents\"内のファイル"description.doc"に対して同様な処理を行っていることが記録されている。WriteFileにより、ファイル"description.doc"のヘッダが変更されたことが検出された場合には、暗号化処理が同一フォルダ内の複数のファイルに対して連続して行われていると判断する。
The notification record data in FIG. 37 further includes the same folder in the 22nd to 36th lines.
It is recorded that the same processing is performed on the file "description.doc" in "C: \ Users \ user \ Documents \". When it is detected by WriteFile that the header of the file “description.doc” has been changed, it is determined that the encryption process is continuously performed on a plurality of files in the same folder.

暗号化処理が複数のファイルに対して連続して行われているかの判断を有効にするか設定することにより、ランサムウェアによる暗号化処理に対する検知挙動の精度をコントロールすることができる。   By setting whether or not to determine whether or not the encryption process is continuously performed on a plurality of files, it is possible to control the accuracy of the detection behavior for the encryption process by the ransomware.

図38は、複数ファイルに対する暗号化処理を有効にするかの設定画面である。図38の設定画面の表現方法は一例であり、他の表現方法でもよい
設定画面では、チェックボタンの後に「複数のファイルに対する暗号化処理を検知条件の入れる」を表示すると共に、「チェックを入れない場合は単一ファイルに対する暗号化処理も検知対象に含まれます」との注意書きを表示する。ユーザーがチェックボタンをチェックすることに検知条件を変更することができる。
FIG. 38 is a setting screen for enabling the encryption processing for a plurality of files. The expression method of the setting screen in FIG. 38 is an example, and other expression methods may be used. In the setting screen, “Enter encryption processing for multiple files with detection conditions” is displayed after the check button, and “ If not, encryption processing for single files is also included in the detection target ”. The detection condition can be changed when the user checks the check button.

例えば、単一のファイルに対する暗号化処理を行う可能性のあるユーザー環境では、この検知条件がないと、正当な暗号化処理をランサムウェアによる処理と誤検知することとなる。このような誤検知、誤検知による過検知を発生させないようにすることができる。   For example, in a user environment where there is a possibility of performing encryption processing on a single file, if there is no such detection condition, legitimate encryption processing is erroneously detected as ransomware processing. Such erroneous detection and overdetection due to erroneous detection can be prevented from occurring.

(HookMoveFileによるコントロール)
HookMoveFileは、MoveFile(MoveFileA、MoveFileW、MoveFileExA、MoveFileExW)(ファイル移動関数)をフックするWindows API関数である。
(Control by HookMoveFile)
HookMoveFile is a Windows API function that hooks MoveFile (MoveFileA, MoveFileW, MoveFileExA, MoveFileExW) (file move function).

ReadFile(ファイル読出関数)をフックするHookReadFile、WriteFile(ファイル書込関数)をフックするHookWriteFileに加えて、HookMoveFileによりMoveFile(ファイル移動関数)をフックするようにして、ランサムウェアの検出精度を向上させる。   In addition to HookReadFile hooking ReadFile (file read function) and HookWriteFile hooking WriteFile (file write function), HookMoveFile hooks MoveFile (file move function) to improve ransomware detection accuracy.

MoveFileは、ファイルの移動及びファイル名の変更を行うためのWindows API関数である。図39に示すように、MoveFileの第一引数は移動元のファイルパス(ファイル名)であり、第二引数は移動先のファイルパス(ファイル名)である。   MoveFile is a Windows API function for moving files and changing file names. As shown in FIG. 39, the first argument of MoveFile is the file path (file name) of the movement source, and the second argument is the file path (file name) of the movement destination.

MoveFileの第一引数と第二引数のファイル名を除くファイルパスが異なる場合は、「ファイルの移動」の処理になる。MoveFileの第一引数と第二引数のファイル名を除くファイルパスが同じ場合は、実質的に「ファイル名の変更」の処理となる。   If the file path excluding the file name of MoveFile's first argument and the second argument is different, the process is "Move File". If the file path excluding the file name of MoveFile is the same as that of the second argument, the process is essentially “change file name”.

ランサムウェアには、暗号化対象のファイル名を暗号化後に変更するものがある。これは、暗号化ファイルの元ファイル名を判断不能にするためであり、ファイルの中身だけではなくファイル名も同時に暗号化処理を行う。   Some ransomware changes the file name to be encrypted after encryption. This is to make it impossible to determine the original file name of the encrypted file, and not only the contents of the file but also the file name are simultaneously encrypted.

そのようなランサムウェアは、図40に示すように、ファイルの暗号化処理が行われた直後にMoveFileを呼び出すことで、ファイル名の暗号化も併せて行う。その流れを検知することで、ランサムウェアによるファイル名の暗号化挙動を本発明プログラムが把握することを可能にする。   As shown in FIG. 40, such ransomware also performs encryption of the file name by calling MoveFile immediately after the file encryption process is performed. By detecting the flow, the program of the present invention can grasp the encryption behavior of the file name by the ransomware.

図40に示すように、FindNextFileを呼び出し、その場所の次のファイルの情報を取得する。続いて、CreateFile、ReadFile、WriteFileを呼び出し、そのファイルの暗号化処理を行う。続いて、MoveFileを呼び出し、そのファイルのファイル名を暗号化している。図40では、MoveFileにより、暗号化されたファイル"ABS.pdf"のファイル名が"g1d4fr.vvv"に変更されている。   As shown in FIG. 40, FindNextFile is called to obtain information on the next file at that location. Subsequently, CreateFile, ReadFile, and WriteFile are called and the files are encrypted. Next, MoveFile is called to encrypt the file name. In FIG. 40, the file name of the encrypted file “ABS.pdf” is changed to “g1d4fr.vvv” by MoveFile.

このようなファイル名の暗号化処理を検出するために、MoveFileをフックして監視する。MoveFileをフックするHookMoveFileは、呼び出されると通常のMoveFileの動作に加えて、本発明プログラムに対して次の情報(a)〜(c)を通知する。   In order to detect such file name encryption processing, MoveFile is hooked and monitored. When called, HookMoveFile that hooks MoveFile notifies the program of the present invention the following information (a) to (c) in addition to the normal operation of MoveFile.

通知手段としては、プロセス間通信等、プロセスの動作に大きな遅延を発生させない程度の高速な手法が望ましい。ソケット通信やファイルによる受け渡し等でも、高速に実現できる環境であれば、いかなる方法でもよい。
(a)通知元API名。フックするWindows API関数の名前であるMoveFileである。
(b)自身のプロセスID。フックするMoveFileを呼び出す監視対象プロセスのプロセスIDである。
(c)通知元APIであるMoveFileの第一引数と第二引数で指定されたファイルパス。
As the notification means, a high-speed method that does not cause a large delay in the operation of the process, such as inter-process communication, is desirable. Any method may be used as long as the environment can be realized at high speed, such as socket communication or file delivery.
(A) Notification source API name. MoveFile, the name of the Windows API function to hook.
(B) its own process ID; This is the process ID of the monitored process that calls MoveFile to hook.
(C) File path specified by the first argument and the second argument of MoveFile which is the notification source API.

したがって、HookReadFile、HookWriteFileによりランサムウェアが検知されたことを条件として、その暗号化処理の後に、MoveFileが呼び出され、かつ、MoveFileの第一引数と第二引数のパス(ファイルパスからファイル名を除いたファイルパス)が同一であるかどうかを確認することにより、ファイル名に対する暗号化処理が行われていることを判断することができる。   Therefore, on the condition that ransomware is detected by HookReadFile and HookWriteFile, MoveFile is called after the encryption process, and the path of the first argument and the second argument of MoveFile (excluding the file name from the file path) It is possible to determine that the encryption process for the file name is being performed by confirming whether the file paths are the same.

上記を判断するためには、例えば、HookReadFile、HookWriteFileが、それぞれ、本発明プログラムに対して通知する(a)通知元API名、(b)プロセスID、(c)ファイルパス、MoveFileが、それぞれ、本発明プログラムに対して通知する(a)通知元API名、(b)プロセスID、(c)第一引数のファイルパス、(d)第二引数のファイルパスを、通知記録データに記録しておき、その通知記録データに基づいて判断する。   In order to determine the above, for example, HookReadFile and HookWriteFile respectively notify (a) a notification source API name, (b) a process ID, (c) a file path, and MoveFile respectively notified to the program of the present invention. (A) Notification source API name, (b) Process ID, (c) File path of the first argument, (d) File path of the second argument are recorded in the notification record data. The determination is made based on the notification record data.

図41に通知記録データの具体例を示す。   FIG. 41 shows a specific example of the notification record data.

図41の通知記録データには、第4〜6行、第10〜12行に、ReadFileのプロセスID"pid:1568"、ファイルパス"C:\Users\user\Documents\schedule.xls"の記録があり、第7〜9行、第13〜15行に、WriteFileのプロセスID"pid:1568"、ファイルパス"C:\Users\user\Documents\schedule.xls"の記録があり、第16〜19行に、MoveFileのプロセスID"pid:1568"、第一引数ファイルパス"C:\Users\user\Documents\schedule.xls"、第二引数ファイルパス"C:\Users\user\Documents\g1d4fr6ps.vvv"の記録がある。   In the notification record data of FIG. 41, the ReadFile process ID “pid: 1568” and the file path “C: \ Users \ user \ Documents \ schedule.xls” are recorded in the 4th to 6th lines and the 10th to 12th lines. In lines 7-9 and 13-15, there is a record of WriteFile process ID “pid: 1568” and file path “C: \ Users \ user \ Documents \ schedule.xls”. Line 19 contains MoveFile process ID "pid: 1568", first argument file path "C: \ Users \ user \ Documents \ schedule.xls", second argument file path "C: \ Users \ user \ Documents \ g1d4fr6ps There is a record of ".vvv".

MoveFileのプロセスIDは、ReadFileとWriteFileのプロセスIDと同一であり、MoveFileの第一引数のファイルパスは、ReadFileとWriteFileのファイルパスと同一であり、MoveFileの第1引数のパスと第2引数のパスは同一である。WriteFileによりファイル"schedule.xls"のヘッダが変更されたことが検出された場合には、"schedule.xls"が暗号化処理され、かつ、"schedule.xls"のファイル名も"g1d4fr6ps.vvv"に暗号化処理されていると判断する。   The process ID of MoveFile is the same as the process ID of ReadFile and WriteFile, the file path of the first argument of MoveFile is the same as the file path of ReadFile and WriteFile, the path of the first argument and the second argument of MoveFile The path is the same. If it is detected by WriteFile that the header of the file "schedule.xls" has been changed, "schedule.xls" is encrypted and the file name of "schedule.xls" is also "g1d4fr6ps.vvv" Is determined to be encrypted.

図41の通知記録データには、更に、第22〜37行に、同じフォルダ
"C:\Users\user\Documents\"内のファイル"description.doc"に対して同様な処理を行っていることが記録されている。WriteFileによりファイル"description.doc"のヘッダが変更されたことが検出された場合には、"description.doc"が暗号化処理され、かつ、"description.doc"のファイル名も"p6dfg7p4.vvv"暗号化処理されていると判断する。
The notification record data in FIG. 41 further includes the same folder in the 22nd to 37th lines.
It is recorded that the same processing is performed on the file "description.doc" in "C: \ Users \ user \ Documents \". When it is detected that the header of the file “description.doc” has been changed by WriteFile, “description.doc” is encrypted, and the file name of “description.doc” is also “p6dfg7p4.vvv” It is determined that encryption processing has been performed.

ファイルに対する暗号化処理を検知した上で、ファイル名の変更が行われていることを検知した場合、本発明プログラムは、その情報をユーザーに示して、ランサムウェアによる暗号化処理に対する検知挙動の精度をコントロールすることができる。   When it is detected that the file name has been changed after detecting the encryption process for the file, the program of the present invention shows the information to the user, and the accuracy of the detection behavior for the encryption process by the ransomware Can be controlled.

図42は、ファイル名の変化を検知した場合に警告するか否かの設定画面である。図42の設定画面の表現方法は一例であり、他の表現方法でもよい
設定画面では、チェックボタンの後に「「ファイル名の変化」を検知条件に入れる」を表示すると共に、「チェックを入れない場合はファイル名が変化しない暗号化処理も検知対象に含まれます」「チェックを入れた場合はファイル名の変化に関する情報が検知時に表示され、対処を選択可能となります」との注意書きを表示する。ユーザーがチェックボタンをチェックすることで警告するか否かを設定することができる。
FIG. 42 is a setting screen for determining whether or not to warn when a change in file name is detected. The expression method of the setting screen in FIG. 42 is an example, and other expression methods may be used. On the setting screen, “Add“ Change in file name ”to the detection condition” is displayed after the check button and “Do not check” is displayed. If the check box is checked, information about the change in the file name will be displayed at the time of detection, and the action can be selected. " To do. It is possible to set whether or not to warn the user by checking the check button.

図43は、ファイル内容が改変され、かつ、ファイル名が改変された場合の警告画面である。慎重なユーザーはこの情報を元にどう対処するかを選択できユーザビリティが向上するとともに、誤検知、誤検知による過検知のコントロールも可能となる。   FIG. 43 shows a warning screen when the file content is modified and the file name is modified. Careful users can select how to deal with this information and improve usability, as well as control over-detection due to false positives and false positives.

警告画面では「以下のプロセスがテキストファイルの改変挙動を行っています。どう処理しますか。」と尋ね、「プロセス:AAAA.exe」、「該当挙動:ファイル内容の改変、ファイル名の改変、「d1g2r.vvv」に変更しようとしています」、「「対象ファイル:C:\Users\test\Document\BBB.pdf」を示す。   The warning screen asks "The following process is changing the text file. How do you handle it?", "Process: AAAA.exe", "Applicable behavior: File content modification, file name modification, "I am going to change to" d1g2r.vvv "", "" Target file: C: \ Users \ test \ Document \ BBB.pdf ".

更に、その対応処理の選択ボタン「プロセスを終了」、「この警告を放置」、「プロセスを除外に追加」を示す。   Furthermore, the corresponding process selection buttons “end process”, “leave this warning”, and “add process to exclusion” are shown.

ユーザーが「プロセスを終了」を選択した場合には、プロセス"AAAA.exe"を直ちに終了させる。ユーザーが、そのプロセスをランサムウェアであると判断した場合である。   If the user selects “End Process”, the process “AAAA.exe” is immediately ended. This is when the user determines that the process is ransomware.

ユーザーが「この警告を放置」を選択した場合には、プロセス"AAAA.exe"を終了させることなく、そのまま処理を続行する。ユーザーが、そのプロセスをランサムウェアであるか否か判断できない又は判断を保留する場合である。   If the user selects “Leave this warning”, the process continues without terminating the process “AAAA.exe”. This is the case when the user cannot determine whether the process is ransomware or withholds the determination.

ユーザーが「プロセスを除外に追加」を選択した場合には、プロセス"AAAA.exe"を、前述した「除外リスト」に追加し、同じプロセスに対する警告を再度行わないようにする。ユーザーが、そのプロセスはランサムウェアでないと判断した場合である。   When the user selects “Add Process to Exclude”, the process “AAAA.exe” is added to the “Exclusion List” described above so that the same process is not warned again. If the user determines that the process is not ransomware.

[第2実施形態]
本発明の第2実施形態によるプログラム、情報処理装置及び情報処理方法について図44乃至図51を用いて説明する。
[Second 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.

本発明の第1実施形態は、主なランサムウェアの挙動を分析して共通部分を洗い出し、そこから確実に不正であると判断できる挙動を検知・防御するものである。しかしながら、分析したランサムウェアによる手法でなくても、ファイルの暗号化処理は可能である。   The first embodiment of the present invention analyzes the behavior of main ransomware, identifies common parts, and detects and protects behaviors that can be determined to be illegal from there. However, file encryption processing is possible without using the analyzed ransomware method.

そこで、本願発明者等は、分析したランサムウェア以外の想定しうる挙動を検出することにより、未知のランサムウェアを確実に検出し、ランサムウェアによる攻撃を有効に阻止することができると考え、本実施形態を着想するに至った。   Therefore, the inventors of the present application believe that by detecting possible behavior other than the analyzed ransomware, it is possible to reliably detect unknown ransomware and effectively prevent attacks by ransomware. I came up with an embodiment.

本願発明者等が想定した暗号化手法について説明する。図44に本願発明者等が想定した暗号化手法を示す。   An encryption method assumed by the inventors of the present application will be described. FIG. 44 shows an encryption method assumed by the inventors of the present application.

あるファイルAを暗号化対象とした場合、本発明の第1実施形態では、暗号化されたファイルは元のファイルに直接上書き処理している。しかしながら、直接上書き処理しなくても、暗号化されたファイルを元のファイルが存在したフォルダに存在する状態にすることができる。   When a certain file A is to be encrypted, in the first embodiment of the present invention, the encrypted file is directly overwritten on the original file. However, the encrypted file can be made to exist in the folder in which the original file existed without directly overwriting.

図44の暗号化方法について、ステップの番号順に説明する。
(ステップ1):ReadFileにより、ファイルAを読み込みメモリ23上で暗号化する。
(ステップ2):メモリ23上のファイルAの暗号化されたデータを、WriteFileにより、任意の場所にファイルBとして作成する。
(ステップ3−A):暗号化されたファイルBを、MoveFileにより、ファイル名をファイルCに変更する。
(ステップ3−B):暗号化されたファイルBを、MoveFileにより、ファイル名をファイルAに変更し、ファイルAが存在したフォルダに移動することでファイルAを上書きする。
(ステップ4):MoveFileにより、ファイルCをファイルAが存在したフォルダに移動する。
(ステップ5):DeleteFileにより、ファイルAを削除する。
The encryption method of FIG. 44 will be described in the order of step numbers.
(Step 1): The file A is read and encrypted on the memory 23 by ReadFile.
(Step 2): The encrypted data of the file A on the memory 23 is created as a file B at an arbitrary location by WriteFile.
(Step 3-A): The file name of the encrypted file B is changed to the file C by MoveFile.
(Step 3-B): The file name of the encrypted file B is changed to File A by MoveFile, and the file A is overwritten by moving to the folder where the file A exists.
(Step 4): The file C is moved to the folder in which the file A exists by MoveFile.
(Step 5): File A is deleted by DeleteFile.

ステップ5の後は、ファイルAが存在したフォルダに、暗号化されたファイルAのファイル名がファイルCに変更された「状態1」となる。   After step 5, the state where the file name of the encrypted file A is changed to the file C in the folder in which the file A exists is changed to “state 1”.

ステップ3−Bの後は、ファイルAが存在したフォルダに、暗号化されたファイルAが存在する「状態2」となる。   After step 3-B, the state where the encrypted file A exists in the folder in which the file A exists becomes “state 2”.

図45に暗号化方法の複数のケースを示す。   FIG. 45 shows a plurality of cases of the encryption method.

暗号化方法のケース1は、ステップ1、ステップ2、ステップ3−A、ステップ4、ステップ5の順番に進行し、状態1となるケースである。   Case 1 of the encryption method is a case in which the process proceeds in the order of Step 1, Step 2, Step 3-A, Step 4, and Step 5 and becomes State 1.

暗号化方法のケース1は、ステップ1、ステップ2、ステップ3−Bの順番に進行し、状態2となるケースである。   Case 1 of the encryption method is a case in which the process proceeds in the order of Step 1, Step 2, and Step 3-B and enters State 2.

本実施形態では、例えば、ケース1、ケース2を検知することにより、分析したランサムウェア以外の想定しうる挙動を検出するようにする。   In the present embodiment, for example, by detecting Case 1 and Case 2, an assumed behavior other than the analyzed ransomware is detected.

なお、「状態1」「状態2」となるための挙動はケース1、ケース2に限らないが、そのような別のケースについても、後述する検知方法と同様の方法により検知することが可能である。   Note that the behavior to become “state 1” and “state 2” is not limited to case 1 and case 2, but such other cases can be detected by a method similar to the detection method described later. is there.

本実施形態においても、第1実施形態におけるHookReadFile、HookWriteFileによる暗号化処理を検知する。本実施形態では、それに加えて、MoveFile(MoveFileA、MoveFileW、MoveFileExA、MoveFileExW)(ファイル移動関数)をフックするHookMoveFileや、DeleteFile(ファイル削除関数)をフックするHookDeleteFileを用いる。   Also in this embodiment, the encryption processing by HookReadFile and HookWriteFile in the first embodiment is detected. In the present embodiment, in addition to that, HookMoveFile that hooks MoveFile (MoveFileA, MoveFileW, MoveFileExA, MoveFileExW) (file move function) and HookDeleteFile that hooks DeleteFile (file delete function) are used.

そして、HookReadFile、HookWriteFile、HookDeleteFileが、それぞれ、本発明プログラムに対して(a)通知元API名、(b)プロセスID、(c)ファイルパスを通知し、HookMoveFileが、本発明プログラムに対して(a)通知元API名、(b)プロセスID、(c)第一引数のファイルパス、(d)第二引数のファイルパスを通知する。本発明プログラムに通知された、これらデータは、適宜、所定のリストに記録する。   Then, HookReadFile, HookWriteFile, and HookDeleteFile respectively notify (a) the notification source API name, (b) process ID, (c) file path to the program of the present invention, and HookMoveFile notifies the program of the present invention ( a) Notification source API name, (b) Process ID, (c) File path of first argument, (d) File path of second argument are notified. These data notified to the program of the present invention are appropriately recorded in a predetermined list.

(ケース1の検知)
図48に、ケース1の検知の事前処理を示す。
(Detection of Case 1)
FIG. 48 shows pre-processing for detection of case 1.

本発明プログラムに対して、HookReadFileから通知される、(a)通知元API名、(b)プロセスID、(c)ファイルパスを、リストAとして記録する。   For the program of the present invention, (a) the notification source API name, (b) the process ID, and (c) the file path notified from HookReadFile are recorded as a list A.

本発明プログラムに対して、HookWriteFileから通知される、(a)通知元API名、(b)プロセスID、(c)ファイルパスを、リストBとして記録する。   For the program of the present invention, (a) a notification source API name, (b) a process ID, and (c) a file path notified from HookWriteFile are recorded as a list B.

本発明プログラムに対して、HookMoveFileから通知される、(a)通知元API名、(b)プロセスID、(c)第一引数のファイルパス、(d)第二引数のファイルパスを、リストCとして記録する。   For the program of the present invention, a list C shows (a) the notification source API name, (b) the process ID, (c) the file path of the first argument, and (d) the file path of the second argument, which are notified from the HookMoveFile. Record as.

ケース1の検知条件を次に示す。   The detection conditions for Case 1 are as follows.

条件1:あるプロセスにより、DeleteFileが呼び出され、引数のファイルパス(削除対象のファイル)がリストAに含まれている。すなわち、HookDeleteFileから通知されるプロセスIDが、HookReadFileから通知されるプロセスIDと同一であり、かつ、HookDeleteFileから通知されるファイルパスがリストAに含まれている。   Condition 1: DeleteFile is called by a process, and an argument file path (a file to be deleted) is included in the list A. That is, the process ID notified from HookDeleteFile is the same as the process ID notified from HookReadFile, and the file path notified from HookDeleteFile is included in list A.

条件1の具体例を図47に示す。図47に示すように、あるプロセスにより、DeleteFileが呼び出され、引数のファイルパス"C:\DDD\CC.doc"がリストAに含まれている。   A specific example of condition 1 is shown in FIG. As shown in FIG. 47, DeleteFile is called by a certain process, and the file path “C: \ DDD \ CC.doc” of the argument is included in the list A.

この条件1は、あるプロセスが過去にReadFileで読み込んだことがあるファイルをDeleteFileにより削除しようとしていることを意味する。   This condition 1 means that a process is trying to delete a file that has been read by ReadFile in the past by DeleteFile.

条件2:DeleteFileの引数(削除対象ファイルの)のフォルダパスが、リストCの第二引数のフォルダパスと等しい。すなわち、HookDeleteFileから通知されるプロセスIDが、HookMoveFileから通知されるプロセスIDと同一であり、かつ、HookDeleteFileから通知されるファイルパスからファイル名を除いたパスが、リストCの第二引数からファイル名を除いたパスと同一である。   Condition 2: The folder path of the argument of DeleteFile (for the file to be deleted) is equal to the folder path of the second argument in list C. That is, the process ID notified from HookDeleteFile is the same as the process ID notified from HookMoveFile, and the path obtained by removing the file name from the file path notified from HookDeleteFile is the file name from the second argument of list C. It is the same as the path except for.

条件2の具体例を図48に示す。図48に示すように、DeleteFileの引数のフォルダパス"C:\DDD\"が、リストCの第二引数のフォルダパス"C:\DDD\"と等しい。   A specific example of condition 2 is shown in FIG. As shown in FIG. 48, the folder path “C: \ DDD \” of the argument of DeleteFile is equal to the folder path “C: \ DDD \” of the second argument of list C.

この条件2は、あるプロセスが削除しようとしているファイルの場所が、過去にそのプロセスが何らかのファイルを移動先として指定した記録があるということを意味する。   This condition 2 means that the location of a file that a certain process is trying to delete has a record in which the process has designated some file as a destination in the past.

条件3:MoveFileの第一引数のファイルが、リストBに含まれている。すなわち、HookWriteFileから通知されるプロセスIDが、HookMoveFileから通知されるプロセスIDと同一であり、かつ、HookMoveFileから通知される第一引数のファイルパスと同一である。   Condition 3: The file of the first argument of MoveFile is included in the list B. That is, the process ID notified from HookWriteFile is the same as the process ID notified from HookMoveFile, and the same file path as the first argument notified from HookMoveFile.

条件3の具体例を図49に示す。図49に示すように、MoveFileの第一引数のファイル"C:\XXX\VV.doc"が、リストBに含まれている。   A specific example of condition 3 is shown in FIG. As shown in FIG. 49, the first argument file “C: \ XXX \ VV.doc” of MoveFile is included in the list B.

この条件3は、あるプロセスが過去にWriteFileで書き込んだファイルを、MoveFileで移動させようとしていることを意味する。   Condition 3 means that a file written by WriteFile in the past is moved by MoveFile.

条件4:上記の条件2を満足したMoveFileの第一引数のファイルのヘッダが、第1の条件を満足したDeleteFileの引数のファイルのヘッダと異なる。   Condition 4: The header of the first argument file of MoveFile that satisfies the above condition 2 is different from the header of the file of the argument of DeleteFile that satisfies the first condition.

条件4の具体例を図50に示す。図50に示すように、MoveFileの第一引数のファイル"C:\DDD\CC.doc"のヘッダが、第1の条件を満足したDeleteFileの引数のファイル"C:\XXX\VV.doc"のヘッダと異なる。   A specific example of condition 4 is shown in FIG. As shown in FIG. 50, the header of the first argument file “C: \ DDD \ CC.doc” of MoveFile is the file “C: \ XXX \ VV.doc” of the argument of DeleteFile that satisfies the first condition. Different from the header.

この条件4は、第1実施形態におけるファイルのヘッダの相違の判断条件と同じである。   The condition 4 is the same as the determination condition for the difference in file header in the first embodiment.

(ケース2の検知)
図51に、ケース2の検知の事前処理を示す。
(Detection of Case 2)
FIG. 51 shows pre-processing for detection of case 2.

本発明プログラムに対して、HookReadFileから通知される、(a)通知元API名、(b)プロセスID、(c)ファイルパスを、リストAとして記録する。   For the program of the present invention, (a) the notification source API name, (b) the process ID, and (c) the file path notified from HookReadFile are recorded as a list A.

本発明プログラムに対して、HookWriteFileから通知される、(a)通知元API名、(b)プロセスID、(c)ファイルパスを、リストBとして記録する。   For the program of the present invention, (a) a notification source API name, (b) a process ID, and (c) a file path notified from HookWriteFile are recorded as a list B.

ケース2の検知条件を次に示す。   The detection conditions for Case 2 are as follows.

条件1:あるプロセスにより、MoveFileが呼び出され、第二引数のファイルパスがリストAに含まれている。すなわち、HookMoveFileから通知されるプロセスIDが、HookReadFileから通知されるプロセスIDと同一であり、かつ、HookMoveFileから通知される第二引数のファイルパスがリストAに含まれている。   Condition 1: MoveFile is called by a process, and the file path of the second argument is included in the list A. That is, the process ID notified from HookMoveFile is the same as the process ID notified from HookReadFile, and the file path of the second argument notified from HookMoveFile is included in list A.

この条件1は、このプロセスが過去にReadFileで読み込んだ事があるファイルを何らかのファイルで上書きしようとしていることを意味する。   This condition 1 means that this process is trying to overwrite a file that has been read by ReadFile in the past with some file.

条件2:その際、MoveFileの第一引数のファイルパスが、リストBに含まれている。すなわち、HookMoveFileから通知されるプロセスIDが、HookWriteFileから通知されるプロセスIDと同一であり、かつ、HookMoveFileから通知される第一引数のファイルパスがリストBに含まれている。   Condition 2: At this time, the file path of the first argument of MoveFile is included in the list B. That is, the process ID notified from HookMoveFile is the same as the process ID notified from HookWriteFile, and the file path of the first argument notified from HookMoveFile is included in list B.

この条件2は、このプロセスが過去にWriteFileで書き込んだことがあるファイルを、移動させようとしていることを意味する。   This condition 2 means that this process is going to move a file that has been written by WriteFile in the past.

条件3:MoveFileの第一引数のファイルのヘッダが、第二引数のファイルのヘッダと異なる。   Condition 3: The header of the first argument file of MoveFile is different from the header of the file of the second argument.

この条件3は、第1実施形態におけるファイルのヘッダの相違の判断条件と同じである。   Condition 3 is the same as the condition for determining the difference in file headers in the first embodiment.

[変形実施形態]
本発明は上記実施形態に限らず種々の変形が可能である。
[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. Ransomware attacks against each operating system can be reliably and effectively prevented.

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 (16)

コンピューターを、
所定のプロセスから呼び出されるファイル書込関数がデータを書き込むファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル読出関数が既に呼び出されているという第1の条件と、前記ファイル書込関数が、前記ファイルパスのファイルのヘッダを書き換えるという第2の条件とを満足する場合に、前記所定のプロセスをランサムウェアと判断する判断部
として機能させるためのプログラム。
Computer
A first condition that a file read function is already called from the predetermined process with respect to a file path that is the same as a file path in which a file write function called from a predetermined process writes data; and the file write A program for causing a function to function as a determination unit that determines that the predetermined process is ransomware when a function satisfies a second condition of rewriting a header of a file in the file path.
請求項1記載のプログラムにおいて、
前記判断部は、
前記第1の条件及び前記第2の条件に加えて、前記ファイルパスのファイルがヘッダを有しないテキストファイルであるという第3の条件とを満足する場合には、前記所定のプロセスをランサムウェアとして処理するか否かの処理の選択肢をユーザーに提示する
ことを特徴とするプログラム。
The program according to claim 1,
The determination unit
In addition to the first condition and the second condition, when the third condition that the file of the file path is a text file having no header is satisfied, the predetermined process is set as ransomware. A program characterized by presenting the user with processing options for processing or not.
請求項1又は2記載のプログラムにおいて、
前記判断部は、
前記第1の条件及び前記第2の条件に加えて、前記所定のプロセスから、前記ファイル書込関数の呼び出しの前に、前記ファイルパスに含まれるパスと同一のパスにおける他のファイルを検索するファイル検索関数が呼びだされているという第4の条件とを満足する場合に、前記所定のプロセスをランサムウェアと判断する
ことを特徴とするプログラム。
The program according to claim 1 or 2,
The determination unit
In addition to the first condition and the second condition, another file in the same path as the path included in the file path is searched from the predetermined process before the file write function is called. A program characterized in that, when the fourth condition that a file search function is called is satisfied, the predetermined process is determined as ransomware.
請求項1乃至3のいずれか1項に記載のプログラムにおいて、
前記判断部は、
前記第1の条件及び前記第2の条件に加えて、前記所定のプロセスから、前記ファイル書込関数の呼び出しの後に、前記ファイルパスに含まれるパスと同一のパスを移動元のパスとし、前記ファイルパスに含まれるパスと同一のパスを移動元のパスとするファイル移動関数が呼びだされているという第5の条件を満足する場合に、前記所定のプロセスをランサムウェアと判断する
ことを特徴とするプログラム。
The program according to any one of claims 1 to 3,
The determination unit
In addition to the first condition and the second condition, after calling the file write function from the predetermined process, the same path as the path included in the file path is set as a movement source path, The predetermined process is determined to be ransomware when the fifth condition that a file movement function is called with the same path as the path included in the file path being called is satisfied. Program.
コンピューターを、
所定のプロセスから呼び出されるファイル削除関数が削除するファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル読出関数が既に呼び出されているという第1の条件と、前記所定のプロセスから呼び出される前記ファイル削除関数が削除する前記ファイルパスと同一のファイルパスを移動先とする第1のファイル移動関数が既に呼び出されているという第2の条件と、前記所定のプロセスから呼び出される第2のファイル移動関数の移動元のファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル書込関数が既に呼び出されているという第3の条件と、前記第1のファイル移動関数の移動元のファイルパスのファイルのヘッダと、前記ファイル削除関数が削除する前記ファイルパスのファイルのヘッダとが相違しているという第4の条件とを満足する場合に、前記所定のプロセスをランサムウェアと判断する判断部
として機能させるためのプログラム。
Computer
The first condition that the file read function is already called from the predetermined process for the same file path as the file path to be deleted by the file deletion function called from the predetermined process, and the file deletion function called from the predetermined process. The second condition that the first file movement function having the same file path as the file path to be deleted by the file deletion function to be deleted has already been called, and the second condition called from the predetermined process A third condition that the file write function has already been called from the predetermined process for the same file path as the file path of the file move function, and the move source of the first file move function And the file path file to be deleted by the file deletion function. In the case where the Le header satisfies the fourth condition that is different from a program for causing a predetermined process as a determining section for determining a ransomware.
コンピューターを、
所定のプロセスから呼び出されるファイル移動関数の移動先のファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル読出関数が既に呼び出されているという第1の条件と、前記ファイル移動関数の移動元のファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル書込関数が既に呼び出されているという第2の条件と、前記ファイル移動関数の移動元のファイルパスのファイルのヘッダと、前記ファイル移動関数の移動先のファイルパスのファイルのヘッダとが相違しているという第3の条件とを満足する場合に、前記所定のプロセスをランサムウェアと判断する判断部
として機能させるためのプログラム。
Computer
A first condition that a file read function is already called from the predetermined process for a file path that is the same as a destination file path of a file move function called from a predetermined process; A second condition that a file write function has already been called from the predetermined process for the same file path as the source file path, and a file header of the source file path of the file move function And the third condition that the file header of the file path to which the file movement function is moved is different from each other in order to function as a determination unit that determines the predetermined process as ransomware Program.
コンピューターに、
所定のプロセスから呼び出されるファイル書込関数がデータを書き込むファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル読出関数が既に呼び出されているという第1の条件と、前記ファイル書込関数が、前記ファイルパスのファイルのヘッダを書き換えるという第2の条件とを満足する場合に、前記所定のプロセスをランサムウェアと判断する手順
を実行させるためのプログラム。
On the computer,
A first condition that a file read function is already called from the predetermined process with respect to a file path that is the same as a file path in which a file write function called from a predetermined process writes data; and the file write A program for executing a procedure for determining that the predetermined process is ransomware when a function satisfies a second condition of rewriting a header of a file of the file path.
コンピューターに、
所定のプロセスから呼び出されるファイル削除関数が削除するファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル読出関数が既に呼び出されているという第1の条件と、前記所定のプロセスから呼び出される前記ファイル削除関数が削除する前記ファイルパスと同一のファイルパスを移動先とする第1のファイル移動関数が既に呼び出されているという第2の条件と、前記所定のプロセスから呼び出される第2のファイル移動関数の移動元のファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル書込関数が既に呼び出されているという第3の条件と、前記第1のファイル移動関数の移動元のファイルパスのファイルのヘッダと、前記ファイル削除関数が削除する前記ファイルパスのファイルのヘッダとが相違しているという第4の条件とを満足する場合に、前記所定のプロセスをランサムウェアと判断する手順
を実行させるためのプログラム。
On the computer,
The first condition that the file read function is already called from the predetermined process for the same file path as the file path to be deleted by the file deletion function called from the predetermined process, and the file deletion function called from the predetermined process. The second condition that the first file movement function having the same file path as the file path to be deleted by the file deletion function to be deleted has already been called, and the second condition called from the predetermined process A third condition that the file write function has already been called from the predetermined process for the same file path as the file path of the file move function, and the move source of the first file move function And the file path file to be deleted by the file deletion function. In the case where the Le header satisfies the fourth condition that is different from a program for executing the steps of determining the predetermined process and ransomware.
コンピューターに、
所定のプロセスから呼び出されるファイル移動関数の移動先のファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル読出関数が既に呼び出されているという第1の条件と、前記ファイル移動関数の移動元のファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル書込関数が既に呼び出されているという第2の条件と、前記ファイル移動関数の移動元のファイルパスのファイルのヘッダと、前記ファイル移動関数の移動先のファイルパスのファイルのヘッダとが相違しているという第3の条件とを満足する場合に、前記所定のプロセスをランサムウェアと判断する手順
を実行させるためのプログラム。
On the computer,
A first condition that a file read function is already called from the predetermined process for a file path that is the same as a destination file path of a file move function called from a predetermined process; A second condition that a file write function has already been called from the predetermined process for the same file path as the source file path, and a file header of the source file path of the file move function And a third condition that the file header of the file path to which the file movement function is moved are different from each other, the procedure for determining the predetermined process as ransomware is executed. program.
請求項1乃至9のいずれか1項に記載のプログラムを記録したコンピューター読み取り可能な記録媒体。   The computer-readable recording medium which recorded the program of any one of Claims 1 thru | or 9. 所定のプロセスから呼び出されるファイル書込関数がデータを書き込むファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル読出関数が既に呼び出されているという第1の条件と、前記ファイル書込関数が、前記ファイルパスのファイルのヘッダを書き換えるという第2の条件とを満足する場合に、前記所定のプロセスをランサムウェアと判断する判断部
を有することを特徴とする情報処理装置。
A first condition that a file read function is already called from the predetermined process with respect to a file path that is the same as a file path in which a file write function called from a predetermined process writes data; and the file write An information processing apparatus comprising: a determination unit that determines that the predetermined process is ransomware when a function satisfies a second condition of rewriting a file header of the file path.
所定のプロセスから呼び出されるファイル削除関数が削除するファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル読出関数が既に呼び出されているという第1の条件と、前記所定のプロセスから呼び出される前記ファイル削除関数が削除する前記ファイルパスと同一のファイルパスを移動先とする第1のファイル移動関数が既に呼び出されているという第2の条件と、前記所定のプロセスから呼び出される第2のファイル移動関数の移動元のファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル書込関数が既に呼び出されているという第3の条件と、前記第1のファイル移動関数の移動元のファイルパスのファイルのヘッダと、前記ファイル削除関数が削除する前記ファイルパスのファイルのヘッダとが相違しているという第4の条件とを満足する場合に、前記所定のプロセスをランサムウェアと判断する判断部
を有することを特徴とする情報処理装置。
The first condition that the file read function is already called from the predetermined process for the same file path as the file path to be deleted by the file deletion function called from the predetermined process, and the file deletion function called from the predetermined process. The second condition that the first file movement function having the same file path as the file path to be deleted by the file deletion function to be deleted has already been called, and the second condition called from the predetermined process A third condition that the file write function has already been called from the predetermined process for the same file path as the file path of the file move function, and the move source of the first file move function And the file path file to be deleted by the file deletion function. In the case where the Le header satisfies the fourth condition that is different from the information processing apparatus characterized by having a determining section for determining the predetermined process and ransomware.
所定のプロセスから呼び出されるファイル移動関数の移動先のファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル読出関数が既に呼び出されているという第1の条件と、前記ファイル移動関数の移動元のファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル書込関数が既に呼び出されているという第2の条件と、前記ファイル移動関数の移動元のファイルパスのファイルのヘッダと、前記ファイル移動関数の移動先のファイルパスのファイルのヘッダとが相違しているという第3の条件とを満足する場合に、前記所定のプロセスをランサムウェアと判断する判断部
を有することを特徴とする情報処理装置。
A first condition that a file read function is already called from the predetermined process for a file path that is the same as a destination file path of a file move function called from a predetermined process; A second condition that a file write function has already been called from the predetermined process for the same file path as the source file path, and a file header of the source file path of the file move function And a determination unit that determines that the predetermined process is ransomware when the file transfer function satisfies a third condition that a file header of a file path of a transfer destination is different. A characteristic information processing apparatus.
所定のプロセスから呼び出されるファイル書込関数がデータを書き込むファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル読出関数が既に呼び出されているという第1の条件と、前記ファイル書込関数が、前記ファイルパスのファイルのヘッダを書き換えるという第2の条件とを満足する場合に、前記所定のプロセスをランサムウェアと判断する
ことを特徴とする情報処理方法。
A first condition that a file read function is already called from the predetermined process with respect to a file path that is the same as a file path in which a file write function called from a predetermined process writes data; and the file write An information processing method comprising: determining a predetermined process as ransomware when a function satisfies a second condition of rewriting a header of a file of the file path.
所定のプロセスから呼び出されるファイル削除関数が削除するファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル読出関数が既に呼び出されているという第1の条件と、前記所定のプロセスから呼び出される前記ファイル削除関数が削除する前記ファイルパスと同一のファイルパスを移動先とする第1のファイル移動関数が既に呼び出されているという第2の条件と、前記所定のプロセスから呼び出される第2のファイル移動関数の移動元のファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル書込関数が既に呼び出されているという第3の条件と、前記第1のファイル移動関数の移動元のファイルパスのファイルのヘッダと、前記ファイル削除関数が削除する前記ファイルパスのファイルのヘッダとが相違しているという第4の条件とを満足する場合に、前記所定のプロセスをランサムウェアと判断する
ことを特徴とする情報処理方法。
The first condition that the file read function is already called from the predetermined process for the same file path as the file path to be deleted by the file deletion function called from the predetermined process, and the file deletion function called from the predetermined process. The second condition that the first file movement function having the same file path as the file path to be deleted by the file deletion function to be deleted has already been called, and the second condition called from the predetermined process A third condition that the file write function has already been called from the predetermined process for the same file path as the file path of the file move function, and the move source of the first file move function And the file path file to be deleted by the file deletion function. In the case where the Le header satisfies a fourth condition that are different, the information processing method characterized by determining said predetermined process and ransomware.
所定のプロセスから呼び出されるファイル移動関数の移動先のファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル読出関数が既に呼び出されているという第1の条件と、前記ファイル移動関数の移動元のファイルパスと同一のファイルパスに対して、前記所定のプロセスからファイル書込関数が既に呼び出されているという第2の条件と、前記ファイル移動関数の移動元のファイルパスのファイルのヘッダと、前記ファイル移動関数の移動先のファイルパスのファイルのヘッダとが相違しているという第3の条件とを満足する場合に、前記所定のプロセスをランサムウェアと判断する
ことを特徴とする情報処理方法。
A first condition that a file read function is already called from the predetermined process for a file path that is the same as a destination file path of a file move function called from a predetermined process; A second condition that a file write function has already been called from the predetermined process for the same file path as the source file path, and a file header of the source file path of the file move function And the third condition that the file header of the file path of the file transfer destination of the file transfer function is different, the predetermined process is determined to be ransomware. Processing method.
JP2016139145A 2016-07-14 2016-07-14 Program, information processing apparatus, and information processing method Active JP5996145B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2016139145A JP5996145B1 (en) 2016-07-14 2016-07-14 Program, information processing apparatus, and information processing method
US15/645,270 US10264002B2 (en) 2016-07-14 2017-07-10 Program, information processing device, and information processing method
US16/144,606 US11159541B2 (en) 2016-07-14 2018-09-27 Program, information processing device, and information processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016139145A JP5996145B1 (en) 2016-07-14 2016-07-14 Program, information processing apparatus, and information processing method

Publications (2)

Publication Number Publication Date
JP5996145B1 JP5996145B1 (en) 2016-09-21
JP2018010499A true JP2018010499A (en) 2018-01-18

Family

ID=56960921

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016139145A Active JP5996145B1 (en) 2016-07-14 2016-07-14 Program, information processing apparatus, and information processing method

Country Status (1)

Country Link
JP (1) JP5996145B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109376547A (en) * 2018-09-29 2019-02-22 北京邮电大学 Information protection method and system based on file path
JP2019169121A (en) * 2018-02-06 2019-10-03 エーオー カスペルスキー ラボAO Kaspersky Lab System and method for creating antivirus record

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10264002B2 (en) 2016-07-14 2019-04-16 Mitsui Bussan Secure Directions, Inc. Program, information processing device, and information processing method
JP6219550B1 (en) * 2017-05-19 2017-10-25 三井物産セキュアディレクション株式会社 Program, information processing apparatus, and information processing method
KR101883713B1 (en) * 2016-09-22 2018-07-31 주식회사 위드네트웍스 Apparatus and method for blocking ransome ware using access control to the contents file
CN106778267B (en) * 2016-11-24 2019-12-17 北京金山安全管理系统技术有限公司 Method and system for intercepting encrypted virus applied to computer file
MX2019006678A (en) * 2016-12-11 2019-12-16 Ensilo Ltd System and methods for detection of cryptoware.
EP3635603A4 (en) * 2017-05-30 2021-03-03 Cyemptive Technologies, Inc. Real-time detection of and protection from malware and steganography in a kernel mode
KR102145289B1 (en) * 2017-07-10 2020-08-28 한국전자통신연구원 Ransomware dectection appartus and operating method thereof

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2530210C2 (en) * 2012-12-25 2014-10-10 Закрытое акционерное общество "Лаборатория Касперского" System and method for detecting malware preventing standard user interaction with operating system interface
EP3038003B1 (en) * 2014-12-22 2020-08-19 Alcatel Lucent Method for protection against ransomware

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019169121A (en) * 2018-02-06 2019-10-03 エーオー カスペルスキー ラボAO Kaspersky Lab System and method for creating antivirus record
CN109376547A (en) * 2018-09-29 2019-02-22 北京邮电大学 Information protection method and system based on file path

Also Published As

Publication number Publication date
JP5996145B1 (en) 2016-09-21

Similar Documents

Publication Publication Date Title
JP5996145B1 (en) Program, information processing apparatus, and information processing method
US11159541B2 (en) Program, information processing device, and information processing method
US9824217B2 (en) Runtime detection of self-replicating malware
US20240012907A1 (en) Cloud based just in time memory analysis for malware detection
US6907396B1 (en) Detecting computer viruses or malicious software by patching instructions into an emulator
US20230222214A1 (en) Detection of exploitative program code
JP5265061B1 (en) Malicious file inspection apparatus and method
CA2856268C (en) Methods of detection of software exploitation
US20090038011A1 (en) System and method of identifying and removing malware on a computer system
JP4732484B2 (en) Exploit code analysis method and apparatus in non-executable file using virtual environment
US20080222215A1 (en) Method for Deleting Virus Program and Method to Get Back the Data Destroyed by the Virus
JP6170900B2 (en) File processing method and apparatus
WO2015081791A1 (en) Method and apparatus for scanning and removing kernel-level malware
US8448243B1 (en) Systems and methods for detecting unknown malware in an executable file
US10902122B2 (en) Just in time memory analysis for malware detection
JP5326063B1 (en) Malicious shellcode detection apparatus and method using debug events
May et al. Combating ransomware using content analysis and complex file events
JP5955475B1 (en) Program, information processing apparatus, and information processing method
JP6219550B1 (en) Program, information processing apparatus, and information processing method
JP4050253B2 (en) Computer virus information collection apparatus, computer virus information collection method, and program
JP2019095882A (en) Program and information processing device
US11170112B2 (en) Exploit detection via induced exceptions
US20240111860A1 (en) Systems and methods for preventing hollowing attack
KR20130078960A (en) Malicious code which exploit office software vulnerability activity-based diagnosis and blocking methods
JP2017134805A (en) Program, information processing device and information processing method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160715

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20160715

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20160816

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160823

R150 Certificate of patent or registration of utility model

Ref document number: 5996145

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