JP6608569B1 - セキュリティ設計装置、セキュリティ設計方法およびセキュリティ設計プログラム - Google Patents

セキュリティ設計装置、セキュリティ設計方法およびセキュリティ設計プログラム 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
English (en)
Other versions
JPWO2019142335A1 (ja
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/ja
Publication of JPWO2019142335A1 publication Critical patent/JPWO2019142335A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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)として生成する。

Description

本発明は、セキュリティ設計装置、セキュリティ設計方法およびセキュリティ設計プログラムに関する。
制御システムのオープン化およびネットワーク化に伴い、制御システムを構成する制御機器へのサイバー攻撃が増加している。よって、セキュリティ対策の必要性が高まっている。セキュリティ対策を体系的に実施するにはセキュリティの専門知識が必要である。しかし、増加するサイバー攻撃に対して、専門知識を持つセキュリティ専門家の不足が課題になっている。そこで、セキュリティの設計および実装プロセスを、体系化し自動化することが必要になる。
セキュリティの設計および実装プロセスの流れを説明する。まず、対象機器における潜在的な脅威を網羅的に洗い出す。そして、各脅威の対象となる情報資産の価値および脅威の発生確率といった情報に基づき、各脅威のリスクを評価する。次に、リスクの評価結果に基づき対策すべき脅威を決定する。具体的には、リスクが高いと評価された脅威を優先して対策すべき脅威として決定する。その後、脅威に対するセキュリティ対策を立案し、セキュリティ対策を対象機器の設計に反映させるとともに、実装する。
このようなセキュリティの設計および実装プロセスを体系化し自動化する方法として、モデルベース開発と呼ばれる開発手法を利用し、機器のソフトウェア開発とそのセキュリティ対策を同一の設計および開発プロセスに統合する方法がある。
特許文献1の技術では、まず、開発対象の設計書から生成された制御モデルに対して、セキュリティの脅威を保持する脅威データベースの中から該当する脅威を自動的に抽出する。そして、脅威に対する対策を保持する対策データベースから該当する対策が自動的に抽出される。そして、その対策が制御モデルに自動的に反映される。
また、特許文献2の技術では、まず、ユーザにより入力された対象システムのシステム構成、コンポーネント連携、および制約条件といった情報に基づき、脅威および対策データベースを用いて、対象システムに対するセキュリティ脅威を自動的に抽出する。そして、その脅威への対策を自動的に抽出し、出力する。
特開2017−068825号公報 特開2017−107405号公報
従来技術では、対象システムあるいは対象機器に対する潜在的な脅威を抽出している。しかし、抽出した潜在的な脅威を実際に発生させてしまう対象システムあるいは対象機器の脆弱性を特定することはできない。したがって、脅威が存在する機器あるいは機能ブロックという粒度でしか対策箇所を決定することができない。よって、対策を反映したソフトウェアを自動的に設計することができない。よって、対策を反映したソフトウェアを生成するためには、セキュリティ専門家がソフトウェアの設計書あるいはソースコードを分析し、抽出した脅威に対応する脆弱性の箇所を特定する必要があるという課題があった。
本発明は、ソフトウェアの処理フローのレベルで脆弱性の箇所を自動的に特定することを目的とする。
本発明に係るセキュリティ設計装置は、
ソフトウェアの処理に対する攻撃による脅威と、前記脅威に対して脆弱性を有する処理の記述である脆弱性記述との一覧を脅威一覧として取得し、前記ソフトウェアの処理の処理フローから、前記脅威一覧に含まれる脆弱性記述に対応する脆弱性箇所を判定し、前記脆弱性箇所の一覧を脆弱性一覧として生成する脆弱性分析部を備えた。
本発明に係るセキュリティ設計装置では、脆弱性分析部が、ソフトウェアの処理に対する攻撃による脅威と脅威に対して脆弱性を有する処理の記述である脆弱性記述との一覧を脅威一覧として取得する。また、脆弱性分析部が、ソフトウェアの処理の処理フローから、脅威一覧に含まれる脆弱性記述に対応する脆弱性箇所を判定する。そして、脆弱性分析部が、脆弱性箇所の一覧を脆弱性一覧として生成する。よって、本発明に係るセキュリティ設計装置によれば、処理フローのレベルで脆弱性箇所を自動的に判定することができる。
実施の形態1に係るセキュリティ設計装置の構成図。 実施の形態1に係る脆弱性分析部の内部構成図。 実施の形態1に係る制御システムの構成図。 図3の通信ソフトウェアをステートマシンとして表した図。 実施の形態1に係る脅威一覧の例を示す図。 実施の形態1に係る表701を示す図。 実施の形態1に係るセキュリティ設計処理のフローチャート。 実施の形態1に係る脆弱性テンプレート生成処理の例を示す図。 図4のステートマシンを変換する例を示す図。 実施の形態1に係る脆弱性テンプレート生成処理の別の例を示す図。 実施の形態1の変形例に係るセキュリティ設計装置の構成図。 実施の形態2に係る脆弱性分析部の内部構成図。 実施の形態2に係るセキュリティ設計処理のフローチャート。 実施の形態3に係るセキュリティ設計装置の構成図。 実施の形態3に係る脅威データベースの一例を示す図。 実施の形態3に係る対策データベースの一例を示す図。 実施の形態4に係るセキュリティ設計装置の構成図。
以下、本発明の実施の形態について、図を用いて説明する。なお、各図中、同一または相当する部分には、同一符号を付している。実施の形態の説明において、同一または相当する部分については、説明を適宜省略または簡略化する。
実施の形態1.
***構成の説明***
図1を用いて、本実施の形態に係るセキュリティ設計装置100の構成を説明する。
セキュリティ設計装置100は、コンピュータである。セキュリティ設計装置100は、プロセッサ910を備えるとともに、記憶装置920、入力インタフェース930、および出力インタフェース940といった他のハードウェアを備える。記憶装置920は、メモリと補助記憶装置を備える。プロセッサ910は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
セキュリティ設計装置100は、機能要素として、モデル取得部101と、脅威一覧取得部103と、脆弱性分析部105と、出力部107とを備える。
脆弱性分析部105の機能は、ソフトウェアにより実現される。
モデル取得部101および脅威一覧取得部103の機能は、入力インタフェース930に備えられる。
出力部107の機能は、出力インタフェース940に備えられる。
プロセッサ910は、セキュリティ設計プログラムを実行する装置である。セキュリティ設計プログラムは、脆弱性分析部105の機能を実現するプログラムである。
プロセッサ910は、演算処理を行うIC(Integrated Circuit)である。プロセッサ910の具体例は、CPU、DSP(Digital Signal Processor)、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の略語である。
入力インタフェース930は、マウス、キーボード、あるいはタッチパネルといった入力装置と接続されるポートである。入力インタフェース930は、具体的には、USB(Universal Serial Bus)端子である。なお、入力インタフェース930は、LAN(Local Area Network)と接続されるポートであってもよい。
出力インタフェース940は、ディスプレイといった出力機器のケーブルが接続されるポートである。出力インタフェース940は、表示インタフェースともいう。出力インタフェース940は、具体的には、USB端子またはHDMI(登録商標)(High Definition Multimedia Interface)端子である。ディスプレイは、具体的には、LCD(Liquid Crystal Display)である。
セキュリティ設計プログラムは、プロセッサ910に読み込まれ、プロセッサ910によって実行される。メモリには、セキュリティ設計プログラムだけでなく、OS(Operating System)も記憶されている。プロセッサ910は、OSを実行しながら、セキュリティ設計プログラムを実行する。セキュリティ設計プログラムおよびOSは、補助記憶装置に記憶されていてもよい。補助記憶装置に記憶されているセキュリティ設計プログラムおよびOSは、メモリにロードされ、プロセッサ910によって実行される。なお、セキュリティ設計プログラムの一部または全部がOSに組み込まれていてもよい。
セキュリティ設計装置100は、プロセッサ910を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、セキュリティ設計プログラムの実行を分担する。それぞれのプロセッサは、プロセッサ910と同じように、セキュリティ設計プログラムを実行する装置である。
セキュリティ設計プログラムにより利用、処理または出力されるデータ、情報、信号値および変数値は、メモリ、補助記憶装置、または、プロセッサ910内のレジスタあるいはキャッシュメモリに記憶される。
モデル取得部101は、セキュリティ設計装置100への入力であるモデル201を取得する。
脅威一覧取得部103は、セキュリティ設計装置100への入力である脅威一覧202を取得する。図1では入力されたデータをモデル201および脅威一覧202として示している。
脆弱性分析部105は、モデル201および脅威一覧202を入力とし、脆弱性一覧211を出力する。
出力部107は、脆弱性一覧211をセキュリティ設計装置100の外部に出力する。具体的には、出力部107は、脆弱性一覧211をディスプレイに表示する。
図2は、本実施の形態に係る脆弱性分析部105の内部構成を示している。
脆弱性分析部105は、モデル201と脅威一覧202を入力とする。脆弱性分析部105は、脅威一覧202の各脅威に対応する脆弱性の箇所をモデル201において特定さいた脆弱性一覧211を出力する。
脆弱性分析部105は、検査モデル生成部203と、脆弱性テンプレート生成部205と、モデル検査部207と、脆弱性判定部208と、検査プロパティ生成部209とを備える。
脆弱性テンプレート生成部205は、入力された脅威一覧202の各脅威に対応する脆弱性を検証するためのモデルのテンプレートを脆弱性テンプレート206として生成する。
検査プロパティ生成部209は、入力された脅威一覧202の各脅威に対応する脆弱性を検証するためのプロパティを検査プロパティ210として生成する。
検査モデル生成部203は、入力されたモデル201の粒度を脆弱性テンプレート206に合わせて変換し、検査モデル204として出力する。
モデル検査部207は検査モデル204と検査プロパティ210を用いてモデル201に脆弱性箇所があるかを検証する。
脆弱性判定部208は、モデル検査部207が出力する検証結果に基づき、モデル201における脆弱性の有無とその箇所を特定し、脆弱性一覧211として出力する。
セキュリティ設計プログラムは、脆弱性分析部105の各部である検査モデル生成部203と脆弱性テンプレート生成部205とモデル検査部207と脆弱性判定部208と検査プロパティ生成部209の機能を実現するプログラムである。
脆弱性分析部105の各部の「部」を「処理」、「手順」あるいは「工程」に読み替えてもよい。
セキュリティ設計プログラムは、上記の各部の「部」を「処理」、「手順」あるいは「工程」に読み替えた各処理、各手順あるいは各工程を、コンピュータに実行させる。また、セキュリティ設計方法は、セキュリティ設計装置100がセキュリティ設計プログラムを実行することにより行われる方法である。
セキュリティ設計プログラムは、コンピュータ読取可能な記録媒体に格納されて提供されてもよい。また、セキュリティ設計プログラムは、プログラムプロダクトとして提供されてもよい。
***動作の説明***
次に、本実施の形態に係るセキュリティ設計処理S100について説明する。
まず、図3を用いて、セキュリティ設計処理S100の説明に用いる制御システムについて説明する。
制御システムは、HMI401、機器コントローラ402、およびフィールド機器404からなる。HMIは、Human Machine Interfaceの略語である。HMI401と機器コントローラ402は、接続405で接続される。機器コントローラ402とフィールド機器404は、接続406で接続される。
HMI401は、運転員が制御システムの監視制御を行うための端末である。運転員による操作に従い、HMI401は、機器コントローラ402に、接続405を介して、コマンドを送信する。コマンドは、Finish、Start、あるいはStopいずれかである。また、HMI401は、レスポンスあるいはセンサ情報を受信する。
機器コントローラ402は、HMI401から受信したコマンドに従い、フィールド機器404にONあるいはOFFいずれかのコマンドを送信する。機器コントローラ402の機能は通信ソフトウェア403と機器制御ソフトウェア407からなる。
通信ソフトウェア403は、HMI401から接続405を介して送信されたコマンドを受信する。そして、通信ソフトウェア403は、コマンドに対応するレスポンスあるいはセンサ情報をHMI401に送信する。通信ソフトウェア403が受信したコマンドに従って、機器制御ソフトウェア407は、接続406を介してフィールド機器404にONあるいはOFFいずれかのコマンドを送信する。また、機器制御ソフトウェア407は、フィールド機器404から送信されるセンサ情報を受信する。
以下の本実施の形態の説明の具体例として、通信ソフトウェア403をセキュリティの検査対象とする。
図4は、図3の通信ソフトウェア403をステートマシン500として表したものである。
501は開始状態を表す。503は終了状態を表す。502と511は状態を表す。505と508は条件分岐を表す。T0、T1、T2、T3、T4、T5、およびT6は各状態遷移を識別するラベルである。504のように、状態遷移に付与された角括弧ありの文字列は、その状態遷移が発生する条件を表す。506のように、状態遷移に付与された角括弧無しの文字列は、その状態遷移に伴い実行される処理を表す。509および510のように、状態遷移が発生する条件とその状態遷移に伴い実行される処理の両方を記す場合もある。
図4のステートマシン500により、以下のような通信ソフトウェア403の動作が表されている。プログラムの起動後、状態502においてコマンド待ちになる。コマンドを受信すると、条件504のようにコマンドがFinishであればプログラムを終了する。条件および処理509のようにコマンドがStopであれば、フィールド機器をOFFし、再びコマンド待ちになる。条件および処理510のようにコマンドがStartであれば、フィールド機器をONし、再びコマンド待ちになる。
セキュリティの設計および実装プロセスの流れに従って、通信ソフトウェア403に対するセキュリティが設計される。まず、図3の制御システムにおける潜在的な脅威を網羅的に洗い出す。本実施の形態に係るセキュリティ設計装置100では、脅威を網羅的に洗い出した結果の脅威一覧202は入力データとして与えられる。
図4のステートマシン500において、フィールド機器のONあるいはOFFは制御システムの動作に影響する処理である。これらの処理を不正に実行することは、システムに対するセキュリティの脅威である。そこで、「HMIおよび機器コントローラ間の通信コマンドの改ざんによるフィールド機器の停止」という脅威が、制御システムにおける潜在的な脅威を網羅的に洗い出した結果の一例となる。
図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を容易に決定することができる。
図5の表601は、通信ソフトウェア403に関わる潜在的な脅威を表している。また、各脅威が通信ソフトウェア403において実際に発生するのは、通信ソフトウェア403が各脅威に対応する脆弱性を持つ場合である。したがって、各脅威への対策を設計するためには、その脅威に対応する脆弱性を特定する必要がある。
図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を生成する。
図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」によって修飾子される処理の前に、その処理の対象となるデータの検証が必要である事を意味すると定義している。
図7を用いて、本実施の形態に係るセキュリティ設計処理S100について説明する。
図7は本実施の形態に係るセキュリティ設計装置100の動作をフローチャートで表したものである。
セキュリティ設計装置100では、脆弱性分析部105は、ソフトウェアの処理の処理フローから、脅威一覧202に含まれる脆弱性記述に対応する脆弱性箇所を判定する。そして、脆弱性分析部105は、脆弱性箇所の一覧を脆弱性一覧211として生成する。
ステップS101において処理が開始される。
ステップS102において、脆弱性分析部105は、モデル取得部101を介してモデル201を取得する。また、脆弱性分析部105は、脅威一覧取得部103を介して脅威一覧202を取得する。なお、通常、脅威一覧202には複数の脅威が含まれている。
ステップS103からステップS112の処理は、脅威一覧202に含まれる各脅威に関するループ処理である。なお、通常、各脅威に対して、それに対応するCWE形式の脆弱性は複数ある。
ステップS104からステップS111の処理は、脅威に対応する各CWEに関するループ処理である。
<脆弱性テンプレート生成処理>
ステップ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により保持される。
<検査プロパティ生成処理>
ステップS106において、検査プロパティ生成部209は、脆弱性テンプレート206を用いて検査プロパティ210を生成する。検査プロパティ210とは、脆弱性テンプレート206を用いて脆弱性記述の有無を判定するために用いられる。脆弱性テンプレート206の一具体例である804では、状態遷移に「脆弱性」のラベルが付与されていることにより、状態遷移と脆弱性が対応付けられている。したがって、検査プロパティ生成部209は、この状態遷移の発生の有無を検査する検査プロパティ210を生成する。
<検査モデル生成処理>
ステップ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として具体化された。
<モデル検査処理>
ステップ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」という状態遷移の連なりによって、「脆弱性」のラベルが付けられた状態遷移が発生することを検証する。
ステップS109において、脆弱性判定部208は、モデル検査部207による検証結果に基づき、脆弱性箇所を判定する。モデルに脆弱性箇所がある場合、処理はステップS110に進む。モデルに脆弱性箇所がない場合、処理はステップ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に追加する。
ステップS111およびステップS112において、各脅威と各CWEに対するループ処理が終了すると、モデル201において判定された全ての脆弱性箇所が脆弱性一覧211として記述される。
ステップS113において、脆弱性判定部208は、出力インタフェース940を介して、脆弱性一覧211を出力する。
ステップS114において、処理を終了する。
図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」にも到達することを表している。これにより、入力されたデータは必ず検証されるという処理が表現されており、このプロパティを検証することによって処理に脆弱性が無いことが保証される。
***他の構成***
<変形例1>
本実施の形態では、一般的な脆弱性の情報としてCWEを使った場合の動作を説明した。しかし、CWE以外の脆弱性情報を使った場合でも、本実施の形態と同様の動作を規定することは容易である。
<変形例2>
セキュリティ設計装置100は、通信装置を備えていてもよい。通信装置は、ネットワークを介して他の装置と通信する。通信装置はネットワークインタフェースでもよい。通信装置は、レシーバとトランスミッタを有する。通信装置は、無線で、LAN、インターネット、あるいは電話回線といった通信網に接続している。通信装置は、具体的には、通信チップまたはNIC(Network Interface Card)である。
<変形例3>
モデル取得部および脅威一覧取得部が行う入力処理を、入力インタフェースを介するのではなく、補助記憶装置に保存されたデータの読み込みにより行ってもよい。また、出力部が行う出力処理を、出力インタフェースを介するのではなく、補助記憶装置へのデータ書き込みにより行ってもよい。データ入出力に関しては、通信装置あるいはネットワークインタフェースを用いてもよい。
<変形例4>
本実施の形態では、脆弱性分析部105の機能がソフトウェアで実現される。変形例として、脆弱性分析部105の機能がハードウェアで実現されてもよい。
図11は、本実施の形態の変形例に係るセキュリティ設計装置100の構成を示す図である。
セキュリティ設計装置100は、電子回路909、記憶装置920、入力インタフェース930、および出力インタフェース940を備える。
電子回路909は、脆弱性分析部105の機能を実現する専用の電子回路である。
電子回路909は、具体的には、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、ASIC、または、FPGAである。GAは、Gate Arrayの略語である。ASICは、Application Specific Integrated Circuitの略語である。FPGAは、Field−Programmable Gate Arrayの略語である。
脆弱性分析部105の機能は、1つの電子回路で実現されてもよいし、複数の電子回路に分散して実現されてもよい。
別の変形例として、脆弱性分析部105の一部の機能が電子回路で実現され、残りの機能がソフトウェアで実現されてもよい。
プロセッサと電子回路の各々は、プロセッシングサーキットリとも呼ばれる。つまり、セキュリティ設計装置100において、脆弱性分析部105の機能は、プロセッシングサーキットリにより実現される。
***本実施の形態の効果の説明***
本実施の形態に係るセキュリティ設計装置100によれば、機器のソフトウェア開発においてソフトウェアの処理レベルで脆弱性箇所を特定し、処理レベルで対策を入れることができる。本実施の形態に係るセキュリティ設計装置100では、対象システムおよび対象機器に対する潜在的な脅威に対応する一般的な脆弱性の記述を、脆弱性テンプレートと検査プロパティとして具体化する。そして、ソフトウェアの処理フローレベルのモデルを脆弱性テンプレートと対応付けて検査モデルに変換する。さらに、検査モデルと検査プロパティの検証によって脆弱性の有無とその箇所を特定する。よって、本実施の形態に係るセキュリティ設計装置100によれば、ソフトウェアの処理フローレベルで脆弱性の有無とその箇所を特定することができる。
実施の形態2.
本実施の形態では、主に、実施の形態1と異なる点について説明する。
なお、本実施の形態において、実施の形態1と同様の構成には同一の符号を付し、その説明を省略する。
実施の形態1のセキュリティ設計装置は、入力された脅威一覧の各脅威に対応する脆弱性を検証するための脆弱性テンプレートと検査プロパティを動的に作成していた。本実施の形態に係るセキュリティ設計装置では、脆弱性テンプレートと検査プロパティを予め作成し、データベースとして保持する。そして、セキュリティ設計装置は、脆弱性分析を行う際、脆弱性に対応する脆弱性テンプレートと検査プロパティをデータベースから抽出する。
***構成の説明***
図12は、本実施の形態に係る脆弱性分析部105aの内部構成を示している。
本実施の形態に係る脆弱性分析部105aは、実施の形態1の脆弱性テンプレート生成部205と検査プロパティ生成部209に替えて、データベース検索部221を備える。また、記憶装置920には脆弱性データベース222を備える。
脆弱性データベース222は、脆弱性テンプレート206と検査プロパティ210とを記憶する。脆弱性テンプレート206と検査プロパティ210は、予め生成されて記憶されている。
データベース検索部221は、脅威一覧202に含まれる脆弱性記述に基づいて、脆弱性テンプレート206と検査プロパティ210とを脆弱性データベース222から抽出する。
***動作の説明***
図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から抽出された脆弱性テンプレートと検査プロパティを用いてモデル検査処理を実行する。
***本実施の形態の効果の説明***
本実施の形態に係るセキュリティ設計装置によれば、脆弱性テンプレートと検査プロパティをあらかじめ作成して脆弱性データベースに保持しているため、脆弱性テンプレートと検査プロパティの作成に要する時間が削減される。
実施の形態3.
本実施の形態では、主に、実施の形態1および2と異なる点について説明する。
なお、本実施の形態において、実施の形態1および2と同様の構成には同一の符号を付し、その説明を省略する。
実施の形態1および2では、モデルと、そのモデルに対する潜在的な脅威一覧を入力として、モデルにおける処理フローレベルでの脆弱性の特定を実現するものであった。本実施の形態では、セキュリティ設計および実装をさらに自動化させるため、脅威一覧の抽出、および、脆弱性の特定後の対策反映を含む態様について説明する。
***構成の説明***
図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の外部に出力する。
***動作の説明***
リスク分析部108の動作の一例について説明する。
ここでは、セキュリティ設計装置100bは、脅威データベース501と対策データベース502を備えるものとする。脅威データベース501は、脅威と脅威に対応する脆弱性記述との一覧を記憶する。対策データベース502は、脅威と脅威に対する対策との一覧を記憶する。
図15は、本実施の形態に係る脅威データベース501の一例を示す図である。
脅威データベース501には、各行に付された番号と、脅威と、発生個所と、脅威に対応する脆弱性とが設定されている。
リスク分析部108は、モデル201に基づいて、脅威データベース501から、モデル201に対応する脅威一覧202を抽出する。リスク分析部108は、脅威データベース501を用いてモデル201に対する潜在的な脅威を抽出する。リスク分析部108は、脅威と、その脅威に対応する脆弱性に関する情報とを脅威一覧202として出力する。脅威データベース501は、特定のシステムあるいは特定の機器に依存しない一般的な脅威を示している。図15の脅威データベース501では、番号2の脅威により、通信路において情報資産の改ざんの脅威が存在することが分かる。これを、図3の制御システムに適用することによって、表601の番号1に示した「HMIおよび機器コントローラ間の通信コマンドの改ざんによるフィールド機器の停止」という脅威が抽出される。
脆弱性分析部105の動作に関しては、実施の形態1で説明した通りである。表601の番号1に示した「HMIおよび機器コントローラ間の通信コマンドの改ざんによるフィールド機器の停止」という脅威を実際に発生させてしまう脆弱性として、図4のステートマシンの「T4」と「T5」の状態遷移が特定される。
図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を入れる。
***本実施の形態の効果の説明***
本実施の形態に係るセキュリティ設計装置100bは、入力されたモデルに対する潜在的な脅威を抽出する機能を有する。また、セキュリティ設計装置100bは、抽出された潜在的な脅威に対応する一般的な脆弱性の記述を、脆弱性テンプレートと検査プロパティとして具体化する。また、セキュリティ設計装置100bは、ソフトウェアの処理フローレベルのモデルを脆弱性テンプレートと対応付けて検査モデルに変換する。そして、セキュリティ設計装置100bは、検査モデルと検査プロパティの検証によって脆弱性の有無と脆弱性箇所を特定する。さらに、セキュリティ設計装置100bは、脅威に対する対策を抽出し、その対策を脆弱性箇所の特定結果と組み合わせて対策を入れる箇所を決定する。よって、本実施の形態に係るセキュリティ設計装置100bによれば、ソフトウェアの処理フローレベルで対策を反映したモデルを生成することができる。
実施の形態4.
本実施の形態では、主に、実施の形態3と異なる点について説明する。
なお、本実施の形態において、実施の形態1および2と同様の構成には同一の符号を付し、その説明を省略する。
実施の形態3は、入力されたモデルに対策を反映させて出力することを目的とする。本実施の形態では、セキュリティ設計および実装をさらに自動化させるため、モデルベース開発の枠組として統合する態様について説明する。
図17は、本実施の形態に係るセキュリティ設計装置100cの構成図である。
セキュリティ設計装置100cは、モデルベース開発の統合開発環境にセキュリティ設計が統合されている。セキュリティ設計装置100cは、利用者により利用されるモデルベース開発部190を備える。モデルベース開発部190は、モデルの生成に用いられるモデル化ツール部、対策反映部により対策が付与されたモデルを検証するモデル検証ツール部、モデルに基づいてソースコードを生成するコード生成ツール部を有する。
モデル化ツール部111では、ユーザがGUIといったインタフェースを用いてモデルを作成し、作成されたモデルはモデル201として出力される。
モデル201に対して、リスク分析部108、脆弱性分析部105、および対策反映部109による処理によって対策が反映される。
モデル検証ツール部112では、モデルベース開発の統合開発環境が備えている検証機能によって、ユーザが定義したモデルに対する要件が検証される。
コード生成ツール部113では、モデルベース開発の統合開発環境が備えているコード生成機能によって、モデルからソースコード212が生成される。
出力部107は、ソースコード212をセキュリティ設計装置100cの外部に出力する。
本実施の形態では、モデルは外部からの入力ではなく、モデルベース開発のプロセスの1つとして、モデルベース開発部の統合開発環境で作成される。また、モデルに対する対策が反映された後は、モデルベース開発のプロセスとしてモデルの検証およびモデルからのソースコード生成が行われる。
本実施の形態に係るセキュリティ設計装置100cは、モデルベース開発の統合開発環境にセキュリティ設計を統合している。このため、ユーザが通常通りのモデルベース開発フローによってモデルを設計するだけで、そのモデルに対する潜在的な脅威が自動的に抽出される。さらに、その脅威に対するソフトウェアの処理フローレベルでの対策が自動的にモデルに反映され、対策が反映されたソースコードが生成される。
以上の実施の形態1から4では、セキュリティ設計装置の各部を独立した機能ブロックとして説明した。しかし、セキュリティ設計装置の構成は、上述した実施の形態のような構成でなくてもよい。セキュリティ設計装置の機能ブロックは、上述した実施の形態で説明した機能を実現することができれば、どのような構成でもよい。
以上の実施の形態1から4のうち、複数の部分を組み合わせて実施しても構わない。あるいは、これらの実施の形態のうち、1つの部分を実施しても構わない。その他、これらの実施の形態を、全体としてあるいは部分的に、どのように組み合わせて実施しても構わない。
なお、上述した実施の形態は、本質的に好ましい例示であって、本発明の範囲、本発明の適用物の範囲、および本発明の用途の範囲を制限することを意図するものではない。上述した実施の形態は、必要に応じて種々の変更が可能である。
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 セキュリティ設計処理。

Claims (10)

  1. ソフトウェアの処理に対する攻撃による脅威と、前記脅威に対して脆弱性を有する処理の記述である脆弱性記述との一覧を脅威一覧として取得し、前記ソフトウェアの処理の処理フローから、前記脅威一覧に含まれる脆弱性記述に対応する脆弱性箇所を判定し、前記脆弱性箇所の一覧を脆弱性一覧として生成する脆弱性分析部を備え、
    前記脆弱性分析部は、
    前記脅威一覧に含まれる脆弱性記述を用いて脆弱性テンプレートを取得するとともに、前記処理フローを表すモデルを取得し、前記モデルを前記脆弱性テンプレートに当てはめた検査モデルを生成する検査モデル生成部と、
    前記脆弱性テンプレートを用いて前記脆弱性記述の有無を判定する検査プロパティを取得し、前記検査モデルと前記検査プロパティとを用いて、前記モデルに前記脆弱性箇所が存在するかを検証するモデル検査部と、
    前記モデルに前記脆弱性箇所が存在すると検証されると、前記処理フローにおける前記脆弱性箇所を前記脆弱性一覧に追加する脆弱性判定部と、
    前記脅威一覧に含まれる脆弱性記述に基づいて、前記脆弱性テンプレートを生成する脆弱性テンプレート生成部と、
    前記脆弱性テンプレートを用いて前記検査プロパティを生成する検査プロパティ生成部と
    を備えたセキュリティ設計装置。
  2. ソフトウェアの処理に対する攻撃による脅威と、前記脅威に対して脆弱性を有する処理の記述である脆弱性記述との一覧を脅威一覧として取得し、前記ソフトウェアの処理の処理フローから、前記脅威一覧に含まれる脆弱性記述に対応する脆弱性箇所を判定し、前記脆弱性箇所の一覧を脆弱性一覧として生成する脆弱性分析部を備え、
    前記脆弱性分析部は、
    前記脅威一覧に含まれる脆弱性記述を用いて脆弱性テンプレートを取得するとともに、前記処理フローを表すモデルを取得し、前記モデルを前記脆弱性テンプレートに当てはめた検査モデルを生成する検査モデル生成部と、
    前記脆弱性テンプレートを用いて前記脆弱性記述の有無を判定する検査プロパティを取得し、前記検査モデルと前記検査プロパティとを用いて、前記モデルに前記脆弱性箇所が存在するかを検証するモデル検査部と、
    前記モデルに前記脆弱性箇所が存在すると検証されると、前記処理フローにおける前記脆弱性箇所を前記脆弱性一覧に追加する脆弱性判定部と、
    脅威と前記脅威に対応する脆弱性記述との一覧を記憶した脅威データベースと、
    脅威と前記脅威に対する対策との一覧を記憶した対策データベースと、
    前記モデルに基づいて、前記脅威データベースから、前記モデルに対応する前記脅威一覧を抽出するリスク分析部と、
    前記脆弱性分析部から前記脆弱性箇所と前記脆弱性箇所に対応する脅威とを含む前記脆弱性一覧を取得し、前記対策データベースから、前記脆弱性一覧に含まれる前記脅威に対応する対策を抽出し、前記モデルにおける前記脅威に対応する前記脆弱性箇所に前記対策を付与する対策反映部と
    を備えたセキュリティ設計装置。
  3. 前記セキュリティ設計装置は、
    利用者により利用されるモデルベース開発部であって、
    前記モデルの生成に用いられるモデル化ツール部と、前記対策反映部により前記対策が付与された前記モデルを検証するモデル検証ツール部と、前記モデルに基づいてソースコードを生成するコード生成ツール部とを有するモデルベース開発部を備えた請求項2に記載のセキュリティ設計装置。
  4. 前記脅威一覧に含まれる脆弱性は、CWE(Common Weakness Enumeration)から取得され、
    前記モデルは、ステートマシンを含む請求項1から請求項3のいずれか1項に記載のセキュリティ設計装置。
  5. 前記セキュリティ設計装置は、
    前記脆弱性テンプレートと前記検査プロパティとを記憶する脆弱性データベースと、
    前記脅威一覧に含まれる前記脆弱性記述に基づいて、前記脆弱性テンプレートと前記検査プロパティとを前記脆弱性データベースから抽出するデータベース検索部と
    を備えた請求項1から請求項4のいずれか1項に記載のセキュリティ設計装置。
  6. 前記セキュリティ設計装置は、
    前記脅威一覧を取得する脅威一覧取得部と、
    前記モデルを取得するモデル取得部と
    を備えた請求項1から請求項5のいずれか1項に記載のセキュリティ設計装置。
  7. 脆弱性分析部が、ソフトウェアの処理に対する攻撃による脅威と、前記脅威に対して脆弱性を有する処理の記述である脆弱性記述との一覧を脅威一覧として取得し、前記ソフトウェアの処理の処理フローから、前記脅威一覧に含まれる脆弱性記述に対応する脆弱性箇所を判定し、前記脆弱性箇所の一覧を脆弱性一覧として生成し、
    検査モデル生成部が、前記脅威一覧に含まれる脆弱性記述を用いて脆弱性テンプレートを取得するとともに、前記処理フローを表すモデルを取得し、前記モデルを前記脆弱性テンプレートに当てはめた検査モデルを生成し、
    モデル検査部が、前記脆弱性テンプレートを用いて前記脆弱性記述の有無を判定する検査プロパティを取得し、前記検査モデルと前記検査プロパティとを用いて、前記モデルに前記脆弱性箇所が存在するかを検証し、
    脆弱性判定部が、前記モデルに前記脆弱性箇所が存在すると検証されると、前記処理フローにおける前記脆弱性箇所を前記脆弱性一覧に追加し、
    脆弱性テンプレート生成部が、前記脅威一覧に含まれる脆弱性記述に基づいて、前記脆弱性テンプレートを生成し、
    検査プロパティ生成部が、前記脆弱性テンプレートを用いて前記検査プロパティを生成するセキュリティ設計方法。
  8. 脆弱性分析部が、ソフトウェアの処理に対する攻撃による脅威と、前記脅威に対して脆弱性を有する処理の記述である脆弱性記述との一覧を脅威一覧として取得し、前記ソフトウェアの処理の処理フローから、前記脅威一覧に含まれる脆弱性記述に対応する脆弱性箇所を判定し、前記脆弱性箇所の一覧を脆弱性一覧として生成し、
    検査モデル生成部が、前記脅威一覧に含まれる脆弱性記述を用いて脆弱性テンプレートを取得するとともに、前記処理フローを表すモデルを取得し、前記モデルを前記脆弱性テンプレートに当てはめた検査モデルを生成し、
    モデル検査部が、前記脆弱性テンプレートを用いて前記脆弱性記述の有無を判定する検査プロパティを取得し、前記検査モデルと前記検査プロパティとを用いて、前記モデルに前記脆弱性箇所が存在するかを検証し、
    脆弱性判定部が、前記モデルに前記脆弱性箇所が存在すると検証されると、前記処理フローにおける前記脆弱性箇所を前記脆弱性一覧に追加し、
    脅威データベースが、脅威と前記脅威に対応する脆弱性記述との一覧を記憶し、
    対策データベースが、脅威と前記脅威に対する対策との一覧を記憶し、
    リスク分析部が、前記モデルに基づいて、前記脅威データベースから、前記モデルに対応する前記脅威一覧を抽出し、
    対策反映部が、前記脆弱性分析部から前記脆弱性箇所と前記脆弱性箇所に対応する脅威とを含む前記脆弱性一覧を取得し、前記対策データベースから、前記脆弱性一覧に含まれる前記脅威に対応する対策を抽出し、前記モデルにおける前記脅威に対応する前記脆弱性箇所に前記対策を付与するセキュリティ設計方法。
  9. ソフトウェアの処理に対する攻撃による脅威と、前記脅威に対して脆弱性を有する処理の記述である脆弱性記述との一覧を脅威一覧として取得し、前記ソフトウェアの処理の処理フローから、前記脅威一覧に含まれる脆弱性記述に対応する脆弱性箇所を判定し、前記脆弱性箇所の一覧を脆弱性一覧として生成する脆弱性分析処理と、
    前記脅威一覧に含まれる脆弱性記述を用いて脆弱性テンプレートを取得するとともに、前記処理フローを表すモデルを取得し、前記モデルを前記脆弱性テンプレートに当てはめた検査モデルを生成する検査モデル生成処理と、
    前記脆弱性テンプレートを用いて前記脆弱性記述の有無を判定する検査プロパティを取得し、前記検査モデルと前記検査プロパティとを用いて、前記モデルに前記脆弱性箇所が存在するかを検証するモデル検査処理と、
    前記モデルに前記脆弱性箇所が存在すると検証されると、前記処理フローにおける前記脆弱性箇所を前記脆弱性一覧に追加する脆弱性判定処理と、
    前記脅威一覧に含まれる脆弱性記述に基づいて、前記脆弱性テンプレートを生成する脆弱性テンプレート生成処理と、
    前記脆弱性テンプレートを用いて前記検査プロパティを生成する検査プロパティ生成処理と
    をコンピュータに実行させるセキュリティ設計プログラム。
  10. 脅威と前記脅威に対応する脆弱性記述との一覧を記憶する脅威データベースと、脅威と前記脅威に対する対策との一覧を記憶する対策データベースとを備えたセキュリティ設計装置のセキュリティ設計プログラムにおいて、
    ソフトウェアの処理に対する攻撃による脅威と、前記脅威に対して脆弱性を有する処理の記述である脆弱性記述との一覧を脅威一覧として取得し、前記ソフトウェアの処理の処理フローから、前記脅威一覧に含まれる脆弱性記述に対応する脆弱性箇所を判定し、前記脆弱性箇所の一覧を脆弱性一覧として生成する脆弱性分析処理と、
    前記脅威一覧に含まれる脆弱性記述を用いて脆弱性テンプレートを取得するとともに、前記処理フローを表すモデルを取得し、前記モデルを前記脆弱性テンプレートに当てはめた検査モデルを生成する検査モデル生成処理と、
    前記脆弱性テンプレートを用いて前記脆弱性記述の有無を判定する検査プロパティを取得し、前記検査モデルと前記検査プロパティとを用いて、前記モデルに前記脆弱性箇所が存在するかを検証するモデル検査処理と、
    前記モデルに前記脆弱性箇所が存在すると検証されると、前記処理フローにおける前記脆弱性箇所を前記脆弱性一覧に追加する脆弱性判定処理と、
    前記モデルに基づいて、前記脅威データベースから、前記モデルに対応する前記脅威一覧を抽出するリスク分析処理と、
    前記脆弱性分析処理から前記脆弱性箇所と前記脆弱性箇所に対応する脅威とを含む前記脆弱性一覧を取得し、前記対策データベースから、前記脆弱性一覧に含まれる前記脅威に対応する対策を抽出し、前記モデルにおける前記脅威に対応する前記脆弱性箇所に前記対策を付与する対策反映処理と
    をコンピュータに実行させるセキュリティ設計プログラム。
JP2019541481A 2018-01-19 2018-01-19 セキュリティ設計装置、セキュリティ設計方法およびセキュリティ設計プログラム Active JP6608569B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/001669 WO2019142335A1 (ja) 2018-01-19 2018-01-19 セキュリティ設計装置、セキュリティ設計方法およびセキュリティ設計プログラム

Publications (2)

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

Family

ID=67301390

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019541481A Active JP6608569B1 (ja) 2018-01-19 2018-01-19 セキュリティ設計装置、セキュリティ設計方法およびセキュリティ設計プログラム

Country Status (3)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111881451A (zh) * 2020-07-16 2020-11-03 哈尔滨工业大学(威海) 一种工业控制系统的漏洞关联挖掘方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7552864B2 (ja) 2021-03-19 2024-09-18 日本電気株式会社 分析条件生成装置、分析システム、分析条件生成プログラム、分析プログラム、分析条件生成方法、及び分析方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008262311A (ja) * 2007-04-11 2008-10-30 Fujitsu Ltd セキュリティ検査用モデル生成プログラム,装置,およびセキュリティ検査用モデル検査装置
JP2010507165A (ja) * 2006-10-19 2010-03-04 チェックマークス リミテッド ソースコード内のセキュリティ脆弱性の検出
JP2015219665A (ja) * 2014-05-15 2015-12-07 ゲヒルン株式会社 脆弱性可視化サーバ、脆弱性可視化方法、脆弱性可視化サーバ用プログラム
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 (ja) * 2006-10-19 2010-03-04 チェックマークス リミテッド ソースコード内のセキュリティ脆弱性の検出
JP2008262311A (ja) * 2007-04-11 2008-10-30 Fujitsu Ltd セキュリティ検査用モデル生成プログラム,装置,およびセキュリティ検査用モデル検査装置
JP2015219665A (ja) * 2014-05-15 2015-12-07 ゲヒルン株式会社 脆弱性可視化サーバ、脆弱性可視化方法、脆弱性可視化サーバ用プログラム
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 (zh) * 2020-07-16 2020-11-03 哈尔滨工业大学(威海) 一种工业控制系统的漏洞关联挖掘方法

Also Published As

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

Similar Documents

Publication Publication Date Title
US11748487B2 (en) Detecting a potential security leak by a microservice
US7788730B2 (en) Secure bytecode instrumentation facility
JP5940160B2 (ja) アプリケーション・コード内のダウングレーダ・コードを評価するための方法、コンピュータ・プログラム製品、および装置(情報フロー・ダウングレーダにおける欠陥および非互換性問題の自動検出)
US7917762B2 (en) Secure execution environment by preventing execution of unauthorized boot loaders
US8635602B2 (en) Verification of information-flow downgraders
US8667584B2 (en) Formal analysis of the quality and conformance of information flow downgraders
US20210157909A1 (en) Sample data generation apparatus, sample data generation method, and computer readable medium
WO2022180702A1 (ja) 解析機能付与装置、解析機能付与プログラム及び解析機能付与方法
US20190361788A1 (en) Interactive analysis of a security specification
JP6608569B1 (ja) セキュリティ設計装置、セキュリティ設計方法およびセキュリティ設計プログラム
JP7008879B2 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
JP6632777B2 (ja) セキュリティ設計装置、セキュリティ設計方法およびセキュリティ設計プログラム
CN115997210A (zh) 攻击手段评价装置、攻击手段评价方法以及攻击手段评价程序
JP6599053B1 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
JP6584737B1 (ja) 脅威特定装置、脅威特定方法及び脅威特定プログラム
CN111984944B (zh) 一种源代码处理方法、相关装置及存储介质
US20250355987A1 (en) Event log-based attestation for distributed edge devices
US8555226B1 (en) Automatic verification of dependency
JP2010244139A (ja) 対策網羅性検査装置
CN119155115A (zh) 一种网站安全漏洞检测方法及系统
WO2024154290A1 (ja) プログラム解析装置、プログラム解析方法、及び非一時的なコンピュータ可読媒体
CN103842963B (zh) 评估应用代码中的降级器代码的方法和设备

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

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250