JP6608569B1 - セキュリティ設計装置、セキュリティ設計方法およびセキュリティ設計プログラム - Google Patents
セキュリティ設計装置、セキュリティ設計方法およびセキュリティ設計プログラム Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying 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
Description
特許文献1の技術では、まず、開発対象の設計書から生成された制御モデルに対して、セキュリティの脅威を保持する脅威データベースの中から該当する脅威を自動的に抽出する。そして、脅威に対する対策を保持する対策データベースから該当する対策が自動的に抽出される。そして、その対策が制御モデルに自動的に反映される。
また、特許文献2の技術では、まず、ユーザにより入力された対象システムのシステム構成、コンポーネント連携、および制約条件といった情報に基づき、脅威および対策データベースを用いて、対象システムに対するセキュリティ脅威を自動的に抽出する。そして、その脅威への対策を自動的に抽出し、出力する。
ソフトウェアの処理に対する攻撃による脅威と、前記脅威に対して脆弱性を有する処理の記述である脆弱性記述との一覧を脅威一覧として取得し、前記ソフトウェアの処理の処理フローから、前記脅威一覧に含まれる脆弱性記述に対応する脆弱性箇所を判定し、前記脆弱性箇所の一覧を脆弱性一覧として生成する脆弱性分析部を備えた。
***構成の説明***
図1を用いて、本実施の形態に係るセキュリティ設計装置100の構成を説明する。
セキュリティ設計装置100は、コンピュータである。セキュリティ設計装置100は、プロセッサ910を備えるとともに、記憶装置920、入力インタフェース930、および出力インタフェース940といった他のハードウェアを備える。記憶装置920は、メモリと補助記憶装置を備える。プロセッサ910は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
脆弱性分析部105の機能は、ソフトウェアにより実現される。
モデル取得部101および脅威一覧取得部103の機能は、入力インタフェース930に備えられる。
出力部107の機能は、出力インタフェース940に備えられる。
プロセッサ910は、演算処理を行うIC(Integrated Circuit)である。プロセッサ910の具体例は、CPU、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
補助記憶装置は、データを保管する記憶装置である。補助記憶装置の具体例は、HDDである。また、補助記憶装置は、SD(登録商標)メモリカード、CF、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVDといった可搬記憶媒体であってもよい。なお、HDDは、Hard Disk Driveの略語である。SD(登録商標)は、Secure Digitalの略語である。CFは、CompactFlash(登録商標)の略語である。DVDは、Digital Versatile Diskの略語である。
出力インタフェース940は、ディスプレイといった出力機器のケーブルが接続されるポートである。出力インタフェース940は、表示インタフェースともいう。出力インタフェース940は、具体的には、USB端子またはHDMI(登録商標)(High Definition Multimedia Interface)端子である。ディスプレイは、具体的には、LCD(Liquid Crystal Display)である。
脅威一覧取得部103は、セキュリティ設計装置100への入力である脅威一覧202を取得する。図1では入力されたデータをモデル201および脅威一覧202として示している。
脆弱性分析部105は、モデル201および脅威一覧202を入力とし、脆弱性一覧211を出力する。
出力部107は、脆弱性一覧211をセキュリティ設計装置100の外部に出力する。具体的には、出力部107は、脆弱性一覧211をディスプレイに表示する。
脆弱性分析部105は、モデル201と脅威一覧202を入力とする。脆弱性分析部105は、脅威一覧202の各脅威に対応する脆弱性の箇所をモデル201において特定さいた脆弱性一覧211を出力する。
脆弱性テンプレート生成部205は、入力された脅威一覧202の各脅威に対応する脆弱性を検証するためのモデルのテンプレートを脆弱性テンプレート206として生成する。
検査プロパティ生成部209は、入力された脅威一覧202の各脅威に対応する脆弱性を検証するためのプロパティを検査プロパティ210として生成する。
検査モデル生成部203は、入力されたモデル201の粒度を脆弱性テンプレート206に合わせて変換し、検査モデル204として出力する。
モデル検査部207は検査モデル204と検査プロパティ210を用いてモデル201に脆弱性箇所があるかを検証する。
脆弱性判定部208は、モデル検査部207が出力する検証結果に基づき、モデル201における脆弱性の有無とその箇所を特定し、脆弱性一覧211として出力する。
脆弱性分析部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は、レスポンスあるいはセンサ情報を受信する。
通信ソフトウェア403は、HMI401から接続405を介して送信されたコマンドを受信する。そして、通信ソフトウェア403は、コマンドに対応するレスポンスあるいはセンサ情報をHMI401に送信する。通信ソフトウェア403が受信したコマンドに従って、機器制御ソフトウェア407は、接続406を介してフィールド機器404にONあるいはOFFいずれかのコマンドを送信する。また、機器制御ソフトウェア407は、フィールド機器404から送信されるセンサ情報を受信する。
以下の本実施の形態の説明の具体例として、通信ソフトウェア403をセキュリティの検査対象とする。
501は開始状態を表す。503は終了状態を表す。502と511は状態を表す。505と508は条件分岐を表す。T0、T1、T2、T3、T4、T5、およびT6は各状態遷移を識別するラベルである。504のように、状態遷移に付与された角括弧ありの文字列は、その状態遷移が発生する条件を表す。506のように、状態遷移に付与された角括弧無しの文字列は、その状態遷移に伴い実行される処理を表す。509および510のように、状態遷移が発生する条件とその状態遷移に伴い実行される処理の両方を記す場合もある。
図4のステートマシン500において、フィールド機器のONあるいはOFFは制御システムの動作に影響する処理である。これらの処理を不正に実行することは、システムに対するセキュリティの脅威である。そこで、「HMIおよび機器コントローラ間の通信コマンドの改ざんによるフィールド機器の停止」という脅威が、制御システムにおける潜在的な脅威を網羅的に洗い出した結果の一例となる。
脅威一覧202は、ソフトウェアの処理に対する攻撃による脅威161と、脅威161に対して脆弱性を有する処理の記述である脆弱性記述162との一覧である。具体的には、機器である制御システムの処理における潜在的な脅威161を網羅的に洗い出し、脅威161に対する脆弱性を対応付けた情報である。脅威161に対する脆弱性として、脆弱性記述162が対応付けられている。脅威一覧202は、表601と表602から構成される。
脅威一覧202の表601には、1行ごとに付される番号と、脅威と、対応する脆弱性とが設定される。対応する脆弱性には、脅威一覧202に記された各脅威に対して、その脅威に対応する脆弱性の情報が設定される。脅威一覧202に含まれる脆弱性は、例えば、CWE(Common Weakness Enumeration)から取得される。CWEは対象に依存しない一般的な情報である。このため、各脅威に対応するCWEを容易に決定することができる。
脆弱性分析部105による脆弱性の特定の動作について、表601の番号1の脅威を例として説明する。
脆弱性分析部105は、表602のCWEの情報に基づき、番号1の脅威に対応する脆弱性を検査するための検査モデル204と検査プロパティ210を作成する。そして、脆弱性分析部105は、検査モデル204と検査プロパティ210を用いて番号1の脅威に対応する脆弱性の特定を行う。
そのため、まず、脆弱性テンプレート生成部205が抽象的なCWEの記述を具体化した脆弱性テンプレート206を生成する。また、検査プロパティ生成部209が脆弱性テンプレート206に対応する検査プロパティ210を生成する。次に、検査モデル生成部203がモデル201を脆弱性テンプレート206に対応付けて変換し、検査モデル204を生成する。
番号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は本実施の形態に係るセキュリティ設計装置100の動作をフローチャートで表したものである。
セキュリティ設計装置100では、脆弱性分析部105は、ソフトウェアの処理の処理フローから、脅威一覧202に含まれる脆弱性記述に対応する脆弱性箇所を判定する。そして、脆弱性分析部105は、脆弱性箇所の一覧を脆弱性一覧211として生成する。
ステップ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」という状態遷移の連なりによって、「脆弱性」のラベルが付けられた状態遷移が発生することを検証する。
ステップ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に追加する。
ステップS113において、脆弱性判定部208は、出力インタフェース940を介して、脆弱性一覧211を出力する。
ステップS114において、処理を終了する。
図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以外の脆弱性情報を使った場合でも、本実施の形態と同様の動作を規定することは容易である。
セキュリティ設計装置100は、通信装置を備えていてもよい。通信装置は、ネットワークを介して他の装置と通信する。通信装置はネットワークインタフェースでもよい。通信装置は、レシーバとトランスミッタを有する。通信装置は、無線で、LAN、インターネット、あるいは電話回線といった通信網に接続している。通信装置は、具体的には、通信チップまたはNIC(Network Interface Card)である。
モデル取得部および脅威一覧取得部が行う入力処理を、入力インタフェースを介するのではなく、補助記憶装置に保存されたデータの読み込みにより行ってもよい。また、出力部が行う出力処理を、出力インタフェースを介するのではなく、補助記憶装置へのデータ書き込みにより行ってもよい。データ入出力に関しては、通信装置あるいはネットワークインタフェースを用いてもよい。
本実施の形態では、脆弱性分析部105の機能がソフトウェアで実現される。変形例として、脆弱性分析部105の機能がハードウェアで実現されてもよい。
セキュリティ設計装置100は、電子回路909、記憶装置920、入力インタフェース930、および出力インタフェース940を備える。
電子回路909は、具体的には、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、ASIC、または、FPGAである。GAは、Gate Arrayの略語である。ASICは、Application Specific Integrated Circuitの略語である。FPGAは、Field−Programmable Gate Arrayの略語である。
脆弱性分析部105の機能は、1つの電子回路で実現されてもよいし、複数の電子回路に分散して実現されてもよい。
別の変形例として、脆弱性分析部105の一部の機能が電子回路で実現され、残りの機能がソフトウェアで実現されてもよい。
本実施の形態に係るセキュリティ設計装置100によれば、機器のソフトウェア開発においてソフトウェアの処理レベルで脆弱性箇所を特定し、処理レベルで対策を入れることができる。本実施の形態に係るセキュリティ設計装置100では、対象システムおよび対象機器に対する潜在的な脅威に対応する一般的な脆弱性の記述を、脆弱性テンプレートと検査プロパティとして具体化する。そして、ソフトウェアの処理フローレベルのモデルを脆弱性テンプレートと対応付けて検査モデルに変換する。さらに、検査モデルと検査プロパティの検証によって脆弱性の有無とその箇所を特定する。よって、本実施の形態に係るセキュリティ設計装置100によれば、ソフトウェアの処理フローレベルで脆弱性の有無とその箇所を特定することができる。
本実施の形態では、主に、実施の形態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から抽出された脆弱性テンプレートと検査プロパティを用いてモデル検査処理を実行する。
本実施の形態に係るセキュリティ設計装置によれば、脆弱性テンプレートと検査プロパティをあらかじめ作成して脆弱性データベースに保持しているため、脆弱性テンプレートと検査プロパティの作成に要する時間が削減される。
本実施の形態では、主に、実施の形態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は、脅威と脅威に対する対策との一覧を記憶する。
脅威データベース501には、各行に付された番号と、脅威と、発生個所と、脅威に対応する脆弱性とが設定されている。
リスク分析部108は、モデル201に基づいて、脅威データベース501から、モデル201に対応する脅威一覧202を抽出する。リスク分析部108は、脅威データベース501を用いてモデル201に対する潜在的な脅威を抽出する。リスク分析部108は、脅威と、その脅威に対応する脆弱性に関する情報とを脅威一覧202として出力する。脅威データベース501は、特定のシステムあるいは特定の機器に依存しない一般的な脅威を示している。図15の脅威データベース501では、番号2の脅威により、通信路において情報資産の改ざんの脅威が存在することが分かる。これを、図3の制御システムに適用することによって、表601の番号1に示した「HMIおよび機器コントローラ間の通信コマンドの改ざんによるフィールド機器の停止」という脅威が抽出される。
対策データベース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によれば、ソフトウェアの処理フローレベルで対策を反映したモデルを生成することができる。
本実施の形態では、主に、実施の形態3と異なる点について説明する。
なお、本実施の形態において、実施の形態1および2と同様の構成には同一の符号を付し、その説明を省略する。
セキュリティ設計装置100cは、モデルベース開発の統合開発環境にセキュリティ設計が統合されている。セキュリティ設計装置100cは、利用者により利用されるモデルベース開発部190を備える。モデルベース開発部190は、モデルの生成に用いられるモデル化ツール部、対策反映部により対策が付与されたモデルを検証するモデル検証ツール部、モデルに基づいてソースコードを生成するコード生成ツール部を有する。
モデル化ツール部111では、ユーザがGUIといったインタフェースを用いてモデルを作成し、作成されたモデルはモデル201として出力される。
モデル201に対して、リスク分析部108、脆弱性分析部105、および対策反映部109による処理によって対策が反映される。
モデル検証ツール部112では、モデルベース開発の統合開発環境が備えている検証機能によって、ユーザが定義したモデルに対する要件が検証される。
コード生成ツール部113では、モデルベース開発の統合開発環境が備えているコード生成機能によって、モデルからソースコード212が生成される。
出力部107は、ソースコード212をセキュリティ設計装置100cの外部に出力する。
なお、上述した実施の形態は、本質的に好ましい例示であって、本発明の範囲、本発明の適用物の範囲、および本発明の用途の範囲を制限することを意図するものではない。上述した実施の形態は、必要に応じて種々の変更が可能である。
Claims (10)
- ソフトウェアの処理に対する攻撃による脅威と、前記脅威に対して脆弱性を有する処理の記述である脆弱性記述との一覧を脅威一覧として取得し、前記ソフトウェアの処理の処理フローから、前記脅威一覧に含まれる脆弱性記述に対応する脆弱性箇所を判定し、前記脆弱性箇所の一覧を脆弱性一覧として生成する脆弱性分析部を備え、
前記脆弱性分析部は、
前記脅威一覧に含まれる脆弱性記述を用いて脆弱性テンプレートを取得するとともに、前記処理フローを表すモデルを取得し、前記モデルを前記脆弱性テンプレートに当てはめた検査モデルを生成する検査モデル生成部と、
前記脆弱性テンプレートを用いて前記脆弱性記述の有無を判定する検査プロパティを取得し、前記検査モデルと前記検査プロパティとを用いて、前記モデルに前記脆弱性箇所が存在するかを検証するモデル検査部と、
前記モデルに前記脆弱性箇所が存在すると検証されると、前記処理フローにおける前記脆弱性箇所を前記脆弱性一覧に追加する脆弱性判定部と、
前記脅威一覧に含まれる脆弱性記述に基づいて、前記脆弱性テンプレートを生成する脆弱性テンプレート生成部と、
前記脆弱性テンプレートを用いて前記検査プロパティを生成する検査プロパティ生成部と
を備えたセキュリティ設計装置。 - ソフトウェアの処理に対する攻撃による脅威と、前記脅威に対して脆弱性を有する処理の記述である脆弱性記述との一覧を脅威一覧として取得し、前記ソフトウェアの処理の処理フローから、前記脅威一覧に含まれる脆弱性記述に対応する脆弱性箇所を判定し、前記脆弱性箇所の一覧を脆弱性一覧として生成する脆弱性分析部を備え、
前記脆弱性分析部は、
前記脅威一覧に含まれる脆弱性記述を用いて脆弱性テンプレートを取得するとともに、前記処理フローを表すモデルを取得し、前記モデルを前記脆弱性テンプレートに当てはめた検査モデルを生成する検査モデル生成部と、
前記脆弱性テンプレートを用いて前記脆弱性記述の有無を判定する検査プロパティを取得し、前記検査モデルと前記検査プロパティとを用いて、前記モデルに前記脆弱性箇所が存在するかを検証するモデル検査部と、
前記モデルに前記脆弱性箇所が存在すると検証されると、前記処理フローにおける前記脆弱性箇所を前記脆弱性一覧に追加する脆弱性判定部と、
脅威と前記脅威に対応する脆弱性記述との一覧を記憶した脅威データベースと、
脅威と前記脅威に対する対策との一覧を記憶した対策データベースと、
前記モデルに基づいて、前記脅威データベースから、前記モデルに対応する前記脅威一覧を抽出するリスク分析部と、
前記脆弱性分析部から前記脆弱性箇所と前記脆弱性箇所に対応する脅威とを含む前記脆弱性一覧を取得し、前記対策データベースから、前記脆弱性一覧に含まれる前記脅威に対応する対策を抽出し、前記モデルにおける前記脅威に対応する前記脆弱性箇所に前記対策を付与する対策反映部と
を備えたセキュリティ設計装置。 - 前記セキュリティ設計装置は、
利用者により利用されるモデルベース開発部であって、
前記モデルの生成に用いられるモデル化ツール部と、前記対策反映部により前記対策が付与された前記モデルを検証するモデル検証ツール部と、前記モデルに基づいてソースコードを生成するコード生成ツール部とを有するモデルベース開発部を備えた請求項2に記載のセキュリティ設計装置。 - 前記脅威一覧に含まれる脆弱性は、CWE(Common Weakness Enumeration)から取得され、
前記モデルは、ステートマシンを含む請求項1から請求項3のいずれか1項に記載のセキュリティ設計装置。 - 前記セキュリティ設計装置は、
前記脆弱性テンプレートと前記検査プロパティとを記憶する脆弱性データベースと、
前記脅威一覧に含まれる前記脆弱性記述に基づいて、前記脆弱性テンプレートと前記検査プロパティとを前記脆弱性データベースから抽出するデータベース検索部と
を備えた請求項1から請求項4のいずれか1項に記載のセキュリティ設計装置。 - 前記セキュリティ設計装置は、
前記脅威一覧を取得する脅威一覧取得部と、
前記モデルを取得するモデル取得部と
を備えた請求項1から請求項5のいずれか1項に記載のセキュリティ設計装置。 - 脆弱性分析部が、ソフトウェアの処理に対する攻撃による脅威と、前記脅威に対して脆弱性を有する処理の記述である脆弱性記述との一覧を脅威一覧として取得し、前記ソフトウェアの処理の処理フローから、前記脅威一覧に含まれる脆弱性記述に対応する脆弱性箇所を判定し、前記脆弱性箇所の一覧を脆弱性一覧として生成し、
検査モデル生成部が、前記脅威一覧に含まれる脆弱性記述を用いて脆弱性テンプレートを取得するとともに、前記処理フローを表すモデルを取得し、前記モデルを前記脆弱性テンプレートに当てはめた検査モデルを生成し、
モデル検査部が、前記脆弱性テンプレートを用いて前記脆弱性記述の有無を判定する検査プロパティを取得し、前記検査モデルと前記検査プロパティとを用いて、前記モデルに前記脆弱性箇所が存在するかを検証し、
脆弱性判定部が、前記モデルに前記脆弱性箇所が存在すると検証されると、前記処理フローにおける前記脆弱性箇所を前記脆弱性一覧に追加し、
脆弱性テンプレート生成部が、前記脅威一覧に含まれる脆弱性記述に基づいて、前記脆弱性テンプレートを生成し、
検査プロパティ生成部が、前記脆弱性テンプレートを用いて前記検査プロパティを生成するセキュリティ設計方法。 - 脆弱性分析部が、ソフトウェアの処理に対する攻撃による脅威と、前記脅威に対して脆弱性を有する処理の記述である脆弱性記述との一覧を脅威一覧として取得し、前記ソフトウェアの処理の処理フローから、前記脅威一覧に含まれる脆弱性記述に対応する脆弱性箇所を判定し、前記脆弱性箇所の一覧を脆弱性一覧として生成し、
検査モデル生成部が、前記脅威一覧に含まれる脆弱性記述を用いて脆弱性テンプレートを取得するとともに、前記処理フローを表すモデルを取得し、前記モデルを前記脆弱性テンプレートに当てはめた検査モデルを生成し、
モデル検査部が、前記脆弱性テンプレートを用いて前記脆弱性記述の有無を判定する検査プロパティを取得し、前記検査モデルと前記検査プロパティとを用いて、前記モデルに前記脆弱性箇所が存在するかを検証し、
脆弱性判定部が、前記モデルに前記脆弱性箇所が存在すると検証されると、前記処理フローにおける前記脆弱性箇所を前記脆弱性一覧に追加し、
脅威データベースが、脅威と前記脅威に対応する脆弱性記述との一覧を記憶し、
対策データベースが、脅威と前記脅威に対する対策との一覧を記憶し、
リスク分析部が、前記モデルに基づいて、前記脅威データベースから、前記モデルに対応する前記脅威一覧を抽出し、
対策反映部が、前記脆弱性分析部から前記脆弱性箇所と前記脆弱性箇所に対応する脅威とを含む前記脆弱性一覧を取得し、前記対策データベースから、前記脆弱性一覧に含まれる前記脅威に対応する対策を抽出し、前記モデルにおける前記脅威に対応する前記脆弱性箇所に前記対策を付与するセキュリティ設計方法。 - ソフトウェアの処理に対する攻撃による脅威と、前記脅威に対して脆弱性を有する処理の記述である脆弱性記述との一覧を脅威一覧として取得し、前記ソフトウェアの処理の処理フローから、前記脅威一覧に含まれる脆弱性記述に対応する脆弱性箇所を判定し、前記脆弱性箇所の一覧を脆弱性一覧として生成する脆弱性分析処理と、
前記脅威一覧に含まれる脆弱性記述を用いて脆弱性テンプレートを取得するとともに、前記処理フローを表すモデルを取得し、前記モデルを前記脆弱性テンプレートに当てはめた検査モデルを生成する検査モデル生成処理と、
前記脆弱性テンプレートを用いて前記脆弱性記述の有無を判定する検査プロパティを取得し、前記検査モデルと前記検査プロパティとを用いて、前記モデルに前記脆弱性箇所が存在するかを検証するモデル検査処理と、
前記モデルに前記脆弱性箇所が存在すると検証されると、前記処理フローにおける前記脆弱性箇所を前記脆弱性一覧に追加する脆弱性判定処理と、
前記脅威一覧に含まれる脆弱性記述に基づいて、前記脆弱性テンプレートを生成する脆弱性テンプレート生成処理と、
前記脆弱性テンプレートを用いて前記検査プロパティを生成する検査プロパティ生成処理と
をコンピュータに実行させるセキュリティ設計プログラム。 - 脅威と前記脅威に対応する脆弱性記述との一覧を記憶する脅威データベースと、脅威と前記脅威に対する対策との一覧を記憶する対策データベースとを備えたセキュリティ設計装置のセキュリティ設計プログラムにおいて、
ソフトウェアの処理に対する攻撃による脅威と、前記脅威に対して脆弱性を有する処理の記述である脆弱性記述との一覧を脅威一覧として取得し、前記ソフトウェアの処理の処理フローから、前記脅威一覧に含まれる脆弱性記述に対応する脆弱性箇所を判定し、前記脆弱性箇所の一覧を脆弱性一覧として生成する脆弱性分析処理と、
前記脅威一覧に含まれる脆弱性記述を用いて脆弱性テンプレートを取得するとともに、前記処理フローを表すモデルを取得し、前記モデルを前記脆弱性テンプレートに当てはめた検査モデルを生成する検査モデル生成処理と、
前記脆弱性テンプレートを用いて前記脆弱性記述の有無を判定する検査プロパティを取得し、前記検査モデルと前記検査プロパティとを用いて、前記モデルに前記脆弱性箇所が存在するかを検証するモデル検査処理と、
前記モデルに前記脆弱性箇所が存在すると検証されると、前記処理フローにおける前記脆弱性箇所を前記脆弱性一覧に追加する脆弱性判定処理と、
前記モデルに基づいて、前記脅威データベースから、前記モデルに対応する前記脅威一覧を抽出するリスク分析処理と、
前記脆弱性分析処理から前記脆弱性箇所と前記脆弱性箇所に対応する脅威とを含む前記脆弱性一覧を取得し、前記対策データベースから、前記脆弱性一覧に含まれる前記脅威に対応する対策を抽出し、前記モデルにおける前記脅威に対応する前記脆弱性箇所に前記対策を付与する対策反映処理と
をコンピュータに実行させるセキュリティ設計プログラム。
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)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111881451A (zh) * | 2020-07-16 | 2020-11-03 | 哈尔滨工业大学(威海) | 一种工业控制系统的漏洞关联挖掘方法 |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP7552864B2 (ja) | 2021-03-19 | 2024-09-18 | 日本電気株式会社 | 分析条件生成装置、分析システム、分析条件生成プログラム、分析プログラム、分析条件生成方法、及び分析方法 |
Citations (4)
| 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 |
-
2018
- 2018-01-19 JP JP2019541481A patent/JP6608569B1/ja active Active
- 2018-01-19 WO PCT/JP2018/001669 patent/WO2019142335A1/ja not_active Ceased
- 2018-04-27 TW TW107114486A patent/TW201933164A/zh unknown
Patent Citations (4)
| 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)
| 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 |