WO2021245837A1 - バックドア検査装置、バックドア検査方法、及びコンピュータ可読媒体 - Google Patents
バックドア検査装置、バックドア検査方法、及びコンピュータ可読媒体 Download PDFInfo
- Publication number
- WO2021245837A1 WO2021245837A1 PCT/JP2020/021920 JP2020021920W WO2021245837A1 WO 2021245837 A1 WO2021245837 A1 WO 2021245837A1 JP 2020021920 W JP2020021920 W JP 2020021920W WO 2021245837 A1 WO2021245837 A1 WO 2021245837A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- backdoor
- inspection
- certificate
- software
- code block
- Prior art date
Links
- 238000010998 test method Methods 0.000 title 1
- 238000007689 inspection Methods 0.000 claims abstract description 110
- 238000000034 method Methods 0.000 claims abstract description 75
- 238000012545 processing Methods 0.000 claims abstract description 51
- 238000004364 calculation method Methods 0.000 claims description 10
- 230000006870 function Effects 0.000 description 32
- 238000012916 structural analysis Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 3
- 230000008520 organization Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/556—Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Definitions
- This disclosure relates to a backdoor inspection device, a backdoor inspection method, and a computer-readable medium.
- infrastructure and corporate systems are becoming more complex. For this reason, infrastructure and corporate systems are not only composed of devices from a single company, but are built by procuring devices from various companies from the outside and combining them.
- the "backdoor” can be defined, for example, as a function that is not known to and is not desired by the user, which is incorporated into the software including a plurality of functions as a part of the software.
- Non-Patent Document 1 A method for detecting a specific type of backdoor is disclosed in, for example, Non-Patent Document 1.
- the present inventors have, for example, a need for a device maker of a device in which software is installed to prove that the software does not include a backdoor, and the software installed in the device is considered from the viewpoint of intellectual property protection. I found that there is a need to obfuscate from. That is, the present inventor has found that there is a need to realize both proof of software reliability and software obfuscation.
- the obfuscation process includes, for example, a process of encrypting software, a process of embedding a dummy code in the software, and the like.
- An object of the present disclosure is to provide a backdoor inspection device, a backdoor inspection method, and a computer-readable medium that can realize both proof of software reliability and obfuscation of software.
- the backdoor inspection device includes a specific means for identifying a plurality of code blocks included in the software to be inspected, and a specific means.
- An inspection means that performs an inspection process for the backdoor for each identified code block,
- a processing means for executing adjustment processing including obfuscation processing for the software, and
- a certificate generation means for generating a first certificate containing at least the result information of the inspection process,
- An output means for outputting the adjusted software together with the first certificate, and Equipped with.
- the backdoor inspection method is to identify a plurality of code blocks contained in the software to be inspected. Performing a backdoor inspection process for each identified code block, Performing adjustment processing including obfuscation processing on the software, Generating a first certificate that contains at least the result information of the inspection process, and Outputting the adjusted software together with the first certificate, including.
- the non-transitory computer-readable medium identifies a plurality of code blocks contained in the software to be inspected. Performing a backdoor inspection process for each identified code block, Performing adjustment processing including obfuscation processing on the software, Generating a first certificate that contains at least the result information of the inspection process, and Outputting the adjusted software together with the first certificate, A program that causes the backdoor inspection device to execute the process including the above is stored.
- This disclosure makes it possible to provide a backdoor inspection device, a backdoor inspection method, and a computer-readable medium that can realize both proof of software reliability and obfuscation of software.
- FIG. 1 is a block diagram showing an example of a backdoor inspection device according to the first embodiment.
- the backdoor inspection device 10 shown in FIG. 1 is arranged and used, for example, in a certification body. Then, the backdoor inspection device 10 receives software transmitted from, for example, an equipment manufacturer. This software is subject to inspection and may be referred to simply as "target software" below.
- the target software may be source code before compilation or binary code after compilation.
- the backdoor inspection device 10 has a specific unit 11, an inspection unit 12, an adjustment processing unit 13, a certificate generation unit 14, and an output unit 15.
- the identification unit 11 identifies a plurality of "code blocks" included in the target software.
- the "code block” may be, for example, a functional block corresponding to a function included in the target software, or may be a basic block having a unit smaller than the functional block.
- the inspection unit 12 executes an inspection process for the backdoor for each code block specified by the specific unit 11.
- the inspection unit 12 executes the inspection processing on the target software before the "obfuscation processing" is performed, the inspection processing can be reliably executed.
- the adjustment processing unit 13 executes "adjustment processing” including "obfuscation processing” for the target software.
- the "obfuscation process” includes a process of encrypting the target software or a process of embedding a dummy code in the target software. If the inspection process obtains an inspection result that the code block that is the backdoor does not exist in the target software, the adjustment processing unit 13 executes the adjustment process and is a backdoor in the target software in the inspection process. If the inspection result that the code block exists is obtained, the adjustment process may be executed.
- the certificate generation unit 14 generates a certificate (hereinafter, may be referred to as a "first certificate") including at least the result information of the inspection process.
- the result information of the inspection process includes, for example, information indicating whether or not a code block which is a backdoor exists in the target software.
- the output unit 15 outputs the adjusted target software together with the first certificate.
- the adjusted software and the first certificate are sent together, for example, to the equipment manufacturer.
- both the proof of the reliability of the software and the obfuscation of the software can be realized.
- the device manufacturer obfuscates the target software after receiving the certificate for the target software, the certificate becomes meaningless.
- the backdoor inspection device 10 can realize both the proof of the reliability of the software and the obfuscation of the software, so that such a problem does not occur.
- the backdoor inspection device 10 is executing the backdoor inspection method.
- This backdoor inspection method identifies multiple code blocks contained in the software to be inspected, executes an inspection process for the backdoor for each identified code block, and obfuscates the software. It includes performing an adjustment process including the conversion process, generating a first certificate containing at least the result information of the inspection process, and outputting the adjusted software together with the first certificate.
- the second embodiment relates to a more specific embodiment.
- FIG. 2 is a block diagram showing an example of the backdoor inspection device according to the second embodiment.
- the backdoor inspection device 20 includes a specific unit 11, an inspection unit 12, an adjustment processing unit 13, an output unit 15, a hash value calculation unit 21, and a certificate generation unit 22.
- the hash value calculation unit 21 calculates the hash value of the target software that has been adjusted by the adjustment processing unit 13.
- the certificate generation unit 22 generates a first certificate including the result information of the inspection process and the hash value calculated by the hash value calculation unit 21.
- the certificate generation unit 22 generates a certificate (hereinafter, may be referred to as a “second certificate”) including the result information of the inspection process when the inspection process by the inspection unit 12 is completed.
- the certificate generation unit 22 generates the first certificate by adding the hash value to the second certificate at the stage where the hash value is calculated by the hash value calculation unit 21. That is, the first certificate in the second embodiment includes the inspection result and a hash value as information for associating the inspection result with the target software after the adjustment process.
- FIG. 3 is a flowchart showing an example of the processing operation of the backdoor inspection device according to the second embodiment. The processing flow shown in FIG. 3 starts, for example, when the backdoor inspection device 20 receives the target software.
- the identification unit 11 identifies a plurality of code blocks included in the target software (step S101).
- the inspection unit 12 executes an inspection process for the backdoor for each specified code block (step S102).
- the certificate generation unit 22 generates a second certificate including the inspection result (step S103).
- the adjustment processing unit 13 executes the adjustment processing for the target software (step S104).
- the hash value calculation unit 21 calculates the hash value of the target software after the adjustment process (step S105).
- the certificate generation unit 22 generates the first certificate by adding a hash value to the second certificate (step S106).
- the output unit 15 outputs the target software after the adjustment process together with the first certificate (step S107).
- the backdoor inspection device 20 hash value calculation unit 21 calculates the hash value of the target software that has been adjusted by the adjustment processing unit 13.
- the certificate generation unit 22 generates a first certificate including the result information of the inspection process and the hash value calculated by the hash value calculation unit 21.
- the backdoor inspection device 20 With the configuration of the backdoor inspection device 20, it is possible to generate a first certificate including both the result information of the inspection process and the hash value associated with the result information and the target software after the adjustment process, so that the inspection process can be performed.
- the reliability of the result information (that is, the reliability of the first certificate) can be enhanced.
- the adjustment process may include "additional processing of security function" by code rewriting together with the obfuscation process or instead of the obfuscation process.
- the adjustment processing unit 13 may embed a “function” in the target software, which periodically scans its own memory to confirm whether or not it has been tampered with, as “additional processing of the security function”.
- the adjustment processing unit 13 may add an execution code of a function for confirming the presence or absence of falsification to the target software, and rewrite the target software so that the added execution code is called.
- the adjustment process may include a "debug information deletion process" included in the target software together with the obfuscation process or instead of the obfuscation process.
- the debug information is, for example, the function name, the variable name, and the information of the correspondence with the line of the source code included in the executable file.
- the adjustment processing unit 13 may delete them by using the strip command.
- the certificate generation unit 22 may include the signature of the inspection organization in which the backdoor inspection device 20 is arranged in the first certificate. Further, the certificate generation unit 22 may include the signature of the backdoor inspection device 20 in the first certificate. Further, the certificate generation unit 22 may include the hash value or the name of the target software before the adjustment process is performed in the first certificate. Further, the certificate generation unit 22 is the version of the backdoor inspection device 20, the ID of the analyst who performed the analysis using the backdoor inspection device 20, the signature of the analyst, the organization to which the analyst belongs, or the analyst. The name and the like may be included in the first certificate. Further, the certificate generation unit 22 may include information regarding the position of the code block, which is a backdoor, in the target software in the first certificate as the result information of the inspection process.
- the third embodiment relates to a configuration example of a specific unit.
- FIG. 4 is a block diagram showing an example of a specific part in the third embodiment.
- the specific unit 11 includes a specific processing unit 11A and a structural analysis unit 11B.
- the specific processing unit 11A specifies a "predetermined code block" corresponding to a "predetermined predetermined function” in the target software.
- the "predetermined predetermined function” is, for example, an “interface function", an "authentication function (authentication routine)", a “command parser function (parser routine)", or the like. That is, the "predetermined predetermined function” is a function in which various functions follow. That is, the "predetermined predetermined function” corresponds to the code block that is the starting point in the control flow graph for the target software.
- the specific processing unit 11A uses, for example, a "specific rule table ("first specific table ”)" in which a plurality of predetermined functions and features of the predetermined code blocks corresponding to each predetermined function are associated with each other to generate a predetermined code block. It may be specified. In this case, the specific processing unit 11A specifies a portion of the target software that matches the characteristics of each predetermined code block held in the specific rule table as the predetermined code block. Further, the specifying processing unit 11A may execute one or a plurality of algorithms or modules for specifying a predetermined function instead of the table to specify a predetermined code block.
- the structural analysis unit 11B analyzes the structure of the target software by tracing the control flow starting from the predetermined code block specified by the specific processing unit 11A, and identifies the code block corresponding to the function other than the predetermined function. ..
- the structural analysis unit 11B creates a control flow graph as shown in FIG. 5 by tracing the control flow starting from the code block of the authentication function specified by the specific processing unit 11A.
- the structural analysis unit 11B uses the "specific rule table (" second specific table ")" to specify the code block corresponding to the function other than the predetermined function.
- the "second specific table” associates the type of the code block that is the starting point with the characteristics of the specific target code block that should be specified according to the type.
- the "characteristic of the specific target code block” is "after passing through the authentication routine in the control flow graph”. "Existing code block” is associated.
- the "code block of the command parser function” which is the starting code block the "command dispatched by the parser” or the “characteristic of the specific target code block” is used.
- a functional block containing a function is associated with it.
- the "authentication function code block” and the “specific target code block (indicated by circles in FIG. 5)” can also be referred to as “nodes", respectively.
- the arrows correspond to the control flow.
- the inspection unit 12 does not pass through the authentication code block in the control flow graph created by the structural analysis unit 11B, but the code block specified by the structural analysis unit 11B (that is, the execution portion that requires authentication). ) Is detected.
- the inspection unit 12 detects a code block including a command (or function) not described in the specification in the control flow graph created by the structural analysis unit 11B.
- FIG. 6 is a diagram showing a hardware configuration example of the backdoor inspection device.
- the backdoor inspection device 100 has a processor 101 and a memory 102.
- the processor 101 may be, for example, a microprocessor, an MPU (Micro Processing Unit), or a CPU (Central Processing Unit).
- the processor 101 may include a plurality of processors.
- the memory 102 is composed of a combination of a volatile memory and a non-volatile memory.
- the memory 102 may include storage located away from the processor 101. In this case, the processor 101 may access the memory 102 via an I / O interface (not shown).
- the backdoor inspection devices 10 and 20 of the first embodiment and the second embodiment can each have the hardware configuration shown in FIG.
- the value calculation unit 21 may be realized by the processor 101 reading and executing the program stored in the memory 102.
- the program is stored using various types of non-transitory computer readable medium and can be supplied to the backdoor inspection devices 10 and 20. Examples of non-temporary computer-readable media include magnetic recording media (eg, flexible disks, magnetic tapes, hard disk drives), magneto-optical recording media (eg, magneto-optical disks).
- non-temporary computer-readable media examples include CD-ROM (Read Only Memory), CD-R, and CD-R / W.
- non-transient computer-readable media include semiconductor memory.
- the semiconductor memory includes, for example, a mask ROM, a PROM (Programmable ROM), an EPROM (Erasable PROM), a flash ROM, and a RAM (Random Access Memory).
- the program may also be supplied to the backdoor inspection devices 10 and 20 by various types of temporary computer readable medium. Examples of temporary computer-readable media include electrical, optical, and electromagnetic waves.
- the temporary computer-readable medium can supply the program to the backdoor inspection devices 10 and 20 via a wired communication path such as an electric wire and an optical fiber, or a wireless communication path.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
バックドア検査装置(10)にて特定部(11)は、対象ソフトウェアに含まれる複数のコードブロックを特定する。検査部(12)は、特定部(11)にて特定された各コードブロックに対して、バックドアについての検査処理を実行する。調整処理部(13)は、対象ソフトウェアに対して、難読化処理を含む調整処理を実行する。証明書生成部(14)は、検査処理の結果情報を少なくとも含む第1証明書を生成する。出力部(15)は、調整処理が施された対象ソフトウェアを第1証明書と共に出力する。
Description
本開示は、バックドア検査装置、バックドア検査方法、及びコンピュータ可読媒体に関する。
インフラや企業システムは、複雑化している。このため、インフラや企業システムは、単一の企業のデバイスだけで構成されるのではなく、様々な企業のデバイスを外部から調達しそれらを組み合わせて、構築されている。
しかしながら、近年、これらのデバイスにおいてソフトウェア(ファームウェア)およびハードウェアの両面で、ユーザが認知していない隠された機能又はユーザが予期していない機能が発見される、インシデントが多数報告されている。すなわち、「バックドア」に関連する多数のインシデントが報告されている。「バックドア」とは、例えば、複数の機能を含むソフトウェアに対して該ソフトウェアの一部として組み込まれた、ユーザに知らされていない且つ望まれていない機能として定義できる。
特定の種類のバックドアを検知する方法が、例えば、非特許文献1に開示されている。
F. Schuster and T. Holz, "Towards reducing the attack surface of software backdoors," In Proceedings of the 2013 ACM SIGSAC conference on Computer & communications security (CCS), 2013.
本発明者らは、例えばソフトウェアがインストールされた機器の機器メーカが、そのソフトウェアにバックドアが含まれていないことを証明したいというニーズ、及び、機器にインストールされているソフトウェアを知財保護の観点から難読化したいというニーズがある、ことを見出した。すなわち、本発明者は、ソフトウェアの信頼性の証明及びソフトウェアの難読化の両方を実現するニーズがあることを見出した。なお、難読化処理は、例えば、ソフトウェアを暗号化する処理、又は、ソフトウェアに対してダミーコードを埋め込む処理等を含む。
本開示の目的は、ソフトウェアの信頼性の証明及びソフトウェアの難読化の両方を実現できる、バックドア検査装置、バックドア検査方法、及びコンピュータ可読媒体を提供することにある。
第1の態様にかかるバックドア検査装置は、検査対象であるソフトウェアに含まれる複数のコードブロックを特定する特定手段と、
特定された各コードブロックに対して、バックドアについての検査処理を実行する検査手段と、
前記ソフトウェアに対して難読化処理を含む調整処理を実行する処理手段と、
前記検査処理の結果情報を少なくとも含む第1証明書を生成する証明書生成手段と、
前記調整処理が施されたソフトウェアを前記第1証明書と共に出力する出力手段と、
を具備する。
特定された各コードブロックに対して、バックドアについての検査処理を実行する検査手段と、
前記ソフトウェアに対して難読化処理を含む調整処理を実行する処理手段と、
前記検査処理の結果情報を少なくとも含む第1証明書を生成する証明書生成手段と、
前記調整処理が施されたソフトウェアを前記第1証明書と共に出力する出力手段と、
を具備する。
第2の態様にかかるバックドア検査方法は、検査対象であるソフトウェアに含まれる複数のコードブロックを特定すること、
特定された各コードブロックに対して、バックドアについての検査処理を実行すること、
前記ソフトウェアに対して難読化処理を含む調整処理を実行すること、
前記検査処理の結果情報を少なくとも含む第1証明書を生成すること、及び、
前記調整処理が施されたソフトウェアを前記第1証明書と共に出力すること、
を含む。
特定された各コードブロックに対して、バックドアについての検査処理を実行すること、
前記ソフトウェアに対して難読化処理を含む調整処理を実行すること、
前記検査処理の結果情報を少なくとも含む第1証明書を生成すること、及び、
前記調整処理が施されたソフトウェアを前記第1証明書と共に出力すること、
を含む。
第3の態様にかかる非一時的なコンピュータ可読媒体は、検査対象であるソフトウェアに含まれる複数のコードブロックを特定すること、
特定された各コードブロックに対して、バックドアについての検査処理を実行すること、
前記ソフトウェアに対して難読化処理を含む調整処理を実行すること、
前記検査処理の結果情報を少なくとも含む第1証明書を生成すること、及び、
前記調整処理が施されたソフトウェアを前記第1証明書と共に出力すること、
を含む処理を、バックドア検査装置に実行させるプログラムが格納している。
特定された各コードブロックに対して、バックドアについての検査処理を実行すること、
前記ソフトウェアに対して難読化処理を含む調整処理を実行すること、
前記検査処理の結果情報を少なくとも含む第1証明書を生成すること、及び、
前記調整処理が施されたソフトウェアを前記第1証明書と共に出力すること、
を含む処理を、バックドア検査装置に実行させるプログラムが格納している。
本開示により、ソフトウェアの信頼性の証明及びソフトウェアの難読化の両方を実現できる、バックドア検査装置、バックドア検査方法、及びコンピュータ可読媒体を提供することができる。
以下、図面を参照しつつ、実施形態について説明する。なお、実施形態において、同一又は同等の要素には、同一の符号を付し、重複する説明は省略される。
<第1実施形態>
図1は、第1実施形態におけるバックドア検査装置の一例を示すブロック図である。図1に示すバックドア検査装置10は、例えば、認証機関に配設されて用いられる。そして、バックドア検査装置10は、例えば機器メーカから送信されたソフトウェアを受け取る。このソフトウェアは、検査対象であり、以下では、単に「対象ソフトウェア」と呼ぶことがある。対象ソフトウェアは、コンパイル前のソースコードであってもよいし、コンパイル後のバイナリコードであってもよい。
図1は、第1実施形態におけるバックドア検査装置の一例を示すブロック図である。図1に示すバックドア検査装置10は、例えば、認証機関に配設されて用いられる。そして、バックドア検査装置10は、例えば機器メーカから送信されたソフトウェアを受け取る。このソフトウェアは、検査対象であり、以下では、単に「対象ソフトウェア」と呼ぶことがある。対象ソフトウェアは、コンパイル前のソースコードであってもよいし、コンパイル後のバイナリコードであってもよい。
図1においてバックドア検査装置10は、特定部11と、検査部12と、調整処理部13と、証明書生成部14と、出力部15とを有している。
特定部11は、対象ソフトウェアに含まれる複数の「コードブロック」を特定する。「コードブロック」は、例えば、対象ソフトウェアに含まれる機能に対応する機能ブロックであってもよいし、機能ブロックよりも小さい単位のベーシックブロックであってもよい。
検査部12は、特定部11にて特定された各コードブロックに対して、バックドアについての検査処理を実行する。ここで、難読化処理後の対象ソフトウェアについて検査処理を実行することは技術的に難しい。しかしながら、検査部12は「難読化処理」が施される前の対象ソフトウェアに対して検査処理を実行するので、検査処理を確実に実行することができる。
調整処理部13は、対象ソフトウェアに対して、「難読化処理」を含む「調整処理」を実行する。「難読化処理」は、上記の通り、対象ソフトウェアを暗号化する処理、又は、対象ソフトウェアに対してダミーコードを埋め込む処理を含む。なお、調整処理部13は、検査処理にて対象ソフトウェアにバックドアであるコードブロックが存在しないという検査結果が得られた場合、調整処理を実行し、検査処理にて対象ソフトウェアにバックドアであるコードブロックが存在するという検査結果が得られた場合、調整処理を実行してもよい。
証明書生成部14は、検査処理の結果情報を少なくとも含む証明書(以下では、「第1証明書」と呼ぶことがある)を生成する。検査処理の結果情報は、例えば、対象ソフトウェアにバックドアであるコードブロックが存在するか否かを示す情報を含む。
出力部15は、調整処理が施された対象ソフトウェアを第1証明書と共に出力する。これにより、調整処理が施されたソフトウェア及び第1証明書が一緒に例えば機器メーカに送信されることになる。
以上で説明したバックドア検査装置10の構成により、ソフトウェアの信頼性の証明及びソフトウェアの難読化の両方を実現することができる。因みに、対象ソフトウェアについての証明書を受け取った後に機器メーカが対象ソフトウェアの難読化処理を行う場合、証明書が意味のないものになってしまう。これに対して、バックドア検査装置10は、ソフトウェアの信頼性の証明及びソフトウェアの難読化の両方を実現できるので、このような問題は生じない。
なお、バックドア検査装置10は、バックドア検査方法を実行している。このバックドア検査方法は、検査対象であるソフトウェアに含まれる複数のコードブロックを特定すること、特定された各コードブロックに対して、バックドアについての検査処理を実行すること、ソフトウェアに対して難読化処理を含む調整処理を実行すること、検査処理の結果情報を少なくとも含む第1証明書を生成すること、及び、調整処理が施されたソフトウェアを第1証明書と共に出力すること、を含む。
<第2実施形態>
第2実施形態は、より具体的な実施形態に関する。
第2実施形態は、より具体的な実施形態に関する。
<バックドア検査装置の構成例>
図2は、第2実施形態におけるバックドア検査装置の一例を示すブロック図である。図2においてバックドア検査装置20は、特定部11と、検査部12と、調整処理部13と、出力部15と、ハッシュ値算出部21と、証明書生成部22とを有している。
図2は、第2実施形態におけるバックドア検査装置の一例を示すブロック図である。図2においてバックドア検査装置20は、特定部11と、検査部12と、調整処理部13と、出力部15と、ハッシュ値算出部21と、証明書生成部22とを有している。
ハッシュ値算出部21は、調整処理部13にて調整処理が施された対象ソフトウェアのハッシュ値を算出する。
証明書生成部22は、検査処理の結果情報及びハッシュ値算出部21にて算出されたハッシュ値を含む第1証明書を生成する。例えば、証明書生成部22は、検査部12による検査処理が完了した段階で、検査処理の結果情報を含む証明書(以下では、「第2証明書」と呼ぶことがある)を生成する。そして、証明書生成部22は、ハッシュ値算出部21にてハッシュ値が算出された段階で、第2証明書にハッシュ値を追記することによって第1証明書を生成する。すなわち、第2実施形態における第1証明書には、検査結果と、該検査結果と調整処理後の対象ソフトウェアとを紐づける情報としてのハッシュ値とが含められている。
<バックドア検査装置の動作例>
以上の構成を有するバックドア検査装置20の処理動作の一例について説明する。図3は、第2実施形態におけるバックドア検査装置の処理動作の一例を示すフローチャートである。図3に示す処理フローは、例えば、バックドア検査装置20が対象ソフトウェアを受け取るとスタートする。
以上の構成を有するバックドア検査装置20の処理動作の一例について説明する。図3は、第2実施形態におけるバックドア検査装置の処理動作の一例を示すフローチャートである。図3に示す処理フローは、例えば、バックドア検査装置20が対象ソフトウェアを受け取るとスタートする。
バックドア検査装置20にて特定部11は、対象ソフトウェアに含まれる複数のコードブロックを特定する(ステップS101)。
検査部12は、特定された各コードブロックに対して、バックドアについての検査処理を実行する(ステップS102)。
証明書生成部22は、検査結果を含む第2証明書を生成する(ステップS103)。
調整処理部13は、対象ソフトウェアに対して調整処理を実行する(ステップS104)。
ハッシュ値算出部21は、調整処理後の対象ソフトウェアのハッシュ値を算出する(ステップS105)。
証明書生成部22は、第2証明書にハッシュ値を追記することによって第1証明書を生成する(ステップS106)。
出力部15は、調整処理後の対象ソフトウェアを第1証明書と共に出力する(ステップS107)。
以上で説明した第2実施形態によれば、バックドア検査装置20ハッシュ値算出部21は、調整処理部13にて調整処理が施された対象ソフトウェアのハッシュ値を算出する。証明書生成部22は、検査処理の結果情報及びハッシュ値算出部21にて算出されたハッシュ値を含む第1証明書を生成する。
このバックドア検査装置20の構成により、検査処理の結果情報及び該結果情報と調整処理後の対象ソフトウェアとを紐づけるハッシュ値の両方を含む第1証明書を生成することができるので、検査処理の結果情報の信頼性(つまり、第1証明書の信頼性)を高めることができる。
<変形例>
<1>なお、調整処理は、難読化処理と共に、又は、難読化処理に代えて、コード書き換えによる「セキュリティ機能の追加処理」を含んでいてもよい。例えば、調整処理部13は、「セキュリティ機能の追加処理」として、定期的に自身のメモリをスキャンして改ざんの有無を確認する「関数」を対象ソフトウェアに埋め込んでもよい。具体的には、調整処理部13は、改ざんの有無を確認する関数の実行コードを対象ソフトウェアに追加して、追加した実行コードが呼び出されるように対象ソフトウェアを書き換えてもよい。
<1>なお、調整処理は、難読化処理と共に、又は、難読化処理に代えて、コード書き換えによる「セキュリティ機能の追加処理」を含んでいてもよい。例えば、調整処理部13は、「セキュリティ機能の追加処理」として、定期的に自身のメモリをスキャンして改ざんの有無を確認する「関数」を対象ソフトウェアに埋め込んでもよい。具体的には、調整処理部13は、改ざんの有無を確認する関数の実行コードを対象ソフトウェアに追加して、追加した実行コードが呼び出されるように対象ソフトウェアを書き換えてもよい。
また、調整処理は、難読化処理と共に、又は、難読化処理に代えて、対象ソフトウェアに含まれる「デバッグ情報の削除処理」を含んでいてもよい。デバッグ情報は、例えば、実行ファイルに含まれている関数名、変数名、ソースコードの行との対応付けの情報などである。例えば、対象ソフトウェアがLinux(登録商標)の場合には、調整処理部13は、stripコマンドを用いてこれらを削除してもよい。
<2>また、証明書生成部22は、バックドア検査装置20が配設されている検査機関の署名を、第1証明書に含めてもよい。また、証明書生成部22は、バックドア検査装置20の署名を、第1証明書に含めてもよい。また、証明書生成部22は、調整処理が施される前の対象ソフトウェアのハッシュ値又は名称を、第1証明書に含めてもよい。また、証明書生成部22は、バックドア検査装置20のバージョン、バックドア検査装置20を使用して解析を行った解析者のID、解析者の署名、解析者の所属組織、又は、解析者の氏名等を、第1証明書に含めてもよい。また、証明書生成部22は、検査処理の結果情報として、バックドアであるコードブロックの対象ソフトウェアにおける位置に関する情報を、第1証明書に含めてもよい。
<第3実施形態>
第3実施形態は、特定部の構成例に関する。図4は、第3実施形態における特定部の一例を示すブロック図である。図4において特定部11は、特定処理部11Aと、構造解析部11Bとを含む。
第3実施形態は、特定部の構成例に関する。図4は、第3実施形態における特定部の一例を示すブロック図である。図4において特定部11は、特定処理部11Aと、構造解析部11Bとを含む。
特定処理部11Aは、対象ソフトウェアにおいて、「予め定められた所定機能」に対応する「所定コードブロック」を特定する。「予め定められた所定機能」は、例えば、「インタフェース機能」、「認証機能(認証ルーチン)」、及び「コマンドパーサ機能(パーサルーチン)」等である。すなわち、「予め定められた所定機能」は、それの後に種々の機能が続く機能である。つまり、「予め定められた所定機能」は、対象ソフトウェアについてのコントロールフローグラフにおいて起点となるコードブロックに対応する。
特定処理部11Aは、例えば、複数の所定機能と各所定機能に対応する所定コードブロックの特徴とを対応付けた「特定ルールテーブル(「第1特定テーブル」)」を用いて、所定コードブロックを特定してもよい。この場合、特定処理部11Aは、特定ルールテーブルに保持されている各所定コードブロックの特徴にマッチする、対象ソフトウェアの部分を、所定コードブロックとして特定する。また、特定処理部11Aは、テーブルの代わりに、所定機能を特定するための1つもしくは複数のアルゴリズムやモジュールを実行し、所定コードブロックを特定してもよい。
構造解析部11Bは、特定処理部11Aにて特定された所定コードブロックを起点としてコントロールフローを辿ることによって、対象ソフトウェアの構造を解析すると共に、所定機能以外の機能に対応するコードブロックを特定する。例えば、構造解析部11Bは、特定処理部11Aによって特定された認証機能のコードブロックを起点としてコントロールフローを辿ることによって、図5に示すようなコントロールフローグラフを作成する。そして、構造解析部11Bは、「特定ルールテーブル(「第2特定テーブル」)」を用いて、所定機能以外の機能に対応するコードブロックを特定する。「第2特定テーブル」は、起点となるコードブロックの種別と、該種別に応じて特定すべき特定対象コードブロックの特徴とを対応付けている。例えば、「第2特定テーブル」において、起点となるコードブロックである「認証機能のコードブロック」に対しては、「特定対象コードブロックの特徴」として、「コントロールフローグラフにおいて認証ルーチンを通った後に存在するコードブロック」が対応付けられている。また、例えば、「第2特定テーブル」において、起点となるコードブロックである「コマンドパーサ機能のコードブロック」に対しては、「特定対象コードブロックの特徴」として、「パーサによってディスパッチされるコマンド又は関数を含む機能ブロック」が対応付けられている。なお、図3に示すコントロールフローグラフにおいて、「認証機能のコードブロック」及び「(図5にて丸で示されている)特定対象コードブロック」は、それぞれ「ノード」と呼ぶこともできる。また、図5に示すコントロールフローグラフにおいて、矢印は、コントロールフローに対応する。
そして、例えば、検査部12は、構造解析部11Bによって作成されたコントロールフローグラフにおいて、認証コードブロックを通らずに、構造解析部11Bにて特定されたコードブロック(つまり、認証が必要な実行部分)に至る「パス(不正パス)」を検出する。
また、検査部12は、構造解析部11Bによって作成されたコントロールフローグラフにおいて、仕様書に記載が無いコマンド(又は関数)を含むコードブロックを検出する。
<他の実施形態>
図6は、バックドア検査装置のハードウェア構成例を示す図である。図6においてバックドア検査装置100は、プロセッサ101と、メモリ102とを有している。プロセッサ101は、例えば、マイクロプロセッサ、MPU(Micro Processing Unit)、又はCPU(Central Processing Unit)であってもよい。プロセッサ101は、複数のプロセッサを含んでもよい。メモリ102は、揮発性メモリ及び不揮発性メモリの組み合わせによって構成される。メモリ102は、プロセッサ101から離れて配置されたストレージを含んでもよい。この場合、プロセッサ101は、図示されていないI/Oインタフェースを介してメモリ102にアクセスしてもよい。
図6は、バックドア検査装置のハードウェア構成例を示す図である。図6においてバックドア検査装置100は、プロセッサ101と、メモリ102とを有している。プロセッサ101は、例えば、マイクロプロセッサ、MPU(Micro Processing Unit)、又はCPU(Central Processing Unit)であってもよい。プロセッサ101は、複数のプロセッサを含んでもよい。メモリ102は、揮発性メモリ及び不揮発性メモリの組み合わせによって構成される。メモリ102は、プロセッサ101から離れて配置されたストレージを含んでもよい。この場合、プロセッサ101は、図示されていないI/Oインタフェースを介してメモリ102にアクセスしてもよい。
第1実施形態及び第2実施形態のバックドア検査装置10,20は、それぞれ、図6に示したハードウェア構成を有することができる。第1実施形態及び第2実施形態のバックドア検査装置10,20の、特定部11と、検査部12と、調整処理部13と、証明書生成部14,22と、出力部15と、ハッシュ値算出部21とは、プロセッサ101がメモリ102に記憶されたプログラムを読み込んで実行することにより実現されてもよい。プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、バックドア検査装置10,20に供給することができる。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)を含む。さらに、非一時的なコンピュータ可読媒体の例は、CD-ROM(Read Only Memory)、CD-R、CD-R/Wを含む。さらに、非一時的なコンピュータ可読媒体の例は、半導体メモリを含む。半導体メモリは、例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory)を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってバックドア検査装置10,20に供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをバックドア検査装置10,20に供給できる。
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記によって限定されるものではない。本願発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
10 バックドア検査装置
11 特定部
11A 特定処理部
11B 構造解析部
12 検査部
13 調整処理部
14 証明書生成部
15 出力部
20 バックドア検査装置
21 ハッシュ値算出部
22 証明書生成部
11 特定部
11A 特定処理部
11B 構造解析部
12 検査部
13 調整処理部
14 証明書生成部
15 出力部
20 バックドア検査装置
21 ハッシュ値算出部
22 証明書生成部
Claims (8)
- 検査対象であるソフトウェアに含まれる複数のコードブロックを特定する特定手段と、
特定された各コードブロックに対して、バックドアについての検査処理を実行する検査手段と、
前記ソフトウェアに対して難読化処理を含む調整処理を実行する処理手段と、
前記検査処理の結果情報を少なくとも含む第1証明書を生成する証明書生成手段と、
前記調整処理が施されたソフトウェアを前記第1証明書と共に出力する出力手段と、
を具備するバックドア検査装置。 - 前記調整処理が施された前記ソフトウェアのハッシュ値を算出する算出手段をさらに具備し、
前記証明書生成手段は、前記結果情報及び前記算出されたハッシュ値を含む前記第1証明書を生成する、
請求項1記載のバックドア検査装置。 - 前記証明書生成手段は、前記検査処理が完了した段階で、前記結果情報を含む第2証明書を生成し、前記ハッシュ値が算出された段階で、前記第2証明書に前記ハッシュ値を追記することによって前記第1証明書を生成する、
請求項2記載のバックドア検査装置。 - 前記調整処理は、コード書き換えによるセキュリティ機能の追加処理を含む、
請求項1から3のいずれか1項に記載のバックドア検査装置。 - 前記調整処理は、前記ソフトウェアに含まれるデバッグ情報の削除処理を含む、
請求項1から4のいずれか1項に記載のバックドア検査装置。 - 前記処理手段は、前記検査処理にて前記ソフトウェアにバックドアであるコードブロックが存在しないという検査結果が得られた場合、前記調整処理を実行し、前記検査処理にて前記ソフトウェアにバックドアであるコードブロックが存在するという検査結果が得られた場合、前記調整処理を実行しない、
請求項1記載のバックドア検査装置。 - 検査対象であるソフトウェアに含まれる複数のコードブロックを特定すること、
特定された各コードブロックに対して、バックドアについての検査処理を実行すること、
前記ソフトウェアに対して難読化処理を含む調整処理を実行すること、
前記検査処理の結果情報を少なくとも含む第1証明書を生成すること、及び、
前記調整処理が施されたソフトウェアを前記第1証明書と共に出力すること、
を含むバックドア検査方法。 - 検査対象であるソフトウェアに含まれる複数のコードブロックを特定すること、
特定された各コードブロックに対して、バックドアについての検査処理を実行すること、
前記ソフトウェアに対して難読化処理を含む調整処理を実行すること、
前記検査処理の結果情報を少なくとも含む第1証明書を生成すること、及び、
前記調整処理が施されたソフトウェアを前記第1証明書と共に出力すること、
を含む処理を、バックドア検査装置に実行させるプログラムが格納された非一時的なコンピュータ可読媒体。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18/007,629 US20230229766A1 (en) | 2020-06-03 | 2020-06-03 | Backdoor inspection device, backdoor inspection method, and computer-readablemedium |
JP2022529220A JP7448005B2 (ja) | 2020-06-03 | 2020-06-03 | バックドア検査装置、バックドア検査方法、及びプログラム |
PCT/JP2020/021920 WO2021245837A1 (ja) | 2020-06-03 | 2020-06-03 | バックドア検査装置、バックドア検査方法、及びコンピュータ可読媒体 |
JP2024028253A JP2024051105A (ja) | 2020-06-03 | 2024-02-28 | 検査装置、検査方法、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2020/021920 WO2021245837A1 (ja) | 2020-06-03 | 2020-06-03 | バックドア検査装置、バックドア検査方法、及びコンピュータ可読媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021245837A1 true WO2021245837A1 (ja) | 2021-12-09 |
Family
ID=78830696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2020/021920 WO2021245837A1 (ja) | 2020-06-03 | 2020-06-03 | バックドア検査装置、バックドア検査方法、及びコンピュータ可読媒体 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230229766A1 (ja) |
JP (2) | JP7448005B2 (ja) |
WO (1) | WO2021245837A1 (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11282672A (ja) * | 1998-03-31 | 1999-10-15 | Hitachi Software Eng Co Ltd | オンラインプログラム転送方法およびオンラインプログラム実行システム |
JP2002140126A (ja) * | 2000-10-31 | 2002-05-17 | Toshiba Corp | プログラム配布システム、暗号化プログラム配布装置、プログラム不具合情報収集システム、及びプログラム配布方法 |
JP2005222341A (ja) * | 2004-02-05 | 2005-08-18 | Trend Micro Inc | 情報機器上および伝送経路上でのプログラム分析によるセキュリティの確保 |
JP2013045277A (ja) * | 2011-08-24 | 2013-03-04 | Hitachi Solutions Ltd | プログラム難読化方法およびリモートデバッグシステム |
-
2020
- 2020-06-03 WO PCT/JP2020/021920 patent/WO2021245837A1/ja active Application Filing
- 2020-06-03 JP JP2022529220A patent/JP7448005B2/ja active Active
- 2020-06-03 US US18/007,629 patent/US20230229766A1/en active Pending
-
2024
- 2024-02-28 JP JP2024028253A patent/JP2024051105A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11282672A (ja) * | 1998-03-31 | 1999-10-15 | Hitachi Software Eng Co Ltd | オンラインプログラム転送方法およびオンラインプログラム実行システム |
JP2002140126A (ja) * | 2000-10-31 | 2002-05-17 | Toshiba Corp | プログラム配布システム、暗号化プログラム配布装置、プログラム不具合情報収集システム、及びプログラム配布方法 |
JP2005222341A (ja) * | 2004-02-05 | 2005-08-18 | Trend Micro Inc | 情報機器上および伝送経路上でのプログラム分析によるセキュリティの確保 |
JP2013045277A (ja) * | 2011-08-24 | 2013-03-04 | Hitachi Solutions Ltd | プログラム難読化方法およびリモートデバッグシステム |
Also Published As
Publication number | Publication date |
---|---|
JP2024051105A (ja) | 2024-04-10 |
US20230229766A1 (en) | 2023-07-20 |
JP7448005B2 (ja) | 2024-03-12 |
JPWO2021245837A1 (ja) | 2021-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10915659B2 (en) | Privacy detection of a mobile application program | |
WO2017049800A1 (zh) | 检测应用漏洞代码的方法和装置 | |
US9501646B2 (en) | Program verification apparatus, program verification method, and computer readable medium | |
CN109284585B (zh) | 一种脚本加密方法、脚本解密运行方法和相关装置 | |
KR20140039319A (ko) | 소프트웨어 런-타임 프로브넌스 | |
US20200110905A1 (en) | Security hardened software footprint in a computing environment | |
US9367699B2 (en) | Automating the creation and maintenance of policy compliant environments | |
CN104426658A (zh) | 对移动终端上的应用进行身份验证的方法及装置 | |
KR20170089352A (ko) | 가상화 시스템에서 수행하는 무결성 검증 방법 | |
CN109033818B (zh) | 终端、验证方法和计算机可读存储介质 | |
US20220277083A1 (en) | Backdoor inspection device, user device, system, method, and non-transitory computer-readable medium | |
WO2021245837A1 (ja) | バックドア検査装置、バックドア検査方法、及びコンピュータ可読媒体 | |
WO2021038705A1 (ja) | バックドア検査装置、バックドア検査方法、及び非一時的なコンピュータ可読媒体 | |
JP7235126B2 (ja) | バックドア検査装置、バックドア検査方法、及びプログラム | |
WO2020231413A1 (en) | Methodology for trustworthy software build | |
WO2017197869A1 (zh) | 版本文件校验方法及装置、加密方法及装置和存储介质 | |
WO2021250792A1 (ja) | ソフトウェア修正装置、ソフトウェア修正方法、及び非一時的なコンピュータ可読媒体 | |
JP7448003B2 (ja) | システム及び方法 | |
CN113515747B (zh) | 设备升级方法、装置、设备及存储介质 | |
CN115906109A (zh) | 数据审计方法、装置和存储介质 | |
CN114153672A (zh) | 一种芯片验证方法、系统、设备及存储介质 | |
US20170295022A1 (en) | Format conversion of digitally signed files | |
CN111046376B (zh) | 基于安装包的分发审核方法及装置 | |
WO2020115853A1 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
CN112463184A (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: 20939461 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2022529220 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20939461 Country of ref document: EP Kind code of ref document: A1 |