説明

セキュリティ解析に基づいて技術システムの再構成を行なうための装置、並びに対応する技術的意思決定支援システム及びコンピュータプログラム製品

本発明は、セキュリティに関して技術システム(2)を解析及び再構成する装置、並びに対応する意思決定支援システム及びコンピュータプログラム製品に関するものである。グラフ構成器(20)は、入力インタフェース(10)を介して受信したシステム(2)に関する技術情報に基づいてアタックノードの有向グラフにおいて潜在的なアタックの表現を提供する。システム/対抗策解析ユニット(30)は、異なる対抗策のセットを格付し、セキュリティを向上するために選択された対抗策のセットを行なうことを可能にする。解析ユニット(30)は、対抗策のセット毎に以下の手順を実行する。すなわち、i)有向グラフにおいてアタックに対する対抗策のセットを論理的に適用し、ii)アタックのリスクを軽減することに関する対抗策の有効性に基づいて適用された対抗策のセットのランクを判定する。出力及び/または制御ユニット(40)は、技術システム(2)の再構成のために適切な制御信号を提供しかつ/または適切な制御動作を実行してもよい。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、技術システムに対するセキュリティ脅威、セキュリティリスクまたはセキュリティアタック(security attack:セキュリティ攻撃)の解析に基づいて技術システム(technical system)の再構成を行なう装置、並びに対応する技術的意思決定支援システム及びコンピュータプログラム製品に関するものである。
【背景技術】
【0002】
技術システムまたは対応する技術処理のセキュリティは、本質的に、基礎となるシステムの脆弱性及びセキュリティ脅威を技術的に理解することを含む技術的な性質である。セキュリティの点から興味を引く技術システムの例は、ある程度自動化された製造工程、情報/通信システム及び輸送システム等の産業的な処理システムを含んでいる。そのようなシステムは、有形資産または無形資産を含んでいる。そして、それらの資産は、悪意のある第三者がそれらの資産を制御するためにシステムをアタックしようとする動機を与える。しかしながら、場合によっては、アタッカー(attacker:攻撃者)(群)は資産自体よりシステムを(うまく)アタックすることにより得られる名声に興味がある場合がある。このことは、例えば、「コンピュータハッカー」の間では一般的である。
【0003】
一般的なセキュリティ解析の分野におけるいくつかの従来の概念を説明することにより開始することは有用だろう。以下に提示される例の一部は基礎となる概念を理解し易くするために簡略化されているが、実際には当該システムは常に技術システムであることが理解されるべきである。多くの場合、技術システムは、技術的関係及び複数レベルへの依存性を有する非常に複雑なシステムである。
【0004】
アタックツリー(attach tree)の概念の簡単な概論
アタックツリー(AT:Attack Tree)の概念は、参考文献[11]においてブルース シャネイヤ(Bruce Schneier)により紹介されている。以下の概論は、多少の変更はあるがが、この参考文献に基づくものである。
【0005】
アタックツリーとは?
アタックツリーは、技術システムの脆弱性の知識を表す方法である。その知識は、何らかの方法で取得される必要があり、そのためにAT群は十分とは言えないが有用である。重要な点は、AT群が、存在するセキュリティ脅威そのものに関する知識を追加するのではなく、その代わりに知識を表す方法を提供して脅威の相対的な重要性を判定する処理を容易にすることである。
【0006】
アタックツリーの構成
アタックツリーは、理想的には、トップダウン分割統治法(top-down, divide and conquer approach)により構成される。この概念は、アタッカーが金庫を開けようとする(金庫の中身が得られる見通しにより動機付けされる可能性が高い)単純な例により容易に理解することができる。従って、ここでは、当該技術システムは金庫であり、脅かされている資産が金庫の中身である。第1のステップは、解析したいアタックの目的を定義することである。この例において、アタックの目的は金庫を開けること(「金庫を開ける(open safe)」)である。これは、図1Aに示されるようにアタックツリーのルートノード(root node)として配置される。
【0007】
次のステップは、これが達成される方法を示すことであり、2つ以上の方法が存在してもよい。技術環境及び全ての他の関連する側面の完全な解析の後、これを行なうことが可能な方法が2つだけ存在することを決定することができる。すなわち、金庫をこじ開けるか(cutting the safe open)または鍵で金庫を開けるかである。これらの2つの動作は、図1Bに示されるように、先行ノードとしてルートに追加される。
【0008】
次に統治ステップが行なわれる。2つの追加されたノードの各々は、それらに到達する全ての可能な方法を確立するために解析される。この場合、金庫をこじ開けることは、更なる絞り込みを必要としない程十分に単純であると決定される。本明細書において、単純とは容易と同一ではない。その代わり、困難性に関係なく実行される方法が明らかである時に動作は単純であると考えられる。更なる絞り込みが必要でないところまで絞り込まれている動作は、アトミックアタック(atomic attack)と呼ばれる。一方、鍵で金庫を開けるという別の方法は、十分な程度まで絞り込まれていない。従って、この動作が実行される方法は更に解析され、この場合、これを行なう3つの異なる方法があることが決定される。すなわち、鍵屋を利用する方法、番号を盗む方法または番号を取得するために盗聴する方法がある。これらの3つの方法は、図1Cに示すように、「金庫を鍵で開ける」ノードの先行ノードとして追加される。この例は非常に簡略化されているが、アタックツリーとシステムへの物理的/技術的影響との間には直接関係があることは明らかである。
【0009】
3つのノードは、上述のように正確に解析される。この例において、番号を盗聴することは、アトミックアタックであると考えられ、一方、鍵屋を利用することは、それを行なうことを説得するかまたはそれを行なうように買収することにより達成されると判定される。
【0010】
第3の方法である番号を盗聴することは、何らかの方法で提示された番号を取得し、それと同時に会話を聞くことによってのみ達成される。これは、盗聴することが表すサブアタックを達成するために全ての先行ノードが達成される必要があるので、盗聴をいわゆるand−ノード(and-node)にする。これは、or−ノード(or-node)群、すなわち、直前の先行ノードのうちの1つのみを達成することにより達成されるノードであるこれまでに説明された他の全てのノードと対照的である。図では、図2のように、and−ノードはor−ノードの場合のような円形ではなくボックスで表され、それに向かう矢印は通常の矢先ではなく小さな円を有する。
【0011】
この時点において、アタックをそれ以上絞り込む必要はないと判定されてもよい。すなわち、全てのリーフがアトミックアタックとして考えられると判定されてもよい。従って、アタックツリーは完全であると考えられ、脅威に関する全ての知識はツリーに表される。ノードがアトミックアタックであると識別するために十分に単純であると考慮する時期についての判定は、構成者に完全に任せられ、構成されたツリー毎に個別に判定される必要がある。
【0012】
上記例においては、技術システムに対する単一の脅威/アタックのみを考慮している。一般的に、理解する必要がある脅威は複数ある可能性があり、この一般的な例については後述する。
【0013】
アタックツリー解析
次に、脅威が定性的観点からアタックツリーとしてモデル化されるため、そのアタックツリーはより定性的な方法で技術システムのセキュリティを評価または「測定」するために使用される。これは、最初に、評価しようとするいくつかの属性に従ってアトミックアタックを「格付(rating)」し、次に、システム全体の属性値を導出することにより行なわれる。すなわち、これは、アタックツリーの構成と同様に一例により最もよく説明される。
【0014】
一例として、金庫を開ける脅威が実際に実現可能であるか否か、すなわち「ブール(Boolean)」属性への関心があると想定する。
【0015】
第1のステップは、ツリーのアトミックアタック群が可能であるか否かに関してそれらのアトミックアタック群を格付することである(条件/仮定の所定のセット下で)。その結果を図3に示す。図3において、Iは不可能(Impossible)を意味し、Pは可能(Possible)を意味する。次に、以下の当然な2つのルールが使用される。
【0016】
1.or−ノードは、少なくとも1つの先行ノードが可能である場合に、可能であると定義される。
【0017】
2.and−ノードは、全ての先行ノードが可能である場合に、可能であると定義される。
【0018】
可能性または不可能性は、それらの2つのルール及び各アトミックアタックに対する可能性(不可能性)の割当を使用して、非常に単純な「ボトムアップ」式で、ツリーの非アトミックアタック毎に導出される。所定の例を使用してこれを行なった結果を図4に示す。
【0019】
図4から分かるように、脅威は実現可能である。また、この脅威の実現方法も明らかである。すなわち、買収された鍵屋を利用して鍵で開けることにより実現されることが明らかである。この例において、これが唯一の方法である。更に一般的な例において、実現可能な脅威は、ルートからのパス(群)に関して見つけられる。ここで、パス(群)中の全てのラベルはPラベルを有する。可能性/不可能性は、文献[11]で説明される唯一の属性ではない。提案される他の属性は、最も容易なアタックの困難性(例えば、必要とされる時間/技術)、アタッカーが全てのアタックに対して特別な機器を使用する必要性(例えば、全てのアタックがパワードリルを使用することを必要とする)、最も安価なアタックのコスト(お金/資源に関する)等である。それらの属性の各々に対して、or−ノード及びand−ノードの値を導出する方法は、適当であると考えられる方法で決定されなければならない。一例として、可能性が説明された時の上記ルールに対応する、最も安価なアタックのコストを計算するための2つのルールは、以下の非常に当然な定義であってもよい。
【0020】
1.or−ノードのコストは、先行ノード群の最小コストに等しい
2.and−ノードのコストは、先行ノード群のコストの合計に等しい
図5に示されるアトミックアタックのコストのセットを仮定し、先のアタックツリーを使用しかつ代わりに最小コスト属性を計算すると、結果として得られるツリーは図5のようになる。
【0021】
尚、アトミックアタックはそれらの2つの例において初期条件の異なるセットにより格付けされる。一例として、鍵屋を説得するコストは、それが不可能である場合には無関係である。初期条件が事実上同一である場合、他の属性の有意な解析が実行される前に、ツリーは不可能なノードを取り除く必要がある。
【0022】
特別な機器に対するコスト、困難性及び必要性に関する情報を導出した後、システムの全体のセキュリティは、敵が誰であるかを検討することにより評価される。潜在的に莫大な財源を有しかつ知識を殆ど有さないエンティティである場合、当然、アタックを実現することが技術的に困難であることが重要であるが、高価であるか否かは殆ど重要でない。一方、敵が有能なコンピュータハッカーである場合、入手困難な特別な機器に対する高いコスト及び必要性が重要であるが、ハッカーはコンピュータを使用して実現可能であることのほぼ全てのことを行なえると仮定されるため、侵入する困難性はそれ程重要ではないだろう。対抗策群(countermeasures)に関して適切に決定されるのは、解析結果がアタッカーに関する情報と組み合わされる場合であり、この点に関しては、文献[11]において強く強調されている。
【0023】
AT群が解析の結果を表す時だけでなく脅威を解析する際にも役立つことは、この節の冒頭で説明した。その概念は、システムのアナライザが深さの全ての側面を体系的に包囲する方法を取得することであり、この構造化された方法は、起こる可能性のある脅威を監視するリスクを軽減できる。当然、解析は、常に最終的にはアナライザに依存する。
【0024】
自動化
上記例は、アタックツリーが使用される方法を説明する目的にのみ対応する「実用的でない」例と考えられる。大規模で複雑な技術システムでは、関連するアタックツリーは非常に大きい可能性がある。しかしながら、当業者には理解されるように、上述したリーフからルートまでアタックツリーを走査する方法は装置により容易に自動化され、それにより「and/or」頂点に対する2つのルールに従って上向きに値を伝播する。
【0025】
この分野及び他の関連分野においては、多くの文献が発表されている。
【0026】
文献[8]では、アタックツリーの更に形式的な処理が分かる。著者は、アタックツリーに対する数学的に厳密なフレームワーク及び[11]で説明される伝播及び投影に対するアルゴリズムを提供している。しかしながら、この理論は、全ての可能な種類の(非ツリー)グラフを許容しないので、そのまま使用できない。理論の性質自体が直接的な方法で拡張することを不可能にするため、この理論に対する関心は低くなる。
【0027】
アタックグラフ
主に、カーネギーメロン大学(Carnegie Mellon University)において研究されるアタックグラフの主題は、アタックツリーに対する名前が類似している。しかしながら、概念がアタックツリーとは完全に異なるため、類似しているのはそこまでである。アタックグラフの目的は、システムのモデルから、システムに対する全ての可能なアタックを導出し、最終的にそれらの可能性を防止する動作のセットを考案することである。使用される主な方法は、所望の特性を満足するネットワークモデルの安全状態のセットSを指定し(システムにセキュリティ違反がないことを取り込む)、Sにない、ある状態に到達するモデルが存在する場合は、そのモデルにおいて実行を行なうために標準的なモデルチェック技術を使用することである。そのような状態に到達することはセキュリティ違反を意味するため、そのような状態に到達しない場合にはシステムはセキュリティで保護されている。換言すると、アタックが行なわれるかを判定することは、グラフ到達可能性の問題を解決することと同一である。アタックグラフは、アタックツリーと比較して利点を有するが欠点も有する。第1に、アタックグラフは、主に、アタックが存在するかを演繹することに関する。アタックグラフは、アタックを阻止する「最適な」対抗策を見つけるために使用される。しかしながら、この最適な対抗策を見つけることは、実質的に実現不可能であり、かつほぼ最適な対抗策を決定する必要があるNP完全グラフ問題を解決することに助けを借りる。更に「最適な」は、システムの抽象的なグラフ表現において必要とされる変更数によってのみ定量化される。実用的には、完全に異なるいくつかの対抗策であり得るうちの、最も実際に実現可能となる対抗策により興味を有する可能性がある。他の定量的な態様は、全く考慮されない。アタックグラフに関する更なる背景については、文献[12]を参照されたい。
【0028】
拡張アタックツリー
アタックツリーの概念に対しては種々の拡張が行なわれている。文献[7]、[4]では、ティドウェル(Tidwell)等、パラメータ、変数、サブ目的、事前条件及び事後条件によりアタックツリーの概念を拡張している。また、ティドウェル等は、アタックツリーのノードの階層クラスタリング方法であるENT(Elevated Node Topology)の概念を更に紹介している。この拡張は、特に無関係であると考えられるいくつかのアタックから成るアタック群からのアタック検出を行なうシステムの一部として使用される。文献[3]では、階層クラスタリングは、本質的にENTと同一であるSNT(Stratified Node Topology)として再定義される。SNTに導入されている追加の概念は、アタックツリーの黙示的リンク及び明示的リンクの概念である。それらの間の相違点は、黙示的リンクが他のイベントによって自動的に引き起こされるイベントを記述するために使用される一方で、明示的リンクが必ずしも実行されるとは限らない別のアタックを可能にすることを記述することである。文献[5]では、それらのリンクは、システムの記述からアタックツリー連鎖の概念を介してアタックツリーを自動的に生成する方法を完全に説明している。更に、システムに対するアタックの確率を解析するために、生成されたアタックツリーを使用する方法の非常に大まかな構成を提供している。
【0029】
アタックツリーにより行なわれたシステムに対する脅威をモデリングする別の方法は、単なる通常のグラフの代わりにペトリネット(Petri Nets)を使用することである。ペトリネットは、いくつかの余分な特徴を含むグラフである。非公式には、ペトリネットは、ペトリネットの初期状態を記述する関数及びシステムの可能な遷移を記述するいくつかの追加の制約との関係が付随するグラフである。これを視覚化するための自明な方法は、頂点にトークンを有するグラフ及びトークンが移動する方法を記述するいくつかのルールと同様であり、遷移の開始から完了までにトークン数が変動することを許容する。ペトリネットのより踏み込んだ概要については、文献[6]、[15]を参照されたい。
【0030】
上述の研究は、本質的に興味深いが、システムセキュリティを向上する場合には実用的な観点から多用されない。適切でない主な理由は、既存のアタックツリーを解析することではなく、システムの記述からアタックを予測する方法に注目しているからである。ティドウェル等の文献[4]、[5]の概念の一部は興味深く、また、それは、拡張に対する発想、特に、パラメータに関する説明をもたらすものである。
【0031】
文献[9]のようなアタックネットの使用は、実際には、更なる表現モデルを提供する。特に、単なるAND/ORノードより複雑なルールを有する能力は興味深い。しかしながら、モデルがより複雑になると、単純なAND/ORツリー構造に固有の直観は失われる。ここでのトレードオフは、手近な特定のアプリケーションにとって大きすぎると考えられる。
【0032】
既存ツール
アタックツリーの解析を行なうツールが既にいくつか存在する。特に、アメナザテック社(Amenaza Tech Ltd.)のセキュアアイツリー(securITree)と呼ばれる市販のツールがある。このツールは、主に、それ程コンピュータに習熟してない人の操作性を重視していると考えられる。更なる情報については、文献[1]を参照されたい。
【0033】
更に、アレキサンダー オペル(Alexander Opel)[10]により開発されているツールがある。このツールは、ある種の解析及びアタックツリーを構築する基本的な機能性を含んでいるが、より一般的な事例を許容していない。そのレポートにおいては、一般に設計及び実装に関連するいくつかの興味深い点が存在している。
【発明の概要】
【発明が解決しようとする課題】
【0034】
しかしながら、この技術分野における過度な研究にも関わらず、更に一般的な技術システム(特に、ツリーまたは非常に単純なグラフによりモデル化することができない事例)に対するアタックを解析し、かつこれを考慮して、システムセキュリティを改善するために、当該技術システムの適切な再構成を可能にする、効果的な装置及び/またはツールに対する一般的な要求が依然として存在している。
【0035】
技術システムに対するアタックの解析に基づく効率的なシステム再構成に対する改善に関する一般的な要求が存在する。
【0036】
本発明の目的は、改善されたシステムセキュリティを取得するために技術システムのセキュリティの解析に基づいて技術システムを再構成する改善された装置を提供することである。
【0037】
別の目的は、改善されたシステムセキュリティのための技術システムの再構成を可能にするために技術システムのセキュリティを解析する改善された技術的意思決定支援システムを提供することである。
【0038】
更に別の特定の目的は、コンピュータシステム上で実行する時に、改善されたシステムセキュリティのための技術システムの再構成を可能にするために技術システムのセキュリティを解析する対応するコンピュータプログラム製品を提供することである。
【0039】
これらの目的及び他の目的は、添付の請求の範囲により定義される本発明により達成される。
【課題を解決するための手段】
【0040】
本発明者は、従来技術が個々のシステム構成及び/または動作の独立した解析、あるいは当該技術システムが影響を受け易い可能性がある新しいアタックを見つけることを主に重視することを理解している。
【0041】
本発明は、技術システムに対する潜在的なアタックのグラフ表現に対して対抗策の異なるセットを体系的に適用することまたはシミュレートすること及びアタックのリスクを軽減することに関する適用された対抗策の有効性に基づく格付リストを提供することに基づいて、技術システムを効率的に再構成する新しい方法を提案する。このように、最高のランクを有する(すなわち、最も効果的な)対抗策のセットの中から選択でき、適切な対抗策のセットを技術システムに適用する。
【0042】
本発明は、従来技術により提供されているものを越える対抗策の自動化された評価及び効果的な比較を可能にする。
【0043】
一般に、アタックのリスクは、アタックが実現される場合の予想される損失として定義されるため、通常、リスクの軽減は、予想された損失の減少と関連付けられる。
【0044】
例示的な一実施形態において、有効性またはリスク軽減が対抗策を適用するコストに関連して評価されるように、格付リストは対抗策のコストを更に考慮することによって補完されてもよい。
【0045】
また、例えば、対抗策が適用されない技術システムのランクを使用することによって、格付手順において対抗策の異なるセットを比較する場合に共通の基準を使用できる。これは必須ではないが、対抗策の異なるセットに対する向上された技術セキュリティの実際の程度の場合によっては好適であるオプションの指示を与える。
【0046】
本発明の第1の態様において、向上されたシステムセキュリティを取得するために技術システムのセキュリティの解析に基づいて技術システムを再構成する装置が提供される。基本的に装置は、技術システムを特徴付ける技術情報を受信する入力と、技術システムに対するセキュリティ脅威、リスクまたはアタックを表すグラフ表現ユニットと、対抗策を格付する格付ユニットと、対抗策選択器と、システム再構成ユニットとを含んでいる。グラフ表現ユニットは、受信した技術情報に基づいて、技術システムに関連する属性を有するアタックノードの有向グラフにおいて技術システムに対する潜在的なアタックの表現を提供するように構成されている。格付ユニットは、システムセキュリティを向上するために、選択された対抗策のセットが行なわれるように複数の異なる対抗策のセットを格付するように構成されている。対抗策の各セットは、少なくとも1つの対抗策を含んでいる。更に詳細には、格付ユニットは、対抗策のセット毎に以下の手順を実行するように構成されている。すなわち、i)有向グラフにおいてアタックに対する対抗策のセットを論理的に適用し、ii)アタックのリスクを軽減することに関して適用された対抗策のセットの有効性に基づいて、適用された対抗策のセットのランクを判定する。選択器は、最高のランクを有する対抗策のセットの中から選択するように構成され、システム再構成ユニットは、選択された対抗策のセットを技術システムに適用するように構成されている。
【0047】
制御及び/または意思決定結果は、当該技術システムへの物理的/技術的影響に直接対応することが明らかである。
【0048】
本発明の第2の態様において、技術的意思決定支援システムが提供される。基本的には、技術的意思決定支援システムは、改善されたシステムセキュリティのための技術システムの再構成を可能にするために、技術システムのセキュリティを解析するように構成されている。技術的意思決定支援システムは、技術システムを特徴付ける技術情報を受信する手段と、受信した技術情報に基づいて技術システムに関連する属性を有するアタックノードの有向グラフにおいて技術システムに対する潜在的なアタックの表現を提供する手段とを備えることが好ましい。技術的意思決定支援システムは、システムセキュリティを向上するために選択された対抗策のセットが行なわれるように複数の異なる対抗策のセットを格付する手段を更に含んでいる。対抗策の各セットは、少なくとも1つの対抗策を備え、格付手段は、対抗策のセット毎に以下の手順を実行するように構成されている。すなわち、i)有向グラフにおいてアタックに対する対抗策のセットを論理的に適用し、ii)アタックのリスクを軽減することに関する適用された対抗策のセットの有効性に基づいて適用された対抗策のセットのランクを判定する。これにより、技術的意思決定支援情報をオペレータまたは自動化システムに提供して、効率的な対抗策の事実に基づいた選択が可能になる。
【0049】
本発明の第3の態様において、セキュリティ解析のために技術装置または意思決定支援システムにおいて使用される対応するコンピュータプログラム製品。
【図面の簡単な説明】
【0050】
【図1A】図示する一例に従ってルートノードを示す概略図である。
【図1B】金庫を開ける2つの方法を表すこの特定の例において2つのアタックノードを示す概略図である。
【図1C】図1Bのアタック「金庫を鍵で開ける」の3つの先行ノードを含む第3のレベルの一例を示す概略図である。
【図2】第4のレベルの一例及び第3のレベルのand−ノードの導入を示す概略図である。
【図3】図2の先の例におけるいわゆるアトミックアタックを格付する例示的な方法を示す概略図である。
【図4】伝播後の図3の例に対応する全てのアタックノードに対して導出される値を示す概略図である。
【図5】伝播後の全てのノードに対する導出される値及び図2の先の例におけるいわゆるアトミックアタックを格付する別の例示的な方法を示す概略図である。
【図6】部屋に侵入する最小コストを計算する一例を示す概略的なツリーを示す図である。
【図7A】同一のシステムに対する種々の脅威を記述する2つの単一シンク有向非巡回グラフ(SSDAG)を概略的に示す図である。
【図7B】同一のシステムに対する種々の脅威を記述する2つの単一シンク有向非巡回グラフ(SSDAG)を概略的に示す図である。
【図8】図7A及び図7Bの2つのSSDAGの結果として得られる組み合わせ有向非巡回グラフ(DAG)を概略的に示す図である。
【図9】本発明の可能な例示的な一実施形態を実現する意思決定支援システム/コンピュータプログラム製品を概略的に示すフローチャートである。
【図10】好適で例示的な一実施形態に従う装置または意思決定支援システムの一般的な一例を概略的に示す図である。
【図11】本発明の例示的な一実施形態に従って技術システムのセキュリティを解析しかつ技術システムを再構成するための装置を示す概略ブロック図である。
【図12】本発明の例示的な一実施形態に従って技術システムの再構成を可能にするために技術システムのセキュリティを解析する技術的意思決定支援システムを示す概略ブロック図である。
【図13】基本的な機能性が本発明の例示的な一実施形態に従ってコンピュータプログラム製品として実現される装置または意思決定支援システムを示す概略ブロック図である。
【図14】本発明の好適で例示的な一実施形態に従うシステム解析のための装置の一例を示す概略図である。
【図15】図14に示される装置の別の実現例を示す概略ブロック図である。
【図16】単純な通信ネットワークの一例を概略的に示す図である。
【図17】図16の通信システムに対する2つの識別されるアタックを示すアタックジャングルの一例を概略的に示す図である。
【図18】組み合わせ有向非巡回グラフ(DAG)の一例を概略的に示す図である。
【図19A】図18のDAGに対する2つの異なるコスト結果を概略的に示す図である。
【図19B】図18のDAGに対する2つの異なるコスト結果を概略的に示す図である。
【図20】鍵管理及びトラフィック保護に対するプロトコルの一例を概略的に示す図である。
【図21A】巡回を含むアタックジャングルの構成の一例を概略的に示す図である。
【図21B】巡回を含むアタックジャングルの構成の一例を概略的に示す図である。
【図21C】巡回を含むアタックジャングルの構成の一例を概略的に示す図である。
【図22A】いくつかのアタックノードが単一の代表的なノードにマージされる方法を概略的に示す図である。
【図22B】いくつかのアタックノードが単一の代表的なノードにマージされる方法を概略的に示す図である。
【図23】双方の種類のノードを含む強連結成分(SCC)の一例を概略的に示す図である。
【図24】再使用可能なアタックを処理できる拡張されたアタックジャングルの例を概略的に示す図である。
【図25】再使用可能なアタックを処理できる拡張されたアタックジャングルの例を概略的に示す図である。
【図26】再使用可能なアタックを処理できる拡張されたアタックジャングルの例を概略的に示す図である。
【図27】タイプ1の再使用不可能なand−ノードを含む一例を概略的に示す図である。
【図28】タイプ2の再使用不可能なand−ノードを含む一例を概略的に示す図である。
【図29】再使用可能なand−ノードを含む一例を概略的に示す図である。
【図30】タイプ1の再使用不可能なor−ノードを含む一例を概略的に示す図である。
【図31】タイプ2の再使用不可能なor−ノードを含む一例を概略的に示す図である。
【図32】再使用可能なor−ノードを含む一例を概略的に示す図である。
【図33】本発明に従うセキュリティ解析/対抗策格付装置が技術システムを解析し及び再構成するために使用される方法の一例を示す図である。
【発明を実施するための形態】
【0051】
図中、同一の参照文字は対応する要素または類似する要素に対して使用される。
【0052】
本発明者は、セキュリティ解析の重要な目的は、まず第1に技術システム(群)のセキュリティを解決するために考慮中の当該システム(群)上で技術的に動作可能である方法及び範囲を理解すること、すなわち、存在する脆弱性及び脅威を理解することであると認識している。第2の目的は、妥協のリスクを軽減するために技術システムを(再)構成する方法を理解すること、すなわち、最も効果的な対抗策を理解することである。脅威に関連するリスクは、認識される脅威の予測される損失として定義されることが多い。明らかなことは、リスクの軽減より「高価」である対抗策は絶対的な意味で効率的でなく、2つの異なる対抗策は非常に異なるコスト/リスク軽減比を有することができ、そのような比が小さい程好ましいことである。
【0053】
本分野の先の作業を調査すると、いくつかの追加の課題が満足に研究されていないことが明らかになる。完全に検査及び解決されていない少なくとも3つの他の態様が存在する。
【0054】
最小コストの過大評価
文献[11]では、アタックツリーは、純粋なトップダウン分割統治法で構築される。アタックがツリーにおいて2回以上発生する場合、そのアタックは別個のノードとして2回モデル化される。これは必ずしも問題ではないが、脅威の更に明確な概要を取得するために、サブアタック毎にノードを1つのみ有することがより当然であると考えられるだろう。これは、ツリーを単一シンク有向非巡回グラフ(SSDAG:Single-Sink Directed Acyclic Graph)と呼ばれるものにする。依然として同一の結果を与えることになることが明らかである一方で、問題になると考えられる上述のような計算を実行する。
【0055】
目的は、特定の部屋に侵入する人の脅威をモデル化することであると仮定する。それを行なう唯一の方法は、各々がバールを使用して無理やりに通り抜ける2つのドアを通ることである。結果として得られるツリー及び計算された最小コストを、図6に示す。
【0056】
尚、最小コストは過大評価されるが、モデル化に欠陥はない。しかしながら、これは実際には問題であり、その理由は、最小の困難性、可能性または特性が全てのアタックに必要とされるか否かの問題と比較して、最小コストの問題の性質が異なるからである。
【0057】
複数のシンク
有効な論点は、シンクを1つのみ有する理由があるか否かである。図7A及び図7Bに示されるように、同一のシステムに対する種々の脅威を記述する2つのアタックSSDAG群が存在すると仮定する。
【0058】
2つのサブ脅威2及びサブ脅威3が実際には同一のサブ脅威であると仮定する。SSDAG群が意図的に同一の初期状態で構成されるため、2つのサブツリー2及びサブツリー3は等しい必要がある。この場合、図8のように、図7A及び図7Bの2つのSSDAGを1つの大きなDAGに組み合わせる場合、システムのより適切なまたはより完全なビューを与えることができる場合がある。
【0059】
本明細書において対処される興味深い論点は、これを行なう場合またはこの方法が新しい問題を導入する場合に、特性の計算が以前と同様に実行されるか否かである。
【0060】
再使用可能なアタック
図8に示すように、サブ脅威(またはサブアタック)2/3は、脅威1及び脅威2の実現に共通である。サブ脅威2/3を実現する際に費やされる労力が脅威1及び脅威2の双方に対する「足がかり(stepping-stone)」であると仮定する。すなわち、関連するアタックが2回(またはそれ以上)再使用され、最終的に、脅威1及び脅威2の双方を実現すると仮定する。このサブアタックを実行するコスト/時間/複雑さは、アタッカーがそれを実行することによって到達できる全ての究極の目的で「償却(amortized)」される。すなわち、サブアタック自体が実行するためにコストがかかりすぎると最初は考えられる可能性があるが、システム全体のセキュリティを理解するために、再使用可能であることが考慮される必要がある。再使用可能なアタックの概念は、従来技術では適切に対処されない。
【0061】
巡回
文献[13]の注釈、文献[9]の注釈及び文献[3]の簡単な注釈において、ATにおける巡回(cycles)の概念が説明されている。巡回に対処する方法の完全な調査はされていない。
【0062】
本発明の改善されたセキュリティ方法及びシステムは、上述の従来技術の制限を克服し、非常に複雑な技術システムのセキュリティ解析に基づいて効率的な対抗策を提供し、かつ改善されたセキュリティ保護されたシステム動作を可能にする。本発明は、技術システムまたは対応する技術処理に対するセキュリティ脅威に関して、解析及び決定を行なう支援として動作し、再構成することによってシステムに対して技術的に影響を与える。本発明は、基本的には、技術システムを特徴付ける技術情報を受信する入力と、アタックを表すグラフ表現ユニットと、対抗策を格付する格付ユニットとを提供する。
【0063】
グラフ表現ユニットは、受信した技術情報に基づいて、技術システムに関連する属性を有するアタックノードの有向グラフにおいて技術システムに対する潜在的なアタックの表現を提供するように構成されている。格付ユニットは、複数の種々の対抗策のセットを格付して、システムセキュリティを改善するために、選択された対抗策のセットが行なわれることを可能にするように構成されている。対抗策の各セットは、少なくとも1つの対抗策を含んでいる。更に詳細には、格付ユニットは、対抗策のセット毎に以下の手順を実行するように構成されている。すなわち、i)有向グラフにおいてアタックに対する対抗策のセットを論理的に適用し、ii)アタックのリスクを軽減することに関して適用された対抗策のセットの有効性に基づいて適用された対抗策のセットのランクを判定する。
【0064】
第1の態様において、本発明は、最高のランクを有する対抗策のセットの中から選択するように構成されている選択器(セレクタ)及び、選択された対抗策のセットを技術システムに適用するように構成されているシステム再構成ユニットを更に備える、解析及びシステム再構成のための装置として実現される。一般に、最高ランクは、最も有効なまたは最も効率的な対抗策のセットに対応している。
【0065】
第2の態様において、本発明は、対抗策の格付に基づいて技術システムの適切な再構成を可能にするための技術的意思決定支援システムとして実現される。
【0066】
本発明の第3の態様において、本発明は、コンピュータ上で実行する場合に、セキュリティ解析に基づいて技術システムの再構成を可能にする技術装置または意思決定支援システムにおいて使用される、コンピュータプログラム製品として実現される。
【0067】
本発明の上記相関する態様については後で更に詳細に説明する。
【0068】
技術システムの例は、産業自動化システム、情報/通信システム及び輸送システムを含む種々の技術分野で見つけられる。特に、本発明は、通信リンクによって相互に接続される複数の通信ユニットを有する通信ネットワークに対するアタックを解析するために適用可能である。ここで、少なくともいくつかの通信ユニット及び/またはリンクはアタックを受け易い。通信ネットワークは、例えば、今日の無線通信ネットワーク等の無線ネットワーク、またはインターネットの一部を形成する、サーバベースのネットワークであってもよい。
【0069】
当然、対抗策は、検討される技術システムに従って変動することになる。当業者には理解されるように、通常、種々の対抗策は、種々の技術システムに適用されることになる。例えば、一方では、産業自動化システム及び他方では移動通信システムは、通常、全く異なる種類のセキュリティ脅威を受け易く、従って、対抗策はシステム毎に異なることになる。これは、脅威及び対抗策が最終的には考慮中の技術システム及びシステムに与えられる特定のセキュリティ脅威に依存するため、それらの脅威及び対抗策の正確な性質に関して多くの詳細を説明しない理由があるからである。しかしながら、アタック及び対抗策のいくつかの図示する例が以下の説明において与えられる。それらの例のいくつかは、データ/電気通信技術分野から得られる。例えば、航空宇宙分野からの他の例は、例えば、文献[13]で見つけられる。更に他の例は、文献[18]で見つけられる。
【0070】
「対抗策(countermeasure)」という用語は、システムのセキュリティに対抗するかまたはシステムセキュリティを向上する技術システムに対する任意の対策として非常に幅広くかつ一般的に解釈されるべきである。
【0071】
文献においては、対抗策は、例えば、脅威、脆弱性またはアタックを除去するまたは防止することによって、あるいはそれらを最小限にするかまたは少なくとも減少させることによって、その脅威、脆弱性またはアタックを減少させる動作、装置、手順または技術として定義されている。
【0072】
セキュリティアタック(security attack)という用語は、技術システムの所望のセキュリティを脅かす任意のアタックとして解釈されるべきである。
【0073】
セキュリティ保護されかつ成功するアタックがない状態にシステムを維持することが望ましい理由は、アタックが望ましくないシステム動作(パフォーマンス、可用性等)の結果を招き、その結果、収益の損失及び「悪意」等の直接的なまたは間接的な結果を有する可能性があるからである。従って、実現された脅威/アタックは、技術システムのオペレータ/所有者に対する関連するコストを有する。一般に、アタックの「深刻さ」を測定するための共通の方法は、関連するアタックのリスクを使用することにより、アタックが発生することによる予想される損失(性能、収益等の)として定義される。従って、この測定は、アタックが実現される可能性、並びにアタックが実際に実現される場合のコストまたは損失を考慮に入れる。例えば、コストは、アタック(群)のためにシステムを修復、再構成または変更するために必要とされる、技術資源の度合または量、及び/または時間に関連付けることができる。
【0074】
上述のように、本発明は、システムのセキュリティを解析するために、システムに対するアタックのグラフ表現を使用する。しかしながら、アタックツリー及びアタックグラフ等の従来技術において取り込まれない技術システムに対する脅威及びアタックの特定の側面を取り込むために、アタックジャングル(attack jungle)と呼ばれるグラフ表現を使用することにする。アタックジャングルの定義及びこの新しい表現により適切に取り込まれる側面については、後で更に詳細に説明する。
【0075】
しかしながら、最初に、グラフが結合されてもされなくてもよいことが思い出される。特に、これは、最も一般的な事例においてアタックジャングル群に当てはまることになる。すなわち、グラフの2つのノードu及びvを与えると、グラフが方向づけられていない場合でも、u及びvを結合する辺のパスがあってもなくてもよい。グラフが結合されない場合、本発明は、各連結成分に個別に適用されてもよい。選択的には、脅威/対抗策を評価する場合、本発明は、例えば、対抗策が適用されるグラフの全ての連結成分にわたる合計として計算される対抗策の全体的な効果(セキュリティ向上)を考慮することによって、対抗策を格付及び評価するために適用されてもよい。アタックジャングルが複雑な技術システムに対応している場合、例えば、技術システムのサブシステムに対応するアタックジャングル全体のサブグラフのみを研究することは同様に興味深いだろう。有向グラフは、一般にグラフ全体の他の部分に直接結合するかまたは結合しないアタックノードのより大きなグラフ全体のサブグラフであってもよい。本発明は、このサブグラフのみに適用される。
【0076】
このことを考慮すると、当業者は、その説明により最も一般的な例において本発明を適用する方法を理解できるため、結局、アタックジャングル及び関連するグラフが結合するか否かに関わらず、単により大きなシステムの一部及びその関連するアタックジャングルであるかを考慮する必要はない。
【0077】
要約すると、後述するように、アタックジャングルは、アタックノード群の有向グラフにおいてセキュリティアタックまたは脅威を表す、より柔軟性のある形式である。
【0078】
例示的な一実施形態において、基本的な手順は、技術システムに関連する属性を有するアタックノードを含む有向グラフにおけるシステム脆弱性またはセキュリティアタックの表現を取得し、グラフのセキュリティアタックにゼロ個以上の対抗策を適用し、グラフを1つ以上の方程式体系に変換して属性値をいわゆるリーフノードと関連付け、関連する方程式体系(群)を解き、適用される対抗策(群)のランクを計算するために属性値を抽出することである。
【0079】
特定の例示的な一実施形態において、セキュリティ解析は、解析段階において任意の対抗策を適用せずに実行され、単純にセキュリティ及びシステム脆弱性に対するシステムの動作状態に関する情報を取得する。これは、例えば、対抗策の種々のセットまたは組み合わせを格付する場合の基準または「ベンチマーク」として使用される。
【0080】
本発明の好適で例示的な実施形態において、この概念は、システムに適用される対抗策(群)の種々のセットまたは組み合わせを比較して、技術システムに対するセキュリティ脅威に対抗することであり、それにより、最も「効率的な」対抗策の選択が可能になる。「効率的な」が意味することは、入力属性またはパラメータ(コスト、どの程度対抗策が脅威に対抗するか及びリスク軽減等であってもよい)として選択される。主に、本発明は、アタックのリスクの軽減、いわゆるリスク軽減に対して、適用された対抗策の有効性を考慮する。
【0081】
グラフ中のノードと関連付けられる属性は、例えば、アタック等の実現性、効率、困難性、コスト等であってもよい。
【0082】
好ましくは、グラフは、考慮されるアタックノードの「主」アタックが実行可能になるために全てのサブアタックノードが実行されることを必要とするノードであるアタックノードに関する追加の指示を有する。
【0083】
本発明の例示的な一実施形態を実現する可能な技術的意思決定支援システム及び対応するコンピュータプログラム製品に対するフローチャートを図9に示す。この処理及び処理の種々のステップは、以下に更に説明するように技術装置に当てはめられるが、まずは解析処理について言及する。
【0084】
いわゆるアタックジャングルを生成するための入力S1は、エンジニアによって生成され、かつ/またはシステムからの情報及び動作状態/現在の構成を収集するセンサから得られる。特定の一例において、例えば、センサは、システムソフトウェアバージョン、暗号化が可能にされるか否か、現在使用されている暗号鍵、システムに接続している他のネットワーク通信ユニット等の情報を報告できる。この入力は、システムに対するアタックジャングルの表現を構築する、グラフ表現ユニットまたは略して構成器とも呼ばれる「アタックジャングル構成器」S2に与えられえる。要約すると、アタックジャングルは、セキュリティアタックを表すノードの有向グラフとして考えられる。アタックジャングルの詳細な定義については後で例示する。対抗策選択器は、可能な対抗策の事前定義済みセットからゼロ個以上の対抗策を選択するS3。対抗策アプリケータは、例えば、対抗策の適用後に実行不可能であるとして特定のアタックに印を付けることによって、選択された対抗策の表現をアタックジャングルに論理的に適用するS4(すなわち、技術システムに配備される場合の対抗策の動作方法のある種のシミュレーション)。例示的な一実施形態において、属性伝播器は、選択された対抗策毎に(及び可能性として、対抗策が適用されなかった例に対して)リーフアタックからの属性値をアタックジャングルの残りのアタックに伝播することが好ましいS5。例示的な一実施形態において、典型的には、セットまたは単一の対抗策のランクは、アタックジャングルのシンクの属性値の関数として導出されるS6。対抗策のランクは、例えば、全てのシンクの属性値のベクトルであってもよい(一般に、複数のアタック目的に対応する複数のシンクが存在してもよいため)。
【0085】
対抗策格付器は、リスク軽減に対する対抗策の有効性を定義する順序に従って対抗策を一覧表示し、かつその結果を対抗策アクチュエータに提示する。
【0086】
対抗策アクチュエータS7は、対抗策(群)が適用されたか及びどの対抗策(群)が適用されたかを判定する役割を果たし、また、システムを再構成することによってそれらの対抗策を実際に適用する。例えば、データまたは通信システムにおいて、これは、対抗策アクチュエータがファイアウォールにおけるフィルタリングポリシーを変更してもよく、ウィルスを除去してもよく、新しいソフトウェアパッチを配布してもよく、暗号鍵を無効にしてもよく、ネットワークユニットをシステムから切断(または隔離)してもよいことを意味する。対抗策アクチュエータは、対抗策を適用する代わりに、手動で設定することによって対抗策をシステムに適用するために適切な動作を行なうオペレータ/エンジニアに対してユーザインタフェースを介して対抗策を表示してもよい。
【0087】
対抗策の有効性は、実現される1つ以上の脅威またはアタックのリスクが軽減されることに関して表される。
【0088】
1つ以上の脅威またはアタックに関連するリスクは、予想された損失として定義されてもよい。前者の脅威に関連するリスクは、より有益でありかつ対抗策を適用するコストに関して所定の対抗策のセットの効率を評価する機会を与えるため、一般により多用される。従って、アタックのリスクは、一例として、実現されるアタックの可能性及びアタックが実現される場合の損失の積として表されてもよい。
【0089】
リスク(risk)=可能性(probability)・損失(loss)
アタックの可能性が所定の技術システムにおける特定の状況下で90%であり、アタックが正常に実現される場合の損失が10,000ドルであると評価される場合、リスクまたは予測される損失は9,000ドルとして表される。損失/コストは、一般的には、低下したシステムパフォーマンス、システム容量及び低下したシステム可用性等の技術特徴に対応する損失/コストであることが理解されるべきである。要望に応じて、それらの技術損失は、より適切な実際的な感覚のためにお金に換算される、またはお金で評価される。
【0090】
上記例を再使用すると、対抗策または所定の対抗策の組み合わせがアタックの可能性を50%に削減する場合、予想される損失は9,000ドルから5,000ドルに削減される。すなわち、利得の減少またはリスクの軽減は4,000ドルである。対抗策(群)を適用するためのコストが4,000ドルより少ない場合、対抗策(群)を適用する実数値が存在することが分かる。上述のように、対抗策が与えるリスク軽減より「高価」である対抗策は、絶対的な意味でそれ程効率的でなく、また、2つの異なる対抗策は非常に異なるコスト/リスク軽減比を有することができ、一般にそのような比は小さい程好ましい。
【0091】
本発明の例示的な一実施形態に係る対抗策の複数のセットに対するリスク及びコストパラメータの制限しない例を以下において表Iに与える。
【0092】
【表1】

【0093】
表I等のリスク及びコストパラメータの表に基づいて、格付リストが提供され、その第1の例を以下の表IIに示す。
【0094】
【表2】

【0095】
表II
表IIにおいて、格付は、対抗策を適用するためのコストを考慮せずに、表Iの軽減されたリスクに基づいている。
【0096】
以下の表IIIは、表Iのコスト/リスク軽減比に基づく格付リストの第2の例である。
【0097】
【表3】

【0098】
本発明によって提案される格付リストは、技術システムに対する脅威またはアタックを除去する、または少なくともそのようなアタックの影響を低減させるために適用する対抗策に関する非常に有用で実用的な情報を与える。理解されるように、この効率は、例えば、軽減されたリスク、またはコスト/軽減リスク比(軽減されたリスクに基づいている)として異なる方法で表現される。#1で示される対抗策のセットがアタックのリスクを完全に除去するが、それらの対抗策を適用するコストは予想される利得より大きい可能性があり、格付リストを提供する場合にそのことを考慮に入れることは望ましいだろう。いずれにしても、本発明は、従来技術により提案されているものを越える対抗策の自動化された評価及び効果的な比較を可能にする。
【0099】
図10は、好適で例示的な一実施形態に従う装置または意思決定支援システムの一般的な一例を示している。
【0100】
基本的に、セキュリティ解析の装置は、入力ユニット10と、アタックジャングル構成器または略して構成器20と、システム/対抗策解析のためのユニット30と、出力/制御ユニット40とを備えている。入力ユニット10は、解析中の技術システム2に関する知識を有するユーザ/オペレータ(エンジニア)1から情報を受信してもよい。選択的には、または補完するものとして、センサ(群)3は、技術システムに関する情報を抽出するために技術システム2に適用されてもよく、その情報の適切な表現を入力ユニット10に転送してもよい。この例において、入力はアトミックアタックに関連付けられている属性値、すなわち、アタックジャングル表現のリーフノードと関連付けられる属性値を更に含んでもよい。選択的には、または補完するものとして、多かれ少なかれ自動化されている割当器(図10では不図示)は、属性の適切なサブセットに値を代入してもよい。一般的には、属性値を提供するいくつかのメカニズムが存在する。構成器20は、セキュリティアタックのグラフ表現(一般的には、リーフに対する属性割当を含む)を生成し、システム/対抗策解析は、解析ユニット30によって実行される。グラフ表現に基づいてシステム解析を実行し、技術システムの動作セキュリティ状態に関する情報を取得することが可能である。選択的には、または好ましくは補完するものとして、1つ以上の対抗策のセットをグラフ表現に論理的に適用して、対抗策(群)のリスク軽減の解析を実行することができる(実際に、それらの対抗策を実際の技術システムに適用する前に)。出力/制御ユニット40は、ユーザ/オペレータ1への出力として技術的意思決定支援情報を提供してもよく、ユーザ/オペレータ1は、対策が必要である場合には、適切な対抗策(群)を決定しかつ実現してもよい。選択的には、または補完するものとして、出力/制御ユニット40は、セキュリティの観点から技術システム2を制御及び/または再構成するために制御情報を提供する。
【0101】
図11は、本発明の例示的な一実施形態に従って技術システムのセキュリティを解析しかつ技術システムを再構成するための装置50を示す概略ブロック図である。この特定の例示的な実施形態において、構成器20は、技術システムに関連する属性を有するアタックノードの有向グラフにおける技術システムに対する潜在的なセキュリティアタックの表現を提供する。本明細書において、システム/対抗策解析ユニット30は、システムセキュリティを向上するために、選択された対抗策のセットが行なわれるように複数の種々の対抗策のセットまたは組み合わせを格付するように構成される格付ユニット32を含んでいる。一般に、対抗策の各セットまたは各組み合わせは、少なくとも1つの対抗策を含んでいる。格付ユニット32は、対抗策のセット毎に、有向グラフにおいてセキュリティアタックに対して対抗策のセットを論理的に適用し、かつ適用された対抗策のセットのリスク軽減に基づいて適用された対抗策のセットのランクを判定するように構成されている。本実施形態において、出力/制御ユニット40は、選択器42及び再構成ユニット44を有する制御ユニットとして実現される。選択器42は、最高ランクを有する対抗策のセットの中から選択するように構成され、システム再構成ユニット44は、例えば、適切な制御メカニズムによって、選択された対抗策のセットを技術システム2に適用するように構成されている。図11の実施形態では、オプションとして、ユーザ/オペレータ1に意思決定支援出力を提供することができ、ここで、ユーザ/オペレータ1は、オプションの制御入力を技術システム2に提供することができる。
【0102】
図12は、本発明の例示的な一実施形態に従って技術システムの再構成を可能にするために技術システムのセキュリティを解析するための技術的意思決定支援システム60の概略ブロック図である。本実施形態において、出力/制御ユニットは、好ましくは、格付ユニット32からの格付リストの形式で、選択的には、または補完するものとして種々の対抗策の格付に基づく意思決定支援情報の形式で、意思決定支援情報を提供する出力ユニット40として実現される。意思決定支援出力は、技術システム2のセキュリティを向上するためにユーザ/オペレータが適切な対抗策または動作を行なうことを可能にする技術情報である。
【0103】
図13は、基本的な機能性が本発明の例示的な一実施形態に従うコンピュータプログラム製品として実現される、装置または意思決定支援システムを示す概略ブロック図である。本実施形態において、入力ユニット10、構成器20、システム/対抗策解析ユニット30、並びに出力及び/または制御ユニット40はコンピュータプログラム70として実現され、ここで、コンピュータプログラム70は、コンピュータプログラム製品を形成するためにコンピュータ可読媒体80に含まれる。コンピュータプログラム70は、関連するコンピュータシステム90にロードされかつ実行される場合、対抗策の種々のセットの格付に基づいて制御情報または意思決定支援情報を提供し、それにより、システムセキュリティを向上するために、選択された対抗策のセットが行なわれることが可能になる。意思決定支援のために、格付リストまたは同等の表現が提供される。システム再構成のために、適切な制御信号がコンピュータプログラム製品から技術システムに提供される。この制御信号は、対抗策の種々のセットの格付に基づいて。コンピュータプログラムによって生成される。コンピュータプログラム70は、実行されると、各プログラム手段10、20、30、40を介して、コンピュータシステム90に技術システムを特徴付ける技術情報を入力として取得させ、受信した技術情報に基づいて、技術システムに関連する属性を有するアタックノードの有向グラフにおいて技術システムに対する潜在的なアタックの表現を提供し、そして、格付リストにおいて複数の種々の対抗策のセットを格付してシステムセキュリティを向上するために、選択された対抗策のセットが行なわれることを可能にする。対抗策の種々のセットを格付する特別なプログラム手段は、対抗策のセット毎に、その有向グラフにおいてアタックに対する対抗策のセットを論理的に適用し、対抗策のセット毎に、アタックのリスクを軽減することに関して、適用される対抗策のセットの有効性に基づいて、適用される対抗策のセットのランクを判定するように構成されている。
【0104】
コンピュータプログラムは、後述するオプションのグラフ変更器を更に備えていてもよい。
【0105】
上述のように、セキュリティ解析のために使用されるコンピュータプログラム70は、一般に、CD、DVD、またはオペレータへの配信用(インターネットを介するプログラムのダウンロードも含む)の他のコンピュータメモリ構造等の、コンピュータ可読媒体80において符号化または保持される。その後、オペレータは、後で実行するためにプログラムをコンピュータシステム90にロードすることができる。
【0106】
図14は、図9の解析処理の選択されたステップを実現する装置の好適で例示的な一実施形態を示している。選択されたステップのみが図14の例示的な装置の一部にされる理由は、それらのステップが自動化するために最も適していることを反映するものとして理解されるべきである。
【0107】
基本的に装置は、各ステップを実行する複数のブロックを含んでいる。図中の辺は、内部信号パスを示し、また、このパスを介して通信される情報の種類によってラベルが付けられている。次に、それらの構成ブロックを更に詳細に説明し、また、好適で例示的な実施形態において技術的に実現される方法を説明する。
【0108】
入力フォーマット
システム記述は、セキュリティ解析/向上装置(SAIA)に入力される。この入力は、オペレータ/エンジニアによって、あるいは、例えば、現在の構成を含むシステムの動作状態を報告するセンサによって、手動で生成される。一般に、この入力のフォーマットは、解析中のシステムの技術的特性及び機能性に依存することになる。簡潔にするために、本明細書において、例として、システムは種々の通信ノードまたはユニット間の通信を提供する通信ネットワークであると仮定する。そのような場合、システム入力は、例えば、通信エンティティ、それらの相互接続を記述し、そのエンティティ及びその相互接続のセキュリティ特性によって属性を与えられる(例えば、相互接続が暗号化されているか否か、使用される鍵等)機械可読UMLフォーマット(または、他の構造化図形表現)であってもよい。相互接続は、保持される情報の種類/感度に従って分類される(定量的にまたは定性的に)のが好ましい。より適切である可能性のあるシステム記述の符号化は、論理(ロジック)を使用する。例えば、暗号化される相互接続ユニットA及びBを考慮する。以下のような「プロログのような(Prolog-like)」論理記述を使用して、相互接続のセキュリティ特性を記述することができる。
【0109】
Eavesdrop(AB) :- GetPhysicalAccess(AB), BreakEncryption(AB)
(盗聴(AB):−物理アクセス(AB),暗号化中断(AB))
これは、相互接続に物理的にアクセスでき、かつ使用される暗号化アルゴリズムが中断される場合、AとBとの間の相互接続を盗聴できることを記述している。装置の第1のブロックがand頂点及びor頂点を有することができるアタックジャングルを構築することを考慮すると、そのような論理的表現が非常に適切であることは明らかである。
【0110】
上述のように、この入力は、アトミックアタック(すなわち、後でアタックジャングルのリーフを形成することになるアタック)と関連付けられる初期属性値を更に含んでいる。これらの値は、上述のように、整数、実数、ブール、間隔を含む異なる種類であってもよく、あるいは一般的に解析される属性(コスト、困難性、確率、...)に依存する種類であってもよい。入力がセンサから得られる場合、それらのセンサは、属性値が「普遍的に一致する」と考えられる「周知」のアタックの事前に構成されたデータベースを使用できる。例示的な実施形態において使用される共通に使用されるデータベースは、CVE(共通脆弱性識別子)である。例えば、「ソフトウェア障害の可能性」が要求される属性である場合、センサは、システムが現在使用しているソフトウェアバージョンを検出でき、また、所定の動作条件下でソフトウェアが数分内に「クラッシュ」する可能性を見つけるために統計データベースのルックアップを実行できる。自動入力生成に適切な他のそのような例示的な属性は、暗号化アルゴリズム及び暗号鍵と関連付けられる属性、並びに他のシステム構成の形式等である。
【0111】
アタックジャングル構成器
このブロック20は、システム記述をアタックジャングルに変換する。出力フォーマットは(有向)グラフであり、隣接マトリクス、近隣リスト/ポインタ等のグラフの任意の周知の機械可読表現を使用することができる。変換の厳密なステップは、システム記述フォーマットに依存することになる。上述の論理式表現が最も適切な表現の1つであることは明らかであり、この変換を容易にする。このブロックは、属性値をアトミックアタックに割り当てることができる。
【0112】
対抗策(入力)選択器
この(オプション)ブロック5の目的は、1つ以上の対抗策を選択し、かつそれらを装置に入力することである。このブロックがオプションである理由は、この機能が手動でオペレータが実行することに最も適していると考えられるからである。この入力のデータフォーマットは、好適な実施形態においてアタックジャングルの1つ以上のサブグラフ及び/またはアタックジャングルにおける1つ以上のリーフに対する変更された属性値の形式である。例えば、対抗策がアトミックアタックを(完全に)除去すると考えられる場合、対応するリーフが入力される(アタックジャングルからそのアトミックアタックを削除することを意図して、以下の対抗策アプリケータの説明を参照)。一方で、対抗策がアタックに関連するある属性のみを削減する場合、入力はその属性値の再割当の形式となる。
【0113】
対抗策の説明の一部は、対抗策格付器を後で使用するための対抗策のコストであってもよい。以下を参照されたい。
【0114】
この特定の例において、解析ユニット30全体は、格付ユニット32を含み、この格付ユニット32は、対抗策アプリケータ33、属性伝播器34及び対抗策格付器35を含んでもよい。
【0115】
対抗策アプリケータ
このブロック33は、対抗策の表現を利用し、かつそれらの対抗策をアタックジャングル入力に適用する。例えば、対応するサブグラフ(群)を削除し、かつ/または属性値(群)を変更する。
【0116】
属性伝播器
このブロック34は、以下に説明するように、アタックジャングルを関連する方程式体系(群)に変換し、対応する方程式(及び/または不等式)を解き、これによって、属性値を非リーフノード(ルート(群)を含む)にも割り当てる。このブロックは、グラフにおいて属性値の「上向き」の伝播を実行する。
【0117】
対抗策の格付器
このブロック35は、対抗策の有効性をリスク軽減の形式で判定する。好適な実施形態では、これは、基準である元のアタックジャングル(対抗策が全く適用されていない)と比較することによって、頂点と関連付けられる属性が対抗策により影響を受ける(増加/減少する)程度を比較することによって行なわれる。同様に、2つ以上の対抗策が入力される場合、このブロックは、上述のように、対抗策のコストを考慮に入れて、それらの対抗策の有効性を比較する。その出力は、1つ以上の好適な(ある計測値において)対抗策であり、また、ユーザ/オペレータ(エンジニア)に対する意思決定支援情報の形式であってもよい。
【0118】
対抗策アクチュエータ
このブロック45は、多くの場合にオペレータによって実行されることが最適であるため、オプションになっている。このブロックに割り当てられる機能は、出力された対抗策をシステムに実際に適用すること、例えば、いくつかのシステム相互接続において暗号化を可能にすることである。更に、この機能は、対抗策アクチュエータ45の機械による実装に適する機能の一例である暗号鍵を置換できる。
【0119】
上記で示し、後で更に詳細に説明しかつ例示するように、属性値は、属性の第1のサブセットに提供され、また、対抗策のセットは、適用される対抗策のセット毎に、属性の第1のサブセットの値の少なくとも一部に影響を及ぼし、かつこの属性の第1のサブセットのうち、対抗策の影響を受ける値は属性の第2のサブセットに伝播される。格付器は、この属性の第2のサブセットの値を抽出して、適用される対抗策のセットのランクを計算する。
【0120】
属性の第1のサブセットは、アトミックアタックノードの有向グラフのリーフノードに関連し、属性の第2のサブセットは、有向グラフの1つ以上の中間ノード及び/またはルートノードに関連するのが好ましい。
【0121】
対抗策のセットが対抗するアタックノードの有向グラフのリーフノードのセットとして対抗策のセットを定義でき、格付ユニット32は、中間ノード及び/またはルートノードの属性値の関数として対抗策のセットのランクを判定するように構成されてもよい。
【0122】
上述のように、格付ユニット32は、対抗策が適用されていない属性の第2のセットの対応するいわゆる基準値に関連して、属性の第2のセットの値が適用される対抗策のセットによって影響を受ける程度の比較に基づいて、対抗策のセットのリスク軽減を判定するように構成されてもよい。
【0123】
ある意味では、方程式生成器または解答器(solver:ソルバ)とも呼ばれる属性伝播器34は、有向グラフを属性に依存する方程式体系のセットに変換する。方程式体系は制約を含んでいてもよく、例えば、いくつかの方程式は、後述するように、例えば、「3x < 2y」である不等式の形式であってもよい。この変換関数は、場合によっては、コンバータに対する属性伝播器のこの一部を呼び出す理由である。属性の第1のサブセットの属性値は、有効グラフにおいて、すなわち、属性に依存する方程式体系のセットにおいて属性に提供されてもよい。属性伝播器は、属性の第1のサブセットのうち対抗策の影響を受ける値を属性の第2のサブセットに伝播するために、属性に依存する方程式体系のセットを解く。方程式が不等式を含む場合、「解く」は方程式体系の変数への満足する代入を見つけることを意味する。格付ユニット32は、適用される対抗策のセットのランクを計算するために解かれた方程式体系から、属性の第2のサブセットの値を抽出するように構成されるのが好ましい。
【0124】
図15は、図14に示される装置の別の実現例を示す概略ブロック図である。図15の例において、一般に複数のリーフノードと関連付けられる属性の第1のサブセットに属性値を割り当てる割当器25が存在する。これは、アタックジャングル構成器20に入力情報として提供される属性値と組み合わせて行なわれる。割当器は、有向グラフにおいて属性値を提供するために構成器20と共に直接動作してもよく、かつ/または属性に依存する方程式体系のセットにおいて属性値を提供するために属性伝播器34と共に直接動作してもよい。
【0125】
図16において、通信ネットワークの単純な例が示される。図16は、基地局120及びインターネット140に接続されるアクセスルータ130から構成される、アクセスネットワークに接続される移動装置110を示している。当然、種々の通信ユニットを含む通信ネットワークの他の例が考えられてもよい。
【0126】
アタッカーの明らかな目的は、図17における目的「盗聴」によって表されるように、移動装置110とインターネット140上のいくつかの通信ユニットとの間のトラフィックを盗聴することである。これが達成される方法は(少なくとも)2つある。移動装置110と基地局120との間の無線リンクを盗聴すること、または基地局120とアクセスルータ130との間のリンクを盗聴すること(アタッカーは、アクセスルータから離れるとトラフィックにアクセスできなくなると仮定する)である。それらの2つのアタックは、それぞれ「無線盗聴」及び「有線盗聴」として図17では示される。
【0127】
次に、属性「尤度」は、アタックジャングルの各ノードと関連付けられ、これは、対応するアタックが実現される可能性を表している。この例の場合、1〜5の間の値を有するように尤度を定義する。5は起こる可能性が非常に高く、1は起こる可能性が非常に低いことを意味する。例えば、「無線盗聴」の尤度は4であり、「有線盗聴」の尤度は3であると考えられてもよい。いずれのアタックもアタッカーに目的を達成させるため、目的(ジャングルにおけるシンク)に対する属性値は2つのサブアタック、すなわち、4である可能性が最も高い。
【0128】
次に、2つの異なる対抗策が無線リンクの暗号化及び有線リンクの暗号化(基地局とアクセスルータとの間)と考えられると仮定する。第1の対抗策が適用される場合、「無線盗聴」を不可能にすると仮定され、第2の対抗策は「有線盗聴」を不可能にする。これは、第1の対抗策が適用される場合、依然として有線リンクの盗聴が可能であるため、シンクの属性値が3であることを意味する。第2の対抗策が適用される場合、アタッカーが依然として空中/無線リンクを盗聴できるため、シンクの属性値は依然として4である。従って、ランクは第1の対抗策に対しては3であり、第2の対抗策に対しては4であり、2つの対抗策の組み合わせに対してはシンクに到達できないため0である。この場合、対抗策アクチュエータに対するセキュリティ上最も安全な選択は、双方の対抗策を選択すること、すなわち、双方のリンクを暗号化するようにシステムを構成することである。しかしながら、ある理由のために有線リンクを暗号化することは非常に高価であると仮定すると、第1の対抗策を実現することのみを選択することはコスト効率がより大きいだろう。
【0129】
更に詳細なレベルでは、解析は、使用する暗号化アルゴリズムを考慮することができる。例えば、アルゴリズムAは、アルゴリズムBよりセキュリティ上安全であるが、Aは、例えば、帯域幅または処理能力等に関してより高い「コスト」により関連付けられる。
【0130】
本発明をより理解するために、例示的な実施形態を以下に更に詳細に説明する。
【0131】
形式化及び定義の例:
好適で例示的な実施形態において、内部データ表現のためにアタックツリーの一般化が採用される。この表現は「アタックジャングル」と呼ばれる。
【0132】
アタックジャングル:アタックジャングルは、(V,E)が自己ループを含まない有向有限グラフであり、Aが、A(v)がvがand−ノードであるということとと同等であるV上での単項関係である、トリプレット(V,E,A)である。
【0133】
この定義により、任意の種類のグラフが可能になり、これについては本節において後述する。これをアタックツリーと呼ばない理由は、単に、グラフ理論的にツリーである必要がないためであり、従って、元の用語を使用することは適切に確立されている専門用語を誤用する可能性がある。技術システムに対するセキュリティアタックの適切な表現を必要とする場合、この定義は、巡回及び複数のシンク(すなわち、ルート)を可能にする。換言すると、アタックジャングルは、セキュリティアタックまたは脅威を表すアタックノードのグラフ表現のより一般的/高度な形式または柔軟性のある形式である。
【0134】
当業者には明らかであるように、有向グラフは、結合がxからyであるのかまたはyからxであるのかを定義するxとyとの間等のノード間に方向の指示が存在することを意味する。
【0135】
直前の先行ノード:(V,E,A)をアタックジャングルとする。Vのノードvの直前の先行ノードのセットは、セット{v’ in V: (v’,v) in E}であり、DP(v)で示される。簡潔にするために、i<jであり、かつ非負の整数nに対して|DP(vi)|=0、|DP(vn−1)|=0及び|DP(vn)|が0でないこと、すなわち、グラフのソースがVにおけるある順序付けの最初のn個のノードであることを|DP(vj)|=0が示すように、その順序付けを仮定する。
【0136】
属性領域:属性領域は構造<D,△,▼>であり、△:D X D −> D及び▼:D X D −> Dは論理積及び論理和コンバイナ(combiner)と呼ばれる2つの結合的可換関数である。すなわち、2つの関数△及び▼は、Dからの入力対を利用し、Dに出力を生成する。
【0137】
属性領域の概念に関する情報については、文献[8]を参照されたい。
【0138】
2つのコンバイナ関数は、非常に明示的で直観的な意味を有する。すなわち、それらの関数は、ノードの先行ノードの属性を組み合わせて、そのノードの属性値を取得する方法を定義するルールである。論理積コンバイナは、名前が示すように、and−ノードに対して使用され、論理和はor−ノードに対して使用される。それらのコンバイナの2つの例が先に与えられている。すなわち、可能性/不可能性に対するand/orルール及びアタックのコストに対するmin/sumルールである。
【0139】
強連結成分:(V,E)を有向グラフとする。強連結成分(SCC)は、Sの任意の2つのノードvi、vjに対してviとvjとの間にパスが存在するようなVの極大サブセットSである。グラフ(V,E)のSCCのセットは、SCC((V,E))で示される。
【0140】
再使用可能なアタック及び最小コストの過大評価
コストの場合、属性領域の単純な定義は、上述のように<N,+,min>である。ここでの問題は、論理積コンバイナが構成性の法則を考慮しないことである。すなわち、△=+の定義により、モデリング誤差が生じている。アタックツリー構成が分解パラダイムに従って行なわれるため、これは実際には問題である。更に大きな問題は、この問題に対する解決策が全く単純でないことである。
【0141】
構成性が存在しない理由は、サブアタックの結果が再使用可能であるためである。一例として図18を参照されたい。この場合の過大評価の理由は、バールを入手するサブアタックの結果が再使用可能であるためであることが明らかである。バールがアタッカーの所有物になると、それは任意の回数だけ再使用可能である。モデルにおいて、再使用可能なノードと再使用不可能なノードとの間の区別はない。過大評価の問題を解決するために、この余分な情報は、何らかの方法でモデルに組み込まれる必要がある。
【0142】
異なるが関連する態様において、最小コストは、他の問題とも異なる。それは、サブアタックのコストは、最終的な目的に依存することである。この一例として、別の先の例、すなわち、図18を使用する。
【0143】
サブアタック3及び5はそれぞれ$5必要とし、サブアタック4は再使用可能でありかつ$8必要とすることが想定される。欲張り伝播アルゴリズムは、図19AのDAGとして結果を与え、(アタッカーにとって)即時に明示的に最適であるのは、図19BのDAGのようなコストである。
【0144】
図19A及び図19Bのこれら2つのDAGは、コストが他の上述の属性とは異なり特定の目的を認識して計算される必要があることを示している。最小コスト属性のこの特別な特性の発見により、問題は本発明の設定において非常に困難になったため、今後、コンバイナ関数が容易に定義される属性のみを説明する。
【0145】
本発明は、後述するように再使用可能なアタックをモデル化できる。
【0146】
複数のシンク
サブアタックの属性が直前の先行ノードの関数(すなわち、構成関数)として容易に定義可能である場合、その属性は検査される最終的な脅威に依存しないことが上述から明らかである。従って、DAGに複数のシンクを有することに問題はない。
【0147】
巡回
上記のようなアタックジャングルの定義により、ジャングルにおいて巡回が可能である。その理由は、巡回が脅威をモデル化する適切な方法である状況が存在するからである。巡回は、ある従来技術においてはアタックグラフにおける動作であると簡潔に言及されている。文献[3]、[9]、[13]において、発生する巡回の可能性について言及されているが、詳細には説明されていない。特に、アタックグラフの自動処理に対する従来の方法は、巡回に対処できるものとして周知ではないと考えられている。例えば、巡回は、文献[8]で説明される属性伝播メカニズムで明示的に除外される。
【0148】
一例として、巡回が発生する方法を理解するために、以下の鍵管理及びデータトラフィック保護に対するプロトコルの仮定の例(図20に示す)を考慮する。
【0149】
アリス(Alice)及びボブ(Bob)は、長期共通鍵LKを共有し、かつセッション鍵を導出すると想定すると、アリスはボブにタイムスタンプ(壁掛け時計の時間とする)を送信する。次に、アリス及びボブの双方は、鍵としてタイムスタンプを使用して長期鍵LKを暗号化することによって、この特定のセッションで使用するためのセッション鍵SKを導出する。これにより、鍵管理プロトコルは完了する。次に、平文トラフィック(PT)は、暗号鍵としてセッション鍵SKを使用して二者間で暗号文(CT)として暗号化されて送信される。
【0150】
説明されるプロトコルの基本的な問題は、アタッカーが、例えば、トラフィックを保護するために使用される暗号アルゴリズムE(,)を破ることによってセッション鍵SKを入手でき、かつ送信されたタイムスタンプを聴取することを行なう場合、長期鍵を復号化することは些細なことであることである。アタックジャングルは、以下のようにこのプロトコルに対する脅威をモデル化するように構成することができる。アタックの目的がセッション鍵SKを取得することであることを示すことによって開始することが有用であろう(図21Aを参照)。図21Bの図は、長期鍵を取得すること(何らかの方法で)及び暗号化アルゴリズムを破ることの双方によりセッション鍵は脅かされる(アタックの目的が達成される)ことを示している。図21Cの図は、セッション鍵が与えられると、長期鍵を取得できる(上述したように)ことを示している。
【0151】
ここで、グラフには巡回が存在し、これは正規モデリングから発生している。この場合、巡回における全てのノードがor−ノードである場合、この巡回は、巡回内に含まれる各サブアタックが異なる形式の同一情報を表していると解釈されるべきである。
【0152】
巡回は、セッション鍵を取得する1つの方法がまずセッション鍵を取得することによってセッション鍵を長期鍵に変換し、かつその長期鍵をセッション鍵に再度変換することであるという言い方で解釈される。これは意図されるものでないことは明らかである。その代わりに、これは、この場合にある種の糖衣構文と考えられるべきであり、巡回を使用せずに更なるノードを使用してこれを表す別の方法が存在するが、これは、美学的により魅力的な方法であることを意味する。特に、この場合、モデル化されるものは、いずれかの鍵の知識(Tが取得されると仮定すると)が他方の鍵の知識を示すことである。
【0153】
要約すると、巡回におけるノード、またはより一般的にはSCCのノードは、同一情報を表す異なる方法として考えられるべきである。すなわち、それらのノードは同等の種類のノードとして考えられる。このことを考慮すると、グラフが以下のアルゴリズムを使用することによって、同等の種類毎に1つのノードのみを含むグラフに変更される変換を行なうことが適当であると考えられる。
【0154】
Reduce-Equivalence-Classes-In-Jungle((V,E,A))
1 for each S in SCC((V,E)
2 do if all v in S: not A(v)
3 then V = V union {v'}
4 for each (vi, vj) in E
5 do if vj in S
6 then if vi in S
7 then E = E\(vi, vj)}
8 else E = (E\{vi, vj)}) union {(vi, v')}
9 V = V\S
10 return (V,E,A)
図22A及び図22Bでは、アルゴリズムの結果が示されている。図22Aは入力グラフを示し、図22Bは結果として得られるグラフを示している。図22Aにおいて「サブアタック1」、「サブアタック2」及び「サブアタック3」で示されるいくつかのアタックノードは、図22Bにおいて「サブアタック1+2+3」で示される単一の代表的なノードにマージされる。
【0155】
図13に戻ると、周期的に相互接続されるアタックノードのセットを単一の代表的なノードで置換することによって有向グラフを変更する、いわゆるグラフ変更器22の一例が示される。図13のグラフ変更器は、コンピュータハードウェアシステムによって実行するためのコンピュータプログラム製品の一部として実現されるが、任意の方法で実現されてもよく、図10〜図12、図14、図15に示される任意の実施形態の一部を形成してもよい。
【0156】
2つの鍵を含む先の例で強調されたように、グラフのSCCはor−ノードのみを含んでいた。しかしながら、考慮する例があと2つ存在する。すなわち、and−ノードのみを含むSCC及び各種類のノードを少なくとも1つ含むSCCである。
【0157】
and−ノードのみを含むSCCが存在する場合、モデリングには欠陥があり意味をなさない。これは、and−ノードによって表されるサブアタックを達成する方法を考える時に明らかである。アタックを達成するために、全ての直前の先行ノードが達成される必要がある。先行ノードのうち少なくとも1つがSCCに存在するため、SCCの少なくとも1つの他のノードはand−ノードの前に達成される必要がある。
【0158】
SCCの全てのノードがand−ノードであるため、最初に達成されるノードはない。演繹的に達成されるノードが存在しないため、達成されるノードはない。
【0159】
各種類の少なくとも1つのノードを含む第3の例は意味をなさず、実際に起こる可能性がある。これは、図23に示すような一例により最適に示される。この例は、完全に有効であると考えられ、種々の状況下でこの例を評価することで種々の結果が与えられ、それらの全ての結果が適切である。
【0160】
上述の例示的な伝播アルゴリズムに対する別の例示的な方法
グラフのSCCにより、上述の伝播アルゴリズムに従う伝播によって属性値の元の導出は動作しない。これは、属性値がそれ以上導出されない状況が存在し、また、巡回依存性のために値がまだ割り当てられていないノードが依然として存在するためである。その代わり、以下の例示的な方法が合理的であると考えられ、本発明の例示的な一実施形態において使用される。
【0161】
or−ノードのみ及び属性領域D=<D,△,▼>を含むSCCを含まないために、上記の提示されたアルゴリズムまたは同様のアルゴリズムを使用して減少されるアタックジャングルJ=(V,E,A)が存在すると仮定する。A(v)の場合にfA(v)=1であり、それ以外の場合にfA(v)=0である。Dnの属性値wの初期割当が与えられると、アトミックアタックに対応しないノードの属性値は、以下が満たされるようにベクトル(d0,d1,...,d|V-1|)に対する割当を検出することによって(例えば、方程式を解くことにより)例示的な別の伝播アルゴリズムに従って計算される。
【0162】
1.(d0,...,dn-1)=w
2.n<=i<=|V|は、di=fA(vi) * △({dj:vj in DP(vi)})+(1−fA(vi)) *△({dj:vj in DP(vi)})であることを示す。
【0163】
3.SCC((V,E))の全てのSに対して:Sにviが存在する:not A(vi) and di= ▼({dj:vj in DP(vi)\S})
本明細書において、表記法は、2個組の代わりに任意のサイズのセットにコンバイナを適用することによって僅かに不正使用される。しかしながら、コンバイナが結合的で可換であることが要求されるため、この拡張を行なうことは些細なことである。
【0164】
図23は、双方の種類のノードを含むSCCの一例を示している。
【0165】
これは、ノードviによって表されるアタックに対するDに対応する質問に対する応答がエントリdiで見つけられるようにベクトルが要求されることを意味する。
【0166】
ツリーの条件は、ある程度の説明を必要とするだろう。
【0167】
1.ベクトルがn個の初期のエントリとしてアトミックアタックに対する初期割当と全く同一値を有する必要があるという明らかな条件を表している。
【0168】
2.非アトミックアタックの値が直前の先行ノードの関数であり、使用される関数がand−ノードか否かによって判定されることを示している。
【0169】
3.全てのSCCにおいて、SCCに存在しない直前の先行ノードのみを使用して、最初に達成されているノードがいくつか存在する必要があること及びこれが達成されるノードがor−ノードである必要があることを示している。or−ノードである必要がある理由は、上述したように、達成されるand−ノードvに対してDP(v)の全てのノードが最初に達成される必要があり、vがSCCにあるために、DP(v)の少なくとも1つの要素がSCCに更に存在する必要があるからである。
【0170】
尚、通常のツリーであるJにより、第3の条件は消滅する。残されるものは、トップダウン置換により解決可能な方程式体系である。
【0171】
本来の問題に対する適用
問題の質問別の部分が属性領域であることは既に示している。属性領域の機能は、ノードの属性値が直前の先行ノードによって判定される方法を定義することである。上述のように、回答される3つの主な質問は以下の通りである。
【0172】
1.「任意のアタックが可能であるか?」要求されるのは真理値であるため、D={0,1}が使用される。全ての直前の先行ノードが達成される場合にand−ノードが達成されるため、and−ノードが達成されるかを記述する論理積コンバイナ(△)はD=minとして利用することが合理的である。直前の先行ノードのうち少なくとも1つが達成される場合にor−ノードが達成されるため、▼=maxを利用することは適切である。当然、問題のあるインスタンスベクトルwは、アトミックアタックviが達成可能である場合にwi=1となるように定義される。
【0173】
2.「[ある共通特性]が成功した全てのアタックに対して必要であるか?」アタックがアトミックアタックから成り、ツリーの非リーフノードがそれらのアタックの組み合わせ方法として見られるため、全てのアトミックアタックによって必要とされる場合に特性はアタックに対して必要とされる。従って、アトミックアタックviが調査のために要求される特性を満たす場合、属性領域<{0,1},max,min>、及び問題のあるインスタンスベクトルの各成分wi=1を使用できる。
【0174】
3.「アタックを成功させるために最低限要求される技術レベルは何であるか?」これは、実際には先の質問を一般化したものであり、従って、属性領域である<N,max,min>及びアトミックアタックviを実行するために必要とされる技術レベルとして定義される問題のあるインスタンスベクトルの成分wiを有することにより対処される。
【0175】
上述の形式化では、解を見つける方法について何も示さないが、単に方程式体系に関する問題を示している。この方程式体系は、何らかの方法により解かれる必要があり、これを行なう方法は多く存在する(例えば、標準的な制約解答器(ソルバ)を使用する)。
【0176】
再使用可能なアタックの処理
上述のように、アタックの再使用の概念は解析を複雑にする。ノードが再使用可能であるということは、一旦実行されると、再使用可能なノードの結果が(潜在的に)無制限に使用可能であることを意味する。再使用は、アトミックアタックだけでなくアタックツリーの全てのノードに個々に割り当てられる特性である。再使用の概念は、直観的なレベルでは単純であるが、複数のシンクの設定と組み合わせると、ノードが再使用不可能であることが意味することは即座に明確にはならない。
【0177】
再使用不可能なアタックが「kユーロ蓄積する」である場合、動作がお金を費やすことを含むため、直後の後続ノードのうちの1つを達成することを可能にすることが合理的である。しかしながら、動作が「[ある重要な]暗号鍵を破る」であった場合、鍵は同一の直後の後続ノードを達成するために再使用可能でなくてもよいが、複数の直後の後続ノードを1度に達成する際に適切には使用することができる。前者の概念は、本発明においてタイプ1の再使用不可能性と呼ばれ、後者はタイプ2の再使用不可能性と呼ばれる。それらの概念に関する直観として、タイプ1のノードにおいては後続ノード間に依存性が存在するが、タイプ2のノードにおいては存在しないことである。
【0178】
これまでに説明されるモデルがノードの再使用に関する情報を含まないため、定義の拡張が必要である。
【0179】
グラフを簡略化するために、再使用の問題は、アタックが達成される回数も重要であるという質問に固有の別のことも考慮される必要がある。従って、アタックaが先行ノードbによって達成されるために、bがk回達成される必要があることを表すために省略表現が採用される。これは、数字kを辺(a,b)と関連付けることによって行なわれる。
【0180】
拡張アタックジャングルは、(V,E,A)が通常のアタックジャングルであり、r:V −> {R,1,2}がノード毎に再使用可能であるか及び再使用可能である場合に再使用不可能な種類を記述する関数であり、かつM:E −> {0,1,2,...}が目標が達成されるためにソースが達成される必要がある回数を各辺に割り当てる関数であるような5個組(V,E,A,r,M)である。
【0181】
この拡張されたアタックジャングルは、上述と同様に、r(v)を視覚化するために「R」、1または2で各頂点vにラベルを付けることによって、かつM(e)が非ゼロである場合にM(e)で各辺eにラベルを付けることによって、組み込まれる予備の情報によって視覚化される。
【0182】
拡張されたアタックジャングルの一例が、図24に示される。
【0183】
巡回が意味をなすことは、その例から明らかである。アトミックアタックv0を実現するコストがc0であり、アトミックアタックv1を実現するコストがc1であると仮定し、不等式c0+c1<=c1*kを考慮する。不等式が成り立つ場合、目的を達成する最も安価な方法は、各アトミックアタックを一旦達成し、v1からv3を達成し、v3及びv0からv2を達成することである。その後、v3は、v2の結果をk回使用してk回達成され、最終的にv3からv4の達成を可能にする。このことは、図25から分かる。図25において、辺のラベルはM(e)の記述ではないが、ソースの結果が使用されている回数として解釈される。
【0184】
一方、不等式が成り立たない場合、v4を達成する最も安価な方法は、単純にv1をk回実現し、v3を介してv4を達成することである。このことは、図26に示される。
【0185】
アタックを実現する最小コストを見つける問題を解決するために、拡張アタックジャングル(V,E,A,r,M)に加えて2つのことが必要とされる。上述と同様に、当該属性に従ってアトミックアタックを格付する必要がある。この場合、これはコストベクトルcとして供給され、その結果、アトミックアタックviを実現するコストはciとなる。しかし、更に、ここで、アタックの最終的な目的gを定義する必要がある。これは、上述したように、サブアタックを達成する最適なコストが対応するノードだけでなく、最終的な目的にも依存するためである。
【0186】
ここで、要求されることは、各アトミックアタックviが正確にmi回達成される場合に、(目的)ノードgの達成が可能になるようなベクトルm=(m0,m1,...,mn-1)である。更に、上記のようなgの達成を可能にする他のベクトルm’が存在しないという条件も存在するが、その結果、m’*c<m*cとなる。ここで、*は通常のスカラー積を示している。
【0187】
上記の問題に対処する可能な方法は多く存在する。以下において、いくつかの例示的な方法が提示される。表記/植字の問題のために、量における下付き文字を示すのに下線「 _ 」を使用する場合がある。すなわち、「x_i」は「xi」と同一のものを示している。
【0188】
最初の問題に対する解決策において、各変数がアタックジャングルのノードに対応する方程式のセットが導出された。パスが最小コストの問題において重要であるため、成功すると証明される同様の異なる方法は、変数がノードではなく辺に対応する方程式のセットを導出することである。
【0189】
そのような方程式のセットを導出するために、6つの可能なノードタイプの各々が考慮される必要がある。図27〜図32の八角形は、それらのノードが{1,2,R}の任意の種類のor−ノードまたはand−ノードであってもよいことを強調するために使用される。更に、記号a(m,n)は、辺毎にM((vm,vn))を示すために使用され、表記f(v_m,v_n)は、vmがvnを達成するために実際に使用される回数を示すために使用される。値f(v_m,v_n)は、vmとv_nとの間の「フロー」と呼ばれるが、これが常識的にはフローでないことを示すことが重要である。以下の全ての例において、DP(vj)={vi, vi+1,...,vj-1}(直前の先行ノード)であり、mがセット{j+1, j+2, ..., k}に属する場合にvjはセットDP(vm)に属する。
【0190】
再使用不可能なand−ノード、タイプ1:タイプ1の再使用不可能なand−ノードの場合が図27に示される。
【0191】
jがタイプ1であるため、出力フローの合計は、vjに導く円弧に沿って要求される最小数の倍数の数に等しい。形式上、この条件は以下のように書ける。
【0192】
【数1】

【0193】
再使用不可能なand−ノード、タイプ2:この場合が図28に示される。
【0194】
jがタイプ2であるため、出力円弧の各々は、vjに導く円弧に沿って要求される最小数の倍数の数以下のフローを有する必要がある。形式上、この条件は以下のように書ける。
【0195】
【数2】

【0196】
再使用可能なand−ノード:再使用可能なand−ノードの場合が図29に示される。
【0197】
尚、最小コストを見つける場合、再使用可能なノードを2回以上達成することは決して望ましくない。これは、入力辺に沿うフローが0または要求される最小数であることを示している。更に、結果が使用される場合にノードを達成することだけが望ましいことに注意されたい。形式上、これは以下の2つの条件として示される。
【0198】
【数3】

【0199】
再使用不可能なor−ノード、タイプ1:タイプ1の再使用不可能なor−ノードの場合が図30に示される。
【0200】
iがタイプ1であるため、出力フローの合計は、vjに導く円弧に沿って要求される最小数の倍数の数の合計に等しい必要がある。形式上、これは以下のように示される。
【0201】
【数4】

【0202】
再使用不可能なor−ノード、タイプ2:タイプ2の再使用不可能なor−ノードの場合が図31に示される。
【0203】
iがタイプ2であるため、各出力円弧は、vjに導く円弧に沿って要求される最小数の倍数の数の合計以下のフローを有する必要がある。形式上、これは以下のように示される。
【0204】
【数5】

【0205】
再使用可能なor−ノード:再使用可能なor−ノードの例が図32に示される。
【0206】
方程式を簡略化するために、and−ノードと同一の推論を使用することができる。すなわち、最小コストを見つける場合、再使用可能なノードを2回以上達成することは決して望ましくない。これは、入力辺に沿うフローが0または要求される最小数であることを意味する。この場合、最大で1つの辺において非ゼロとなる。再使用可能なand−ノードの場合と同様に、結果が使用される場合にノードを達成することが望ましい。形式上、これを以下の3つの関係で示すことができる。
【0207】
【数6】

【0208】
上述したように、再使用が重要であることの1つの結果として、サブアタックを達成する最適な方法を判定する場合、目的も重要となる。従って、拡張アタックジャングルは、所定の目的に対して取り除かれる必要があり、方程式が導出される。単純な(かつ有効な)全てゼロの解を得られないという問題が存在する。これらの問題を解決するために、以下の3つのステップが後続する。
【0209】
1.目的gへの到達可能性により定義される誘導されたサブグラフで(V,E)を置換することによって、目的gに対して拡張アタックジャングル(V,E,A,r,M)を取り除く。(V’,E’,A,r,M)は、この取り除かれた拡張アタックジャングルを示している。
【0210】
2.新しいノードg’をVに追加し、新しい辺(g,g’)をEに追加し、M((g’,g))=1とする。
【0211】
3.方程式を上記のように導出し、f(g,g')=1という追加の条件下で整数解を解く。
【0212】
このサブグラフは、当該目的に対する関連する辺を確実に含むことになり、余分なノードg’及びf(g,g')に対する条件を追加することにより、gの達成が保証される。
【0213】
上記方程式体系に対する固有の解は必ずしも存在するとは限らないため、アタックの合計のコストは方程式体系を解く場合に最小にする目的関数として使用されるために定義される必要がある。
【0214】
(V,E)を有向グラフとする。Vのノードvの直後の後続ノードのセットは、セット{v’:(v,v’) belongs to E}であり、DS(v)で示される。
【0215】
構造化方法で目的関数を示すために、アトミックアタックの順序付けはより厳密に定義される必要がある。v0,v1,...,vn_1-1は、タイプ1の再使用不可能なアトミックアタックであり、vn_1,vn_1+1,...,vn_1+n_2-1はタイプ2の再使用不可能なアトミックアタックであり、vn_1+n_2,vn_1+n_2+1,...,vn_1+n_2+n_R-1は再使用可能なアトミックアタックである。
【0216】
アタックのコストは、合計として定義される。
【0217】
【数7】

【0218】
再使用に対していくつかの重要な問題を要約すると、再使用が重要である場合、複数のアタックノードの各々は、アタックが再使用可能であるかの指示と関連付けられ、アタックノード間の辺が重み付けされる。再使用可能なアタックノードと後続アタックノードとの間の各辺の重みは、再使用可能なアタックノードのアタックが後続ノードに到達するために再使用される必要がある回数を表している。上述の属性に依存する方程式体系のセットを参照すると、これは、この方程式体系のセットが辺の重みに依存すべきであることを意味している。
【0219】
対抗策または対抗策のセットを格付する概念をより理解するために、複数の例示的な例を使用して、この新しい概念について僅かに異なる観点から再度説明する。
【0220】
対抗策の格付
対抗策の有効性を互いに比較するために、「有効性」を記述する各対抗策と関連付けられる測定可能な値を有する必要がある。
【0221】
特定の一例において、第1に、対抗策が対抗するリーフノードのセットになるように対抗策を定義する。第2に、対抗策が適用されるアタックジャングルのシンクの属性値の関数になるように対抗策のランクを定義する。対抗策のセットのランクは同様に定義されるが、2つ以上の対抗策が適用される。尚、ランクは、対抗策が適用されないアタックジャングルに対しても計算することができる。対抗策の有効性は、ランクが互いに比較される方法(及び任意の追加の対抗策が全く適用されない本来のアタックジャングルのランク)に基づいて判断される。
【0222】
これらの定義に基づいて、対抗策は、好ましくは上述の方程式体系を繰り返し解くことにより比較される。以下の例は、対抗策のセットを互いに比較するためにとられるステップを説明する。
【0223】
1.研究中のシステムのアタックジャングルを構築する。
【0224】
2.上記説明に従って対抗策により不可能にされたリーフアタックを「不可能」としてマークをつけることによって、あるいは対抗策によって影響を受けるリーフノードの属性値を変更することによって、アタックジャングルに対してゼロ個以上の対抗策を適用する。ゼロ個の対抗策は、(対抗策を適用せずに)「基準システム」を生成して、初期システムの動作状態に関する情報と比較する、またはその情報を単純に取得するために使用される。
【0225】
3.上述のように、アタックジャングルを1つ以上の方程式体系に変換する。
【0226】
4.検証される属性(群)に従って、各リーフノードと属性値とを関連付ける。
【0227】
5.前記方程式体系(群)を解く。
【0228】
6.前記方程式体系(群)に対する解(群)からのアタックジャングルの中間ノード及びシンクから属性値を抽出する。
【0229】
7.対抗策のセットのランクを計算する。
【0230】
尚、構築されたアタックジャングルは、or−ノードのみを含んでもよく、and−ノードのみを含んでもよく、あるいは双方を混合したものを含んでもよい。例えば、XORノードである他の種類のノードが導入されることも可能である。(XOR関数の一例は、産業処理において、各々が個々に「破壊的」であるが共に使用される場合に互いに中和する2つの化学成分の使用に対応してもよい。)
これらの他の種類のノードは、特別な方法で対処される必要があるだろう。しかし、他のノードの種類が将来導入されても、or−ノード及びand−ノードは、本明細書で説明されるように対処できる。
【0231】
属性値は、解析されるものに依存して異なる種類であってもよい。属性値は、例えば、アタックが実行可能であるか否かを検出する場合に対するブールであってもよく、浮動小数点値または整数または値の間隔(例えば、不確かさを表す)であってもよい。
【0232】
尚、ステップ1のアタックジャングルの構築は、研究中のシステムに関する人間の知識によって行なわれる、あるいはシステムの記述から及び/または現在のシステム構成状態を報告するセンサの入力から、アタックジャングルを導出する装置によって自動的に行なわれる。アトミックアタックに対する属性値の割当に対しても同様のことが当てはまる。すなわち、これは、人間によって、または装置によって行なうことができる。装置は、例えば、システムにおけるセンサまたは事前に収集された統計データからの入力における決定に基づくことができる。
【0233】
アタックジャングルの自動生成の一例において、ネットワーク中の各通信ユニットはネットワーク中の管理エンティティに現在インストールされているソフトウェアのリストを提出する。管理エンティティは、ユニットにインストールされているソフトウェアにおける周知の脆弱性のリストを有するまたは検索する(例えば、CVEを使用して)。管理ユニットは、この情報から、システムに対して実行されるアタックをモデル化するアタックジャングルを構築できる。例えば、アタッカーは、ウェブサーバのソフトウェアにおける脆弱性を利用し(アタックA)、ウェブサーバにアクセスし、そこからウェブサーバに接続されるデータベースの別の脆弱性を利用して(アタックB)、データベースのデータにアクセスする(アタックの目的)。
【0234】
アタックジャングルの自動生成の別の考えられる例は、(視覚)ネットワーク格付方法論(V)NRMの文献[16]、[17]の説明が、アタックジャングルを構築する装置に入力されることである。ここで、各アタックは権利に違反し、アタックとして識別される。
【0235】
第3の例において、例えば、TCG(Trusted Computing Group)の仕様に従って実現されることが好ましいトラステッドプラットフォームモジュール(TPM)によって実行されるシステム測定に従って、セキュリティ保護されたリモート証明が使用される。
【0236】
アタックジャングルが巡回を含んでいる場合、各巡回に含まれるアタックを、巡回における全てのアタックと同等の種類を表す1つのアタックに削減する必要がある。これは、上述のように行なわれる。
【0237】
アタックジャングルから導出される方程式は、上述のように、and−ノード及びor−ノードに対して導出され、値を各ノード(既に値を割り当てられているリーフノード以外、すなわちアトミックアタック以外)と関連付ける。
【0238】
この方法は、比較する要求される特性が困難性であっても、アタックが可能であっても不可能であっても、あるいは任意の他の構成特性に関わらず行なうことができる。また、この方法は、要求される特性がコストまたは上述の特性の任意の組み合わせである場合にも行なうことができる。
【0239】
対抗策のランクを計算するための上記メカニズムを使用すると、対抗策(または対抗策の組み合わせ)を互いに比較することができる。これは、以下のステップにより行なわれる。
【0240】
1.対抗策が適用されない場合、アタックジャングルのランクを計算する。
【0241】
2.対抗策の組み合わせの各々がシステムに適用される場合、アタックジャングルのランクを計算する。
【0242】
3.対抗策の組み合わせは、それらのランクによって(いくつかの順序付けに従って)順序付けられる。
【0243】
潜在的に非常に多くの対抗策の組み合わせが存在するため、全ての組み合わせを比較することは実現可能でない可能性がある。従って、使用する組み合わせを選択する必要があるだろう。尚、全ての考えられる対抗策を適用することによりセキュリティを最も向上させる可能性が最も高いことに注意すべきである。しかしながら、これは最も高価な方法でもある。更に、対抗策の1つ以上の組み合わせが多かれ少なかれ同一の効果を有する可能性があり、この場合、それらの全ての組み合わせを実現することは無駄である。一例として、ランク/コストの比は、最適な対抗策を決定するために使用される。ある形式のコスト効率を推定するために、コストをランク計算に組み込むことが可能であってもよい。
【0244】
対抗策の組み合わせに順序が与えられると、最も効果的な対抗策の組み合わせが、この順序に従ってシステムに適用するために選択される。これらの対抗策の適用は、例えば、ユーザがシステムに対する仕様書にそれらの対抗策を組み込むことによって実行され、物理システム(またはプログラムコード)においてそれらの対抗策を実現する、またはシステムにおいて特定の機能性を有効/無効にする。尚、装置は、それらの動作を自動的に実行できてもよい(人間の支援によりまたは人間の支援なしで)ことに注意されたい。管理ユニットにソフトウェアバージョンを報告する通信ユニットを含む上記で与えられる例を使用すると、管理ユニットは、ウェブサーバの検出された脆弱性に対する対抗策として、そのソフトウェアを新しいバージョン(脆弱性が補正されている)に更新するようにウェブサーバに命令してもよいことが分かる。
【0245】
図33は、本発明に従うセキュリティ解析/対抗策格付装置が技術システムを解析及び再構成するために使用される方法の一例を示している。
【0246】
この例において、解析中の技術システムは、システムの機能性を実現するために協働する2つのサブモジュールM1及びM2を有すると想定する。各モジュールは、本発明の解析システムに対してシステム動作特性/パラメータ/構成を断続的に(または要求により)報告するセンサSを有する(この報告は、セキュリティ保護された方法で転送されることが好ましい)。セキュリティ解析は、上述のように実行され、適切な対抗策が選択される。これらの対抗策は、システムパラメータ/構成を変更する構成モジュールCに信号伝送される(好ましくは、セキュリティ保護された方法で)。
【0247】
以下において、本発明の例示的な実施形態のオプション及び非オプションの特徴の一部を要約する。
【0248】
技術システムのセキュリティ保護された動作を向上するために技術システムに作用する情報を生成するように構成されるセキュリティ方法及び対応するシステム/装置の一例:
・アタックジャングルの形式でシステムアタックまたは脆弱性の表現を取得/提供(生成または受信)する。ここで、このアタックジャングルの頂点は関連する属性を有する。
【0249】
・このアタックジャングルを、制約を含む可能性が高い複数の方程式体系(群)に変換する。この方程式体系(群)の各々は、上記の属性と関連付けられる変数を含んでいる/備えている。
【0250】
・このアタックジャングルのソース頂点と関連付けられる少なくともいくつかの変数に値を割り当てる(または入力として受信する)。
【0251】
・この方程式体系(群)を解く。
【0252】
・この方程式体系(群)の解(群)から関連する変数値を抽出することによって、少なくとも1つの中間ノード及び/またはシンクの属性の値を判定(または入力として受信)する。
【0253】
・技術システムに適用される1つ以上の対抗策のランクとして、または当該システムの動作状態の情報として、少なくとも1つの中間ノード及び/またはシンクの前記判定された属性値の少なくとも1つを出力する。
【0254】
例えば、アタックジャングルの少なくとも1つのノードは、論理積ノードであってもよくかつ/またはアタックジャングルの少なくとも1つのノードは論理和ノードであってもよい。
【0255】
例示的な実施形態において、アタックジャングルは、システム記述から生成される自動的に生成されるアタックグラフを解析することによって構築されることが好ましい。
【0256】
選択的には、アタックジャングルは、人間により構築され、また、本発明のセキュリティシステムまたは技術的意思決定支援システムへの入力として適用される。
【0257】
別の例示的な実施形態において、追加の制約を含む1つ以上の方程式体系(群)へのアタックジャングルの変換は、以下のオプションの前処理ステップを含んでいる。
【0258】
論理和ノードのみから構成されるアタックジャングルCiの各巡回は、単一のノードwiに対して置換される。結果として得られるノードwiは、uがCiの全てのvに対してPre(v)のメンバであるように全ての(u,wi)を入力辺として有し、vがCiの全てのvに対してPre(u)のメンバであるように全ての(wi,u)を出力辺として有する。
【0259】
例示的な実施形態において、各非ソースノードは、以下のように方程式と関連付けられる:
論理積ノードvと関連付けられる変数xの値は、方程式により判定される。
【0260】
x = f(V(Pre(v)))
式中、fは論理積コンバイナであり、Pre(.)は直前の先行ノードのセットをノードに返す関数であり、V(.)は関連する変数のセットをPre(v)のノードに返す関数である。
【0261】
論理和ノードuと関連付けられる変数yの値は、方程式により判定される。
【0262】
y = g(V(Pre(u)))
式中、gは論理和コンバイナであり、Pre(.)は直前の先行ノードのセットをノードに返す関数であり、V(.)は関連する変数のセットをPre(v)のノードに返す関数である。
【0263】
一例として、制約は各強連結成分Sに対して以下に従って作成されてもよい。
【0264】
wが論理積ノードでなくかつ関連する変数zがg(V(Pre(w)\S))と等しくなるように、Sにおいてノードwが存在する必要がある。ここで、gは論理和コンバイナであり、Pre(.)は直前の先行ノードのセットをノードに返す関数であり、V(.)は関連する変数のセットをPre(v)のノードに返す関数であり、\はセットの差である。
【0265】
上記例の属性値は、人間により割り当てられてもよく、かつ/または属性値は、装置が技術システムのセンサからの入力を利用することによって割り当てられてもよい。センサの一例は、電話網の特定のセルから到来するパケット数を計測するメカニズムであってもよい。これは、ネットワークから違反セルを切断する形態の対抗策を起動することを決定するために、対抗策アクチュエータによって使用される。他の例は、ソフトウェアバージョン、使用される暗号化アルゴリズム、セキュリティ鍵が使用されている期間等の報告を含んでいる。
【0266】
一例において、要求される属性は、困難性、特定のアタックが達成可能であるか、構成挙動及びコストを含む任意の特性のうちの少なくとも1つである。
【0267】
要求される属性は、困難性、特定のアタックが達成可能であるか否か、構成挙動及びコストを含む任意の特性の累乗集合(power set)のサブセットであってもよい。
【0268】
本発明の好適で例示的な実施形態において、本発明のセキュリティ方法/システムは、対抗策が適用されない場合にアタックジャングルに対する属性値を最初に判定するために上述の手順を使用することによって(この値のセットをAと呼ぶ)、1つ以上の対抗策が組み合わせて適用されている場合にアタックジャングルに対する属性値を判定するために上記手順を使用することによって(これらの値のセットをB1、B2、B3、...、Bnと呼ぶ)、かつ最後に1<=i<=nの場合にBiをAと比較することによって対抗策を格付することによって、対抗策の格付を提供する。
【0269】
1<=i<=nの場合、Biは所定のアタックジャングルに対する対抗策の全ての可能な組み合わせを記述するのが好ましいが必須ではない。選択的には、事前に選択された対抗策のセットが考慮される。一般に、最も効果的な対抗策がシステムに適用するために選択される。選択された対抗策を技術システムに自動的に適用できることは明らかである。
【0270】
上述したように、属性値は、浮動小数点数、整数、ブール値または間隔であってもよい。
【0271】
コンピュータプログラム製品に関して、本発明によって提案されるセキュリティ解析手順は、プログラムモジュール、機能または等価物の形態でソフトウェアとして実現されてもよい。このソフトウェアは、C、C++または専用言語等の任意の種類のコンピュータ言語で記述されてもよい。実際には、本発明の関連するステップ、機能及び動作は、コンピュータプログラムにマップされ、コンピュータシステムによって実行される場合に適切な入力を使用して、当該技術システムのセキュリティ解析と関連付けられる解析及び計算を実行する。パーソナルコンピュータに基づくシステムの場合、セキュリティ解析に使用されるコンピュータプログラムは、通常、オペレータに配信する(インターネットを介してプログラムをダウンロードすることも含む)ために、CD、DVDまたは同様のメモリ構造等のコンピュータ可読媒体上で符号化されるまたは保持される。その後、オペレータは、後で実行するために、適切なコンピュータシステムにプログラムをロードしてもよい。
【0272】
本発明の利点の例は、以下の通りである。
【0273】
・リスク軽減に対する有効性に関して対抗策の組み合わせを互いに比較する可能性(及びオプションとして適用される対抗策のコストも考慮に入れる)。
【0274】
・標準的なアタックツリーと比較して、より複雑な(かつ実世界のような)アタックモデルを解析する可能性(オプション)。
【0275】
・再使用可能なアタックに対処する可能性(オプション)。
【0276】
・アタックグラフの巡回に対処する可能性(オプション)。
【0277】
上述の実施形態は単なる例として与えられ、本発明はそれらに限定されないことが理解されるべきである。本明細書で開示されかつ請求される基礎となる基本原理を保持する更なる変形、変更及び改善は、本発明の範囲内である。
【0278】
参考文献
[1]AmenazaのThe securitree burglehouse tutorial、Technical report、 Amenaza Technologies Limited、2006年8月
[2]T.H. Cormen、 C.E. Leiserson、R.L. Rivest及びC.Steinの Introduction to algorithms、 MIT Press、 Cambridge, MA, USA、2001年
[3]K. Daley、R. Larson及びJ. DawkinsのA structural framework for modeling multi-stage network attacks、icppw, 00:5、2002年
[4]J. Dawkins、C. Campbell、R. Larson、K. Fitch、T. Tidwell及びJ. HaleのModeling network attacks: Extending the attack tree paradigm、In Proc. of Third Intl. Systems Security Engineering、2002年
[5]J. Dawkins及びJ. HaleのA systematic approach to multi-stage network attack analysis、In IWIA '04: Proceedings of the Second IEEE International Information Assurance Workshop (IWIA '04)、48ページ、Washington, DC, USA、2004年、IEEE Computer Society
[6]G. Balbo他のIntroductory Tutorial - Petri Nets、2000年6月26〜30日
[7]R. Larson、K. Fitch、T.Tidwell及びJ. HaleのModeling internet attacks、In Proc. of the 2001 IEEE Workshop on Information Assurance and Security、2001年
[8]S. Mauw及びM. OostdijkのFoundations of attack trees. In D. Won and S. Kim, editors, International conference on information security and cryptology - icisc 2005、LNCS 3935、186〜198ページ、Seoul, Korea、2005年、Springer-Verlag, Berllin
[9]J.P. McDermottのAttack net penetration testing. In NSPW '00: Proceedings of the 2000 Workshop on New security paradigms、15〜21ページ、New York, NY, USA、2000年、ACM Press
[10]A. OpelのDesign and implementation of a support tool for attack trees
[11]B. SchneierのAttack trees、Dr Dobbs Journal、24(12): 21-22, 24, 26, 28-29、1999年12月
[12]O. Sheyner及びJ.M. WingのTools for generating and analyzing attack graphs、In F.S. de Boer, M.M. Bonsangue, S. Graf, and W.P. de Roever, editors, FMCO, volume 3188 of Lecture Notes in Computer Science、344〜372ページ、Springer、2003年
[13]W.E. Vesely、J. Dugan、J. Fragola、J. Minarick III及びJ. RailsbackのFault Tree Handbook with Aerospace Applications. National Aeronatics and Space Administration、2002年8月
[14]Wikipedia http://en.wikipedia.org/wiki/microprocessor
[15]P. N. World http://www.informatik.uni-hamburg.de/tgi/petrinets
[16]http://chacs.nrl.navy.mil/projects/VisualNRM
[17]A. Moore他のVisual NRM User's Manual、2000年5月31日
[18]W.E. Vesley他のFault Tree Handbook, from U.S. Nuclear Regulatory Commission、1981年1月

【特許請求の範囲】
【請求項1】
技術システムのセキュリティの解析に基づいて前記技術システムを再構成する装置であって、
前記技術システムを特徴付ける技術情報を受信する入力と、
前記受信した技術情報に基づいて、前記技術システムに関連する属性を有するアタックノードの有向グラフにおいて前記技術システムに対する潜在的なアタックの表現を提供するように構成されているグラフ表現ユニットと、
システムセキュリティを向上するために、選択された対抗策のセットを実行することを可能にするように、各々が少なくとも1つの対抗策を含む複数の異なる対抗策のセットを格付する格付リストを提供するように構成されている格付ユニットであって、対抗策のセット毎に、
前記有向グラフにおけるアタックに前記対抗策のセットを論理的に適用することと、
前記アタックのリスクを軽減することに関する前記適用された対抗策のセットの有効性に基づいて前記適用された対抗策のセットのランクを判定することとを実行するように構成されている格付ユニットと、
最高ランクを有する前記対抗策のセットの中から選択するように構成されている選択器と、
選択された対抗策のセットを前記技術システムに適用するように構成されているシステム再構成ユニットと
を備えることを特徴とする装置。
【請求項2】
第1の属性のサブセットに値を提供する手段を更に備え、
前記格付ユニットは、対抗策のセット毎に、前記第1の属性のサブセットの前記値の少なくとも一部に影響を及ぼす前記対抗策のセットを論理的に適用し、前記第1の属性のサブセットの前記対抗策の影響を受けた値を第2の属性のサブセットに伝播し、かつ前記適用された対抗策のセットのランクを計算するために前記第2の属性のサブセットの値を抽出するように構成されている
ことを特徴とする請求項1に記載の装置。
【請求項3】
前記格付ユニットは、対抗策が適用されていない前記第2の属性のセットの対応する値に関連して、前記第2の属性のセットの値が前記適用された対抗策のセットにより影響を受ける程度の比較に基づいて、対抗策のセットの前記有効性を判定するように構成されている
ことを特徴とする請求項2に記載の装置。
【請求項4】
前記有向グラフを属性に依存する方程式体系のセットに変換するコンバータを更に備え、
前記提供する手段が、前記有向グラフにおける、または前記属性に依存する方程式体系のセットにおける、前記第1の属性のサブセットに値を提供するように構成されていて、
前記第1の属性のサブセットの前記対抗策の影響を受けた値を前記第2の属性のサブセットに伝播するために前記属性に依存する方程式体系のセットを解く解答器を更に備え、
前記格付ユニットは、前記適用された対抗策のセットのランクを計算するために、前記解いた方程式体系から前記第2の属性のサブセットの値を抽出するように構成されている
ことを特徴とする請求項2に記載の装置。
【請求項5】
前記提供する手段は、属性値を前記有向グラフにおける複数のリーフノードの各々と関連付けるように構成され、
前記格付ユニットは、前記解いた方程式体系から前記有向グラフにおける少なくとも1つの中間ノード及びルートノードの少なくとも一方から属性値を抽出し、かつ前記抽出した属性値に基づいてランクを計算するように構成されている
ことを特徴とする請求項4に記載の装置。
【請求項6】
対抗策のセットは、前記対抗策のセットが対抗するアタックノードの前記有向グラフにおけるリーフノードのセットとして定義され、
前記格付ユニットは、前記少なくとも1つの中間ノード及びルートノードの少なくとも一方の前記属性値の関数として、対抗策のセットの前記ランクを判定するように構成されている
ことを特徴とする請求項5に記載の装置。
【請求項7】
複数の前記アタックノードの各々は、前記アタックが再使用可能であるかの指示と関連付けられ、
アタックノード間の辺は重み付けされており、
再使用可能であるアタックノードと後続のアタックノードとの間の各辺の重みは、前記再使用可能であるアタックノードのアタックが前記後続のアタックノードに到達するために再使用される必要がある回数を表しており、
前記属性に依存する方程式体系のセットは、前記辺の重みにも依存する
ことを特徴とする請求項4に記載の装置。
【請求項8】
前記アタックノードの有向グラフは巡回を含み、
前記装置は、周期的に相互接続されるアタックノードのセットを単一の代表的なアタックノードによって置換することによって、前記有向グラフを変更するグラフ変更器を更に備える
ことを特徴とする請求項1に記載の装置。
【請求項9】
リスクは、実現される1つ以上のアタックの予想される損失として定義される
ことを特徴とする請求項1に記載の装置。
【請求項10】
前記有効性は、前記対抗策を適用するためのコストを考慮することを更に含む
ことを特徴とする請求項1に記載の装置。
【請求項11】
前記格付ユニットは、前記対抗策を適用するための前記コストに関連して、適用された対抗策のセットのリスク軽減を評価するように構成されている
ことを特徴とする請求項1に記載の装置。
【請求項12】
前記技術システムは、複数の通信リンクによって相互接続される複数の通信ユニットを有する通信ネットワークであり、
前記複数の通信ユニットの少なくとも一部及び/前記複数の通信リンクの少なくとも一部についての少なくとも一方は、アタックを受け易い
ことを特徴とする請求項1に記載の装置。
【請求項13】
前記技術システムを特徴付ける前記技術情報の少なくとも一部を取得するように構成されている少なくとも1つのセンサを更に備える
ことを特徴とする請求項1に記載の装置。
【請求項14】
前記格付ユニットは、対抗策が適用されない基準システムとの比較に基づいて、前記異なる対抗策のセットを格付するように構成されている
ことを特徴とする請求項1に記載の装置。
【請求項15】
向上されたシステムセキュリティのための技術システムの再構成を可能にするために前記技術システムのセキュリティを解析する技術的意思決定支援システムであって、
前記技術システムを特徴付ける技術情報を受信する手段と、
前記受信した技術情報に基づいて、前記技術システムに関連する属性を有するアタックノードの有向グラフにおいて、前記技術システムに対する潜在的なアタックの表現を提供する手段と、
システムセキュリティを向上するために、選択された対抗策のセットを実行することを可能にするように、各々が少なくとも1つの対抗策を含む複数の異なる対抗策のセットを格付リストにおいて格付する手段であって、対抗策のセット毎に
前記有向グラフにおけるアタックに対する前記対抗策のセットを論理的に適用することと、
アタックのリスクを軽減することに関する前記適用された対抗策のセットの有効性に基づいて、前記適用された対抗策のセットのランクを判定することと
を実行するように構成されている格付手段と
を備えることを特徴とする技術的意思決定支援システム。
【請求項16】
第1の属性のサブセットに値を提供する手段を更に備え、
前記格付手段は、対抗策のセット毎に、前記第1の属性のサブセットの前記値の少なくとも一部に影響を及ぼす前記対抗策のセットを論理的に適用し、前記第1の属性のサブセットの前記対抗策の影響を受けた値を第2の属性のサブセットに伝播し、かつ前記適用された対抗策のセットのランクを計算するために前記第2の属性のサブセットの値を抽出するように構成されている
ことを特徴とする請求項15に記載の技術的意思決定支援システム。
【請求項17】
前記格付手段は、対抗策が適用されていない前記第2の属性のセットの対応する値に関連して、前記第2の属性のセットの値が前記適用された対抗策のセットにより影響を受ける程度の比較に基づいて対抗策のセットの前記有効性を判定するように構成されている
ことを特徴とする請求項16に記載の技術的意思決定支援システム。
【請求項18】
前記有向グラフを属性に依存する方程式体系のセットに変換する手段と
前記有向グラフにおける、または前記属性に依存する方程式体系のセットにおける、前記第1の属性のサブセットに値を提供する手段と、
前記第1の属性のサブセットの前記対抗策に影響を受けた値を前記第2の属性のサブセットに伝播するために前記属性に依存する方程式体系のセットを解く手段とを更に備え、
前記格付手段は、前記適用された対抗策のセットのランクを計算するために、前記解いた方程式体系から前記第2の属性のサブセットの値を抽出するように構成されている
ことを特徴とする請求項16に記載の技術的意思決定支援システム。
【請求項19】
前記提供する手段は、属性値を前記有向グラフにおける複数のリーフノードの各々と関連付けるように構成され、
前記格付手段は、前記解いた方程式体系から前記有向グラフにおける少なくとも1つの中間ノード及びルートノードの少なくとも一方から属性値を抽出し、かつ前記抽出した属性値に基づいてランクを計算するように構成されている
ことを特徴とする請求項18に記載に技術的意思決定支援システム。
【請求項20】
対抗策のセットは、前記対抗策のセットが対抗する前記アタックノードの有向グラフにおいてリーフノードのセットとして定義され、
対抗策のセットの前記ランクは、前記少なくとも1つの中間ノード及びルートノードの少なくとも一方の前記属性値の関数である
ことを特徴とする請求項19に記載に技術的意思決定支援システム。
【請求項21】
複数の前記アタックノードの各々は、前記アタックが再使用可能であるかの指示と関連付けられ、
アタックノード間の辺は重み付けされ、
再使用可能であるアタックノードと後続のアタックノードとの間の各辺の重みは、前記再使用可能であるアタックノードのアタックが前記後続のアタックノードに到達するために再使用される必要がある回数を表しており、
前記属性に依存する方程式体系のセットは、前記辺の重みにも依存する
ことを特徴とする請求項18に記載に技術的意思決定支援システム。
【請求項22】
前記アタックノードの有向グラフは巡回を含み、
前記システムは、周期的に相互接続されるアタックノードのセットを単一の代表的なアタックノードによって置換することによって前記有向グラフを変更する手段を更に備える
ことを特徴とする請求項15に記載に技術的意思決定支援システム。
【請求項23】
リスクは、実現される1つ以上のアタックの予想される損失として定義される
ことを特徴とする請求項15に記載に技術的意思決定支援システム。
【請求項24】
前記有効性は、前記対抗策を適用するためのコストを考慮することを更に含む
ことを特徴とする請求項15に記載に技術的意思決定支援システム。
【請求項25】
前記格付手段は、前記対抗策を適用するための前記コストに関連して、適用された対抗策のセットのリスク軽減を評価するように構成されている
ことを特徴とする請求項15に記載に技術的意思決定支援システム。
【請求項26】
前記技術システムは、複数の通信リンクによって相互接続される複数の通信ノードを有する通信ネットワークであり、
前記複数の通信ユニットの少なくとも一部及び/前記複数の通信リンクの少なくとも一部についての少なくとも一方は、アタックを受け易い
ことを特徴とする請求項15に記載に技術的意思決定支援システム。
【請求項27】
前記技術システムを特徴付ける前記技術情報の少なくとも一部を取得するように構成されている少なくとも1つのセンサを更に備える
ことを特徴とする請求項15に記載に技術的意思決定支援システム。
【請求項28】
コンピュータシステムにおいて実行する場合に、向上されたシステムセキュリティのための技術システムの再構成を可能にするために前記技術システムのセキュリティを解析するための、コンピュータ可読媒体に記憶されたコンピュータプログラムであって、
前記技術システムを特徴付ける技術情報を受信するプログラム手段と
前記受信した技術情報に基づいて、前記技術システムに関連する属性を有するアタックノードの有向グラフにおいて前記技術システムに対する潜在的なアタックの表現を提供するプログラム手段と
システムセキュリティを向上するために、選択された対抗策のセットを実行することを可能にするように、各々が少なくとも1つの対抗策を含む複数の異なる対抗策のセットを格付リストにおいて格付するプログラム手段であって、対抗策のセット毎に
前記有向グラフにおけるアタックに前記対抗策のセットを論理的に適用することと、
前記アタックのリスクを軽減することに関する前記適用された対抗策のセットの有効性に基づいて前記適用された対抗策のセットのランクを判定することとを実行するように構成されている、格付するプログラム手段と
を備えることを特徴とするコンピュータプログラム。
【請求項29】
前記コンピュータプログラムは、前記異なる対抗策のセットの前記判定したランクに基づいて前記コンピュータプログラムにより生成される制御信号を提供するプログラム手段を更に備える
ことを特徴とする請求項28に記載のコンピュータプログラム。

【図1A】
image rotate

【図1B】
image rotate

【図1C】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7A】
image rotate

【図7B】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19A】
image rotate

【図19B】
image rotate

【図20】
image rotate

【図21A】
image rotate

【図21B】
image rotate

【図21C】
image rotate

【図22A】
image rotate

【図22B】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate


【公表番号】特表2011−519435(P2011−519435A)
【公表日】平成23年7月7日(2011.7.7)
【国際特許分類】
【出願番号】特願2010−528349(P2010−528349)
【出願日】平成20年9月23日(2008.9.23)
【国際出願番号】PCT/EP2008/062667
【国際公開番号】WO2009/047113
【国際公開日】平成21年4月16日(2009.4.16)
【出願人】(598036300)テレフオンアクチーボラゲット エル エム エリクソン(パブル) (2,266)
【Fターム(参考)】