(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-09-13
(54)【発明の名称】デジタルシステムの動作させる方法、および方法を組み込むデジタルシステム
(51)【国際特許分類】
G06F 21/55 20130101AFI20230906BHJP
G06F 21/57 20130101ALI20230906BHJP
【FI】
G06F21/55 340
G06F21/57 370
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023509741
(86)(22)【出願日】2021-06-30
(85)【翻訳文提出日】2023-02-10
(86)【国際出願番号】 US2021039753
(87)【国際公開番号】W WO2022046281
(87)【国際公開日】2022-03-03
(32)【優先日】2020-08-31
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520128820
【氏名又は名称】ノースロップ グラマン システムズ コーポレーション
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】ヘンドリクソン、エリック、エル.
(57)【要約】
デジタルリソースと、デジタルリソースのイベントを検出するイベント検出器とを有する複数の動作状態で動作可能なデジタルシステムを動作させる方法であって、システムとデジタルリソースのうちの少なくとも1つの動作モードを区間中に実質的に決定するステップと、区間中に発生するイベントの数を累積するステップと、を含む。この方法は、さらに、累積されたイベントを、動作モードに関連する少なくとも1つの閾値と比較するステップと、比較がデジタルリソースの公称外の動作を示す場合、隔離、制限、および是正措置のうちの少なくとも1つを実施するステップと、を含む。この方法を組み込んだデジタルシステムも開示される。
【特許請求の範囲】
【請求項1】
デジタルリソースと、前記デジタルリソースのイベントを検出するイベント検出器とを有する、複数の動作状態で動作可能なデジタルシステムを動作させる方法であって、
区間中に有効な前記デジタルシステムおよび前記デジタルリソースのうちの少なくとも1つの動作モードを決定し、
前記区間中に発生するイベントの数を累積し、
累積されたイベントを前記動作モードに関連する少なくとも1つの閾値と比較し、
前記比較が前記デジタルリソースの公称外の動作を示す場合、隔離、制限、および是正措置のうちの少なくとも1つを実施する、方法。
【請求項2】
前記比較することは、前記デジタルリソースが公称限界外で動作可能であるかどうかを決定することを含む、請求項1に記載の方法。
【請求項3】
前記実施することは、複数の措置を定義することと、累積イベントの数に応じて前記複数の措置のうちの1つを選択することと、を含む、請求項1に記載の方法。
【請求項4】
前記比較することは、前記累積イベントの数を上限及び下限と比較することを含む、請求項3に記載の方法。
【請求項5】
前記デジタルシステムが、複数のさらなるイベントを検出する複数のさらなるイベント検出器を有し、さらなるイベントを累積し、累積されたイベントを重み付けし、累積されたイベントと重み付けされたイベントを合計してイベント合計を得ることをさらに含む、請求項1に記載の方法。
【請求項6】
前記イベント合計を少なくとも1つの閾値と比較し、前記イベント合計が少なくとも1つの閾値から異なる場合に前記イベント合計をインクリメントすることをさらに含む、請求項5に記載の方法。
【請求項7】
インクリメントされた前記イベント合計を時間区間の関数としてデクリメントすることをさらに含む、請求項6に記載の方法。
【請求項8】
前記隔離、制限、及び是正措置のうちの少なくとも1つが、前記デジタルリソースの隔離、前記デジタルシステムの静止、前記デジタルシステムのセーフモードにおける動作、及び前記デジタルシステムの少なくとも一部の監査を含む、請求項6に記載の方法。
【請求項9】
複数の動作状態で動作可能なデジタルシステムであって、
デジタルリソースと、
前記デジタルリソースのイベントを検出するイベント検出器と、
前記デジタルシステムが特定の動作状態で動作している間に発生する前記デジタルリソースのイベントの数を時間区間で累積し、累積したイベントを特定の動作状態に関連する少なくとも1つの閾値と比較してリスクスコア値を取得する少なくとも1つのイベントカウンタを有するセキュリティマトリックスと、
前記リスクスコア値が前記デジタルリソースの公称外の動作を示す場合、隔離、制限、および是正措置のうちの少なくとも1つを実施する脅威評価モジュールと、を含むデジタルシステム。
【請求項10】
前記セキュリティマトリックスは、前記デジタルリソースが公称限界外で動作可能であるかどうかを判定するように動作可能である、請求項9に記載のデジタルシステム。
【請求項11】
前記セキュリティマトリックスは、前記デジタルリソースの前記累積されたイベントの数を上限及び下限と比較するように動作可能である、請求項10に記載のデジタルシステム。
【請求項12】
前記デジタルシステムが、複数のさらなるハードウェアイベントを検出する複数のさらなるイベント検出器を有し、前記セキュリティマトリックスが、さらなるハードウェアイベントを累積し、累積されたハードウェアイベントを重み付けし、累積されたハードウェアイベントと重み付けされたハードウェアイベントを合計してイベント合計を得るようにさらに動作可能である、請求項10に記載のデジタルシステム。
【請求項13】
前記セキュリティマトリックスは、前記イベント合計を少なくとも1つの閾値と比較し、前記イベント合計が少なくとも1つの閾値とは異なる場合に前記イベント合計をインクリメントするようにさらに動作可能である、請求項12に記載のデジタルシステム。
【請求項14】
前記セキュリティマトリックスは、インクリメントされた前記イベント合計を時間区間の関数としてデクリメントするようにさらに動作可能である、請求項13に記載のデジタルシステム。
【請求項15】
隔離、制限、および是正措置の少なくとも1つは、前記デジタルリソースの検疫、前記デジタルシステムの静止、前記デジタルシステムのセーフモードにおける動作、および前記デジタルシステムの少なくとも一部の監査からなる、請求項9に記載のデジタルシステム。
【請求項16】
複数の動作状態で動作可能なデジタルシステムであって、
デジタルリソースと、
前記デジタルリソースのイベントを検出するための検出手段と、
前記デジタルシステムが時間区間中に特定の動作状態で動作しているときに発生する前記デジタルリソースのイベントの数を累積するための少なくとも1つのイベントカウンタと、累積されたイベントを特定の動作状態に関連する少なくとも1つの閾値と比較してリスクスコア値を得るための手段とを有する累積手段と、
前記リスクスコア値が前記デジタルリソースの公称外の動作を示す場合、隔離、制限、および是正措置のうちの少なくとも1つを実施するための実施手段と、を含むデジタルシステム。
【請求項17】
前記累積手段は、累積された前記デジタルリソースのイベントの数を上限及び下限と比較する手段を含む、請求項16に記載のデジタルシステム。
【請求項18】
前記検出手段が、複数のさらなるハードウェアイベントを検出し、前記累積手段が、さらなるハードウェアイベントを累積し、累積されたハードウェアイベントを重み付けする手段と、累積されたハードウェアイベントと重み付けされたハードウェアイベントを合計してイベント合計を得る手段と、を含む、請求項17に記載のデジタルシステム。
【請求項19】
前記累積手段は、前記イベント合計を少なくとも1つの閾値と比較する手段と、前記イベント合計が少なくとも1つの閾値と異なる場合に前記イベント合計をインクリメントする手段と、をさらに含む、請求項18に記載のデジタルシステム。
【請求項20】
前記累積手段は、インクリメントされた前記イベント合計を時間区間の関数としてデクリメントしてリスクスコアを得る手段をさらに含み、前記実施手段は、前記デジタルリソースの検疫、前記デジタルシステムの静止、前記デジタルシステムのセーフモードにおける動作、及び前記デジタルシステムの少なくとも一部の監査を呼び出すための前記リスクスコアに応答する手段を含む、請求項19に記載のデジタルシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般にデジタルシステムに関し、より詳細には、デジタルシステムを動作させる方法、およびそのような方法を組み込むデジタルシステムに関する。
【背景技術】
【0002】
SoC(System on a Chip)、ASIC(Application Specific Integrated Circuits)、またはFPGA(Field Programmable Gate Arrays)、ならびにそれらの組み合わせなどのデジタルシステムまたはサブシステムは、通常、プロセッサ、メモリ、コントローラ、相互接続、入出力(I/O)デバイスなどの機能を実装する。そのようなデジタルリソースまたはコンポーネントは、デジタルシステムへの許可されていないアクセスを有するハッカーによって危険にさらされる可能性がある。あるいは、1つまたは複数のデジタルリソースまたはコンポーネントが誤動作し、デジタルシステムの動作が不適切になる可能性がある。いずれの場合も、このような事態が発生したか否かを知ることが重要である。具体的には、NIST(National Institute of Standards and Technology)、NIAP(National Information Assurance Partnership)及び、CMMF(the Cybersecurity Maturity Model Certificaton)基準が、既にあるいは近い将来にデジタルサブシステムが動的に生じる脅威に対して積極的に監視される必要があることを規定する。これらの要件は、現在、ほとんどが地上ネットワークに適用されているが、近い将来、アビオニクスやペイロードシステムにも適用されることになる。
【0003】
これらのリソースまたはコンポーネントのそれぞれは、それに固有であり、システム動作の環境に固有の特定の挙動パターンを有する。例えば、宇宙船のサブシステムが地上局とのみ通信している場合、MIL-STD-1553 LAN 基準に従って動作するコントローラと、何らかの最小限のプロセスロジックが動作している可能性がある。さらに、高速PCIeまたはSRIOリンクなど、他の何らかのシステムが動作している可能性があることは予想されない。
【0004】
通常、各リソース又はコンポーネントには、その装置固有の特定のイベントの発生回数をカウントするイベントカウンタが埋め込まれている。例えば、プロセッサは、プロセッサがメインメモリからデータをフェッチする必要がある回数をカウントするイベントカウンタを有してもよい。あるいは、メモリコントローラは、リセット後に何回の読み出しが行われたかをカウントするイベントカウンタを有してもよい。何れの場合でも、このようなカウンタは、性能を測定するため、及び/又はデバッグのためにしばしば使用され、監視される。また、システムインテグレータによって追加されるものもあり、具体的には、例えば、サブシステムやSoCレベルでの動作を監視するものがある。
【0005】
サイバースペースの脅威を監視する過去のアプローチには、迅速に動作するが、高いリソースコストを伴うシステム、またはリソース使用量を最小限に抑えるが非常に遅い設計が含まれる。別のアプローチは、システム内に不良エージェントを確実に入れないようにするために、閉じたシステム内で完全に動作させることであろう。しかし、このアプローチは、望ましくないことに、システム全体の可能複雑性を制限し、ミッション達成能力の制限につながる。また、設計者は、システムに入るコードおよびハードウェアのすべての行をレビューし、サプライチェーン全体が異常なコードを含まないことを保証しなければならない。
【発明の概要】
【発明が解決しようとする課題】
【0006】
上記の選択肢のいずれも、ほとんどの用途に最適ではない。
【課題を解決するための手段】
【0007】
一態様によれば、デジタルリソースと、デジタルリソースのイベントを検出するイベント検出器とを有する複数の動作状態で動作可能なデジタルシステムを動作させる方法は、区間中に有効なシステムとデジタルリソースのうちの少なくとも1つの動作モードを決定するステップと、区間中に発生するイベントの数を累積するステップと、を含む。この方法は、さらに、累積されたイベントを、動作モードに関連する少なくとも1つの閾値と比較するステップと、比較がデジタルリソースの公称外の動作を示す場合、隔離、制限、および是正措置のうちの少なくとも1つを実施するステップと、を含む。
【0008】
別の態様によれば、複数の動作状態で動作可能なデジタルシステムは、デジタルリソースと、デジタルリソースのイベントを検出するイベント検出器と、を含む。デジタルシステムは、デジタルシステムが時間区間中に特定の動作状態で動作しているときに発生するデジタルリソースのイベントの数を累積し、累積されたイベントを特定の動作状態に関連する少なくとも1つの閾値と比較してリスクスコア値を得る、少なくとも1つのイベントカウンタを有するセキュリティマトリックスをさらに含む。またさらに、脅威評価モジュールは、リスクスコア値がデジタルリソースの公称外の動作を示す場合、隔離、制限、および是正措置のうちの少なくとも1つを実施する。
【0009】
さらに別の態様によれば、複数の動作状態で動作可能なデジタルシステムは、デジタルリソースと、デジタルリソースのイベントを検出するための手段とを備える。デジタルシステムは、デジタルシステムが時間区間中に特定の動作状態で動作しているときに発生するデジタルリソースのイベントの数を累積するための少なくとも1つのイベントカウンタを有する手段と、累積されたイベントを特定の動作状態に関連する少なくとも1つの閾値と比較してリスクスコア値を得るための手段をさらに備える。前記デジタルシステムは、前記リスクスコア値が前記デジタルリソースの公称外の動作を示す場合、隔離、制限、及び是正措置のうちの少なくとも1つを実施するための手段をさらに含む。
【0010】
他の態様及び利点は、以下の詳細な説明及び添付の図面を考慮することで明らかになるであろう。
【図面の簡単な説明】
【0011】
【
図1】SoCを動作させる方法を実装したSoCの形態のデジタルシステムの第1の例である。
【
図2】
図1のSoCの状態フローを示すブロック図である。
【
図3A】
図3Bを右に同様の文字線に沿って接合された場合、
図1のセキュリティマトリックスおよび応答プランモジュールのブロック図を構成する。
【
図3B】
図3Aを左に同様の文字線に沿って接合された場合、
図1のセキュリティマトリックスおよび応答プランモジュールのブロック図を構成する。
【
図4】ASIC及びFPGAの形態のデジタルシステムの第2の例であり、これらは共にASIC及びFPGAを動作させる方法を実施することを含む。
【
図5】
図1のシステムのシステムをより詳細に図示するブロック図を含む。
【
図6】
図1のセキュリティマトリックス及び応答プランモジュールの例示的な動作を示すタイミング図である。
【発明を実施するための形態】
【0012】
図1及び
図2は、2つの例示的なデジタルシステム10、20を示し、その各々は、デジタルシステムの全て又は一部の動作に対する悪意のある又は他の脅威を識別し、それらに対して措置をとるために、デジタルシステム、及び/又は1つ以上のサブシステム及びその構成要素を動作させるための方法を実装するための、装置、プログラミング、又は装置とプログラミングの混合を組み込むことができる。各デジタルシステム10、20は、イベントカウンタ、セキュリティマトリックス、応答プランモジュールを利用して、動作方法を実施する。具体的には、一実施形態によれば、システム10、20、または1つまたは複数のサブシステムを含むそのようなシステムの一部が特定の状態で動作している場合、イベントカウンタは、デジタル(例えば、ハードウェア)リソースを実装するシステム/サブシステム構成要素など、デバイスまたはその一部のイベントをカウントし、その結果得られるカウントは、システムまたはサブシステム全体がその状態に留まっている間、それぞれのデバイスまたはデバイス部分の機能の1つまたは複数のデジタル署名を含む。(1つまたは複数の)デジタル署名は、セキュリティマトリックスによって、リスクスコア値(パラメータ「risk_score」と呼ばれる)を得るために、それぞれのデバイスまたはデバイス部分の予想される公称動作を反映する、現在のシステム/サブシステム状態に関する公称動作プロファイルの(1つまたは複数の)関連するデジタル署名と比較される。関連するデバイスまたはデバイス部分の予期しない動作を示すリスクスコアは、セキュリティおよび/または動作上の脅威を最小限にするために、応答プランモジュールによる1つまたは複数の措置の呼び出しをもたらす。
【0013】
システム/サブシステムが状態を変化させて機能の変化を反映させる場合、又は反映させるとき、1つまたは複数の異なる公称デジタル署名を含む異なる公称動作プロファイルをロードし、累積イベントと比較して、デバイス/デバイス部分の機能がその状態の動作基準内に入っているかどうかを示す1つまたは複数のさらなるリスクスコアを得ることができる。
【0014】
例示的な実施形態では、リスクスコアは、好ましくは、デバイスごとに、またはデバイスの部分集合ごとに(例えば、デバイスが複数のハードウェア資源を実装する状況ではハードウェア資源ごとに)、オプションで機能ベースごとに決定される。したがって、例えば、デバイスの集合もしくは部分集合、デバイスの一部、またはそれらの任意の組み合わせを実装することができる特定の機能を監視することが望ましい場合がある。一実施形態では、リスクスコアは、選択された期間にわたる特定のデバイスまたはデバイス部分のアクティビティの累積値、およびその累積アクティビティ値の期待される高閾値および/または低閾値からの偏差を反映する。各閾値は、事前に決定されてもよく、かつ/または動作中に動的に決定/更新されてもよい。したがって、例えば、以下で説明するように、さらなる/後続のシステム状態を使用して、異なる閾値境界を定義することができる。例えば、設計者は、ハードウェア資源毎に、監視及びカウントに関連するイベント、関連するカウント頻度、カウント期間及びサンプリング区間のタイミング及び持続時間を選択する。例えば、すべてのサブシステム状態においてほとんどすべてのクロックサイクルで発生するイベントの場合、そのようなイベントを高精度で蓄積することはあまり重要ではない可能性がある。具体的には、すべてのそのようなイベントをカウントすることができるが、閾値を交差し、潜在的な応答プランをトリガすることができるカウンタ値の精度を、より低い精度で追跡することができる。したがって、例えば、応答プランをトリガするためにそのようなイベントを追跡する精度は、1000または10000イベントごととしてもよい。したがって、ハードウェア資源のイベントカウンタは、ほとんどすべてのクロックで潜在的に発生するすべての単一のイベントをカウントしている間に、イベントが1000回または10000回(またはそれよりも多いまたは少ない回数)発生したことを反映し得る、それに関連するセキュリティマトリックスへの信号をパルス送出してもよい。したがって、アクティビティがセキュリティマトリックスで監視される粒度は、イベントモニタほど大きくないが、システムは、潜在的にすべてのクロックサイクルで発生するすべてのイベントを依然としてカウントすることができ、したがって、大規模なハードウェアカウンタ資源要件を有することなくアクティビティの高精度監視を可能にする。上記の例では、監視対象リソースのイベントカウンタが1000イベントまたは10000イベントに達するたびに、カウンタがリセットされ、セキュリティマトリックスカウンタが1つインクリメントされる。
【0015】
さらに、密接に関連し得る2つの別個のシステム状態を有することが可能であり、また、例えば、公称活動に対する同じ閾値の95%を有し、一方、残りの5%は、2つの状態を隔離する異なる閾値を許容するために使用されてもよい。動的閾値更新の要件は、公称外の状態を検出し、反応するのに必要な応答時間に基づくべきである。ハードウェア資源が公称アクティビティに対して非常に大きなダイナミックレンジを有し、知覚される脅威に対する応答時間が重要である場合、アクティビティ閾値を動的に変更することは、システム状態全体を変更することよりも望ましい場合がある。監視システムは、監視されるリソースが、それ自体のセキュリティマトリックス、リソースの複数のサブシステム状態、および応答プランを制定するためのそれ自体の専用ハードウェア/ソフトウェアを有するように設定することができる。その応答プランは、SoC全体を監視する別のシステムに供給することができ、したがって、サブシステムの値が特に高い場合、監視/応答プランの対を別の監視/応答プランシステムに階層的にカスケード接続することを考慮することができる。
【0016】
具体的な実施形態では、risk_scoreは、1つまたは複数のイベント増分を検出することによって、特定のデバイスまたはデバイスの一部(たとえば、ハードウェア資源を実装する構成要素)について決定され、各イベント増分は、単一の検出されたイベントまたは複数の検出されたイベントを含むことができ、オプションで重み付け係数を各イベント増分に適用し、次いで、複数の重み付けされたイベント増分が検出される状況では、特定の区間中に発生するすべての重み付けられたイベントを合計することで、イベント合計値を得ることができる。「event_sum」と示されるイベント合計値は、次いで、少なくとも1つの閾値、例えば、システム、サブシステム、デバイス、コンポーネント、またはその一部分に特有の高閾値および低閾値、ならびにシステム、サブシステム、デバイス、コンポーネント、またはその一部分に関連する現在の動作状態と比較される。event_sumが少なくとも1つの閾値から変化する場合、event_sumは特定の量だけインクリメントされる。1つの具体的な実施形態では、event_sumが、それぞれの高閾値または低閾値を上回るか下回る場合(すなわち、event_sumが、高閾値および低閾値によって定義される閾値範囲外である場合)、event_sumは、event_sumの値が閾値範囲外である度合を示す絶対値、ならびに現行のシステム/サブシステム状態に応じた量だけインクリメントされる。代替の実施形態では、デバイスまたはデバイス部分および現在のシステム/サブシステムの状態に対する予想に対する監視された活動の知覚されたリスクを示すrisk_scoreの値を得るために、event_sumの値は複数の高および/または低閾値(すなわち、複数の閾値範囲)と比較され、event_sumはどの閾値範囲外に落ちるかに従って異なる量によって増加される。リスクスコアは、1つまたは複数の措置を呼び出すために使用することができ、措置は、本質的に隔離、制限、および/または是正とすることができる。
【0017】
さらに、一実施形態では、event_sumの値は、高い任意のリスクスコアがある期間にわたって平均化され得るように、risk_scoreを取得するために、期間中の時間の関数として特定の速度でデクリメントされ得る。具体的な実施形態では、デクリメントレートは、信頼できるクロックソースの関数として、監視されるデバイスまたはデバイス部分に関連するとみなされる、decrement_intervalと呼ばれる時間区間の関数であってよい。割り当てられたdecrement_intervalが終了又は経過すると、risk_scoreは、event_sumからどれだけ減算して値risk_scoreを得るかを決定する重み係数であるvalue decrement_coefficientに基づく値だけ減算される。一実施形態では、risk_scoreの値がゼロ未満に低下することが防止される。
【0018】
したがって、例えば、サブシステムの動作プロファイルは、サブシステムの監視されるハードウェア資源のすべてにわたるリスクスコアから構成され得る。これらのリスクスコアは、専用のハードウェア資源テーブルに集計され、その状態の公称動作プロファイルによって表されるシステム/サブシステムの期待(すなわち、公称)値と比較される。期待外れの動作プロファイルは、知覚されるサイバーセキュリティ脅威による潜在的な有害な影響を最小限にするために、サブシステムまたは他のレベル(システム全体など)での措置をもたらす。
【0019】
図1を参照すると、宇宙船又は他の車両制御装置として使用することができるシステムオンチップ(SoC)装置10の一実施形態は、1つ又は複数のハードウェア資源22及び1つ又は複数のイベントモニタ24を実装する1つ又は複数の装置又は装置部分を含む。各イベントモニタ24が各ハードウェア資源22の1つまたは複数のイベントと関連付けられ、そのイベントの発生を監視するように、ハードウェア資源22と同様の数のイベントモニタ24を設けることができる。あるいは、装置20は、ハードウェア資源22として異なる数のイベントモニタ24を含むことができる。いずれの場合も、イベントモニタ24の出力は、セキュリティマトリックスモジュール26の1つまたは複数のインスタンスに結合され、セキュリティマトリックスモジュール26のそれぞれは、1つまたは複数のハードウェア資源のそれぞれについてrisk_scoreを展開する。risk_scoreの値のうちの1つまたは複数が、公称外の動作条件を示す場合、応答プランモジュール28は、ハードウェア資源、システム、および/またはサブシステムのうちの1つまたは複数の動作を管理する。好ましい実施形態では、以下でより詳細に説明するように、応答プランモジュール28は、選択された期間中に(複数あってよい)閾値外で動作している(複数あってよい)ハードウェア資源の識別と、(複数あってよい)閾値からの(複数あってよい)合計重み付けイベントカウントの変動の(複数あってよい)大きさとに応じて、(複数あってよい)ハードウェア資源、システム、サブシステム、又はそれらの一部に関連する及び又は他の1つ以上の動作を呼び出す。
【0020】
次に
図2を参照すると、SoC 10は、ブロック30~40および44~50によって示されるいくつかの状態で動作可能である。ブロック30、32、34、36、38は、ブートシーケンス中に動作可能なブート状態を示す(頭文字SCC TEE、I/O、HSCC、REEは、当業者には明らかなように、それぞれSecurity Core Complex Trusted Execution Environment, Input/Output, High Speed Core Complex, Requirements Engineering Environmentを意味する)。SCCは、SoCの残りの部分からファイアウォールされた専用のセキュリティパーティションであり、専用の処理要素および関連するメモリ、ならびにそれ自体のソフトウェアベースの実行環境、すなわちTEEを含む。SCCは、SoC内の高セキュリティ機能が行われる場合であり、例えば、ハードウェア及び共有リソースをロックダウンし、次いで、ハードウェア及び共有リソースをオンラインにする前に、より高速のハードウェア及び共有リソースの残りのためのセキュリティポリシーを構成する。HSCCは、高速の処理要素、メモリなどを含む高速のコアコンプレックスである。これは、アクセス可能なハードウェア資源、メモリマップ、アクセス可能なI/Oなど、SCCによって設定されたセキュリティポリシーに従っている。このコンプレックスは、SCCによって設定および監視されるセキュリティポリシーに従って、すべてのパフォーマンス指向の処理を行う。ブロック40は、SoCの公称動作状態を実施する。ブロック42は、
図1のセキュリティマトリックス26と応答プランモジュール28の1つまたは複数のインスタンスを実装する。また、ブロック42は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせの形態の脅威応答ロジックを含み、これは、(複数あってよい)イベントモニタ24に応答し、不正侵入などのSoC 10に対する知覚された脅威の指示を展開し、知覚された脅威に応じてブロック44~50によって表される状態で動作を呼び出す。このようなブロックによって実装される状態とその一般的な説明は以下の通りである。
監査(ブロック44):システム、および/またはサブシステム、および/またはデバイス、および/またはハードウェア資源、および/またはその1つ以上の部分の、非スケジュール自動監査および自己テスト・ルーチンを実行する。
検疫装置(ブロック46):選択した期間中の閾値外のイベント数を有する装置及び/又はハードウェア資源は、SoC 10の残りから隔離する。
静止Soc(ブロック48):SoC 10は、最小限の動作状態に置かれる。
セーフモード(ブロック50): SoC 10の動作は、セーフモードに置かれる。
【0021】
図示の実施形態では、セーフモードからの復旧は、例えば、SoC 10を衛星で使用する場合、地上局から送信されるリセット信号による外部介入(ブロック52)を必要とする。
【0022】
図3A、3Bは、N個のハードウェア資源イベントを監視するN個のイベントモニタがあり、多数の連続した区間の終わりにセキュリティマトリックス26の単一のインスタンスによって脅威が評価され、さらに、脅威応答ロジック42が、イベントモニタ24によって検出されたN個のイベントのカウントを累積する1つまたは複数のイベントカウンタ60-0、60-1、…、60-Nを含むという仮定の下での脅威応答ロジック42の一例を示す。なお、実施形態はこの例に限定されない。例えば、1つのハードウェア資源又は他の要素を1つ又は複数のイベントモニタによって監視することができ、いずれの場合でも、イベントモニタと監視対象の装置又はその一部との間に1対1の関係がある必要はない。例えば、単一のイベントモニタを時間多重化して、複数のハードウェア資源または他の要素からイベントを検出することができる。さらに、単一のハードウェア資源が複数のイベントモニタによって監視される場合、通常、単一のハードウェア資源の異なる機能態様が関連するイベントモニタによって監視される場合がある。また、複数のイベントモニタの出力をカウントし、そのカウントを処理して、以下のリスクスコアを得ることができる。(1)1つのハードウェア資源の単一の機能的態様。(2)ハードウェア資源の一部または全体。または(3)システムの全部または一部、1つ以上のサブシステムもしくはその1つ以上の部分、または1つ以上のデバイスもしくはコンポーネント、またはその1つ以上の部分。一般に、システム、1つまたは複数のサブシステム、またはその一部、あるいは1つまたは複数のデバイスもしくはコンポーネント/機能で発生するイベントを監視し、カウントし、処理して、システムまたはサブシステムまたはその一部のリスクスコアを得ることができるが、この限りでない。例えば、ハードウェアがデジタルシステム内のこれらの様々なモードをサポートするためのアクセス可能性および構成可能性を有することを条件として、任意の1つ又は複数のイベントモニタの集合を用いて任意の特定の機能の集合または機能を監視することができる。異なるイベントが、イベントモニタの固定集合によってアクセス可能であり、監視されるように構成可能である場合、異なる動作状態の異なるイベントは、他のイベントよりも監視に適切であると見なされ得る。したがって、システム状態が変化しているときのイベントモニタの何らかのタイプの再構成可能性が、イベントモニタ・ロジックの可能な実施形態である。
【0023】
図3Aに見られるように, 区間の終わりに、複数の乗算器62-0、62-1、…、62-Nが、event0_count、event1_count、eventN_countのとして示されるカウントされたイベントの現在値に、それぞれevent0_weight、event1_weight、…、eventN_weightと示された重み付け値を乗算し、加算器64は、乗算値を加算して、以下のようにevent_sumの予備値を得る。
event_sum = event0_count*event0_weight + event1_count*event1_weight + … + eventN_count*eventN_weight …(1)
重み付け値は、ハードウェア資源などの関連する被監視要素の累積イベントによって識別されるリスクの様々な知覚される大きさを反映する。
【0024】
event_sumの予備値は、加算器66、68によってそれぞれ高閾値HITHR及び低閾値LoTHRと比較され、event_sumのHITHR及びLOTHR.からの偏差の大きさを表す第1及び第2の偏差値が得られる。制限67、69は、第1、第2の偏差値がゼロ以下にならないようにその大きさを制限している。制限された偏差値は、event_sumが、HITHRおよびLOTHRによって表される閾値限界の外にあるかどうか、また、そうである場合、event_sumの閾値限界からの偏差の大きさ(すなわち、絶対的な大きさ)を示す。制限された偏差値は、合計器70に供給され、合計器70は、そのような値をevent_sumの予備値に加算して、event_sumの更新された値を得る。
【0025】
図3Bに示されるように,event_sumの更新された値は、ブロック72、74、76によってそれぞれ2つの上限閾値high_threshold0およびhigh_threshold1ならびに下限閾値low_threshold0に対して比較され、比較の結果は、以下のように値risk_scoreを得るために現在の時間期間における現在の区間の指示(
図6との関連で以下に言及)に依存してブロック80、82から取得したdecrement_valueでinvent_sumの更新された値を低減するブロック78によって任意で使用されてもよい。
decrement_value = current value of decrement_interval*decrement_coefficient …(2)
if((event_sum > high_threshold1) and (previous_risk_score + 2 - decrement_value > 0)) then risk_score = previous_risk_score + 2 - decrement_value;
if((event_sum > high_threshold0) and (previous_risk_score + 1 - decrement_value > 0)) then risk_score = previous_risk_score + 1 - decrement_value;
else if((event_sum < low_threshold0) and (previous_risk_score + 1 - decrement_value > 0)) then risk_score = previous_risk_score + 1 - decrement_value …(3)
ここで、previous_risk_scoreは、現在の期間の直前の区間で決定されたrisk_scoreの値である。なお、event_sumをデクリメントしてrisk_scoreを得ることは任意であり、event_scoreのデクリメントされていない値が、サイバーセキュリティイベントが発生しているか発生したかのよりよい指標であると考えられると判定された場合には、行わなくてもよい。この場合、更新されたevent_sumの値が値risk_scoreとして用いられる。
【0026】
このようにして決定されたrisk_scoreの大きさは、ブロック84によって、以下で示される5つの値の範囲のうちの1つに入るものとして評価され、分類される。“リスクなし”、“低リスク”、“中リスク”、”高リスク”、及び“極限リスク”ブロック86は、ブロック84によって行われた分類化に依存してSoCの動作を引き起こす。具体的には、リスクなしの脅威評価は、SoCを
図2のブロック40の公称状態で動作させる。低リスク、中リスク、高リスク、極限リスクの脅威評価により、SoCは、それぞれ
図2のブロック44、46、48、50で示される状態で動作する。ブロック84、86は、
図1の応答プランモジュール28を実現する。一方、
図3A及び
図3Bの要素のバランスがセキュリティマトリックス26を実現する。
【0027】
再び
図3Aと
図6を参照すると、リセットモジュール90は、各区間の終わりに動作可能であり、イベントカウンタ60によって累積された値を初期値(例えば、ゼロ)にリセットし、さらに各期間の終わりの
図3Bのdecrement_interval値を、初期値(例えば、ゼロ)にリセットする。後者のリセットは、様々なモジュールの動作に関して同期している必要はないことに留意されたい。また、使用されるデクリメント値及びインクリメント値に応じて、risk_scoreの値は、(例えば、一定数の区間又は期間の後、又はシステムの状態変化の際に)周期的又は非周期的にリセットされてもよいし、決してリセットされず、期間の一部又は全部にわたって持続的であることが許容されてもよい。したがって、
図6に見られるように、 一実施形態では、イベントカウンタ24は、各サンプリング区間中に常にカウントし、次いで、累積値が区間の終わりに検知される。セキュリティマトリックス26は、区間の終了の直後にリスクスコアの影響を更新し、したがって決定する。イベントモニタ24は、各区間の後にリセットされ、新しいサンプリング区間を開始する。しかし、セキュリティマトリックス26は、より長い期間にわたってイベントを適切に特徴付けるように、セキュリティマトリックス26が永続的な状態を維持することが好ましいため、複数のサンプリング区間にわたってカウントを保持する。イベントモニタがセキュリティマトリックス内のカウントを更新する頻度、およびカウントが表すものは、モニタされるイベントの頻度の関数とすることができる。より高い頻度のイベントは、単一のカウント値が何百又は何千もの正のトリガイベントを表すことができるように、イベントカウンタ内のビット当たりにより低い忠実度を割り当てることができる。
【0028】
一般に、システム/サブシステムの公称動作プロファイルは、システム/サブシステムが特定の状態で動作しており、システム/サブシステムの動作に影響を及ぼそうとしている脅威がないという仮定の下で、上記の方法論を使用して、監視されるすべてのハードウェア資源にわたる公称リスクスコアから構成することができる。これらの公称リスクスコアは、システム/サブシステム状態ごとにセキュリティマトリックス26内の専用ハードウェア資源テーブルに表にまとめられ、格納されてもよく、図示の実施形態では、閾値HITHRおよびLOTHRのうちの少なくとも1つ、ならびに任意選択でhigh_threshold0、high_threshold1、およびlow_threshold0のうちの1つまたは複数に対する1つまたは複数の初期値、変数および/または定数を確定するために仕様されてもよい。risk_scoreの(複数あってよい)後の値は、リソーステーブルに格納されてもされなくてもよく、かつ/または動作状態に関するその関連する公称値と比較されてもよい。いくつかの実施形態では、比較の結果を使用して、取るべき措置、および/または新しい動作条件を考慮に入れるための公称値の修正を決定することができる。
【0029】
応答プランは、サブシステム内のすべての制御メカニズムにアクセスして、隔離を含むハードウェア資源をコンプライアンスに戻す権限と能力を持つスーパーバイザまたは他のプロセッサで実行する必要がある。これらの制御メカニズムは、クレジット設定、デバイスリセット、強制静止、プロセッサリセット、及び柔軟的又は強制的の何れかの方法でハードウェアデバイスを停止させることに関連する他の何らかのものの形態とすることができる。
【0030】
前述の方法は、関連するシステム/サブシステムもしくは(複数あってよい)他の要素および/またはその一部の異なる動作につながる、任意の数のレベルのrisk_score増加を実装することができ、任意の数の高/低閾値を使用することができる。例えば、リスクスコアがある所定の閾値レベルに達すると、セキュリティマトリックス26は、知覚されるリスクのレベルと釣り合うように適切な措置を指示する監視プロセッサエージェントへの割り込みとして送信されるメッセージを生成することができる。これは、誤動作ハードウェア資源をコンプライアンスに戻すか、又はそれを隔離することができる異なる応答プランを反映する特定の割り込みベクトルを有するセキュリティマトリックス26からの割り込みラインの形態をとることができる。リスクが比較的低いと考えられる場合、応答プランは、他のモニタまたはソフトウェアベースのモニタをそのハードウェア資源に対して使用可能にする形で、ロギングの増加を実施することができる。認知された脅威レベルが高い場合、応答プランは、そのデバイスを強制的に無効にし、それを隔離し、次いで、実地介入が行われるまでサブシステムを継続させることができる。脅威レベルがクリティカルである場合、応答プランは、監視コアを除くすべてのプロセッサ・コアを停止し、すべての内部I/Oおよびメモリ・トラフィックを強制的に停止し、以下で説明する安全状態になる可能性がある。したがって、リスクスコアが高いほど、措置の強制性を高めることができる。
【0031】
必要に応じて、残りの応答プランによって明示的にカバーされていないシナリオに対して、追加のデフォルト応答プランを実装することができる。デフォルトプランは、すべてのアプリケーションプロセッサコアが停止され、パーキングされ、すべての不必要な内部トラフィックおよび外部トラフィックが停止され、サブシステムが、地上または他のコマンド介入を待つ間に宇宙船または他の設備の機能にとってミッションクリティカルなタスクを実行しているだけの、システム安全状態の形態とすることができる。
【0032】
図4は、例えば、宇宙船又は他の車両制御装置として有用な制御システムを一緒に実施するASIC 100とFPGA 102の組み合わせを含むデジタルシステム20を示す。なお、ASIC 100の代わりに、2つ以上のASIC、1つ以上のFPGA、またはそれらの組み合わせを用いてもよい。また、FPGAは、必要に応じて、2つ以上のFPGAと置き換えられてもよいし、1つ以上の追加のASICと置き換えられてもよい。(複数あってよい)ASICおよび/または(複数あってよい)FPGAの様々な要素は、ソフトウェア、ハードウェア、ファームウェア、またはそれらの組み合わせによって実装され得る。
【0033】
応答プランモジュール28はASIC 100により実現され、セキュリティマトリックス26はFPGA 102により実現される。必要に応じて、モジュール28およびセキュリティマトリックス26は、代替として、FPGA 102およびASIC 100によってそれぞれ実装されてもよく、あるいは、要素26、28の両方が、FPGA 102またはASIC 100の一方によって実装されてもよく、あるいは、要素26、28の一方または両方の一部が、FPGA 102および/またはASIC 100の一方または両方によって実装されてもよい。
【0034】
図5は、システム20をより詳細に示す。イベントモニタ124aおよび124bは、DDRコントローラ126と1つまたは複数の高性能CPU128の動作中に発生するイベントを監視し、これらは両方ともASIC 100の高速コア複合体130の一部を構成する。CPU128はレベル2キャッシュ132を介してAXI4通信バス134と通信する。また、バス134は、AXI4-XAUIブリッジ140を介して、DDRコントローラ126、クロック136、及びXAUI通信バス138と通信する。DDRコントローラ126は、さらに、DDR通信バス142を介して、セキュアおよび非セキュアRAMモジュール144、146と通信する。
【0035】
ASIC 100のセキュアコア複合体132は、TCM 134を含み、TCM 134は、とりわけ、
図1の応答プランモジュール28と同様または同一のブロック136によって表される機能を実装する。1つまたは複数のイベントモニタ124cは、TCM 134の動作中に発生するイベントを監視する。TCM 134はさらに、関連するブートROMモジュール152に結合されたセキュアCPU 150と通信する。セキュアCPU 150は、レベル2キャッシュモジュール154及びAXI3通信バス156を介してAXI3-PCIeブリッジ158と通信する。
【0036】
FPGA 102は、カリフォルニア州Aliso ViejoのMicrosemi Corporationによって製造及び/又は販売されているRTG4(登録商標)モジュールと呼ばれる放射線耐性FPGAを含むことができ、様々な装置の様々なイベントを監視する1つ又は複数のイベントモニタ124d~124mを含み、イベントモニタの少なくとも一部は、セキュリティマトリックス160の1つ又は複数のインスタンスに結合される。セキュリティマトリックス160の各インスタンスは、
図1のセキュリティマトリックス26と同様の又は同一の機能を実施することができる。ただし、その異なるインスタンスは、他の閾値比較、他のインクリメント/デクリメント値、およびそれらの組合せとの比較、さらにセキュリティマトリックス160の各インスタンスが、以下で説明する割込み制御モジュール190を通じて同じまたは異なる他の脅威応答措置を呼び出すことができることなど、異なる機能を実施することができる。
【0037】
具体的には、イベントモニタ124d~124lは、I/O割り込み制御モジュール170、複数のUARTモジュール172、XAUIバス138と通信するXAUI-AXI3ブリッジ174、MIL-STD-1553 LANコントローラ178、SpaceWire通信ネットワーク180、ファイアウォール182、PCIe通信バス184、PCIe通信バス188を通じてASIC 100のAXI3-PCIeブリッジ158と通信するAXI3-PCIeブリッジ186、及び割り込み制御モジュール190にそれぞれ結合され、それらからイベント発生を受け取る。メールボックス登録モジュール191、ブリッジ174、ファイアウォール182、ブリッジ186、割り込み制御モジュール190は、AXI3通信バス192、194、196、198を介して相互に通信を行う。所望であれば、任意の通信プロトコルを、所望に応じて、異なるプロトコル、ならびに関連するバスおよびブリッジと置き換えることができる。したがって、例えば、AXI4バスをAXI3バス(必要に応じて関連するブリッジを有する)で置き換えることができ、PCIeバスおよび関連するブリッジをSerdesバスおよび関連するブリッジなどで置き換えることができる。したがって、1つまたは複数の通信プロトコルを変更することができるが、様々な実施形態の特性には影響しない。
【0038】
UARTモジュール172、1553 LANコントローラ178、SpaceWire通信ネットワーク、複数のSRIOモジュール200、およびPCIe通信バス184は、任意の適切な方法でリモートデバイス/システム(集合的に「外部世界」と呼ばれる)と通信する。SRIOモジュール200は、イベントモニタ124mのうちの1つまたは複数と関連付けることができ、その(複数あってよい)出力は、セキュリティマトリックス160の1つまたは複数のインスタンスに供給することもでき、供給しないこともできる。
【0039】
イベントモニタ124d-124lからのモニタされたイベント発生は、ASIC 100にあるイベントモニタ124a-124cからのモニタされたイベント発生と共に、セキュリティマトリックス160の1つ以上のインスタンスに提供される。監視されたイベント発生のうちの選択された1つまたはすべてが、セキュリティマトリックス160の各インスタンスに供給される。セキュリティマトリックス160の各インスタンスについて、上述したように、区間中に発生する選択された監視されたイベント発生のカウントが重み付けされ、重み付けされた値が加算され、閾値と比較されて、その区間についてevent_sumの値が得られ、event_sumの値は、event_sumの絶対的な大きさ又はデクリメントされた値がサイバーセキュリティ脅威のよりよい指標であるかどうかに応じて任意選択でデクリメントされ、生成したrisk_scoreの値を使って上述などの行動を取るべきかどうか決定する。
【産業上の利用可能性】
【0040】
要約すると、本アプローチは、異種デジタルサブシステムにおける脅威検出監視をカスタマイズして、国家安全保障に対する外部脅威の増大する能力に対処する方法を提供する。あるいは、またはそれに加えて、システム/サブシステムの動作健全性を確認し、それから生じる可能性のあるまたは実際の有害な影響を最小限にするために適切な処置を講じることができる。全体として、このシステムは、ハードウェア定義の監視が、公称外の挙動を検出し、逸脱をトリアージし、システムをコンプライアンスに戻すプランを制定することを可能にする。コンプライアンスが取れない場合は、リスクの低減が原動力となる。サブシステムの異なる動作状態は、サブシステムのモードに関連する異なるセキュリティプロファイルを保証することができる。これは、脅威監視システムに、動作コンテキストに関する柔軟性および感度を与え、システムエンジニアが、すべての状況下でシステムが何を行っているかを理解することを保証する。
【0041】
本明細書における「システム」または「システム」へのすべての言及は、SoC、ASIC、およびFPGAだけでなく、1つまたは複数のシステムまたはサブシステムを含む任意の他のデバイスも含む。また、本明細書における「システム」または「システム」への言及は、本明細書に開示された特徴が全体システムまたはサブシステムまたはその任意の1つ以上の部分に等しく適用される限り、それぞれ「サブシステム」または「サブシステム」、およびその逆の1つ以上の部分への言及として解釈されるものとする。
【0042】
本明細書に引用された刊行物、特許出願、及び特許を含む全ての参考文献は、参照により本明細書に組み込まれるように個々に及び具体的に示され、その全体が本明細書に記載されたのと同じ程度まで、参照により本明細書に組み込まれる。
【0043】
本発明を説明する文脈(特に以下の請求項の文脈)における用語「a」および「an」および「the」ならびに同様の参照の使用は、本明細書中で特に示されない限り、または文脈によって明らかに矛盾しない限り、単数形および複数形の両方を網羅すると解釈されるべきである。本明細書中の値の範囲の列挙は、本明細書中で特に断りのない限り、その範囲内に入る各別個の値を個々に言及する短縮法としての役割を果たすことを単に意図し、各別個の値は、本明細書中で個々に列挙されたかのように本明細書に組み込まれる。本明細書で説明されるすべての方法は、本明細書で特に断りのない限り、または文脈によって明らかに矛盾しない限り、任意の適切な順序で実行することができる。本明細書で提供される任意のおよびすべての例、または例示的な言語(例えば、「など」)の使用は、単に、本開示をよりよく明確にすることを意図し、他に主張されない限り、本開示の範囲に対する制限を提起しない。本明細書中のいかなる言語も、本発明の実施に不可欠であるとして特許請求されていない要素を示すものとして解釈されるべきではない。
【0044】
上記の説明を考慮すれば、本発明に対する多数の修正が当業者には明らかであろう。図示された実施形態は、単に例示的なものであって、本発明の範囲を限定するものとして解釈されるべきではないことを理解されたい。
【国際調査報告】