JPWO2020090077A1 - 情報処理装置、情報処理方法及び情報処理プログラム - Google Patents

情報処理装置、情報処理方法及び情報処理プログラム Download PDF

Info

Publication number
JPWO2020090077A1
JPWO2020090077A1 JP2020554703A JP2020554703A JPWO2020090077A1 JP WO2020090077 A1 JPWO2020090077 A1 JP WO2020090077A1 JP 2020554703 A JP2020554703 A JP 2020554703A JP 2020554703 A JP2020554703 A JP 2020554703A JP WO2020090077 A1 JPWO2020090077 A1 JP WO2020090077A1
Authority
JP
Japan
Prior art keywords
tree
attack
invasion
path
evaluation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020554703A
Other languages
English (en)
Other versions
JP6847326B2 (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
Publication of JPWO2020090077A1 publication Critical patent/JPWO2020090077A1/ja
Application granted granted Critical
Publication of JP6847326B2 publication Critical patent/JP6847326B2/ja
Expired - Fee Related 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • 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
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

評価ツリー生成部(101)が、述語論理を用いた推論に基づく、情報システムについてのアタックツリーを評価ツリーとして生成する。ゴールドツリー生成部(102)が、情報システムのネットワーク構成が示されるネットワーク構成情報と情報システムへの侵攻において想定される侵攻手順が示される侵攻手順情報とを用いて、情報システムへの侵攻経路が網羅され情報システムへの侵攻手順が反映されるゴールドツリーを生成する。ツリー比較部(103)は、評価ツリーとゴールドツリーとを比較する。

Description

本発明は、アタックツリーの評価に関する。
近年、機密情報又は個人情報の漏えい事件、ランサムウェアによる被害等により、情報資産を取り扱うエンタープライズにおけるセキュリティの重要性が増している。また、制御システムのネットワーク化に伴い、発電プラント、ガスプラント等の重要インフラストラクチャーへのサイバー攻撃が脅威となりつつある。これらサイバー攻撃は、国家の安全保障を揺るがす重大な懸念事項となっている。重要インフラストラクチャーに対する攻撃の代表事例としてイランの原子力発電施設で起きたStuxnetが挙げられる。本事例では、USBメモリ経由で制御システムを操作する内部ネットワークのマシンがマルウェアに感染し、さらに遠心分離装置を制御するプログラムが改ざんされ、同装置の不正動作により濃縮ウランの製造に影響が出たと言われている。遠心分離装置などはインターネットに接続されていなかった(air−gapped)が、攻撃経路の1つとして、内部のスタッフが利用するUSBメモリがあったことが報告されている。このことから、あらかじめ様々な脅威を想定してセキュリティを向上させる必要があることがわかる。
セキュリティを向上させるためには、まず、攻撃目標に対する脅威とそのリスクを明確にするセキュリティ分析が重要である。セキュリティ分析では、攻撃目標に対する脅威をリストアップする。次に、発生頻度が高く重大な影響を持つ脅威に対して高いリスク値を割り当てる。そして、高いリスク値が割り当てられた脅威に優先的に適切な対策を実施していく。
脅威をリストアップする際に、リストアップ漏れがあっては意味が無い。そのため、アタックツリーなどのツールを用いて、攻撃目標への侵攻手順を系統的に抽出することが行われる。
従来、アタックツリーの作成は人の手で行われていた。そのため作成されたアタックツリーの質は、作成者の創造力、経験、スキルに依存していた。作成時にミスが混入する可能性もあり、作成されたアタックツリーの網羅性については常に疑問視されていた。
そこで、Prologなどの述語論理の推論エンジンを利用して、攻撃目標に対する侵攻手順を、与えられた前提知識をもとに推論し、推論過程からアタックツリーを自動生成する技術が考えられている(例えば、非特許文献1及び非特許文献2)。以降、このようなアタックツリーを自動生成する技術をアタックツリー自動生成技術と呼ぶ。アタックツリー自動生成技術によれば、アタックツリーの生成過程において人手を介さないため、アタックツリーの網羅性は人の創造性及び経験に依存しない。本技術では、事前に用意した前提知識と推論ルールをもとに、与えられた攻撃目標が成功するかを推論する。全ての組合せを試し、成功した推論過程のみをもとにアタックツリーを生成する。アタックツリーの作成に人の手を介さないため、作成者の能力やミスによる影響を受けにくい。
しかし、アタックツリー自動生成技術においても、推論エンジンに与える知識や推論ルールは人手で用意する必要がある。このため、アタックツリー自動生成技術を用いて生成されたアタックツリーについても網羅性の根拠を強く主張することができない。
また、非特許文献3の技術では、形式証明を利用してアタックツリーを評価する。アタックツリーはあるモデル(Transition system model)の中で生成される。アタックツリーの網羅性及び健全性は当該モデルの中で保証される。しかし、当該モデルは人が作成するため、経験及び知識の差異によるモデルのばらつきが発生し得る。また、モデルの作成に人為的ミスが入る可能性が高い。そのため、モデルの中で保証された網羅性や健全性には疑問が残る。
Xinming Ou,Sudhakar Govindavajhala,Andrew W. Appel,MulVAL:A Logic−based Network Security Analyzer, Proceeding SSYM ’05 Proceedings of the 14th conference on USENIX Security Symposium−Volume 14 浅井健志、島邉遼佑、河内清人、サイバー攻撃対策の選定に向けたアタックツリーの自動生成、SCIS2018 暗号と情報セキュリティシンポジウム、1C1−1 Maxime Audinot, Sophie Pinchinat,Barbara Kordy, Is my attack tree correct? Extended version, CoRR abs/1706.08507 (2017)
このように、従来の技術では、生成されたアタックツリーの網羅性に疑問が残るという課題がある。
本発明は、このような課題を解決することを主な目的とする。具体的には、本発明は、アタックツリーの網羅性を高めることを主な目的とする。
本発明に係る情報処理装置は、
述語論理を用いた推論に基づく、情報システムについてのアタックツリーを第1のアタックツリーとして取得する第1のアタックツリー取得部と、
前記情報システムのネットワーク構成が示されるネットワーク構成情報と前記情報システムへの侵攻において想定される侵攻手順が示される侵攻手順情報とを用いて、前記情報システムへの侵攻経路が網羅され前記情報システムへの侵攻手順が反映されるアタックツリーを第2のアタックツリーとして生成する第2のアタックツリー生成部と、
前記第1のアタックツリーと前記第2のアタックツリーとを比較するツリー比較部とを有する。
本発明では、第1のアタックツリーを、情報システムへの侵攻経路が網羅され情報システムへの侵攻手順が反映される第2のアタックツリーと比較するため、第1のアタックツリーの網羅性を評価することができる。このため、評価結果を第1のアタックツリーの生成手順にフィードバックすることが可能になり、第1のアタックツリーの網羅性を高めることができる。
実施の形態1に係る網羅性評価装置のハードウェア構成例を示す図。 実施の形態1に係る網羅性評価装置の機能構成例を示す図。 実施の形態1に係る網羅性評価装置の動作例を示すフローチャート。 実施の形態1に係る攻撃知識の例を示す図。 実施の形態1に係るシステム知識の例を示す図。 実施の形態1に係る推論過程を表すツリーの例を示す図。 実施の形態1に係るアタックツリーの例を示す図。 実施の形態1に係るゴールドツリー生成部の内部構成例を示す図。 実施の形態1に係るゴールドツリー生成部の動作例を示すフローチャート。 実施の形態1に係る制御システムのネットワーク構成例を示す図。 実施の形態1に係る侵攻経路を網羅したツリーの例を示す図。 実施の形態1に係る初期侵攻テンプレートの例を示す図。 実施の形態1に係る初期侵攻テンプレートの例を示す図。 実施の形態1に係る侵攻手順テンプレートの例を示す図。 実施の形態1に係る侵攻手順テンプレートの例を示す図。 実施の形態1に係る初期侵攻テンプレート及び侵攻手順テンプレートの適用後のツリーの例を示す図。 実施の形態1に係る初期侵攻テンプレート及び侵攻手順テンプレートの適用後のツリーの例を示す図。 実施の形態1に係る初期侵攻テンプレート及び侵攻手順テンプレートの適用後のツリーの例を示す図。 実施の形態1に係るツリー比較部の内部構成例を示す図。 実施の形態1に係るツリー比較部の動作例を示すフローチャート。 実施の形態1に係る評価ツリーの例を示す図。 実施の形態1に係る評価ツリーの例を示す図。 実施の形態1に係る比較動作を実現する疑似コードを示す図。 実施の形態2に係るツリー比較部の内部構成例を示す図。 実施の形態2に係るツリー比較部の動作例を示すフローチャート。 実施の形態2に係る失敗ツリーの例を示す図。 実施の形態2に係る比較動作を実現する疑似コードを示す図。 実施の形態1に係るANDノードとORノードを含む評価ツリーの例を示す図。
以下、本発明の実施の形態について、図を用いて説明する。以下の実施の形態の説明及び図面において、同一の符号を付したものは、同一の部分又は相当する部分を示す。
実施の形態1.
***構成の説明***
図1は、本実施の形態に係る網羅性評価装置100のハードウェア構成例を示す。
網羅性評価装置100は、情報処理装置に相当する。また、網羅性評価装置100により行われる動作は、情報処理方法及び情報処理プログラムに相当する。
本実施の形態に係る網羅性評価装置100は、コンピュータである。
網羅性評価装置100は、ハードウェアとして、プロセッサ901、主記憶装置902、補助記憶装置903、通信デバイス904、キーボード905、マウス906及びディスプレイ907を備える。
補助記憶装置903には、図2を用いて後述する評価ツリー生成部101、ゴールドツリー生成部102及びツリー比較部103の機能を実現するプログラムが記憶されている。当該プログラムは、補助記憶装置903から主記憶装置902にロードされる。そして、プロセッサ901が当該プログラムを実行して、後述する評価ツリー生成部101、ゴールドツリー生成部102及びツリー比較部103の動作を行う。
主記憶装置902又は補助記憶装置903には、評価ツリー生成部101、ゴールドツリー生成部102及びツリー比較部103に用いられるデータが格納される。また、主記憶装置902又は補助記憶装置903には、評価ツリー生成部101、ゴールドツリー生成部102及びツリー比較部103の処理結果を示すデータが格納される。
通信デバイス904は、例えばLAN(Local Area Network)を介してインターネットに接続されている。
キーボード905及びマウス906は、網羅性評価装置100のユーザが網羅性評価装置100に各種指示を入力するのに用いられる。
ディスプレイ907は、網羅性評価装置100のユーザに各種情報を表示するのに用いられる。
図2は、本実施の形態に係る網羅性評価装置100の機能構成例を示す。
網羅性評価装置100は、評価ツリー生成部101、ゴールドツリー生成部102及びツリー比較部103を有する。
前述したように、評価ツリー生成部101、ゴールドツリー生成部102及びツリー比較部103は、例えばプログラムで実現される。そして、当該プログラムはプロセッサ901で実行される。
図2では、プロセッサ901が評価ツリー生成部101、ゴールドツリー生成部102及びツリー比較部103の機能を実現するプログラムを実行している状態を模式的に表している。
評価ツリー生成部101は、Prologなどの述語論理を用いた推論に基づき、攻撃対象の情報システムについてのアタックツリーを生成する。評価ツリー生成部101が生成するアタックツリーを評価ツリーという。評価ツリー生成部101は、例えば、非特許文献1又は非特許文献2の技術を用いて評価ツリーを生成する。評価ツリーには、複数の攻撃ステップが含まれる攻撃パス(以下、単にパスともいう)が複数含まれる。
なお、評価ツリーは第1のアタックツリーに相当する。このため、評価ツリー生成部101は第1のアタックツリー取得部に相当する。また、評価ツリー生成部101により行われる処理は、第1のアタックツリー取得処理に相当する。
ゴールドツリー生成部102は、攻撃対象の情報システムへの侵攻経路が網羅され当該情報システムへの侵攻手順が反映されるアタックツリーを生成する。ゴールドツリー生成部102が生成するアタックツリーをゴールドツリーという。ゴールドツリーには、評価ツリー同様、複数の攻撃ステップが含まれる攻撃パスが複数含まれる。
ゴールドツリーは第2のアタックツリーに相当する。このため、ゴールドツリー生成部102は第2のアタックツリー生成部に相当する。また、ゴールドツリー生成部102により行われる処理は、第2のアタックツリー生成処理に相当する。
ツリー比較部103は、評価ツリーとゴールドツリーとを比較する。ツリー比較部103は、ゴールドツリーに含まれる特定の攻撃パスに含まれる複数の攻撃ステップがゴールドツリーと同じ順序で評価ツリーに含まれていない場合に、当該特定の攻撃パスをディスプレイ907に出力する。
ツリー比較部103により行われる処理はツリー比較処理に相当する。
また、評価ツリー生成部101及びゴールドツリー生成部102がアタックツリーの生成に用いるデータとして、システム知識104、攻撃知識105、初期侵攻テンプレート106、侵攻手順テンプレート107及び侵攻手順変換テーブル108がある。
システム知識104、攻撃知識105、初期侵攻テンプレート106、侵攻手順テンプレート107及び侵攻手順変換テーブル108は、主記憶装置902又は補助記憶装置903に格納されている。プロセッサ901が評価ツリー生成部101及びゴールドツリー生成部102として動作する際に、プロセッサ901は、システム知識104、攻撃知識105、初期侵攻テンプレート106、侵攻手順テンプレート107及び侵攻手順変換テーブル108を読み出す。
システム知識104、攻撃知識105、初期侵攻テンプレート106、侵攻手順テンプレート107及び侵攻手順変換テーブル108の詳細は、後述する。
図3は、本実施の形態に係る網羅性評価装置100の動作例を示す。
図3を参照して、本実施の形態に係る網羅性評価装置100の動作例を説明する。
ステップS101において、評価ツリー生成部101は、評価ツリーを生成する。
評価ツリー生成部101は、Prologなどの述語論理を用いた推論ベースで評価ツリーを生成する。前述したように、評価ツリー生成部101は、例えば、非特許文献1又は非特許文献2の技術を用いて評価ツリーを生成する。
推論ベースのアタックツリー生成技術からは、推論過程がログとして出力される。Prologでは、与えられた命題(攻撃目標)が成立するか否かを再帰手続きによって探索する後ろ向き推論が行われる。推論過程のログとは、後ろ向き推論の中で、成功したルール、失敗したルールを記述したログである。
網羅性評価装置100には、攻撃対象の情報システムを表現した知識(ネットワーク構成、脆弱性のある箇所、攻撃者の前提条件)、推論ルールが予め用意されている。
具体的には、攻撃対象の情報システムを表現した知識として、図2に示すシステム知識104が網羅性評価装置100に用意されている。
システム知識104内の攻撃対象の情報システムのネットワーク構成についての知識には、情報システムのネットワーク構成が示されている。このため、当該知識は、ネットワーク構成情報に相当する。
また、推論ルールとして、図2に示す攻撃知識105、初期侵攻テンプレート106及び侵攻手順テンプレート107が網羅性評価装置100に用意されている。
また、初期侵攻テンプレート106及び侵攻手順テンプレート107には、攻撃における侵攻手順が示されている。このため、初期侵攻テンプレート106及び侵攻手順テンプレート107は、侵攻手順情報に相当する。
評価ツリー生成部101に攻撃目標が入力されると、評価ツリー生成部101は、前述の知識、推論ルールを利用して、後ろ向き推論により攻撃目標が成立する全てのケース(攻撃パス)を導出する。そして、評価ツリー生成部101は、全ての攻撃パスをつなげることで評価ツリーを生成する。
図4と図5を参照して、アタックツリーの生成に必要な知識とルールを説明する。
図4は、攻撃知識105の例を示す。図5は、システム知識104の例を示す。
図4及び図5は、Prologの表記方法に従って表記されているが、表記方法は図4及び図5に示す方法に限らない。
攻撃知識105とシステム知識104を評価ツリー生成部101に入力し、例えば、「manipulateProg(a,c)(攻撃者aはマシンcのプログラムを書き換えることができる)」という質問をした場合、Prologの推論過程は図6のようなツリーで表現することができる。図6では、推論失敗の過程の記載は、ボディ部に書かれたゴールが初めて失敗する段階で止めている。
「manipulateProg(a,c)」が真となる(成立する)場合は、再帰手続きによって探索する後ろ向き推論が行われる。図6のツリーから推論が成功したパスのみを選び出すと図7のツリーが得られる。このような手順を経て評価ツリーが生成される。
図7のツリーの場合、2つの攻撃パスが推論されている。1つ目のパスは、図7の左下のノードから延びるパスである。つまり、1つ目のパスは、「攻撃者aがパスワードp1を盗み」(stealPass(a,p1)=True)、「攻撃者aがマシンm1のパスワードp1を持ち」(hasPass(a,p1)=True pass(m1,p1)=True)、「マシンm1とマシンcのネットワークアドレスが同じで、攻撃者aは物理的にマシンm1をコントロールすることができ」(network(m1,net1)=True network(c,net1)=True physicallyControllable(a,m1)=True)、「マシンm1からマシンcに物理的にアクセスでき、マシンm1に遠隔操作ツールがあり、マシンm1は攻撃者がコントロールすることができ」(accessible(m1,c)=True hasRemoteTool(m1)=True controllable(a,m1)=True)、「攻撃者aが遠隔にあるマシンm1からマシンcをコントロールでき」(remoteControllable(a,M,c)=True (M=m1))、「攻撃者aがマシンcをコントロールでき」(contorllable(a,c)=True)、「攻撃者aはマシンcのプログラムを書き換えることができる」(manipulateProg(a,c)=True)である。
2つ目のパスは、図7の右下のノードから延びるパスである。つまり、2つ目のパスは、「攻撃者aがパスワードp3を盗み」(stealPass(a,p3)=True)、「攻撃者aがマシンcのパスワードp3を持ち」(hasPass(a,p3)=True pass(c,p3)=True)、「攻撃者aは物理的にマシンcをコントロールすることができ」(physicallyControllable(a,c)=True)、「攻撃者aはマシンcをコントロールすることができ」(contorllable(a,c)=True)、「攻撃者aはマシンcのプログラムを書き換えることができる」(manipulateProg(a,c)=True)である。
次に、ステップS102において、ゴールドツリー生成部102がゴールドツリーを生成する。
より具体的には、ゴールドツリー生成部102は、システム知識104から、総当たり的にネットワークの侵入経路をリストアップする。そして、ゴールドツリー生成部102は、初期侵攻テンプレート106と侵攻手順テンプレート107とを利用して、情報システムへの侵攻経路が網羅され、情報システムへの侵攻手順が反映されるゴールドツリーを生成する。
最後に、ステップS103において、ツリー比較部103が、評価ツリーとゴールドツリーを比較し、差分を抽出する。
図8は、ゴールドツリー生成部102の内部構成例を示す。
図8に示すように、ゴールドツリー生成部102は、ネットワーク網羅部1021及びテンプレート適用部1022から構成されている。また、ゴールドツリー生成部102は、システム知識104、初期侵攻テンプレート106及び侵攻手順テンプレート107を用いて、ゴールドツリーを生成する。
図9は、ゴールドツリー生成部102の動作例を示す。
まず、ステップS1021において、ネットワーク網羅部1021は、システム知識104から、攻撃対象の情報システムの情報(ネットワーク構成、脆弱性のある箇所、攻撃者の前提条件)を抽出する。システム知識104は、評価ツリー生成部101が推論ベースで攻撃パスを導出するために、例えばXML形式などの機械的に読み取り可能な形式で構成されている。ネットワーク網羅部1021は、攻撃対象の情報システムに存在する全てのマシンについての情報を抽出する。
次に、ステップS1022において、ネットワーク網羅部1021は、情報システム内のあるマシンを攻撃対象としたときに取り得る、当該マシンンまでの重複を含まない全ての侵攻経路を列挙する。システム知識104には情報システムのネットワーク構成の情報が含まれる。ネットワーク網羅部1021は、情報システムのネットワーク構成を用いて、論理的及び物理的に矛盾のない侵攻経路を抽出することができる。
図10は、情報システムのネットワーク構成の一例として、簡略化した制御システムのネットワーク構成を示す。
図10の制御システムでは、制御機器を制御するコントローラCが制御ネットワークと保守ネットワークに接続されている。コントローラCを保守する保守計算機Bが保守ネットワークに接続されている。コントローラC及び制御ネットワークを監視する表示用の表示計算機Aが制御ネットワークに接続されている。以下、表示計算機A、保守計算機B及びコントローラCをそれぞれ単に、A、B、Cとも表記する。
図10の例では、「A、B、C」がマシンリストである。攻撃対象のマシンをコントローラCとした場合、ネットワーク構成を考慮しない、コントローラCまでの重複を含まない取り得る全ての侵攻経路は、「C、CB、CBA、CA、CAB」となる。理論的な経路の数は「1+」である(Pは順列を意味する)。上記「C、CB、CBA、CA、CAB」のうち、単体の「C」は、攻撃者がコントローラCを直接操作して攻撃することを意味する。「CB」は、攻撃者が保守計算機Bを直接操作しコントローラCに侵攻しコントローラCを攻撃することを意味する。「CBA」は、攻撃者が表示計算機Aを直接操作し保守計算機Bに侵攻しさらにコントローラCに侵攻しコントローラCを攻撃することを意味する。「CA」及び「CAB」についても同様である。
ネットワーク構成を考慮し、論理的及び物理的に明らかに矛盾のある経路を除去すると、侵攻経路の組合せは「C、CB、CA」となる。
次に、ステップS1023において、ネットワーク網羅部1021が、抽出した侵攻経路をまとめ、侵攻経路を網羅したツリーを生成する。
図10の制御システムの場合、ネットワーク構成を考慮した侵攻経路を網羅したツリーは図11に示すようになる。本実施の形態では、各ノードの階層上の位置づけにかかわらず(各ノードが末端ノードであるか中間ノードであるかにかかわらず)、攻撃者が各ノードを直接操作して親ノードに侵攻すること想定する。なお、図11では、便宜上、表示計算機Aの下には、エンタープライズネットワークのノードを配置している。
次に、ステップS1024において、テンプレート適用部1022が、初期侵攻テンプレート106及び侵攻手順テンプレート107を利用し、侵攻手順を反映させたツリーを生成する。
図12は、初期侵攻テンプレート106の例を示す。初期侵攻では、盗んだパスワードによるログイン、USBメモリ経由のマルウェア感染等の手順が考えられる。具体的な手順が記された初期侵攻テンプレート106の例を図13に示す。
図14は、侵攻手順テンプレート107の例を示す。侵攻手順テンプレート107は、マシンタイプごとに侵攻手順が列挙されたテーブルである。バッファーオバーフローによる任意のプログラムの実行、盗んだパスワードによるリモートデスクトップ接続等の手順が侵攻の手順である。2つのマシンの間に複数のネットワークが存在する場合は、マシンタイプに加え、ネットワークタイプごとに侵攻手順テンプレート107に侵攻手順を列挙してもよい。具体的な手順が記された侵攻手順テンプレート107の例を図15に示す。
侵攻手順テンプレート107及び初期侵攻テンプレート106に記載する手順は、参考文献1、参考文献2等の形式化された公開データベースから抽出して利用することができる。
図11のツリーに図13の初期侵攻テンプレート106及び図15の侵攻手順テンプレート107を適用した後のツリーを図16に示す。
また、図17に具体的な手順が記されたツリーを示す。また、図18は、図17の記載をマシンリーダブルな記載に変更したツリーの例を示す。図18では、「表示計算機A」は「Machine A」と表記し、「保守計算機B」は「Machine B」と表記している。
なお、図18が、ゴールドツリーに該当する。
参考文献1:MITER、 ATT&CK、 https://attack.mitre.org/wiki/Main_Page
参考文献2:CAPEC、 http://capec.mitre.org/index.html
なお、制御システム内の全てのノードを攻撃対象に指定し、ノードごとにゴールドツリーを生成することもできるが、非効率的なため、本実施の形態では、ゴールドツリー生成部102は、評価ツリーのトップにあるノードに記載されているマシンのみを攻撃対象に指定してゴールドツリーを生成する。
侵攻手順テンプレート107及び初期侵攻テンプレート106は、全てのマシンに共通に用いられてもよい。また、侵攻手順テンプレート107及び初期侵攻テンプレート106は、通常のPC(Personal Computer)、サーバ、コントローラなどマシンのタイプごとに用意してもよい。更に、侵攻手順テンプレート107及び初期侵攻テンプレート106を、マシンにインストールされているOS(Operating System)又はアプリケーションプログラムのバージョンごとに用意してもよい。
図19は、ツリー比較部103の内部構成例を示す。
図19に示すように、ツリー比較部103は、パス抽出部1031及びパス比較部1032で構成される。また、ツリー比較部103は、侵攻手順変換テーブル108を参照する。
図20は、ツリー比較部103の動作例を示す。
まず、ステップS1031において、パス抽出部1031は、ゴールドツリーからパスを抽出する。パス抽出部1031は、ゴールドツリーのリーフノードからルートノードまで親ノードをたどることでパスを抽出する。図18のゴールドツリーからは、以下の10個のパスが抽出される。なお、以下では、図18の一部の表記が省略されている。
1)remoteLogin(_,machineA,passwordA)⇒manipulateProgram(machineA,controllerC,tool)
2)remoteExploit(_,machineA,vul1)⇒manipulateProgram(machineA,controllerC,tool)
3)remoteExploit(_,machineA,Vul2)⇒manipulateProgram(machineA,controllerC,tool)
4)localControl(_,machineA,passwordA)⇒manipulateProgram(machineA,controllerC,tool)
5)usbMalwareRun(_,machineA,_)⇒manipulateProgram(machineA,controllerC,tool)
6)maliciousEmailClick(_,machineA)⇒manipulateProgram(machineA,controllerC,tool)
7)usbMalwareRun(_,machineB)⇒manipulateProgram(machineB,controllerC,tool)
8)localControl(_,machineB,passwordB)⇒manipulateProgram(machineB,controllerC,tool)
9)changeProgram(_,controllerC,usb)
10)localControl(_,controllerC,passwordC)
次に、ステップS1032において、パス抽出部1031は、評価ツリーからパスを抽出する。パス抽出部1031は、評価ツリーのリーフノードからルートノードまで親ノードをたどることでパスを抽出する。なお、本実施の形態に係る評価ツリーはORノードのみで構成されているが、評価ツリーにANDノードが含まれることがありうる。この場合は、パス抽出部1031はANDノードに繋がる子ノード(ANDの条件)については、全ての組合せの順番のパスを抽出する。例えば、図28の例においては、以下6個のパスが抽出される。パス抽出部1031は、各ノードから末端ノードに向かうパスを再帰的に求め、親ノードとの関係(ORなのかANDなのか)に応じて、親ノードとのパスの連結の仕方を変える要領で、全パスを抽出していく。
1)A→B→D→C
2)A→B→E→F→G→C
3)A→B→E→G→F→C
4)A→C→B→D
5)A→C→B→E→F→G
6)A→C→B→E→G→F
図10の制御システムに対して、評価ツリー生成部101により図21に示す評価ツリーが生成されたとする。ゴールドツリーとの比較を容易にするために、図21の記載を図18の記載形式に変更したツリーを図22に示す。図22の評価ツリーからは、以下の7つのパスが抽出される。なお、以下では、図22の一部の表記が省略されている。また、攻撃が成功するための細かな条件やルールについても記載を省略している。
A)remoteExploit(_,machineA,vul1)⇒remoteControl(_,machineA,_)⇒control(_,machineA,_)⇒manipulateProgram(machineA,controllerC,Tool)⇒manipulateProgram(_,controllerC,_)
B)remoteLogin(_,machineA,passwordA)⇒remoteControl(_,machineA,_)⇒control(_,machineA,_)⇒manipulateProgram(machineA,controllerC,tool)⇒manipulateProgram(_,controllerC,_)
C)usbMalwareRun(_,machineA,_)⇒malwareInfection(_,machineA,_)⇒remoteControl(_,machineA,_)⇒control(_,machineA,_)⇒manipulateProgram(machineA,controllerC,tool)⇒manipulateProgram(_,controllerC,_)
D)maliciousEmailClick(_,machineA,_)⇒malwareInfection(_,machineA,_)⇒remoteControl(_,machineA,_)⇒control(_,machineA,_)⇒manipulateProgram(machineA,controllerC,tool)⇒manipulateProgram(_,controllerC,_)
E)localControl(_,machineB,passwordB)⇒control(_,machineB,_)⇒manipulateProgram(machineB,controllerC,tool)⇒manipulateProgram(_,controllerC,_)
F)usbMalwareRun(_,machineB,_)⇒malwareInfection(_,machineB,_)⇒control(_,machineB,_)⇒manipulateProgram(machineB,controllerC,tool)⇒manipulateProgram(_,controllerC,_)
G)changeProgram(_,controllerC,usb)⇒manipulateProgram(_,controllerC,_)
ステップS1033において、パス比較部1032が、ゴールドツリーと評価ツリーのそれぞれから抽出したパスを比較する。そして、パス比較部1032は、ゴールドツリーのパス中にある攻撃ステップを必ず含むパスを評価ツリーから抽出する。
説明のために、ゴールドツリーから抽出される攻撃パスの攻撃ステップをgStep(メンバーはa,nf,nt,i,s)と表す。攻撃ステップgStepは、主体gStep.sが、侵攻手順gStep.aを利用し、補足情報gStep.iを使って、攻撃元ノードgStep.nfから攻撃先ノードgStep.ntを攻撃することを意味する。
malEmailClick(m1,x, , )の場合は、gStep.aがmalEmailClickである。gStep.nfはxである。gStep.ntはm1である。gStep.iは「 」(ドントケア)である。gStep.sは「 」(ドントケア)である。
同様に、評価ツリーから抽出される攻撃パスの攻撃ステップをaStep(メンバーはa,nf,nt,i,侵攻手順s)と表す。攻撃ステップaStepは、主体aStep.sが、侵攻手順aStep.aを利用し、補足情報aStep.iを使って、攻撃元ノードaStep.nfから攻撃先ノードaStep.ntを攻撃することを意味する。
remExp(a,x,m1,vul1)の場合は、aStep.aがremExpである。aStep.sはaである。vStep.nfはxである。aStep.ntはm1である。aStep.iはvul1である。
「access(x,m1, , _)、clickMalEmaill(a,x,m1, _)、control(a,x, _, _)」のように1つの攻撃ステップの中に複数の侵攻手順(もしくは条件)が含まれている場合がある。このような攻撃ステップは、要素の数に関係なく、侵攻手順の集合として扱う。
ゴールドツリーから抽出した各攻撃パスは攻撃ステップ(侵攻手順)が要素となる順序リストである。評価ツリーから抽出した各攻撃パスは攻撃ステップ(侵攻手順の集合)が要素となる順序リストである。パス比較部1032は、以下のように、ゴールドツリーの攻撃パスと評価ツリーの攻撃パスとを比較する。
パス比較部1032は、ゴールドツリーから抽出した攻撃パスを1つずつピックアップし、さらに評価ツリーから抽出した攻撃パスを1つずつピックアップする。
次に、パス比較部1032は、ゴールドツリーの攻撃パスに含まれるすべての要素(侵攻手順)を順序通り含む攻撃パスを評価ツリーから探す。評価ツリーの攻撃パスの各要素は侵攻手順の集合で表現されている。このため、パス比較部1032は、ゴールドツリーの攻撃ステップの侵攻手順が評価ツリーの侵攻手順の集合に含まれるか否かを判定する。
ゴールドツリーと評価ツリーに利用されている侵攻手順(侵入手口および侵攻手口)の形式が異なる場合(例えば、malEmailClick(x,m1)とclickMalEmaill(a,x,m1))のために、侵攻手順間の対応関係が得られるように侵攻手順変換テーブル108が用意されている。
それぞれの侵攻手口には、あらかじめCAPECやATT&CKなどの攻撃手口の識別子を紐づけておく。
侵攻手順変換テーブル108には、対応する攻撃手口名、主体、補足情報、攻撃元ノード、攻撃先ノードに加え、対応する識別子(CAPECまたはATT&CK)が記載される。
パス比較部1032がゴールドツリーの攻撃パスと評価ツリーの攻撃パスとを比較することで、ゴールドツリーの攻撃パスに対応する評価ツリーの攻撃パスが辞書形式で出力される。このようなパス比較部1032の比較動作をmatchedAttackPathDictという。
図23に、パス比較部1032の比較動作を実現する疑似コード(compareAttackPaths)を示す。
matchedAttackPathDictにおいて空集合(φ)となっている各エントリー(gPath)が求めたい差分(ゴールドツリーに含まれるが評価ツリーに含まれない攻撃パス)である。
最後に、ステップS1034において、パス比較部1032は、評価結果を出力する。
例えば、評価ツリーにおいて網羅できていないパスが存在する場合は、パス比較部1032は、評価ツリーにおいて網羅できていないパスをディスプレイ907に表示する。網羅性評価装置100のユーザは、ディスプレイ907に表示されたパスを解析して、システム知識104、攻撃知識105等を改訂することができ、評価パスの網羅性を向上させることができる。
***実施の形態の効果の説明***
本実施の形態では、評価ツリーを、情報システムへの侵攻経路が網羅され情報システムへの侵攻手順が反映されるゴールドツリーと比較するため、評価ツリーの網羅性を評価することができる。また、本実施の形態では、評価ツリーで網羅できていないパスを抽出し、抽出したパスを網羅性評価装置100のユーザに提示することができる。このため、ユーザは、提示された内容を評価ツリーの生成手順にフィードバックすることができ、この結果、評価ツリーの網羅性を高めることができる。
実施の形態2.
実施の形態1では、評価ツリーで網羅できていないパスが抽出された場合に、抽出されたパスをユーザに提示するのみである。本実施の形態では、評価ツリーで網羅できていないパスが抽出された場合に、当該パスが評価ツリーで網羅できていない理由を示す構成を説明する。
***構成の説明***
本実施の形態でも、網羅性評価装置100のハードウェア構成例は図1に示す通りである。また、網羅性評価装置100の機能構成例は図2に示す通りである。
本実施の形態では、ツリー比較部103の内部構成例が実施の形態1と異なる。
図24は、本実施の形態に係るツリー比較部103の内部構成例を示す。
図24では、図19の構成と比較して、失敗ツリー生成部1033が追加されている。
失敗ツリー生成部1033は、情報システムについての述語論理を用いた推論において推論に失敗した要素が含まれるアタックツリーを生成する。つまり、失敗ツリー生成部1033は、評価ツリー生成部101による評価ツリーの生成において推論に失敗したパスで構成されるアタックツリーを生成する。失敗ツリー生成部1033が生成するアタックツリーは失敗ツリーという。失敗ツリーには、評価ツリー同様、複数の攻撃ステップが含まれる攻撃パスが複数含まれる。
失敗ツリー生成部1033は、失敗ツリー取得部に相当する。
本実施の形態では、パス抽出部1031は、失敗ツリーからもパスを抽出する。
また、本実施の形態では、パス比較部1032は、評価ツリーとゴールドツリーを比較するとともに、ゴールドツリーと失敗ツリーも比較する。
そして、パス比較部1032は、ゴールドツリーに含まれる特定の攻撃パスに含まれる複数の攻撃ステップがゴールドツリーと同じ順序で評価ツリー及び失敗ツリーのいずれにも含まれていない場合に、当該特定の攻撃パスをディスプレイ907に出力する。更に、パス比較部1032は、述語論理を用いた推論の前提、すなわち、システム知識104、攻撃知識105等に欠陥があることが推定される旨を通知するメッセージをディスプレイ907に出力する。
また、パス比較部1032は、ゴールドツリーに含まれる特定の攻撃パスに含まれる複数の攻撃ステップがゴールドツリーと同じ順序で評価ツリーには含まれていないが失敗ツリーには含まれている場合にも、当該特定の攻撃パスをディスプレイ907に出力する。更に、パス比較部1032は、述語論理を用いた推論の前提、すなわち、システム知識104、攻撃知識105等に欠陥がないことが推定される旨を通知するメッセージをディスプレイ907に出力する。
***動作の説明***
図25は、本実施の形態に係るツリー比較部103の動作例を示す。
まず、ステップS2031において、失敗ツリー生成部1033が、失敗ツリーを生成する。
評価ツリー生成部101の処理を修正することで、失敗ツリー生成部1033を実現することができる。評価ツリー生成部101では、システム知識104、攻撃知識105等を利用して、後ろ向き推論により攻撃目標が成立する全てのケース(攻撃パス)を導出する。評価ツリー生成部101は、図4と図5に記載した攻撃知識105及びシステム知識104を利用すると、図6の推論過程を経て、図7のアタックツリーを抽出することができる。ここで、図6の推論過程には推論失敗の過程も含まれている。このため、失敗ツリー生成部1033は、推論が失敗したパスのみを選び出すと、失敗ツリーを得ることができる。具体的には、評価ツリー生成部101は、Trueである推論過程ごとに推論過程の分割を行う。また、評価ツリー生成部101は、Failである推論過程は排除する。このようにすることで、評価ツリー生成部101は、評価ツリーを生成する。一方、失敗ツリー生成部1033は、Trueである推論過程ごとに推論過程の分割を行うのではなく、Failである推論過程ごとに推論過程の分割を行う。そして、失敗ツリー生成部1033は、Trueである推論過程を排除する。
図6のツリーから失敗のパスだけをピックアップして整形した失敗ツリーの例を図26に示す。失敗ツリー生成部1033は、失敗のパスのピックアップは最初に失敗(条件がFalseになる)が判明した時点で処理を終了する。図7の評価ツリーと図26の失敗ツリーを合わせると図6のツリーができ、評価ツリーと失敗ツリーは相補的であることがわかる。
ステップS2032及びS2033において、パス抽出部1031が、ゴールドツリーと評価ツリーからパスを抽出する。ステップS2032及びS2033は、実施の形態1で説明したステップS1031及びS1032と同じであるため、詳細な説明を省略する。
次に、ステップS2034において、パス抽出部1031が、失敗ツリーからパスを抽出する。ステップS2034の処理もステップS2032及びS2033と同等であるため、詳細な説明は省略する。
次に、ステップS2035において、パス比較部1032が、ゴールドツリーと評価ツリーのそれぞれから抽出したパスを比較する。そして、パス比較部1032は、図23に示す比較手順を利用し、比較結果としてmatchedAttackPathDictを取得する。
次に、ステップS2036において、パス比較部1032は、同様の方法で、ゴールドツリーと失敗ツリーのそれぞれから抽出したパスを比較する。ステップS2036の手順は基本的にはステップS2035と同様である。しかし、ステップS2036では、ゴールドツリーの攻撃パスに途中までマッチする失敗ツリーの攻撃パスと、ゴールドツリーの当該攻撃パスとの比較でもよいという点が異なる。失敗ツリーの攻撃パスの攻撃ステップをfStep(メンバーはa,nf,nt,i,s)と表す。パス比較部1032がゴールドツリーの攻撃パスと失敗ツリーの攻撃パスとを比較することで、ゴールドツリーの攻撃パスに対応する失敗ツリーの攻撃パスが辞書形式で出力される。このようなパス比較部1032の比較動作をmatchedFailedAttackPathDictという。
図27に、パス比較部1032の比較動作を実現する疑似コード(compareFailedPaths)を示す。
ステップS2037において、パス比較部1032は、matchedAttackPathDictおよびmatchedFailedAttackPathDictを利用して評価結果を生成する。パス比較部1032は、matchedAttackPathDictから2種類の情報を得る。
1つ目の情報は、評価ツリーにおけるゴールドツリーをカバーする攻撃パスについての情報である。この攻撃パスについての情報は、matchedAttackPathDictにおける空集合(φ)ではない各エントリー(gPath)に定義された評価ツリーの攻撃パス(aPath)の集合(COVERED_ATTACK_PATH_SET)の情報である。この集合はゴールドツリーの攻撃パスと対応する評価ツリーの攻撃パスとのペア((gPath,aPath))の集合として定義される。ゴールドツリーの1つの攻撃パスに評価ツリーの複数の攻撃パスが対応する場合は、評価ツリーの複数のペアが集合に含まれる({(gPath1,aPath1),(gPath1,aPath2),(gPath1,aPath3)})。
2つ目の情報は、評価ツリーではカバーしていない攻撃パスについての情報である。この攻撃パスについての情報は、matchedAttackPathDictにおいて空集合(φ)となっている各エントリー(gPath)の集合(UNCOVERED_PATH_SET)の情報である。アタックツリー自動生成に必要な推論ルールや前提知識において、本来カバーしなくてもよい攻撃パスが含まれている可能性もあるが、推論ルールや前提知識の設定ミスによって本来カバーしなくてはならないパスが抜けている可能性もある。
matchedFailedAttackPathDictからは1種類の情報を得ることができる。matchedFailedAttackPathDictから得られる情報は、失敗ツリーにおけるゴールドツリーを途中までカバーする攻撃パスの情報である。この攻撃パスの情報は、matchedFailedAttackPathDictにおける空集合(φ)ではない各エントリー(gPath)に定義された失敗ツリーの攻撃パス(fPath)の集合(COVERED_FAILED_PATH_SET)の情報である。この集合はゴールドツリーの攻撃パスと対応する失敗ツリーの攻撃パスとのペア((gPath,fPath))の集合として定義される。ゴールドツリーの1つの攻撃パスに失敗ツリーの複数の攻撃パスが対応する場合は、失敗ツリーの複数のペアが集合に含まれる({(gPath1,fPath1),(gPath1,fPath2),(gPath1,fPath3)})。
ここで、UNCOVERED_PATH_SETに含まれるgPathが、COVERED_FAILED_PATH_SETに含まれていれば、当該gPathは、対応するfPathにおける最後の侵攻手順(条件)が失敗した根拠(導出失敗の条件)となる。このgPathとfPathのペアの集合をNORMAL_UNCOVERED_PATH_SETという。
UNCOVERED_PATH_SETに含まれるgPathが、COVERED_FAILED_PATH_SETに含まれていなければ、推論エンジンに与える前提知識又は推論ルールに何かしらの不具合があることが予想される。このgPathの集合をABNORMAL_UNCOVERED_PATH_SETという。
最後に、ステップS2038において、パス比較部1032は、評価結果をディスプレイ907に出力する。
具体的には、パス比較部1032は、評価結果として、NORMAL_UNCOVERED_PATH_SETとABNORAML_UNCOVERED_PATH_SETを表示する。NORMAL_UNCOVERED_PATH_SETについては、パス比較部1032は、失敗の根拠が存在する場合は失敗の根拠も表示する。ABNORAML_UNCOVERED_PATH_SETについては、パス比較部1032は、システム知識104、攻撃知識105等に欠陥があるために、該当するパスが評価ツリーから漏れている可能性があることをユーザに示すことができる。
***実施の形態の効果の説明***
本実施の形態によれば、評価ツリーで網羅できていないパスが抽出された場合に、当該パスが評価ツリーで網羅できていない理由をユーザに示すことができる。つまり、PATH_PAIR_SET2に含まれるパスについては、システム知識104、攻撃知識105等に欠陥がなく、適正に評価ツリーから除外されていることをユーザに示すことができる。一方、UNCOVERED_PATH_SETが存在する場合は、システム知識104、攻撃知識105等に欠陥があるために、該当するパスが評価ツリーから漏れている可能性があることをユーザに示すことができる。
***その他***
実施の形態1では、評価ツリー生成部101が評価ツリーを生成することになっている。これに代えて、網羅性評価装置100の外部の機器が、評価ツリー生成部101と同様の手法で評価ツリーを生成するようにしてもよい。この場合は、網羅性評価装置100には、外部で生成された評価ツリーを取得する構成(評価ツリー取得部)が設けられる。評価ツリー取得部は、第1のアタックツリー取得部に相当する。
また、実施の形態2では、失敗ツリー生成部1033が失敗ツリーを生成することになっている。これに代えて、網羅性評価装置100の外部の機器が、失敗ツリー生成部1033と同様の手法で失敗ツリーを生成するようにしてもよい。この場合は、網羅性評価装置100には、外部で生成された失敗ツリーを取得する構成(失敗ツリー取得部)が設けられる。
以上、本発明の実施の形態について説明したが、これら2つの実施の形態を組み合わせて実施しても構わない。
あるいは、これら2つの実施の形態のうち、1つを部分的に実施しても構わない。
あるいは、これら2つの実施の形態を部分的に組み合わせて実施しても構わない。
なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
***ハードウェア構成の説明***
最後に、網羅性評価装置100のハードウェア構成の補足説明を行う。
図1に示すプロセッサ901は、プロセッシングを行うIC(Integrated Circuit)である。
プロセッサ901は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)等である。
図1に示す主記憶装置902は、RAM(Random Access Memory)である。
図1に示す補助記憶装置903は、ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard Disk Drive)等である。
図1に示す通信デバイス904は、データの通信処理を実行する電子回路である。
通信デバイス904は、例えば、通信チップ又はNIC(Network Interface Card)である。
また、補助記憶装置903には、OSも記憶されている。
そして、OSの少なくとも一部が主記憶装置902にロードされ、プロセッサ901により実行される。
プロセッサ901はOSの少なくとも一部を実行しながら、評価ツリー生成部101、ゴールドツリー生成部102及びツリー比較部103の機能を実現するプログラムを実行する。
プロセッサ901がOSを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、評価ツリー生成部101、ゴールドツリー生成部102及びツリー比較部103の処理の結果を示す情報、データ、信号値及び変数値の少なくともいずれかが、主記憶装置902、補助記憶装置903、プロセッサ901内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
また、評価ツリー生成部101、ゴールドツリー生成部102及びツリー比較部103の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の可搬記録媒体に格納されていてもよい。
また、評価ツリー生成部101、ゴールドツリー生成部102及びツリー比較部103の「部」を、「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。
また、網羅性評価装置100は、処理回路により実現されてもよい。処理回路は、例えば、ロジックIC(Integrated Circuit)、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field−Programmable Gate Array)である。
この場合は、評価ツリー生成部101、ゴールドツリー生成部102及びツリー比較部103は、それぞれ処理回路の一部として実現される。
なお、本明細書では、プロセッサと処理回路との上位概念を、「プロセッシングサーキットリー」という。
つまり、プロセッサと処理回路とは、それぞれ「プロセッシングサーキットリー」の具体例である。
100 網羅性評価装置、101 評価ツリー生成部、102 ゴールドツリー生成部、103 ツリー比較部、104 システム知識、105 攻撃知識、106 初期侵攻テンプレート、107 侵攻手順テンプレート、108 侵攻手順変換テーブル、901 プロセッサ、902 主記憶装置、903 補助記憶装置、904 通信デバイス、905 キーボード、906 マウス、907 ディスプレイ、1021 ネットワーク網羅部、1022 テンプレート適用部、1031 パス抽出部、1032 パス比較部、1033 失敗ツリー生成部。
ステップS1033において、パス比較部1032が、ゴールドツリーと評価ツリーのそれぞれから抽出したパスを比較する。そして、パス比較部1032は、ゴールドツリーのパス中にある攻撃ステップを必ず含むパスを評価ツリーから抽出する。
説明のために、ゴールドツリーから抽出される攻撃パスの攻撃ステップをgStep(メンバーはa,nf,nt,i,s)と表す。攻撃ステップgStepは、主体gStep.sが、侵攻手順gStep.aを利用し、補足情報gStep.iを使って、攻撃元ノードgStep.nfから攻撃先ノードgStep.ntを攻撃することを意味する。
malEmailClick(m1,x, , )の場合は、gStep.aがmalEmailClickである。gStep.nfはxである。gStep.ntはm1である。gStep.iは「 」(ドントケア)である。gStep.sは「 」(ドントケア)である。
同様に、評価ツリーから抽出される攻撃パスの攻撃ステップをaStep(メンバーはa,nf,nt,i,s)と表す。攻撃ステップaStepは、主体aStep.sが、侵攻手順aStep.aを利用し、補足情報aStep.iを使って、攻撃元ノードaStep.nfから攻撃先ノードaStep.ntを攻撃することを意味する。
remExp(a,x,m1,vul1)の場合は、aStep.aがremExpである。aStep.sはaである。Step.nfはxである。aStep.ntはm1である。aStep.iはvul1である。
「access(x,m1, , _)、clickMalEmaill(a,x,m1, _)、control(a,x, _, _)」のように1つの攻撃ステップの中に複数の侵攻手順(もしくは条件)が含まれている場合がある。このような攻撃ステップは、要素の数に関係なく、侵攻手順の集合として扱う。
ゴールドツリーから抽出した各攻撃パスは攻撃ステップ(侵攻手順)が要素となる順序リストである。評価ツリーから抽出した各攻撃パスは攻撃ステップ(侵攻手順の集合)が要素となる順序リストである。パス比較部1032は、以下のように、ゴールドツリーの攻撃パスと評価ツリーの攻撃パスとを比較する。

Claims (9)

  1. 述語論理を用いた推論に基づく、情報システムについてのアタックツリーを第1のアタックツリーとして取得する第1のアタックツリー取得部と、
    前記情報システムのネットワーク構成が示されるネットワーク構成情報と前記情報システムへの侵攻において想定される侵攻手順が示される侵攻手順情報とを用いて、前記情報システムへの侵攻経路が網羅され前記情報システムへの侵攻手順が反映されるアタックツリーを第2のアタックツリーとして生成する第2のアタックツリー生成部と、
    前記第1のアタックツリーと前記第2のアタックツリーとを比較するツリー比較部とを有する情報処理装置。
  2. 前記第1のアタックツリー取得部は、
    複数の攻撃ステップが含まれる攻撃パスが複数含まれるアタックツリーを前記第1のアタックツリーとして取得し、
    前記第2のアタックツリー生成部は、
    複数の攻撃ステップが含まれる攻撃パスが複数含まれるアタックツリーを前記第2のアタックツリーとして生成し、
    前記ツリー比較部は、
    前記第2のアタックツリーに含まれる特定の攻撃パスに含まれる複数の攻撃ステップが前記第2のアタックツリーと同じ順序で前記第1のアタックツリーに含まれていない場合に、前記特定の攻撃パスを出力する請求項1に記載の情報処理装置。
  3. 前記情報処理装置は、更に、
    前記情報システムについての前記述語論理を用いた推論において推論に失敗した要素が含まれるアタックツリーを失敗ツリーとして取得する失敗ツリー取得部を有し、
    前記ツリー比較部は、
    前記第2のアタックツリーと、前記第1のアタックツリー及び前記失敗ツリーとを比較する請求項1に記載の情報処理装置。
  4. 前記第1のアタックツリー取得部は、
    複数の攻撃ステップが含まれる攻撃パスが複数含まれるアタックツリーを前記第1のアタックツリーとして取得し、
    前記第2のアタックツリー生成部は、
    複数の攻撃ステップが含まれる攻撃パスが複数含まれるアタックツリーを前記第2のアタックツリーとして生成し、
    前記失敗ツリー取得部は、
    複数の攻撃ステップが含まれる攻撃パスが複数含まれるアタックツリーを前記失敗ツリーとして取得し、
    前記ツリー比較部は、
    前記第2のアタックツリーに含まれる特定の攻撃パスに含まれる複数の攻撃ステップが前記第2のアタックツリーと同じ順序で前記第1のアタックツリー及び前記失敗ツリーのいずれにも含まれていない場合に、前記特定の攻撃パスを出力する請求項3に記載の情報処理装置。
  5. 前記ツリー比較部は、
    前記述語論理を用いた推論の前提に欠陥があることが推定される旨を通知するメッセージを出力する請求項4に記載の情報処理装置。
  6. 前記ツリー比較部は、
    前記第2のアタックツリーに含まれる特定の攻撃パスに含まれる複数の攻撃ステップが前記第2のアタックツリーと同じ順序で前記第1のアタックツリーには含まれていないが前記失敗ツリーには含まれている場合に、前記特定の攻撃パスを出力する請求項3に記載の情報処理装置。
  7. 前記ツリー比較部は、
    前記述語論理を用いた推論の前提に欠陥がないことが推定される旨を通知するメッセージを出力する請求項6に記載の情報処理装置。
  8. コンピュータが、述語論理を用いた推論に基づく、情報システムについてのアタックツリーを第1のアタックツリーとして取得し、
    前記コンピュータが、前記情報システムのネットワーク構成が示されるネットワーク構成情報と前記情報システムへの侵攻において想定される侵攻手順が示される侵攻手順情報とを用いて、前記情報システムへの侵攻経路が網羅され前記情報システムへの侵攻手順が反映されるアタックツリーを第2のアタックツリーとして生成し、
    前記コンピュータが、前記第1のアタックツリーと前記第2のアタックツリーとを比較する情報処理方法。
  9. 述語論理を用いた推論に基づく、情報システムについてのアタックツリーを第1のアタックツリーとして取得する第1のアタックツリー取得処理と、
    前記情報システムのネットワーク構成が示されるネットワーク構成情報と前記情報システムへの侵攻において想定される侵攻手順が示される侵攻手順情報とを用いて、前記情報システムへの侵攻経路が網羅され前記情報システムへの侵攻手順が反映されるアタックツリーを第2のアタックツリーとして生成する第2のアタックツリー生成処理と、
    前記第1のアタックツリーと前記第2のアタックツリーとを比較するツリー比較処理とをコンピュータに実行させる情報処理プログラム。
JP2020554703A 2018-11-01 2018-11-01 情報処理装置、情報処理方法及び情報処理プログラム Expired - Fee Related JP6847326B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/040641 WO2020090077A1 (ja) 2018-11-01 2018-11-01 情報処理装置、情報処理方法及び情報処理プログラム

Publications (2)

Publication Number Publication Date
JPWO2020090077A1 true JPWO2020090077A1 (ja) 2021-02-15
JP6847326B2 JP6847326B2 (ja) 2021-03-24

Family

ID=70462960

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020554703A Expired - Fee Related JP6847326B2 (ja) 2018-11-01 2018-11-01 情報処理装置、情報処理方法及び情報処理プログラム

Country Status (4)

Country Link
US (1) US20210224397A1 (ja)
JP (1) JP6847326B2 (ja)
TW (1) TW202018566A (ja)
WO (1) WO2020090077A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115997210B (zh) * 2020-08-18 2026-03-17 三菱电机株式会社 攻击手段评价装置、攻击手段评价方法以及计算机能读取的存储介质
CN119561769B (zh) * 2024-12-05 2025-11-25 广州大学 基于逻辑攻击图与密码评估的企业网络弱口令评估方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060021034A1 (en) * 2004-07-22 2006-01-26 Cook Chad L Techniques for modeling changes in network security
JP2011519435A (ja) * 2007-10-10 2011-07-07 テレフオンアクチーボラゲット エル エム エリクソン(パブル) セキュリティ解析に基づいて技術システムの再構成を行なうための装置、並びに対応する技術的意思決定支援システム及びコンピュータプログラム製品
US20170171230A1 (en) * 2015-12-09 2017-06-15 Checkpoint Software Technologies Ltd. Method and system for detecting and remediating polymorphic attacks across an enterprise
JP2018527672A (ja) * 2015-08-21 2018-09-20 ルネサス・エレクトロニクス・ヨーロッパ・リミテッドRenesas Electronics Europe Limited 設計支援システム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7194769B2 (en) * 2003-12-11 2007-03-20 Massachusetts Institute Of Technology Network security planning architecture
US9292695B1 (en) * 2013-04-10 2016-03-22 Gabriel Bassett System and method for cyber security analysis and human behavior prediction
WO2015128896A1 (ja) * 2014-02-26 2015-09-03 三菱電機株式会社 攻撃検知装置、攻撃検知方法、及び攻撃検知プログラム
US10574675B2 (en) * 2014-12-05 2020-02-25 T-Mobile Usa, Inc. Similarity search for discovering multiple vector attacks
US9894090B2 (en) * 2015-07-14 2018-02-13 Sap Se Penetration test attack tree generator

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060021034A1 (en) * 2004-07-22 2006-01-26 Cook Chad L Techniques for modeling changes in network security
JP2011519435A (ja) * 2007-10-10 2011-07-07 テレフオンアクチーボラゲット エル エム エリクソン(パブル) セキュリティ解析に基づいて技術システムの再構成を行なうための装置、並びに対応する技術的意思決定支援システム及びコンピュータプログラム製品
JP2018527672A (ja) * 2015-08-21 2018-09-20 ルネサス・エレクトロニクス・ヨーロッパ・リミテッドRenesas Electronics Europe Limited 設計支援システム
US20170171230A1 (en) * 2015-12-09 2017-06-15 Checkpoint Software Technologies Ltd. Method and system for detecting and remediating polymorphic attacks across an enterprise

Also Published As

Publication number Publication date
JP6847326B2 (ja) 2021-03-24
TW202018566A (zh) 2020-05-16
WO2020090077A1 (ja) 2020-05-07
US20210224397A1 (en) 2021-07-22

Similar Documents

Publication Publication Date Title
Qian et al. Lamd: Context-driven android malware detection and classification with llms
US9703974B1 (en) Coordinated file system security via rules
JP6253862B1 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
CN106997367B (zh) 程序文件的分类方法、分类装置和分类系统
AU2023324978A1 (en) Anti-malware behavioral graph engines, systems and methods
WO2018106624A1 (en) Structure-level anomaly detection for unstructured logs
US20030135758A1 (en) System and method for detecting network events
JP6491356B2 (ja) 分類方法、分類装置および分類プログラム
CN111183620B (zh) 入侵调查
US20240223543A1 (en) Automatically encrypting sensitive data in a distributed microservice framework
CN106815229A (zh) 数据库虚拟补丁防护方法
CN119397533A (zh) 恶意脚本的检测方法、装置、设备及存储介质
JP6847326B2 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
Zhang et al. Automatically generating rules of malicious software packages via large language model
US8875297B2 (en) Interactive analysis of a security specification
Xiong et al. Generic, efficient, and effective deobfuscation and semantic-aware attack detection for PowerShell scripts
JP2024507893A (ja) 悪意のあるms office文書の署名なし検出
US12585785B2 (en) Code vulnerability evaluator
CN115730319A (zh) 数据处理方法、装置、计算机设备和存储介质
Ni et al. FG-CIBGC: A Unified Framework for Fine-Grained and Class-Incremental Behavior Graph Classification
Indirapriyadarsini et al. Malware detection using machine learning and cloud computing
WO2020008632A1 (ja) 仮説推論装置、仮説推論方法、及びコンピュータ読み取り可能な記録媒体
Liang et al. Detecting Malicious Packages in PyPI and npm by Clustering Installation Scripts
De Giorgi Security Misconfigurations Detection and Repair in Dockerfile
Chakravorty et al. Detecting Cryptojacking in Cloud Environments: A Systematic Review of AI-Based Defenses, Deployment Challenges, and Research Gaps

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201022

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201022

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20201022

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20210115

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210302

R150 Certificate of patent or registration of utility model

Ref document number: 6847326

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees