IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ノゾミ・ネットワークス・エッセアジエッレの特許一覧

特開2022-161880ネットワークにおける攻撃パスの自動的な導出のための方法
<>
  • 特開-ネットワークにおける攻撃パスの自動的な導出のための方法 図1
  • 特開-ネットワークにおける攻撃パスの自動的な導出のための方法 図2
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022161880
(43)【公開日】2022-10-21
(54)【発明の名称】ネットワークにおける攻撃パスの自動的な導出のための方法
(51)【国際特許分類】
   G06F 21/57 20130101AFI20221014BHJP
【FI】
G06F21/57 370
【審査請求】未請求
【請求項の数】16
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022063892
(22)【出願日】2022-04-07
(31)【優先権主張番号】17/225,392
(32)【優先日】2021-04-08
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】519001338
【氏名又は名称】ノゾミ・ネットワークス・エッセアジエッレ
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ロベルト・ブルットメッソ
(72)【発明者】
【氏名】アレッサンドロ・カヴァッラーロ・コルティ
(72)【発明者】
【氏名】モレノ・カルッロ
(72)【発明者】
【氏名】アンドレア・カルカノ
(57)【要約】      (修正有)
【課題】ネットワークにおける攻撃パスの自動的な導出のための方法を提供する。
【解決手段】ネットワークにおける攻撃パスの自動的な導出のための方法において、最初に、そのネットワーク内で交換されるパケットに基づいた強化ネットワークトポロジーとしてのネットワークトポロジーを定義する10。次に、脆弱性情報アーティファクトとして、トポロジーの脆弱性を識別する20。さらに、トポロジーと脆弱性とに基づいたネットワークの原子攻撃データベースを構築する30。そして、ネットワークトポロジーの情報と、脆弱性の情報と、原子攻撃データベースとをインプットとして受信し、そのモデルを予め定義された形式モデルに置き換える40。その後、反例を探索するための予め定義された形式モデルのための予め定義されたSMTベースモデルチェッカーを実行する50。最後に、反例から攻撃パスを導出する60。
【選択図】図1
【特許請求の範囲】
【請求項1】
ネットワークにおける攻撃パスの自動的な導出のための方法であって、
ネットワークのトポロジーを、前記ネットワーク内で交換されるパケットに基づいて強化ネットワークトポロジーとして定義すること(10)と、
脆弱性情報アーティファクトとして前記トポロジーの脆弱性を識別すること(20)と、
前記トポロジーと前記脆弱性とに基づいて前記ネットワークの原子攻撃データベースを構築すること(30)と、
前記強化ネットワークトポロジー、前記脆弱性情報アーティファクト及び前記原子攻撃データベースを予め定義された形式モデルに置き換えること(40)と、
反例を探索するために、前記予め定義された形式モデルのための予め定義されたSMTベースモデルチェッカーを実行すること(50)と、
前記反例から前記攻撃パスを導出すること(60)と、を含み、
前記トポロジーを定義すること(10)が、
動作可能なように前記ネットワークに接続された計算機データ処理ユニットによって、ディープ・パケット・インスペクションモジュールによって前記パケットから導出された情報に基づいてネットワークトポロジーを構築するために前記ネットワークのディープ・パケット・インスペクションモジュールを実行することと、
前記計算機データ処理ユニットによって、前記強化ネットワークトポロジーを構築するためのアクティブ・クエリによって前記パケットから導出されたさらなる情報に基づいて前記強化ネットワークトポロジーを構築するために前記ネットワークのアクティブ・クエリ・モジュールを実行し、前記ネットワークトポロジーに前記さらなる情報を付加することと、を含み、
前記脆弱性を識別すること(20)が、
前記計算機データ処理ユニットによって、前記強化ネットワークトポロジーのノード情報と、予め定義された脆弱性データベースの既知の脆弱性との間の整合性に基づいて、前記ネットワークの各ノードの前記脆弱性情報アーティファクトを識別するために脆弱性評価モジュールを実行することを含み、
前記原子攻撃データベースを構築すること(30)が、
前記計算機データ処理ユニットによって、前提条件として前記ネットワークに対する一つ以上の原子攻撃と、所定の瞬間に同時にシステムの状態をキャプチャする動作を発見することを含み、前記動作は前記ノードの特徴のセットの観点で表現される、ネットワークにおける攻撃パスの自動的な導出のための方法。
【請求項2】
前記予め定義された形式モデルが回路的形式モデルである、請求項1に記載のネットワークにおける攻撃パスの自動的な導出のための方法。
【請求項3】
前記SMTベースモデルチェッカーが回路的SMTベースモデルチェッカーである、請求項1に記載のネットワークにおける攻撃パスの自動的な導出のための方法。
【請求項4】
前記回路的SMTベースモデルチェッカーが実行を別個のタイムステップに分割するグローバルクロックによって回路を定義する、請求項3に記載のネットワークにおける攻撃パスの自動的な導出のための方法。
【請求項5】
前記回路が、
外部入力からのデータが前記回路に流れ込むことができるポートとしての初期入力と、
前記回路から前記データを出力することができるポートとしての初期出力と、
前記データを保持することのできる基本記憶要素としてのラッチと、
基本論理関数を実行するステートレスコンビネーション要素としてのゲートと、
ステートレス演算比較器としての比較器と、
全ての前記タイムステップで同じ値を出力する、真偽値または記号定数の数としての定数と、を含む、
請求項4に記載のネットワークにおける攻撃パスの自動的な導出のための方法。
【請求項6】
前記初期入力が真偽値型または整数型である、請求項5に記載のネットワークにおける攻撃パスの自動的な導出のための方法。
【請求項7】
前記初期出力が真偽値型または整数型である、請求項5に記載のネットワークにおける攻撃パスの自動的な導出のための方法。
【請求項8】
前記ラッチが真偽値型または整数型である、請求項5に記載のネットワークにおける攻撃パスの自動的な導出のための方法。
【請求項9】
前記ラッチが、最初のタイムステップで前記回路が起動するときに保持している値を表す第1の値を保存する、請求項5に記載のネットワークにおける攻撃パスの自動的な導出のための方法。
【請求項10】
前記ラッチが後続の各タイムステップごとに新しい値で更新される、請求項9に記載のネットワークにおける攻撃パスの自動的な導出のための方法。
【請求項11】
前記ゲートの前記基本論理関数がAND、OR、NOTである、請求項5に記載のネットワークにおける攻撃パスの自動的な導出のための方法。
【請求項12】
前記ゲートが前記真偽値型のデータをとり、前記真偽値型のデータを返す、請求項5に記載のネットワークにおける攻撃パスの自動的な導出のための方法。
【請求項13】
前記ステートレス演算比較器が≦,<,=,>,≧である、請求項5に記載のネットワークにおける攻撃パスの自動的な導出のための方法。
【請求項14】
前記ステートレス演算比較器が前記整数型のデータをとり、前記真偽値型のデータを返す、請求項5に記載のネットワークにおける攻撃パスの自動的な導出のための方法。
【請求項15】
それぞれの前記タイムステップにおいて、現在のタイムステップにおける前記初期入力の初期入力値が読み込まれ、
前記現在のタイムステップにおける前記初期入力値と、前記現在のタイムステップの前記ラッチにおけるラッチの値が前記ゲートで処理され、
後続のタイムステップにおける前記ラッチの値が前記比較器によって生成され、
前記現在のタイムステップにおける前記初期出力の初期出力値が前記比較器によって生成される、
請求項5に記載のネットワークにおける攻撃パスの自動的な導出のための方法。
【請求項16】
前記各ノードと前記各ノードの前記特徴のそれぞれについてラッチが作られ、各タイムステップの前記ラッチの値はシステムの前記状態をそれぞれの前記タイムステップごとに定義する、請求項15に記載のネットワークにおける攻撃パスの自動的な導出のための方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークセキュリティポリシーの分野に関連する。特に、本発明は、ネットワークにおける攻撃パスの自動的な導出のための方法に関連する。
【背景技術】
【0002】
管理されたネットワークでさえも、さまざまな複合的サービスによるセキュリティ問題に起因する攻撃には脆弱である。つまり、単体で提供されたときに安全であるサービスであっても、同時に提供されたときの悪用に対する脆弱性を攻撃者に提供する。
【0003】
多くの現行のツールはシングル・ホストのコンテクスト中の脆弱性に取り組んでいる。それにもかかわらず、ネットワークにおけるさまざまなホストの構成に起因する脆弱性に取り組むことは重要である。安全なサイバー・フィジカル・システム(CPS)とインターネットオブシングス(IoT)のシステムは、どのように既存の原子脆弱性の中の相互依存性が敵対者に利用されて、システムに不正アクセスできる攻撃を同時に行いうるかについての識別を必要とする。
【0004】
ネットワーク攻撃パス分析は、コンピュータ・ネットワークのセキュリティ状況を分析するための重要な方法で、それはネットワークの脆弱性と、脆弱性に起因する潜在的脅威の間の相関関係を自動的に分析することができる。
通常、脆弱性と、関連する情報の連関分析がなされ、
特性が原子攻撃および対応する原子攻撃データベースを構築するために概念化される。
【0005】
ネットワーク攻撃モデルは、ネットワーク接続と、ホスト構成とによって構成される。
攻撃データベースにおける原子攻撃と整合させることを通じて、
比較アルゴリズムは特定の攻撃目標に導きうる潜在的攻撃パスを探索するために採用される。
【0006】
ネットワーク・セキュリティのグローバル・ビューを形作るのに不可欠な部分は攻撃グラフを作成することであって、正確な攻撃グラフはシステムセキュリティの中で重要な役割を果たす。100を超えるノードからなる攻撃グラフを手作業で構築することは、煩雑であり、間違いのもとであり、非現実的である。攻撃グラフの生成および分析の自動化技術が知られている。
【0007】
周知のアプローチは、原子レベル脆弱性がシステムセキュリティを不正アクセスするために利用されうる全ての可能なシークエンスのセットを列挙する攻撃グラフを生成するために、現存するモデルチェックツールとアーキテクチャ記述ツールを使用する。アーキテクチャ記述ツールはネットワーク化されたシステムの形式的表現、その原子脆弱性、それらの前後の状態、および対象となるセキュリティプロパティをキャプチャする。モデルチェッカーは、反例の形式の中の攻撃シークエンスを自動的に識別するために採用される。モデルチェッカーは、反例を解析し、それらを仕様緩和のためエンコードし、全ての攻撃シークエンスが明らかになるまで反復する。最後に、可視化ツールが、生成された攻撃グラフのグラフィカルな表現を生成しうる。
【0008】
そのため、正確な攻撃パスおよび、関連する攻撃グラフの生成を確実にする必要がある。
【発明の概要】
【課題を解決するための手段】
【0009】
本発明の目的は、SMTベースモデルチェッカーを使用し最も正確な方法で攻撃パスを生成することができる方法を提供することである。
【0010】
すなわち、本発明によれば、ネットワークにおける攻撃パスの自動的な導出のための方法が説明される。
【0011】
ネットワークにおける攻撃パスの自動的な導出のための方法は、
ネットワークのトポロジーを、ネットワーク内で交換されるパケットに基づいた強化ネットワークトポロジーとして定義することと、
トポロジーの脆弱性を脆弱性情報アーティファクトとして識別することと、
トポロジーと脆弱性とに基づいてネットワークの原子攻撃データベースを構築することと、
強化ネットワークトポロジーと、前記脆弱性情報アーティファクトと、前記原子攻撃データベースとを予め定義された形式モデルに置き換えることと、
反例を探索するために、予め定義された形式モデルのための予め定義されたSMTベースモデルチェッカーを実行することと、
反例から攻撃パスを導出することと、を含み、
トポロジーを定義することが、
動作可能なようにネットワークに接続された計算機データ処理ユニットによって、ディープ・パケット・インスペクションモジュールから導出された情報に基づいてネットワークトポロジーを構築するためのネットワークのディープ・パケット・インスペクションモジュールを実行することと、
計算機データ処理ユニットによって、強化ネットワークトポロジーを構築するためのアクティブ・クエリによってパケットから導出されたさらなる情報に基づいて、強化されたネットワークトポロジーを構築するためのネットワークのアクティブ・クエリ・モジュールを実行することと、さらなる情報をネットワークトポロジーに付加することと、を含み、
脆弱性を識別することが、
計算機データ処理ユニットによって、強化ネットワークトポロジーのノード情報と、予め定義された脆弱性データベースの既知の脆弱性との間の整合性に基づいて、ネットワークの各ノードの脆弱性情報アーティファクトを識別するための脆弱性評価モジュールを実行することを含み、
原子攻撃データベースを構築することが、
計算機データ処理ユニットによって、前提条件としてネットワークに対する一つ以上の原子攻撃と、所定の瞬間に同時にシステムの状態をキャプチャする動作を発見することと、を含み、その動作はそのノードの特徴のセットの観点で表現されるものである。
【0012】
さらなる実施形態において、予め定義された形式モデルは回路的形式モデルである。
【0013】
さらなる実施形態において、SMTベースモデルチェッカーは回路的SMTベースモデルチェッカーである。
【0014】
さらなる実施形態において、前記回路的SMTベースモデルチェッカーは、実行を別個のタイムステップに分割するグローバルクロックによって回路を定義する。
【0015】
さらなる実施形態において、前記回路は、
外部入力からのデータが回路に流れ込むことができるポートとしての初期入力と、
回路からデータを出力することができるポートとしての初期出力と、
データを保持することのできる基本記憶要素としてのラッチと、
基本論理関数を実行するステートレスコンビネーション要素としてのゲートと、
ステートレス演算比較器としての比較器と、
全てのタイムステップで同じ値を出力する、真偽値または記号定数の、数としての定数と、を含む。
【0016】
さらなる実施形態において、前記初期入力は真偽値型または整数型である。
【0017】
さらなる実施形態において、前記初期出力は真偽値型または整数型である。
【0018】
さらなる実施形態において、前記ラッチは真偽値型または整数型である。
【0019】
さらなる実施形態において、前記ラッチは最初のタイムステップで回路が起動したときに保持していた値を表す第1の値を保存する。
【0020】
さらなる実施形態において、前記ラッチは、後続の各タイムステップごとに新しい値で更新される。
【0021】
さらなる実施形態において、前記ゲートの基本論理関数は、AND、OR、NOTである。
【0022】
さらなる実施形態において、前記ゲートは真偽値型のデータをとり、真偽値型のデータを返す。
【0023】
さらなる実施形態において、前記ステートレス演算比較器は、≦,<,=,>,≧である。
【0024】
さらなる実施形態において、前記ステートレス演算比較器は整数型のデータをとり、真偽値型のデータを返す。
【0025】
さらなる実施形態において、各タイムステップにおいて、現在のタイムステップでの初期入力の初期入力値が読み込まれ、
現在のタイムステップの初期入力値と、現在のタイムステップのラッチにおけるラッチの値がゲートで処理され、
後続のタイムステップにおけるラッチの値が比較器によって生成され、
現在のタイムステップにおける初期出力の初期出力値が比較器によって生成される。
【0026】
さらなる実施形態において、各ノードと各ノードの特徴のそれぞれについてラッチが作られ、各タイムステップの前記ラッチの値はシステムの状態を各タイムステップごとに定義する。
【0027】
本発明における、前記およびさらなる特徴と利点は、添付の図に非限定的な方法で例示される望ましい実施形態の開示から明らかになるであろう。
【図面の簡単な説明】
【0028】
図1】本発明の一実施形態によるブロック図を表す。
図2】本発明の一実施形態による、ネットワークをモデル化した回路を表す。
【発明を実施するための形態】
【0029】
本発明は、ネットワークにおける攻撃パスの自動的な導出のための方法に関連する。
【0030】
本発明による方法は、あらゆる種類の物理インフラや、ネットワークに接続された自動化システム、とりわけ、製造産業のための産業プロセスや、発電のための産業プロセスや、流体(水、油およびガス)の分配のためのインフラや、電力を生産および/または伝送するためのインフラや、運輸管理のためのインフラなどのような、産業用の自動化システムに有用なアプリケーションを発見する。さらに、インフォメーションテクノロジー(IT)、オペレーションテクノロジー(OT)、またはモノのインターネット(IoT)を含む全てのテクノロジー環境において有用なアプリケーションを発見する。
【0031】
本発明において、「ネットワークプロトコル」という用語は、交換されるメッセージを構成するバイトが、エンティティが相互に理解するためにどのように構成されるべきであるかを説明する、ネットワーク上のエンティティの間の規則のシステムを意味する。特筆すべきネットワークプロトコルの例は、TCP/IP、Modbus、BACnetである。
【0032】
本発明において、「パケット」という用語は、ネットワーク上のエンティティの間で交換されたメッセージを表すバイトの有限な連なりを意味する。各プロトコルは、送信または受信されるパケットのための特定の構造を定義する。
【0033】
本発明において、「ノード」という用語は、ケーブルまたは無線の信号に基づいて、コネクションを介してデータを受信および/または送信することができるネットワーク内のデバイスを意味する。ノードは、例えばMACアドレスまたはIPアドレスになることのできる、一意な識別子によって定義される。
【0034】
本発明において、「エッジ」という用語は、(n_1,p,n_2)という表記を持つことのできるプロトコルpを経由したネットワーク内のノードn1とn2の直接的な通信を意味する。2つのノードの間には、いくつかのエッジが存在することができ、それぞれ一つずつ通信プロトコルが利用される。
【0035】
本発明において、「ネットワークトポロジーグラフ」という用語はネットワーク構造を抽象化したものを意味し、これは、ラベル付きグラフG(N,E,P)として表現されることができ、Nはノードの組であり、Eはエッジの組であり、Pはn_1,n_2∈N,n_1≠n_2, p∈Pのとき、それぞれのエッジが(n_1,p,n_2)のタプルになるようなプロトコルの組である。
【0036】
本発明において、「原子攻撃」という用語は、ネットワークの2つのノードを伴う攻撃を意味する。原子攻撃は、前提条件および動作として詳述される。前提条件は、トリガーを攻撃するために保持する必要のあるコンディションのリストである。例えば、「ターゲットノードは脆弱性xyzを持っている。」というものである。動作は、攻撃の影響であり、例えば、「攻撃者がターゲットノードのルート権限を獲得する。」というものである。
【0037】
本発明において、「攻撃パス」という用語は、攻撃者とみなされるソースノードn_1から始まり、例えば、(e_1,e_2,…,e_m)と表記されることもできるエッジe_1,e_2,…,e_mを通過することによって、被害者とみなされるターゲットノードn_(m+1)で終了するネットワークトポロジーグラフ内のパスを意味する。各エッジは原子攻撃の実行を表す。さらに、n_1以外のパス内の各ノードは、例えば、バッファオーバーフローのような攻撃に対して脆弱なソフトウェアを実行するとみなされる。
【0038】
本発明において、「ディープ・パケット・インスペクション」または「DPI」という用語は、ネットワークトラフィックをリッスンすることと、ネットワークのプロパティを導出するためにキャプチャされたパケットを調査することによって構成される技術を意味する。例えば、ソースの情報と、十分な多数のパケットの目的地はネットワークトポロジーグラフの構築に利用されうる。
【0039】
本発明において、「アクティブ・クエリ」または「AQ」という用語は、デバイス上で実行中のOSバージョンのような、要求された構成情報を含んだ返信をさせるために、ネットワークデバイスに調整されたデータを送ることによって、ネットワークの情報を導き出す方法を意味する。
【0040】
本発明において、「脆弱性」という用語は、攻撃者によって、システムに不正アクセスしたり、機密情報を盗んだり、またはデバイス上の管理者権限を獲得するために利用される潜在的な可能性がある、ハードウェアの構成要素またはデバイスで利用されるソフトウェアの弱点を意味する。既知の脆弱性のリストはMitreという組織によって、JSONやXMLやその他のマシン可読形式で提供されているような、公的に利用可能なオンラインリソースを介して獲得することができうる。
【0041】
本発明において、「脆弱性評価」という用語は、マシンにインストールされたソフトウェアのリストをインプットとして受信することおよび、脆弱性データベースに基づいて、ソフトウェアに影響を与える脆弱性の組をアウトプットする、ソフトウェアまたはハードウェア型のモジュールを意味する。
【0042】
本発明において、「形式モデル」という用語は、同等なものであるが、例えば、数学的または論理的な表現の組のような形式的言語で表現されたもののような、形式的な言語で表現されたものに再計算することによって、問題の解決方法にアプローチするための技術の組を意味する。これらの表現は、自動化されたツールによって解決されることができ、そしてその解決方法は、元の問題の解に還元されることができる。最も有名な技術のひとつがモデル検査であり、問題を有限な状態のオートマトンに置き換える。モデル検査は、モデルチェッカーによるハードウェアおよびソフトウェアの安全判断のために、工業環境において上手く採用されている。
【0043】
本発明による、ネットワークにおける攻撃パスの自動的な導出のための方法は、本発明の一実施形態によるブロック図を表した図1の図と、それに関連した本発明の一実施形態による、ネットワークをモデル化した回路を表した図2の図と共に参照され説明される。
【0044】
この方法は、ブロック10で図示された、そのネットワーク内で交換されるパケットに基づいた強化ネットワークトポロジーとしてのネットワークのトポロジーを定義することを含む。
【0045】
特に、ネットワークのトポロジーを定義することは、実行できるようにネットワークに接続された計算機データ処理ユニットによって、ネットワークのディープ・パケット・インスペクションモジュールおよび、図1のブロック10のサブブロックで図示されるような、ネットワークのアクティブ・クエリ・モジュールを実行することを含む。
【0046】
ディープ・パケット・インスペクション(DPI)のモジュールは、ディープ・パケット・インスペクションモジュールによって導出された情報に基づいてネットワークトポロジーを構築する。
【0047】
それゆえに、ネットワークのトポロジーは、同じネットワークに接続され、ネットワークを介して実行するトラフィック上のDPIを実行するマシンを用いて、ネットワークから自動的にコンパイルされることができる。例えば、ネットワークのトポロジーは以下のように再構築されることができる:それぞれのパケットについて、ソースのためのノードと、目的地のためのノードと、認識されたプロトコルによってマークされた、二つのノードを接続するエッジとを作成する。したがって、ネットワーク上のデバイスを正確な方法で識別することと、相当するネットワークのトポロジーグラフを構成することが可能になる。この情報は容易にマシン可読形式でエクスポートすることが可能である。また、DPIも、特定のデバイス上で動作しているオペレーティングシステムおよびソフトウェアについての情報を推測するために利用されることができる。
【0048】
アクティブ・クエリ(AQ)モジュールは、その強化ネットワークトポロジーを構築するために、アクティブ・クエリによって、パケットから導出されたさらなる情報に基づいた強化ネットワークトポロジーを構築し、すでにディープ・パケット・インスペクションと共に定義されているように、ネットワークトポロジーにさらなる情報を付加する。
【0049】
DPIおよびAQモジュールが十分な長さで動作することは、検査中のネットワークに基づいた非常に詳細なナレッジベースを生産することができる。
【0050】
さらに、その方法は、ブロック20で図示されるように、脆弱性情報アーティファクトとして、トポロジーの脆弱性を識別することを含む。
【0051】
特に、脆弱性を識別することは、計算機データ処理ユニットによって、強化ネットワークトポロジーのノード情報と、予め定義された脆弱性データベースの既知の脆弱性との間の整合性に基づいて、ネットワークの各ノードの脆弱性情報アーティファクトを識別するための脆弱性評価モジュールを実行することを含む。
【0052】
特に、脆弱性を識別することは、計算機データ処理ユニットによって、強化ネットワークトポロジーのノード情報と、予め定義された脆弱性データベースの既知の脆弱性との間の整合性に基づいて、ネットワークの各ノードの脆弱性情報アーティファクトを識別するための脆弱性評価モジュールを実行することを含む。
【0053】
ブロック10をブロック20と繋ぐ破線の矢印によって図示されるように、脆弱性を識別することは、DPIおよび脆弱性データベースを伴うAQモジュールによって獲得されたネットワークノード上で利用可能なソフトウェアの情報とマッチし、ネットワークグラフのそれぞれのノードに、実行中のソフトウェアと関連付けられた既知の脆弱性を加える。この処理は脆弱性情報アーティファクトを生産する。
【0054】
さらに、その方法は、ブロック30に図示されるように、トポロジーと脆弱性とに基づいたネットワークの原子攻撃データベースを構築することを含む。
【0055】
特に、原子攻撃データベースを構築することは、計算機データ処理ユニットによって、ネットワークに対するひとつまたはそれ以上の原子攻撃を、前提条件および、所定の瞬間に同時にシステムの状態をキャプチャする動作として発見することを含み、その動作は、ノードの特徴のセットを単位として表現される。
【0056】
ブロック10をブロック30と繋ぐ点線の矢印によって図示されているように、原子攻撃データベースを構築することは、DPIおよび脆弱性データベースを伴うAQモジュールによって獲得されたネットワークノード上で利用可能なソフトウェアについての情報を使用し、所定の瞬間に同時にシステムの状態をキャプチャする。
【0057】
したがって、原子攻撃データベースは、前提として説明される原子攻撃及び、所定の瞬間に同時にシステムの状態をキャプチャする必要のあるノードの特徴のセットとして次々と表現される動作のリストであり、それは後に続く例によって、より理解されるであろう。
【0058】
以下の特徴について考慮する:
権限:ユーザがノードに関して保有していた許容レベルである。これは{ none,user,admin}という値を仮定することができる。
健全性:ノードの健全性ステータスである。これは{ ok,leak }という値を仮定することができる。
CVE-2016-3266:ノード上に脆弱性が存在するかどうかである。これは{ true,false }という値を仮定することができる。この脆弱性は、ローカルユーザがターゲットノードの管理者権限を取得することを可能にする。
CVE-2020-3847:ノード上に脆弱性が存在するかどうかである。これは{ true,false }という値をとることができる。この脆弱性は、リモートユーザがターゲットノードのメモリが漏洩することを可能にする。
ノードxと特徴kが与えられたとき、現在のノードの状況を参照するためにx[k]という表記を用い、ノードの次の状態を参照するためにx'[k]という表記を用いる。
この特徴は、xとyがネットワーク内で接続されていると仮定する場合に、以下の通り二つの原子攻撃を説明するために用いることができる。
第一の攻撃は、以下のように形式化することができる:CVE-2020-3847メモリリーク
ソースマシン: x
ターゲットマシン: y
前提条件:
(x[権限]= user)∧
(y[健全性]=ok)∧
(y[CVE_2020_3847]=true)
事後条件:
y^' [健全性]=leak
第二の攻撃は、以下のように形式化することができる:CVE-2016-3266 権限の獲得
ソースマシンとターゲットマシンとが同一であること: x
前提条件:
(x[権限]= user)∧
(x[CVE_2016_3266]=true)
事後条件:
x^' [権限]= admin
セキュリティの専門家によって、データベースはコンパイルされ、データベース内のコンテンツはJSON、XML、またはCSVなどのマシン可読形式で利用可能であると仮定する。
【0059】
さらに、この方法は、ブロック40に図示されるように、強化ネットワークトポロジーを置き換えること、つまり脆弱性情報アーティファクトと原子攻撃データベースを予め定義された形式モデルに置き換えることを含む。ブロック10、20および30からブロック40に収束する実線の矢印で図示されるように、翻訳モジュールはネットワークトポロジーの情報と、脆弱性の情報と、原子攻撃データベースとをインプットとして受信し、そのモデルを予め定義された形式モデルに置き換える。
【0060】
一実施形態において、予め定義された形式モデルは回路的形式モデルである。
【0061】
さらに、その方法は、ブロック50に図示されるように、反例を探索するための予め定義された形式モデルのための予め定義されたSMTベースモデルチェッカーを実行することを含む。ブロック40からブロック50への実線の矢印で図示されるように、予め定義されたSMTベースモデルチェッカーを実行することは予め定義された形式モデルに対してなされる。
【0062】
一実施形態において、SMTベースモデルチェッカーは回路的SMTベースモデルチェッカーである。さらに、回路的SMTベースモデルチェッカーは実行を別個のタイムステップに分割するグローバルクロックによって回路を定義する。望ましくは、以下を含む:
―外部入力からのデータが回路に流れ込むことができるポートとしての初期入力。
―回路からデータを出力することができるポートとしての初期出力。
―データを保持することのできる基本記憶要素としてのラッチ。
―基本論理関数を実行するステートレスコンビネーション要素としてのゲート。
―ステートレス演算比較器としての比較器。
―全てのタイムステップで同じ値を出力する、真偽値または記号定数の、数としての定数。
【0063】
入力言語はイントレピッド(Intrepid)モデルチェッカーとして定義されることもある。特に、イントレピッド入力言語は、異なる回路的モデルチェッカーでも同様に、実行を別個のタイムステップに分割するグローバルクロックによって回路として描写することを可能にする。回路は以下からなる:
―初期入力(PI):外部入力データが回路に流れ込むことができるポートである。真偽値型または整数型をとることができる。
―初期出力(PO):データが回路から流れ出すことができるポートである。真偽値型または整数型をとることができる。
―ラッチ:データを保持することのできる基本記憶要素である。真偽値型もしくは整数型の値を保持することができる。さらに、最初(タイムステップ0)に回路が起動したときに保持していた値を表す最初の値(第一の値)を保存する。
ラッチは、後続の各タイムステップごとに新しい値で更新される。
―ゲート:AND、OR、NOTのような基本論理関数を実行するステートレスコンビネーション要素である。真偽値型のデータをとり、真偽値型のデータを返す。
比較器:≦,<,=,>,≧のようなステートレス演算比較器である。整数型のデータをとり、真偽値型のデータを返す。
定数:全てのタイムステップで同じ数を出力する、真偽値または記号定数の数である。
【0064】
回路は以下のとおりに作動する。各タイムステップにおいて、現在のタイムステップでの初期入力(PI)の初期入力値が読み込まれる。これらの現在のタイムステップの初期入力値と、現在のタイムステップのラッチにおけるラッチの値とがゲートで処理される。後続のタイムステップにおけるラッチの値が比較器によって生成され、現在のタイムステップにおける初期出力の初期出力(PO)値が比較器によって生成される。各ノードと各ノードの特徴のそれぞれについてラッチが作られる。さらに、各タイムステップのラッチの値はシステムの状態を各タイムステップごとに定義する。
【0065】
置換を行うために、すべての対象とするシステムの状態のコレクションが行われる必要がある。これらの状態は原子攻撃データベースから集められることができる:それらはすべての原子攻撃に言及されるすべての特徴Fの組である。次いで、それぞれのノードnと、それぞれの特徴kとに対して、ラッチn[k]が作られ、合計すると|N|×|F|ラッチとなる。時間tにおいてこれらのラッチに保存された値の組は、時間tにおけるネットワークの状態である。それぞれのラッチは最初の原子攻撃が始まる直前のネットワークの状態で初期化される。置換の中でひとつの原子攻撃が正しくひとつのステップを実行するという暗黙の仮定が適用される。それぞれのタイムステップにおいて原子攻撃が起こりうる。
それぞれの原子攻撃は整数型IDによって識別される。置換の中で、PIの選択攻撃(chosen_attack)が作成される:この入力はタイムステップにおいて引き起こされる非決定論的な攻撃の選択をシミュレートする。次いで、各ラッチの次の状態ロジックは、選択攻撃と各攻撃の前提条件とに依存する「ケース文」(case-statement)の回路的均等性によって計算される。
【0066】
以下の例について考慮する。そのネットワークが、エッジによって接続された二つのノードxとyとによって構成され、例1のセットアップを考えると仮定する。次いで、ラッチy[健全性]の次の状態関数をモデル化する回路は、図2(図の中で、次の状態関数x[権限]、y[CVE_2020_3847]、および回路の残りは示されていない)によって報告されるものである。
【0067】
上記で説明された回路的置換は、それ自身のPythonのAPIを介してイントレピッドに移動することができる。APIは入力、ラッチ、ゲート、定数、比較器を作成する関数を公開し、ラッチの最初および次の状態関数をセットする。
【0068】
モデルチェッカーを実行するために必要なさらなるものは、プロパティである。プロパティは全てのネットワークの状態において当てはまる必要のある条件である。例えば、プロパティ
never(y[権限]=admin)
は、ネットワーク内で攻撃者が決してノードyの管理者権限を獲得することができないことを表している。回路的置換において、プロパティは、出力が常に固定値となるモデルチェッカーの中の組である、小さなサブ回路とともに表されることがある。
【0069】
さらに、その方法はブロック60で図示されるように、反例から攻撃パスを導出することを含む。
【0070】
モデルチェッカーの実行は、実行時間が非常に長くかかることがあるが、プロパティが常にシステム内で保持していると宣言すること、または、初期状態からプロパティの侵害に導く状態の組である反例を提供することによって、最終的には終了する。この例では、プロパティへの侵害は、例えば、ターゲットマシンにおける管理者権限の獲得を可能にした攻撃パスを発見したことに相当する。
【0071】
イントレピッドからの反例は、全てのタイムステップにおけるそれぞれのラッチと入力の値をリスト化し、これによって、それぞれのステップに対する一つ一つの原子攻撃を再構成することが可能になる。
図1
図2
【外国語明細書】