WO2023073821A1 - バックドア検知装置、バックドア検知方法、及び記録媒体 - Google Patents

バックドア検知装置、バックドア検知方法、及び記録媒体 Download PDF

Info

Publication number
WO2023073821A1
WO2023073821A1 PCT/JP2021/039604 JP2021039604W WO2023073821A1 WO 2023073821 A1 WO2023073821 A1 WO 2023073821A1 JP 2021039604 W JP2021039604 W JP 2021039604W WO 2023073821 A1 WO2023073821 A1 WO 2023073821A1
Authority
WO
WIPO (PCT)
Prior art keywords
backdoor
function flow
appearance frequency
frequency information
detection device
Prior art date
Application number
PCT/JP2021/039604
Other languages
English (en)
French (fr)
Inventor
講平 鑪
Original Assignee
日本電気株式会社
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 日本電気株式会社 filed Critical 日本電気株式会社
Priority to PCT/JP2021/039604 priority Critical patent/WO2023073821A1/ja
Publication of WO2023073821A1 publication Critical patent/WO2023073821A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements

Definitions

  • the present disclosure relates to a backdoor detection device, a backdoor detection method, and a recording medium.
  • Patent Document 1 discloses a backdoor detection device that analyzes the propagation status of confidential data in software and identifies source code that is presumed to be a backdoor.
  • An example of the purpose of the present disclosure is to provide a backdoor detection device capable of detecting a backdoor without complicated analysis.
  • a backdoor detection device includes pattern extraction means for extracting a function flow pattern from firmware program code, and frequency information acquisition means for acquiring appearance frequency information indicating the appearance frequency of the extracted function flow pattern. a backdoor determination means for determining whether or not a backdoor is included based on the obtained appearance frequency information; and an output means for outputting information indicating a result of determination by the backdoor determination means.
  • a backdoor detection method extracts a function flow pattern from a firmware program code, acquires frequency information indicating the frequency of occurrence of the extracted function flow pattern, and based on the acquired frequency information. determines whether or not a backdoor is included, and outputs information indicating the result of the determination.
  • a recording medium extracts a function flow pattern from a program code of firmware, acquires appearance frequency information indicating the appearance frequency of the extracted function flow pattern, and backs up based on the acquired appearance frequency information.
  • One example of the effects of the present disclosure is that it is possible to provide a backdoor detection device that can detect backdoors without complicated analysis.
  • FIG. 1 is a block diagram showing the configuration of the backdoor detection device according to the first embodiment.
  • FIG. 2 is a diagram showing a hardware configuration in which the backdoor detection device according to the first embodiment is implemented by a computer device and its peripheral devices.
  • FIG. 3 is a diagram for explaining the control flow in the first embodiment.
  • FIG. 4 is a diagram for explaining function flow patterns in the first embodiment.
  • FIG. 5 is a table for explaining appearance frequency information in the first embodiment.
  • FIG. 6 is a flow chart showing the operation of backdoor detection in the first embodiment.
  • FIG. 7 is a table for explaining appearance frequency information in the modification of the first embodiment.
  • FIG. 8 is a flow chart showing the operation of backdoor detection in the modification of the first embodiment.
  • FIG. 9 is a block diagram showing the configuration of the backdoor detection device according to the second embodiment.
  • FIG. 10 is a diagram for explaining the function flow specified in the second embodiment.
  • FIG. 11 is a flow chart showing the operation of backdoor detection in the second embodiment.
  • the backdoor detection device 100 in the first embodiment does not include an unauthorized function such as a backdoor in the firmware of the provided device. It is a device for detecting whether or not there is
  • information on functions dependent on external inputs is stored in advance in the storage device 505 .
  • the firmware to be detected may be pre-compiled source code or post-compiled binary code. In the following description, it is mainly assumed that the input firmware is binary code.
  • FIG. 1 is a block diagram showing the configuration of the backdoor detection device 100 according to the first embodiment.
  • backdoor detection device 100 includes pattern extraction unit 101 , frequency information acquisition unit 102 , backdoor determination unit 103 and output unit 104 .
  • the backdoor detection device 100 which is an essential component of this embodiment, will be described in detail below.
  • FIG. 2 is a diagram showing an example of a hardware configuration in which the backdoor detection device 100 according to the first embodiment of the present disclosure is realized by a computer device 500 including a processor.
  • the backdoor detection device 100 includes a memory such as a CPU (Central Processing Unit) 501, a ROM (Read Only Memory) 502, a RAM (Random Access Memory) 503, and a hard disk storing a program 504. It includes a storage device 505, a communication I/F (Interface) 508 for network connection, and an input/output interface 511 for inputting/outputting data.
  • the firmware program code acquired by the pattern extraction unit 101 is input to the backdoor detection device 100 via the input/output interface 511 .
  • the CPU 501 operates the operating system and controls the entire backdoor detection device 100 according to the first embodiment of the present invention. Also, the CPU 501 reads programs and data from a recording medium 506 mounted in a drive device 507 or the like to a memory. Further, the CPU 501 functions as the pattern extraction unit 101, the frequency information acquisition unit 102, the backdoor determination unit 103, the output unit 104, and some of them in the first embodiment, and performs the following operations based on the program shown in FIG. Execute the processes or instructions in the flow charts shown.
  • the recording medium 506 is, for example, an optical disk, a flexible disk, a magneto-optical disk, an external hard disk, or a semiconductor memory.
  • a part of the recording medium of the storage device is a non-volatile storage device, in which programs are recorded.
  • the program may be downloaded from an external computer (not shown) connected to a communication network.
  • the input device 509 is realized by, for example, a mouse, keyboard, built-in key buttons, etc., and is used for input operations.
  • the input device 509 is not limited to a mouse, keyboard, or built-in key buttons, and may be a touch panel, for example.
  • the output device 510 is implemented by, for example, a display and used to confirm the output.
  • the first embodiment shown in FIG. 1 is implemented by the computer hardware shown in FIG.
  • the implementation means of each unit included in the backdoor detection device 100 of FIG. 1 is not limited to the configuration described above.
  • the backdoor detection device 100 may be implemented by one device that is physically connected, or may be implemented by two or more devices that are physically separated and connected by wire or wirelessly. good too.
  • input device 509 and output device 510 may be connected to computer device 500 via a network.
  • the backdoor detection device 100 in the first embodiment shown in FIG. 1 can also be configured by cloud computing or the like.
  • the pattern extraction unit 101 is means for extracting function flow patterns from firmware program codes.
  • Firmware is, for example, software for controlling a device provided by an external business operator.
  • a function flow pattern is a type of function flow executed by firmware.
  • the pattern extraction unit 101 acquires the binary code of the firmware to be detected from the device, decompiles the acquired code, and acquires the program code. At this time, the pattern extraction unit 101 acquires, for example, only code blocks that include functions dependent on external inputs (functions). Decompilation can be performed by conventional decompilation software or the like.
  • FIG. 3 is a diagram for explaining the control flow in the first embodiment.
  • FIG. 4 is a diagram for explaining function flow patterns in the first embodiment.
  • the pattern extraction unit 101 visualizes the control flow indicating the execution path of the program using an existing method such as a program analysis tool. Then, as shown in FIG. 4, the function flow pattern executed in the firmware is extracted from the control flow.
  • the function flow pattern CF#1 "func.A ⁇ func.B ⁇ func.D"
  • the function flow pattern CF#2 "func.A ⁇ func.B ⁇ func.E”
  • the function flow pattern CF #n "func.A ⁇ func.C ⁇ func.F" is extracted.
  • the pattern extraction unit 101 outputs the extracted function flow pattern to the frequency information acquisition unit 102 .
  • the frequency information acquisition unit 102 is means for acquiring appearance frequency information of the function flow patterns extracted by the pattern extraction unit 101 .
  • the frequency information acquisition unit 102 acquires appearance frequency information by, for example, executing firmware and counting the appearance frequency of observed function flow patterns.
  • the function flow pattern appearance frequency information is indicated by F(CF#) (where # is an integer from 1 to n, and n is the number of types of function flow patterns).
  • FIG. 5 is a table for explaining appearance frequency information in the first embodiment.
  • FIG. 5 shows the frequency of appearance for each function flow pattern extracted by the pattern extraction unit 101 .
  • the frequency information acquisition unit 102 outputs the counted appearance frequency information of each function flow pattern to the backdoor determination unit 103 .
  • the backdoor determination unit 103 is means for determining whether or not it is a backdoor based on the appearance frequency information acquired by the frequency information acquisition unit 102 .
  • the backdoor determination unit 103 identifies a function flow pattern with an appearance frequency lower than a predetermined threshold.
  • the threshold is a predetermined appearance frequency count, for example, twice per unit time. Information about the threshold is stored in the storage device 505, for example.
  • the backdoor determination unit 103 has the appearance frequency of the function flow pattern CFn of 1, which is smaller than the threshold of 2 times. Therefore, the backdoor determination unit 103 identifies the function flow pattern CFn as a function flow pattern including a backdoor. Also, the backdoor determination unit 103 determines that function flow patterns other than CFn are not function flow patterns including a backdoor.
  • the backdoor determination unit 103 outputs the determination result thus determined to the output unit 104 .
  • the output unit 104 is means for outputting the results evaluated by the backdoor determination unit 103 .
  • the output unit 104 outputs an alert signal when the backdoor determination unit 103 determines that a backdoor is included.
  • the output unit 104 may display the alert signal by the output device 510 of the backdoor detection device 100 or present it by voice.
  • the output unit 104 may output the function flow pattern that is the basis for determining that the backdoor is included, together with the alert described above.
  • FIG. 6 is a flowchart showing an overview of the operation of the backdoor detection device 100 according to the first embodiment. Note that the processing according to this flowchart may be executed based on program control by the processor described above.
  • the pattern extraction unit 101 first extracts a function flow pattern from the firmware program code (step S101).
  • the frequency information acquisition unit 102 acquires appearance frequency information F (CF#) indicating the appearance frequency of the extracted function flow pattern (step S102).
  • the backdoor determination unit 103 determines that a backdoor is included if there is a function flow pattern whose appearance frequency is less than the threshold among the acquired appearance frequency information (step S103; YES).
  • the backdoor determination unit 103 determines that a backdoor does not exist (step S103; NO) if there is no function flow pattern whose appearance frequency is less than the threshold among the acquired appearance frequency information, and performs a series of flows. repeat.
  • the output unit 104 outputs an alert signal (step S104). With this, the backdoor detection device 100 ends the operation of backdoor detection.
  • the backdoor determination unit 103 determines that the function flow pattern has transitioned to a path with a low execution frequency. Determine that the door is included. This makes it possible to detect backdoors without complex analysis. Further, in this embodiment, even if the source code is unknown when detecting a backdoor, the backdoor can be detected because the firmware is decompiled.
  • the frequency information acquisition unit 102 includes appearance frequency information Fnew (CF#) indicating the appearance frequency of the currently extracted function flow pattern and Acquire appearance frequency information Fold (CF#).
  • Fnew appearance frequency information
  • CF# Acquire appearance frequency information Fold
  • the backdoor determination unit 103 determines that the appearance frequency of the currently extracted function flow patterns is lower than the threshold (T1) and the appearance frequency of the currently extracted function flow pattern is equal to the appearance frequency at a predetermined point in the past. , and if there is a function flow pattern greater than the threshold (T2) (Fnew-Fold>T2), it is determined that there is a backdoor.
  • the currently extracted function flow pattern is the function flow pattern extracted when the firmware is currently being verified.
  • a function flow pattern extracted in the past is, for example, a function flow pattern extracted when the same firmware was verified in the past.
  • Appearance frequency information Fold (CF#) of function flow patterns extracted at a predetermined point in the past is stored in the storage device 505 at the time of extraction.
  • FIG. 7 is a table for explaining appearance frequency information in the modification of the first embodiment. As shown in FIG. 7, currently extracted appearance frequency information and previously extracted appearance frequency information are shown. In the example of FIG. 7, it is assumed that the threshold T1 is 4 and the threshold T2 is 1. In the example of FIG. 7, CFn ⁇ 1 has an appearance frequency of 1 when it was extracted in the past, but an appearance frequency of 3 when it is currently extracted. On the other hand, CFn has an appearance frequency of 1 when it was extracted in the past, and an appearance frequency of 1 when it is currently extracted. In all function flow patterns, the appearance frequency information Fnew (CF#) is smaller than the threshold T1, but only CFn-1 has a value of Fnew-Fold larger than the threshold T2. Therefore, the backdoor determination unit 103 determines that only CFn-1 contains a backdoor, and does not determine that CFn contains a backdoor.
  • FIG. 8 is a flow chart showing an overview of the operation of the backdoor detection device 100 in the modified example of the first embodiment. Steps S111 to S113 in the modified example of the first embodiment are the same as the flow in steps S101 to S102 in the first embodiment, so description thereof is omitted.
  • the backdoor determination unit 103 determines if there is a function flow pattern whose appearance frequency is less than the threshold among the appearance frequency information. , the process proceeds to the next flow (step S113; YES). On the other hand, the backdoor determination unit 103 determines that there is no backdoor if there is no function flow pattern whose appearance frequency is less than the threshold value (T1) among the input appearance frequency information (step S113; NO).
  • the backdoor determination unit 103 compares the appearance frequency of the function flow pattern whose appearance frequency is smaller than the threshold value in step S113 with the appearance frequency at a predetermined time point in the past to be greater than the threshold value (T2) (Fnew-Fold >T2), it is determined that there is a backdoor (step S114; YES).
  • T2 threshold value
  • the backdoor determination unit 103 determines that a backdoor is included, the output unit 104 outputs an alert signal (step S115). With this, the backdoor detection device 100 ends the operation of backdoor detection.
  • the backdoor determination unit 103 determines that the appearance frequency of the currently extracted function flow pattern is smaller than the threshold value (T1) and the appearance frequency of the currently extracted function flow pattern is larger than a threshold (T2) (Fnew-Fold>T2) compared with the appearance frequency at a predetermined point in the past, it is determined that there is a backdoor. As a result, it is determined that there is a backdoor based on the transition of the appearance frequency information, so it is possible to detect the backdoor with higher accuracy.
  • FIG. 9 is a block diagram showing the configuration of the backdoor detection device 110 according to the second embodiment of the present disclosure.
  • a backdoor detection device 110 according to the second embodiment will be described, focusing on different parts from the backdoor detection device 100 according to the first embodiment.
  • a backdoor detection device 110 according to the second embodiment includes a pattern extraction unit 111 , a frequency information acquisition unit 112 , a backdoor determination unit 113 , a backdoor identification unit 114 , an output unit 115 and a control unit 116 .
  • the configurations and functions of the pattern extraction unit 111, the frequency information acquisition unit 112, and the backdoor determination unit 113 in this embodiment are the same as those of the pattern extraction unit 101, the frequency information acquisition unit 102, and the backdoor determination unit 103 in the first embodiment. Therefore, it is omitted here.
  • the backdoor identification unit 114 identifies the function flow that is determined to include a backdoor.
  • the backdoor identification unit 114 compares the function flow pattern determined to include a backdoor with the function flow pattern determined not to include a backdoor, and compares the function flow pattern determined to include a backdoor. Among them, the function flow that does not exist in the function flow pattern that has not been determined to include a backdoor is identified.
  • FIG. 10 is a diagram for explaining the function flow specified in the second embodiment.
  • the backdoor determination unit 113 determines that the function flow pattern "func.A ⁇ func.C ⁇ func.F" includes a backdoor, and another function flow pattern "func.A ⁇ func.F” is determined. B ⁇ func.D” and “func.A ⁇ func.B ⁇ func.E” are not determined to include a backdoor.
  • the function "func.A” is common, but the function flow "func.C ⁇ func.F” is different. Therefore, the backdoor identification unit 114 identifies that a backdoor is included in the function flow “func.C ⁇ func.F” that does not exist in the function flow pattern that was not determined to include a backdoor.
  • the backdoor identification unit 114 outputs information on the identified function flow to the output unit 115 and the control unit 116 .
  • the output unit 115 outputs the function flow identified by the backdoor identification unit 114 to the output device 510 or the like.
  • the control unit 116 controls so that the function flow specified by the backdoor specifying unit 114 is not executed.
  • the control unit 116 updates the program code so as not to execute the identified function flow.
  • FIG. 11 is a flow chart showing an overview of the operation of the backdoor detection device 110 according to the second embodiment. Note that the processing according to this flowchart may be executed based on program control by the processor described above. It should be noted that steps S201 to S203 in the second embodiment are the same as the flow in steps S101 to S103 in the first embodiment, so description thereof will be omitted.
  • the backdoor identification unit 114 identifies the function flow that is determined to include a backdoor. (step S204).
  • the output unit 115 outputs information on the specified function flow (step S205).
  • the control unit 116 controls not to execute the function flow specified by the backdoor specifying unit 114 (step S206). With this, the backdoor detection device 110 ends the operation of backdoor detection.
  • the output unit 115 outputs the function flow information identified by the backdoor identification unit 114 to the output device 510 or the like. This allows the firmware analyst to analyze in more detail where the backdoor is embedded. Further, in the second embodiment of the present disclosure, the control unit 116 controls not to execute the function flow specified by the backdoor specifying unit 114 . As a result, the damage caused by the backdoor can be prevented from spreading.
  • the threshold T1 and the threshold T2 shown in this embodiment are examples, and the threshold may be changed according to the type of backdoor that is being set up. As a result, the accuracy of back door detection can be improved.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本開示のバックドア検知装置は、ファームウェアのプログラムコードから関数フローパターンを抽出するパターン抽出手段と、抽出された関数フローパターンの出現頻度を示す出現頻度情報を取得する頻度情報取得手段と、取得された出現頻度情報に基づいてバックドアが含まれるか否かの判定を行う判定手段と、判定手段による判定の結果を示す情報を出力する出力手段と、を備える。

Description

バックドア検知装置、バックドア検知方法、及び記録媒体
 本開示は、バックドア検知装置、バックドア検知方法、及び記録媒体に関する。
 外部からデバイスを調達した際におけるサプライチェーン・リスク対策の一つとして、バックドア等のファームウェア内の不正機能の検知するための技術がある。
 例えば、特許文献1には、ソフトウェア内での機密データの伝搬状況を解析し、バックドアであると推定されるソースコードを特定するバックドア検知装置が開示されている。
国際公開第2021/028989号
 しかしながら、バックドアを利用した不正アクセスでは、攻撃者だけが知る情報をトリガとして、システムに重大な影響を与える関数フローを実行する場合が多い。上述した特許文献1に記載された発明によりソフトウェアを解析しても、どの部分にバックドアが含まれるかの判断は難しい。
 本開示の目的の一例は、複雑な解析をせずにバックドアの検知が可能なバックドア検知装置を提供することにある。
 本開示の一態様におけるバックドア検知装置は、ファームウェアのプログラムコードから関数フローパターンを抽出するパターン抽出手段と、抽出された関数フローパターンの出現頻度を示す出現頻度情報を取得する頻度情報取得手段と、取得された出現頻度情報に基づいてバックドアが含まれるか否かの判定を行うバックドア判定手段と、バックドア判定手段による判定の結果を示す情報を出力する出力手段と、を備える。
 本開示の一態様におけるバックドア検知方法は、ファームウェアのプログラムコードから関数フローパターンを抽出し、抽出された関数フローパターンの出現頻度を示す出現頻度情報を取得し、取得された出現頻度情報に基づいてバックドアが含まれるか否かの判定を行い、判定の結果を示す情報を出力する。
 本開示の一態様における記録媒体は、ファームウェアのプログラムコードから関数フローパターンを抽出し、抽出された関数フローパターンの出現頻度を示す出現頻度情報を取得し、取得された出現頻度情報に基づいてバックドアが含まれるか否かの判定を行い、判定の結果を示す情報を出力することをコンピュータに実行させるプログラムを格納する。
 本開示による効果の一例は、複雑な解析をせずにバックドアの検知が可能なバックドア検知装置を提供できる。
図1は、第一の実施形態におけるバックドア検知装置の構成を示すブロック図である。 図2は、第一の実施形態におけるバックドア検知装置をコンピュータ装置とその周辺装置で実現したハードウェア構成を示す図である。 図3は、第一の実施形態における制御フローを説明するための図である。 図4は、第一の実施形態における関数フローパターンを説明するための図である。 図5は、第一の実施形態における出現頻度情報を説明するためのテーブルである。 図6は、第一の実施形態におけるバックドア検知の動作を示すフローチャートである。 図7は、第一の実施形態の変形例における出現頻度情報を説明するためのテーブルである。 図8は、第一の実施形態の変形例におけるバックドア検知の動作を示すフローチャートである。 図9は、第二の実施形態におけるバックドア検知装置の構成を示すブロック図である。 図10は、第二の実施形態において特定された関数フローを説明するための図である。 図11は、第二の実施形態におけるバックドア検知の動作を示すフローチャートである。
 次に、実施形態について図面を参照して詳細に説明する。
 [第一の実施形態]
 第一の実施形態におけるバックドア検知装置100は、例えば、外部の事業者から提供されたデバイスを自身のシステムに組み込む際、提供されたデバイスのファームウェア内にバックドア等の不正機能が含まれていないかを検知するための装置である。なお、バックドア検知装置100には、例えば、外部入力に依存するような関数の情報が記憶装置505に予め格納されている。なお、検知対象のファームウェアは、コンパイル前のソースコードであってもよいし、コンパイル後のバイナリコードであってもよい。以下では、主に、入力されるファームウェアがバイナリコードであるものとして説明する。
 図1は、第一の実施形態におけるバックドア検知装置100の構成を示すブロック図である。図1を参照すると、バックドア検知装置100は、パターン抽出部101、頻度情報取得部102、バックドア判定部103及び出力部104を備える。以下、本実施形態の必須構成であるバックドア検知装置100について詳しく説明する。
 図2は、本開示の第一の実施形態におけるバックドア検知装置100を、プロセッサを含むコンピュータ装置500で実現したハードウェア構成の一例を示す図である。図2に示されるように、バックドア検知装置100は、CPU(Central Processing Unit)501、ROM(Read Only Memory)502、RAM(Random Access Memory)503等のメモリ、プログラム504を格納するハードディスク等の記憶装置505、ネットワーク接続用の通信I/F(Interface)508、データの入出力を行う入出力インターフェース511を含む。第一の実施形態において、パターン抽出部101が取得するファームウェアのプログラムコードは、入出力インターフェース511を介してバックドア検知装置100に入力される。
 CPU501は、オペレーティングシステムを動作させて本発明の第一の実施の形態に係るバックドア検知装置100の全体を制御する。また、CPU501は、例えばドライブ装置507などに装着された記録媒体506からメモリにプログラムやデータを読み出す。また、CPU501は、第一の実施の形態におけるパターン抽出部101、頻度情報取得部102、バックドア判定部103、出力部104及びこれらの一部として機能し、プログラムに基づいて後述する図6に示すフローチャートにおける処理または命令を実行する。
 記録媒体506は、例えば光ディスク、フレキシブルディスク、磁気光ディスク、外付けハードディスク、または半導体メモリ等である。記憶装置の一部の記録媒体は、不揮発性記憶装置であり、そこにプログラムを記録する。また、プログラムは、通信網に接続されている図示しない外部コンピュータからダウンロードされてもよい。
 入力装置509は、例えば、マウスやキーボード、内蔵のキーボタンなどで実現され、入力操作に用いられる。入力装置509は、マウスやキーボード、内蔵のキーボタンに限らず、例えばタッチパネルでもよい。出力装置510は、例えばディスプレイで実現され、出力を確認するために用いられる。
 以上のように、図1に示す第一の実施形態は、図2に示されるコンピュータ・ハードウェアによって実現される。ただし、図1のバックドア検知装置100が備える各部の実現手段は、以上説明した構成に限定されない。またバックドア検知装置100は、物理的に結合した一つの装置により実現されてもよいし、物理的に分離した二つ以上の装置を有線または無線で接続し、これら複数の装置により実現されてもよい。たとえば、入力装置509及び出力装置510は、コンピュータ装置500とネットワークを経由して接続されていてもよい。また、図1に示す第一の実施形態におけるバックドア検知装置100は、クラウドコンピューティング等で構成することもできる。
 図1において、パターン抽出部101は、ファームウェアのプログラムコードから関数フローパターンを抽出する手段である。ファームウェアとは、例えば、外部の事業者から提供されたデバイスを制御するためのソフトウェアである。関数フローパターンとは、ファームウェアで実行される関数フローの類型である。パターン抽出部101は、デバイスから検知対象のファームウェアのバイナリコードを取得し、取得したコードに対して逆コンパイルを行ってプログラムコードを取得する。この際、パターン抽出部101は、例えば、外部入力(関数)に依存する関数を含むコードブロックのみを取得する。逆コンパイルは、従来の逆コンパイルを行うソフトウェア等によって行うことができる。
 図3は、第一の実施形態における制御フローを説明するための図である。図4は、第一の実施形態における関数フローパターンを説明するための図である。図3に示すように、パターン抽出部101は、プログラム解析ツール等の既存の方法により、プログラムの実行パスを示した制御フローを可視化する。次いで、図4に示すように、制御フローからファームウェアにおいて実行される関数フローパターンを抽出する。図4の例では、関数フローパターンCF♯1「func.A→func.B→func.D」、関数フローパターンCF♯2「func.A→func.B→func.E」及び関数フローパターンCF♯n「func.A→func.C→func.F」が抽出されている。パターン抽出部101は、抽出した関数フローパターンを頻度情報取得部102に出力する。
 頻度情報取得部102は、パターン抽出部101によって抽出された関数フローパターンの出現頻度情報を取得する手段である。頻度情報取得部102は、例えば、ファームウェアを実行し、観測された関数フローパターンの出現頻度をカウントすることで出現頻度情報を取得する。本実施形態において、関数フローパターンの出現頻度情報をF(CF♯)(♯は、1からnまでの整数であり、nは、関数フローパターンの種類の数である。)で示す。図5は、第一の実施形態における出現頻度情報を説明するためのテーブルである。図5には、パターン抽出部101によって抽出された関数フローパターン毎の出現頻度が表示されている。頻度情報取得部102は、このようしてカウントした各関数フローパターンの出現頻度情報をバックドア判定部103に出力する。
 バックドア判定部103は、頻度情報取得部102により取得された出現頻度情報に基づいてバックドアか否かの判定を行う手段である。バックドア判定部103は、頻度情報取得部102から各関数フローパターンの出現頻度情報が入力されると、所定の閾値より小さい出現頻度の関数フローパターンを特定する。閾値とは、予め決められた出現頻度回数であり、例えば、単位時間当たり2回である。閾値に関する情報は、例えば記憶装置505に格納されている。バックドア判定部103は、図5の例では、関数フローパターンCFnの出現頻度が1回と、閾値である2回よりも小さい。よって、バックドア判定部103は、関数フローパターンCFnをバックドアが含まれる関数フローパターンと特定する。また、バックドア判定部103は、CFn以外の関数フローパターンをバックドアが含まれる関数フローパターンではないと判定する。バックドア判定部103は、このようにして判定した判定結果を出力部104に出力する。
 出力部104は、バックドア判定部103によって評価された結果を出力する手段である。出力部104は、バックドア判定部103でバックドアが含まれると判定されると、アラート信号を出力する。出力部104は、バックドア検知装置100の出力装置510によりアラート信号を表示してもよいし音声で提示してもよい。また、出力部104は、上述のアラート共に、バックドアが含まれると判定される根拠となった関数フローパターンを出力しても構わない。
 以上のように構成されたバックドア検知装置100の動作について、図6のフローチャートを参照して説明する。
 図6は、第一の実施形態におけるバックドア検知装置100の動作の概要を示すフローチャートである。尚、このフローチャートによる処理は、前述したプロセッサによるプログラム制御に基づいて、実行されてもよい。
 図6に示すように、まずパターン抽出部101は、ファームウェアのプログラムコードから関数フローパターンを抽出する(ステップS101)。次に、頻度情報取得部102は、抽出された関数フローパターンの出現頻度を示す出現頻度情報F(CF#)を取得する(ステップS102)。次に、バックドア判定部103は、取得された出現頻度情報のうち、出現頻度が閾値より小さい関数フローパターンがあれば、バックドアが含まれると判定する(ステップS103;YES)。一方、バックドア判定部103は、取得された出現頻度情報のうち、出現頻度が閾値より小さい関数フローパターンがなければ、バックドアが存在しないと判定し(ステップS103;NO)、一連のフローを繰り返す。最後に、出力部104は、バックドア判定部103によってバックドアが含まれると判定されると、アラート信号を出力する(ステップS104)。以上で、バックドア検知装置100は、バックドア検知の動作を終了する。
 本実施形態におけるバックドア検知装置100は、バックドア判定部103は、取得された出現頻度情報のうち、出現頻度が閾値より小さい関数フローパターンがあれば、実行頻度の低いパスに遷移したとしてバックドアが含まれると判定する。これにより、複雑な解析せずにバックドアの検知が可能である。また、本実施形態では、バックドアの検知を行う際にソースコードがわからないであっても、ファームウェアを逆コンパイルするため、バックドア検知が可能である。
[第一の実施形態の変形例]
 次に、本開示の第一の実施形態の変形例について図面を参照して詳細に説明する。本開示の第一の実施形態の変形例では、頻度情報取得部102が、現在抽出された関数フローパターンの出現頻度を示す出現頻度情報Fnew(CF#)及び過去の所定の時点において抽出された出現頻度情報Fold(CF#)を取得する。次いで、バックドア判定部103が、現在抽出された関数フローパターンのうち、出現頻度が閾値(T1)より小さく、且つ、現在抽出された関数フローパターンの出現頻度が過去の所定の時点における出現頻度と比較して、閾値(T2)より大きい(Fnew-Fold>T2)関数フローパターンがある場合、バックドアがあると判定する。なお、現在抽出された関数フローパターンとは、現在ファームウェアを検証している際に抽出された関数フローパターンである。また、過去に抽出された関数フローパターンとは、例えば、過去に同じファームウェアを検証した際に抽出された関数フローパターンである。過去の所定の時点において抽出された関数フローパターンの出現頻度情報Fold(CF#)は、抽出された際に記憶装置505に記憶されている。
 図7は、第一の実施形態の変形例における出現頻度情報を説明するためのテーブルである。図7に示すように、現在抽出された出現頻度情報及び過去に抽出された出現頻度情報が示されている。図7の例では、閾値T1が4及び閾値T2が1であるとする。図7の例では、CFn-1では、過去の抽出時の出現頻度が1であるのに対し、現在の抽出時の出現頻度が3となっている。一方、CFnでは、過去の抽出時の出現頻度が1であるのに対し、現在の抽出時の出現頻度も1となっている。いずれの関数フローパターンも、出現頻度情報Fnew(CF#)は閾値T1より小さいが、CFn-1のみが、Fnew-Foldの値が閾値T2よりも大きい。よって、バックドア判定部103は、CFn-1のみをバックドアが含まれると判定し、CFnをバックドアが含まれると判定しない。
 図8は、第一の実施形態の変形例おけるバックドア検知装置100の動作の概要を示すフローチャートである。第一の実施形態の変形例におけるステップS111~S113は、第一の実施形態におけるステップS101~S102におけるフローと同様のため、説明を割愛する。
 図8に示すように、次に、バックドア判定部103は、頻度情報取得部102から出現頻度情報が入力されると、出現頻度情報のうち、出現頻度が閾値より小さい関数フローパターンがあれば、次のフローに進む(ステップS113;YES)。一方、バックドア判定部103は、入力された出現頻度情報のうち、出現頻度が閾値(T1)より小さい関数フローパターンがなければ、バックドアが存在しないと判定し(ステップS113;NO)、一連のフローを繰り返す。次に、バックドア判定部103は、ステップS113における出現頻度が閾値より小さい関数フローパターンについて、出現頻度が過去の所定の時点における出現頻度と比較して、閾値(T2)より大きい(Fnew-Fold>T2)場合、バックドアがあると判定する(ステップS114;YES)。一方、ステップS113における出現頻度が閾値より小さい関数フローパターンについて、出現頻度が過去の所定の時点における出現頻度と比較して、閾値(T2)より大きくない場合、バックドアがないと判定し(ステップS114;NO)、一連のフローを繰り返す。最後に、出力部104は、バックドア判定部103によってバックドアが含まれると判定されると、アラート信号を出力する(ステップS115)。以上で、バックドア検知装置100は、バックドア検知の動作を終了する。
 本実施形態におけるバックドア検知装置100は、バックドア判定部103が、現在抽出された関数フローパターンのうち、出現頻度が閾値(T1)より小さく、且つ、現在抽出された関数フローパターンの出現頻度が過去の所定の時点における出現頻度と比較して、閾値(T2)より大きい(Fnew-Fold>T2)関数フローパターンがある場合、バックドアがあると判定する。これにより、出現頻度情報の推移に基づいてバックドアがあると判定するので、より精度の高いバックドアの検知が可能である。
[第二の実施形態]
 次に、本開示の第二の実施形態について図面を参照して詳細に説明する。以下、本実施形態の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。本開示の各実施形態における各構成要素は、図2に示すコンピュータ装置と同様に、その機能をハードウェア的に実現することはもちろんプログラム制御に基づくコンピュータ装置、ファームウェアで実現することができる。
 図9は、本開示の第二の実施形態に係るバックドア検知装置110の構成を示すブロック図である。図9を参照して、第一の実施形態に係るバックドア検知装置100と異なる部分を中心に、第二の実施形態に係るバックドア検知装置110を説明する。第二の実施形態に係るバックドア検知装置110は、パターン抽出部111、頻度情報取得部112、バックドア判定部113、バックドア特定部114、出力部115及び制御部116を備える。本実施形態におけるパターン抽出部111、頻度情報取得部112、バックドア判定部113の構成及び機能は、第一の実施形態のパターン抽出部101、頻度情報取得部102、バックドア判定部103と同様のため、ここでは割愛する。
 バックドア特定部114は、バックドア判定部113によりバックドアが含まれると判定されると、バックドアが含まれると判定された関数フローを特定する。バックドア特定部114は、バックドアが含まれると判定された関数フローパターンとバックドアが含まれると判定されなかった関数フローパターンを対比し、バックドアが含まれると判定された関数フローパターンのうち、バックドアが含まれると判定されなかった関数フローパターンに存在しない関数フローを特定する。
 図10は、第二の実施形態において特定された関数フローを説明するための図である。
図10において、例えば、バックドア判定部113により関数フローパターン「func.A→func.C→func.F」にバックドアが含まれると判定され、別の関数フローパターン「func.A→func.B→func.D」及び「func.A→func.B→func.E」にバックドアが含まれると判定されなかったとする。図10の例では、関数「func.A」は、共通するが、それ以外の関数フロー「func.C→func.F」が異なっている。よって、バックドア特定部114は、バックドアが含まれると判定されなかった関数フローパターンに存在しない関数フロー「func.C→func.F」にバックドアが含まれると特定する。バックドア特定部114は、特定した関数フローの情報を出力部115及び制御部116に出力する。
 出力部115は、バックドア特定部114により特定された関数フローを出力装置510等に出力する。
 制御部116は、バックドア特定部114により特定された関数フローを実行させないように制御する。制御部116は、バックドア特定部114からバックドアと特定された関数フローの情報が入力されると、例えば、特定された関数フローを実行させないようにプログラムコードを更新する。
 以上のように構成された情報処理システム11の動作について、図11のフローチャートを参照して説明する。
 図11は、第二の実施形態におけるバックドア検知装置110の動作の概要を示すフローチャートである。尚、このフローチャートによる処理は、前述したプロセッサによるプログラム制御に基づいて、実行されてもよい。なお、第二の実施形態におけるステップS201~S203は、第一の実施形態におけるステップS101~S103におけるフローと同様のため、説明を割愛する。
 図11に示すように、バックドア判定部113により、バックドアが含まれると判定されると(ステップS203;YES)、バックドア特定部114はバックドアが含まれると判定された関数フローを特定する(ステップS204)。次いで、出力部115は、特定された関数フローの情報を出力する(ステップS205)。最後に、制御部116は、バックドア特定部114により特定された関数フローを実行させないように制御する(ステップS206)。以上で、バックドア検知装置110は、バックドア検知の動作を終了する。
 本開示の第二の実施形態では、出力部115がバックドア特定部114により特定された関数フローの情報を出力装置510等に出力する。これにより、ファームウェアの解析者がバックドアの組み込まれている箇所をより詳細に解析することができる。また、本開示の第二の実施形態では、制御部116は、バックドア特定部114により特定された関数フローを実行させないように制御する。これにより、バックドアによる被害が広がらないようすることができる。
 以上、各実施の形態を参照して本発明を説明したが、本発明は上記実施の形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しえる様々な変更をすることができる。
 例えば、複数の動作をフローチャートの形式で順番に記載してあるが、その記載の順番は複数の動作を実行する順番を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の順番は内容的に支障しない範囲で変更することができる。
 また、本実施形態において示した閾値T1及び閾値T2は、例示であり、仕組まれているバックドアの種類に応じて、閾値を変化させてもよい。これにより、バックドアの検知の精度を高めることができる。
 100、110  バックドア検知装置
 101、111  パターン抽出部
 102、112  頻度情報取得部
 103、113  バックドア判定部
 104、115  出力部
 114    バックドア特定部
 116    制御部

Claims (8)

  1.  ファームウェアのプログラムコードから関数フローパターンを抽出するパターン抽出手段と、
     前記抽出された前記関数フローパターンの出現頻度を示す出現頻度情報を取得する頻度情報取得手段と、
     前記取得された前記出現頻度情報に基づいてバックドアが含まれるか否かの判定を行うバックドア判定手段と、
     前記バックドア判定手段による判定の結果を示す情報を出力する出力手段と、を備える、バックドア検知装置。
  2.  前記パターン抽出手段は、バイナリコードを逆コンパイルして得られたプログラムコードから前記関数フローパターンを抽出する、請求項1に記載のバックドア検知装置。
  3.  前記バックドア判定手段は、前記抽出された関数フローパターンのうち、前記出現頻度が所定の閾値より小さい関数フローパターンがある場合、バックドアが含まれると判定する、請求項1又は2に記載のバックドア検知装置。
  4.  前記頻度情報取得手段は、過去の所定の時点における出現頻度情報を更に取得し、
     前記バックドア判定手段は、前記抽出された関数フローパターンのうち、前記出現頻度が閾値より小さく、且つ、当該出現頻度が過去の所定の時点における出現頻度と比較して、閾値より大きい関数フローパターンがある場合、バックドアがあると判定する、請求項1又は2に記載のバックドア検知装置。
  5.  前記バックドアが含まれると判定された関数フローを特定する、バックドア特定手段を更に備え、
     前記出力手段は、前記バックドアが含まれると判定された関数フローの情報を更に出力する、請求項1~4のいずれか一項に記載のバックドア検知装置。
  6.  前記特定された前記関数フローを実行させないように制御する、制御部を更に備える、請求項5に記載のバックドア検知装置。
  7.  ファームウェアのプログラムコードから関数フローパターンを抽出し、
     前記抽出された前記関数フローパターンの出現頻度を示す出現頻度情報を取得し、
     前記取得された前記出現頻度情報に基づいてバックドアが含まれるか否かを判定し、
     前記判定の結果を示す情報を出力する、バックドア検知方法。
  8.  ファームウェアのプログラムコードから関数フローパターンを抽出し、
     前記抽出された前記関数フローパターンの出現頻度を示す出現頻度情報を取得し、
     前記取得された前記出現頻度情報に基づいてバックドアが含まれるか否かを判定し、
     前記判定の結果を示す情報を出力する、ことをコンピュータに実行させるプログラムを格納する記録媒体。
PCT/JP2021/039604 2021-10-27 2021-10-27 バックドア検知装置、バックドア検知方法、及び記録媒体 WO2023073821A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/039604 WO2023073821A1 (ja) 2021-10-27 2021-10-27 バックドア検知装置、バックドア検知方法、及び記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/039604 WO2023073821A1 (ja) 2021-10-27 2021-10-27 バックドア検知装置、バックドア検知方法、及び記録媒体

Publications (1)

Publication Number Publication Date
WO2023073821A1 true WO2023073821A1 (ja) 2023-05-04

Family

ID=86159210

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/039604 WO2023073821A1 (ja) 2021-10-27 2021-10-27 バックドア検知装置、バックドア検知方法、及び記録媒体

Country Status (1)

Country Link
WO (1) WO2023073821A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006115129A (ja) * 2004-10-13 2006-04-27 Tohoku Univ ネットワーク異常検出システム
JP2011258019A (ja) * 2010-06-09 2011-12-22 Nippon Telegr & Teleph Corp <Ntt> 異常検知装置、異常検知プログラムおよび異常検知方法
US20190220596A1 (en) * 2016-05-18 2019-07-18 The Governing Council Of The University Of Toronto System and method for determining correspondence and accountability between binary code and source code
WO2021028989A1 (ja) * 2019-08-09 2021-02-18 日本電気株式会社 バックドア検査装置、方法及び非一時的なコンピュータ可読媒体

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006115129A (ja) * 2004-10-13 2006-04-27 Tohoku Univ ネットワーク異常検出システム
JP2011258019A (ja) * 2010-06-09 2011-12-22 Nippon Telegr & Teleph Corp <Ntt> 異常検知装置、異常検知プログラムおよび異常検知方法
US20190220596A1 (en) * 2016-05-18 2019-07-18 The Governing Council Of The University Of Toronto System and method for determining correspondence and accountability between binary code and source code
WO2021028989A1 (ja) * 2019-08-09 2021-02-18 日本電気株式会社 バックドア検査装置、方法及び非一時的なコンピュータ可読媒体

Similar Documents

Publication Publication Date Title
US7409718B1 (en) Method of decrypting and analyzing encrypted malicious scripts
Alazab et al. Malware detection based on structural and behavioural features of API calls
KR101720686B1 (ko) 시각화 유사도 기반 악성 어플리케이션 감지 장치 및 감지 방법
CN100483434C (zh) 病毒识别方法及装置
US20120192279A1 (en) Malware detection using external call characteristics
JP2011233126A (ja) 正常プロセスに偽装挿入された悪性コード検出装置、システム及びその方法
CN106407809A (zh) 一种Linux平台恶意软件检测方法
KR101640479B1 (ko) 소스코드기반 소프트웨어 취약점 공격행위 분석시스템
WO2017177003A1 (en) Extraction and comparison of hybrid program binary features
KR20180010053A (ko) 보안 취약점 점검을 위한 위험성 코드 검출 시스템 및 그 방법
JP7238996B2 (ja) バックドア検査装置、方法及びプログラム
KR102308477B1 (ko) 악성 코드의 악성 행위 특징 정보를 생성하는 방법
JP7235126B2 (ja) バックドア検査装置、バックドア検査方法、及びプログラム
WO2023073821A1 (ja) バックドア検知装置、バックドア検知方法、及び記録媒体
CN111291377A (zh) 一种应用漏洞的检测方法及系统
KR101907681B1 (ko) 악성코드 검출을 위한 자동 규칙 생성방법, 장치, 시스템 및 이를 기록한 컴퓨터로 판독가능한 기록매체
WO2021038705A1 (ja) バックドア検査装置、バックドア検査方法、及び非一時的なコンピュータ可読媒体
WO2015177783A1 (en) System and method for detecting activities within a bootstrap of a computerized device based on monitoring of power consumption
CA3052392A1 (en) Identifying human interaction with a computer
Jurn et al. A survey of automated root cause analysis of software vulnerability
KR101583133B1 (ko) 스택 기반 소프트웨어 유사도 평가 방법 및 장치
CN106127044A (zh) 一种函数恶意程度的检测方法和装置
KR20110124918A (ko) 패턴 분석기법을 이용한 웹사이트의 악성코드 은닉 여부에 대한 탐지 시스템 및 방법
Obeis et al. Malware analysis using APIs pattern mining
CN107368740B (zh) 一种针对数据文件中可执行代码的检测方法及系统

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21962370

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2023555942

Country of ref document: JP

Kind code of ref document: A