WO2021245837A1 - バックドア検査装置、バックドア検査方法、及びコンピュータ可読媒体 - Google Patents

バックドア検査装置、バックドア検査方法、及びコンピュータ可読媒体 Download PDF

Info

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
Application number
PCT/JP2020/021920
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 US18/007,629 priority Critical patent/US20230229766A1/en
Priority to JP2022529220A priority patent/JP7448005B2/ja
Priority to PCT/JP2020/021920 priority patent/WO2021245837A1/ja
Publication of WO2021245837A1 publication Critical patent/WO2021245837A1/ja
Priority to JP2024028253A priority patent/JP2024051105A/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/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • 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
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test 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証明書と共に出力する出力手段と、
 を具備する。
 第2の態様にかかるバックドア検査方法は、検査対象であるソフトウェアに含まれる複数のコードブロックを特定すること、
 特定された各コードブロックに対して、バックドアについての検査処理を実行すること、
 前記ソフトウェアに対して難読化処理を含む調整処理を実行すること、
 前記検査処理の結果情報を少なくとも含む第1証明書を生成すること、及び、
 前記調整処理が施されたソフトウェアを前記第1証明書と共に出力すること、
 を含む。
 第3の態様にかかる非一時的なコンピュータ可読媒体は、検査対象であるソフトウェアに含まれる複数のコードブロックを特定すること、
 特定された各コードブロックに対して、バックドアについての検査処理を実行すること、
 前記ソフトウェアに対して難読化処理を含む調整処理を実行すること、
 前記検査処理の結果情報を少なくとも含む第1証明書を生成すること、及び、
 前記調整処理が施されたソフトウェアを前記第1証明書と共に出力すること、
 を含む処理を、バックドア検査装置に実行させるプログラムが格納している。
 本開示により、ソフトウェアの信頼性の証明及びソフトウェアの難読化の両方を実現できる、バックドア検査装置、バックドア検査方法、及びコンピュータ可読媒体を提供することができる。
第1実施形態におけるバックドア検査装置の一例を示すブロック図である。 第2実施形態におけるバックドア検査装置の一例を示すブロック図である。 第2実施形態におけるバックドア検査装置の処理動作の一例を示すフローチャートである。 第3実施形態における特定部の一例を示すブロック図である。 コントロールフローグラフの説明に供する図である。 バックドア検査装置のハードウェア構成例を示す図である。
 以下、図面を参照しつつ、実施形態について説明する。なお、実施形態において、同一又は同等の要素には、同一の符号を付し、重複する説明は省略される。
<第1実施形態>
 図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においてバックドア検査装置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にて特定部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は、改ざんの有無を確認する関数の実行コードを対象ソフトウェアに追加して、追加した実行コードが呼び出されるように対象ソフトウェアを書き換えてもよい。
 また、調整処理は、難読化処理と共に、又は、難読化処理に代えて、対象ソフトウェアに含まれる「デバッグ情報の削除処理」を含んでいてもよい。デバッグ情報は、例えば、実行ファイルに含まれている関数名、変数名、ソースコードの行との対応付けの情報などである。例えば、対象ソフトウェアが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とを含む。
 特定処理部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にアクセスしてもよい。
 第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 証明書生成部

Claims (8)

  1.  検査対象であるソフトウェアに含まれる複数のコードブロックを特定する特定手段と、
     特定された各コードブロックに対して、バックドアについての検査処理を実行する検査手段と、
     前記ソフトウェアに対して難読化処理を含む調整処理を実行する処理手段と、
     前記検査処理の結果情報を少なくとも含む第1証明書を生成する証明書生成手段と、
     前記調整処理が施されたソフトウェアを前記第1証明書と共に出力する出力手段と、
     を具備するバックドア検査装置。
  2.  前記調整処理が施された前記ソフトウェアのハッシュ値を算出する算出手段をさらに具備し、
     前記証明書生成手段は、前記結果情報及び前記算出されたハッシュ値を含む前記第1証明書を生成する、
     請求項1記載のバックドア検査装置。
  3.  前記証明書生成手段は、前記検査処理が完了した段階で、前記結果情報を含む第2証明書を生成し、前記ハッシュ値が算出された段階で、前記第2証明書に前記ハッシュ値を追記することによって前記第1証明書を生成する、
     請求項2記載のバックドア検査装置。
  4.  前記調整処理は、コード書き換えによるセキュリティ機能の追加処理を含む、
     請求項1から3のいずれか1項に記載のバックドア検査装置。
  5.  前記調整処理は、前記ソフトウェアに含まれるデバッグ情報の削除処理を含む、
     請求項1から4のいずれか1項に記載のバックドア検査装置。
  6.  前記処理手段は、前記検査処理にて前記ソフトウェアにバックドアであるコードブロックが存在しないという検査結果が得られた場合、前記調整処理を実行し、前記検査処理にて前記ソフトウェアにバックドアであるコードブロックが存在するという検査結果が得られた場合、前記調整処理を実行しない、
     請求項1記載のバックドア検査装置。
  7.  検査対象であるソフトウェアに含まれる複数のコードブロックを特定すること、
     特定された各コードブロックに対して、バックドアについての検査処理を実行すること、
     前記ソフトウェアに対して難読化処理を含む調整処理を実行すること、
     前記検査処理の結果情報を少なくとも含む第1証明書を生成すること、及び、
     前記調整処理が施されたソフトウェアを前記第1証明書と共に出力すること、
     を含むバックドア検査方法。
  8.  検査対象であるソフトウェアに含まれる複数のコードブロックを特定すること、
     特定された各コードブロックに対して、バックドアについての検査処理を実行すること、
     前記ソフトウェアに対して難読化処理を含む調整処理を実行すること、
     前記検査処理の結果情報を少なくとも含む第1証明書を生成すること、及び、
     前記調整処理が施されたソフトウェアを前記第1証明書と共に出力すること、
     を含む処理を、バックドア検査装置に実行させるプログラムが格納された非一時的なコンピュータ可読媒体。
PCT/JP2020/021920 2020-06-03 2020-06-03 バックドア検査装置、バックドア検査方法、及びコンピュータ可読媒体 WO2021245837A1 (ja)

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)

* Cited by examiner, † Cited by third party
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 プログラム難読化方法およびリモートデバッグシステム

Patent Citations (4)

* Cited by examiner, † Cited by third party
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