JP6599053B1 - Information processing apparatus, information processing method, and information processing program - Google Patents

Information processing apparatus, information processing method, and information processing program Download PDF

Info

Publication number
JP6599053B1
JP6599053B1 JP2019520661A JP2019520661A JP6599053B1 JP 6599053 B1 JP6599053 B1 JP 6599053B1 JP 2019520661 A JP2019520661 A JP 2019520661A JP 2019520661 A JP2019520661 A JP 2019520661A JP 6599053 B1 JP6599053 B1 JP 6599053B1
Authority
JP
Japan
Prior art keywords
information
variable
vulnerability
candidate
correspondence
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.)
Expired - Fee Related
Application number
JP2019520661A
Other languages
Japanese (ja)
Other versions
JPWO2020136793A1 (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)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (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 on 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 of the plurality of information assets. One or more candidates for correspondence with each of a plurality of variables are generated.

Description

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

セキュリティを考慮した開発プロセスでは、セキュリティ上の問題である脆弱性を作りこまないようにするために、開発上流の段階からセキュリティに関する分析や検討を行う。まず、システム設計等の開発上流フェーズで、開発対象システムで発生してはならない脅威を洗い出すための脅威分析を実施する(例えば、通信路を流れる機密情報が盗聴される等の脅威が洗い出される)。そして、脅威分析の結果に基づき、その脅威に至らないようにするための対策の方針を検討する(例えば、通信路を暗号化する必要がある等)。更に開発フェーズが進み設計及び実装の段階になると、開発対象システムを実現するための処理内容及び処理内容を実現するプログラムの具体的な実現方法に適したセキュリティ機能や運用方法を検討する。そして、検討結果を設計及び実装に盛り込む。設計及び実装の最終段階では、設計及び実装したプログラムに脆弱性がないかを確認するための分析を行う。   In the development process that considers security, security is analyzed and examined from the upstream development stage in order not to create vulnerabilities that are security problems. First, in the upstream development phase of system design, etc., threat analysis is performed to identify threats that should not occur in the development target system (for example, threats such as eavesdropping on confidential information flowing through the communication path are identified) ). Then, based on the result of the threat analysis, a countermeasure policy for preventing the threat is reached (for example, it is necessary to encrypt the communication path). When the development phase further advances and the design and implementation stage is reached, the processing contents for realizing the development target system and the security function and operation method suitable for the specific method for realizing the program for realizing the processing contents are examined. Then, incorporate the study results into 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 methods for realizing a vulnerability analysis apparatus for confirming whether there is a vulnerability, there is a technique for statically analyzing the specifications of a designed and implemented program or the program itself.
A conventional vulnerability analysis device analyzes a source code of a program using an analysis technique such as contamination analysis according to a predetermined rule (for example, Patent Document 1).
In addition, a method has been proposed in which a program specification is formally described in a model, and a formal method called model checking is used to mathematically prove whether the program operation satisfies the property of generating a vulnerability (for example, Patent Document 2).

特許第5740702号公報Japanese Patent No. 5740702 特開2008−262311号公報JP 2008-262111 A

特許文献1の手法では、予め決められたルールに従いプログラムのソースコードを分析する。このため、上流工程で実施した脅威分析の後に検討したセキュリティ対策の設計及び実装の抜けや誤りに起因する脆弱性の確認ができない。
また、特許文献2の手法では、証明すべき対象の性質を定義または選択すれば検証が可能である。証明すべき対象の性質を正しく定義または選択するには、設計及び実装の仕様が正しくはどうなるべきかの詳細までを把握する必要がある。しかし、脅威分析は設計及び実装の仕様が未確定である開発上流フェーズで実施するものである。このため、脅威分析の結果とプログラムを設計及び実装した仕様とを対応付けて、証明すべき対象の性質を定義または選択することは非常に手間がかかる。また、プログラムの仕様を静的に分析する手法では、プログラム全体を分析対象とすると、メモリ等の計算機リソースを多く必要とし、計算時間も長くなる。
In the method of Patent Document 1, the source code of a program is analyzed according to a predetermined rule. For this reason, it is impossible to confirm vulnerabilities due to omissions or errors in the design and implementation of security measures studied after the threat analysis performed in the upstream process.
In the method of Patent Document 2, verification is possible by defining or selecting a property to be proved. To correctly define or select the nature of the object to be proved, it is necessary to know the details of what the design and implementation specifications should be. However, threat analysis is performed in the upstream development phase, where design and implementation specifications are uncertain. For this reason, 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 designed and implemented by the program. Further, in the method of statically analyzing the specification of a program, if the entire program is to be analyzed, a large amount of computer resources such as a 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 on the device) that incorporates security measures after threat analysis in the upstream process and the information assets used by the device, It is useful to clarify the relationship between device information assets and vulnerabilities.
From such a viewpoint, the main object of the present invention is to contribute to the clarification of the correspondence between parts in a program, information assets, and vulnerabilities.

本発明に係る情報処理装置は、
機器で実行されるプログラムに含まれる複数の変数の各々の種別を判別する変数判別部と、
前記変数判別部により判別された前記複数の変数の各々の種別と、前記機器が用いる複数の情報資産の各々の種別とを比較し、前記複数の情報資産の各々と前記複数の変数の各々との対応関係の候補を1つ以上生成する候補生成部とを有する。
An information processing apparatus according to the present invention includes:
A variable discriminating unit for discriminating each type of a plurality of variables included in a program executed on the device;
Comparing each type of the plurality of variables determined by the variable determination unit 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 A candidate generation unit that generates one or more candidates of the correspondence relationship.

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

実施の形態1に係る脆弱性分析装置の構成例を示す図。FIG. 3 is a diagram illustrating a configuration example of a vulnerability analysis apparatus according to the first embodiment. 実施の形態1に係る脆弱性分析装置の動作例を示すフローチャート。5 is a flowchart illustrating an operation example of the vulnerability analysis apparatus according to the first embodiment. 実施の形態1に係るコントローラに関する情報資産フローの例を示す図。The figure which shows the example of the information asset flow regarding the controller which concerns on Embodiment 1. FIG. 実施の形態1に係るプログラム仕様の例を示す図。FIG. 4 shows an example of program specifications according to the first embodiment. 実施の形態1に係る構成要素とプログラム仕様の対応関係の例を示す図。The figure which shows the example of the correspondence of the component which concerns on Embodiment 1, and a program specification. 実施の形態1に係る脅威分析結果の例を示す図。FIG. 4 is a diagram illustrating an example of a threat analysis result according to the first embodiment. 実施の形態1に係る変数判別部の動作例を示すフローチャート。5 is a flowchart illustrating an operation example of a variable determination unit according to the first embodiment. 実施の形態1に係る処理種別DBの例を示す図。FIG. 3 is a diagram illustrating an example of a process type DB according to the first embodiment. 実施の形態1に係るプログラム変数処理関係の例を示す図。FIG. 4 is a diagram showing an example of program variable processing relation according to the first embodiment. 実施の形態1に係る情報資産−変数対応関係候補の例を示す図。The figure which shows the example of the information asset-variable correspondence candidate based on Embodiment 1. FIG. 実施の形態1に係る関連脅威一覧の抽出動作の例を示す図。The figure which shows the example of extraction operation | movement of the related threat list | wrist which concerns on Embodiment 1. FIG. 実施の形態1に係る関連脅威一覧の例を示す図。FIG. 5 is a diagram showing an example of a related threat list according to the first embodiment. 実施の形態1に係る脅威−脆弱性種別対応DBの例を示す図。The figure which shows the example of threat-vulnerability classification corresponding | compatible DB which concerns on Embodiment 1. FIG. 実施の形態1に係る脆弱性種別候補の例を示す図。The figure which shows the example of the vulnerability classification 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に係る脆弱性分析装置の構成例を示す図。FIG. 4 is a diagram illustrating a configuration example of a vulnerability analysis apparatus according to a second embodiment.

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

実施の形態1.
***構成の説明***
図1を参照して、実施の形態1に係る脆弱性分析装置10の構成を説明する。
脆弱性分析装置10は、情報処理装置に相当する。
Embodiment 1 FIG.
*** Explanation of configuration ***
With reference to FIG. 1, the structure of the vulnerability analysis apparatus 10 which concerns on Embodiment 1 is demonstrated.
The vulnerability analysis device 10 corresponds to an information processing device.

脆弱性分析装置10は、コンピュータである。脆弱性分析装置10は、プロセッサ11と、メモリ12と、ストレージ13と、通信インタフェース14といったハードウェアを備える。信号線を介してプロプロセッサ11と他のハードウェアとは接続され、プロセッサ11はこれら他のハードウェアを制御する。   The vulnerability analysis apparatus 10 is a computer. The vulnerability analysis apparatus 10 includes hardware such as a processor 11, a memory 12, a storage 13, and a communication interface 14. The proprocessor 11 and other hardware are connected 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. The processor 11 is a CPU (Central Processing Unit), a DSP (Digital Signal Processor), or a GPU (Graphics Processing Unit) as specific examples. In FIG. 1, only one processor 11 is shown. However, a plurality of processors 11 may be provided, and a 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. As a specific example, the memory 12 is an SRAM (Static Random Access Memory) or a 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 that stores data. The storage 13 is an HDD (Hard Disk Drive) as a specific example. Further, the storage 13 may be an SSD (Solid State Drive). The storage 13 includes an SD (registered trademark, Secure Digital) memory card, CF (CompactFlash, registered trademark), NAND flash, flexible disk, optical disk, compact disk, Blu-ray (registered trademark) disk, DVD (Digital Versatile 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), or HDMI (registered trademark, High-Definition Multimedia Interface).

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

脆弱性分析装置10の各機能構成要素の機能を実現するプログラムは、ストレージ13に格納されている。このプログラムは、プロセッサ11によりメモリ12に読み込まれ、プロセッサ11によって実行される。これにより、脆弱性分析装置10の各機能構成要素の機能が実現される。   A program that realizes the function of each functional component of the vulnerability analysis apparatus 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. Thereby, the function of each function component of the vulnerability analysis apparatus 10 is implement | achieved.

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

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

***動作の説明***
図2から図15を参照して、実施の形態1に係る脆弱性分析装置10の動作を説明する。なお、以下に示す脆弱性分析装置10の動作は、情報処理方法及び情報処理プログラムに相当する。
*** Explanation of operation ***
The operation of the vulnerability analysis apparatus 10 according to the first embodiment will be described with reference to FIGS. The following operations of the vulnerability analysis apparatus 10 correspond 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 analysis apparatus 10 according to the first embodiment.

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

また、変数判別部22が、プログラム仕様42で表されるプログラムに含まれる変数を抽出し、抽出した変数の種別を判別する(ステップS2)。
後述するように、プログラム仕様42は、開発対象の機器で実行されるプログラム(ソースコード)又はプログラムの特徴が記載される情報(フローチャート、UML(Unified Modeling Language)又はSysMLのアクティビティ図又はシーケンス図等)である。
変数判別部22は、抽出した変数の種別として、抽出した変数が入力変数、出力変数、内部利用変数のいずれであるかを判別する。
Moreover, the variable determination part 22 extracts the variable contained in the program represented by the program specification 42, and determines the type of the extracted variable (step S2).
As will be described later, the program specification 42 is a program (source code) executed on the device to be developed or information describing the characteristics of the program (flow chart, UML (Unified Modeling Language) or SysML activity diagram or sequence diagram). ).
The variable determining unit 22 determines whether the extracted variable is an input variable, an output variable, or an internal use 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 relationship between the information asset and the variable (step S3).
The candidate generation unit 23 compares the variable type determined by the variable determination unit 22 with the type of information asset used by the device, and generates one or more candidates for the correspondence relationship between the information asset and the variable.
In this specification, an information asset is information determined to be used by a component (device) by threat analysis. Specifically, the information asset of the component (device) is described in the information asset flow 41 (FIG. 3).
The types of information assets include input information assets that are information assets that are input to the device, output information assets that are information assets that are output from the device to the outside of the device, and internal use that is information assets that are used inside the device. There are information assets.
The candidate generation unit 23 associates input information assets and input variables, output information assets and output variables, internal use information assets and internal use variables, and generates correspondence candidates.

なお、対応関係の候補が複数存在する場合には、第2の受付部24が複数の対応関係の候補を出力する。そして、第2の受付部24は、脆弱性分析装置10の利用者による、対応関係の選択を受け付ける(ステップS4)。
つまり、第2の受付部24は、複数の対応関係の候補を例えば入出力装置に表示し、脆弱性分析装置10の利用者が表示された複数の対応関係の候補の中から該当する対応関係を選択する。そして、第2の受付部24が、利用者からの選択を受け付ける。
When there are a plurality of correspondence candidates, the second reception unit 24 outputs a plurality of correspondence candidates. And the 2nd reception part 24 receives selection of the correspondence by the user of the vulnerability analysis apparatus 10 (step S4).
That is, the second receiving unit 24 displays a plurality of correspondence candidates, for example, on the input / output device, and the corresponding correspondence among the plurality of correspondence candidates displayed by the user of the vulnerability analysis apparatus 10. Select. And the 2nd reception part 24 receives the selection from a 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 relationship 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 a related threat based on only one corresponding 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, related threats are extracted based on the correspondence relationship selected in step S4.
Specifically, the related threat extraction unit 25 extracts a related threat from the threat analysis result 44 (FIG. 6) received in step S1.

次に、脆弱性候補抽出部26が、関連する脅威に至る攻撃に利用される恐れのある脆弱性の種別の候補を抽出する(ステップS6)。   Next, the vulnerability candidate extraction unit 26 extracts vulnerability type candidates 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 examining whether a candidate for a vulnerability type can occur in the description of the program specification 42, and outputs an analysis result (step S7).

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

(図2のステップS1:第1の受付処理)
第1の受付部21は、情報資産フロー41(図3)と、プログラム仕様42(図4)と、構成要素とプログラム仕様の対応関係43(図5)と、脅威分析結果44(図6)とを受け付ける。
(Step S1: first accepting process in FIG. 2)
The first reception unit 21 includes an information asset flow 41 (FIG. 3), a program specification 42 (FIG. 4), a correspondence relationship 43 between components and program specifications (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 user's operation, an information asset flow 41, a program specification 42, a correspondence relationship 43 between a component and a program specification, and a threat analysis result 44 are input. Then, the first receiving unit 21 receives the information asset flow 41, the program specification 42, the correspondence relationship 43 between the constituent elements and the program specification, and the threat analysis result 44 that are input via the communication interface 14.
Furthermore, the first receiving 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 in 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 (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 development target system, a related element 412 that is a component (device) related to the component 411, a component 411, and a related element 412. Connection information 413, information asset name 414, and information asset type 415.
As described above, the types of information assets are input information assets, output information assets, and internal use information assets. There may be information asset types other than input information assets, output information assets, and internal use information assets.
“Input” is a flow of information assets input to the component 411 from outside the component 411. “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 within 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, as shown in FIG. 3, the information asset flow 41 can be represented by a diagram obtained by extending the UML communication diagram. 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. 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 element 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 information asset flow.
Further, a line having a round starting point extends from the controller regardless of the connection relation 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, the internal use information asset.
A character string arranged near the flow line of the information asset is the name 414 of the information asset handled in the flow. A character string surrounded by <<>> is an information asset type 415. For example, the arrow from the HMI to the controller in FIG. 3 means that the information asset “command” flows from “HMI” to “controller”. The arrow indicates that, from the standpoint of “controller”, the information asset type 415 is “input” (input information asset). In addition, a circle with a starting point extending from “controller” indicates 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. It is 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 a name 421 of a program to be analyzed for vulnerability, and a program processing content 422 representing a variable flow (data flow) and a processing flow (control flow).
Specifically, in the program specification 42, the entire program executed by the device (corresponding to the component 411 in FIG. 3) included in the development target system after the threat analysis is performed or a logic that is a part of the program is executed. Described. A program specification 42 is described for each device included in the development target system.
In addition, the program specification 42 may not be input to the vulnerability analysis apparatus 10 for a part of devices and programs that are not subject to vulnerability analysis.

なお、プログラム仕様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で利用される。
The program specification 42 is specifically 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 source code described in a program language and a flowchart in which processing / determination is described in a program language format such as C language (m = n + 1, m = add (n, 1), etc.). The program model also corresponds to a UML or SysML activity diagram or sequence diagram, a block diagram used in DFD, control engineering, or the like. The program model is described and stored in a data format that can represent 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 (Extensible Markup Language) and JSON (JavaScript (registered trademark) Object Notification). For example, FIG. 4 shows an example of a program specification 42 regarding communication processing with the HMI of the component “controller”. In FIG. 4, the operation content of a part of a program that operates on the controller is described in a general C source code format.
The program name 421 is “PROGRAM_C.C”, and the program processing content 422 is C language description content. In the example of FIG. 4, the program name 421 is indicated by the file name of the C language source code. However, any format can be used as long as the vulnerability analysis apparatus 10 can uniquely identify each program specification 42. good. The program name 421 is used in a correspondence 43 between a component and a program specification described later.

次に、図5を参照して、構成要素とプログラム仕様の対応関係43の一例を説明する。   Next, an example of the correspondence 43 between the component elements 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」である。
A correspondence relationship 43 between the component elements and the program specifications indicates a correspondence relationship between the component elements 431 targeted for vulnerability analysis and the program specifications 432.
The correspondence 43 between the component elements and the program specifications can be expressed as a table as shown in FIG. 5, for example. 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 threat analysis for the development target system.
The threat analysis result 44 includes a threat 441, a component 442, related information assets 443, and a threat type 444.
The threat 441 shows the content of the threat.
The component 442 indicates a component or connection relationship in which a threat occurs.
In the related information asset 443, an information asset related to the threat is shown.
The threat type 444 indicates the type of impact on information assets when a threat occurs. The threat type 444 indicates, for example, one of C, I, and A that are generally used to indicate information security attributes. Note that C means confidentiality, I means integrity, and A means availability.
The threat analysis result 44 can be expressed in the form of a table as shown in FIG. 6, for example. In the example of FIG. 6, the record in the first row indicates “leakage by speculation” as the threat 441, and “remote terminal” that is a constituent element in which the threat occurs as the constituent element 442, and related information assets “Password” related to the leakage of guess is indicated as 443, and “C” is indicated as the threat type 444.

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

図7は、変数判別部22の動作例を説明するフローチャートである。   FIG. 7 is a flowchart for explaining 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 a variable 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 processing order of each variable whose type has been determined (step S24).

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

次に、図7のステップS21〜S26の詳細を説明する。   Next, details of steps S21 to S26 in 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 S <b> 21, the variable determination unit 22 reads the process type DB 31 from the storage 13 and writes the process type DB 31 in the memory 12.
Next, the variable determination unit 22 reads the program specification 42 and the processing type DB 31 information from the memory 12.
Here, the program specification 42 is the program specification 42 accepted in step S1.

図8を参照して、処理種別DB31の一例を説明する。   An example of the process 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 whether the process indicated by the process name 311 corresponds to an input process, an output process, or an internal use process (security process). 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 indicated by the process name 311 is a function, a method, or the like.
In the example of FIG. 8, for example, the process type of the process name receiveMessage is input process (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 a variable 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 of the present embodiment, variables can be extracted by using the lexical analysis and syntax analysis techniques used by the compiler. Even in the case of descriptions 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 extracted variable is used for processing of a function, a method, and the like indicated by the process name 311 of the process type DB 31. “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.
If the extracted variable is used in the process indicated by the process name 311, the variable determination unit 22 determines the type of the variable based on the process type 312 of the target process. As described above, the variable determination unit 22 determines the type of variable based on the type of processing.
More specifically, for example, when the program specification 42 is written in C language, if the processing type is “Input”, the variable determination unit 22 returns a return value or an address passing argument (reference passing argument). Are used as input variables. On the other hand, if the process type is “Output”, the variable determination unit 22 determines that the variable used in the value passing argument is “output variable”. In addition, the variable discriminating unit 22 discriminates both “input variable” and “output variable” from the variables used in the address passing argument. The variable determination unit 22 determines that the variable used for the return value is an “input variable”. Furthermore, as a result of performing the above-described determination for all variables, the variable determination unit 22 is a variable that is not determined by any type, and the variable used in the conditional statement and the processing type is “Security”. A variable used as an argument or return value of the function is determined as an “internal use 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-described determination rule using the processing type DB 31 shown in FIG. 8, msg and len become “input variables”. Further, dev, val, and ret are “output variables”. In addition, key and state are “internal use variables”. Moreover, cmd is not classified into any.

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

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

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

<図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 processing order of each variable whose type has been determined in step S23. The propagation relationship is a data flow in which the value of a variable determined as “input variable” is propagated to another variable. The variable discriminating unit 22 can analyze the propagation relationship from the variable substitution relationship and the like, similarly to 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 in 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 analyzed in steps S21 to S24 in the memory 12 as the 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 variable obtained by the analysis of the variable determination 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 illustrated in FIG. 9, the variable type of the variable name msg is “input variable”. Furthermore, 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 estimation process)
The candidate generating unit 23 generates a candidate for the correspondence relationship 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 “input” of the information asset flow 41 and “input variable” of the program variable processing relationship 45. Similarly, the candidate generation unit 23 maps “output” of the information asset flow 41 and “output variable” of the program variable processing relationship 45. Further, the candidate generation unit 23 maps “internal use” of the information asset flow 41 and “internal use variable” of the program variable processing relationship 45. In this way, the candidate generation unit 23 generates all combinations of information assets and program specification 42 variables.
Then, the candidate generation unit 23 writes the generated correspondence relationship candidate in the memory 12 as the information asset-variable correspondence candidate 46.

図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 information asset 462 for input or internal use, 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 that is the input information asset is associated with the variables len and msg. A value that is an input information asset is associated with a variable ans. A MAC key that is an information asset for internal use is associated with a variable key. Also, the instruction that is the output information asset is associated with the variables dev and val. The response that is the 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 relationship 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 receives selection of the correspondence relationship 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 receiving unit 24 reads the information asset-variable correspondence relationship candidate 46 from the memory 12. When there are a plurality of correspondence candidates in the information asset-variable correspondence candidate 46, the second receiving unit 24 inputs the information asset-variable correspondence candidate 46 into the input connected via the communication interface 14. Send to output device.
Then, the information asset-variable correspondence candidate 46 is displayed on the input / output device. The user operates the input / output device to select 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 receiving unit 24 via the communication interface 14. The second receiving unit 24 receives the information asset-variable correspondence 47 input via the communication interface 14. Further, the second receiving 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 in which the actual information asset-variable correspondence is shown.
As shown in FIG. 10, the information asset-variable correspondence candidate 46 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 the information asset-variable correspondence candidate 46 has only one correspondence candidate, step S4 is not performed, but the correspondence candidate included in the information asset-variable correspondence candidate 46 is also the following. The information asset-variable correspondence 47 is referred to.

(図2のステップS5:関連脅威抽出処理)
関連脅威抽出部25は、情報資産−変数対応関係47に基づき、プログラム仕様42に関連する脅威の一覧を、関連脅威一覧48として抽出する。なお、関連脅威一覧48の抽出はそれぞれのプログラム仕様42に対して行われる。
(Step S5 in FIG. 2: related threat extraction processing)
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 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 constituent elements and the program specifications from the memory 12.
Then, the related threat extraction unit 25 sequentially processes each entry of the correspondence 43 between the component and the program specification, and converts the information asset flow 41 (FIG. 3) corresponding to the content of the component 431 and the content of the program specification 432. The corresponding information asset-variable correspondence 47 is read from the memory.
Then, the related threat extraction unit 25 uses the information asset flow 41 and the information asset-variable correspondence 47 to extract a threat related to the program specification 42 from the threat analysis result 44 (FIG. 6) (details are shown in FIG. 6). 11 will be described later).
Then, the related threat extraction unit 25 writes the extracted result as a related threat list 48 in association with the processed program specification 42 in the memory 12. The related threat extraction unit 25 performs these operations for all the entries in the correspondence relationship 43 (FIG. 5) between the constituent elements and the program specifications.

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

まず、関連脅威抽出部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 correspondence relationship 43 (FIG. 5) between the component and the program specification is included in the component 442. . Then, the related threat extraction unit 25 temporarily extracts the description content of the threat 441 of the entry obtained by the search.
For example, PROGRAM_C. When threat extraction is performed on C, according to the correspondence 43 between the constituent elements and the program specifications (FIG. 5), PROGRAM_C. The component on which C operates is a controller. For this reason, the related threat extraction unit 25 searches the threat analysis result 44 (FIG. 6) for an entry whose component 442 includes “controller”. In the threat analysis result 44 (FIG. 6), entries “HMI-controller”, “controller”, and “controller-device” are obtained (procedure (1) in FIG. 11). The related threat extraction unit 25 temporarily extracts “unencrypted communication tampering”, “leakage by guess”, “tampering by retransmission”, and “DoS by retransmission” described in the 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 a variable in the information asset-variable correspondence 47, the related threat extraction unit 25 detects the threat 441 of the corresponding entry. Formally extract the description of
The related threat extraction unit 25 performs “command”, “response”, “MAC key”, “instruction” of the information asset 443 related to the entry (line numbers 4 to 13) obtained in the procedure (1) of FIG. It is determined whether each of “value” and “status” is associated with a variable in the information asset-variable correspondence 47 (FIG. 10).
In the information asset-variable correspondence 47 in FIG. 10, information assets other than “status” are associated with variables.
Therefore, the related threat extraction unit 25 formally extracts the description content of the threat 441 in the fourth to eleventh lines in FIG. 11 (procedure (3) in FIG. 11).
Then, the related threat extraction unit 25 writes the description content of the extracted threat 441 in the memory 12 as the related threat list 48.

また、図12を参照して、関連脅威一覧48の一例を説明する。   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 an entry of the correspondence relationship 43 (FIG. 5) between the component elements and the program specifications.

(図2のステップS6:関連脆弱性候補抽出処理)
脆弱性候補抽出部26は、ステップS5で抽出された関連脅威一覧48(図12)と、脅威−脆弱性種別対応DB32(図13)の情報に基づき、該当のプログラム仕様42(図4)に関連する脅威の攻撃に利用される可能性がある検査すべき脆弱性種別候補49を、個々の関連する脅威毎に抽出する。
(Step S6 in FIG. 2: related vulnerability candidate extraction process)
The vulnerability candidate extraction unit 26 creates a program specification 42 (FIG. 4) according to the related threat list 48 (FIG. 12) extracted in step S5 and the information in the threat-vulnerability type correspondence DB 32 (FIG. 13). Vulnerability type candidates 49 to be inspected that may be used for 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-vulnerability type correspondence DB 32 from the storage 13 and writes the threat-vulnerability type correspondence DB 32 in the memory 12.
Next, the vulnerability candidate extraction unit 26 reads the correspondence 43 (FIG. 5) between the constituent elements 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 constituent elements and the program specifications, and reads the related threat list 48 (FIG. 12) corresponding to the program specifications 432 from the memory 12. .
Next, the vulnerability candidate extraction unit 26 refers to the entry of the threat-vulnerability type correspondence DB 32 for each threat described in the related threat list 48, and selects a vulnerability type candidate related to the threat as a vulnerability type list. From 322. Then, the vulnerability candidate extraction unit 26 writes the acquired vulnerability type candidates in the memory 12 in association with individual threats as vulnerability type candidates 49 (FIG. 14). The vulnerability candidate extraction unit 26 performs this for all threats.
Then, the vulnerability candidate extraction unit 26 continues the same process for the next entry in the correspondence relationship 43 (FIG. 5) between the constituent elements and the program specifications, and extracts the vulnerability type candidates 49 for all the entries. .

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

脅威−脆弱性種別対応DB32は、図13のように表の形式で表すことができる。
脅威−脆弱性種別対応DB32には、脅威321と、その脅威に対応する脆弱性種別一覧322の情報が含まれる。
脆弱性種別一覧322には、脅威に対応する脆弱性種別が列挙される。なお、脅威−脆弱性種別対応DB32に脅威のエントリが存在しない場合、もしくは、脅威のエントリは存在するが対応する脆弱性種別の記載がない場合は、その脅威にはプログラム仕様42で記述されるレベルで分析できる脆弱性種別が存在しない。例えば、図13の「故障」には脆弱性種別がないが、これは故障が機器の不具合であり、プログラムに起因する脆弱性ではないからである。このような、脆弱性がない場合には、脆弱性候補抽出部26は、後述するステップS7の脆弱性分析の結果出力において、脅威に対応する脆弱性の候補がないことを示す表示を含めてもよい。
The threat-vulnerability type correspondence DB 32 can be represented in the form of a table as shown in FIG.
The threat-vulnerability type correspondence DB 32 includes information on a threat 321 and a vulnerability type list 322 corresponding to the threat.
The vulnerability type list 322 lists vulnerability types corresponding to threats. When there is no threat entry in the threat-vulnerability type correspondence DB 32, or when there is a threat entry but no corresponding vulnerability type is described, the threat is described in the program specification 42. There are no vulnerability types that can be analyzed at the level. For example, “failure” in FIG. 13 does not have a vulnerability type because the failure is a malfunction of the device and not a vulnerability caused by the program. If there is no vulnerability, the vulnerability candidate extraction unit 26 includes a display indicating that there is no vulnerability candidate corresponding to the threat in the vulnerability analysis result output in step S7 described later. Also 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 in the related threat list 48, the component 442, the related information asset 443, the threat type 444, and the vulnerability type list 322 in the threat-vulnerability type correspondence DB 32. Information. Unlike FIG. 14, the vulnerability type candidate 49 may include 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 processing)
The vulnerability analysis unit 27 analyzes whether the vulnerability type indicated in the vulnerability type list 322 of the vulnerability type candidate 49 extracted in step S6 exists in the program specification 42. And the vulnerability analysis part 27 outputs an analysis result.
Vulnerability analysis is performed using static code analysis or formal verification techniques as described in the background art. The vulnerability analysis unit 27 inspects the vulnerability related to 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 corresponding related threat list 48 (FIG. 12), and a vulnerability type candidate 49 ( 14) is read from the memory 12.
Next, the vulnerability analysis unit 27 performs vulnerability analysis. That is, the vulnerability analysis unit 27 extracts a vulnerability type and a variable related thereto based on the associated threat list 48 and the vulnerability type candidate 49, and performs vulnerability analysis.
When the vulnerability analysis unit 27 detects a vulnerability, the vulnerability analysis unit 27 writes the vulnerability detection result 410 (FIG. 15) in the memory 12 (if another vulnerability detection result 410 already exists, a new vulnerability is detected. The sex detection result 410 is added to the existing vulnerability detection result 410).
The vulnerability analysis unit 27 performs this for all program specifications 42 to be inspected.
When all the vulnerability analyzes are 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 stored in a file.
Note that the vulnerability analysis unit 27 performs vulnerability analysis in consideration of variables associated with 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 a vulnerability type 411, a variable 412, a location 413, a threat 414, a component 415, and an information asset 416.
The vulnerability type 411 indicates the vulnerability type detected by the vulnerability analysis unit 27.
The 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.
The 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 the threat # 6 (threat by guess) of C is shown. In the example of FIG. 15, “Vulnerability 1” is shown as the vulnerability type 411. In addition, “key” is indicated as the variable 412, “first line of PROGRAM_C.C” is indicated as the location 413, and “leakage by speculation” is indicated as the threat 414. Further, “controller” is shown as the component 415, and “MAC key” is shown as the information asset 416.

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

また、本実施の形態では、脅威分析の情報資産の流れと、プログラム仕様の変数の入力/出力の分類の対応関係に基づき、脅威分析の結果とプログラム仕様との対応関係を明確にできる。このため、本実施の形態によれば、脆弱性分析の時点において分析対象を絞り込むことできる。   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 information asset flow of the threat analysis and the input / output classification of the variable of the program specification. For this reason, according to the present embodiment, it is possible to narrow down the analysis target at the time of vulnerability analysis.

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

更に、本実施の形態では、各脅威に結びつく攻撃に利用される脆弱性の対応関係を記憶している。このため、脆弱性分析の際に、脅威分析の結果から、対応関係を参照して、攻撃に利用される脆弱性を導出することができる。   Furthermore, in the present embodiment, the correspondence relationship of the vulnerabilities used for the attacks associated with each threat is stored. For this reason, at the time of vulnerability analysis, the vulnerability used for the attack can be derived by referring to the correspondence relationship from the result of the threat analysis.

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

***構成の説明***
図16を参照して、実施の形態1に係る脆弱性分析装置10の構成を説明する。
図16では、図1の構成と比較して、情報資産判別部28が追加されている。図16に示す他の要素は、図1に示したものと同じである。
*** Explanation of configuration ***
With reference to FIG. 16, the structure of the vulnerability analysis apparatus 10 which concerns on Embodiment 1 is demonstrated.
In FIG. 16, an information asset discrimination 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 analysis apparatus 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 receiving unit 21 receives 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, an input device connected via the communication interface 14 is operated by a user, and threat analysis input information 51, a program specification 42, a correspondence relationship 43 between a component and a program specification, and a threat analysis result 44 Are entered.
Then, the first receiving unit 21 receives the threat analysis input information 51, the program specification 42, the correspondence relationship 43 between the constituent elements and the program specification, and the threat analysis result 44 via the communication interface 14.
Further, the first receiving unit 21 writes the threat analysis input information 51, the program specification 42, the correspondence relationship 43 between the constituent elements and the program specification, and the threat analysis result 44 in the memory 12.

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

次に、ステップS3を実施する前に、情報資産判別部28が、関連情報資産フロー抽出処理を行う。
関連情報資産フロー抽出処理では、情報資産判別部28は、ステップS1で受け付けられた脅威分析入力情報51と、構成要素とプログラム仕様の対応関係43とに基づき、脆弱性分析の対象となるプログラム仕様42に関連する情報資産フローを、構成要素毎に抽出する。情報資産フローは、実施の形態1で示した図3の情報資産フロー41と同じ形式である。
つまり、情報資産判別部28は、脅威分析の対象となるシステムで用いられる情報資産の各々が、入力情報資産、出力情報資産、内部利用情報資産のいずれであるかを判別する。
Next, before performing step S3, the information asset discriminating unit 28 performs related information asset flow extraction processing.
In the related information asset flow extraction process, the information asset discriminating unit 28 uses the threat analysis input information 51 received in step S1 and the correspondence relationship 43 between the constituent elements and the program specifications to determine the program specifications subject to vulnerability analysis. 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 discriminating unit 28 discriminates whether each of the information assets used in the threat analysis target system 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 apparatus 10 can generate an information asset flow, it is not necessary to generate an information asset flow with an external apparatus.

実施の形態3.
実施の形態1及び2では、情報資産と変数との対応関係の候補を出力する場合に、候補の出力順序は考慮されていない。
本実施の形態では、脆弱性分析装置10は、情報資産と変数との対応関係の候補を出力する際に、各候補の確かさに従って出力順序を制御する。つまり、本実施の形態では、第2の受付部24が、複数の対応関係の候補を出力する場合に、複数の対応関係の候補の間に優先順位を設け、優先順位が高い対応関係の候補を優先して出力する。
本実施の形態では、主に実施の形態1との差異を説明する。
なお、以下で説明していない事項は、実施の形態1と同様である。
Embodiment 3 FIG.
In the first and second embodiments, the candidate output order is not taken into account when the candidate for the correspondence relationship between the information asset and the variable is output.
In the present embodiment, the vulnerability analysis apparatus 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 receiving unit 24 outputs a plurality of correspondence candidates, a priority is set between the plurality of correspondence candidates, and a correspondence candidate with a high priority is provided. Is given priority for output.
In the present embodiment, differences from the first embodiment will be mainly described.
Note that matters not described 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 in FIG. 2, when the candidate generation unit 23 analyzes the correspondence between the variables in the program specification 42 and the information assets, the candidate generation unit 23 estimates the certainty as a candidate. For example, the candidate generation unit 23 estimates the certainty of the candidate for the correspondence relationship between the variable and the information asset based on a combination of keywords set in advance.
For example, the candidate generation unit 23 estimates that the information asset “command”, the variable command, and the variable cmd are close to each other in terms of notation, so that the certainty as a candidate is high. Moreover, the candidate production | generation part 23 determines with the certainty that the candidate with many combinations of a corresponding variable is high. The candidate generation unit 23 designates the output order (priority order) of the 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 designated by the candidate generation unit 23.

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

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

以上のように、本実施の形態では、アタックツリーに含まれる脆弱性の種別の情報を使うことで、柔軟な分析を行うことができる(脅威−脆弱性種別対応DB32を使った場合には、脅威と脆弱性の種別の対応関係は固定的である)。本実施の形態によれば、例えば、システムの構成や攻撃の仕方によって利用される脆弱性の種別が変化する場合に、柔軟な分析を行うことができる。   As described above, in the present embodiment, it is possible to perform a flexible analysis by using the information of the vulnerability type included in the attack tree (when the threat-vulnerability type correspondence DB 32 is used, The correspondence between threats and vulnerability types is fixed). According to the present embodiment, for example, when the type of vulnerability used varies depending on the system configuration and the manner of attack, a 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. FIG.
In the first to fourth embodiments, the program specification 42 is used as it is in the vulnerability analysis.
In the present embodiment, the vulnerability analysis unit 27 performs vulnerability analysis with reference to the association between information assets and variables and / or the type of threat. That is, in the present embodiment, the vulnerability analysis unit 27 adds a correspondence between a plurality of information assets and a plurality of variables obtained from the information asset-variable correspondence 47 (FIG. 10) to the program specification 42, Vulnerability analysis can be performed. Further, the vulnerability analysis unit 27 can perform 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 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 part in which processing related to the vulnerability type candidate extracted by the vulnerability candidate extraction unit 26 is described as a program fragment from the program specification 42. be able to. And the vulnerability analysis part 27 can perform a vulnerability analysis using the extracted program fragment. In this case, the vulnerability analysis unit 27 performs, for example, a process of referring to or changing a variable related to the threat from the program specification 42, a process using another variable that affects the variable related to the threat, and a branch process. A process that controls the execution of the above-described process such as a determination process can be extracted as a program fragment.
Note that matters not described in the present embodiment are the same as those in the first embodiment.

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

以上、本発明の実施の形態について説明したが、これらの実施の形態のうち、2つ以上を組み合わせて実施しても構わない。
あるいは、これらの実施の形態のうち、1つを部分的に実施しても構わない。
あるいは、これらの実施の形態のうち、2つ以上を部分的に組み合わせて実施しても構わない。
なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
As mentioned above, although embodiment of this invention was described, you may implement in combination of 2 or more among these embodiment.
Alternatively, one of these embodiments may be partially implemented.
Alternatively, two or more of these embodiments may be partially combined.
In addition, this invention is not limited to these embodiment, A various change is possible as needed.

***ハードウェア構成の説明***
最後に、脆弱性分析装置10のハードウェア構成の補足説明を行う。
*** Explanation of hardware configuration ***
Finally, a supplementary explanation of the hardware configuration of the vulnerability analysis apparatus 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 storage 13 stores an OS (Operating System).
At least a part of the OS is loaded into the memory 12 and executed by the processor 11.
While executing at least part of the OS, the processor 11 executes 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, a vulnerability candidate extraction unit 26, A program for realizing the functions of the vulnerability analysis unit 27 and the information asset discrimination unit 28 is executed.
When the processor 11 executes the OS, task management, memory management, file management, communication control, and the like are performed.
In addition, the first reception unit 21, the variable determination 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 determination unit 28 At least one of information, data, signal value and variable value indicating the result of the above processing is stored in at least one of the memory 12, the storage 13, the register in the processor 11, and the cache memory.
In addition, the first reception unit 21, the variable determination 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 determination unit 28 The program for realizing the above function 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. And the 1st reception part 21, the variable discrimination | determination part 22, the candidate production | generation part 23, the 2nd reception part 24, the related threat extraction part 25, the vulnerability candidate extraction part 26, the vulnerability analysis part 27, and the information asset discrimination | determination part 28 A portable recording medium storing a program for realizing the above function may be distributed commercially.

また、第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 determination 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 determination unit 28 May be read as “circuit” or “process” or “procedure” or “processing”.
The vulnerability analysis apparatus 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 circuitry”.
That is, the processor and the processing circuit are specific examples of “processing circuitry”.

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 脆弱性検出結果。   DESCRIPTION OF SYMBOLS 10 Vulnerability analysis apparatus, 11 Processor, 12 Memory, 13 Storage, 14 Communication interface, 21 1st reception part, 22 Variable determination part, 23 Candidate production | generation part, 24 2nd reception part, 25 Related threat extraction part, 26 Vulnerability candidate extraction unit, 27 Vulnerability analysis unit, 28 Information asset discrimination unit, 31 Process type DB, 32 Threat-vulnerability type correspondence DB, 41 Information asset flow, 42 Program specification, 43 Correspondence between component and program specification , 44 Threat analysis result, 45 Program variable processing relationship, 46 Information asset-variable correspondence candidate, 47 Information asset-variable correspondence relationship, 48 Related threat list, 49 Vulnerability type candidate, 410 Vulnerability detection result.

Claims (14)

機器で実行されるプログラムに含まれる複数の変数の各々が、入力変数、出力変数、内部利用変数のいずれであるかを判別する変数判別部と、
前記機器の外部から前記機器に入力される情報資産である入力情報資産と前記入力変数、前記機器から前記機器の外部に出力される情報資産である出力情報資産と前記出力変数、前記機器の内部で利用される情報資産である内部利用情報資産と前記内部利用変数とを対応付けて、複数の情報資産の各々と前記複数の変数の各々との対応関係の候補を1つ以上生成する候補生成部とを有する情報処理装置。
A variable discriminating unit that discriminates whether each of a plurality of variables included in a program executed on the device is an input variable, an output variable, or an internal use variable ;
The input information asset and the input variable that are information assets input to the device from the outside of the device, the output information asset and the output variable that is the information asset output from the device to the outside of the device, the inside of the device in the association and internal use variables and internal use information assets is information assets that are available, the candidate that generates a candidate of correspondence between each of the plurality of variables with each of multiple information assets of one or more An information processing apparatus having a generation unit.
前記情報処理装置は、更に、
前記候補生成部により複数の対応関係の候補が生成された場合に、前記複数の対応関係の候補を出力する出力部を有する請求項1に記載の情報処理装置。
The information processing apparatus further includes:
The information processing apparatus according to claim 1, further comprising: an output unit configured to output the plurality of correspondence relationship candidates when the candidate generation unit generates a plurality of correspondence relationship candidates.
前記候補生成部は、
前記複数の情報資産の各々が、前記入力情報資産、前記出力情報資産、前記内部利用情報資産のいずれであるかが示される情報資産情報を取得し、前記情報資産情報に示される入力情報資産と前記入力変数と、前記情報資産情報に示される前記出力情報資産と前記出力変数、前記情報資産情報に示される前記内部利用情報資産と前記内部利用変数とを対応付ける請求項に記載の情報処理装置。
The candidate generation unit
Information asset information indicating whether each of the plurality of information assets is the input information asset, the output information asset, or the internal use information asset is acquired, and the input information asset indicated in the information asset information The information processing apparatus according to claim 1 , wherein the input variable is associated with the output information asset and the output variable indicated in the information asset information, and the internal use information asset and the internal use variable indicated in the information asset information. .
前記情報処理装置は、更に、
前記複数の情報資産の各々が、前記入力情報資産、前記出力情報資産、前記内部利用情報資産のいずれであるかを判別する情報資産判別部を有する請求項に記載の情報処理装置。
The information processing apparatus further includes:
The information processing apparatus according to claim 1 , further comprising: an information asset determination unit configured to determine whether each of the plurality of information assets is the input information asset, the output information asset, or the internal use information asset.
前記変数判別部は、
前記複数の変数の各々が用いられている処理が、入力処理、出力処理、内部利用処理のいずれであるかを判別し、判別した処理の種別に基づいて、前記複数の変数の各々の種別を判別する請求項に記載の情報処理装置。
The variable discrimination unit
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 the type of each of the plurality of variables is determined based on the determined type of the process. The information processing apparatus according to claim 1 for determining.
前記変数判別部は、
前記複数の変数における変数値の伝搬関係を解析し、
前記出力部は、
前記候補生成部により生成された1つ以上の対応関係の候補と、前記変数判別部の解析により得られた変数値の伝搬関係とを出力する請求項2に記載の情報処理装置。
The variable discrimination unit
Analyzing the propagation relationship of variable values in the plurality of variables,
The output unit is
The information processing apparatus according to claim 2, wherein 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 determination unit are output.
前記候補生成部は、
複数の対応関係の候補を生成した場合に、前記複数の対応関係の候補の間に優先順位を設け、
前記出力部は、
優先順位が高い対応関係の候補を優先して出力する請求項2に記載の情報処理装置。
The candidate generation unit
When a plurality of correspondence candidates are generated, a priority is set between the plurality of correspondence candidates,
The output unit is
The information processing apparatus according to claim 2, wherein priority is given to correspondence candidates having a high priority.
前記候補生成部は、
前記複数の対応関係の候補の各々について、対応関係の候補としての確かさを推測し、推測結果に基づき、前記複数の対応関係の候補の間に優先順位を設ける請求項に記載の情報処理装置。
The candidate generation unit
The information processing according to claim 7 , wherein each of the plurality of correspondence candidates is estimated with certainty as a correspondence candidate, and a priority is set between the plurality of correspondence candidates based on the estimation result. apparatus.
前記情報処理装置は、更に、
前記1つ以上の対応関係の候補の中から選択された対応関係に基づき、前記機器に存在する脆弱性の種別の候補を抽出する脆弱性候補抽出部と、
前記脆弱性候補抽出部により抽出された脆弱性の種別の候補に基づき、前記機器の脆弱性分析を行う脆弱性分析部とを有する請求項1に記載の情報処理装置。
The information processing apparatus further includes:
A vulnerability candidate extraction unit that extracts a candidate for a type of vulnerability existing in the device based on the correspondence selected from the one or more correspondence candidates;
The information processing apparatus according to claim 1, further comprising: a vulnerability analysis unit that performs a vulnerability analysis of the device based on a vulnerability type candidate extracted by the vulnerability candidate extraction unit.
前記脆弱性候補抽出部は、
アタックツリーを参照して、前記機器に存在する脆弱性の種別の候補を抽出する請求項に記載の情報処理装置。
The vulnerability candidate extraction unit
The information processing apparatus according to claim 9 , wherein a vulnerability type candidate existing in the device is extracted with reference to an attack tree.
前記脆弱性分析部は、
前記複数の情報資産と前記複数の変数との対応付け、脅威の種別の少なくともいずれかを参照して、前記機器の脆弱性分析を行う請求項に記載の情報処理装置。
The vulnerability analysis unit
The information processing apparatus according to claim 9 , wherein vulnerability analysis of the device is performed with reference to at least one of correspondence between the plurality of information assets and the plurality of variables and a threat type.
前記脆弱性分析部は、
前記脆弱性候補抽出部により抽出された脆弱性の種別の候補に関連する処理が記述される部分を前記プログラムからプログラム断片として抽出し、抽出した前記プログラム断片を用いて前記機器の脆弱性分析を行う請求項に記載の情報処理装置。
The vulnerability analysis unit
A part describing a process related to a vulnerability type candidate extracted by the vulnerability candidate extraction unit is extracted as a program fragment from the program, and the vulnerability analysis of the device is performed using the extracted program fragment. The information processing apparatus according to claim 9 to be performed.
コンピュータが、機器で実行されるプログラムに含まれる複数の変数の各々が、入力変数、出力変数、内部利用変数のいずれであるかを判別し、
前記コンピュータが、前記機器の外部から前記機器に入力される情報資産である入力情報資産と前記入力変数、前記機器から前記機器の外部に出力される情報資産である出力情報資産と前記出力変数、前記機器の内部で利用される情報資産である内部利用情報資産と前記内部利用変数とを対応付けて、複数の情報資産の各々と前記複数の変数の各々との対応関係の候補を1つ以上生成する情報処理方法。
The computer determines whether each of a plurality of variables included in a program executed on the device is an input variable, an output variable, or an internal use variable ,
The computer is an input information asset that is an information asset input to the device from outside the device and the input variable, an output information asset that is an information asset output from the device to the outside of the device, and the output variable, wherein in association with the internal use variables and internal use information assets is information assets that are utilized inside of the apparatus, one candidate corresponding relationship between each of the plurality of variables with each of multiple information assets Information processing method to be generated as described above.
機器で実行されるプログラムに含まれる複数の変数の各々が、入力変数、出力変数、内部利用変数のいずれであるかを判別する変数判別処理と、
前記機器の外部から前記機器に入力される情報資産である入力情報資産と前記入力変数、前記機器から前記機器の外部に出力される情報資産である出力情報資産と前記出力変数、前記機器の内部で利用される情報資産である内部利用情報資産と前記内部利用変数とを対応付けて、複数の情報資産の各々と前記複数の変数の各々との対応関係の候補を1つ以上生成する候補生成処理とをコンピュータに実行させる情報処理プログラム。
Variable determination processing for determining whether each of a plurality of variables included in a program executed on the device is an input variable, an output variable, or an internal use variable ;
The input information asset and the input variable that are information assets input to the device from the outside of the device, the output information asset and the output variable that is the information asset output from the device to the outside of the device, the inside of the device in the association and internal use variables and internal use information assets is information assets that are available, the candidate that generates a candidate of correspondence between each of the plurality of variables with each of multiple information assets of one or more An information processing program for causing a computer to execute generation processing.
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 true JP6599053B1 (en) 2019-10-30
JPWO2020136793A1 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)

Citations (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
JP2011519435A (en) * 2007-10-10 2011-07-07 テレフオンアクチーボラゲット エル エム エリクソン(パブル) Apparatus for reconfiguring a technical system based on security analysis, and 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

Patent Citations (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
JP2011519435A (en) * 2007-10-10 2011-07-07 テレフオンアクチーボラゲット エル エム エリクソン(パブル) Apparatus for reconfiguring a technical system based on security analysis, and 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

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
樽井翔ほか: "脆弱性検出のための値範囲解析", 電子情報通信学会技術研究報告, vol. 第107巻, 第175号, JPN6019005351, 26 July 2007 (2007-07-26), JP, pages 95 - 100, ISSN: 0004075262 *

Also Published As

Publication number Publication date
JPWO2020136793A1 (en) 2021-02-15
WO2020136793A1 (en) 2020-07-02

Similar Documents

Publication Publication Date Title
US8776239B2 (en) In-development vulnerability response management
US8701186B2 (en) Formal analysis of the quality and conformance of information flow downgraders
WO2022180702A1 (en) Analysis function addition device, analysis function addition program, and analysis function addition method
JP7287480B2 (en) Analysis function imparting device, analysis function imparting method and analysis function imparting program
US20120023486A1 (en) Verification of Information-Flow Downgraders
US20190361788A1 (en) Interactive analysis of a security specification
US10310956B2 (en) Techniques for web service black box testing
US8650546B2 (en) Static analysis based on observed string values during execution of a computer-based software application
US20230141948A1 (en) Analysis and Testing of Embedded Code
JP6632777B2 (en) Security design apparatus, security design method, and security design program
JP6599053B1 (en) Information processing apparatus, information processing method, and information processing program
WO2023067665A1 (en) Analysis function addition method, analysis function addition device, and analysis function addition program
WO2023067668A1 (en) Analysis function addition method, analysis function addition device, and analysis function addition program
US20150310332A1 (en) Predicting outcome based on input
JP6608569B1 (en) Security design apparatus, security design method, and security design program
WO2018163274A1 (en) Risk analysis device, risk analysis method and risk analysis program
JP6584737B1 (en) Threat identification device, threat identification method, and threat identification program
JP7052870B2 (en) Hypothesis reasoning device, hypothesis reasoning method, and 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
US20240202345A1 (en) Attack scenario generation apparatus, attack scenario generation method, and computer readable medium
JP2018121245A (en) Communication apparatus, communication specification difference extraction method, and communication specification difference extraction program
US20230229460A1 (en) Method and apparatus for identifying dynamically invoked computer code
WO2020008631A1 (en) Observation event determination device, observation event determination method, and computer-readable recording medium
JPWO2023032203A5 (en)

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