JP7672654B2 - DETECTION APPARATUS, DETECTION METHOD, AND DETECTION PROGRAM - Google Patents
DETECTION APPARATUS, DETECTION METHOD, AND DETECTION PROGRAM Download PDFInfo
- Publication number
- JP7672654B2 JP7672654B2 JP2022024973A JP2022024973A JP7672654B2 JP 7672654 B2 JP7672654 B2 JP 7672654B2 JP 2022024973 A JP2022024973 A JP 2022024973A JP 2022024973 A JP2022024973 A JP 2022024973A JP 7672654 B2 JP7672654 B2 JP 7672654B2
- Authority
- JP
- Japan
- Prior art keywords
- software
- firmware
- unit
- version number
- difference
- 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.)
- Active
Links
Images
Landscapes
- Stored Programmes (AREA)
Description
本発明は、検知装置、検知方法および検知プログラムに関する。 The present invention relates to a detection device, a detection method, and a detection program.
一般に、IoT(Internet of Things)等の組み込みシステムにおいて、ハードウェアを制御するために、様々なソフトウェアが同梱されたファームウェアが利用される。このようなソフトウェアの多くは、しばしば脆弱性が発見されるOSS(Open Source Software)が利用されることから、IoTも脆弱になる。 In general, in embedded systems such as the Internet of Things (IoT), firmware that includes various software is used to control the hardware. Since much of this software uses Open Source Software (OSS), which is often found to have vulnerabilities, the IoT is also vulnerable.
そこで従来、脆弱性データベース(CVE, Common Vulnerability Enumeration)を利用して、システムで利用されているソフトウェアに対して、バージョン番号に基づいた脆弱性の検知が行われている(非特許文献1,2参照)。CVEには、脆弱性のあるソフトウェア名とバージョン番号とが登録されており、ソフトウェア名とバージョン番号とをCVEに照合することにより、脆弱性の有無を知ることができる。 Conventionally, a vulnerability database (CVE, Common Vulnerability Enumeration) has been used to detect vulnerabilities based on the version numbers of software used in a system (see Non-Patent Documents 1 and 2). The CVE registers the names and version numbers of vulnerable software, and by checking the software name and version number against the CVE, it is possible to know whether or not there is a vulnerability.
また、ソフトウェアに脆弱性が有る場合には、脆弱性の原因となる箇所を修正した上でバージョン番号を上げるようなソフトウェアの更新を行う場合が多い。 In addition, when software has vulnerabilities, the software is often updated to fix the part causing the vulnerability and increase the version number.
しかしながら、従来の技術では、IoT上で動作するソフトウェアの脆弱性の有無を検知することが困難である。例えば、バージョン番号を変更せずにソフトウェアの更新を行うパッチが適用された場合には、バージョン番号が変化せずに脆弱性が修正された状態になる。その場合に、ソフトウェア名とバージョン番号とをCVEに照合すると、パッチが適用されて脆弱性が修正されているにもかかわらず、脆弱性有りと判定され、誤検知となる。 However, with conventional technology, it is difficult to detect whether software running on the IoT has vulnerabilities. For example, when a patch that updates software without changing the version number is applied, the vulnerability is fixed without changing the version number. In that case, when the software name and version number are compared against the CVE, it is determined that the software has a vulnerability, even though the patch has been applied and the vulnerability has been fixed, resulting in a false positive.
本発明は、上記に鑑みてなされたものであって、IoT上で動作するソフトウェアの脆弱性の有無を正確に検知することを目的とする。 The present invention has been made in consideration of the above, and aims to accurately detect whether or not software running on IoT has vulnerabilities.
上述した課題を解決し、目的を達成するために、本発明に係る検知装置は、所定のファームウェアを収集する収集部と、前記ファームウェアに含まれるソフトウェアを表すファイルを抽出する抽出部と、抽出された前記ソフトウェアのバージョン番号を特定する特定部と、時系列に並べた前後の前記バージョン番号が同一であるソフトウェアの間における差分の有無を判別する判別部と、を有することを特徴とする。 To solve the above-mentioned problems and achieve the objective, the detection device according to the present invention is characterized by having a collection unit that collects predetermined firmware, an extraction unit that extracts a file representing software contained in the firmware, an identification unit that identifies the version number of the extracted software, and a discrimination unit that discriminates whether there is a difference between software with the same version number arranged in chronological order.
本発明によれば、IoT上で動作するソフトウェアの脆弱性の有無を正確に検知することが可能となる。 The present invention makes it possible to accurately detect whether or not there are vulnerabilities in software running on IoT.
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。 One embodiment of the present invention will be described in detail below with reference to the drawings. Note that the present invention is not limited to this embodiment. In addition, in the drawings, the same parts are denoted by the same reference numerals.
[検知装置の概要]
図1は、検知装置の概要を説明するための図である。本実施形態の検知装置は、IoT製品のファームウェアに含まれるソフトウェア名およびバージョン番号を時系列で管理して、ファームウェアのバージョンアップの前後で、バージョン番号を変えずに脆弱性を修正するパッチが適用されたソフトウェアを検知する。そして、検知したバージョン番号が不変のままパッチが適用されたソフトウェアを、CVEへの照合の対象から除外することにより、脆弱性の誤検知を防止する。
[Detection device overview]
1 is a diagram for explaining an overview of the detection device. The detection device of this embodiment manages software names and version numbers included in the firmware of an IoT product in chronological order, and detects software to which a patch that fixes vulnerabilities without changing the version number has been applied before and after a firmware upgrade. Then, the detected software to which a patch has been applied while keeping the version number unchanged is excluded from the target of matching against the CVE, thereby preventing false detection of vulnerabilities.
例えば、図1に例示したように、IoT製品のバージョン番号が連続するファームウェアF1、F2について、それぞれに含まれるソフトウェア名とバージョン番号とを比較して、ソフトウェア名とバージョン番号が同一のものを特定する。そして、図1に例示したソフトウェアBのように、バージョン番号が同一であるものを対象に、脆弱性を修正するパッチが適用されているか否かを判別する。 For example, as shown in Fig. 1, for firmware F1 and F2 with consecutive version numbers of an IoT product, the software names and version numbers included in each are compared to identify those with the same software name and version number. Then, for those with the same version number, such as software B shown in Fig. 1, it is determined whether a patch to fix the vulnerability has been applied.
具体的には、検知装置は、ハッシュ値およびプログラム構造が異なる場合に、脆弱性を修正するパッチが適用されたものと判別する。例えば、ハッシュ値が同一である場合には、ファームウェアF1とF2の間でソフトウェアのバージョンの変化はなく、パッチも適用されていないと判別する。また、ハッシュ値が異なるがプログラム構造が同一である場合には、ファームウェアF1とF2の間でソフトウェアのファイルに何等かの変化があるがパッチの適用はないと判別する。そして、ハッシュ値もプログラム構造も異なる場合には、ファームウェアF1とF2の間でソフトウェアにプログラム構造が変化するパッチが適用されたと判別する。 Specifically, the detection device determines that a patch that fixes a vulnerability has been applied if the hash values and program structures are different. For example, if the hash values are the same, it determines that there is no change in the software version between firmware F1 and F2 and that no patch has been applied. If the hash values are different but the program structures are the same, it determines that there is some change in the software file between firmware F1 and F2 but that no patch has been applied. And if both the hash values and the program structures are different, it determines that a patch that changes the program structure of the software has been applied between firmware F1 and F2 .
検知装置は、パッチが適用されたと判別したソフトウェアを、CVEへの照合の対象から除外することにより、脆弱性の有無の誤検知を回避することが可能となる。 The detection device can avoid false positives about the presence or absence of vulnerabilities by excluding software that it determines has been patched from the targets of comparison with the CVE.
[検知装置の構成]
図2は、検知装置の概略構成を例示する模式図である。図2に例示するように、本実施形態の検知装置10は、パソコン等の汎用コンピュータで実現され、入力部11、出力部12、通信制御部13、記憶部14、および制御部15を備える。
[Configuration of the detection device]
2 is a schematic diagram illustrating a schematic configuration of a detection device 10 according to the present embodiment. As illustrated in FIG. 2, the detection device 10 is realized by a general-purpose computer such as a personal computer, and includes an input unit 11, an output unit 12, a communication control unit 13, a storage unit 14, and a control unit 15.
入力部11は、キーボードやマウス等の入力デバイスを用いて実現され、操作者による入力操作に対応して、制御部15に対して処理開始などの各種指示情報を入力する。出力部12は、液晶ディスプレイなどの表示装置、プリンター等の印刷装置等によって実現される。例えば、出力部12には、後述する検知処理の結果が表示される。 The input unit 11 is realized using input devices such as a keyboard and a mouse, and inputs various instruction information, such as starting processing, to the control unit 15 in response to input operations by an operator. The output unit 12 is realized by a display device such as a liquid crystal display, a printing device such as a printer, etc. For example, the output unit 12 displays the results of the detection process described below.
通信制御部13は、NIC(Network Interface Card)等で実現され、LAN(Local Area Network)やインターネットなどの電気通信回線を介した外部の装置と制御部15との通信を制御する。例えば、通信制御部13は、IoT製品のファームウェアを提供するサーバ等と制御部15との通信を制御する。 The communication control unit 13 is realized by a NIC (Network Interface Card) or the like, and controls communication between the control unit 15 and external devices via telecommunication lines such as a LAN (Local Area Network) or the Internet. For example, the communication control unit 13 controls communication between the control unit 15 and a server that provides firmware for IoT products.
記憶部14は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。記憶部14には、検知装置10を動作させる処理プログラムや、処理プログラムの実行中に使用されるデータなどが予め記憶され、あるいは処理の都度一時的に記憶される。なお、記憶部14は、通信制御部13を介して制御部15と通信する構成でもよい。 The storage unit 14 is realized by a semiconductor memory element such as a RAM (Random Access Memory) or a flash memory, or a storage device such as a hard disk or an optical disk. The storage unit 14 stores in advance the processing program that operates the detection device 10 and data used during execution of the processing program, or stores the data temporarily each time processing is performed. The storage unit 14 may be configured to communicate with the control unit 15 via the communication control unit 13.
本実施形態において、記憶部14は、ファームウェアテーブル14a、ファイルテーブル14b等を記憶する。なお、これらの各種情報は、検知装置10の記憶部14に記憶される場合に限定されず、例えば、後述する検知処理が実行される際に収集されてもよい。 In this embodiment, the memory unit 14 stores a firmware table 14a, a file table 14b, etc. Note that this information is not limited to being stored in the memory unit 14 of the detection device 10, and may be collected, for example, when the detection process described below is executed.
ここで、図3は、ファームウェアテーブルのデータ構成を例示する図である。図3に例示するように、ファームウェアテーブル14aは、IoT製品の製品名、ファームウェアバージョン番号、ファームウェアリリース日を含む。図3には、例えば、IoT製品の製品名「P_ABC」のファームウェアのファームウェアバージョン番号「FW_ABC_001」、ファームウェアリリース日「2020/01/10」が例示されている。 Here, FIG. 3 is a diagram illustrating an example of the data configuration of the firmware table. As illustrated in FIG. 3, the firmware table 14a includes the product name, firmware version number, and firmware release date of the IoT product. For example, FIG. 3 illustrates the firmware version number "FW_ABC_001" and firmware release date "2020/01/10" of the firmware for the IoT product with the product name "P_ABC".
これらの情報は、後述する検知処理に先立って、IoT製品のファームウェアを提供するサーバ等から、入力部11あるいは通信制御部13を介して、収集部15aにより収集され、記憶部14に蓄積される。 Prior to the detection process described below, this information is collected by the collection unit 15a from a server that provides firmware for the IoT product via the input unit 11 or the communication control unit 13, and is stored in the memory unit 14.
また、図4は、ファイルテーブルのデータ構成を例示する図である。図4に例示するように、ファイルテーブル14bは、ファームウェアに含まれるソフトウェアを表すファイルのファイルID、ファームウェアバージョン番号、ソフトウェア名、ソフトウェアバージョン番号、差分の有無を含む。ファイルテーブル14bは、後述する検知処理において生成され、記憶部14に蓄積される。 FIG. 4 is a diagram illustrating an example of the data configuration of the file table. As illustrated in FIG. 4, the file table 14b includes the file ID of the file representing the software included in the firmware, the firmware version number, the software name, the software version number, and the presence or absence of differences. The file table 14b is generated in the detection process described below, and is stored in the memory unit 14.
図4には、例えば、ファームウェアバージョン番号「FW_ABC_001」のファームウェアに含まれるソフトウェアのファイルについて、ファイルID「SW_ABC_001_0001」、ソフトウェア名「httpserver」、ソフトウェアバージョン番号「1.1.0」であることが示されている。 For example, Figure 4 shows that the software file included in the firmware with firmware version number "FW_ABC_001" has a file ID of "SW_ABC_001_0001", a software name of "httpsserver", and a software version number of "1.1.0".
図2の説明に戻る。制御部15は、CPU(Central Processing Unit)等を用いて実現され、メモリに記憶された処理プログラムを実行する。これにより、制御部15は、図2に例示するように、収集部15a、抽出部15b、特定部15c、判別部15dおよび照合部15eとして機能する。なお、これらの機能部は、それぞれあるいは一部が異なるハードウェアに実装されてもよい。例えば、照合部15eは、他の機能部とは異なるハードウェアに実装されてもよい。また、制御部15は、その他の機能部を備えてもよい。
Returning to the explanation of FIG. 2, the control unit 15 is realized using a CPU (Central Processing Unit) or the like, and executes a processing program stored in memory. As a result, the control unit 15 functions as a collection unit 15a, an
収集部15aは、所定のファームウェアを収集する。例えば、収集部15aは、入力部11あるいは通信制御部13を介して、IoT製品のファームウェア配布サイトからファームウェアおよびファームウェアのメタ情報を収集する。メタ情報は、製品名、ファームウェアバージョン番号、ファームウェアリリース日を含む。収集部15aは、メタ情報をファームウェアテーブル14aとして記憶部14に蓄積する。また、収集部15aは、ファームウェアを以下に説明する抽出部15bに転送する。
The collection unit 15a collects predetermined firmware. For example, the collection unit 15a collects firmware and firmware meta-information from a firmware distribution site for IoT products via the input unit 11 or the communication control unit 13. The meta-information includes the product name, firmware version number, and firmware release date. The collection unit 15a accumulates the meta-information as a firmware table 14a in the storage unit 14. The collection unit 15a also transfers the firmware to the
なお、収集部15aは、収集したファームウェアを、ファームウェアテーブル14aとして記憶部14に記憶させずに、直ちに抽出部15bに転送してもよい。
The collection unit 15a may immediately transfer the collected firmware to the
抽出部15bは、ファームウェアに含まれるソフトウェアを表すファイルを抽出する。具体的には、抽出部15bは、収集部15aから取得したファームウェアをアンパックして、ファームウェアに含まれるファイルを抽出する。抽出部15bは、例えば、Linux(登録商標)であればELFファイルというように、実行形式のプログラムであるファイルを抽出する。
The
また、抽出部15bは、図4に示したように、抽出したファイルのファイルIDとファームウェアバージョン番号とを、ファイルテーブル14bとして記憶部14に蓄積する。
In addition, the
特定部15cは、抽出されたソフトウェアのバージョン番号を特定する。具体的には、特定部15cは、抽出されたファイルから文字列を抽出して、ファイルに対応するソフトウェアのバージョン番号を特定する。 The identification unit 15c identifies the version number of the extracted software. Specifically, the identification unit 15c extracts a character string from the extracted file and identifies the version number of the software corresponding to the file.
例えば、特定部15cは、ファイル内の可読文字の文字列を抽出する静的解析と、ファイルを実行することにより出力された文字列を抽出する動的解析の少なくともいずれかを利用して、ソフトウェアのバージョン番号を特定する。そして、特定部15cは、抽出した文字列に対して、正規表現を用いてソフトウェア名とソフトウェアバージョン番号とを特定する。 For example, the identification unit 15c identifies the version number of the software by using at least one of static analysis, which extracts a string of human-readable characters in a file, and dynamic analysis, which extracts a string output by executing the file. The identification unit 15c then identifies the software name and software version number for the extracted string using regular expressions.
ここで、図5は、特定部の処理をするための図である。図5には、OpenSSLのバージョン番号を特定する処理が例示されている。図5に示す例では、正規表現「^OpenSSL ¥d¥.¥d¥.¥d[a-z]*$」を用いて、抽出した文字列のうちマッチする文字列「OpenSSL 1.0.21」が特定されている。これにより、ソフトウェア名「OpenSSL」とソフトウェアバージョン番号「1.0.21」とが特定されている。 Here, FIG. 5 is a diagram for the processing of the identification unit. FIG. 5 illustrates the processing for identifying the version number of OpenSSL. In the example shown in FIG. 5, the regular expression "^OpenSSL \d\.\d\.\d[a-z]*$" is used to identify the matching string "OpenSSL 1.0.21" from among the extracted strings. This identifies the software name "OpenSSL" and the software version number "1.0.21".
また、図4に示したように、特定部15cは、特定したソフトウェア名とソフトウェアバージョン番号とを、ファイルテーブル14bに追加登録する。 Also, as shown in FIG. 4, the identification unit 15c additionally registers the identified software name and software version number in the file table 14b.
図2の説明に戻る。判別部15dは、時系列に並べた前後のバージョン番号が同一であるソフトウェアの間における差分の有無を判別する。 Returning to the explanation of FIG. 2, the determination unit 15d determines whether there is a difference between software that has the same version number when arranged in chronological order.
ここで、図6および図7は、判別部の処理を説明するための図である。まず、判別部15dは、ソフトウェア名とソフトウェアバージョン番号とを、ファームウェアのリリース日に基づいて時系列に並べる。また、判別部15dは、ソフトウェアごとにバージョン番号を確認し、当該ソフトウェアのハッシュ値を算出する。そして、判別部15dは、前後のソフトウェアのファイルのペアを対象として、差分の有無を判別する。 Here, Figs. 6 and 7 are diagrams for explaining the processing of the discrimination unit. First, the discrimination unit 15d arranges the software names and software version numbers in chronological order based on the firmware release dates. The discrimination unit 15d also checks the version number for each piece of software and calculates a hash value for that software. The discrimination unit 15d then determines whether there are any differences between pairs of files of the previous and next pieces of software.
具体的には、判別部15dは、時系列に並べた前後のバージョン情報が同一であるソフトウェアの間で、ハッシュ値およびプログラム構造が異なる場合に、差分が有ると判別する。 Specifically, the discrimination unit 15d determines that there is a difference when the hash values and program structures are different between software that has the same version information arranged in chronological order.
図6には、あるソフトウェアXについて、ファームウェア更新に基づいて時系列に並べられたソフトウェアのバージョン番号とハッシュ値とが例示されている。判別部15dは、時系列に並べたN個のファームウェアF1、F2、…、FNについて、n=1から順にファームウェアFnとファームウェアFn+1とを確認し、ソフトウェアXのバージョン番号が同一であり、ハッシュ値が異なるファイルのペアを抽出する。 6 illustrates an example of software version numbers and hash values arranged in chronological order based on firmware updates for a certain piece of software X. The determination unit 15d checks firmware Fn and firmware Fn +1 for N pieces of firmware F1 , F2 , ..., FN arranged in chronological order, starting from n= 1 , and extracts pairs of files having the same version number of software X but different hash values.
図6に示す例では、F1とF2については、バージョン番号が異なるため、処理が終了している。次に、F2とF3について、バージョン番号2.1が同一であり、ハッシュ値が異なることから、判別部15dの処理対象のペアとして抽出されている。 6, the processing is completed for F1 and F2 because the version numbers are different. Next, F2 and F3 have the same version number 2.1 and different hash values, so they are extracted as a pair to be processed by the discrimination unit 15d.
また、判別部15dは、抽出したペアについて、さらにプログラム構造が異なる場合に、差分が有ると判別する。この場合に、判別部15dは、後ろのファイルは脆弱性を修正するパッチが適用されたものと推定する。 The discrimination unit 15d also determines that there is a difference between the extracted pairs if the program structures are different. In this case, the discrimination unit 15d estimates that a patch that fixes the vulnerability has been applied to the latter file.
具体的には、判別部15dは、時系列に並べた前後のバージョン情報が同一であるソフトウェアを表すファイルの間で、コードが変化している場合、または一方にのみ存在するコードがある場合に、プログラム構造が異なると判別する。例えば、判別部15dは、2つのバイナリファイルの間で、コードブロック内のアセンブラコードに変化が見られた場合に、プログラム構造が異なると判別する。あるいは、判別部15dは、一方のバイナリファイルにのみ存在するコードブロックがある場合に、プログラム構造が異なると判別する。 Specifically, the discrimination unit 15d determines that the program structures are different when code has changed between files representing software that have the same version information arranged in chronological order, or when code exists in only one of the files. For example, the discrimination unit 15d determines that the program structures are different when a change is found in assembler code within a code block between two binary files. Alternatively, the discrimination unit 15d determines that the program structures are different when a code block exists in only one of the binary files.
図7には、プログラム構造の差分の有無を判別する処理が例示されている。図7に示す例では、判別部15dは、バイナリファイル1,2それぞれの逆アセンブルにより得られた2つのソースコード間でプログラム構造を比較して、差分の有無を判別している。 Figure 7 illustrates a process for determining whether there is a difference in program structure. In the example shown in Figure 7, the determination unit 15d compares the program structure between two source codes obtained by disassembling binary files 1 and 2, respectively, to determine whether there is a difference.
例えば、判別部15dは、図7(差分1)に示すように、コードの変更、または一方にのみ特定のコードが有る場合に、プログラム構造が異なると判別する。また、判別部15dは、図7(差分2)に示すように、一方にのみ特定のコードブロックが存在する場合に、プログラム構造が異なると判別する。 For example, as shown in FIG. 7 (difference 1), the discrimination unit 15d determines that the program structures are different when there is a change in the code or when specific code is present on only one side. Also, as shown in FIG. 7 (difference 2), the discrimination unit 15d determines that the program structures are different when a specific code block is present on only one side.
また、判別部15dは、図4に例示したように、ファイルテーブル14bに差分の有無を追加登録する。例えば、判別部15dは、前後のファイル間で差分が有ると判別した場合に、後のファイルの「差分」カラムに「有」を登録する。 The discrimination unit 15d also registers the presence or absence of differences in the file table 14b, as shown in FIG. 4. For example, when the discrimination unit 15d determines that there is a difference between the previous and next files, it registers "Yes" in the "Difference" column of the later file.
図2の説明に戻る。照合部15eは、差分があると判別されたソフトウェアを除外して、ファームウェアに含まれるソフトウェアをCVEに照合する。つまり、照合部15eは、脆弱性を修正するパッチが適用されたソフトウェアを、CVEへの照合から除外する。これにより、照合部15eは、脆弱性が修正されたソフトウェアをCVEに照合して脆弱性の有りと誤検知することを回避することが可能となる。
Returning to the explanation of FIG. 2, the
[検知処理]
次に、図8を参照して、本実施形態に係る検知装置10による検知処理について説明する。図8は、検知処理手順を示すフローチャートである。図8のフローチャートは、例えば、検知処理の開始を指示する操作入力があったタイミングで開始される。
[Detection process]
Next, the detection process by the detection device 10 according to the present embodiment will be described with reference to Fig. 8. Fig. 8 is a flowchart showing the procedure of the detection process. The flowchart in Fig. 8 is started, for example, when an operation input is made to instruct the start of the detection process.
まず、収集部15aが、所定のファームウェアを収集する(ステップS1)。例えば、収集部15aは、入力部11あるいは通信制御部13を介して、IoT製品のファームウェア配布サイトからファームウェアおよびファームウェアのメタ情報を収集する。収集部15aは、メタ情報をファームウェアテーブル14aとして記憶部14に蓄積する。また、収集部15aは、ファームウェアを抽出部15bに転送する。
First, the collection unit 15a collects a specific firmware (step S1). For example, the collection unit 15a collects firmware and firmware meta-information from a firmware distribution site for an IoT product via the input unit 11 or the communication control unit 13. The collection unit 15a accumulates the meta-information as a firmware table 14a in the storage unit 14. The collection unit 15a also transfers the firmware to the
次に、抽出部15bが、ファームウェアに含まれるソフトウェアを表すファイルを抽出する(ステップS2)。具体的には、抽出部15bは、収集部15aから取得したファームウェアをアンパックして、ファームウェアに含まれる、実行形式のプログラムであるファイルを抽出する。
Next, the
また、特定部15cが、抽出されたソフトウェアのバージョン番号を特定する(ステップS3)。具体的には、特定部15cは、抽出されたファイルから文字列を抽出して、ファイルに対応するソフトウェアのバージョン番号を特定する。 The identification unit 15c also identifies the version number of the extracted software (step S3). Specifically, the identification unit 15c extracts a character string from the extracted file and identifies the version number of the software corresponding to the file.
例えば、特定部15cは、ファイル内の可読文字の文字列を抽出する静的解析と、ファイルを実行することにより出力された文字列を抽出する動的解析の少なくともいずれかを利用して、ソフトウェアのバージョン番号を特定する。そして、特定部15cは、抽出した文字列に対して、正規表現を用いてソフトウェア名とソフトウェアバージョン番号とを特定する。 For example, the identification unit 15c identifies the version number of the software by using at least one of static analysis, which extracts a string of human-readable characters in a file, and dynamic analysis, which extracts a string output by executing the file. The identification unit 15c then identifies the software name and software version number for the extracted string using regular expressions.
そして、判別部15dが、時系列に並べた前後のバージョン番号が同一であるソフトウェアの間における差分の有無を判別する(ステップS4)。具体的には、判別部15dは、時系列に並べた前後のバージョン情報が同一であるソフトウェアを表すファイルの間で、ハッシュ値およびプログラム構造が異なる場合に、差分が有ると判別する。 Then, the discrimination unit 15d discriminates whether or not there is a difference between the software whose version numbers are the same before and after the chronological order (step S4). Specifically, the discrimination unit 15d discriminates that there is a difference when the hash values and program structures are different between files representing software whose version information is the same before and after the chronological order.
また、判別部15dは、時系列に並べた前後のバージョン情報が同一であるソフトウェアを表すファイルの間で、コードが変化している場合、または一方にのみ存在するコードがある場合に、プログラム構造が異なると判別する。 The discrimination unit 15d also discriminates that the program structures are different when code has changed between files representing software that have the same version information arranged in chronological order, or when code exists in only one of the files.
そして、照合部15eが、差分があると判別されたソフトウェアを除外して、ファームウェアに含まれるソフトウェアをCVEに照合する(ステップS5)。つまり、照合部15eは、脆弱性を修正するパッチが適用されたソフトウェアを、CVEへの照合から除外する。これにより、一連の検知処理が完了する。
Then, the
[効果]
以上、説明したように、検知装置10において、収集部15aが、所定のファームウェアを収集する。また、抽出部15bが、ファームウェアに含まれるソフトウェアを表すファイルを抽出する。また、特定部15cが、抽出されたソフトウェアのバージョン番号を特定する。また、判別部15dが、時系列に並べた前後のバージョン番号が同一であるソフトウェアの間における差分の有無を判別する。
[effect]
As described above, in the detection device 10, the collection unit 15a collects predetermined firmware. The
具体的には、特定部15cは、ファイル内の可読文字の文字列を抽出する静的解析と、ファイルを実行することにより出力された文字列を抽出する動的解析の少なくともいずれかを利用して、ソフトウェアのバージョン番号を特定する。 Specifically, the identification unit 15c identifies the version number of the software by using at least one of static analysis, which extracts a string of human-readable characters in the file, and dynamic analysis, which extracts a string output by executing the file.
また、判別部15dは、時系列に並べた前後のバージョン情報が同一であるソフトウェアの間で、ハッシュ値およびプログラム構造が異なる場合に、差分が有ると判別する。 The discrimination unit 15d also determines that there is a difference when the hash values and program structures are different between software that has the same version information arranged in chronological order.
また、判別部15dは、時系列に並べた前後のバージョン情報が同一であるソフトウェアを表すファイルの間で、コードが変化している場合、または一方にのみ存在するコードがある場合に、プログラム構造が異なると判別する。 The discrimination unit 15d also discriminates that the program structures are different when code has changed between files representing software that have the same version information arranged in chronological order, or when code exists in only one of the files.
ここで、従来、インストールされたソフトウェア名とバージョン番号とがシステム管理者によって正しく管理されているシステムでは、CVEとの照合により、正確に脆弱性の有無を判別できる。また、システム管理者が脆弱性に対するパッチ適用を記録しておけば、誤検知の発生を感知できる。 Here, in a conventional system where the name and version number of installed software are properly managed by the system administrator, the presence or absence of vulnerabilities can be accurately determined by comparing with the CVE. In addition, if the system administrator keeps a record of patch application for vulnerabilities, the occurrence of false positives can be detected.
一方、一般にIoT所有者は、IoTで動作するソフトウェアのソフトウェア名やバージョン番号の列挙、アップデート等を、ソフトウェアごとに個別に管理することができず、ベンダから提供されるファームウェアを用いてアップデートするに過ぎない。したがって、IoT所有者がIoT上で動作するソフトウェアの脆弱性の有無を調査することは困難である。 On the other hand, IoT owners generally cannot individually manage the software names and version numbers of software that runs on the IoT, or manage updates, etc. for each piece of software, and can only update using firmware provided by the vendor. Therefore, it is difficult for IoT owners to investigate whether software running on the IoT has vulnerabilities.
これに対し、本実施形態の検知装置10によれば、脆弱性を修正するパッチが適用されたソフトウェアを推定することができる。したがって、パッチが適用されたソフトウェアを除外してCVEに照合することにより、IoT上で動作するソフトウェアの脆弱性の有無を正確に検知することが可能となる。 In contrast, the detection device 10 of this embodiment can estimate software to which a patch that fixes a vulnerability has been applied. Therefore, by excluding software to which a patch has been applied and comparing it with the CVE, it is possible to accurately detect whether or not software running on the IoT has vulnerabilities.
また、照合部15eは、差分があると判別されたソフトウェアを除外して、ファームウェアに含まれるソフトウェアを脆弱性データベースに照合する。これにより、検知装置10は、脆弱性を修正するパッチが適用されたソフトウェアをCVEに照合して脆弱性の有りと誤検知することを、回避することが可能となる。
The
[プログラム]
上記実施形態に係る検知装置10が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。一実施形態として、検知装置10は、パッケージソフトウェアやオンラインソフトウェアとして上記の検知処理を実行する検知プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の検知プログラムを情報処理装置に実行させることにより、情報処理装置を検知装置10として機能させることができる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistant)等のスレート端末等がその範疇に含まれる。また、検知装置10の機能を、クラウドサーバーに実装してもよい。
[program]
A program in which the process executed by the detection device 10 according to the above embodiment is written in a language executable by a computer can also be created. As an embodiment, the detection device 10 can be implemented by installing a detection program that executes the above detection process as package software or online software on a desired computer. For example, the above detection program can be executed by an information processing device, causing the information processing device to function as the detection device 10. In addition, the information processing device also includes mobile communication terminals such as smartphones, mobile phones, and PHS (Personal Handyphone System), as well as slate terminals such as PDA (Personal Digital Assistant). The function of the detection device 10 may also be implemented on a cloud server.
図9は、検知プログラムを実行するコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有する。これらの各部は、バス1080によって接続される。
Figure 9 is a diagram showing an example of a computer that executes a detection program. The
メモリ1010は、ROM(Read Only Memory)1011およびRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1031に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1041に接続される。ディスクドライブ1041には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース1050には、例えば、マウス1051およびキーボード1052が接続される。ビデオアダプタ1060には、例えば、ディスプレイ1061が接続される。
The
ここで、ハードディスクドライブ1031は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093およびプログラムデータ1094を記憶する。上記実施形態で説明した各情報は、例えばハードディスクドライブ1031やメモリ1010に記憶される。
Here, the hard disk drive 1031 stores, for example, an
また、検知プログラムは、例えば、コンピュータ1000によって実行される指令が記述されたプログラムモジュール1093として、ハードディスクドライブ1031に記憶される。具体的には、上記実施形態で説明した検知装置10が実行する各処理が記述されたプログラムモジュール1093が、ハードディスクドライブ1031に記憶される。
The detection program is stored in the hard disk drive 1031, for example, as a
また、検知プログラムによる情報処理に用いられるデータは、プログラムデータ1094として、例えば、ハードディスクドライブ1031に記憶される。そして、CPU1020が、ハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した各手順を実行する。
In addition, data used for information processing by the detection program is stored as
なお、検知プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ1041等を介してCPU1020によって読み出されてもよい。あるいは、検知プログラムに係るプログラムモジュール1093やプログラムデータ1094は、LAN(Local Area Network)やWAN(Wide Area Network)等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
The
以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述および図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例および運用技術等は全て本発明の範疇に含まれる。 The above describes an embodiment of the invention made by the inventor, but the present invention is not limited to the description and drawings that form part of the disclosure of the present invention according to this embodiment. In other words, other embodiments, examples, operational techniques, etc. made by those skilled in the art based on this embodiment are all included in the scope of the present invention.
10 検知装置
11 入力部
12 出力部
13 通信制御部
14 記憶部
14a ファームウェアテーブル
14b ファイルテーブル
15 制御部
15a 収集部
15b 抽出部
15c 特定部
15d 判別部
15e 照合部
REFERENCE SIGNS LIST 10 Detection device 11 Input unit 12 Output unit 13 Communication control unit 14
Claims (6)
前記ファームウェアに含まれるソフトウェアを表すファイルを抽出する抽出部と、
抽出された前記ソフトウェアのバージョン番号を特定する特定部と、
時系列に並べた前後の前記バージョン番号が同一であるソフトウェアの間における差分の有無を判別する判別部と、
前記差分があると判別されたソフトウェアを除外して、前記ファームウェアに含まれるソフトウェアを脆弱性データベースに照合する照合部と、
を有することを特徴とする検知装置。 A collection unit that collects predetermined firmware;
an extracting unit that extracts a file representing software included in the firmware;
An identification unit that identifies a version number of the extracted software;
a determination unit that determines whether or not there is a difference between two pieces of software having the same version number arranged in chronological order;
a comparison unit that compares software included in the firmware with a vulnerability database, excluding software determined to have the difference;
A detection device comprising:
所定のファームウェアを収集する収集工程と、
前記ファームウェアに含まれるソフトウェアを表すファイルを抽出する抽出工程と、
抽出された前記ソフトウェアのバージョン番号を特定する特定工程と、
時系列に並べた前後の前記バージョン番号が同一であるソフトウェアの間における差分の有無を判別する判別工程と、
前記差分があると判別されたソフトウェアを除外して、前記ファームウェアに含まれるソフトウェアを脆弱性データベースに照合する照合工程と、
を含んだことを特徴とする検知方法。 A detection method performed by a detection device, comprising:
A collection step of collecting predetermined firmware;
an extraction step for extracting a file representing software included in the firmware;
identifying a version number of the extracted software;
a determination step of determining whether or not there is a difference between the software having the same version number arranged in chronological order;
a comparison step of excluding the software determined to have the difference and comparing the software included in the firmware with a vulnerability database;
A detection method comprising:
前記ファームウェアに含まれるソフトウェアを表すファイルを抽出する抽出ステップと、
抽出された前記ソフトウェアのバージョン番号を特定する特定ステップと、
時系列に並べた前後の前記バージョン番号が同一であるソフトウェアの間における差分の有無を判別する判別ステップと、
前記差分があると判別されたソフトウェアを除外して、前記ファームウェアに含まれるソフトウェアを脆弱性データベースに照合する照合ステップと、
をコンピュータに実行させるための検知プログラム。 A collection step of collecting predetermined firmware;
an extraction step for extracting a file representing software included in said firmware;
identifying a version number of the extracted software;
a determination step of determining whether or not there is a difference between the software having the same version number before and after the software arranged in chronological order;
a comparison step of comparing software included in the firmware with a vulnerability database, excluding the software determined to have the difference;
A detection program for causing a computer to execute the above.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2022024973A JP7672654B2 (en) | 2022-02-21 | 2022-02-21 | DETECTION APPARATUS, DETECTION METHOD, AND DETECTION PROGRAM |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2022024973A JP7672654B2 (en) | 2022-02-21 | 2022-02-21 | DETECTION APPARATUS, DETECTION METHOD, AND DETECTION PROGRAM |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2023121566A JP2023121566A (en) | 2023-08-31 |
| JP7672654B2 true JP7672654B2 (en) | 2025-05-08 |
Family
ID=87798083
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2022024973A Active JP7672654B2 (en) | 2022-02-21 | 2022-02-21 | DETECTION APPARATUS, DETECTION METHOD, AND DETECTION PROGRAM |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP7672654B2 (en) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2018197993A (en) | 2017-05-24 | 2018-12-13 | シャープ株式会社 | TERMINAL DEVICE, SERVER DEVICE, TERMINAL DEVICE CONTROL PROGRAM, SERVER DEVICE CONTROL METHOD, AND SYSTEM |
| JP2019082816A (en) | 2017-10-30 | 2019-05-30 | 富士通株式会社 | Information processing device, information processing method and program |
| JP2019204152A (en) | 2018-05-21 | 2019-11-28 | キヤノン株式会社 | Information processing apparatus, update method of information processing apparatus, and program |
-
2022
- 2022-02-21 JP JP2022024973A patent/JP7672654B2/en active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2018197993A (en) | 2017-05-24 | 2018-12-13 | シャープ株式会社 | TERMINAL DEVICE, SERVER DEVICE, TERMINAL DEVICE CONTROL PROGRAM, SERVER DEVICE CONTROL METHOD, AND SYSTEM |
| JP2019082816A (en) | 2017-10-30 | 2019-05-30 | 富士通株式会社 | Information processing device, information processing method and program |
| JP2019204152A (en) | 2018-05-21 | 2019-11-28 | キヤノン株式会社 | Information processing apparatus, update method of information processing apparatus, and program |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2023121566A (en) | 2023-08-31 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12561442B2 (en) | Prioritizing vulnerabilities | |
| US10885200B2 (en) | Detecting security risks related to a software component | |
| CN108140091B (en) | Vulnerability discovery device, vulnerability discovery method, and storage medium | |
| JP6088713B2 (en) | Vulnerability discovery device, vulnerability discovery method, and vulnerability discovery program | |
| EP2790122B1 (en) | System and method for correcting antivirus records to minimize false malware detections | |
| US8621278B2 (en) | System and method for automated solution of functionality problems in computer systems | |
| US9621571B2 (en) | Apparatus and method for searching for similar malicious code based on malicious code feature information | |
| EP2807598B1 (en) | Identifying trojanized applications for mobile environments | |
| US20090133125A1 (en) | Method and apparatus for malware detection | |
| US20180089430A1 (en) | Computer security profiling | |
| US20090038011A1 (en) | System and method of identifying and removing malware on a computer system | |
| JP2023007169A (en) | Program, vulnerability detection method, and information processor | |
| JP2014038596A (en) | Method for identifying malicious executable | |
| KR20150134679A (en) | Analysis system and method for patch file | |
| US9330260B1 (en) | Detecting auto-start malware by checking its aggressive load point behaviors | |
| US20100024035A1 (en) | Vulnerability shield system | |
| JP6282217B2 (en) | Anti-malware system and anti-malware method | |
| US8347285B2 (en) | Embedded agent for self-healing software | |
| EP3855334B1 (en) | Management system, acquisition device and management method | |
| CN112579330B (en) | Methods, devices and equipment for processing abnormal data in operating systems | |
| CN115982713A (en) | Vulnerability repairing method and device, electronic equipment and computer readable storage medium | |
| JP7672654B2 (en) | DETECTION APPARATUS, DETECTION METHOD, AND DETECTION PROGRAM | |
| JP6884652B2 (en) | White list management system and white list management method | |
| JP7670147B2 (en) | Attack analysis support device, attack analysis support method, and program | |
| US20140137253A1 (en) | Security method and apparatus |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20220222 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240418 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20250131 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20250204 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20250306 |
|
| 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: 20250318 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20250414 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7672654 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |