JPWO2020136793A1 - Information processing equipment, information processing methods and information processing programs - Google Patents

Information processing equipment, information processing methods and information processing programs Download PDF

Info

Publication number
JPWO2020136793A1
JPWO2020136793A1 JP2019520661A JP2019520661A JPWO2020136793A1 JP WO2020136793 A1 JPWO2020136793 A1 JP WO2020136793A1 JP 2019520661 A JP2019520661 A JP 2019520661A JP 2019520661 A JP2019520661 A JP 2019520661A JP WO2020136793 A1 JPWO2020136793 A1 JP WO2020136793A1
Authority
JP
Japan
Prior art keywords
information
variable
vulnerability
type
candidate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019520661A
Other languages
Japanese (ja)
Other versions
JP6599053B1 (en
Inventor
武 植田
武 植田
孝一 清水
孝一 清水
俊 日夏
俊 日夏
雅道 丹治
雅道 丹治
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of JP6599053B1 publication Critical patent/JP6599053B1/en
Publication of JPWO2020136793A1 publication Critical patent/JPWO2020136793A1/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

変数判別部(22)は、機器で実行されるプログラムに含まれる複数の変数の各々の種別を判別する。候補生成部(23)は、変数判別部(22)により判別された複数の変数の各々の種別と、機器が用いる複数の情報資産の各々の種別とを比較し、複数の情報資産の各々と複数の変数の各々との対応関係の候補を1つ以上生成する。The variable determination unit (22) determines the type of each of the plurality of variables included in the program executed by the device. The candidate generation unit (23) compares each type of the plurality of variables determined by the variable determination unit (22) with each type of the plurality of information assets used by the device, and compares each type of the plurality of information assets with each of the plurality of information assets. Generate one or more candidates for correspondence with each of a plurality of variables.

Description

本発明は、脆弱性分析に関する。 The present invention relates to vulnerability analysis.

セキュリティを考慮した開発プロセスでは、セキュリティ上の問題である脆弱性を作りこまないようにするために、開発上流の段階からセキュリティに関する分析や検討を行う。まず、システム設計等の開発上流フェーズで、開発対象システムで発生してはならない脅威を洗い出すための脅威分析を実施する(例えば、通信路を流れる機密情報が盗聴される等の脅威が洗い出される)。そして、脅威分析の結果に基づき、その脅威に至らないようにするための対策の方針を検討する(例えば、通信路を暗号化する必要がある等)。更に開発フェーズが進み設計及び実装の段階になると、開発対象システムを実現するための処理内容及び処理内容を実現するプログラムの具体的な実現方法に適したセキュリティ機能や運用方法を検討する。そして、検討結果を設計及び実装に盛り込む。設計及び実装の最終段階では、設計及び実装したプログラムに脆弱性がないかを確認するための分析を行う。 In the development process that considers security, security analysis and examination are conducted from the upstream stage of development in order to prevent the creation of vulnerabilities, which are security problems. First, in the upstream phase of development such as system design, threat analysis is conducted to identify threats that should not occur in the system to be developed (for example, threats such as eavesdropping of confidential information flowing through the communication path are identified. ). Then, based on the results of the threat analysis, consider the policy of measures to prevent the threat (for example, it is necessary to encrypt the communication path). As the development phase progresses to the design and implementation stages, the processing content for realizing the system to be developed and the security functions and operation methods suitable for the specific implementation method of the program that realizes the processing content will be examined. Then, the examination results are incorporated into the design and implementation. At the final stage of design and implementation, analysis is performed to confirm whether the designed and implemented program is vulnerable.

脆弱性がないかを確認する脆弱性分析装置の実現方法の一つとして、設計及び実装したプログラムの仕様又はプログラム自身を静的に分析する技術が存在する。
従来の脆弱性分析装置は、予め定められたルールに従い汚染分析等の分析技術を使ってプログラムのソースコードを分析する(例えば、特許文献1)。
また、プログラムの仕様をモデルで形式的に記述し、モデル検査と呼ばれる形式手法を使ってプログラムの動作が脆弱性を発生させる性質を満たすかを数学的に証明する手法も提案されている(例えば、特許文献2)。
As one of the methods for realizing a vulnerability analyzer for confirming whether or not there is a vulnerability, there is a technique for statically analyzing the specifications of a designed and implemented program or the program itself.
The conventional vulnerability analyzer analyzes the source code of the program by using an analysis technique such as pollution analysis according to a predetermined rule (for example, Patent Document 1).
In addition, a method has been proposed in which the specifications of a program are formally described by a model, and a formal method called model checking is used to mathematically prove whether the behavior of the program satisfies the property of causing a vulnerability (for example). , Patent Document 2).

特許第5740702号公報Japanese Patent No. 5740702 特開2008−262311号公報Japanese Unexamined Patent Publication No. 2008-262311

特許文献1の手法では、予め決められたルールに従いプログラムのソースコードを分析する。このため、上流工程で実施した脅威分析の後に検討したセキュリティ対策の設計及び実装の抜けや誤りに起因する脆弱性の確認ができない。
また、特許文献2の手法では、証明すべき対象の性質を定義または選択すれば検証が可能である。証明すべき対象の性質を正しく定義または選択するには、設計及び実装の仕様が正しくはどうなるべきかの詳細までを把握する必要がある。しかし、脅威分析は設計及び実装の仕様が未確定である開発上流フェーズで実施するものである。このため、脅威分析の結果とプログラムを設計及び実装した仕様とを対応付けて、証明すべき対象の性質を定義または選択することは非常に手間がかかる。また、プログラムの仕様を静的に分析する手法では、プログラム全体を分析対象とすると、メモリ等の計算機リソースを多く必要とし、計算時間も長くなる。
In the method of Patent Document 1, the source code of the program is analyzed according to a predetermined rule. For this reason, it is not possible to confirm vulnerabilities caused by omissions or errors in the design and implementation of security measures examined after the threat analysis conducted in the upstream process.
Further, in the method of Patent Document 2, verification is possible by defining or selecting the property of the object to be proved. In order to correctly define or select the nature of the object to be proved, it is necessary to understand the details of what the design and implementation specifications should be. However, threat analysis is carried out in the upstream phase of development, where design and implementation specifications are uncertain. Therefore, it is very troublesome to define or select the property of the object to be proved by associating the result of the threat analysis with the specification in which the program is designed and implemented. Further, in the method of statically analyzing the specifications of a program, if the entire program is analyzed, a large amount of computer resources such as memory are required and the calculation time becomes long.

効率的に脆弱性分析を行うためには、上流工程での脅威分析後のセキュリティ対策が盛り込まれたプログラム(機器で実行されるプログラム)内の部分と当該機器が用いる情報資産との関係と、機器の情報資産と脆弱性との関係とを明確にすることが有用である。
このような観点より、本発明は、プログラム内の部分と情報資産と脆弱性との対応関係の明確化に資することを主な目的とする。
In order to perform vulnerability analysis efficiently, the relationship between the part in the program (program executed by the device) that incorporates security measures after threat analysis in the upstream process and the information assets used by the device, and It is useful to clarify the relationship between device information assets and vulnerabilities.
From this point of view, it is a main object of the present invention to contribute to clarifying the correspondence between the part in the program, the information asset, and the vulnerability.

本発明に係る情報処理装置は、
機器で実行されるプログラムに含まれる複数の変数の各々の種別を判別する変数判別部と、
前記変数判別部により判別された前記複数の変数の各々の種別と、前記機器が用いる複数の情報資産の各々の種別とを比較し、前記複数の情報資産の各々と前記複数の変数の各々との対応関係の候補を1つ以上生成する候補生成部とを有する。
The information processing device according to the present invention is
A variable discriminator that discriminates each type of multiple variables included in the program executed by the device,
Each type of the plurality of variables determined by the variable discriminating unit is compared with each type of the plurality of information assets used by the device, and each of the plurality of information assets and each of the plurality of variables It has a candidate generation unit that generates one or more candidates of the correspondence relationship of.

本発明によれば、機器で実行されるプログラムに含まれる変数と機器が用いる情報資産との対応関係の候補を生成するため、プログラム内の部分と情報資産と脆弱性との対応関係の明確化に資することができる。 According to the present invention, in order to generate candidates for the correspondence between the variables included in the program executed by the device and the information assets used by the device, the correspondence between the part in the program, the information assets and the vulnerability is clarified. Can contribute to.

実施の形態1に係る脆弱性分析装置の構成例を示す図。The figure which shows the configuration example of the vulnerability analyzer which concerns on Embodiment 1. FIG. 実施の形態1に係る脆弱性分析装置の動作例を示すフローチャート。The flowchart which shows the operation example of the vulnerability analyzer which concerns on Embodiment 1. 実施の形態1に係るコントローラに関する情報資産フローの例を示す図。The figure which shows the example of the information asset flow about the controller which concerns on Embodiment 1. FIG. 実施の形態1に係るプログラム仕様の例を示す図。The figure which shows the example of the program specification which concerns on Embodiment 1. FIG. 実施の形態1に係る構成要素とプログラム仕様の対応関係の例を示す図。The figure which shows the example of the correspondence relationship between the component element and a program specification which concerns on Embodiment 1. FIG. 実施の形態1に係る脅威分析結果の例を示す図。The figure which shows the example of the threat analysis result which concerns on Embodiment 1. FIG. 実施の形態1に係る変数判別部の動作例を示すフローチャート。The flowchart which shows the operation example of the variable discriminating part which concerns on Embodiment 1. 実施の形態1に係る処理種別DBの例を示す図。The figure which shows the example of the processing type DB which concerns on Embodiment 1. FIG. 実施の形態1に係るプログラム変数処理関係の例を示す図。The figure which shows the example of the program variable processing relation which concerns on Embodiment 1. FIG. 実施の形態1に係る情報資産−変数対応関係候補の例を示す図。The figure which shows the example of the information asset-variable correspondence relationship candidate which concerns on Embodiment 1. FIG. 実施の形態1に係る関連脅威一覧の抽出動作の例を示す図。The figure which shows the example of the extraction operation of the related threat list which concerns on Embodiment 1. FIG. 実施の形態1に係る関連脅威一覧の例を示す図。The figure which shows the example of the related threat list which concerns on Embodiment 1. FIG. 実施の形態1に係る脅威−脆弱性種別対応DBの例を示す図。The figure which shows the example of the threat-vulnerable type correspondence DB which concerns on Embodiment 1. FIG. 実施の形態1に係る脆弱性種別候補の例を示す図。The figure which shows the example of the vulnerability type candidate which concerns on Embodiment 1. FIG. 実施の形態1に係る脆弱性検出結果の例を示す図。The figure which shows the example of the vulnerability detection result which concerns on Embodiment 1. FIG. 実施の形態2に係る脆弱性分析装置の構成例を示す図。The figure which shows the configuration example of the vulnerability analyzer which concerns on Embodiment 2.

以下、本発明の実施の形態について、図を用いて説明する。以下の実施の形態の説明及び図面において、同一の符号を付したものは、同一の部分又は相当する部分を示す。 Hereinafter, embodiments of the present invention will be described with reference to the drawings. In the following description and drawings of the embodiments, those having the same reference numerals indicate the same parts or corresponding parts.

実施の形態1.
***構成の説明***
図1を参照して、実施の形態1に係る脆弱性分析装置10の構成を説明する。
脆弱性分析装置10は、情報処理装置に相当する。
Embodiment 1.
*** Explanation of configuration ***
The configuration of the vulnerability analyzer 10 according to the first embodiment will be described with reference to FIG.
The vulnerability analyzer 10 corresponds to an information processing device.

脆弱性分析装置10は、コンピュータである。脆弱性分析装置10は、プロセッサ11と、メモリ12と、ストレージ13と、通信インタフェース14といったハードウェアを備える。信号線を介してプロプロセッサ11と他のハードウェアとは接続され、プロセッサ11はこれら他のハードウェアを制御する。 The vulnerability analyzer 10 is a computer. The vulnerability analyzer 10 includes hardware such as a processor 11, a memory 12, a storage 13, and a communication interface 14. The proprocessor 11 is connected to other hardware via a signal line, and the processor 11 controls these other hardware.

プロセッサ11は、プロセッシングを行うIC(Integrated Circuit)である。プロセッサ11は、具体例としては、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。なお、図1では、プロセッサ11は、1つだけ示されている。しかし、プロセッサ11は、複数であってもよく、複数のプロセッサ11が、各機能を実現するプログラムを連携して実行してもよい。 The processor 11 is an IC (Integrated Circuit) that performs processing. Specific examples of the processor 11 are a CPU (Central Processing Unit), a DSP (Digital Signal Processor), and a GPU (Graphics Processing Unit). In FIG. 1, only one processor 11 is shown. However, the number of processors 11 may be plural, and the plurality of processors 11 may execute programs that realize each function in cooperation with each other.

メモリ12は、プロセッサ11のプロセッシングのためにデータを一時的に記憶する記憶装置である。メモリ12は、具体例としては、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)である。 The memory 12 is a storage device that temporarily stores data for processing of the processor 11. Specific examples of the memory 12 are SRAM (Static Random Access Memory) and DRAM (Dynamic Random Access Memory).

ストレージ13は、データを保管する記憶装置である。ストレージ13は、具体例としては、HDD(Hard Disk Drive)である。また、ストレージ13は、SSD(Solide State Drive)でも良い。また、ストレージ13は、SD(登録商標、Secure Digital)メモリカード、CF(CompactFlash、登録商標)、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD(Digital Versatile Disk)といった可搬記録媒体であってもよい。 The storage 13 is a storage device for storing data. As a specific example, the storage 13 is an HDD (Hard Disk Drive). Further, the storage 13 may be an SSD (Solid State Drive). The storage 13 includes SD (registered trademark, Secure Digital) memory card, CF (CompactFlash, registered trademark), NAND flash, flexible disk, optical disk, compact disc, Blu-ray (registered trademark) disk, DVD (Digital Versaille Disk), and the like. It may be a portable recording medium.

通信インタフェース14は、外部の装置と通信するためのインタフェースである。通信インタフェース14は、具体例としては、Ethernet(登録商標)、USB(Universal Serial Bus)、HDMI(登録商標、High−Definition Multimedia Interface)のポートである。 The communication interface 14 is an interface for communicating with an external device. As a specific example, the communication interface 14 is a port of Ethernet (registered trademark), USB (Universal Serial Bus), HDMI (registered trademark, High-Definition Multimedia Interface).

脆弱性分析装置10は、機能構成要素として、第1の受付部21、変数判別部22、候補生成部23、第2の受付部24、関連脅威抽出部25、脆弱性候補抽出部26、脆弱性分析部27を備える。第2の受付部24は、出力部に相当する。
脆弱性分析装置10の各機能構成要素の機能はプログラムにより実現される。
The vulnerability analyzer 10 has, as functional components, a first reception unit 21, a variable discrimination unit 22, a candidate generation unit 23, a second reception unit 24, a related threat extraction unit 25, a vulnerability candidate extraction unit 26, and a vulnerability. A sex analysis unit 27 is provided. The second reception unit 24 corresponds to an output unit.
The functions of each functional component of the vulnerability analyzer 10 are realized by a program.

脆弱性分析装置10の各機能構成要素の機能を実現するプログラムは、ストレージ13に格納されている。このプログラムは、プロセッサ11によりメモリ12に読み込まれ、プロセッサ11によって実行される。これにより、脆弱性分析装置10の各機能構成要素の機能が実現される。 A program that realizes the functions of each functional component of the vulnerability analyzer 10 is stored in the storage 13. This program is read into the memory 12 by the processor 11 and executed by the processor 11. As a result, the functions of each functional component of the vulnerability analyzer 10 are realized.

脆弱性分析装置10の各機能構成要素の機能は、そのプログラムで行う分析の動作を決定する情報及び判断の条件を決定する情報をストレージ13に保存されるデータベースや設定ファイルから読み込みこんでも良い。また、分析の動作を決定する情報及び判断の条件を決定する情報をプログラムの一部としても良い。例えば、本実施の形態では、変数判別部22は処理種別DB31を読み込んで分析の動作を変更する。また、脆弱性候補抽出部26は脅威−脆弱性対応DB32を読み込んで分析の動作を変更する。 The function of each functional component of the vulnerability analyzer 10 may read information that determines the operation of analysis performed by the program and information that determines the condition of determination from a database or a setting file stored in the storage 13. Further, the information that determines the operation of the analysis and the information that determines the condition of the judgment may be part of the program. For example, in the present embodiment, the variable determination unit 22 reads the processing type DB 31 and changes the analysis operation. In addition, the vulnerability candidate extraction unit 26 reads the threat-vulnerability response DB 32 and changes the analysis operation.

なお、図1では脆弱性分析装置10が1台のみでの構成を例示した。これに代えて、複数のコンピュータがネットワークを経由して接続され、複数のコンピュータが協働して、脆弱性分析システムを構成するようにしてもよい。
更に、図1では、利用者が脆弱性分析装置10への入力や出力を行うための入出力装置が通信インタフェース14を介して接続されることが想定されている。これに代えて、脆弱性分析装置10に入力や出力を行うためのインタフェースを設け、脆弱性分析装置10を利用者が直接操作するようにしてもよい。
Note that FIG. 1 illustrates a configuration in which only one vulnerability analyzer 10 is used. Instead, a plurality of computers may be connected via a network, and the plurality of computers may work together to form a vulnerability analysis system.
Further, in FIG. 1, it is assumed that an input / output device for the user to input or output to the vulnerability analysis device 10 is connected via the communication interface 14. Instead of this, the vulnerability analysis device 10 may be provided with an interface for inputting and outputting, so that the user can directly operate the vulnerability analysis device 10.

***動作の説明***
図2から図15を参照して、実施の形態1に係る脆弱性分析装置10の動作を説明する。なお、以下に示す脆弱性分析装置10の動作は、情報処理方法及び情報処理プログラムに相当する。
*** Explanation of operation ***
The operation of the vulnerability analyzer 10 according to the first embodiment will be described with reference to FIGS. 2 to 15. The operation of the vulnerability analyzer 10 shown below corresponds to an information processing method and an information processing program.

図2は、実施の形態1に係る脆弱性分析装置10の全体動作を示すフローチャートである。 FIG. 2 is a flowchart showing the overall operation of the vulnerability analyzer 10 according to the first embodiment.

最初に、第1の受付部21が、分析に必要な各種情報の入力を受け付ける(ステップS1)。
ステップS1では、第1の受付部21は、後述する情報資産フロー41(図3)、プログラム仕様42(図4)、構成要素とプログラム仕様の対応関係43(図5)、脅威分析結果44(図6)を受け付ける。
First, the first reception unit 21 receives input of various information necessary for analysis (step S1).
In step S1, the first reception unit 21 includes an information asset flow 41 (FIG. 3), a program specification 42 (FIG. 4), a correspondence relationship between a component and a program specification 43 (FIG. 5), and a threat analysis result 44 (FIG. 5), which will be described later. Accept Fig. 6).

また、変数判別部22が、プログラム仕様42で表されるプログラムに含まれる変数を抽出し、抽出した変数の種別を判別する(ステップS2)。
後述するように、プログラム仕様42は、開発対象の機器で実行されるプログラム(ソースコード)又はプログラムの特徴が記載される情報(フローチャート、UML(Unified Modeling Language)又はSysMLのアクティビティ図又はシーケンス図等)である。
変数判別部22は、抽出した変数の種別として、抽出した変数が入力変数、出力変数、内部利用変数のいずれであるかを判別する。
Further, the variable determination unit 22 extracts the variables included in the program represented by the program specification 42, and determines the type of the extracted variables (step S2).
As will be described later, the program specification 42 includes a program (source code) executed by the device to be developed, information describing the characteristics of the program (flow chart, UML (Unified Modeling Language), SysML activity diagram, sequence diagram, etc. ).
The variable determination unit 22 determines whether the extracted variable is an input variable, an output variable, or an internally used variable as the type of the extracted variable.

次に、候補生成部23が、情報資産と変数の対応関係の候補を生成する(ステップS3)。
候補生成部23は、変数判別部22により判別された変数の種別と、機器が用いる情報資産の種別とを比較し、情報資産と変数の対応関係の候補を1つ以上生成する。
情報資産とは、本明細書では、脅威分析により構成要素(機器)が用いると判定された情報である。具体的には、構成要素(機器)の情報資産は、情報資産フロー41(図3)に記述されている。
情報資産の種別には、機器に入力される情報資産である入力情報資産、機器から機器の外部に出力される情報資産である出力情報資産、機器の内部で利用される情報資産である内部利用情報資産がある。
候補生成部23は、入力情報資産と入力変数、出力情報資産と出力変数、内部利用情報資産と内部利用変数とを対応付けて対応関係の候補を生成する。
Next, the candidate generation unit 23 generates a candidate for the correspondence between the information asset and the variable (step S3).
The candidate generation unit 23 compares the type of the variable determined by the variable determination unit 22 with the type of the information asset used by the device, and generates one or more candidates for the correspondence between the information asset and the variable.
The information asset is the information determined to be used by the component (equipment) by the threat analysis in the present specification. Specifically, the information assets of the constituent elements (equipment) are described in the information asset flow 41 (FIG. 3).
The types of information assets include input information assets, which are information assets input to the device, output information assets, which are information assets output from the device to the outside of the device, and internal use, which is information assets used inside the device. There are information assets.
The candidate generation unit 23 generates a correspondence candidate by associating an input information asset with an input variable, an output information asset with an output variable, and an internal use information asset with an internal use variable.

なお、対応関係の候補が複数存在する場合には、第2の受付部24が複数の対応関係の候補を出力する。そして、第2の受付部24は、脆弱性分析装置10の利用者による、対応関係の選択を受け付ける(ステップS4)。
つまり、第2の受付部24は、複数の対応関係の候補を例えば入出力装置に表示し、脆弱性分析装置10の利用者が表示された複数の対応関係の候補の中から該当する対応関係を選択する。そして、第2の受付部24が、利用者からの選択を受け付ける。
When there are a plurality of correspondence relationship candidates, the second reception unit 24 outputs a plurality of correspondence relationship candidates. Then, the second reception unit 24 accepts the selection of the correspondence relationship by the user of the vulnerability analysis device 10 (step S4).
That is, the second reception unit 24 displays a plurality of correspondence relationship candidates, for example, on the input / output device, and the user of the vulnerability analysis device 10 displays the corresponding correspondence relationship from among the displayed correspondence relationship candidates. Select. Then, the second reception unit 24 accepts the selection from the user.

次に、関連脅威抽出部25が、情報資産と変数との対応関係に基づき、関連する脅威を抽出する(ステップS5)。
つまり、ステップS3で対応関係の候補が1つだけ生成された場合は、関連脅威抽出部25は、1つだけ生成された対応関係の候補に基づき、関連する脅威を抽出する。一方、ステップS3で対応関係の候補が複数生成され、ステップS4での対応関係の選択が受け付けられた場合は、ステップS4で選択された対応関係に基づき、関連する脅威を抽出する。
関連脅威抽出部25は、具体的には、ステップS1で受け付けた脅威分析結果44(図6)から関連する脅威を抽出する。
Next, the related threat extraction unit 25 extracts related threats based on the correspondence between the information assets and the variables (step S5).
That is, when only one correspondence relationship candidate is generated in step S3, the related threat extraction unit 25 extracts the related threat based on only one correspondence relationship candidate generated. On the other hand, when a plurality of correspondence relationship candidates are generated in step S3 and the selection of the correspondence relationship in step S4 is accepted, the related threat is extracted based on the correspondence relationship selected in step S4.
Specifically, the related threat extraction unit 25 extracts related threats from the threat analysis result 44 (FIG. 6) received in step S1.

次に、脆弱性候補抽出部26が、関連する脅威に至る攻撃に利用される恐れのある脆弱性の種別の候補を抽出する(ステップS6)。 Next, the vulnerability candidate extraction unit 26 extracts candidates for the type of vulnerability that may be used in an attack leading to a related threat (step S6).

最後に、脆弱性分析部27が、脆弱性の種別の候補がプログラム仕様42の記述で発生し得るかを調べるための脆弱性分析を実施し、分析結果を出力する(ステップS7)。 Finally, the vulnerability analysis unit 27 performs a vulnerability analysis for investigating whether a candidate for the type of vulnerability can occur in the description of the program specification 42, and outputs the analysis result (step S7).

次に、図2の各ステップの動作を順次説明していく。 Next, the operation of each step in FIG. 2 will be sequentially described.

(図2のステップS1:第1の受付処理)
第1の受付部21は、情報資産フロー41(図3)と、プログラム仕様42(図4)と、構成要素とプログラム仕様の対応関係43(図5)と、脅威分析結果44(図6)とを受け付ける。
(Step S1: First reception process in FIG. 2)
The first reception unit 21 has an information asset flow 41 (FIG. 3), a program specification 42 (FIG. 4), a correspondence relationship between components and program specifications 43 (FIG. 5), and a threat analysis result 44 (FIG. 6). And accept.

具体的には、通信インタフェース14を介して接続された入出力装置が利用者によって操作される。利用者の操作により、情報資産フロー41と、プログラム仕様42と、構成要素とプログラム仕様の対応関係43と、脅威分析結果44とが入力される。そして、第1の受付部21は、通信インタフェース14を介して入力された情報資産フロー41と、プログラム仕様42と、構成要素とプログラム仕様の対応関係43と、脅威分析結果44とを受け付ける。
更に、第1の受付部21は、情報資産フロー41と、プログラム仕様42と、構成要素とプログラム仕様の対応関係43と、脅威分析結果44とを、それぞれメモリ12に書き込む。
Specifically, the input / output device connected via the communication interface 14 is operated by the user. By the operation of the user, the information asset flow 41, the program specification 42, the correspondence relationship 43 between the component and the program specification, and the threat analysis result 44 are input. Then, the first reception unit 21 receives the information asset flow 41 input via the communication interface 14, the program specification 42, the correspondence relationship 43 between the component and the program specification, and the threat analysis result 44.
Further, the first reception unit 21 writes the information asset flow 41, the program specification 42, the correspondence relationship 43 between the component and the program specification, and the threat analysis result 44 into the memory 12, respectively.

図3を参照して、情報資産フロー41の一例を説明する。 An example of the information asset flow 41 will be described with reference to FIG.

情報資産フロー41は、脅威分析が行われた後の情報資産の流れ(フロー)が整理されて得られる。情報資産フロー41は、開発対象システムに含まれる機器ごとに生成される。
情報資産フロー41には、開発対象システムを構成する構成要素(機器)である構成要素411と、構成要素411と関連する構成要素(機器)である関連要素412と、構成要素411と関連要素412との間の接続関係413と、情報資産の名称414と、情報資産の種別415とが含まれる。
情報資産の種別は、前述したように、入力情報資産、出力情報資産及び内部利用情報資産である。入力情報資産、出力情報資産及び内部利用情報資産以外の情報資産の種別があってもよい。
「入力」とは、構成要素411の外部から構成要素411に入力される情報資産のフローである。「出力」とは、構成要素411から構成要素411の外部に出力される情報資産のフローである。「内部利用」とは、構成要素411の内部のみで利用される情報資産のフローである。
The information asset flow 41 is obtained by organizing the flow of information assets after the threat analysis is performed. The information asset flow 41 is generated for each device included in the development target system.
The information asset flow 41 includes a component 411 that is a component (equipment) constituting the system to be developed, a related element 412 that is a component (equipment) related to the component 411, and a component 411 and a related element 412. The connection relationship 413 with the information asset, the name 414 of the information asset, and the type 415 of the information asset are included.
As described above, the types of information assets are input information assets, output information assets, and internal use information assets. There may be types of information assets other than input information assets, output information assets, and internal use information assets.
The “input” is a flow of information assets input to the component 411 from the outside of the component 411. The “output” is a flow of information assets output from the component 411 to the outside of the component 411. “Internal use” is a flow of information assets used only inside the component 411.

情報資産フロー41は、具体的には、図3に示すように、UMLのコミュニケーション図を拡張したような図で表わすことができる。図3において、矩形は構成要素411又は関連要素412を表わす。構成要素411は、図3の例では「コントローラ」である。また、関連要素412は、図3の例では、「HMI」と「デバイス」である。
接続関係413は、構成要素411と関連要素412とを結ぶ実線で表される。
更に、図3では、接続関係413の付近に矢印が示されている。これら矢印は情報資産のフローを表す。矢印の方向が情報資産のフローの方向を表す。
また、コントローラから接続関係413とは無関係に始点が丸である線も伸びている。この線も情報資産のフローを表す。この線は、構成要素411と関連要素412との間ではフローがないこと、つまり、内部利用情報資産であることを示す。
情報資産のフローの線の付近に配置されている文字列がそのフローで扱う情報資産の名称414である。また≪≫で囲まれる文字列は、情報資産の種別415である。例えば、図3中のHMIからコントローラに向かう矢印は情報資産「コマンド」が「HMI」から「コントローラ」に向かって流れることを意味する。そして、当該矢印は「コントローラ」の立場では、情報資産の種別415が「入力」(入力情報資産)であることを示す。また、「コントローラ」から伸びる始点が丸の線は、情報資産「MAC鍵」の種別415が「内部利用」(内部利用情報資産)であること、すなわち、情報資産「MAC鍵」がコントローラの内部で利用されることを示す。
なお、情報資産フロー41は、情報資産情報に相当する。
Specifically, the information asset flow 41 can be represented by a diagram as if the UML communication diagram is expanded, as shown in FIG. In FIG. 3, the rectangle represents the component 411 or the related element 412. The component 411 is a "controller" in the example of FIG. Further, the related elements 412 are "HMI" and "device" in the example of FIG.
The connection relationship 413 is represented by a solid line connecting the component 411 and the related element 412.
Further, in FIG. 3, an arrow is shown near the connection relationship 413. These arrows represent the flow of information assets. The direction of the arrow indicates the direction of the flow of information assets.
In addition, a line having a round starting point extends from the controller regardless of the connection relationship 413. This line also represents the flow of information assets. This line indicates that there is no flow between the component 411 and the related element 412, that is, it is an internal use information asset.
The character string arranged near the line of the flow of the information asset is the name 414 of the information asset handled in the flow. The character string enclosed in <<>> is the type 415 of the information asset. For example, the arrow from the HMI to the controller in FIG. 3 means that the information asset "command" flows from the "HMI" to the "controller". Then, the arrow indicates that the type 415 of the information asset is "input" (input information asset) from the standpoint of the "controller". In addition, the line with a circle starting point extending from the "controller" means that the type 415 of the information asset "MAC key" is "internal use" (internal use information asset), that is, the information asset "MAC key" is inside the controller. Indicates that it will be used in.
The information asset flow 41 corresponds to information asset information.

次に、図4を参照して、プログラム仕様42の一例を説明する。 Next, an example of the program specification 42 will be described with reference to FIG.

プログラム仕様42は、脆弱性分析する対象のプログラムの名称421と変数の流れ(データフロー)や処理の流れ(制御フロー)を表現するプログラム処理内容422を含む。
具体的には、プログラム仕様42には、脅威分析が行われた後の開発対象システムに含まれる機器(図3の構成要素411に対応)で実行されるプログラム全体もしくはその一部となるロジックが記述される。開発対象システムに含まれる機器ごとにプログラム仕様42が記述される。
また、脆弱性分析の対象でない機器及びプログラムの一部については、プログラム仕様42を脆弱性分析装置10に入力しなくてもよい。
The program specification 42 includes the name 421 of the program to be analyzed for vulnerability and the program processing content 422 expressing the flow of variables (data flow) and the flow of processing (control flow).
Specifically, the program specification 42 contains logic that is the entire program or a part thereof that is executed by the device (corresponding to the component 411 in FIG. 3) included in the development target system after the threat analysis is performed. Will be described. The program specification 42 is described for each device included in the development target system.
Further, for some devices and programs that are not subject to vulnerability analysis, the program specification 42 does not have to be input to the vulnerability analysis device 10.

なお、プログラム仕様42は、具体的には、ソースコードもしくはプログラムモデルである。
プログラムモデルとは、フローチャート、UML、SysMLのようなプログラムの構造及び動作を図表で記述できる情報である。プログラムモデルは、例えば、プログラム言語で記述されたソースコード、処理/判断をC言語等のプログラム言語の形式で記述(m=n+1やm=add(n,1)等)されたフローチャートである。プログラムモデルは、また、UML又はSysMLのアクティビティ図又はシーケンス図、DFD、制御工学等で用いられるブロック線図が該当する。プログラムモデルは、プロセッサ11(変数判別部22)でその内容を処理できるように、階層的な構造を表現できるデータ形式で記述されて保管される。プログラムモデルは、例えば、XML(Extensible Markup Language)とJSON(JavaScript(登録商標) Object Notation)といったデータ形式で記述される。例えば、図4は、構成要素「コントローラ」のHMIとの通信処理に関するプログラム仕様42の一例を示している。図4では、一般的なC言語のソースコードの形式で、コントローラで動作するプログラムの一部の動作内容が記述されている。
また、プログラムの名称421は、「PROGRAM_C.C」であり、プログラム処理内容422は、C言語の記述内容である。図4の例では、プログラムの名称421は、C言語のソースコードのファイル名で示しているが、脆弱性分析装置10が一意に各プログラム仕様42を判別できる情報であればどのような形式でも良い。なお、プログラムの名称421は、後述する構成要素とプログラム仕様の対応関係43で利用される。
Specifically, the program specification 42 is a source code or a program model.
The program model is information that can describe the structure and operation of a program such as a flowchart, UML, and SysML in a chart. The program model is, for example, a flowchart in which a source code written in a program language and processing / judgment are described in a program language format such as C language (m = n + 1 or m = add (n, 1), etc.). The program model also corresponds to an activity diagram or sequence diagram of UML or SysML, a block diagram used in DFD, control engineering, and the like. The program model is described and stored in a data format capable of expressing a hierarchical structure so that the processor 11 (variable determination unit 22) can process its contents. The program model is described in a data format such as XML (Extension Markup Language) and JSON (Javascript® Object Notification), for example. For example, FIG. 4 shows an example of a program specification 42 relating to communication processing of the component “controller” with the HMI. In FIG. 4, a part of the operation contents of the program running on the controller is described in the form of a general C language source code.
Further, the program name 421 is "PROGRAM_CC", and the program processing content 422 is a description content in C language. In the example of FIG. 4, the program name 421 is indicated by the file name of the C language source code, but any format can be used as long as the information can uniquely identify each program specification 42 by the vulnerability analyzer 10. good. The program name 421 is used in the correspondence relationship 43 between the component elements and the program specifications, which will be described later.

次に、図5を参照して、構成要素とプログラム仕様の対応関係43の一例を説明する。 Next, an example of the correspondence 43 between the components and the program specifications will be described with reference to FIG.

構成要素とプログラム仕様の対応関係43は、脆弱性分析の対象とする構成要素431とプログラム仕様432との対応関係を示す。
構成要素とプログラム仕様の対応関係43は、例えば、図5のような表として表現することができる。図5では、構成要素「コントローラ」で検査対象となるプログラム仕様42が2つあり、それぞれが「PROGRAM_C.C」と「PROGRAM_D.C」である。
Correspondence relationship 43 between the component and the program specification shows the correspondence relationship between the component 431 to be the target of the vulnerability analysis and the program specification 432.
The correspondence 43 between the components and the program specifications can be expressed as, for example, a table as shown in FIG. In FIG. 5, there are two program specifications 42 to be inspected by the component “controller”, which are “PROGRAM_CC” and “PROGRAM_DC”, respectively.

次に、図6を参照して、脅威分析結果44の一例を説明する。 Next, an example of the threat analysis result 44 will be described with reference to FIG.

脅威分析結果44には、開発対象システムに対する脅威分析の結果が示される。
脅威分析結果44には、脅威441、構成要素442、関係する情報資産443及び脅威の種別444が含まれる。
脅威441には、脅威の内容が示される。
構成要素442には、脅威が発生する構成要素または接続関係が示される。
関係する情報資産443には、脅威に関係する情報資産が示される。
脅威の種別444には、脅威が発生した際に情報資産に与える影響の種別が示される。脅威の種別444には、例えば、一般的に情報セキュリティの属性を示すのに使われるC、I、Aのうちのいずれかが示される。なお、Cは機密性、Iは完全性、Aは可用性を意味する。
脅威分析結果44は、例えば、図6のように表の形式で表すことができる。図6の例では、1行目のレコードには、脅威441として「推測による漏洩」が示され、構成要素442として脅威が発生する構成要素である「リモート端末」が示され、関係する情報資産443として推測の漏洩に関係する「パスワード」が示され、また、脅威の種別444として「C」が示される。
The threat analysis result 44 shows the result of the threat analysis for the system to be developed.
The threat analysis result 44 includes threat 441, component 442, related information assets 443, and threat type 444.
The content of the threat is shown in the threat 441.
The component 442 indicates the component or the connection relationship in which the threat occurs.
The related information asset 443 indicates the information asset related to the threat.
The threat type 444 indicates the type of impact on the information asset when a threat occurs. The threat type 444 indicates, for example, one of C, I, and A generally used to indicate an attribute of information security. Note that C means confidentiality, I means integrity, and A means availability.
The threat analysis result 44 can be represented in the form of a table as shown in FIG. 6, for example. In the example of FIG. 6, in the record of the first line, "leakage by guessing" is shown as threat 441, and "remote terminal" which is a component in which the threat occurs is shown as component 442, and related information assets. As 443, the "password" related to the leakage of the guess is shown, and as the threat type 444, "C" is shown.

(図2のステップS2:プログラム変数処理関係分析処理)
変数判別部22は、ステップS1で受け入れられたプログラム仕様42に含まれる変数が用いられている処理に基づいて、変数の種別を判別し、変数間の伝搬関係及び処理の順番を分析する。
より具体的には、変数判別部22は、変数が用いられている処理が、入力処理、出力処理及び内部利用処理のいずれであるかを判別する。入力処理とは、機器の外部から値を入力する処理である。出力処理は、機器の外部に値を出力する処理である。内部利用処理とは、機器の内部で値を利用する処理である。変数判別部22は、処理の種別に基づいて変数の種別を判別する。
また、変数間の伝搬関係とは、変数間でのプログラム内部での値の伝搬関係である。
(Step S2 in FIG. 2: Program variable processing-related analysis processing)
The variable determination unit 22 determines the type of the variable based on the process in which the variable included in the program specification 42 accepted in step S1 is used, and analyzes the propagation relationship between the variables and the order of the processes.
More specifically, the variable determination unit 22 determines whether the process in which the variable is used is an input process, an output process, or an internal use process. The input process is a process of inputting a value from the outside of the device. The output process is a process of outputting a value to the outside of the device. The internal use process is a process of using a value inside the device. The variable determination unit 22 determines the type of variable based on the type of processing.
The propagation relationship between variables is the propagation relationship of values between variables within the program.

図7は、変数判別部22の動作例を説明するフローチャートである。 FIG. 7 is a flowchart illustrating an operation example of the variable determination unit 22.

最初に、変数判別部22は、分析に必要な各種情報をメモリ12から読み込む(ステップS21)。 First, the variable determination unit 22 reads various information necessary for analysis from the memory 12 (step S21).

次に、変数判別部22は、プログラム仕様42に含まれる変数を抽出する(ステップS22)。 Next, the variable determination unit 22 extracts the variables included in the program specification 42 (step S22).

次に、変数判別部22は、抽出した変数の種別を判別する(ステップS23)。 Next, the variable determination unit 22 determines the type of the extracted variable (step S23).

次に、変数判別部22は、種別が判別できた各変数の伝搬関係及び処理順番を分析する(ステップS24)。 Next, the variable determination unit 22 analyzes the propagation relationship and the processing order of each variable whose type can be determined (step S24).

最後に、変数判別部22は、分析した結果をメモリ12に書き込む(ステップS25)。 Finally, the variable determination unit 22 writes the analysis result into the memory 12 (step S25).

次に、図7のステップS21〜S26の詳細を説明する。 Next, the details of steps S21 to S26 of FIG. 7 will be described.

<図7のステップS21の詳細>
ステップS21では、変数判別部22は、ストレージ13から処理種別DB31を読み出し、処理種別DB31をメモリ12に書き込む。
次に、変数判別部22は、プログラム仕様42と処理種別DB31の情報をメモリ12から読み出す。
ここで、プログラム仕様42は、ステップS1で受け付けられたプログラム仕様42である。
<Details of step S21 in FIG. 7>
In step S21, the variable determination unit 22 reads the processing type DB 31 from the storage 13 and writes the processing type DB 31 to the memory 12.
Next, the variable determination unit 22 reads the information of the program specification 42 and the processing type DB 31 from the memory 12.
Here, the program specification 42 is the program specification 42 accepted in step S1.

図8を参照して、処理種別DB31の一例を説明する。 An example of the processing type DB 31 will be described with reference to FIG.

処理種別DB31には、処理名311と処理種別312とが含まれる。
処理名311には、プログラム仕様42に含まれる処理の名称が示される。
処理種別312には、処理名311に示される処理が、入力処理、出力処理及び内部利用処理(セキュリティ処理)のいずれに該当するかが示される。図8では、入力処理はInputと記されている。出力処理はOutputと記されている。内部利用処理(セキュリティ処理)はSecurityと記されている。
処理名311に示される処理は、関数、メソッド等である。
図8の例では、例えば、処理名receiveMessageの処理種別は入力処理(Input)である。
The process type DB 31 includes a process name 311 and a process type 312.
The process name 311 indicates the name of the process included in the program specification 42.
The process type 312 indicates which of the input process, the output process, and the internal use process (security process) corresponds to the process indicated by the process name 311. In FIG. 8, the input process is described as Input. The output process is described as Output. The internal use process (security process) is described as Security.
The process shown in the process name 311 is a function, a method, or the like.
In the example of FIG. 8, for example, the processing type of the processing name receiveMessage is input processing (Input).

<図7のステップS22の詳細>
ステップS22では、変数判別部22は、ステップS21で読み込んだプログラム仕様42から変数を抽出する。変数の抽出処理はプログラム仕様42の記述方法による異なる。
本実施の形態で説明に用いているプログラム仕様42(ソースコード)では、コンパイラで用いられる字句解析と構文解析の技術を用いることで、変数を抽出することができる。ソースコード以外の記述の場合も、変数判別部22は、それぞれの記述ルールに従い変数を抽出する。
<Details of step S22 in FIG. 7>
In step S22, the variable determination unit 22 extracts variables from the program specification 42 read in step S21. The variable extraction process differs depending on the description method of the program specification 42.
In the program specification 42 (source code) used in the description in this embodiment, variables can be extracted by using the lexical analysis and parsing techniques used in the compiler. Even in the case of description other than the source code, the variable determination unit 22 extracts variables according to the respective description rules.

<図7のステップS23の詳細>
ステップS23では、変数判別部22は、ステップS22で抽出された各変数の種別を判別する。
変数判別部22は、抽出した各変数が、処理種別DB31の処理名311に示される関数、メソッド等の処理に用いられているか否かを調べる。「処理に用いられている」とは、関数又はメソッドの引数として変数が用いられている、もしくは、関数又はメソッドの戻り値として変数が用いられていることを意味する。
抽出した変数が、処理名311に示される処理に用いられている場合は、変数判別部22は、対象の処理の処理種別312によって変数の種別を判別する。前述したように、変数判別部22は、処理の種別に基づいて、変数の種別を判別する。
より具体的には、例えば、プログラム仕様42がC言語で記述されている場合には、処理種別が「Input」であれば、変数判別部22は、戻り値又はアドレス渡しの引数(参照渡し引数も含む)で用いられた変数は「入力変数」と判定する。一方、処理種別が「Output」であれば、変数判別部22は、値渡しの引数で用いられた変数は「出力変数」と判別する。また、アドレス渡しの引数で用いられた変数は、変数判別部22は「入力変数」と「出力変数」の両者に判別する。また、変数判別部22は、戻値に用いられた変数は「入力変数」と判別する。更に、変数判別部22は、すべての変数に対して前述の判定を行った結果、いずれの種別にも判別されない変数であって、条件文に利用されている変数と、処理種別が「Secuirty」の関数の引数又は戻り値に用いられている変数は、「内部利用変数」と判別する。
<Details of step S23 in FIG. 7>
In step S23, the variable determination unit 22 determines the type of each variable extracted in step S22.
The variable determination unit 22 checks whether or not each of the extracted variables is used for processing the function, method, or the like shown in the processing name 311 of the processing type DB31. "Used for processing" means that a variable is used as an argument of a function or method, or a variable is used as a return value of a function or method.
When the extracted variable is used for the process indicated by the process name 311, the variable determination unit 22 determines the variable type according to the process type 312 of the target process. As described above, the variable determination unit 22 determines the type of the variable based on the type of processing.
More specifically, for example, when the program specification 42 is described in C language and the processing type is "Input", the variable determination unit 22 is an argument for passing a return value or an address (argument passed by reference). The variables used in (including) are judged to be "input variables". On the other hand, if the processing type is "Autoput", the variable determination unit 22 determines that the variable used in the argument passed by value is an "output variable". Further, the variable discriminating unit 22 discriminates the variable used in the argument of passing the address into both the “input variable” and the “output variable”. Further, the variable determination unit 22 determines that the variable used for the return value is an “input variable”. Further, the variable discriminating unit 22 is a variable that is not discriminated into any type as a result of performing the above-mentioned determination for all the variables, and the variable used in the conditional statement and the processing type are "Securty". The variable used for the argument or return value of the function of is determined to be an "internally used variable".

例えば、図4で示したプログラム仕様42を、図8で示した処理種別DB31を使って、上記の判定規則で解析した場合には、msg、lenが「入力変数」になる。また、dev、val、retが「出力変数」になる。また、key、stateが「内部利用変数」になる。また、cmdは、いずれにも分類されない。 For example, when the program specification 42 shown in FIG. 4 is analyzed by the above-mentioned determination rule using the processing type DB 31 shown in FIG. 8, msg and len become “input variables”. In addition, dev, val, and ret become "output variables". In addition, key and state become "internal use variables". Further, cmd is not classified into any of them.

なお、図4の例では存在しないが、2以上の同じ変数が、それぞれ別の種別として判別できる場合には、それぞれの変数は別に取り扱う。例えば、変数msgを入力変数と判定した箇所とは異なる箇所で同じ変数msgが別の変数種別と判定できる場合は、変数判別部22は、それぞれを別の変数として取り扱う。また、変数判別部22は、同じ変数名でも区別できるようにする。変数判別部22は、例えば、msg:12といったように、変数名:行番号等の形式で各変数を一意に識別できるようにする。 Although it does not exist in the example of FIG. 4, if two or more of the same variables can be identified as different types, each variable is treated separately. For example, when the same variable msg can be determined to be a different variable type at a place different from the place where the variable msg is determined to be an input variable, the variable determination unit 22 treats each as a different variable. Further, the variable determination unit 22 makes it possible to distinguish even the same variable name. The variable determination unit 22 makes it possible to uniquely identify each variable in the form of variable name: line number or the like, for example, msg: 12.

また、上記では、ステップS23において、変数判別部22が処理種別DB31の情報を用いて変数の処理種別を判定する例を説明した。このように事前に生成されたルールに基づいて処理種別の判定が行われても良いし、変数判別部22に設定されたロジックにより行われても良い。 Further, in the above, in step S23, an example in which the variable determination unit 22 determines the processing type of the variable using the information of the processing type DB 31 has been described. The processing type may be determined based on the rules generated in advance in this way, or may be determined by the logic set in the variable determination unit 22.

また、上記では、変数の種別を判定する処理では、関数での変数の扱われ方又は関数に事前に割り当てた処理種別によって、「入力変数」又は「出力変数」を決定している。更に、上記では、一定の条件を満たす変数を「内部利用変数」と判定している。しかしながら、変数の種別の判定規則として、別の規則を用いてもよい。
また、本実施の形態では、上記の判定規則は、変数判別部22の内部に保持されていることを想定しているが、ファイルやデータベースに判定規則が保持されていてもよい。また、判定規則を変更してもよい。
Further, in the above, in the process of determining the type of the variable, the "input variable" or the "output variable" is determined depending on how the variable is handled by the function or the processing type assigned in advance to the function. Further, in the above, a variable satisfying a certain condition is determined as an "internal use variable". However, another rule may be used as a rule for determining the type of variable.
Further, in the present embodiment, it is assumed that the above-mentioned determination rule is held inside the variable determination unit 22, but the determination rule may be held in a file or a database. Moreover, you may change the judgment rule.

<図7のステップS24の詳細>
ステップS24では、変数判別部22が、ステップS23で種別が判定できた各変数の伝搬関係及び処理順番を分析する。伝搬関係とは、「入力変数」として判定した変数の値が他の変数に伝搬するデータフローのことである。変数判別部22は、既存の静的コード解析と同様に変数の代入関係等から伝搬関係を分析することができる。
例えば、図4で示したプログラム仕様42に、図8で示した処理種別DB31を使った場合には、変数判別部22は、図9の伝搬関係453を得ることになる。
<Details of step S24 in FIG. 7>
In step S24, the variable determination unit 22 analyzes the propagation relationship and the processing order of each variable whose type can be determined in step S23. The propagation relationship is a data flow in which the value of a variable determined as an "input variable" propagates to another variable. The variable determination unit 22 can analyze the propagation relationship from the variable assignment relationship and the like as in the existing static code analysis.
For example, when the processing type DB 31 shown in FIG. 8 is used for the program specification 42 shown in FIG. 4, the variable determination unit 22 obtains the propagation relationship 453 of FIG.

<図7のステップS25の詳細>
ステップS25では、変数判別部22は、ステップS21〜S24で分析した結果をプログラム変数処理関係45(図9)としてメモリ12に書き込む。
<Details of step S25 in FIG. 7>
In step S25, the variable determination unit 22 writes the results of the analysis in steps S21 to S24 into the memory 12 as a program variable processing relationship 45 (FIG. 9).

図9を参照して、プログラム変数処理関係45の一例を説明する。 An example of the program variable processing relationship 45 will be described with reference to FIG.

プログラム変数処理関係45は、プログラム仕様42内の変数について、変数判別部22の分析結果を表す。
プログラム変数処理関係45は、変数種別451、変数名452及び伝搬関係453を含む。
変数種別451には、変数判別部22の分析により得られた変数の種別が示される。
変数名452には、変数の名称が示される。
伝搬関係453には、前述したように、「入力変数」として判定した変数の値が他の変数に伝搬するデータフロー(伝搬関係)が示される。
図9に示す例では、変数名msgの変数種別は「入力変数」である。更に、伝搬関係453から、変数名msgは、出力変数dev、valに伝搬する。
The program variable processing relationship 45 represents the analysis result of the variable determination unit 22 for the variables in the program specification 42.
The program variable processing relationship 45 includes a variable type 451, a variable name 452, and a propagation relationship 453.
The variable type 451 indicates the type of the variable obtained by the analysis of the variable discrimination unit 22.
The variable name 452 indicates the name of the variable.
As described above, the propagation relationship 453 indicates a data flow (propagation relationship) in which the value of the variable determined as the “input variable” is propagated to another variable.
In the example shown in FIG. 9, the variable type of the variable name msg is “input variable”. Further, from the propagation relationship 453, the variable name msg propagates to the output variables dev and val.

(図2のステップS3:情報資産−変数対応推測処理)
候補生成部23は、ステップS1で入力された情報資産フロー41と、ステップS2で得られたプログラム変数処理関係45に基づき、情報資産と変数の対応関係の候補を生成する。
(Step S3 in FIG. 2: Information asset-variable correspondence guessing process)
The candidate generation unit 23 generates candidates for the correspondence between the information asset and the variable based on the information asset flow 41 input in step S1 and the program variable processing relationship 45 obtained in step S2.

具体的には、候補生成部23は、情報資産フロー41とプログラム変数処理関係45とをメモリ12から読み出す。
次に、候補生成部23は、情報資産フロー41の「入力」とプログラム変数処理関係45の「入力変数」とをマッピングする。同様に、候補生成部23は、情報資産フロー41の「出力」とプログラム変数処理関係45の「出力変数」とをマッピングする。更に、候補生成部23は、情報資産フロー41の「内部利用」とプログラム変数処理関係45の「内部利用変数」とをマッピングする。このようにして、候補生成部23は、情報資産とプログラム仕様42の変数との組み合わせをすべて生成する。
そして、候補生成部23は、生成した対応関係の候補を、情報資産−変数対応関係候補46として、メモリ12に書き込む。
Specifically, the candidate generation unit 23 reads the information asset flow 41 and the program variable processing relationship 45 from the memory 12.
Next, the candidate generation unit 23 maps the “input” of the information asset flow 41 and the “input variable” of the program variable processing relationship 45. Similarly, the candidate generation unit 23 maps the “output” of the information asset flow 41 and the “output variable” of the program variable processing relationship 45. Further, the candidate generation unit 23 maps the “internal use” of the information asset flow 41 and the “internal use variable” of the program variable processing relationship 45. In this way, the candidate generation unit 23 generates all the combinations of the information assets and the variables of the program specification 42.
Then, the candidate generation unit 23 writes the generated correspondence candidate as the information asset-variable correspondence candidate 46 in the memory 12.

図10を参照して、情報資産−変数対応関係候補46の一例を説明する。 An example of the information asset-variable correspondence candidate 46 will be described with reference to FIG.

情報資産−変数対応関係候補46は、候補名461、入力または内部利用の情報資産462、変数名463、伝搬関係464、出力の情報資産465からなる。
図10の例では、候補1では、入力の情報資産であるコマンドは、変数len及びmsgと対応付けられている。また、入力の情報資産である値は、変数ansと対応付けられている。また、内部利用の情報資産であるMAC鍵は、変数keyと対応付けられている。また、出力の情報資産である指示は、変数dev及びvalと対応付けられている。また、出力の情報資産である応答は、変数retと対応付けられている。
情報資産−変数対応関係候補46に示される複数の候補は、各々異なっている。
The information asset-variable correspondence candidate 46 includes a candidate name 461, an input or internal use information asset 462, a variable name 463, a propagation relationship 464, and an output information asset 465.
In the example of FIG. 10, in candidate 1, the command, which is an input information asset, is associated with the variables len and msg. Further, the value which is the input information asset is associated with the variable ans. Further, the MAC key, which is an information asset for internal use, is associated with the variable key. Further, the instruction which is an output information asset is associated with the variables dev and val. Further, the response, which is an output information asset, is associated with the variable ret.
The plurality of candidates shown in the information asset-variable correspondence candidate 46 are different from each other.

(図2のステップS4:第2の受付処理)
ステップS3で生成された情報資産−変数対応関係候補46(図10)に複数の対応関係の候補が存在する場合は、第2の受付部24が情報資産−変数対応関係候補46を出力する。
そして、第2の受付部24は、利用者が選択した情報資産と変数の対応関係の選択を受け付ける。
(Step S4 in FIG. 2: Second reception process)
When there are a plurality of correspondence candidate candidates in the information asset-variable correspondence candidate 46 (FIG. 10) generated in step S3, the second reception unit 24 outputs the information asset-variable correspondence candidate 46.
Then, the second reception unit 24 accepts the selection of the correspondence between the information asset and the variable selected by the user.

具体的には、第2の受付部24は、情報資産−変数対応関係候補46をメモリ12から読み出す。情報資産−変数対応関係候補46に複数の対応関係の候補が存在する場合には、第2の受付部24は、情報資産−変数対応関係候補46を、通信インタフェース14を介して接続された入出力装置に送信する。
そして、入出力装置に情報資産−変数対応関係候補46が表示される。利用者は入出力装置に対する操作を行って、情報資産−変数対応関係候補46から情報資産−変数対応関係47を選択する。選択された情報資産−変数対応関係47が、通信インタフェース14を介して第2の受付部24に入力される。そして第2の受付部24は、通信インタフェース14を介して入力された情報資産−変数対応関係47を受け付ける。さらに第2の受付部24は、受け付けた情報資産−変数対応関係47をメモリ12に書き込む。情報資産−変数対応関係47は、実際の情報資産と変数との対応関係が示される、情報資産−変数対応関係候補46に含まれる対応関係の候補の1つである。
図10に示すように、情報資産−変数対応関係候補46には伝搬関係及び処理順番も含まれる。このため、利用者は伝搬関係及び処理順番を考慮して、情報資産−変数対応関係47を選択することができる。
ここでは、図10の候補1が、情報資産−変数対応関係47として選択されたものとする。
なお、情報資産−変数対応関係候補46に対応関係の候補が1つしかない場合は、ステップS4は行われないが、情報資産−変数対応関係候補46に含まれる当該対応関係の候補も、以下では、情報資産−変数対応関係47と称する。
Specifically, the second reception unit 24 reads the information asset-variable correspondence candidate 46 from the memory 12. When there are a plurality of correspondence candidates in the information asset-variable correspondence candidate 46, the second reception unit 24 connects the information asset-variable correspondence candidate 46 to the information asset-variable correspondence candidate 46 via the communication interface 14. Send to the output device.
Then, the information asset-variable correspondence candidate 46 is displayed on the input / output device. The user operates the input / output device and selects the information asset-variable correspondence 47 from the information asset-variable correspondence candidate 46. The selected information asset-variable correspondence 47 is input to the second reception unit 24 via the communication interface 14. Then, the second reception unit 24 receives the information asset-variable correspondence 47 input via the communication interface 14. Further, the second reception unit 24 writes the received information asset-variable correspondence 47 into the memory 12. The information asset-variable correspondence 47 is one of the correspondence candidates included in the information asset-variable correspondence candidate 46, which shows the correspondence between the actual information asset and the variable.
As shown in FIG. 10, the information asset-variable correspondence candidate 46 also includes a propagation relationship and a processing order. Therefore, the user can select the information asset-variable correspondence 47 in consideration of the propagation relationship and the processing order.
Here, it is assumed that candidate 1 in FIG. 10 is selected as the information asset-variable correspondence 47.
If there is only one correspondence candidate in the information asset-variable correspondence candidate 46, step S4 is not performed, but the correspondence candidate included in the information asset-variable correspondence candidate 46 is also as follows. Then, it is referred to as an information asset-variable correspondence 47.

(図2のステップS5:関連脅威抽出処理)
関連脅威抽出部25は、情報資産−変数対応関係47に基づき、プログラム仕様42に関連する脅威の一覧を、関連脅威一覧48として抽出する。なお、関連脅威一覧48の抽出はそれぞれのプログラム仕様42に対して行われる。
(Step S5 in FIG. 2: Related threat extraction process)
The related threat extraction unit 25 extracts a list of threats related to the program specification 42 as a related threat list 48 based on the information asset-variable correspondence relationship 47. The related threat list 48 is extracted for each program specification 42.

具体的には、関連脅威抽出部25は、脅威分析結果44(図6)と、構成要素とプログラム仕様の対応関係43(図5)とをメモリ12から読み込む。
そして、関連脅威抽出部25は、構成要素とプログラム仕様の対応関係43の各エントリを順に処理し、構成要素431の内容に対応する情報資産フロー41(図3)と、プログラム仕様432の内容に対応する情報資産−変数対応関係47とをメモリから読み込む。
そして、関連脅威抽出部25は、情報資産フロー41と、情報資産−変数対応関係47とを使って、脅威分析結果44(図6)からプログラム仕様42に関連する脅威を抽出する(詳細は図11を使い後述する)。
そして、関連脅威抽出部25は、抽出した結果を、関連脅威一覧48として、処理したプログラム仕様42に関連付けてメモリ12に書き込む。関連脅威抽出部25は、これらの動作を、構成要素とプログラム仕様の対応関係43(図5)のすべてのエントリについて行う。
Specifically, the related threat extraction unit 25 reads the threat analysis result 44 (FIG. 6) and the correspondence relationship 43 (FIG. 5) between the components and the program specifications from the memory 12.
Then, the related threat extraction unit 25 processes each entry of the correspondence 43 of the component and the program specification in order, and sets the information asset flow 41 (FIG. 3) corresponding to the content of the component 431 and the content of the program specification 432. Read the corresponding information asset-variable correspondence 47 from the memory.
Then, the related threat extraction unit 25 extracts the threat related to the program specification 42 from the threat analysis result 44 (FIG. 6) by using the information asset flow 41 and the information asset-variable correspondence 47 (details are shown in FIG. 11 will be used later).
Then, the related threat extraction unit 25 writes the extracted result as the related threat list 48 in the memory 12 in association with the processed program specification 42. The related threat extraction unit 25 performs these operations for all the entries in the correspondence relationship 43 (FIG. 5) between the component and the program specification.

関連脅威抽出部25は、例えば、図11に示す動作によって関連する脅威の抽出を行う。 The related threat extraction unit 25 extracts related threats by the operation shown in FIG. 11, for example.

まず、関連脅威抽出部25は、構成要素とプログラム仕様の対応関係43(図5)の構成要素431の記載内容が構成要素442に含まれるエントリを脅威分析結果44(図6)上で探索する。そして、関連脅威抽出部25は、探索により得られたエントリの脅威441の記載内容を仮に抽出する。
例えば、PROGRAM_C.Cに対して脅威抽出を行っている場合には、構成要素とプログラム仕様の対応関係43(図5)によれば、PROGRAM_C.Cが動作する構成要素はコントローラである。このため、関連脅威抽出部25は、構成要素442に「コントローラ」が含まれるエントリを脅威分析結果44(図6)上で探索する。脅威分析結果44(図6)では、「HMI−コントローラ間」、「コントローラ」及び「コントローラ−デバイス間」のエントリが得られる(図11の手順(1))。そして、関連脅威抽出部25は、これらエントリの脅威441に記載の「未暗号通信の改ざん」、「推測による漏えい」、「再送による改ざん」及び「再送によるDoS」を仮に抽出する(図11の手順(2))。
First, the related threat extraction unit 25 searches the threat analysis result 44 (FIG. 6) for an entry in which the description content of the component 431 of the component and the program specification correspondence 43 (FIG. 5) is included in the component 442. .. Then, the related threat extraction unit 25 tentatively extracts the description content of the threat 441 of the entry obtained by the search.
For example, PROGRAM_C. When threat extraction is performed for C, according to the correspondence relationship 43 (FIG. 5) between the components and the program specifications, PROGRAM_C. The component on which C operates is the controller. Therefore, the related threat extraction unit 25 searches the threat analysis result 44 (FIG. 6) for an entry in which the component 442 includes the “controller”. In the threat analysis result 44 (FIG. 6), entries for "HMI-controller", "controller" and "controller-device" are obtained (procedure (1) in FIG. 11). Then, the related threat extraction unit 25 tentatively extracts "tampering with unencrypted communication", "leakage by guessing", "tampering by retransmission", and "DoS by retransmission" described in threat 441 of these entries (FIG. 11). Procedure (2)).

次に、関連脅威抽出部25は、探索により得られたエントリの関係する情報資産443の記載内容が情報資産−変数対応関係47において変数と対応付けられている場合に、該当するエントリの脅威441の記載内容を正式に抽出する。
関連脅威抽出部25は、図11の手順(1)で得られたエントリ(行番号4〜13)の関係する情報資産443の「コマンド」、「応答」、「MAC鍵」、「指示」、「値」及び「ステータス」のそれぞれが、情報資産−変数対応関係47(図10)において変数と対応付けられているか否かを判定する。
図10の情報資産−変数対応関係47では、「ステータス」以外の情報資産は変数と対応付けられている。
このため、関連脅威抽出部25は、図11の4行目〜11行目の脅威441の記載内容を正式に抽出する(図11の手順(3))。
そして、関連脅威抽出部25は、抽出した脅威441の記載内容を、関連脅威一覧48としてメモリ12に書き込む。
Next, when the description content of the information asset 443 related to the entry obtained by the search is associated with the variable in the information asset-variable correspondence 47, the related threat extraction unit 25 determines the threat 441 of the corresponding entry. Formally extract the contents of.
The related threat extraction unit 25 has a "command", "response", "MAC key", "instruction", of the related information asset 443 of the entry (line numbers 4 to 13) obtained in the procedure (1) of FIG. It is determined whether or not each of the "value" and the "status" is associated with the variable in the information asset-variable correspondence 47 (FIG. 10).
In the information asset-variable correspondence 47 of FIG. 10, information assets other than "status" are associated with variables.
Therefore, the related threat extraction unit 25 formally extracts the description contents of the threat 441 on the 4th to 11th lines of FIG. 11 (procedure (3) of FIG. 11).
Then, the related threat extraction unit 25 writes the description content of the extracted threat 441 into the memory 12 as the related threat list 48.

また、図12を参照して、関連脅威一覧48の一例を説明する。 Further, an example of the related threat list 48 will be described with reference to FIG.

関連脅威一覧48は、図11で例示した抽出処理によって抽出された脅威分析結果44の一部である。関連脅威一覧48は、関連するプログラム仕様42(図4)と対応付けて記憶される。また、関連脅威一覧48は、構成要素とプログラム仕様の対応関係43(図5)のエントリと対応付けされてもよい。 The related threat list 48 is a part of the threat analysis result 44 extracted by the extraction process illustrated in FIG. The related threat list 48 is stored in association with the related program specification 42 (FIG. 4). Further, the related threat list 48 may be associated with the entry of the correspondence relationship 43 (FIG. 5) between the component and the program specification.

(図2のステップS6:関連脆弱性候補抽出処理)
脆弱性候補抽出部26は、ステップS5で抽出された関連脅威一覧48(図12)と、脅威−脆弱性種別対応DB32(図13)の情報に基づき、該当のプログラム仕様42(図4)に関連する脅威の攻撃に利用される可能性がある検査すべき脆弱性種別候補49を、個々の関連する脅威毎に抽出する。
(Step S6 of FIG. 2: Related vulnerability candidate extraction process)
Based on the information in the related threat list 48 (FIG. 12) extracted in step S5 and the threat-vulnerable type response DB 32 (FIG. 13), the vulnerability candidate extraction unit 26 makes the corresponding program specification 42 (FIG. 4). Vulnerability type candidates 49 to be inspected that may be used in attacks of related threats are extracted for each related threat.

具体的には、脆弱性候補抽出部26は、ストレージ13から脅威−脆弱性種別対応DB32を読み込み、脅威−脆弱性種別対応DB32をメモリ12に書き込む。
次に、脆弱性候補抽出部26は、構成要素とプログラム仕様の対応関係43(図5)をメモリ12から読み込む。
そして、脆弱性候補抽出部26は、構成要素とプログラム仕様の対応関係43(図5)の各エントリを順に処理し、プログラム仕様432に対応する関連脅威一覧48(図12)をメモリ12から読み込む。
次に、脆弱性候補抽出部26は、関連脅威一覧48に記載される脅威毎に脅威−脆弱性種別対応DB32のエントリを参照して、脅威と関係する脆弱性種別の候補を脆弱性種別一覧322から取得する。そして、脆弱性候補抽出部26は、取得した脆弱性種別の候補を脆弱性種別候補49(図14)として、個々の脅威と対応付けてメモリ12に書き込む。脆弱性候補抽出部26は、これをすべての脅威について行う。
そして、脆弱性候補抽出部26は、構成要素とプログラム仕様の対応関係43(図5)の次のエントリについても同様に処理を続け、すべてのエントリに対して脆弱性種別候補49の抽出を行う。
Specifically, the vulnerability candidate extraction unit 26 reads the threat-vulnerable type response DB 32 from the storage 13 and writes the threat-vulnerable type response DB 32 to the memory 12.
Next, the vulnerability candidate extraction unit 26 reads the correspondence 43 (FIG. 5) between the components and the program specifications from the memory 12.
Then, the vulnerability candidate extraction unit 26 sequentially processes each entry of the correspondence relationship 43 (FIG. 5) between the component and the program specification, and reads the related threat list 48 (FIG. 12) corresponding to the program specification 432 from the memory 12. ..
Next, the vulnerability candidate extraction unit 26 refers to the entry of the threat-vulnerable type response DB 32 for each threat described in the related threat list 48, and selects the candidate for the vulnerability type related to the threat in the vulnerability type list. Obtained from 322. Then, the vulnerability candidate extraction unit 26 writes the acquired vulnerability type candidate as the vulnerability type candidate 49 (FIG. 14) in the memory 12 in association with each threat. The vulnerability candidate extraction unit 26 does this for all threats.
Then, the vulnerability candidate extraction unit 26 continues processing in the same manner for the next entry of the correspondence relationship 43 (FIG. 5) between the component and the program specification, and extracts the vulnerability type candidate 49 for all the entries. ..

図13を参照して、脅威−脆弱性種別対応DB32の一例を説明する。 An example of the threat-vulnerable type response DB 32 will be described with reference to FIG.

脅威−脆弱性種別対応DB32は、図13のように表の形式で表すことができる。
脅威−脆弱性種別対応DB32には、脅威321と、その脅威に対応する脆弱性種別一覧322の情報が含まれる。
脆弱性種別一覧322には、脅威に対応する脆弱性種別が列挙される。なお、脅威−脆弱性種別対応DB32に脅威のエントリが存在しない場合、もしくは、脅威のエントリは存在するが対応する脆弱性種別の記載がない場合は、その脅威にはプログラム仕様42で記述されるレベルで分析できる脆弱性種別が存在しない。例えば、図13の「故障」には脆弱性種別がないが、これは故障が機器の不具合であり、プログラムに起因する脆弱性ではないからである。このような、脆弱性がない場合には、脆弱性候補抽出部26は、後述するステップS7の脆弱性分析の結果出力において、脅威に対応する脆弱性の候補がないことを示す表示を含めてもよい。
The threat-vulnerable type response DB 32 can be represented in the form of a table as shown in FIG.
The threat-vulnerable type response DB 32 includes information on the threat 321 and the list of vulnerability types 322 corresponding to the threat.
The vulnerability type list 322 lists the vulnerability types corresponding to the threat. If there is no threat entry in the threat-vulnerable type response DB 32, or if there is a threat entry but there is no description of the corresponding vulnerability type, the threat is described in the program specification 42. There is no vulnerability type that can be analyzed at the level. For example, "Failure" in FIG. 13 has no vulnerability type, because the failure is a device failure, not a program-induced vulnerability. When there is no such vulnerability, the vulnerability candidate extraction unit 26 includes a display indicating that there is no candidate for a vulnerability corresponding to the threat in the output of the result of the vulnerability analysis in step S7 described later. May be good.

図14を参照して、脆弱性種別候補49の一例を説明する。 An example of the vulnerability type candidate 49 will be described with reference to FIG.

脆弱性種別候補49は、関連脅威一覧48の脅威441と、構成要素442と、関係する情報資産443と、脅威の種別444と、脅威−脆弱性種別対応DB32の脆弱性種別一覧322とを対応付けた情報である。なお、図14と異なり、脆弱性種別候補49は、脅威441、関係する情報資産443及び脆弱性種別一覧322のみで構成されてもよい。また、脆弱性種別候補49に、図14に示されていない要素が含まれていてもよい。 The vulnerability type candidate 49 corresponds to the threat 441 of the related threat list 48, the component 442, the related information asset 443, the threat type 444, and the vulnerability type list 322 of the threat-vulnerable type response DB 32. This is the attached information. Unlike FIG. 14, the vulnerability type candidate 49 may be composed of only the threat 441, the related information asset 443, and the vulnerability type list 322. Further, the vulnerability type candidate 49 may include an element not shown in FIG.

(図2のステップS7:脆弱性分析処理)
脆弱性分析部27は、ステップS6で抽出された脆弱性種別候補49の脆弱性種別一覧322に示される脆弱性種別がプログラム仕様42に存在するかの分析を行う。そして、脆弱性分析部27は、分析結果を出力する。
脆弱性分析は、背景技術で説明したような静的コード解析又は形式的検証の技術を使って行われる。脆弱性分析部27は、脆弱性種別候補49の情報に従って、各脅威に関連する脆弱性を検査する。
(Step S7 in FIG. 2: Vulnerability analysis process)
The vulnerability analysis unit 27 analyzes whether the vulnerability type shown in the vulnerability type list 322 of the vulnerability type candidate 49 extracted in step S6 exists in the program specification 42. Then, the vulnerability analysis unit 27 outputs the analysis result.
Vulnerability analysis is performed using static code analysis or formal verification techniques as described in Background Techniques. The vulnerability analysis unit 27 inspects the vulnerabilities associated with each threat according to the information of the vulnerability type candidate 49.

具体的には、脆弱性分析部27は、脆弱性分析を行うプログラム仕様42(図4)と、対応する関連脅威一覧48(図12)と、各関連脅威に対応する脆弱性種別候補49(図14)とをメモリ12から読み出す。
次に、脆弱性分析部27は、脆弱性分析を行う。つまり、脆弱性分析部27は、脆弱性種別とそれに関連する変数を対応する関連脅威一覧48と脆弱性種別候補49に基づいて抽出し、脆弱性分析を行う。
そして、脆弱性分析部27は、脆弱性を検出した場合には、脆弱性検出結果410(図15)をメモリ12に書き込む(既に他の脆弱性検出結果410が存在する場合には新たな脆弱性検出結果410を既存の脆弱性検出結果410に追記する)。
脆弱性分析部27は、これをすべての検査対象のプログラム仕様42について行う。
すべての検査対象のプログラム仕様42に対してすべての脆弱性分析が完了した場合には、脆弱性分析部27は、通信インタフェース14を介して、接続された入出力装置に脆弱性検出結果410を送信する。
脆弱性検出結果410を受信した入出力装置は脆弱性検出結果410を表示する。また、脆弱性検出結果410をファイルに保存してもよい。
なお、脆弱性分析部27は、情報資産に対応付けられた変数も考慮して脆弱性分析を行う。
Specifically, the vulnerability analysis unit 27 includes a program specification 42 (FIG. 4) for performing vulnerability analysis, a list of related threats 48 (FIG. 12), and a vulnerability type candidate 49 (FIG. 12) corresponding to each related threat. 14) and are read from the memory 12.
Next, the vulnerability analysis unit 27 performs a vulnerability analysis. That is, the vulnerability analysis unit 27 extracts the vulnerability type and the variables related thereto based on the corresponding related threat list 48 and the vulnerability type candidate 49, and performs the vulnerability analysis.
Then, when the vulnerability analysis unit 27 detects a vulnerability, the vulnerability detection result 410 (FIG. 15) is written to the memory 12 (if another vulnerability detection result 410 already exists, a new vulnerability is created). Add the sex detection result 410 to the existing vulnerability detection result 410).
The vulnerability analysis unit 27 performs this for all the program specifications 42 to be inspected.
When all the vulnerability analysis is completed for all the program specifications 42 to be inspected, the vulnerability analysis unit 27 sends the vulnerability detection result 410 to the connected input / output device via the communication interface 14. Send.
The input / output device that has received the vulnerability detection result 410 displays the vulnerability detection result 410. Further, the vulnerability detection result 410 may be saved in a file.
In addition, the vulnerability analysis unit 27 performs the vulnerability analysis in consideration of the variables associated with the information assets.

図15を参照して、脆弱性検出結果410の一例を説明する。 An example of the vulnerability detection result 410 will be described with reference to FIG.

脆弱性検出結果410には、脆弱性種別411、変数412、箇所413、脅威414、構成要素415及び情報資産416が含まれる。
脆弱性種別411には、脆弱性分析部27が検出した脆弱性種別が示される。
変数412には、脆弱性分析部27が検出した脆弱性種別と関係する変数が示される。
箇所413には、脆弱性分析部27が検出した脆弱性種別と関係する、プログラム仕様42中の箇所が示される。
脅威414には、脆弱性分析部27が検出した脆弱性種別に対する脅威が示される。
構成要素415には、脆弱性分析部27が検出した脆弱性種別が存在する構成要素が示される。
情報資産416には、脆弱性分析部27が検出した脆弱性種別が存在する情報資産が示される。
図15は、PROGRAM_C.Cの脅威#6(推測による脅威)に関連する脆弱性検出結果410の一例を示している。図15の例では脆弱性種別411として「脆弱性1」が示される。また、変数412として「key」が示され、箇所413として「PROGRAM_C.Cの1行目」が示され、脅威414として「推測による漏えい」が示される。また、構成要素415として「コントローラ」が示され、情報資産416として「MAC鍵」が示される。
The vulnerability detection result 410 includes the vulnerability type 411, the variable 412, the location 413, the threat 414, the component 415, and the information asset 416.
The vulnerability type 411 indicates the vulnerability type detected by the vulnerability analysis unit 27.
Variable 412 indicates a variable related to the vulnerability type detected by the vulnerability analysis unit 27.
The location 413 indicates a location in the program specification 42 related to the vulnerability type detected by the vulnerability analysis unit 27.
Threat 414 indicates a threat to the vulnerability type detected by the vulnerability analysis unit 27.
The component 415 indicates a component in which the vulnerability type detected by the vulnerability analysis unit 27 exists.
The information asset 416 indicates an information asset in which the vulnerability type detected by the vulnerability analysis unit 27 exists.
FIG. 15 shows PROGRAM_C. An example of the vulnerability detection result 410 related to C threat # 6 (threat by guessing) is shown. In the example of FIG. 15, "Vulnerability 1" is shown as the vulnerability type 411. Further, "key" is shown as the variable 412, "the first line of PROGRAM_CC" is shown as the location 413, and "leakage by guessing" is shown as the threat 414. Further, a "controller" is shown as a component 415, and a "MAC key" is shown as an information asset 416.

***実施の形態の効果の説明***
以上のように、本実施の形態によれば、機器で実行されるプログラムに含まれる変数と機器が用いる情報資産との対応関係の候補を生成するため、プログラム内の部分と情報資産と脆弱性との対応関係を明確にできる。
*** Explanation of the effect of the embodiment ***
As described above, according to the present embodiment, in order to generate candidates for the correspondence between the variables included in the program executed by the device and the information assets used by the device, the parts in the program, the information assets, and the vulnerabilities. Can clarify the correspondence with.

また、本実施の形態では、脅威分析の情報資産の流れと、プログラム仕様の変数の入力/出力の分類の対応関係に基づき、脅威分析の結果とプログラム仕様との対応関係を明確にできる。このため、本実施の形態によれば、脆弱性分析の時点において分析対象を絞り込むことできる。 Further, in the present embodiment, the correspondence relationship between the threat analysis result and the program specification can be clarified based on the correspondence relationship between the flow of the information asset of the threat analysis and the input / output classification of the variable of the program specification. Therefore, according to this embodiment, the analysis target can be narrowed down at the time of vulnerability analysis.

また、本実施の形態では、脅威分析での情報資産の流れとプログラム仕様の変数の入出力関係の対応関係を分析して推測することができる。このため、本実施の形態によれば、脆弱性分析の利用者が個々にそれらを実行する手間を省くことができる。 Further, in the present embodiment, it is possible to analyze and infer the correspondence between the flow of information assets in the threat analysis and the input / output relationship of the variables of the program specifications. Therefore, according to the present embodiment, it is possible to save the user of the vulnerability analysis from having to execute them individually.

更に、本実施の形態では、各脅威に結びつく攻撃に利用される脆弱性の対応関係を記憶している。このため、脆弱性分析の際に、脅威分析の結果から、対応関係を参照して、攻撃に利用される脆弱性を導出することができる。 Further, in the present embodiment, the correspondence of the vulnerabilities used in the attacks linked to each threat is stored. Therefore, in the case of vulnerability analysis, it is possible to derive the vulnerability used in the attack by referring to the correspondence from the result of the threat analysis.

実施の形態2.
実施の形態1では、脆弱性分析装置10は、外部から取得した情報資産フロー41(図3)から、脆弱性分析の対象のシステムの機器構成、情報資産の種別及び情報資産の流れを得る。
本実施の形態では、脆弱性分析装置10が、脆弱性分析の対象のシステムの機器構成、情報資産の種別及び情報資産の流れを分析する例を説明する。
本実施の形態では、主に実施の形態1との差異を説明する。
なお、以下で説明していない事項は、実施の形態1と同様である。
Embodiment 2.
In the first embodiment, the vulnerability analyzer 10 obtains the device configuration of the system to be analyzed for vulnerability analysis, the type of information asset, and the flow of information assets from the information asset flow 41 (FIG. 3) acquired from the outside.
In the present embodiment, an example in which the vulnerability analyzer 10 analyzes the device configuration of the system to be analyzed for vulnerability, the type of information asset, and the flow of information asset will be described.
In the present embodiment, the difference from the first embodiment will be mainly described.
The matters not explained below are the same as those in the first embodiment.

***構成の説明***
図16を参照して、実施の形態1に係る脆弱性分析装置10の構成を説明する。
図16では、図1の構成と比較して、情報資産判別部28が追加されている。図16に示す他の要素は、図1に示したものと同じである。
*** Explanation of configuration ***
The configuration of the vulnerability analyzer 10 according to the first embodiment will be described with reference to FIG.
In FIG. 16, an information asset determination unit 28 is added as compared with the configuration of FIG. The other elements shown in FIG. 16 are the same as those shown in FIG.

***動作の説明***
以下、図2を参照して、本実施の形態に係る脆弱性分析装置10の動作例を説明する。
*** Explanation of operation ***
Hereinafter, an operation example of the vulnerability analyzer 10 according to the present embodiment will be described with reference to FIG.

本実施の形態では、図2のステップS1において、第1の受付部21が、情報資産フロー41の替わりに、脅威分析入力情報51を受け付ける。 In the present embodiment, in step S1 of FIG. 2, the first reception unit 21 receives the threat analysis input information 51 instead of the information asset flow 41.

具体的には、通信インタフェース14を介して接続された入力装置が利用者によって操作され、脅威分析入力情報51と、プログラム仕様42と、構成要素とプログラム仕様の対応関係43と、脅威分析結果44とが入力される。
そして、第1の受付部21は、通信インタフェース14を介して脅威分析入力情報51と、プログラム仕様42と、構成要素とプログラム仕様の対応関係43と、脅威分析結果44とを受け付ける。
更に、第1の受付部21は、脅威分析入力情報51と、プログラム仕様42と、構成要素とプログラム仕様の対応関係43と、脅威分析結果44とをメモリ12に書き込む。
Specifically, the input device connected via the communication interface 14 is operated by the user, and the threat analysis input information 51, the program specification 42, the correspondence between the components and the program specification 43, and the threat analysis result 44. Is entered.
Then, the first reception unit 21 receives the threat analysis input information 51, the program specification 42, the correspondence relationship 43 between the component and the program specification, and the threat analysis result 44 via the communication interface 14.
Further, the first reception unit 21 writes the threat analysis input information 51, the program specification 42, the correspondence relationship 43 between the component and the program specification, and the threat analysis result 44 into the memory 12.

脅威分析入力情報51は、脅威分析に用いられた情報である。
脅威分析入力情報51は、脆弱性分析の対象となるシステムを構成する複数の構成要素、構成要素間の接続関係、情報資産の一覧および情報資産の流れを示す情報が含まれている。
The threat analysis input information 51 is information used for threat analysis.
The threat analysis input information 51 includes a plurality of components constituting the system to be analyzed for vulnerability analysis, connection relationships between the components, a list of information assets, and information indicating the flow of information assets.

次に、ステップS3を実施する前に、情報資産判別部28が、関連情報資産フロー抽出処理を行う。
関連情報資産フロー抽出処理では、情報資産判別部28は、ステップS1で受け付けられた脅威分析入力情報51と、構成要素とプログラム仕様の対応関係43とに基づき、脆弱性分析の対象となるプログラム仕様42に関連する情報資産フローを、構成要素毎に抽出する。情報資産フローは、実施の形態1で示した図3の情報資産フロー41と同じ形式である。
つまり、情報資産判別部28は、脅威分析の対象となるシステムで用いられる情報資産の各々が、入力情報資産、出力情報資産、内部利用情報資産のいずれであるかを判別する。
Next, before carrying out step S3, the information asset determination unit 28 performs the related information asset flow extraction process.
In the related information asset flow extraction process, the information asset determination unit 28 determines the program specifications to be targeted for vulnerability analysis based on the threat analysis input information 51 received in step S1 and the correspondence relationship 43 between the components and the program specifications. The information asset flow related to 42 is extracted for each component. The information asset flow has the same format as the information asset flow 41 of FIG. 3 shown in the first embodiment.
That is, the information asset determination unit 28 determines whether each of the information assets used in the system subject to threat analysis is an input information asset, an output information asset, or an internal use information asset.

***実施の形態の効果の説明***
以上のように、本実施の形態によれば、脆弱性分析装置10が情報資産フローを生成することができるため、外部装置で情報資産フローを生成する必要がない。
*** Explanation of the effect of the embodiment ***
As described above, according to the present embodiment, since the vulnerability analysis device 10 can generate the information asset flow, it is not necessary to generate the information asset flow by the external device.

実施の形態3.
実施の形態1及び2では、情報資産と変数との対応関係の候補を出力する場合に、候補の出力順序は考慮されていない。
本実施の形態では、脆弱性分析装置10は、情報資産と変数との対応関係の候補を出力する際に、各候補の確かさに従って出力順序を制御する。つまり、本実施の形態では、第2の受付部24が、複数の対応関係の候補を出力する場合に、複数の対応関係の候補の間に優先順位を設け、優先順位が高い対応関係の候補を優先して出力する。
本実施の形態では、主に実施の形態1との差異を説明する。
なお、以下で説明していない事項は、実施の形態1と同様である。
Embodiment 3.
In the first and second embodiments, when the candidates for the correspondence between the information assets and the variables are output, the output order of the candidates is not taken into consideration.
In the present embodiment, the vulnerability analyzer 10 controls the output order according to the certainty of each candidate when outputting the candidate of the correspondence relationship between the information asset and the variable. That is, in the present embodiment, when the second reception unit 24 outputs a plurality of correspondence relationship candidates, a priority is set among the plurality of correspondence relation candidates, and the correspondence relation candidates having a high priority are set. Is given priority for output.
In the present embodiment, the difference from the first embodiment will be mainly described.
The matters not explained below are the same as those in the first embodiment.

具体的には、図2のステップS3において、候補生成部23がプログラム仕様42内の変数と情報資産の対応を分析する際に、候補生成部23は候補としての確かさを推測する。候補生成部23は、例えば、事前に設定されたキーワードの組み合わせ等で変数と情報資産の対応関係の候補の確かさを推測する。
例えば、候補生成部23は、情報資産「コマンド」と、変数command及び変数cmdは、表記が近似するため、候補としての確かさが高いと推測する。また、候補生成部23は、対応する変数の組み合わせが多い候補はその確かさが高いと判定する。候補生成部23は、確かさに従って複数の対応関係の候補の出力順序(優先順位)を指定するする。
そして、第2の受付部24は、候補生成部23により指定された出力順序に従って、複数の対応関係の候補を出力する。
Specifically, in step S3 of FIG. 2, when the candidate generation unit 23 analyzes the correspondence between the variable and the information asset in the program specification 42, the candidate generation unit 23 estimates the certainty as a candidate. The candidate generation unit 23 estimates the certainty of candidates for the correspondence between variables and information assets by, for example, a combination of keywords set in advance.
For example, the candidate generation unit 23 estimates that the information asset "command" and the variable command and the variable cmd are similar in notation, so that the certainty as a candidate is high. Further, the candidate generation unit 23 determines that a candidate having many combinations of corresponding variables has a high certainty. The candidate generation unit 23 specifies the output order (priority) of a plurality of correspondence candidates according to the certainty.
Then, the second reception unit 24 outputs a plurality of correspondence candidates according to the output order specified by the candidate generation unit 23.

以上のように、本実施の形態では、対応関係の候補の確かさを推測し、確かさに基づいて対応関係の候補の出力順序を指定し、指定した出力順序で複数の対応関係の候補を出力する。このため、本実施の形態によれば、利用者は対応関係の候補が複数存在した場合でも、容易に正しい対応関係を選択することができる。 As described above, in the present embodiment, the certainty of the correspondence candidate is estimated, the output order of the correspondence candidate is specified based on the certainty, and a plurality of correspondence candidates are selected in the specified output order. Output. Therefore, according to the present embodiment, the user can easily select the correct correspondence relationship even when there are a plurality of correspondence relationship candidates.

実施の形態4.
実施の形態1〜3では、脆弱性候補抽出部26は、脅威−脆弱性対応DB32を使って、関連脅威に対応する脆弱性種別の候補を抽出する。
本実施の形態では、第1の受付部21がアタックツリーを取得する。そして、脆弱性候補抽出部26は、アタックツリーを用いて、脆弱性の種別の候補を抽出する。アタックツリーは、脅威分析結果44(図6)の各脅威を達成するための一連の攻撃手順と当該攻撃手順に利用される脆弱性の種別が示される情報である。
脆弱性候補抽出部26は、関連脅威一覧48(図12)の各脅威に対応する脆弱性の種別の候補を抽出する際に、脅威−脆弱性対応DB32を使う替わりに、アタックツリーに含まれる脆弱性の種別の情報を抽出する。なお、脆弱性候補抽出部26は、攻撃先が対応する構成要素であることを確認した後に、アタックツリーから脆弱性の種別を抽出する。
なお、本実施の形態で説明していない事項は、実施の形態1と同様である。
Embodiment 4.
In the first to third embodiments, the vulnerability candidate extraction unit 26 uses the threat-vulnerability response DB 32 to extract candidates for the vulnerability type corresponding to the related threat.
In the present embodiment, the first reception unit 21 acquires the attack tree. Then, the vulnerability candidate extraction unit 26 uses the attack tree to extract candidates for the type of vulnerability. The attack tree is information indicating a series of attack procedures for achieving each threat of the threat analysis result 44 (FIG. 6) and the types of vulnerabilities used in the attack procedure.
The vulnerability candidate extraction unit 26 is included in the attack tree instead of using the threat-vulnerability response DB 32 when extracting candidates for the type of vulnerability corresponding to each threat in the related threat list 48 (FIG. 12). Extract information on the type of vulnerability. The vulnerability candidate extraction unit 26 extracts the type of vulnerability from the attack tree after confirming that the attack destination is the corresponding component.
The matters not described in the present embodiment are the same as those in the first embodiment.

以上のように、本実施の形態では、アタックツリーに含まれる脆弱性の種別の情報を使うことで、柔軟な分析を行うことができる(脅威−脆弱性種別対応DB32を使った場合には、脅威と脆弱性の種別の対応関係は固定的である)。本実施の形態によれば、例えば、システムの構成や攻撃の仕方によって利用される脆弱性の種別が変化する場合に、柔軟な分析を行うことができる。 As described above, in this embodiment, flexible analysis can be performed by using the information on the type of vulnerability included in the attack tree (when the threat-vulnerable type response DB32 is used, the case of using the threat-vulnerable type response DB32). The correspondence between threat and vulnerability types is fixed). According to this embodiment, for example, when the type of vulnerability used changes depending on the system configuration and the attack method, flexible analysis can be performed.

実施の形態5.
実施の形態1〜4では、脆弱性分析の際にプログラム仕様42をそのまま利用する。
本実施の形態では、脆弱性分析部27は、情報資産と変数との対応付け又は/及び脅威の種別を参照して、脆弱性分析を行う。つまり、本実施の形態では、脆弱性分析部27は、情報資産−変数対応関係47(図10)から得られる複数の情報資産と複数の変数との対応付けをプログラム仕様42に追加して、脆弱性分析を行うことができる。また、脆弱性分析部27は、脅威分析結果44に記載の脅威の種別444(C、I、A)を参照して、脆弱性分析を行うことができる。つまり、脆弱性分析部27は、プログラム仕様42に脅威の種別444(C、I、A)を追加して、脆弱性分析を行うことができる。
また、本実施の形態では、脆弱性分析部27は、脆弱性候補抽出部26により抽出された脆弱性の種別の候補に関連する処理が記述される部分をプログラム仕様42からプログラム断片として抽出することができる。そして、脆弱性分析部27は、抽出したプログラム断片を用いて脆弱性分析を行うことができる。この場合には、脆弱性分析部27は、プログラム仕様42から、例えば、脅威に関連する変数を参照又は変更する処理、脅威に関連する変数に影響を与える他の変数を使った処理、分岐処理、判断処理等の上述の処理の実行を制御する処理を、プログラム断片として抽出することができる。
なお、本実施の形態で説明していない事項は、実施の形態1と同様である。
Embodiment 5.
In the first to fourth embodiments, the program specification 42 is used as it is in the vulnerability analysis.
In this embodiment, the vulnerability analysis unit 27 performs a vulnerability analysis by referring to the association between information assets and variables and / and the type of threat. That is, in the present embodiment, the vulnerability analysis unit 27 adds the association between the plurality of information assets obtained from the information asset-variable correspondence 47 (FIG. 10) and the plurality of variables to the program specification 42. Can perform vulnerability analysis. In addition, the vulnerability analysis unit 27 can perform the vulnerability analysis by referring to the threat type 444 (C, I, A) described in the threat analysis result 44. That is, the vulnerability analysis unit 27 can perform the vulnerability analysis by adding the threat type 444 (C, I, A) to the program specification 42.
Further, in the present embodiment, the vulnerability analysis unit 27 extracts a portion in which the processing related to the candidate of the vulnerability type extracted by the vulnerability candidate extraction unit 26 is described as a program fragment from the program specification 42. be able to. Then, the vulnerability analysis unit 27 can perform a vulnerability analysis using the extracted program fragment. In this case, the vulnerability analysis unit 27, from the program specification 42, for example, a process of referencing or changing a variable related to the threat, a process using another variable that affects the variable related to the threat, and a branch process. , The process that controls the execution of the above-mentioned processes such as the determination process can be extracted as a program fragment.
The matters not described in the present embodiment are the same as those in the first embodiment.

以上のように、本実施の形態では、検査対象のプログラム仕様に、情報資産と変数との対応付け、情報資産の価値(C、I、A)等のメタ情報を追加して脆弱性検査を行う。このため、本実施の形態では、検査式の生成又は/及びモデルの生成を効率化することができる。
また、本実施の形態では、プログラム断片を用いることで、プログラム仕様の全体を用いる場合に比べて、脆弱性分析を効率化することができる。
As described above, in the present embodiment, vulnerability inspection is performed by adding meta information such as the correspondence between information assets and variables and the value of information assets (C, I, A) to the program specifications to be inspected. Do. Therefore, in the present embodiment, it is possible to improve the efficiency of the generation of the inspection formula and / and the generation of the model.
Further, in the present embodiment, by using the program fragment, the vulnerability analysis can be made more efficient as compared with the case where the entire program specification is used.

以上、本発明の実施の形態について説明したが、これらの実施の形態のうち、2つ以上を組み合わせて実施しても構わない。
あるいは、これらの実施の形態のうち、1つを部分的に実施しても構わない。
あるいは、これらの実施の形態のうち、2つ以上を部分的に組み合わせて実施しても構わない。
なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
Although the embodiments of the present invention have been described above, two or more of these embodiments may be combined and implemented.
Alternatively, one of these embodiments may be partially implemented.
Alternatively, two or more of these embodiments may be partially combined and implemented.
The present invention is not limited to these embodiments, and various modifications can be made as needed.

***ハードウェア構成の説明***
最後に、脆弱性分析装置10のハードウェア構成の補足説明を行う。
*** Explanation of hardware configuration ***
Finally, a supplementary explanation of the hardware configuration of the vulnerability analyzer 10 will be given.

ストレージ13には、OS(Operating System)が記憶されている。
そして、OSの少なくとも一部がメモリ12にロードされ、プロセッサ11により実行される。
プロセッサ11はOSの少なくとも一部を実行しながら、第1の受付部21、変数判別部22、候補生成部23、第2の受付部24、関連脅威抽出部25、脆弱性候補抽出部26、脆弱性分析部27及び情報資産判別部28の機能を実現するプログラムを実行する。
プロセッサ11がOSを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、第1の受付部21、変数判別部22、候補生成部23、第2の受付部24、関連脅威抽出部25、脆弱性候補抽出部26、脆弱性分析部27及び情報資産判別部28の処理の結果を示す情報、データ、信号値及び変数値の少なくともいずれかが、メモリ12、ストレージ13、プロセッサ11内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
また、第1の受付部21、変数判別部22、候補生成部23、第2の受付部24、関連脅威抽出部25、脆弱性候補抽出部26、脆弱性分析部27及び情報資産判別部28の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の可搬記録媒体に格納されていてもよい。そして、第1の受付部21、変数判別部22、候補生成部23、第2の受付部24、関連脅威抽出部25、脆弱性候補抽出部26、脆弱性分析部27及び情報資産判別部28の機能を実現するプログラムが格納された可搬記録媒体を商業的に流通させてもよい。
The OS (Operating System) is stored in the storage 13.
Then, at least a part of the OS is loaded into the memory 12 and executed by the processor 11.
While executing at least a part of the OS, the processor 11 has a first reception unit 21, a variable determination unit 22, a candidate generation unit 23, a second reception unit 24, a related threat extraction unit 25, and a vulnerability candidate extraction unit 26. Execute the program that realizes the functions of the vulnerability analysis unit 27 and the information asset determination unit 28.
When the processor 11 executes the OS, task management, memory management, file management, communication control, and the like are performed.
Further, the first reception unit 21, the variable discrimination unit 22, the candidate generation unit 23, the second reception unit 24, the related threat extraction unit 25, the vulnerability candidate extraction unit 26, the vulnerability analysis unit 27, and the information asset discrimination unit 28. At least one of the information, data, signal value, and variable value indicating the result of the processing is stored in at least one of the memory 12, the storage 13, and the register and the cache memory in the processor 11.
Further, the first reception unit 21, the variable discrimination unit 22, the candidate generation unit 23, the second reception unit 24, the related threat extraction unit 25, the vulnerability candidate extraction unit 26, the vulnerability analysis unit 27, and the information asset discrimination unit 28. The program that realizes the above functions may be stored in a portable recording medium such as a magnetic disk, a flexible disk, an optical disk, a compact disk, a Blu-ray (registered trademark) disk, or a DVD. Then, the first reception unit 21, the variable discrimination unit 22, the candidate generation unit 23, the second reception unit 24, the related threat extraction unit 25, the vulnerability candidate extraction unit 26, the vulnerability analysis unit 27, and the information asset discrimination unit 28. A portable recording medium containing a program that realizes the above functions may be commercially distributed.

また、第1の受付部21、変数判別部22、候補生成部23、第2の受付部24、関連脅威抽出部25、脆弱性候補抽出部26、脆弱性分析部27及び情報資産判別部28の「部」を、「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。
また、脆弱性分析装置10は、処理回路により実現されてもよい。処理回路は、例えば、ロジックIC(Integrated Circuit)、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field−Programmable Gate Array)である。
なお、本明細書では、プロセッサと処理回路との上位概念を、「プロセッシングサーキットリー」という。
つまり、プロセッサと処理回路とは、それぞれ「プロセッシングサーキットリー」の具体例である。
In addition, the first reception unit 21, the variable discrimination unit 22, the candidate generation unit 23, the second reception unit 24, the related threat extraction unit 25, the vulnerability candidate extraction unit 26, the vulnerability analysis unit 27, and the information asset discrimination unit 28. "Part" may be read as "circuit" or "process" or "procedure" or "process".
Further, the vulnerability analyzer 10 may be realized by a processing circuit. The processing circuit is, for example, a logic IC (Integrated Circuit), a GA (Gate Array), an ASIC (Application Specific Integrated Circuit), or an FPGA (Field-Programmable Gate Array).
In this specification, the superordinate concept of the processor and the processing circuit is referred to as "processing circuit Lee".
That is, the processor and the processing circuit are specific examples of the "processing circuit Lee", respectively.

10 脆弱性分析装置、11 プロセッサ、12 メモリ、13 ストレージ、14 通信インタフェース、21 第1の受付部、22 変数判別部、23 候補生成部、24 第2の受付部、25 関連脅威抽出部、26 脆弱性候補抽出部、27 脆弱性分析部、28 情報資産判別部、31 処理種別DB、32 脅威−脆弱性種別対応DB、41 情報資産フロー、42 プログラム仕様、43 構成要素とプログラム仕様の対応関係、44 脅威分析結果、45 プログラム変数処理関係、46 情報資産−変数対応関係候補、47 情報資産−変数対応関係、48 関連脅威一覧、49 脆弱性種別候補、410 脆弱性検出結果。 10 Vulnerability analyzer, 11 Processor, 12 Memory, 13 Storage, 14 Communication interface, 21 1st reception unit, 22 Variable discrimination unit, 23 Candidate generation unit, 24 2nd reception unit, 25 Related threat extraction unit, 26 Vulnerability Candidate Extraction Department, 27 Vulnerability Analysis Department, 28 Information Asset Discrimination Department, 31 Processing Type DB, 32 Threat-Vulnerability Type Response DB, 41 Information Asset Flow, 42 Program Specifications, 43 Correspondence between Components and Program Specifications , 44 Threat analysis result, 45 Program variable processing relationship, 46 Information asset-variable correspondence relationship candidate, 47 Information asset-variable correspondence relationship, 48 Related threat list, 49 Vulnerability type candidate, 410 Vulnerability detection result.

Claims (15)

機器で実行されるプログラムに含まれる複数の変数の各々の種別を判別する変数判別部と、
前記変数判別部により判別された前記複数の変数の各々の種別と、前記機器が用いる複数の情報資産の各々の種別とを比較し、前記複数の情報資産の各々と前記複数の変数の各々との対応関係の候補を1つ以上生成する候補生成部とを有する情報処理装置。
A variable discriminator that discriminates each type of multiple variables included in the program executed by the device,
Each type of the plurality of variables determined by the variable discriminating unit is compared with each type of the plurality of information assets used by the device, and each of the plurality of information assets and each of the plurality of variables An information processing device having a candidate generation unit that generates one or more candidates for a correspondence relationship.
前記情報処理装置は、更に、
前記候補生成部により複数の対応関係の候補が生成された場合に、前記複数の対応関係の候補を出力する出力部を有する請求項1に記載の情報処理装置。
The information processing device further
The information processing apparatus according to claim 1, further comprising an output unit that outputs the plurality of correspondence relationship candidates when a plurality of correspondence relationship candidates are generated by the candidate generation unit.
前記変数判別部は、
前記複数の変数の各々が、入力変数、出力変数、内部利用変数のいずれであるかを判別し、
前記候補生成部は、
前記機器の外部から前記機器に入力される情報資産である入力情報資産と前記入力変数、前記機器から前記機器の外部に出力される情報資産である出力情報資産と前記出力変数、前記機器の内部で利用される情報資産である内部利用情報資産と前記内部利用変数とを対応付けて、対応関係の候補を1つ以上生成する請求項1に記載の情報処理装置。
The variable discriminating unit is
It is determined whether each of the plurality of variables is an input variable, an output variable, or an internally used variable.
The candidate generation unit
Input information assets and input variables which are information assets input from the outside of the device to the device, output information assets and output variables which are information assets output from the device to the outside of the device, and the inside of the device. The information processing device according to claim 1, wherein the internal use information asset, which is the information asset used in the above, is associated with the internal use variable to generate one or more correspondence candidates.
前記候補生成部は、
前記複数の情報資産の各々が、前記入力情報資産、前記出力情報資産、前記内部利用情報資産のいずれであるかが示される情報資産情報を取得し、前記情報資産情報に示される入力情報資産と前記入力変数と、前記情報資産情報に示される前記出力情報資産と前記出力変数、前記情報資産情報に示される前記内部利用情報資産と前記内部利用変数とを対応付ける請求項3に記載の情報処理装置。
The candidate generation unit
Each of the plurality of information assets acquires information asset information indicating which of the input information asset, the output information asset, and the internal use information asset, and the input information asset shown in the information asset information The information processing apparatus according to claim 3, wherein the input variable, the output information asset and the output variable shown in the information asset information, and the internal use information asset and the internal use variable shown in the information asset information are associated with each other. ..
前記情報処理装置は、更に、
前記複数の情報資産の各々が、前記入力情報資産、前記出力情報資産、前記内部利用情報資産のいずれであるかを判別する情報資産判別部を有する請求項3に記載の情報処理装置。
The information processing device further
The information processing apparatus according to claim 3, further comprising an information asset discriminating unit that discriminates whether each of the plurality of information assets is the input information asset, the output information asset, or the internal use information asset.
前記変数判別部は、
前記複数の変数の各々が用いられている処理が、入力処理、出力処理、内部利用処理のいずれであるかを判別し、判別した処理の種別に基づいて、前記複数の変数の各々の種別を判別する請求項3に記載の情報処理装置。
The variable discriminating unit is
It is determined whether the process in which each of the plurality of variables is used is an input process, an output process, or an internal use process, and each type of the plurality of variables is determined based on the type of the determined process. The information processing apparatus according to claim 3.
前記変数判別部は、
前記複数の変数における変数値の伝搬関係を解析し、
前記出力部は、
前記候補生成部により生成された1つ以上の対応関係の候補と、前記変数判別部の解析により得られた変数値の伝搬関係とを出力する請求項2に記載の情報処理装置。
The variable discriminating unit is
Analyzing the propagation relationship of variable values in the plurality of variables,
The output unit
The information processing apparatus according to claim 2, which outputs one or more correspondence relationship candidates generated by the candidate generation unit and a propagation relationship of variable values obtained by analysis of the variable discrimination unit.
前記候補生成部は、
複数の対応関係の候補を生成した場合に、前記複数の対応関係の候補の間に優先順位を設け、
前記出力部は、
優先順位が高い対応関係の候補を優先して出力する請求項2に記載の情報処理装置。
The candidate generation unit
When a plurality of correspondence candidates are generated, a priority is set among the plurality of correspondence candidates.
The output unit
The information processing apparatus according to claim 2, wherein the candidate for the correspondence relationship having a high priority is preferentially output.
前記候補生成部は、
前記複数の対応関係の候補の各々について、対応関係の候補としての確かさを推測し、推測結果に基づき、前記複数の対応関係の候補の間に優先順位を設ける請求項8に記載の情報処理装置。
The candidate generation unit
The information processing according to claim 8, wherein the certainty of each of the plurality of correspondence candidates is estimated as a correspondence candidate, and a priority is set among the plurality of correspondence candidates based on the estimation result. apparatus.
前記情報処理装置は、更に、
前記1つ以上の対応関係の候補の中から選択された対応関係に基づき、前記機器に存在する脆弱性の種別の候補を抽出する脆弱性候補抽出部と、
前記脆弱性候補抽出部により抽出された脆弱性の種別の候補に基づき、前記機器の脆弱性分析を行う脆弱性分析部とを有する請求項1に記載の情報処理装置。
The information processing device further
A vulnerability candidate extraction unit that extracts candidates for the types of vulnerabilities existing in the device based on a correspondence relationship selected from the one or more correspondence relationship candidates.
The information processing apparatus according to claim 1, further comprising a vulnerability analysis unit that analyzes the vulnerability of the device based on the candidate for the type of vulnerability extracted by the vulnerability candidate extraction unit.
前記脆弱性候補抽出部は、
アタックツリーを参照して、前記機器に存在する脆弱性の種別の候補を抽出する請求項10に記載の情報処理装置。脆弱性の種別の候補
The vulnerability candidate extraction unit
The information processing apparatus according to claim 10, wherein a candidate for a type of vulnerability existing in the device is extracted with reference to an attack tree. Candidates for the type of vulnerability
前記脆弱性分析部は、
前記複数の情報資産と前記複数の変数との対応付け、脅威の種別の少なくともいずれかを参照して、前記機器の脆弱性分析を行う請求項10に記載の情報処理装置。
The vulnerability analysis department
The information processing apparatus according to claim 10, wherein the vulnerability analysis of the device is performed with reference to at least one of the association between the plurality of information assets and the plurality of variables and the type of threat.
前記脆弱性分析部は、
前記脆弱性候補抽出部により抽出された脆弱性の種別の候補に関連する処理が記述される部分を前記プログラムからプログラム断片として抽出し、抽出した前記プログラム断片を用いて前記機器の脆弱性分析を行う請求項10に記載の情報処理装置。
The vulnerability analysis department
The part in which the process related to the candidate of the vulnerability type extracted by the vulnerability candidate extraction unit is described is extracted as a program fragment from the program, and the extracted program fragment is used to analyze the vulnerability of the device. The information processing apparatus according to claim 10.
コンピュータが、機器で実行されるプログラムに含まれる複数の変数の各々の種別を判別し、
前記コンピュータが、判別された前記複数の変数の各々の種別と、前記機器が用いる複数の情報資産の各々の種別とを比較し、前記複数の情報資産の各々と前記複数の変数の各々との対応関係の候補を1つ以上生成する情報処理方法。
The computer determines the type of each of the multiple variables contained in the program running on the device.
The computer compares each type of the determined plurality of variables with each type of the plurality of information assets used by the device, and each of the plurality of information assets and each of the plurality of variables An information processing method that generates one or more correspondence candidates.
機器で実行されるプログラムに含まれる複数の変数の各々の種別を判別する変数判別処理と、
前記変数判別処理により判別された前記複数の変数の各々の種別と、前記機器が用いる複数の情報資産の各々の種別とを比較し、前記複数の情報資産の各々と前記複数の変数の各々との対応関係の候補を1つ以上生成する候補生成処理とをコンピュータに実行させる情報処理プログラム。
Variable discrimination processing that discriminates each type of multiple variables included in the program executed by the device, and
Each type of the plurality of variables determined by the variable discrimination process is compared with each type of the plurality of information assets used by the device, and each of the plurality of information assets and each of the plurality of variables An information processing program that causes a computer to execute a candidate generation process that generates one or more candidates for the correspondence.
JP2019520661A 2018-12-27 2018-12-27 Information processing apparatus, information processing method, and information processing program Expired - Fee Related JP6599053B1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/048085 WO2020136793A1 (en) 2018-12-27 2018-12-27 Information processing device, information processing method, and information processing program

Publications (2)

Publication Number Publication Date
JP6599053B1 JP6599053B1 (en) 2019-10-30
JPWO2020136793A1 true JPWO2020136793A1 (en) 2021-02-15

Family

ID=68383317

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019520661A Expired - Fee Related JP6599053B1 (en) 2018-12-27 2018-12-27 Information processing apparatus, information processing method, and information processing program

Country Status (2)

Country Link
JP (1) JP6599053B1 (en)
WO (1) WO2020136793A1 (en)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03161844A (en) * 1989-11-20 1991-07-11 Fujitsu Ltd Spelling correcting system
US8646085B2 (en) * 2007-10-10 2014-02-04 Telefonaktiebolaget L M Ericsson (Publ) Apparatus for reconfiguration of a technical system based on security analysis and a corresponding technical decision support system and computer program product
JP2011165051A (en) * 2010-02-12 2011-08-25 Keihin Corp Development support device, method and program
JP2011186999A (en) * 2010-03-11 2011-09-22 Cats Kk Device for supporting conversion of floating point representation program to fixed point representation and support program thereof
JP2013171358A (en) * 2012-02-20 2013-09-02 Mitsubishi Electric Corp Control program editor device and control program editor program

Also Published As

Publication number Publication date
WO2020136793A1 (en) 2020-07-02
JP6599053B1 (en) 2019-10-30

Similar Documents

Publication Publication Date Title
US11017094B2 (en) System and method for java deserialization vulnerability detection
WO2022180702A1 (en) Analysis function addition device, analysis function addition program, and analysis function addition method
US8776239B2 (en) In-development vulnerability response management
JP7287480B2 (en) Analysis function imparting device, analysis function imparting method and analysis function imparting program
US8701186B2 (en) Formal analysis of the quality and conformance of information flow downgraders
US20120072988A1 (en) Detection of global metamorphic malware variants using control and data flow analysis
US20190361788A1 (en) Interactive analysis of a security specification
WO2023067668A1 (en) Analysis function addition method, analysis function addition device, and analysis function addition program
US8650546B2 (en) Static analysis based on observed string values during execution of a computer-based software application
JP6632777B2 (en) Security design apparatus, security design method, and security design program
US20230141948A1 (en) Analysis and Testing of Embedded Code
WO2023067665A1 (en) Analysis function addition method, analysis function addition device, and analysis function addition program
JP2009129204A (en) Code inspection system, code inspection method, and program
JP6599053B1 (en) Information processing apparatus, information processing method, and information processing program
JP6608569B1 (en) Security design apparatus, security design method, and security design program
WO2018163274A1 (en) Risk analysis device, risk analysis method and risk analysis program
JP7052870B2 (en) Hypothesis reasoning device, hypothesis reasoning method, and program
JP6818568B2 (en) Communication device, communication specification difference extraction method and communication specification difference extraction program
WO2023067663A1 (en) Analysis function addition method, analysis function addition device, and analysis function addition program
WO2023067667A1 (en) Analysis function imparting method, analysis function imparting device, and analysis function imparting program
JPWO2019138540A1 (en) Threat identification device, threat identification method, and threat identification program
JP7292505B1 (en) Attack scenario generation device, attack scenario generation method, and attack scenario generation program
WO2020008631A1 (en) Observation event determination device, observation event determination method, and computer-readable recording medium
JPWO2023032203A5 (en)
KR20210050178A (en) Method, device, and computer readable medium for detecting vulnerability in source code

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190416

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190416

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20190416

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20190508

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190716

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190805

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191001

R150 Certificate of patent or registration of utility model

Ref document number: 6599053

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees