JP6608569B1 - Security design apparatus, security design method, and security design program - Google Patents

Security design apparatus, security design method, and security design program Download PDF

Info

Publication number
JP6608569B1
JP6608569B1 JP2019541481A JP2019541481A JP6608569B1 JP 6608569 B1 JP6608569 B1 JP 6608569B1 JP 2019541481 A JP2019541481 A JP 2019541481A JP 2019541481 A JP2019541481 A JP 2019541481A JP 6608569 B1 JP6608569 B1 JP 6608569B1
Authority
JP
Japan
Prior art keywords
vulnerability
model
list
threat
template
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019541481A
Other languages
Japanese (ja)
Other versions
JPWO2019142335A1 (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 JP6608569B1 publication Critical patent/JP6608569B1/en
Publication of JPWO2019142335A1 publication Critical patent/JPWO2019142335A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

セキュリティ設計装置(100)は、ソフトウェアの処理フローのレベルで脆弱性箇所を自動的に判定する。セキュリティ設計装置(100)が備える脆弱性分析部(105)は、ソフトウェアの処理に対する攻撃による脅威と、脅威に対して脆弱性を有する処理の記述である脆弱性記述との一覧を脅威一覧(202)として取得する。そして、脆弱性分析部(105)は、ソフトウェアの処理の処理フローから、脅威一覧(202)に含まれる脆弱性記述に対応する脆弱性箇所を判定する。そして、脆弱性分析部(105)は、脆弱性箇所の一覧を脆弱性一覧(211)として生成する。The security design device (100) automatically determines the vulnerable part at the level of the software processing flow. The vulnerability analysis unit (105) included in the security design device (100) displays a list of threats caused by attacks on software processes and vulnerability descriptions that are descriptions of processes having vulnerability to the threats. ) Get as. Then, the vulnerability analysis unit (105) determines a vulnerability location corresponding to the vulnerability description included in the threat list (202) from the processing flow of the software processing. And a vulnerability analysis part (105) produces | generates the list of vulnerability locations as a vulnerability list (211).

Description

本発明は、セキュリティ設計装置、セキュリティ設計方法およびセキュリティ設計プログラムに関する。   The present invention relates to a security design device, a security design method, and a security design program.

制御システムのオープン化およびネットワーク化に伴い、制御システムを構成する制御機器へのサイバー攻撃が増加している。よって、セキュリティ対策の必要性が高まっている。セキュリティ対策を体系的に実施するにはセキュリティの専門知識が必要である。しかし、増加するサイバー攻撃に対して、専門知識を持つセキュリティ専門家の不足が課題になっている。そこで、セキュリティの設計および実装プロセスを、体系化し自動化することが必要になる。   With the opening and networking of control systems, cyber attacks on control devices that make up control systems are increasing. Therefore, the need for security measures is increasing. Security expertise is required to systematically implement security measures. However, the shortage of security experts with specialized knowledge is a challenge for the increasing cyber attacks. It is therefore necessary to systematize and automate the security design and implementation process.

セキュリティの設計および実装プロセスの流れを説明する。まず、対象機器における潜在的な脅威を網羅的に洗い出す。そして、各脅威の対象となる情報資産の価値および脅威の発生確率といった情報に基づき、各脅威のリスクを評価する。次に、リスクの評価結果に基づき対策すべき脅威を決定する。具体的には、リスクが高いと評価された脅威を優先して対策すべき脅威として決定する。その後、脅威に対するセキュリティ対策を立案し、セキュリティ対策を対象機器の設計に反映させるとともに、実装する。   Explain the security design and implementation process flow. First, comprehensively identify potential threats in the target device. Then, the risk of each threat is evaluated based on information such as the value of the information asset that is the target of each threat and the probability of occurrence of the threat. Next, determine the threats to be addressed based on the risk assessment results. Specifically, a threat that is evaluated as having a high risk is determined as a threat to be preferentially taken. After that, security measures against threats are planned, and the security measures are reflected in the design of the target device and implemented.

このようなセキュリティの設計および実装プロセスを体系化し自動化する方法として、モデルベース開発と呼ばれる開発手法を利用し、機器のソフトウェア開発とそのセキュリティ対策を同一の設計および開発プロセスに統合する方法がある。
特許文献1の技術では、まず、開発対象の設計書から生成された制御モデルに対して、セキュリティの脅威を保持する脅威データベースの中から該当する脅威を自動的に抽出する。そして、脅威に対する対策を保持する対策データベースから該当する対策が自動的に抽出される。そして、その対策が制御モデルに自動的に反映される。
また、特許文献2の技術では、まず、ユーザにより入力された対象システムのシステム構成、コンポーネント連携、および制約条件といった情報に基づき、脅威および対策データベースを用いて、対象システムに対するセキュリティ脅威を自動的に抽出する。そして、その脅威への対策を自動的に抽出し、出力する。
As a method of systematizing and automating such security design and implementation processes, there is a method of integrating device software development and its security measures into the same design and development process using a development technique called model-based development.
In the technique of Patent Document 1, first, a corresponding threat is automatically extracted from a threat database holding security threats for a control model generated from a design document to be developed. Then, the corresponding countermeasure is automatically extracted from the countermeasure database holding the countermeasure against the threat. The countermeasure is automatically reflected in the control model.
In the technique of Patent Literature 2, first, based on information such as the system configuration, component cooperation, and constraint conditions of the target system input by the user, the security threat to the target system is automatically detected using the threat and countermeasure database. Extract. Then, countermeasures against the threat are automatically extracted and output.

特開2017−068825号公報JP 2017-068825 A 特開2017−107405号公報JP 2017-107405 A

従来技術では、対象システムあるいは対象機器に対する潜在的な脅威を抽出している。しかし、抽出した潜在的な脅威を実際に発生させてしまう対象システムあるいは対象機器の脆弱性を特定することはできない。したがって、脅威が存在する機器あるいは機能ブロックという粒度でしか対策箇所を決定することができない。よって、対策を反映したソフトウェアを自動的に設計することができない。よって、対策を反映したソフトウェアを生成するためには、セキュリティ専門家がソフトウェアの設計書あるいはソースコードを分析し、抽出した脅威に対応する脆弱性の箇所を特定する必要があるという課題があった。   In the prior art, a potential threat to the target system or target device is extracted. However, the vulnerability of the target system or target device that actually generates the extracted potential threat cannot be specified. Therefore, the countermeasure location can be determined only with the granularity of the device or functional block in which the threat exists. Therefore, software that reflects the countermeasure cannot be automatically designed. Therefore, in order to generate software that reflects the countermeasures, there was a problem that security experts had to analyze the software design document or source code and identify the location of the vulnerability corresponding to the extracted threat. .

本発明は、ソフトウェアの処理フローのレベルで脆弱性の箇所を自動的に特定することを目的とする。   It is an object of the present invention to automatically identify the location of a vulnerability at the level of software processing flow.

本発明に係るセキュリティ設計装置は、
ソフトウェアの処理に対する攻撃による脅威と、前記脅威に対して脆弱性を有する処理の記述である脆弱性記述との一覧を脅威一覧として取得し、前記ソフトウェアの処理の処理フローから、前記脅威一覧に含まれる脆弱性記述に対応する脆弱性箇所を判定し、前記脆弱性箇所の一覧を脆弱性一覧として生成する脆弱性分析部を備えた。
The security design device according to the present invention is:
A list of threats due to attacks on software processing and vulnerability descriptions that are descriptions of processes having vulnerability to the threat is acquired as a threat list, and included in the threat list from the processing flow of the software processing A vulnerability analysis unit that determines a vulnerability location corresponding to the vulnerability description to be generated and generates a list of the vulnerability locations as a vulnerability list.

本発明に係るセキュリティ設計装置では、脆弱性分析部が、ソフトウェアの処理に対する攻撃による脅威と脅威に対して脆弱性を有する処理の記述である脆弱性記述との一覧を脅威一覧として取得する。また、脆弱性分析部が、ソフトウェアの処理の処理フローから、脅威一覧に含まれる脆弱性記述に対応する脆弱性箇所を判定する。そして、脆弱性分析部が、脆弱性箇所の一覧を脆弱性一覧として生成する。よって、本発明に係るセキュリティ設計装置によれば、処理フローのレベルで脆弱性箇所を自動的に判定することができる。   In the security design device according to the present invention, the vulnerability analysis unit acquires a list of threats caused by attacks on software processes and vulnerability descriptions that are descriptions of processes having vulnerability to threats as a threat list. Further, the vulnerability analysis unit determines a vulnerability location corresponding to the vulnerability description included in the threat list from the processing flow of the software processing. Then, the vulnerability analysis unit generates a list of vulnerability locations as a vulnerability list. Therefore, according to the security design device according to the present invention, it is possible to automatically determine the vulnerable part at the level of the processing flow.

実施の形態1に係るセキュリティ設計装置の構成図。1 is a configuration diagram of a security design device according to Embodiment 1. FIG. 実施の形態1に係る脆弱性分析部の内部構成図。FIG. 3 is an internal configuration diagram of a vulnerability analysis unit according to the first embodiment. 実施の形態1に係る制御システムの構成図。1 is a configuration diagram of a control system according to Embodiment 1. FIG. 図3の通信ソフトウェアをステートマシンとして表した図。The figure which represented the communication software of FIG. 3 as a state machine. 実施の形態1に係る脅威一覧の例を示す図。FIG. 4 is a diagram illustrating an example of a threat list according to the first embodiment. 実施の形態1に係る表701を示す図。FIG. 6 shows a table 701 according to the first embodiment. 実施の形態1に係るセキュリティ設計処理のフローチャート。5 is a flowchart of security design processing according to the first embodiment. 実施の形態1に係る脆弱性テンプレート生成処理の例を示す図。FIG. 6 is a diagram illustrating an example of vulnerability template generation processing according to the first embodiment. 図4のステートマシンを変換する例を示す図。The figure which shows the example which converts the state machine of FIG. 実施の形態1に係る脆弱性テンプレート生成処理の別の例を示す図。FIG. 10 is a diagram showing another example of vulnerability template generation processing according to the first embodiment. 実施の形態1の変形例に係るセキュリティ設計装置の構成図。The block diagram of the security design apparatus which concerns on the modification of Embodiment 1. FIG. 実施の形態2に係る脆弱性分析部の内部構成図。The internal block diagram of the vulnerability analysis part which concerns on Embodiment 2. FIG. 実施の形態2に係るセキュリティ設計処理のフローチャート。10 is a flowchart of security design processing according to the second embodiment. 実施の形態3に係るセキュリティ設計装置の構成図。FIG. 9 is a configuration diagram of a security design device according to a third embodiment. 実施の形態3に係る脅威データベースの一例を示す図。FIG. 10 shows an example of a threat database according to the third embodiment. 実施の形態3に係る対策データベースの一例を示す図。FIG. 10 shows an example of a countermeasure database according to the third embodiment. 実施の形態4に係るセキュリティ設計装置の構成図。FIG. 6 is a configuration diagram of a security design device according to a fourth embodiment.

以下、本発明の実施の形態について、図を用いて説明する。なお、各図中、同一または相当する部分には、同一符号を付している。実施の形態の説明において、同一または相当する部分については、説明を適宜省略または簡略化する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings. In addition, the same code | symbol is attached | subjected to the part which is the same or it corresponds in each figure. In the description of the embodiments, the description of the same or corresponding parts will be omitted or simplified as appropriate.

実施の形態1.
***構成の説明***
図1を用いて、本実施の形態に係るセキュリティ設計装置100の構成を説明する。
セキュリティ設計装置100は、コンピュータである。セキュリティ設計装置100は、プロセッサ910を備えるとともに、記憶装置920、入力インタフェース930、および出力インタフェース940といった他のハードウェアを備える。記憶装置920は、メモリと補助記憶装置を備える。プロセッサ910は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
Embodiment 1 FIG.
*** Explanation of configuration ***
The configuration of the security design device 100 according to the present embodiment will be described with reference to FIG.
The security design device 100 is a computer. The security design device 100 includes a processor 910 and other hardware such as a storage device 920, an input interface 930, and an output interface 940. The storage device 920 includes a memory and an auxiliary storage device. The processor 910 is connected to other hardware via a signal line, and controls these other hardware.

セキュリティ設計装置100は、機能要素として、モデル取得部101と、脅威一覧取得部103と、脆弱性分析部105と、出力部107とを備える。
脆弱性分析部105の機能は、ソフトウェアにより実現される。
モデル取得部101および脅威一覧取得部103の機能は、入力インタフェース930に備えられる。
出力部107の機能は、出力インタフェース940に備えられる。
The security design device 100 includes a model acquisition unit 101, a threat list acquisition unit 103, a vulnerability analysis unit 105, and an output unit 107 as functional elements.
The function of the vulnerability analysis unit 105 is realized by software.
The functions of the model acquisition unit 101 and the threat list acquisition unit 103 are provided in the input interface 930.
The function of the output unit 107 is provided in the output interface 940.

プロセッサ910は、セキュリティ設計プログラムを実行する装置である。セキュリティ設計プログラムは、脆弱性分析部105の機能を実現するプログラムである。
プロセッサ910は、演算処理を行うIC(Integrated Circuit)である。プロセッサ910の具体例は、CPU、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
The processor 910 is a device that executes a security design program. The security design program is a program that realizes the function of the vulnerability analysis unit 105.
The processor 910 is an IC (Integrated Circuit) that performs arithmetic processing. Specific examples of the processor 910 are a CPU, a DSP (Digital Signal Processor), and a GPU (Graphics Processing Unit).

メモリは、データを一時的に記憶する記憶装置である。メモリの具体例は、SRAM(Static Random Access Memory)、あるいはDRAM(Dynamic Random Access Memory)である。メモリには、モデル201、脅威一覧202、あるいは脆弱性一覧211といったデータが記憶される。
補助記憶装置は、データを保管する記憶装置である。補助記憶装置の具体例は、HDDである。また、補助記憶装置は、SD(登録商標)メモリカード、CF、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVDといった可搬記憶媒体であってもよい。なお、HDDは、Hard Disk Driveの略語である。SD(登録商標)は、Secure Digitalの略語である。CFは、CompactFlash(登録商標)の略語である。DVDは、Digital Versatile Diskの略語である。
The memory is a storage device that temporarily stores data. A specific example of the memory is SRAM (Static Random Access Memory) or DRAM (Dynamic Random Access Memory). Data such as the model 201, the threat list 202, or the vulnerability list 211 is stored in the memory.
The auxiliary storage device is a storage device that stores data. A specific example of the auxiliary storage device is an HDD. The auxiliary storage device may be a portable storage medium such as an SD (registered trademark) memory card, CF, NAND flash, flexible disk, optical disk, compact disk, Blu-ray (registered trademark) disk, or DVD. HDD is an abbreviation for Hard Disk Drive. SD (registered trademark) is an abbreviation for Secure Digital. CF is an abbreviation for CompactFlash (registered trademark). DVD is an abbreviation for Digital Versatile Disk.

入力インタフェース930は、マウス、キーボード、あるいはタッチパネルといった入力装置と接続されるポートである。入力インタフェース930は、具体的には、USB(Universal Serial Bus)端子である。なお、入力インタフェース930は、LAN(Local Area Network)と接続されるポートであってもよい。
出力インタフェース940は、ディスプレイといった出力機器のケーブルが接続されるポートである。出力インタフェース940は、表示インタフェースともいう。出力インタフェース940は、具体的には、USB端子またはHDMI(登録商標)(High Definition Multimedia Interface)端子である。ディスプレイは、具体的には、LCD(Liquid Crystal Display)である。
The input interface 930 is a port connected to an input device such as a mouse, a keyboard, or a touch panel. Specifically, the input interface 930 is a USB (Universal Serial Bus) terminal. The input interface 930 may be a port connected to a LAN (Local Area Network).
The output interface 940 is a port to which a cable of an output device such as a display is connected. The output interface 940 is also referred to as a display interface. Specifically, the output interface 940 is a USB terminal or a HDMI (registered trademark) (High Definition Multimedia Interface) terminal. The display is specifically an LCD (Liquid Crystal Display).

セキュリティ設計プログラムは、プロセッサ910に読み込まれ、プロセッサ910によって実行される。メモリには、セキュリティ設計プログラムだけでなく、OS(Operating System)も記憶されている。プロセッサ910は、OSを実行しながら、セキュリティ設計プログラムを実行する。セキュリティ設計プログラムおよびOSは、補助記憶装置に記憶されていてもよい。補助記憶装置に記憶されているセキュリティ設計プログラムおよびOSは、メモリにロードされ、プロセッサ910によって実行される。なお、セキュリティ設計プログラムの一部または全部がOSに組み込まれていてもよい。   The security design program is read into the processor 910 and executed by the processor 910. The memory stores not only a security design program but also an OS (Operating System). The processor 910 executes the security design program while executing the OS. The security design program and the OS may be stored in the auxiliary storage device. The security design program and OS stored in the auxiliary storage device are loaded into the memory and executed by the processor 910. A part or all of the security design program may be incorporated into the OS.

セキュリティ設計装置100は、プロセッサ910を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、セキュリティ設計プログラムの実行を分担する。それぞれのプロセッサは、プロセッサ910と同じように、セキュリティ設計プログラムを実行する装置である。   The security design device 100 may include a plurality of processors that replace the processor 910. The plurality of processors share the execution of the security design program. Each processor, like the processor 910, is a device that executes a security design program.

セキュリティ設計プログラムにより利用、処理または出力されるデータ、情報、信号値および変数値は、メモリ、補助記憶装置、または、プロセッサ910内のレジスタあるいはキャッシュメモリに記憶される。   Data, information, signal values, and variable values used, processed, or output by the security design program are stored in a memory, an auxiliary storage device, a register in the processor 910, or a cache memory.

モデル取得部101は、セキュリティ設計装置100への入力であるモデル201を取得する。
脅威一覧取得部103は、セキュリティ設計装置100への入力である脅威一覧202を取得する。図1では入力されたデータをモデル201および脅威一覧202として示している。
脆弱性分析部105は、モデル201および脅威一覧202を入力とし、脆弱性一覧211を出力する。
出力部107は、脆弱性一覧211をセキュリティ設計装置100の外部に出力する。具体的には、出力部107は、脆弱性一覧211をディスプレイに表示する。
The model acquisition unit 101 acquires a model 201 that is an input to the security design device 100.
The threat list acquisition unit 103 acquires a threat list 202 that is an input to the security design device 100. In FIG. 1, the input data is shown as a model 201 and a threat list 202.
The vulnerability analysis unit 105 receives the model 201 and the threat list 202 as inputs, and outputs a vulnerability list 211.
The output unit 107 outputs the vulnerability list 211 to the outside of the security design device 100. Specifically, the output unit 107 displays the vulnerability list 211 on the display.

図2は、本実施の形態に係る脆弱性分析部105の内部構成を示している。
脆弱性分析部105は、モデル201と脅威一覧202を入力とする。脆弱性分析部105は、脅威一覧202の各脅威に対応する脆弱性の箇所をモデル201において特定さいた脆弱性一覧211を出力する。
FIG. 2 shows an internal configuration of the vulnerability analysis unit 105 according to the present embodiment.
The vulnerability analysis unit 105 receives the model 201 and the threat list 202 as inputs. The vulnerability analysis unit 105 outputs a vulnerability list 211 in which a vulnerability portion corresponding to each threat in the threat list 202 is identified in the model 201.

脆弱性分析部105は、検査モデル生成部203と、脆弱性テンプレート生成部205と、モデル検査部207と、脆弱性判定部208と、検査プロパティ生成部209とを備える。
脆弱性テンプレート生成部205は、入力された脅威一覧202の各脅威に対応する脆弱性を検証するためのモデルのテンプレートを脆弱性テンプレート206として生成する。
検査プロパティ生成部209は、入力された脅威一覧202の各脅威に対応する脆弱性を検証するためのプロパティを検査プロパティ210として生成する。
検査モデル生成部203は、入力されたモデル201の粒度を脆弱性テンプレート206に合わせて変換し、検査モデル204として出力する。
モデル検査部207は検査モデル204と検査プロパティ210を用いてモデル201に脆弱性箇所があるかを検証する。
脆弱性判定部208は、モデル検査部207が出力する検証結果に基づき、モデル201における脆弱性の有無とその箇所を特定し、脆弱性一覧211として出力する。
The vulnerability analysis unit 105 includes an inspection model generation unit 203, a vulnerability template generation unit 205, a model inspection unit 207, a vulnerability determination unit 208, and an inspection property generation unit 209.
The vulnerability template generation unit 205 generates a model template for verifying the vulnerability corresponding to each threat in the input threat list 202 as the vulnerability template 206.
The inspection property generation unit 209 generates a property for verifying the vulnerability corresponding to each threat in the input threat list 202 as the inspection property 210.
The inspection model generation unit 203 converts the granularity of the input model 201 according to the vulnerability template 206 and outputs it as the inspection model 204.
The model checking unit 207 uses the check model 204 and the check property 210 to verify whether the model 201 has a vulnerability portion.
The vulnerability determination unit 208 specifies the presence / absence of the vulnerability in the model 201 and its location based on the verification result output by the model checking unit 207, and outputs it as the vulnerability list 211.

セキュリティ設計プログラムは、脆弱性分析部105の各部である検査モデル生成部203と脆弱性テンプレート生成部205とモデル検査部207と脆弱性判定部208と検査プロパティ生成部209の機能を実現するプログラムである。
脆弱性分析部105の各部の「部」を「処理」、「手順」あるいは「工程」に読み替えてもよい。
セキュリティ設計プログラムは、上記の各部の「部」を「処理」、「手順」あるいは「工程」に読み替えた各処理、各手順あるいは各工程を、コンピュータに実行させる。また、セキュリティ設計方法は、セキュリティ設計装置100がセキュリティ設計プログラムを実行することにより行われる方法である。
セキュリティ設計プログラムは、コンピュータ読取可能な記録媒体に格納されて提供されてもよい。また、セキュリティ設計プログラムは、プログラムプロダクトとして提供されてもよい。
The security design program is a program that realizes the functions of the inspection model generation unit 203, the vulnerability template generation unit 205, the model inspection unit 207, the vulnerability determination unit 208, and the inspection property generation unit 209, which are each part of the vulnerability analysis unit 105. is there.
The “part” of each part of the vulnerability analysis unit 105 may be read as “processing”, “procedure”, or “process”.
The security design program causes the computer to execute each process, each procedure, or each process in which “part” of each part is replaced with “process”, “procedure”, or “process”. The security design method is a method performed by the security design apparatus 100 executing a security design program.
The security design program may be provided by being stored in a computer-readable recording medium. The security design program may be provided as a program product.

***動作の説明***
次に、本実施の形態に係るセキュリティ設計処理S100について説明する。
まず、図3を用いて、セキュリティ設計処理S100の説明に用いる制御システムについて説明する。
制御システムは、HMI401、機器コントローラ402、およびフィールド機器404からなる。HMIは、Human Machine Interfaceの略語である。HMI401と機器コントローラ402は、接続405で接続される。機器コントローラ402とフィールド機器404は、接続406で接続される。
HMI401は、運転員が制御システムの監視制御を行うための端末である。運転員による操作に従い、HMI401は、機器コントローラ402に、接続405を介して、コマンドを送信する。コマンドは、Finish、Start、あるいはStopいずれかである。また、HMI401は、レスポンスあるいはセンサ情報を受信する。
*** Explanation of operation ***
Next, the security design process S100 according to the present embodiment will be described.
First, a control system used for explaining the security design process S100 will be described with reference to FIG.
The control system includes an HMI 401, a device controller 402, and a field device 404. HMI is an abbreviation for Human Machine Interface. The HMI 401 and the device controller 402 are connected by a connection 405. The device controller 402 and the field device 404 are connected by a connection 406.
The HMI 401 is a terminal for the operator to perform monitoring control of the control system. In accordance with the operation by the operator, the HMI 401 transmits a command to the device controller 402 via the connection 405. The command is one of Finish, Start, or Stop. Further, the HMI 401 receives a response or sensor information.

機器コントローラ402は、HMI401から受信したコマンドに従い、フィールド機器404にONあるいはOFFいずれかのコマンドを送信する。機器コントローラ402の機能は通信ソフトウェア403と機器制御ソフトウェア407からなる。
通信ソフトウェア403は、HMI401から接続405を介して送信されたコマンドを受信する。そして、通信ソフトウェア403は、コマンドに対応するレスポンスあるいはセンサ情報をHMI401に送信する。通信ソフトウェア403が受信したコマンドに従って、機器制御ソフトウェア407は、接続406を介してフィールド機器404にONあるいはOFFいずれかのコマンドを送信する。また、機器制御ソフトウェア407は、フィールド機器404から送信されるセンサ情報を受信する。
以下の本実施の形態の説明の具体例として、通信ソフトウェア403をセキュリティの検査対象とする。
The device controller 402 transmits an ON or OFF command to the field device 404 according to the command received from the HMI 401. The function of the device controller 402 includes communication software 403 and device control software 407.
The communication software 403 receives a command transmitted from the HMI 401 via the connection 405. Then, the communication software 403 transmits a response or sensor information corresponding to the command to the HMI 401. According to the command received by the communication software 403, the device control software 407 transmits either an ON or OFF command to the field device 404 via the connection 406. Further, the device control software 407 receives sensor information transmitted from the field device 404.
As a specific example of the description of the present embodiment below, the communication software 403 is a security inspection target.

図4は、図3の通信ソフトウェア403をステートマシン500として表したものである。
501は開始状態を表す。503は終了状態を表す。502と511は状態を表す。505と508は条件分岐を表す。T0、T1、T2、T3、T4、T5、およびT6は各状態遷移を識別するラベルである。504のように、状態遷移に付与された角括弧ありの文字列は、その状態遷移が発生する条件を表す。506のように、状態遷移に付与された角括弧無しの文字列は、その状態遷移に伴い実行される処理を表す。509および510のように、状態遷移が発生する条件とその状態遷移に伴い実行される処理の両方を記す場合もある。
FIG. 4 shows the communication software 403 in FIG. 3 as a state machine 500.
Reference numeral 501 represents a start state. Reference numeral 503 denotes an end state. Reference numerals 502 and 511 denote states. Reference numerals 505 and 508 denote conditional branches. T0, T1, T2, T3, T4, T5, and T6 are labels that identify each state transition. Like 504, a character string with square brackets attached to a state transition represents a condition in which the state transition occurs. A character string without square brackets attached to a state transition like 506 represents a process executed in accordance with the state transition. Like 509 and 510, there are cases where both a condition for causing a state transition and a process executed in accordance with the state transition are described.

図4のステートマシン500により、以下のような通信ソフトウェア403の動作が表されている。プログラムの起動後、状態502においてコマンド待ちになる。コマンドを受信すると、条件504のようにコマンドがFinishであればプログラムを終了する。条件および処理509のようにコマンドがStopであれば、フィールド機器をOFFし、再びコマンド待ちになる。条件および処理510のようにコマンドがStartであれば、フィールド機器をONし、再びコマンド待ちになる。   The operation of the communication software 403 as described below is represented by the state machine 500 of FIG. After starting the program, the command waits in state 502. When the command is received, if the command is Finish as in condition 504, the program is terminated. If the command is Stop as in the condition and processing 509, the field device is turned off and the command is waited again. If the command is Start as in the condition and process 510, the field device is turned on and the command is waited again.

セキュリティの設計および実装プロセスの流れに従って、通信ソフトウェア403に対するセキュリティが設計される。まず、図3の制御システムにおける潜在的な脅威を網羅的に洗い出す。本実施の形態に係るセキュリティ設計装置100では、脅威を網羅的に洗い出した結果の脅威一覧202は入力データとして与えられる。
図4のステートマシン500において、フィールド機器のONあるいはOFFは制御システムの動作に影響する処理である。これらの処理を不正に実行することは、システムに対するセキュリティの脅威である。そこで、「HMIおよび機器コントローラ間の通信コマンドの改ざんによるフィールド機器の停止」という脅威が、制御システムにおける潜在的な脅威を網羅的に洗い出した結果の一例となる。
Security for the communication software 403 is designed according to the security design and implementation process flow. First, potential threats in the control system of FIG. 3 are comprehensively identified. In security design apparatus 100 according to the present embodiment, threat list 202 as a result of exhaustively identifying threats is given as input data.
In the state machine 500 of FIG. 4, ON or OFF of the field device is a process that affects the operation of the control system. Unauthorized execution of these processes is a security threat to the system. Therefore, the threat “stop of field device due to falsification of communication command between HMI and device controller” is an example of the result of exhaustively identifying potential threats in the control system.

図5は、本実施の形態に係る脅威一覧202の例に含まれる表601および表602を示す図である。
脅威一覧202は、ソフトウェアの処理に対する攻撃による脅威161と、脅威161に対して脆弱性を有する処理の記述である脆弱性記述162との一覧である。具体的には、機器である制御システムの処理における潜在的な脅威161を網羅的に洗い出し、脅威161に対する脆弱性を対応付けた情報である。脅威161に対する脆弱性として、脆弱性記述162が対応付けられている。脅威一覧202は、表601と表602から構成される。
脅威一覧202の表601には、1行ごとに付される番号と、脅威と、対応する脆弱性とが設定される。対応する脆弱性には、脅威一覧202に記された各脅威に対して、その脅威に対応する脆弱性の情報が設定される。脅威一覧202に含まれる脆弱性は、例えば、CWE(Common Weakness Enumeration)から取得される。CWEは対象に依存しない一般的な情報である。このため、各脅威に対応するCWEを容易に決定することができる。
FIG. 5 is a diagram showing a table 601 and a table 602 included in the example of the threat list 202 according to the present embodiment.
The threat list 202 is a list of threats 161 due to attacks on software processing and vulnerability descriptions 162 that are descriptions of processes having vulnerability to the threats 161. Specifically, it is information that comprehensively identifies potential threats 161 in the processing of the control system, which is a device, and associates vulnerabilities with the threats 161. As a vulnerability to the threat 161, a vulnerability description 162 is associated. The threat list 202 includes a table 601 and a table 602.
In the table 601 of the threat list 202, a number assigned to each line, a threat, and a corresponding vulnerability are set. In the corresponding vulnerability, vulnerability information corresponding to the threat is set for each threat described in the threat list 202. Vulnerabilities included in the threat list 202 are acquired from, for example, CWE (Common Weakness Enumeration). CWE is general information that does not depend on an object. For this reason, the CWE corresponding to each threat can be easily determined.

図5の表601は、通信ソフトウェア403に関わる潜在的な脅威を表している。また、各脅威が通信ソフトウェア403において実際に発生するのは、通信ソフトウェア403が各脅威に対応する脆弱性を持つ場合である。したがって、各脅威への対策を設計するためには、その脅威に対応する脆弱性を特定する必要がある。   A table 601 in FIG. 5 represents potential threats related to the communication software 403. Each threat actually occurs in the communication software 403 when the communication software 403 has a vulnerability corresponding to each threat. Therefore, in order to design countermeasures against each threat, it is necessary to identify vulnerabilities corresponding to the threat.

図5の表602は、表601の番号1の脅威に対応するCWEの記述を示している。この記述を脆弱性記述と呼ぶ。
脆弱性分析部105による脆弱性の特定の動作について、表601の番号1の脅威を例として説明する。
脆弱性分析部105は、表602のCWEの情報に基づき、番号1の脅威に対応する脆弱性を検査するための検査モデル204と検査プロパティ210を作成する。そして、脆弱性分析部105は、検査モデル204と検査プロパティ210を用いて番号1の脅威に対応する脆弱性の特定を行う。
そのため、まず、脆弱性テンプレート生成部205が抽象的なCWEの記述を具体化した脆弱性テンプレート206を生成する。また、検査プロパティ生成部209が脆弱性テンプレート206に対応する検査プロパティ210を生成する。次に、検査モデル生成部203がモデル201を脆弱性テンプレート206に対応付けて変換し、検査モデル204を生成する。
A table 602 in FIG. 5 shows a description of the CWE corresponding to the threat number 1 in the table 601. This description is called vulnerability description.
The specific operation of vulnerability by the vulnerability analysis unit 105 will be described by taking the threat of number 1 in Table 601 as an example.
The vulnerability analysis unit 105 creates an inspection model 204 and an inspection property 210 for inspecting the vulnerability corresponding to the threat of number 1 based on the CWE information in Table 602. Then, the vulnerability analysis unit 105 identifies the vulnerability corresponding to the threat number 1 using the inspection model 204 and the inspection property 210.
Therefore, first, the vulnerability template generation unit 205 generates a vulnerability template 206 that embodies the abstract CWE description. Further, the inspection property generation unit 209 generates an inspection property 210 corresponding to the vulnerability template 206. Next, the inspection model generation unit 203 converts the model 201 in association with the vulnerability template 206 to generate the inspection model 204.

図6は、本実施の形態に係る表701を示す図である。図6の表701は図5の表602におけるCWEの記述の具体化の一例である。図6の表701によってCWE−807の具体化の規則が与えられている。
番号1では「Reliance on A in B」という語句を、検査モデルの大枠を与えるものとして区分している。そして、「Reliance on A in B」は、Aのデータを使ってBの処理を行うことを意味すると定義している。
番号2では「Inputs」という語句をデータとして区分している。そして、「Inputs」は入力データを意味すると定義している。
番号3では「Untrusted」という語句を修飾子として区分している。そして、「Untrusted」によって修飾されるデータが未検証であることを意味すると定義している。
番号4では「Decision」という語句を処理として区分している。そして、番号1の規則によって対応付けられた入力データを用いた処理を意味すると定義している。
番号5では「Security」という語句を修飾子として区分している。そして、「Security」によって修飾子される処理の前に、その処理の対象となるデータの検証が必要である事を意味すると定義している。
FIG. 6 is a diagram showing a table 701 according to the present embodiment. A table 701 in FIG. 6 is an example of a specific description of the CWE in the table 602 in FIG. Table 701 in FIG. 6 gives the rules for the implementation of CWE-807.
Number 1 classifies the phrase “Reliance on A in B” as giving a frame of the inspection model. “Reliance on A in B” is defined to mean that B data is processed using A data.
In number 2, the phrase “Inputs” is classified as data. “Inputs” is defined to mean input data.
In number 3, the word “Untrusted” is classified as a qualifier. It defines that the data qualified by “Untrusted” means that it has not been verified.
Number 4 classifies the word “Decision” as a process. It is defined to mean processing using input data associated with the rule of number 1.
In number 5, the word “Security” is classified as a qualifier. It is defined that it means that verification of data to be processed is necessary before processing qualified by “Security”.

図7を用いて、本実施の形態に係るセキュリティ設計処理S100について説明する。
図7は本実施の形態に係るセキュリティ設計装置100の動作をフローチャートで表したものである。
セキュリティ設計装置100では、脆弱性分析部105は、ソフトウェアの処理の処理フローから、脅威一覧202に含まれる脆弱性記述に対応する脆弱性箇所を判定する。そして、脆弱性分析部105は、脆弱性箇所の一覧を脆弱性一覧211として生成する。
The security design process S100 according to the present embodiment will be described with reference to FIG.
FIG. 7 is a flowchart showing the operation of the security design device 100 according to the present embodiment.
In the security design device 100, the vulnerability analysis unit 105 determines a vulnerability location corresponding to the vulnerability description included in the threat list 202 from the processing flow of software processing. Then, the vulnerability analysis unit 105 generates a list of vulnerability locations as the vulnerability list 211.

ステップS101において処理が開始される。
ステップS102において、脆弱性分析部105は、モデル取得部101を介してモデル201を取得する。また、脆弱性分析部105は、脅威一覧取得部103を介して脅威一覧202を取得する。なお、通常、脅威一覧202には複数の脅威が含まれている。
ステップS103からステップS112の処理は、脅威一覧202に含まれる各脅威に関するループ処理である。なお、通常、各脅威に対して、それに対応するCWE形式の脆弱性は複数ある。
ステップS104からステップS111の処理は、脅威に対応する各CWEに関するループ処理である。
Processing starts in step S101.
In step S <b> 102, the vulnerability analysis unit 105 acquires the model 201 via the model acquisition unit 101. Further, the vulnerability analysis unit 105 acquires the threat list 202 via the threat list acquisition unit 103. Usually, the threat list 202 includes a plurality of threats.
The processing from step S103 to step S112 is a loop processing related to each threat included in the threat list 202. Normally, there are multiple vulnerabilities in the CWE format corresponding to each threat.
The process from step S104 to step S111 is a loop process for each CWE corresponding to the threat.

<脆弱性テンプレート生成処理>
ステップS105において、脆弱性テンプレート生成部205は、脅威一覧202に含まれる脆弱性記述162に基づいて、脆弱性テンプレート206を生成する。具体的には、脆弱性テンプレート生成部205は、処理対象のCWEから脆弱性テンプレート206を生成する。脆弱性テンプレート206とは、脅威一覧202に含まれる脆弱性記述162を用いて取得されるテンプレートである。
図8は、本実施の形態に係る脆弱性テンプレート生成処理の例を示す図である。
図8では、図6の表701で与えられるCWE−807の具体化の規則に基づき、CWE−807を検査するための検査モデル204の脆弱性テンプレート206を作成する手順を示している。
まず、表701の番号1の大枠により、801の大枠が与えられる。次に、大枠のAおよびBの各々に、対応する語句が代入され802に変換される。次に、表701の番号2および4により、「Inputs」の語句が入力データを表す「Input」に、「Decision」の語句が入力データを用いた処理を表す「InputUsed」に変換され、802が803に変換される。最後に、表701の番号3および5により、入力データを未検証のまま処理するような遷移に「脆弱性」のラベルが付与され、803が804に変換される。
以上の動作により、脆弱性テンプレート生成部205は、脆弱性テンプレート206を生成する。表701は、脆弱性テンプレート206の生成のための具体化規則として、例えば、脆弱性テンプレート生成部205により保持される。
<Vulnerability template generation processing>
In step S <b> 105, the vulnerability template generation unit 205 generates a vulnerability template 206 based on the vulnerability description 162 included in the threat list 202. Specifically, the vulnerability template generation unit 205 generates the vulnerability template 206 from the processing target CWE. The vulnerability template 206 is a template acquired using the vulnerability description 162 included in the threat list 202.
FIG. 8 is a diagram showing an example of vulnerability template generation processing according to the present embodiment.
FIG. 8 shows a procedure for creating the vulnerability template 206 of the inspection model 204 for inspecting the CWE-807 based on the CWE-807 embodiment rules given in the table 701 of FIG.
First, a large frame of 801 is given by the large frame of number 1 in the table 701. Next, a corresponding word / phrase is assigned to each of A and B in the outline and converted to 802. Next, according to the numbers 2 and 4 in the table 701, the word “Inputs” is converted to “Input” representing input data, and the word “Decision” is converted to “InputUsed” representing processing using the input data. Converted to 803. Finally, by the numbers 3 and 5 in the table 701, a “vulnerability” label is given to a transition that processes the input data without being verified, and 803 is converted to 804.
With the above operation, the vulnerability template generation unit 205 generates the vulnerability template 206. The table 701 is held by, for example, the vulnerability template generation unit 205 as a specific rule for generating the vulnerability template 206.

<検査プロパティ生成処理>
ステップS106において、検査プロパティ生成部209は、脆弱性テンプレート206を用いて検査プロパティ210を生成する。検査プロパティ210とは、脆弱性テンプレート206を用いて脆弱性記述の有無を判定するために用いられる。脆弱性テンプレート206の一具体例である804では、状態遷移に「脆弱性」のラベルが付与されていることにより、状態遷移と脆弱性が対応付けられている。したがって、検査プロパティ生成部209は、この状態遷移の発生の有無を検査する検査プロパティ210を生成する。
<Inspection property generation process>
In step S <b> 106, the inspection property generation unit 209 generates the inspection property 210 using the vulnerability template 206. The inspection property 210 is used to determine whether there is a vulnerability description using the vulnerability template 206. In a specific example 804 of the vulnerability template 206, the state transition and the vulnerability are associated with each other because the label “vulnerability” is assigned to the state transition. Therefore, the inspection property generation unit 209 generates an inspection property 210 for inspecting whether or not this state transition has occurred.

<検査モデル生成処理>
ステップS107において、検査モデル生成部203は、脆弱性テンプレート206と処理フローを表すモデル201とを取得し、モデル201を脆弱性テンプレート206に当てはめた検査モデル204を生成する。検査モデル生成部203は、モデル201を脆弱性テンプレート206に対応付けて変換することにより、検査モデル204を得る。
図9は、モデル201の一具体例である図4のステートマシンを変換する例を示している。図4では、「WaitForCommand」のラベルで示された状態502を起点として、「T1」の状態遷移506に伴う「Command=ReceiveFromHMI()」の処理によってデータが入力される。そして、「T3」の状態遷移の後、「T4」の状態遷移に伴う「SendToFD(OFF)」の処理、もしくは、「T5」の状態遷移に伴う「SendToFD(ON)」の処理によってデータが使用されている。これらを804と対応付ける事で検査モデル204が得られる。
以上により、抽象的なCWEの記述が検査モデル204と検査プロパティ210として具体化された。
<Inspection model generation process>
In step S <b> 107, the inspection model generation unit 203 acquires the vulnerability template 206 and the model 201 representing the processing flow, and generates an inspection model 204 in which the model 201 is applied to the vulnerability template 206. The inspection model generation unit 203 obtains the inspection model 204 by converting the model 201 in association with the vulnerability template 206.
FIG. 9 shows an example of converting the state machine of FIG. 4, which is a specific example of the model 201. In FIG. 4, data is input by the process of “Command = ReceiveFromHMI ()” accompanying the state transition 506 of “T1”, starting from the state 502 indicated by the label “WaitForCommand”. Then, after the state transition of “T3”, the data is used by the process of “SendToFD (OFF)” accompanying the state transition of “T4” or the process of “SendToFD (ON)” accompanying the state transition of “T5” Has been. By associating these with 804, the inspection model 204 is obtained.
As described above, the abstract CWE description is realized as the inspection model 204 and the inspection property 210.

<モデル検査処理>
ステップS108において、モデル検査部207は、検査モデル204と検査プロパティ210を用いて検証を行う。モデル検査部207は、検査プロパティ210を取得し、検査モデル201と検査プロパティ210とを用いて、モデル201に脆弱性箇所が存在するかを検証する。検査モデルの一具体例である図9の検査モデル204に対して、検査プロパティ210は「脆弱性」のラベルが付けられた状態遷移の発生の有無を検証することである。図9の検査モデル204では、「T1」、「T3」、「T4」という状態遷移の連なり、または、「T1」、「T3」、「T5」という状態遷移の連なりによって、「脆弱性」のラベルが付けられた状態遷移が発生する。モデル検査部207は、「T1」、「T3」、「T4」という状態遷移の連なり、または、「T1」、「T3」、「T5」という状態遷移の連なりによって、「脆弱性」のラベルが付けられた状態遷移が発生することを検証する。
<Model checking process>
In step S <b> 108, the model checking unit 207 performs verification using the check model 204 and the check property 210. The model checking unit 207 acquires the check property 210 and verifies whether the model 201 has a vulnerability portion using the check model 201 and the check property 210. For the inspection model 204 of FIG. 9 which is a specific example of the inspection model, the inspection property 210 is to verify whether or not a state transition labeled “Vulnerability” has occurred. In the inspection model 204 of FIG. 9, the state of “vulnerability” is determined by a series of state transitions “T1”, “T3”, “T4”, or a series of state transitions “T1”, “T3”, “T5”. A labeled state transition occurs. The model checking unit 207 displays the label “Vulnerability” by a series of state transitions “T1”, “T3”, and “T4” or a series of state transitions “T1”, “T3”, and “T5”. Verify that the attached state transition occurs.

ステップS109において、脆弱性判定部208は、モデル検査部207による検証結果に基づき、脆弱性箇所を判定する。モデルに脆弱性箇所がある場合、処理はステップS110に進む。モデルに脆弱性箇所がない場合、処理はステップS111に進む。   In step S <b> 109, the vulnerability determination unit 208 determines a vulnerability location based on the verification result by the model checking unit 207. If there is a vulnerability location in the model, the process proceeds to step S110. If the model has no vulnerability part, the process proceeds to step S111.

<脆弱性判定処理>
ステップS110では、脆弱性判定部208は、モデル201に脆弱性箇所が存在すると検証されると、処理フローにおける脆弱性箇所を脆弱性一覧211に追加する。脆弱性判定部208は、検査モデル204で見つかった「脆弱性」の状態遷移に対し、それ対応するモデル201の状態遷移を抽出する。そして、脆弱性判定部208は、抽出されたモデル201の状態遷移をモデル201の脆弱性の箇所として脆弱性一覧211に追加する。具体例では、図9の検査モデル204に対する検証により、「脆弱性」のラベルが付けられた状態遷移が発生することが判明した。この状態遷移は、検査モデル204に変換される前のモデルである図4の「T4」または「T5」の状態遷移に対応している。したがって、図4のステートマシン500において「T4」と「T5」の状態遷移が脆弱性箇所であると判定される。脆弱性判定部208は、「T4」と「T5」の状態遷移が脆弱性箇所であるという結果を脆弱性一覧211に追加する。
<Vulnerability judgment processing>
In step S <b> 110, when it is verified that the model 201 has a vulnerability location, the vulnerability determination unit 208 adds the vulnerability location in the processing flow to the vulnerability list 211. The vulnerability determination unit 208 extracts the state transition of the model 201 corresponding to the state transition of “vulnerability” found in the inspection model 204. Then, the vulnerability determination unit 208 adds the extracted state transition of the model 201 to the vulnerability list 211 as a vulnerability location of the model 201. In the specific example, it was found that the state transition labeled “Vulnerability” occurred by the verification on the inspection model 204 of FIG. This state transition corresponds to the state transition of “T4” or “T5” in FIG. 4 which is a model before being converted into the inspection model 204. Therefore, in the state machine 500 of FIG. 4, it is determined that the state transition of “T4” and “T5” is a vulnerable location. The vulnerability determination unit 208 adds the result that the state transition of “T4” and “T5” is a vulnerability location to the vulnerability list 211.

ステップS111およびステップS112において、各脅威と各CWEに対するループ処理が終了すると、モデル201において判定された全ての脆弱性箇所が脆弱性一覧211として記述される。
ステップS113において、脆弱性判定部208は、出力インタフェース940を介して、脆弱性一覧211を出力する。
ステップS114において、処理を終了する。
In step S111 and step S112, when the loop processing for each threat and each CWE ends, all the vulnerability points determined in the model 201 are described as the vulnerability list 211.
In step S113, the vulnerability determination unit 208 outputs the vulnerability list 211 via the output interface 940.
In step S114, the process ends.

図10は、本実施の形態に係る脆弱性テンプレート生成処理の別の例を示す図である。
図10では、表701で与えられるCWE−807の具体化の規則に基づき、CWE−807を検査するための検査モデル204の脆弱性テンプレート206を作成する手順の別の例を示している。図8で801から804を得るのと同様の手順で、1001から1002が得られる。図8の例では脆弱性のある状態遷移のみ作成している。しかし、図10ではそれに加えて脆弱性の無い状態遷移も作成し、脆弱性がある場合と無い場合の両方を明示した脆弱性テンプレート206を作成する。その結果、1003の脆弱性テンプレート206では、「InputVerified」という状態、および、それに関わる状態遷移が追加されている。
図10の脆弱性テンプレート206に対応する検査プロパティ210として、1004のプロパティを作成することができる。1004はモデル検査と呼ばれる形式手法で用いられる形式であり、状態「Input」に到達すれば、その後必ず状態「InputVerified」にも到達することを表している。これにより、入力されたデータは必ず検証されるという処理が表現されており、このプロパティを検証することによって処理に脆弱性が無いことが保証される。
FIG. 10 is a diagram showing another example of vulnerability template generation processing according to the present embodiment.
FIG. 10 shows another example of a procedure for creating the vulnerability template 206 of the inspection model 204 for inspecting the CWE-807 based on the rules of the CWE-807 implementation given in the table 701. 1001 to 1002 are obtained in the same procedure as obtaining 801 to 804 in FIG. In the example of FIG. 8, only the state transition with vulnerability is created. However, in FIG. 10, in addition to this, state transitions having no vulnerability are also created, and a vulnerability template 206 that clearly indicates both cases where there is a vulnerability and cases where there is no vulnerability is created. As a result, in the vulnerability template 206 of 1003, a state of “Input Verifyed” and a state transition related thereto are added.
A property 1004 can be created as the inspection property 210 corresponding to the vulnerability template 206 of FIG. Reference numeral 1004 denotes a format used in a formal method called model checking. When the state “Input” is reached, the state “InputVerified” is always reached thereafter. This expresses a process in which the input data is always verified, and by verifying this property, it is guaranteed that there is no vulnerability in the process.

***他の構成***
<変形例1>
本実施の形態では、一般的な脆弱性の情報としてCWEを使った場合の動作を説明した。しかし、CWE以外の脆弱性情報を使った場合でも、本実施の形態と同様の動作を規定することは容易である。
*** Other configurations ***
<Modification 1>
In the present embodiment, the operation when CWE is used as general vulnerability information has been described. However, even when vulnerability information other than CWE is used, it is easy to specify the same operation as in the present embodiment.

<変形例2>
セキュリティ設計装置100は、通信装置を備えていてもよい。通信装置は、ネットワークを介して他の装置と通信する。通信装置はネットワークインタフェースでもよい。通信装置は、レシーバとトランスミッタを有する。通信装置は、無線で、LAN、インターネット、あるいは電話回線といった通信網に接続している。通信装置は、具体的には、通信チップまたはNIC(Network Interface Card)である。
<Modification 2>
The security design device 100 may include a communication device. The communication device communicates with other devices via a network. The communication device may be a network interface. The communication device has a receiver and a transmitter. The communication device is wirelessly connected to a communication network such as a LAN, the Internet, or a telephone line. Specifically, the communication device is a communication chip or a NIC (Network Interface Card).

<変形例3>
モデル取得部および脅威一覧取得部が行う入力処理を、入力インタフェースを介するのではなく、補助記憶装置に保存されたデータの読み込みにより行ってもよい。また、出力部が行う出力処理を、出力インタフェースを介するのではなく、補助記憶装置へのデータ書き込みにより行ってもよい。データ入出力に関しては、通信装置あるいはネットワークインタフェースを用いてもよい。
<Modification 3>
The input processing performed by the model acquisition unit and the threat list acquisition unit may be performed by reading data stored in the auxiliary storage device instead of via the input interface. Further, the output process performed by the output unit may be performed by writing data to the auxiliary storage device instead of via the output interface. For data input / output, a communication device or a network interface may be used.

<変形例4>
本実施の形態では、脆弱性分析部105の機能がソフトウェアで実現される。変形例として、脆弱性分析部105の機能がハードウェアで実現されてもよい。
<Modification 4>
In the present embodiment, the function of the vulnerability analysis unit 105 is realized by software. As a modification, the function of the vulnerability analysis unit 105 may be realized by hardware.

図11は、本実施の形態の変形例に係るセキュリティ設計装置100の構成を示す図である。
セキュリティ設計装置100は、電子回路909、記憶装置920、入力インタフェース930、および出力インタフェース940を備える。
FIG. 11 is a diagram illustrating a configuration of a security design device 100 according to a modification of the present embodiment.
The security design device 100 includes an electronic circuit 909, a storage device 920, an input interface 930, and an output interface 940.

電子回路909は、脆弱性分析部105の機能を実現する専用の電子回路である。
電子回路909は、具体的には、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、ASIC、または、FPGAである。GAは、Gate Arrayの略語である。ASICは、Application Specific Integrated Circuitの略語である。FPGAは、Field−Programmable Gate Arrayの略語である。
脆弱性分析部105の機能は、1つの電子回路で実現されてもよいし、複数の電子回路に分散して実現されてもよい。
別の変形例として、脆弱性分析部105の一部の機能が電子回路で実現され、残りの機能がソフトウェアで実現されてもよい。
The electronic circuit 909 is a dedicated electronic circuit that realizes the function of the vulnerability analysis unit 105.
Specifically, the electronic circuit 909 is a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, a logic IC, a GA, an ASIC, or an FPGA. GA is an abbreviation for Gate Array. ASIC is an abbreviation for Application Specific Integrated Circuit. FPGA is an abbreviation for Field-Programmable Gate Array.
The function of the vulnerability analysis unit 105 may be realized by one electronic circuit or may be realized by being distributed to a plurality of electronic circuits.
As another modification, some functions of the vulnerability analysis unit 105 may be realized by an electronic circuit, and the remaining functions may be realized by software.

プロセッサと電子回路の各々は、プロセッシングサーキットリとも呼ばれる。つまり、セキュリティ設計装置100において、脆弱性分析部105の機能は、プロセッシングサーキットリにより実現される。   Each of the processor and the electronic circuit is also called a processing circuit. That is, in the security design device 100, the function of the vulnerability analysis unit 105 is realized by a processing circuit.

***本実施の形態の効果の説明***
本実施の形態に係るセキュリティ設計装置100によれば、機器のソフトウェア開発においてソフトウェアの処理レベルで脆弱性箇所を特定し、処理レベルで対策を入れることができる。本実施の形態に係るセキュリティ設計装置100では、対象システムおよび対象機器に対する潜在的な脅威に対応する一般的な脆弱性の記述を、脆弱性テンプレートと検査プロパティとして具体化する。そして、ソフトウェアの処理フローレベルのモデルを脆弱性テンプレートと対応付けて検査モデルに変換する。さらに、検査モデルと検査プロパティの検証によって脆弱性の有無とその箇所を特定する。よって、本実施の形態に係るセキュリティ設計装置100によれば、ソフトウェアの処理フローレベルで脆弱性の有無とその箇所を特定することができる。
*** Explanation of effects of this embodiment ***
According to the security design device 100 according to the present embodiment, it is possible to identify a vulnerability part at the software processing level in the software development of the device, and to take measures at the processing level. In the security design device 100 according to the present embodiment, a general vulnerability description corresponding to a potential threat to the target system and target device is embodied as a vulnerability template and an inspection property. Then, the software processing flow level model is converted into an inspection model in association with the vulnerability template. Furthermore, the presence or absence of the vulnerability and the location thereof are specified by verifying the inspection model and the inspection property. Therefore, according to the security design device 100 according to the present embodiment, the presence / absence of the vulnerability and the location thereof can be specified at the software processing flow level.

実施の形態2.
本実施の形態では、主に、実施の形態1と異なる点について説明する。
なお、本実施の形態において、実施の形態1と同様の構成には同一の符号を付し、その説明を省略する。
Embodiment 2. FIG.
In the present embodiment, differences from the first embodiment will be mainly described.
In the present embodiment, the same components as those in the first embodiment are denoted by the same reference numerals, and the description thereof is omitted.

実施の形態1のセキュリティ設計装置は、入力された脅威一覧の各脅威に対応する脆弱性を検証するための脆弱性テンプレートと検査プロパティを動的に作成していた。本実施の形態に係るセキュリティ設計装置では、脆弱性テンプレートと検査プロパティを予め作成し、データベースとして保持する。そして、セキュリティ設計装置は、脆弱性分析を行う際、脆弱性に対応する脆弱性テンプレートと検査プロパティをデータベースから抽出する。   The security design device according to the first embodiment dynamically creates a vulnerability template and an inspection property for verifying the vulnerability corresponding to each threat in the input threat list. In the security design device according to the present embodiment, vulnerability templates and inspection properties are created in advance and stored as a database. Then, when performing the vulnerability analysis, the security design device extracts the vulnerability template and the inspection property corresponding to the vulnerability from the database.

***構成の説明***
図12は、本実施の形態に係る脆弱性分析部105aの内部構成を示している。
本実施の形態に係る脆弱性分析部105aは、実施の形態1の脆弱性テンプレート生成部205と検査プロパティ生成部209に替えて、データベース検索部221を備える。また、記憶装置920には脆弱性データベース222を備える。
脆弱性データベース222は、脆弱性テンプレート206と検査プロパティ210とを記憶する。脆弱性テンプレート206と検査プロパティ210は、予め生成されて記憶されている。
データベース検索部221は、脅威一覧202に含まれる脆弱性記述に基づいて、脆弱性テンプレート206と検査プロパティ210とを脆弱性データベース222から抽出する。
*** Explanation of configuration ***
FIG. 12 shows an internal configuration of the vulnerability analysis unit 105a according to the present embodiment.
The vulnerability analysis unit 105a according to the present embodiment includes a database search unit 221 instead of the vulnerability template generation unit 205 and the inspection property generation unit 209 of the first embodiment. In addition, the storage device 920 includes a vulnerability database 222.
The vulnerability database 222 stores vulnerability templates 206 and inspection properties 210. The vulnerability template 206 and the inspection property 210 are generated and stored in advance.
The database search unit 221 extracts the vulnerability template 206 and the inspection property 210 from the vulnerability database 222 based on the vulnerability description included in the threat list 202.

***動作の説明***
図13を用いて、本実施の形態に係るセキュリティ設計処理S100aについて説明する。
ステップS101からステップS104、および、ステップS107からステップS114の処理は図7と同様である。
図13のセキュリティ設計処理S100aは、図7のステップS105の脆弱性テンプレート生成処理とステップS106の検査プロパティ生成処理に代わり、ステップS105aのデータベース検索処理を有する。
ステップS105aにおいて、データベース検索部221は、脆弱性データベース222を検索し、脆弱性テンプレートと検査プロパティを抽出する。具体的には、データベース検索部221は、脅威一覧202に含まれるCWE−807のようなCWE番号をキーとして脆弱性データベース222を検索する。あるいは、データベース検索部221は、脅威一覧202に含まれる脆弱性記述そのものをキーとして脆弱性データベース222を検索してもよい。
ステップS107以降では、脆弱性データベース222から抽出された脆弱性テンプレートと検査プロパティを用いてモデル検査処理を実行する。
*** Explanation of operation ***
The security design process S100a according to the present embodiment will be described with reference to FIG.
The processing from step S101 to step S104 and from step S107 to step S114 is the same as that in FIG.
The security design process S100a in FIG. 13 includes a database search process in step S105a instead of the vulnerability template generation process in step S105 and the inspection property generation process in step S106.
In step S105a, the database search unit 221 searches the vulnerability database 222, and extracts vulnerability templates and inspection properties. Specifically, the database search unit 221 searches the vulnerability database 222 using a CWE number such as CWE-807 included in the threat list 202 as a key. Alternatively, the database search unit 221 may search the vulnerability database 222 using the vulnerability description itself included in the threat list 202 as a key.
In step S107 and subsequent steps, the model checking process is executed using the vulnerability template and the checking property extracted from the vulnerability database 222.

***本実施の形態の効果の説明***
本実施の形態に係るセキュリティ設計装置によれば、脆弱性テンプレートと検査プロパティをあらかじめ作成して脆弱性データベースに保持しているため、脆弱性テンプレートと検査プロパティの作成に要する時間が削減される。
*** Explanation of effects of this embodiment ***
According to the security design device according to the present embodiment, since the vulnerability template and the inspection property are created in advance and stored in the vulnerability database, the time required for creating the vulnerability template and the inspection property is reduced.

実施の形態3.
本実施の形態では、主に、実施の形態1および2と異なる点について説明する。
なお、本実施の形態において、実施の形態1および2と同様の構成には同一の符号を付し、その説明を省略する。
Embodiment 3 FIG.
In the present embodiment, differences from Embodiments 1 and 2 will be mainly described.
In the present embodiment, the same components as those in the first and second embodiments are denoted by the same reference numerals, and the description thereof is omitted.

実施の形態1および2では、モデルと、そのモデルに対する潜在的な脅威一覧を入力として、モデルにおける処理フローレベルでの脆弱性の特定を実現するものであった。本実施の形態では、セキュリティ設計および実装をさらに自動化させるため、脅威一覧の抽出、および、脆弱性の特定後の対策反映を含む態様について説明する。   In Embodiments 1 and 2, a model and a list of potential threats to the model are input, and the vulnerability at the processing flow level in the model is specified. In this embodiment, in order to further automate security design and implementation, an aspect including extraction of a threat list and reflection of countermeasures after specifying a vulnerability will be described.

***構成の説明***
図14は、本実施の形態に係るセキュリティ設計装置100bの構成図である。
モデル取得部101は、セキュリティ設計装置100bへの入力であるモデル201を受け付ける。モデル取得部101の機能は実施の形態1と同様である。
リスク分析部108は、モデル201を入力とし、脅威一覧202を出力する。
脆弱性分析部105は、モデル201および脅威一覧202を入力とし、脆弱性一覧211を出力する。脆弱性分析部105の機能は実施の形態1と同様である。
対策反映部109は、モデル201と脆弱性一覧211を入力とし、脆弱性への対策が反映されたモデル201bを出力する。脆弱性への対策が反映されたモデル201bは、モデル201としてフィードバックされる。
出力部107は、モデル201をセキュリティ設計装置100bの外部に出力する。
*** Explanation of configuration ***
FIG. 14 is a configuration diagram of the security design device 100b according to the present embodiment.
The model acquisition unit 101 receives a model 201 that is an input to the security design device 100b. The function of the model acquisition unit 101 is the same as that of the first embodiment.
The risk analysis unit 108 receives the model 201 and outputs a threat list 202.
The vulnerability analysis unit 105 receives the model 201 and the threat list 202 as inputs, and outputs a vulnerability list 211. The function of the vulnerability analysis unit 105 is the same as that of the first embodiment.
The countermeasure reflection unit 109 receives the model 201 and the vulnerability list 211, and outputs a model 201b in which countermeasures against the vulnerability are reflected. The model 201b reflecting the countermeasures against the vulnerability is fed back as the model 201.
The output unit 107 outputs the model 201 to the outside of the security design device 100b.

***動作の説明***
リスク分析部108の動作の一例について説明する。
ここでは、セキュリティ設計装置100bは、脅威データベース501と対策データベース502を備えるものとする。脅威データベース501は、脅威と脅威に対応する脆弱性記述との一覧を記憶する。対策データベース502は、脅威と脅威に対する対策との一覧を記憶する。
*** Explanation of operation ***
An example of the operation of the risk analysis unit 108 will be described.
Here, it is assumed that the security design device 100b includes a threat database 501 and a countermeasure database 502. The threat database 501 stores a list of threats and vulnerability descriptions corresponding to the threats. The countermeasure database 502 stores a list of threats and countermeasures against the threats.

図15は、本実施の形態に係る脅威データベース501の一例を示す図である。
脅威データベース501には、各行に付された番号と、脅威と、発生個所と、脅威に対応する脆弱性とが設定されている。
リスク分析部108は、モデル201に基づいて、脅威データベース501から、モデル201に対応する脅威一覧202を抽出する。リスク分析部108は、脅威データベース501を用いてモデル201に対する潜在的な脅威を抽出する。リスク分析部108は、脅威と、その脅威に対応する脆弱性に関する情報とを脅威一覧202として出力する。脅威データベース501は、特定のシステムあるいは特定の機器に依存しない一般的な脅威を示している。図15の脅威データベース501では、番号2の脅威により、通信路において情報資産の改ざんの脅威が存在することが分かる。これを、図3の制御システムに適用することによって、表601の番号1に示した「HMIおよび機器コントローラ間の通信コマンドの改ざんによるフィールド機器の停止」という脅威が抽出される。
FIG. 15 is a diagram showing an example of the threat database 501 according to the present embodiment.
In the threat database 501, the number assigned to each row, the threat, the occurrence location, and the vulnerability corresponding to the threat are set.
The risk analysis unit 108 extracts the threat list 202 corresponding to the model 201 from the threat database 501 based on the model 201. The risk analysis unit 108 extracts a potential threat to the model 201 using the threat database 501. The risk analysis unit 108 outputs a threat and information related to the vulnerability corresponding to the threat as a threat list 202. The threat database 501 indicates general threats that do not depend on a specific system or a specific device. In the threat database 501 of FIG. 15, it can be seen that there is a threat of falsification of information assets in the communication path due to the threat of number 2. By applying this to the control system of FIG. 3, the threat of “stop of field device due to falsification of communication command between HMI and device controller” indicated by number 1 in Table 601 is extracted.

脆弱性分析部105の動作に関しては、実施の形態1で説明した通りである。表601の番号1に示した「HMIおよび機器コントローラ間の通信コマンドの改ざんによるフィールド機器の停止」という脅威を実際に発生させてしまう脆弱性として、図4のステートマシンの「T4」と「T5」の状態遷移が特定される。   The operation of the vulnerability analysis unit 105 is as described in the first embodiment. As the vulnerabilities that actually generate the threat “stop of field device due to falsification of communication command between HMI and device controller” shown in No. 1 of Table 601, “T4” and “T5” of the state machine in FIG. "Is identified.

図16は、本実施の形態に係る対策データベース502の一例を示す図である。
対策データベース502には、各行に付された番号と、脅威と、脅威に対応する対策とが設定されている。
対策反映部109は、脆弱性分析部105から脆弱性箇所と脆弱性箇所に対応する脅威とを含む脆弱性一覧211を取得する。対策反映部109は、対策データベース502から、脆弱性一覧に含まれる脅威に対応する対策を抽出する。そして、対策反映部109は、モデル201における脅威に対応する脆弱性箇所に、抽出した対策を付与する。
具体的には、対策反映部109は、脆弱性一覧211に含まれる各脆弱性に対する対策を対策データベース502から抽出する。対策反映部109は、対策データベース502から抽出した対策をモデル201に反映させる。対策データベース502は、特定のシステムあるいは特定の機器に依存しない一般的な対策を示している。図16の対策データベース502では、番号2の対策により、情報資産の改ざんという脅威に対しては、メッセージ認証コードCBC−MACによる検証を行えばよいことが分かる。対策反映部109は、このような一般的な対策を、脆弱性一覧211で示される処理フローレベルでの脆弱性の箇所と組み合わせる。つまり、対策反映部109は、脆弱性一覧211で示される処理フローレベルで対策を入れる。具体的には、図4のステートマシンでは、「T4」と「T5」の状態遷移が脆弱性の箇所であることが特定されている。よって、対策反映部109は、これらの直前である「T3」の状態遷移に伴う処理としてメッセージ認証コードCBC−MACを入れる。
FIG. 16 is a diagram showing an example of the countermeasure database 502 according to the present embodiment.
In the countermeasure database 502, a number assigned to each row, a threat, and a countermeasure corresponding to the threat are set.
The countermeasure reflection unit 109 acquires the vulnerability list 211 including the vulnerability location and the threat corresponding to the vulnerability location from the vulnerability analysis unit 105. The countermeasure reflection unit 109 extracts a countermeasure corresponding to the threat included in the vulnerability list from the countermeasure database 502. Then, the countermeasure reflecting unit 109 assigns the extracted countermeasure to the vulnerability location corresponding to the threat in the model 201.
Specifically, the countermeasure reflection unit 109 extracts countermeasures for each vulnerability included in the vulnerability list 211 from the countermeasure database 502. The countermeasure reflection unit 109 reflects the countermeasure extracted from the countermeasure database 502 in the model 201. The countermeasure database 502 shows general countermeasures that do not depend on a specific system or a specific device. In the countermeasure database 502 of FIG. 16, it can be seen that the countermeasure of No. 2 may be performed by using the message authentication code CBC-MAC for the threat of falsification of information assets. The countermeasure reflection unit 109 combines such a general countermeasure with the vulnerability portion at the processing flow level indicated in the vulnerability list 211. That is, the countermeasure reflection unit 109 puts a countermeasure at the processing flow level indicated by the vulnerability list 211. Specifically, in the state machine of FIG. 4, it is specified that the state transitions “T4” and “T5” are vulnerable points. Therefore, the countermeasure reflection unit 109 inserts the message authentication code CBC-MAC as processing accompanying the state transition of “T3” immediately before these.

***本実施の形態の効果の説明***
本実施の形態に係るセキュリティ設計装置100bは、入力されたモデルに対する潜在的な脅威を抽出する機能を有する。また、セキュリティ設計装置100bは、抽出された潜在的な脅威に対応する一般的な脆弱性の記述を、脆弱性テンプレートと検査プロパティとして具体化する。また、セキュリティ設計装置100bは、ソフトウェアの処理フローレベルのモデルを脆弱性テンプレートと対応付けて検査モデルに変換する。そして、セキュリティ設計装置100bは、検査モデルと検査プロパティの検証によって脆弱性の有無と脆弱性箇所を特定する。さらに、セキュリティ設計装置100bは、脅威に対する対策を抽出し、その対策を脆弱性箇所の特定結果と組み合わせて対策を入れる箇所を決定する。よって、本実施の形態に係るセキュリティ設計装置100bによれば、ソフトウェアの処理フローレベルで対策を反映したモデルを生成することができる。
*** Explanation of effects of this embodiment ***
The security design device 100b according to the present embodiment has a function of extracting a potential threat for the input model. Further, the security design device 100b embodies a general vulnerability description corresponding to the extracted potential threat as a vulnerability template and an inspection property. Further, the security design device 100b associates the software processing flow level model with the vulnerability template and converts it into an inspection model. Then, the security design device 100b identifies the presence / absence of the vulnerability and the vulnerability location by verifying the inspection model and the inspection property. Furthermore, the security design device 100b extracts a countermeasure against the threat and determines a place where the countermeasure is to be combined by combining the countermeasure with the result of specifying the vulnerable portion. Therefore, according to the security design device 100b according to the present embodiment, it is possible to generate a model reflecting a countermeasure at the software processing flow level.

実施の形態4.
本実施の形態では、主に、実施の形態3と異なる点について説明する。
なお、本実施の形態において、実施の形態1および2と同様の構成には同一の符号を付し、その説明を省略する。
Embodiment 4 FIG.
In the present embodiment, differences from Embodiment 3 will be mainly described.
In the present embodiment, the same components as those in the first and second embodiments are denoted by the same reference numerals, and the description thereof is omitted.

実施の形態3は、入力されたモデルに対策を反映させて出力することを目的とする。本実施の形態では、セキュリティ設計および実装をさらに自動化させるため、モデルベース開発の枠組として統合する態様について説明する。   Embodiment 3 aims to output the input model by reflecting the countermeasure. In this embodiment, a mode of integration as a model-based development framework in order to further automate security design and implementation will be described.

図17は、本実施の形態に係るセキュリティ設計装置100cの構成図である。
セキュリティ設計装置100cは、モデルベース開発の統合開発環境にセキュリティ設計が統合されている。セキュリティ設計装置100cは、利用者により利用されるモデルベース開発部190を備える。モデルベース開発部190は、モデルの生成に用いられるモデル化ツール部、対策反映部により対策が付与されたモデルを検証するモデル検証ツール部、モデルに基づいてソースコードを生成するコード生成ツール部を有する。
モデル化ツール部111では、ユーザがGUIといったインタフェースを用いてモデルを作成し、作成されたモデルはモデル201として出力される。
モデル201に対して、リスク分析部108、脆弱性分析部105、および対策反映部109による処理によって対策が反映される。
モデル検証ツール部112では、モデルベース開発の統合開発環境が備えている検証機能によって、ユーザが定義したモデルに対する要件が検証される。
コード生成ツール部113では、モデルベース開発の統合開発環境が備えているコード生成機能によって、モデルからソースコード212が生成される。
出力部107は、ソースコード212をセキュリティ設計装置100cの外部に出力する。
FIG. 17 is a configuration diagram of the security design device 100c according to the present embodiment.
In the security design apparatus 100c, security design is integrated into an integrated development environment for model-based development. The security design device 100c includes a model base development unit 190 used by a user. The model base development unit 190 includes a modeling tool unit used for generating a model, a model verification tool unit for verifying a model to which a countermeasure is given by the countermeasure reflection unit, and a code generation tool unit for generating source code based on the model. Have.
In the modeling tool unit 111, a user creates a model using an interface such as a GUI, and the created model is output as a model 201.
A countermeasure is reflected on the model 201 by processing by the risk analysis unit 108, the vulnerability analysis unit 105, and the countermeasure reflection unit 109.
In the model verification tool unit 112, the requirements for the model defined by the user are verified by the verification function provided in the integrated development environment for model-based development.
In the code generation tool unit 113, the source code 212 is generated from the model by the code generation function provided in the integrated development environment for model-based development.
The output unit 107 outputs the source code 212 to the outside of the security design device 100c.

本実施の形態では、モデルは外部からの入力ではなく、モデルベース開発のプロセスの1つとして、モデルベース開発部の統合開発環境で作成される。また、モデルに対する対策が反映された後は、モデルベース開発のプロセスとしてモデルの検証およびモデルからのソースコード生成が行われる。   In the present embodiment, the model is created in the integrated development environment of the model-based development department as one of the model-based development processes, not as an external input. After the countermeasures for the model are reflected, model verification and source code generation from the model are performed as a model-based development process.

本実施の形態に係るセキュリティ設計装置100cは、モデルベース開発の統合開発環境にセキュリティ設計を統合している。このため、ユーザが通常通りのモデルベース開発フローによってモデルを設計するだけで、そのモデルに対する潜在的な脅威が自動的に抽出される。さらに、その脅威に対するソフトウェアの処理フローレベルでの対策が自動的にモデルに反映され、対策が反映されたソースコードが生成される。   The security design device 100c according to the present embodiment integrates security design into an integrated development environment for model-based development. For this reason, a potential threat to the model is automatically extracted just by designing the model by a normal model-based development flow. Furthermore, a countermeasure at the software processing flow level against the threat is automatically reflected in the model, and a source code reflecting the countermeasure is generated.

以上の実施の形態1から4では、セキュリティ設計装置の各部を独立した機能ブロックとして説明した。しかし、セキュリティ設計装置の構成は、上述した実施の形態のような構成でなくてもよい。セキュリティ設計装置の機能ブロックは、上述した実施の形態で説明した機能を実現することができれば、どのような構成でもよい。   In the first to fourth embodiments described above, each part of the security design apparatus has been described as an independent functional block. However, the configuration of the security design apparatus may not be the configuration as in the above-described embodiment. The functional block of the security design device may have any configuration as long as the function described in the above-described embodiment can be realized.

以上の実施の形態1から4のうち、複数の部分を組み合わせて実施しても構わない。あるいは、これらの実施の形態のうち、1つの部分を実施しても構わない。その他、これらの実施の形態を、全体としてあるいは部分的に、どのように組み合わせて実施しても構わない。
なお、上述した実施の形態は、本質的に好ましい例示であって、本発明の範囲、本発明の適用物の範囲、および本発明の用途の範囲を制限することを意図するものではない。上述した実施の形態は、必要に応じて種々の変更が可能である。
Of the above first to fourth embodiments, a plurality of portions may be combined. Alternatively, one part of these embodiments may be implemented. In addition, these embodiments may be implemented in any combination as a whole or in part.
The above-described embodiment is essentially a preferable example, and is not intended to limit the scope of the present invention, the scope of the application of the present invention, and the scope of use of the present invention. The embodiment described above can be variously modified as necessary.

100,100b,100c セキュリティ設計装置、101 モデル取得部、103 脅威一覧取得部、105,105a 脆弱性分析部、107 出力部、108 リスク分析部、109 対策反映部、111 モデル化ツール部、112 モデル検証ツール部、113 コード生成ツール部、190 モデルベース開発部、201,201b モデル、202 脅威一覧、203 検査モデル生成部、204 検査モデル、205 脆弱性テンプレート生成部、206 脆弱性テンプレート、207 モデル検査部、208 脆弱性判定部、209 検査プロパティ生成部、210 検査プロパティ、211 脆弱性一覧、212 ソースコード、221 データベース検索部、222 脆弱性データベース、401 HMI、402 機器コントローラ、403 通信ソフトウェア、404 フィールド機器、405,406 接続、407 機器制御ソフトウェア、500 ステートマシン、501 脅威データベース、502 対策データベース、601,602,701 表、161 脅威、162 脆弱性記述、909 電子回路、910 プロセッサ、920 記憶装置、930 入力インタフェース、940 出力インタフェース、S100 セキュリティ設計処理。   100, 100b, 100c Security design apparatus, 101 model acquisition unit, 103 threat list acquisition unit, 105, 105a vulnerability analysis unit, 107 output unit, 108 risk analysis unit, 109 countermeasure reflection unit, 111 modeling tool unit, 112 model Verification tool part, 113 Code generation tool part, 190 Model base development part, 201, 201b model, 202 Threat list, 203 Inspection model generation part, 204 Inspection model, 205 Vulnerability template generation part, 206 Vulnerability template, 207 Model inspection , 208 Vulnerability determination unit, 209 Inspection property generation unit, 210 Inspection property, 211 Vulnerability list, 212 Source code, 221 Database search unit, 222 Vulnerability database, 401 HMI, 402 Device controller 403 communication software, 404 field device, 405, 406 connection, 407 device control software, 500 state machine, 501 threat database, 502 countermeasure database, 601, 602, 701 table, 161 threat, 162 vulnerability description, 909 electronic circuit, 910 Processor, 920 storage device, 930 input interface, 940 output interface, S100 security design processing.

Claims (10)

ソフトウェアの処理に対する攻撃による脅威と、前記脅威に対して脆弱性を有する処理の記述である脆弱性記述との一覧を脅威一覧として取得し、前記ソフトウェアの処理の処理フローから、前記脅威一覧に含まれる脆弱性記述に対応する脆弱性箇所を判定し、前記脆弱性箇所の一覧を脆弱性一覧として生成する脆弱性分析部を備え、
前記脆弱性分析部は、
前記脅威一覧に含まれる脆弱性記述を用いて脆弱性テンプレートを取得するとともに、前記処理フローを表すモデルを取得し、前記モデルを前記脆弱性テンプレートに当てはめた検査モデルを生成する検査モデル生成部と、
前記脆弱性テンプレートを用いて前記脆弱性記述の有無を判定する検査プロパティを取得し、前記検査モデルと前記検査プロパティとを用いて、前記モデルに前記脆弱性箇所が存在するかを検証するモデル検査部と、
前記モデルに前記脆弱性箇所が存在すると検証されると、前記処理フローにおける前記脆弱性箇所を前記脆弱性一覧に追加する脆弱性判定部と、
前記脅威一覧に含まれる脆弱性記述に基づいて、前記脆弱性テンプレートを生成する脆弱性テンプレート生成部と、
前記脆弱性テンプレートを用いて前記検査プロパティを生成する検査プロパティ生成部と
を備えたセキュリティ設計装置。
A list of threats due to attacks on software processing and vulnerability descriptions that are descriptions of processes having vulnerability to the threat is acquired as a threat list, and included in the threat list from the processing flow of the software processing A vulnerability analysis unit that determines a vulnerability location corresponding to the vulnerability description to be generated and generates a list of the vulnerability locations as a vulnerability list,
The vulnerability analysis unit
An inspection model generation unit that acquires a vulnerability template using a vulnerability description included in the threat list, acquires a model representing the processing flow, and generates an inspection model in which the model is applied to the vulnerability template; ,
A model check that obtains a check property for determining the presence or absence of the vulnerability description using the vulnerability template, and verifies whether the vulnerability location exists in the model using the check model and the check property And
When it is verified that the vulnerability location exists in the model, a vulnerability determination unit that adds the vulnerability location in the processing flow to the vulnerability list;
A vulnerability template generation unit that generates the vulnerability template based on a vulnerability description included in the threat list;
A test property generation unit that generates the test property using the vulnerability template;
Security design device equipped with.
ソフトウェアの処理に対する攻撃による脅威と、前記脅威に対して脆弱性を有する処理の記述である脆弱性記述との一覧を脅威一覧として取得し、前記ソフトウェアの処理の処理フローから、前記脅威一覧に含まれる脆弱性記述に対応する脆弱性箇所を判定し、前記脆弱性箇所の一覧を脆弱性一覧として生成する脆弱性分析部を備え、  A list of threats due to attacks on software processing and vulnerability descriptions that are descriptions of processes having vulnerability to the threat is acquired as a threat list, and included in the threat list from the processing flow of the software processing A vulnerability analysis unit that determines a vulnerability location corresponding to the vulnerability description to be generated and generates a list of the vulnerability locations as a vulnerability list,
前記脆弱性分析部は、  The vulnerability analysis unit
前記脅威一覧に含まれる脆弱性記述を用いて脆弱性テンプレートを取得するとともに、前記処理フローを表すモデルを取得し、前記モデルを前記脆弱性テンプレートに当てはめた検査モデルを生成する検査モデル生成部と、  An inspection model generation unit that acquires a vulnerability template using a vulnerability description included in the threat list, acquires a model representing the processing flow, and generates an inspection model in which the model is applied to the vulnerability template; ,
前記脆弱性テンプレートを用いて前記脆弱性記述の有無を判定する検査プロパティを取得し、前記検査モデルと前記検査プロパティとを用いて、前記モデルに前記脆弱性箇所が存在するかを検証するモデル検査部と、  A model check that obtains a check property for determining the presence or absence of the vulnerability description using the vulnerability template, and verifies whether the vulnerability location exists in the model using the check model and the check property And
前記モデルに前記脆弱性箇所が存在すると検証されると、前記処理フローにおける前記脆弱性箇所を前記脆弱性一覧に追加する脆弱性判定部と、  When it is verified that the vulnerability location exists in the model, a vulnerability determination unit that adds the vulnerability location in the processing flow to the vulnerability list;
脅威と前記脅威に対応する脆弱性記述との一覧を記憶した脅威データベースと、  A threat database storing a list of threats and vulnerability descriptions corresponding to the threats;
脅威と前記脅威に対する対策との一覧を記憶した対策データベースと、  A countermeasure database storing a list of threats and countermeasures against the threats;
前記モデルに基づいて、前記脅威データベースから、前記モデルに対応する前記脅威一覧を抽出するリスク分析部と、  A risk analysis unit that extracts the list of threats corresponding to the model from the threat database based on the model;
前記脆弱性分析部から前記脆弱性箇所と前記脆弱性箇所に対応する脅威とを含む前記脆弱性一覧を取得し、前記対策データベースから、前記脆弱性一覧に含まれる前記脅威に対応する対策を抽出し、前記モデルにおける前記脅威に対応する前記脆弱性箇所に前記対策を付与する対策反映部と  The vulnerability list including the vulnerability location and the threat corresponding to the vulnerability location is acquired from the vulnerability analysis unit, and the countermeasure corresponding to the threat included in the vulnerability list is extracted from the countermeasure database And a countermeasure reflecting unit that gives the countermeasure to the vulnerability location corresponding to the threat in the model,
を備えたセキュリティ設計装置。Security design device with
前記セキュリティ設計装置は、
利用者により利用されるモデルベース開発部であって、
前記モデルの生成に用いられるモデル化ツール部と、前記対策反映部により前記対策が付与された前記モデルを検証するモデル検証ツール部と、前記モデルに基づいてソースコードを生成するコード生成ツール部とを有するモデルベース開発部を備えた請求項2に記載のセキュリティ設計装置。
The security design device is:
A model-based development department used by users,
A modeling tool unit used for generating the model, a model verification tool unit for verifying the model to which the countermeasure is applied by the countermeasure reflecting unit, and a code generation tool unit for generating source code based on the model; The security design device according to claim 2, further comprising a model base development unit having
前記脅威一覧に含まれる脆弱性は、CWE(Common Weakness Enumeration)から取得され、
前記モデルは、ステートマシンを含む請求項1から請求項3のいずれか1項に記載のセキュリティ設計装置。
Vulnerabilities included in the list of threats are acquired from CWE (Common weakness enumeration),
The security design apparatus according to any one of claims 1 to 3 , wherein the model includes a state machine.
前記セキュリティ設計装置は、
前記脆弱性テンプレートと前記検査プロパティとを記憶する脆弱性データベースと、
前記脅威一覧に含まれる前記脆弱性記述に基づいて、前記脆弱性テンプレートと前記検査プロパティとを前記脆弱性データベースから抽出するデータベース検索部と
を備えた請求項1から請求項4のいずれか1項に記載のセキュリティ設計装置。
The security design device is:
A vulnerability database storing the vulnerability template and the inspection property;
The database search unit according to any one of claims 1 to 4, further comprising a database search unit that extracts the vulnerability template and the inspection property from the vulnerability database based on the vulnerability description included in the threat list. The security design device described in 1.
前記セキュリティ設計装置は、
前記脅威一覧を取得する脅威一覧取得部と、
前記モデルを取得するモデル取得部と
を備えた請求項1から請求項5のいずれか1項に記載のセキュリティ設計装置。
The security design device is:
A threat list acquisition unit for acquiring the threat list;
The security design apparatus according to any one of claims 1 to 5, further comprising a model acquisition unit that acquires the model.
脆弱性分析部が、ソフトウェアの処理に対する攻撃による脅威と、前記脅威に対して脆弱性を有する処理の記述である脆弱性記述との一覧を脅威一覧として取得し、前記ソフトウェアの処理の処理フローから、前記脅威一覧に含まれる脆弱性記述に対応する脆弱性箇所を判定し、前記脆弱性箇所の一覧を脆弱性一覧として生成し、
検査モデル生成部が、前記脅威一覧に含まれる脆弱性記述を用いて脆弱性テンプレートを取得するとともに、前記処理フローを表すモデルを取得し、前記モデルを前記脆弱性テンプレートに当てはめた検査モデルを生成し、
モデル検査部が、前記脆弱性テンプレートを用いて前記脆弱性記述の有無を判定する検査プロパティを取得し、前記検査モデルと前記検査プロパティとを用いて、前記モデルに前記脆弱性箇所が存在するかを検証し、
脆弱性判定部が、前記モデルに前記脆弱性箇所が存在すると検証されると、前記処理フローにおける前記脆弱性箇所を前記脆弱性一覧に追加し、
脆弱性テンプレート生成部が、前記脅威一覧に含まれる脆弱性記述に基づいて、前記脆弱性テンプレートを生成し、
検査プロパティ生成部が、前記脆弱性テンプレートを用いて前記検査プロパティを生成するセキュリティ設計方法。
Vulnerability analysis unit, the threat of attack on software processing, the list of vulnerabilities described as a description of a process having vulnerable to the threat acquired as a threat list, the process flow of processing before Symbol Software From the above, the vulnerability location corresponding to the vulnerability description included in the threat list is determined, and the list of the vulnerability locations is generated as a vulnerability list,
The inspection model generation unit acquires a vulnerability template using the vulnerability description included in the threat list, acquires a model representing the processing flow, and generates an inspection model in which the model is applied to the vulnerability template And
The model checking unit acquires a check property for determining the presence or absence of the vulnerability description using the vulnerability template, and whether the vulnerability location exists in the model using the check model and the check property Verify
When it is verified that the vulnerability location exists in the model, the vulnerability determination unit adds the vulnerability location in the processing flow to the vulnerability list,
A vulnerability template generation unit generates the vulnerability template based on the vulnerability description included in the threat list,
A security design method in which an inspection property generation unit generates the inspection property using the vulnerability template .
脆弱性分析部が、ソフトウェアの処理に対する攻撃による脅威と、前記脅威に対して脆弱性を有する処理の記述である脆弱性記述との一覧を脅威一覧として取得し、前記ソフトウェアの処理の処理フローから、前記脅威一覧に含まれる脆弱性記述に対応する脆弱性箇所を判定し、前記脆弱性箇所の一覧を脆弱性一覧として生成し、  The vulnerability analysis unit obtains a list of threats due to attacks on software processing and vulnerability descriptions that are descriptions of processes having vulnerability to the threat as a threat list, and from the processing flow of the software processing , Determine a vulnerability location corresponding to the vulnerability description included in the threat list, generate a list of the vulnerability location as a vulnerability list,
検査モデル生成部が、前記脅威一覧に含まれる脆弱性記述を用いて脆弱性テンプレートを取得するとともに、前記処理フローを表すモデルを取得し、前記モデルを前記脆弱性テンプレートに当てはめた検査モデルを生成し、  The inspection model generation unit acquires a vulnerability template using the vulnerability description included in the threat list, acquires a model representing the processing flow, and generates an inspection model in which the model is applied to the vulnerability template And
モデル検査部が、前記脆弱性テンプレートを用いて前記脆弱性記述の有無を判定する検査プロパティを取得し、前記検査モデルと前記検査プロパティとを用いて、前記モデルに前記脆弱性箇所が存在するかを検証し、  The model checking unit acquires a check property for determining the presence or absence of the vulnerability description using the vulnerability template, and whether the vulnerability location exists in the model using the check model and the check property Verify
脆弱性判定部が、前記モデルに前記脆弱性箇所が存在すると検証されると、前記処理フローにおける前記脆弱性箇所を前記脆弱性一覧に追加し、  When it is verified that the vulnerability location exists in the model, the vulnerability determination unit adds the vulnerability location in the processing flow to the vulnerability list,
脅威データベースが、脅威と前記脅威に対応する脆弱性記述との一覧を記憶し、  The threat database stores a list of threats and vulnerability descriptions corresponding to the threats;
対策データベースが、脅威と前記脅威に対する対策との一覧を記憶し、  The countermeasure database stores a list of threats and countermeasures against the threats;
リスク分析部が、前記モデルに基づいて、前記脅威データベースから、前記モデルに対応する前記脅威一覧を抽出し、  A risk analysis unit, based on the model, extracts the threat list corresponding to the model from the threat database;
対策反映部が、前記脆弱性分析部から前記脆弱性箇所と前記脆弱性箇所に対応する脅威とを含む前記脆弱性一覧を取得し、前記対策データベースから、前記脆弱性一覧に含まれる前記脅威に対応する対策を抽出し、前記モデルにおける前記脅威に対応する前記脆弱性箇所に前記対策を付与するセキュリティ設計方法。  The countermeasure reflection unit acquires the vulnerability list including the vulnerability location and the threat corresponding to the vulnerability location from the vulnerability analysis unit, and from the countermeasure database to the threat included in the vulnerability list A security design method for extracting corresponding countermeasures and assigning the countermeasures to the vulnerability locations corresponding to the threats in the model.
ソフトウェアの処理に対する攻撃による脅威と、前記脅威に対して脆弱性を有する処理の記述である脆弱性記述との一覧を脅威一覧として取得し、前記ソフトウェアの処理の処理フローから、前記脅威一覧に含まれる脆弱性記述に対応する脆弱性箇所を判定し、前記脆弱性箇所の一覧を脆弱性一覧として生成する脆弱性分析処理と、
前記脅威一覧に含まれる脆弱性記述を用いて脆弱性テンプレートを取得するとともに、前記処理フローを表すモデルを取得し、前記モデルを前記脆弱性テンプレートに当てはめた検査モデルを生成する検査モデル生成処理と、
前記脆弱性テンプレートを用いて前記脆弱性記述の有無を判定する検査プロパティを取得し、前記検査モデルと前記検査プロパティとを用いて、前記モデルに前記脆弱性箇所が存在するかを検証するモデル検査処理と、
前記モデルに前記脆弱性箇所が存在すると検証されると、前記処理フローにおける前記脆弱性箇所を前記脆弱性一覧に追加する脆弱性判定処理と、
前記脅威一覧に含まれる脆弱性記述に基づいて、前記脆弱性テンプレートを生成する脆弱性テンプレート生成処理と、
前記脆弱性テンプレートを用いて前記検査プロパティを生成する検査プロパティ生成処理と
をコンピュータに実行させるセキュリティ設計プログラム。
A list of threats due to attacks on software processing and vulnerability descriptions that are descriptions of processes having vulnerability to the threat is acquired as a threat list, and included in the threat list from the processing flow of the software processing A vulnerability analysis process for determining a vulnerability location corresponding to the vulnerability description to be generated and generating a list of the vulnerability locations as a vulnerability list ;
An inspection model generation process for acquiring a vulnerability template using a vulnerability description included in the threat list, acquiring a model representing the processing flow, and generating an inspection model in which the model is applied to the vulnerability template; ,
A model check that obtains a check property for determining the presence or absence of the vulnerability description using the vulnerability template, and verifies whether the vulnerability location exists in the model using the check model and the check property Processing,
When it is verified that the vulnerability location exists in the model, vulnerability determination processing for adding the vulnerability location in the processing flow to the vulnerability list; and
A vulnerability template generation process for generating the vulnerability template based on the vulnerability description included in the threat list;
A security design program for causing a computer to execute inspection property generation processing for generating the inspection property using the vulnerability template .
脅威と前記脅威に対応する脆弱性記述との一覧を記憶する脅威データベースと、脅威と前記脅威に対する対策との一覧を記憶する対策データベースとを備えたセキュリティ設計装置のセキュリティ設計プログラムにおいて、  In a security design program of a security design device comprising a threat database storing a list of threats and vulnerability descriptions corresponding to the threats, and a countermeasure database storing a list of threats and countermeasures against the threats,
ソフトウェアの処理に対する攻撃による脅威と、前記脅威に対して脆弱性を有する処理の記述である脆弱性記述との一覧を脅威一覧として取得し、前記ソフトウェアの処理の処理フローから、前記脅威一覧に含まれる脆弱性記述に対応する脆弱性箇所を判定し、前記脆弱性箇所の一覧を脆弱性一覧として生成する脆弱性分析処理と、  A list of threats due to attacks on software processing and vulnerability descriptions that are descriptions of processes having vulnerability to the threat is acquired as a threat list, and included in the threat list from the processing flow of the software processing A vulnerability analysis process for determining a vulnerability location corresponding to the vulnerability description to be generated and generating a list of the vulnerability locations as a vulnerability list;
前記脅威一覧に含まれる脆弱性記述を用いて脆弱性テンプレートを取得するとともに、前記処理フローを表すモデルを取得し、前記モデルを前記脆弱性テンプレートに当てはめた検査モデルを生成する検査モデル生成処理と、  An inspection model generation process for acquiring a vulnerability template using a vulnerability description included in the threat list, acquiring a model representing the processing flow, and generating an inspection model in which the model is applied to the vulnerability template; ,
前記脆弱性テンプレートを用いて前記脆弱性記述の有無を判定する検査プロパティを取得し、前記検査モデルと前記検査プロパティとを用いて、前記モデルに前記脆弱性箇所が存在するかを検証するモデル検査処理と、  A model check that obtains a check property for determining the presence or absence of the vulnerability description using the vulnerability template, and verifies whether the vulnerability location exists in the model using the check model and the check property Processing,
前記モデルに前記脆弱性箇所が存在すると検証されると、前記処理フローにおける前記脆弱性箇所を前記脆弱性一覧に追加する脆弱性判定処理と、  When it is verified that the vulnerability location exists in the model, vulnerability determination processing for adding the vulnerability location in the processing flow to the vulnerability list; and
前記モデルに基づいて、前記脅威データベースから、前記モデルに対応する前記脅威一覧を抽出するリスク分析処理と、  Risk analysis processing for extracting the threat list corresponding to the model from the threat database based on the model;
前記脆弱性分析処理から前記脆弱性箇所と前記脆弱性箇所に対応する脅威とを含む前記脆弱性一覧を取得し、前記対策データベースから、前記脆弱性一覧に含まれる前記脅威に対応する対策を抽出し、前記モデルにおける前記脅威に対応する前記脆弱性箇所に前記対策を付与する対策反映処理と  The vulnerability list including the vulnerability location and the threat corresponding to the vulnerability location is acquired from the vulnerability analysis process, and the countermeasure corresponding to the threat included in the vulnerability list is extracted from the countermeasure database. And a countermeasure reflection process for giving the countermeasure to the vulnerability location corresponding to the threat in the model;
をコンピュータに実行させるセキュリティ設計プログラム。A security design program that causes a computer to execute.
JP2019541481A 2018-01-19 2018-01-19 Security design apparatus, security design method, and security design program Active JP6608569B1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/001669 WO2019142335A1 (en) 2018-01-19 2018-01-19 Security design device, security design method, and security design program

Publications (2)

Publication Number Publication Date
JP6608569B1 true JP6608569B1 (en) 2019-11-20
JPWO2019142335A1 JPWO2019142335A1 (en) 2020-01-23

Family

ID=67301390

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019541481A Active JP6608569B1 (en) 2018-01-19 2018-01-19 Security design apparatus, security design method, and security design program

Country Status (3)

Country Link
JP (1) JP6608569B1 (en)
TW (1) TW201933164A (en)
WO (1) WO2019142335A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111881451A (en) * 2020-07-16 2020-11-03 哈尔滨工业大学(威海) Vulnerability association mining method for industrial control system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008262311A (en) * 2007-04-11 2008-10-30 Fujitsu Ltd Security-inspecting model generation program and device, and security-inspecting model inspection device
JP2010507165A (en) * 2006-10-19 2010-03-04 チェックマークス リミテッド Detect security vulnerabilities in source code
JP2015219665A (en) * 2014-05-15 2015-12-07 ゲヒルン株式会社 Vulnerability visualization server, vulnerability visualization method, and vulnerability visualization server program
US20170329691A1 (en) * 2016-05-12 2017-11-16 Synopsys, Inc. Systems and methods for using semantic queries to analyze software

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010507165A (en) * 2006-10-19 2010-03-04 チェックマークス リミテッド Detect security vulnerabilities in source code
JP2008262311A (en) * 2007-04-11 2008-10-30 Fujitsu Ltd Security-inspecting model generation program and device, and security-inspecting model inspection device
JP2015219665A (en) * 2014-05-15 2015-12-07 ゲヒルン株式会社 Vulnerability visualization server, vulnerability visualization method, and vulnerability visualization server program
US20170329691A1 (en) * 2016-05-12 2017-11-16 Synopsys, Inc. Systems and methods for using semantic queries to analyze software

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111881451A (en) * 2020-07-16 2020-11-03 哈尔滨工业大学(威海) Vulnerability association mining method for industrial control system

Also Published As

Publication number Publication date
TW201933164A (en) 2019-08-16
JPWO2019142335A1 (en) 2020-01-23
WO2019142335A1 (en) 2019-07-25

Similar Documents

Publication Publication Date Title
US7788730B2 (en) Secure bytecode instrumentation facility
US7917762B2 (en) Secure execution environment by preventing execution of unauthorized boot loaders
US8881300B2 (en) Automated detection of flaws and incompatibility problems in information flow downgraders
US20210334384A1 (en) Detecting a potential security leak by a microservice
US8635602B2 (en) Verification of information-flow downgraders
US8701186B2 (en) Formal analysis of the quality and conformance of information flow downgraders
US11797668B2 (en) Sample data generation apparatus, sample data generation method, and computer readable medium
US7949874B2 (en) Secure firmware execution environment for systems employing option read-only memories
WO2022180702A1 (en) Analysis function addition device, analysis function addition program, and analysis function addition method
US10387288B2 (en) Interactive analysis of a security specification
JP6608569B1 (en) Security design apparatus, security design method, and security design program
JP6632777B2 (en) Security design apparatus, security design method, and security design program
JP7008879B2 (en) Information processing equipment, information processing methods and information processing programs
JP6584737B1 (en) Threat identification device, threat identification method, and threat identification program
JP6599053B1 (en) Information processing apparatus, information processing method, and information processing program
CN111984944B (en) Source code processing method, related device and storage medium
US8555226B1 (en) Automatic verification of dependency
WO2024154290A1 (en) Program analysis device, program analysis method, and non-transitory computer readable medium
WO2021171524A1 (en) Signature generation device, signature generation method, and signature generation program
CN115997210A (en) Attack means evaluation device, attack means evaluation method, and attack means evaluation program
CN112287335A (en) Detection method based on FORTIFY security protection, terminal and storage medium

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190731

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190731

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20190731

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20190906

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191023

R150 Certificate of patent or registration of utility model

Ref document number: 6608569

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111