JP2022502790A - 安全性に関連するデータストリームを検出する方法 - Google Patents

安全性に関連するデータストリームを検出する方法 Download PDF

Info

Publication number
JP2022502790A
JP2022502790A JP2021519758A JP2021519758A JP2022502790A JP 2022502790 A JP2022502790 A JP 2022502790A JP 2021519758 A JP2021519758 A JP 2021519758A JP 2021519758 A JP2021519758 A JP 2021519758A JP 2022502790 A JP2022502790 A JP 2022502790A
Authority
JP
Japan
Prior art keywords
data
hardware
simulation
hardware system
critical data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2021519758A
Other languages
English (en)
Other versions
JP7377260B2 (ja
Inventor
プリラー・ペーター
Original Assignee
アー・ファウ・エル・リスト・ゲゼルシャフト・ミト・ベシュレンクテル・ハフツング
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アー・ファウ・エル・リスト・ゲゼルシャフト・ミト・ベシュレンクテル・ハフツング filed Critical アー・ファウ・エル・リスト・ゲゼルシャフト・ミト・ベシュレンクテル・ハフツング
Publication of JP2022502790A publication Critical patent/JP2022502790A/ja
Application granted granted Critical
Publication of JP7377260B2 publication Critical patent/JP7377260B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/058Safety, monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Automation & Control Theory (AREA)
  • Debugging And Monitoring (AREA)

Abstract

少なくとも一つのデータ処理タスク2の実行中にハードウエアシステム1に発生する安全性に関連するデータフローを検出する方法である。本方法は、このハードウエアシステム1の少なくとも一つのメモリユニット3に保存できるクリティカルなデータ6を定義する工程と、このハードウエアシステム1をシミュレーション環境4において動作するシミュレーションモデル5にマッピングする工程と、このシミュレーション環境4におけるシミュレーションモデル5によるシミュレーションとしてデータ処理タスク2を実行する工程と、このデータ処理タスク2の実行中に、シミュレーションモデル5におけるクリティカルなデータ6及びクリティカルなデータ6のインスタンス6’,6’’の作成、送信及び削除を監視する工程と、安全性に関連するデータストリームを特定して、ログに記録する工程とを有する。

Description

本発明は、少なくとも一つのデータ処理タスクの実行中にハードウェアシステムで発生する安全性に関連するデータストリームを検出する方法に関する。
情報・通信技術(ICT)のシステムにおける典型的な課題は、権限の無いユーザー又はアプリケーションによる情報(データ)へのアクセスを防止することである。そのために、従来技術では、様々な方法が実現されており、その方法として、例えば、(英語の専門用語で、「アクセス権限」又は「アクセスポリシー」とも呼ばれる)アクセス制御、アクセス権限の管理(認証)やプロセス及び/又はメモリ空間の隔離(例えば、サンドボクシング)が挙げられる。より低いレベルでは、例えば、ハードウェアにおいて、メモリ管理ユニット(メモリマネッジメントユニット、MMU)によって、それを実現することができる。
方式又は実装のエラー、認証部への集中的な攻撃、バックドア(サイドチャネル)を介した意図しない情報ストリームや同様のメカニズムによって、データへの望ましくないアクセスに関する可能性が起こり得る(リーク)。そして、攻撃(アタック)は、所定の結果(インパクト)を伴って、ICTシステムへの影響及び/又はデータへのアクセスを得るために、一つ又は複数の弱点(脆弱性)を利用する。それによって、システムの機密規則(機密性)が無効化される、或いは破られる可能性がある。
ハードウェアシステム又はコンピュータシステムの機密特性は、一次的には、例えば
ア 設計毎のセキュリティ
イ 実証された成功モデルに基づく措置(成功例)
ウ プロセス又は標準(例えば、ISO/IEC27001及び27002、ISO15408/共通基準、NIST CSF、SAE J3061)の遵守
エ メモリ内暗号化などの原理
オ アドレス空間配置のランダム化(ASLR)
などの設計、実装及び動作における原理及び規定を遵守することによって満たされる。
開発に付随して、特に、最終的に、並びに各統合工程後に、実装形態、そのため、結果として得られた挙動をテストすることが必要である。それは、例えば、ソフトウェア及びハードウェアのアーキテクチャ及び実装形態を審査すること(オーディット)によって実行することができる。そのプロセス手法は効果的であり、何十年も前から採用されているが、非常に(時間的な)負担もかかり、自動化も難しい。しかし、特に、システムのリソース(コード、モデル)が利用可能でなければならない。それは、例えば、機密保持の理由から、必ずしも望ましいことではなく、しばしば(例えば、第三者のソフトウェアライブラリの使用時には)全く不可能でもある。
別の手法は、統計的なコード分析(これは自動化可能であるが、リークの発見には大して効果的ではない)又は(又もやリソースの開示を必要とする)モデル検査から由来するものである。それらの方法も、(伝送、記憶及び処理を含む)処理チェーンへの攻撃及びその中の弱点を検知できないことが共通している。それは、例えば、コンパイル、リンキング、伝送(ダウンロード等)、(例えば、フラッシュメモリ、ハードディスク等への)記憶、ソフトウェア(インタープリタ、仮想機械等)での実行、最終的にはハードウェアに関係する。そのような理由から、多数の成功した攻撃が正にそこで起こっている。
例えば、非特許文献1は、サンドボックスを介した攻撃を記載している。
キャッシュ攻撃は、例えば、非特許文献2に記載されている。
非特許文献3は、メモリに向けた攻撃を記載している。
統計的なテストの外に、実行中にシステムの挙動を検査する動的なテストも存在する。動的なテストは、特に、(統計的には未だ探索できない)未知の、或いは新しいパターンに対応するシナリオと、複雑さ又は未観察の特性のために分析では統計的に発見されないケースとに関して統計的なテストを補完するものである。完全なシステム記述及びソースコードにアクセスできない場合、何れにせよ統計的なテストの手法が制限され、そのことは、動的なテストの重要性を一層高める可能性がある。
動的なテスト方法は、大抵は定義されたアプリケーションシナリオ(テストケース)を(手動により、或いは自動的に)実行することをベースとする。この場合、挑戦課題は、特に、
(i)安全性の問題に注意を払うための、そのテストケースの好適な具体化、
(ii)実行(これは、所与の時間内で出来る限り多数のテストケースを実行できるようにするために、理想的には自動化されて行われる)、並びに
(iii)テスト結果の正しい評価、特に、セキュリティの弱点の検知、
である。
本発明との関連において、有利には、所定のテスト又は所定のシミュレーションの前提条件、入力、実施条件、テスト方法及び/又は期待される結果を定義する規定が「テストケース」と呼ばれる。
非特許文献4は、特別に修正されたハードウェア、例えば、I2C周辺モジュール、レジスタ及び内部バスにおいて、例えば、データワード当たり一つの追加ビットだけ拡張されたハードウェアを記載している。その(文献では、「タイント」と呼ばれる)ビットは、「クリティカルな」情報を標示して、それを用いて、ハードウェアを「泳動」する。データの処理工程(例えば、論理結合)は、この標示ビットだけ拡張されており、そのため、成果物に対するクリティカルなデータの影響を表示して、追跡することができる。しかし、その特別に修正されたハードウェアが無いと、その措置を実現できない。
国際特許公開第2015/067649号明細書
Lipp M., Gruss D., Schwarz M., Bidner D., Maurice C., Mangard S., "Practical Keystroke Timing Attacks in Sandboxed JavaScript", September 2017 in Foley S., Gollmann D., Snekkenes E. (eds) Computer Security − ESORICS 2017, Lecture Notes in Computer Science, Bd. 10493 Gruss, D., Maurice, C., Wagner, K., & Mangard, S., "Flush+ Flush: a fast and stealthy cache attack", Juli 2016 in International Conference on Detection of Intrusions and Malware, and Vulnerability Assessment (S. 279−299). Springer, Cham Gruss, D., Maurice, C., & Mangard, S.; Rowhammer.js, "A remote software−induced fault attack in javascriptt", Juli 2016 in International Conference on Detection of Intrusions and Malware, and Vulnerability Assessment (S. 300−321), Springer, Cham J., Hu, W., Irturk, A., Tiwari, M., Sherwood, T., & Kastner, R., "Information flow isolation in I2C and USB", Juni 2011 in Proceedings of the 48th Design Automation Conference (S. 254−259), ACM Kocher, P. C.,"Timing attacks on implementations of Diffie−Hellman, RSA, DSS, and other systems",August 1996 in Annual International Cryptology Conference (S. 104−113). Springer, Berlin, Heidelberg Ye, X., Fan, D., Sun, N., Tang, S., Zhang, M., & Zhang, H,"SimICT: A fast and flexible framework for performance and power evaluation of large−scale architecture",September 2013, in Proceedings of the 2013 International Symposium on Low Power Electronics and Design (S. 273−278), IEEE Press
本発明の課題は、特に、ハードウェアを変更することなく、動的なテストを実現できるにすることであり、本方法は、標準的なハードウェアに対して使用可能であるだけでなく、特に、工業的な自動化分野や、例えば、自動車分野における組込システムにも採用することができる。
この課題及び別の課題は、本発明に基づき、
ハードウェアシステムの少なくとも一つのメモリユニットに保存できる、或いはインターフェイス(interface)を介してハードウェアシステムに伝送できる、クリティカルなデータを定義する工程と、
シミュレーション環境において実行可能なシミュレーションモデルにハードウェアシステムをマッピングする工程と、
このシミュレーション環境におけるシミュレーションモデルを用いたシミュレーションとしてデータ処理タスクを実行する工程と、
このデータ処理タスクの実行中に、このシミュレーションモデルにおけるクリティカルなデータ及びクリティカルなデータのインスタンスの作成、送信及び削除を監視する工程と、
安全性に関連するデータストリームを特定して、ログに記録する工程と、
を有する冒頭で述べた種類の方法によって解決される。本方法を用いて、ハードウェアシステムにおける望ましくないデータストリームの発生を検知することができ、そのために、このハードウェアシステムを修正する必要がない。特に、(例えば、Intel、ARM、Infineon等の)標準的なCPUをベースとする実際のマイクロコントローラシステムでは、そのように修正されたハードウェアを取得する可能性が殆どないが、非常に良いことに、シミュレーション環境として利用できる、そのようなCPUのほぼ全てに適したシミュレータが存在する。
本発明との関連において、特に、シミュレーションモデルのシミュレーションに適したコンピュータシステムが、そこで動くシミュレーションソフトウェアと共に「シミュレーション環境」と呼ばれる。純粋なハードウェアシステムと異なり、このシミュレーション環境は、特に、例えば、メモリ及びレジスタに存在するデータのその時々の状態と、それらのデータを変更する全てのプロセスとを監視することを可能にする。これによって、シミュレーション環境において、特に、データの作成、送信及び削除を監視することが可能である。所定のハードウェアシステムのシミュレーションモデルのシミュレーションに適した相応のシミュレーション環境は、専門分野において周知であり、所与のハードウェアシステムに適したシミュレーション環境を選定すること、並びにそのハードウェアシステムを選定されたシミュレーション環境により実行可能なシミュレーションモデルにマッピングすることは、ここに開示した教示を知った上で、当業者の手腕に依存する。
本明細書との関連において、少なくとも一つの所定の時点(例えば、発生時点/インスタンス生成時)に観察しているクリティカルなデータに直に依存するクリティカルなデータのコピーが「インスタンス」と呼ばれる。そのため、インスタンスは、例えば、クリティカルなデータのコピーであるか、さもなければデータをコピーして、(再)符号化したものであるとすることができる。再符号化は、例えば、元のデータが整数であり、インスタンスがその浮動表現である場合に行われる。
本開示との関連において、一般的にデータ処理システムの物理的なコンポーネント(即ち、電子部品と機械部品)とその周辺機器の全体が「ハードウェアシステム」と呼ばれる。このハードウェアシステムは、特に、周知のシステムアーキテクチャに基づくコンピュータシステムであるとすることができる。しかし、ハードウェアシステムは、より狭い意味で「コンピュータシステム」に相当しない複数のハードウェアコンポーネントの協力して動作する構造、例えば、複数のハードウェアコンポーネントから成るセンサー網又は専用網であるとすることもできる。
有利には、ハードウェアシステムをシミュレーションモデルにマッピングするために、ハードウェアシステムは、少なくとも一つの通信機器を介して接続されるとともに、その通信機器を介してデータを交換できる多数のハードウェアコンポーネントに分割することができ、各ハードウェアコンポーネントは、少なくとも一つの通信ユニット、少なくとも一つのメモリユニット及び少なくとも一つのプロセッサユニットを有する。シミュレーションモデルをモデル化するためのベースとなる、この分割の好適な選定によって、異なるレベルにおいて、例えば、抽象化された機械又は仮想機械のレベル、CPU命令レベル、ゲート又はビットレベル、通信又はバスレベルにおいて、ハードウェアシステムをシミュレーションして、観察することができる。
有利な実施構成では、クリティカルなデータの定義をデータ特性の定義によって行うことができる。本開示との関連において、特に、データ内容、発生時点又は作成時点、処理時点、メモリ内のアドレスに関する属性、システム状態への依存性、別の(クリティカルな)データへの依存性等とそれらから定義可能な組合せがデータ特性であると理解する。これは、例えば、ソフトウェアコンポーネントのソースコードを知ることの無い検査を可能にする。
データ属性の関連する組合せの例は、例えば、コールスタックデータの発生時点と削除時点から成る、実行時間を観察することである。一種のサイドチャネル攻撃は、例えば、鍵検査ルーティンの実行時間に関する情報を利用して、鍵に関する情報を間接的に傍受する(非特許文献5を参照)。
有利には、少なくとも所定の安全性に関連するデータストリームを特定した場合に、警報メッセージを作成することができる。この警報メッセージは、シミュレーション環境を制御するために使用される、制御・監視システムのユーザーインターフェース上に即座に表示することができ、その結果、試験者は、シミュレーションを中止するのか、或いは更に実行するのかを決定することができる。場合によっては、警報メッセージの発生時に、それが望まし場合に、シミュレーションを自動的に中止することができる。
有利には、特定された安全性に関連するデータストリームを評価に保存することができ、この評価は、場合によっては、グラフィック表示される。これは、実行されたテストのログ記録と報告を可能にする。
有利には、シミュレーションの進行状況をログに記録することもできる。更に、場合によっては、(履歴を含む)包括的な進行状況を一緒に記録して、場合によっては、データストリームのログ記録と関連付けることができ、これは、その後の分析/診断/エラー探索を支援する。
有利には、場合によっては、定義されたテストケースの処理時に動作させるアプリケーションソフトウェアを実行することから、データ処理タスクを生成することができる。これは、アプリケーションソフトウェアを部分又は全体として試験して、アプリケーションソフトウェアとその下位のソフトウェア部分(ミドルウェア、フレームワーク、ライブラリ、オペレーティングシステム等)及び所与のハードウェアシステムとの協力した動作に関する知見を取得することを可能にする。
本発明による方法の別の有利な実施構成では、ハードウェアシステムの区画を許容ドメインと禁止ドメインに分割することができる。これは、ヒット関連性を向上させることができる。
許容ドメインと禁止ドメインへの分割は、例えば、クリティカルなデータの定義の途中で、シミュレーションモデルのモデル化の途中で、或いはその後でも行うことができ、この分割は、特に、プログラマー又は試験者の経験に基づき決定するか、或いは比較可能なハードウェアシステムの以前に実行されたテスト方法に基づき規定することができる。相応の分割を実施するには、ここに開示した教示を知った上で、当業者の手腕に依存する。
有利には、少なくとも次のデータストリームが、即ち、
ア 禁止ドメインの通信機器を介して、クリティカルなデータ又はそのインスタンスを伝送することと、
イ クリティカルなデータが削除される一方、クリティカルなデータの少なくとも一つのインスタンスが存在し続けることと、
ウ 禁止ドメインにおいて、クリティカルなデータのインスタンスが作成されることと、
エ 所定の時点及び/又はシステム状態後に、特に、データ処理タスクの完了後に、例えば、アプリケーションの終了後に、クリティカルなデータが存在し続けることと、
が安全性に関連するデータストリームとして特定することができる。場合によっては、進行状況を観察することによって、例えば、時間に対するクリティカル性の依存度、システム状態などの追加のルールを考慮することができる(これは、基本的に許容ドメインと禁止ドメインの定義がシミュレーションの進行状況に応じて変更されることを意味する)。
本発明との関連において、例えば、その時々の用途のために定義された所定の判断基準に、例えば、前の段落で言及した判断基準に合致するデータストリームが「安全性に関連するデータストリーム」と呼ばれる。
以下において、本発明の有利な実施形態を例示して、模式的に、本発明を制限しない形で図示した図1〜5を参照して、本発明を詳しく説明する。
本発明による方法に関与するユニットと本方法の工程の模式図 ハードウェアシステムとそこで動作するソフトウェアの模式図 図2のハードウェアシステムをシミュレーションモデルとしてマッピングするためのシミュレーション環境の模式図 シミュレーション環境で実行されるシミュレーションの模式図 グラフィック編集されたシミュレーション結果のグラフ図
図1には、本発明による方法の基本的なエンティティが抽象的に図示されている。ハードウェアシステム1は、一般的に少なくとも一つの通信機器8を介して互いに接続されるとともに、この通信機器8を介してデータ交換できる複数のハードウェアコンポーネント7(図1では、区別するために、ハードウェアコンポーネントにa〜eの小文字を付けている)から構成される。このために、各ハードウェアコンポーネント7は、通常、図1においてハードウェアコンポーネント7aに対してアイコンで表示されている通り、通信ユニット9、メモリユニット3及びプロセッサユニット10を備えている。図1に表示されたハードウェアコンポーネント7cは、例えば、従来の(ノートブック)コンピュータであるとすることができ、そこでは、例えば、別のハードウェアコンポーネントのための制御ソフトウェアが動作する。このハードウェアシステム1は、「入れ子式」ハードウェア構造を有することもできる、即ち、ハードウェアシステムが上位のハードウェアシステムの一部である。ハードウェアシステム1(又はハードウェアシステム1のハードウェアコンポーネント7)は、例えば、SoC(システム・オン・チップ)として実現することもできる。そのようなハードウェアシステムの例として、例えば、Infineon社のXC27x8Xシリーズのマイクロプロセッサが挙げられる。この場合、通信機器8は、内部バスシステムによって構成され、CPUのバス接続部内に通信ユニット9を見ることができ、内部レジスタとキャッシュをメモリユニット3と見做すことができ、プロセッサユニット10はSoCのCPUである。場合によっては、例えば、CANコントローラ、PWMコントローラ又はそれ以外のものなどの周辺コンポーネントをハードウェアシステム1のハードウェアコンポーネント7として定義することができる。
表現レベルに応じて、ハードウェアシステム1のハードウェアコンポーネント7は、異なる種類のユニットを包含することができる。ハードウェアコンポーネント7の別の例として、
ア 車両内の制御機器(例えば、ECU又はエンジン、変速機、ABS、ESP等のための別の制御ユニット)、
イ 例えば、WSN(ワイヤレス・センサー・ネットワーク)を介して通信する、センサー網、例えば、IoTシステムにおけるインテリジェントなセンサーノード、
ウ 蓄積プログラム式(産業用)制御部(SPS)におけるCPUモジュール及び/又はI/Oモジュール、
エ クラウド又は計算機クラスターにおけるノード、
が挙げられる。
従来のPCとの関連において、例えば、主CPUをハードウェアコンポーネント7として定義することができ、その際、例えば、ディスク、キーボード、グラフィックカードなどの周辺機器コントローラを別のハードウェアコンポーネントとして定義することができる。
通信機器8は、内部又は外部のバスシステム、或いは別の有線接続式又は無線接続式通信機器8であるとすることができる。例えば、通信機器8に関しては、例えば、PCI、PCI−X、PCIe、AGP、USB、I2Cなどの機器内のバスや、例えば、CAN、LIN、Flexray、(自動車用)イーサネット、MOSTなどの外部バス又はフィールドバスが挙げられる。車両分野において、これは、一般的に「車両内ネットワーク:IVN」と呼ばれる。
図1に図示された形態と異なり、ハードウェアシステム1は、様々な配置構成のハードウェアコンポーネント7と通信システム8を包含することもでき、例えば、ハードウェアシステム1が複雑な網接続形態を有し、その際、例えば、複数の階層的なバス、星形網又は環状網等が包含される。実際にハードウェアシステム1に関する例は、組込システムである。
本開示との関連において、技術的な文脈で組み込まれているハードウェアシステム1が「組込システム」と呼ばれる。組込システムは、例えば、医療機器、例えば、洗濯機や冷蔵庫などの家電製品、例えば、テレビ、DVDプレーヤー、セットトップボックス、ルーターや携帯電話などの娯楽用電子機器、例えば、自動車、航空機や船舶などの様々な路上走行車両、軌道車両又は水上/水中車両、それ以外の運搬機器、産業設備、さもなければ宇宙飛行で使用されている。
(即ち、技術的に複雑であるとの文脈において)複雑な全体システムの場合、組込システムは、異なる通信機器8、例えば、それぞれ安全性、データスループット及び/又は速度の仕様が異なる複数のバスシステムを介して互いに網状に接続された、その他の点では自律的な多数の組込(サブ)システムの網接続形態であるとすることができる。
任意選択として、ハードウェアシステム1及び/又はそこに含まれるハードウェアコンポーネント7の個々又は全ては、周知の手法によりデータ処理タスク2を処理する、或いはその処理に関与する、ランタイム環境、ランタイムライブラリ、ドライバ等を含むオペレーティングシステム11を有する。例えば、オペレーティングシステム11は、コンピュータの内部及び外部のハードウェアの動作及び共同作業を制御する従来又は専用のコンピュータ用オペレーティングシステムであるとすることができる。オペレーティングシステム11の例として、例えば、パーソナルコンピュータ、タブレット及びスマートフォンの分野におけるWindows、Android、iOS、macOS、Linux、UNIX、自動車分野におけるQNX、ElektrobitOS、ROS、AUTOSAR、或いは様々な製造業者の所有製品が挙げられる。ハードウェアシステム1を表現する詳細度に応じて、単一のオペレーティングシステム11を複数のハードウェアコンポーネント7に配備することもできる。これは、例えば、ハードウェアシステム1が、内部のハードウェアコンポーネント7がオペレーティングシステムにより制御される形で相応のバスシステムを介して互いに通信するコンピュータシステムである(或いはそのようなコンピュータシステムを含む)場合である。しかし、システム限界及びモデル形態に応じて、「より小さな」、「より大きな」又は「入れ子式の」ユニットをハードウェアコンポーネント7として定義することもでき、この場合、そのユニットの機能を決定する制御機構がそれぞれオペレーティングシステムであると理解される。
そのため、本明細書との関連において、ハードウェアコンポーネント7、ハードウェアコンポーネント7のグループ及びハードウェアシステム1の全体の中の一つ以上のシステムリソースの機能又はそこで進行するデータストリームを制御する一連のプログラム命令がオペレーティングシステム11であると理解する。一つのハードウェアシステム1に複数のオペレーティングシステム11を配備することもできる。
ハードウェアシステム1を表現する詳細度がそのハードウェアシステム1自体を変化させない場合でも、その表現形式又はハードウェアコンポーネント7への分割形式が後述するモデル化工程、即ち、ハードウェアシステム1のシミュレーションモデル5の作成にとって重要であることを指摘したい。
パラメータデータ13に応じて、アプリケーションソフトウェア12から、ハードウェアシステム1又は個々のハードウェアコンポーネント7によって処理される異なるデータ処理タスク2が生成される。本発明との関連において、一つのハードウェアコンポーネント7又は複数のハードウェアコンポーネント7によって共通的に実行される如何なるプロセス工程(又は如何なるプロセス工程のグループ)も「データ処理タスク」と見做すことができる。特に、本開示との関連において、データストリームを生じさせるプロセス工程がデータ処理タスクと見做される。
本開示との関連において、特に、
ア メモリユニット3のメモリアドレスに保存されたデータのコピーを同じメモリユニット3又は別のメモリユニット3の別のメモリアドレスに作成すること、
イ データ又はデータのコピーを変更すること、
ウ メモリユニット3のメモリアドレスに保存されたデータを削除すること、
エ 複数のハードウェアコンポーネントによって使用される通信機器8を介して、一つのハードウェアコンポーネント7から一つ(又は複数)のハードウェアコンポーネント7にデータを送信すること、並びに
オ ハードウェアシステム1の外部インタフェースを介してデータを送信又は受信すること、
が「データストリーム」と呼ばれる。
本明細書との関連において、アプリケーションソフトウェア12の進行状況に影響を与える、プログラム外で設定される全ての影響要因が「パラメータデータ」13と呼ばれる。パラメータデータ13は、開発者又はユーザーによって選定された設定と関連するか、所定の環境条件から得るか、或いは、典型的には、(時には、「INI」又は「CFG」ファイルと称される)コンフィグレーションファイルで定義される基本設定、デフォルト値、動作モード等を規定することができる。そのようなパラメータデータ13の別の例は、(例えば、車両に組み込まれたシステムであるとすることができる)ハードウェアシステム1においてアプリケーションソフトウェア12に基づき処理されるセンサーデータである。そのため、現実のハードウェアシステム1では、これらのパラメータデータ13は、その時々の環境条件から得られるとともに、ハードウェアシステム1のシミュレーションの途中で、相応のパラメータデータ13をテストケースとして準備して、処理することができる。
オペレーティングシステム11、アプリケーションソフトウェア12及びパラメータデータ13に関するシンボルの階層表現によって、複数のオペレーティングシステム、アプリケーションソフトウェアユニット及びパラメータデータセットの中の一つ以上がそれぞれハードウェアシステム1と関連できることを見えるようにすべきである。
ハードウェアシステム1とそこに配備された一つのオペレーティングシステム11又はそれに配備された複数のオペレーティングシステム11の複雑なアーキテクチャのために、並びに最新のプログラミングツールを用いて作成されたアプリケーションソフトウェア12の構造のために、統計的な方法によって、アプリケーションソフトウェア12のソースコードに基づき、如何なるデータストリームが所定のハードウェアシステム1においてデータ処理タスクを削除するのかを完全に予測することは最早不可能である。パラメータデータ13の限られた数の例だけに基づき、検査を行うこともできる。しかし、これは、正に、例えば、裏口を介した意図しない情報ストリームによる、攻撃に利用できる弱点を開放してしまう可能性がある。
しかし、ハードウェアシステム1において進行するデータストリームを監視することは不可能であり、その理由は、そのためには特別なハードウェアが必要になるからである。しかし、特別なハードウェアに基づくエラー分析は、変更されない本来のハードウェアに対して、限定的な意味しか持たない。
それ自体見えないデータストリームを眺めるために、本発明に基づき、ハードウェアシステム1が、シミュレーション環境4で実行可能なシミュレーションモデル5としてマッピングされる。
このシミュレーション環境4は、データ処理タスクの実行中に起こるデータストリームをハードウェアシステム1のシミュレーションモデル5においてシミュレーションして、それを観察できるようにする任意の好適なシミュレーションプラットフォームであるとすることができる。
シミュレーション環境4でのシミュレーションは、個々のハードウェアコンポーネント7によって実行されるデータストリームを観察して、ログに記録することを可能にする。この観察とログ記録は、有利には、シミュレーションの実行前に、制御・監視システム24の相応のユーザーインターフェース25を介して決定されて、シミュレーション環境4の「クリティカルなデータの定義」6に供給されるクリティカルなデータに限定される。この制御・監視システム24は、ユーザーが、ユーザーインターフェース25を介して、シミュレーションモデル5のモデル形態、クリティカルなデータ6の定義、シミュレーションの実行の開始と停止やパラメータデータ13又はテストケースの定義又は選定を含む、シミュレーション環境4でのシミュレーションの進行に必要な全ての定義と指示を作成することを可能にする。
シミュレーションモデル5へのハードウェアシステム1のマッピングを可能にする技術とシステムは、専門分野において周知であり、例えば、非特許文献6に記載されている。
シミュレーションモデル5は、例えば、より大きな全体システムの一部だけをマッピングすることもでき、それは、例えば、その全体システムの全ての構成要素をソフトウェアでシミュレーションできない場合、完全なシミュレーションモデルの作成に負担がかかり過ぎる場合、或いはそのようなシミュレーションが長過ぎる計算時間を必要とする場合である。この場合、現実のハードウェア部品としてデータストリームに関連しない部分は、例えば、ハードウエア・イン・ザ・ループ・シミュレーションの形式でシミュレーション環境4に結び付けることができる。同様に、シミュレーションモデル5を動作させるためのシミュレーション環境4は、一つ(又は複数)の別のシミュレーション環境とデータを交換することができ、その際、別のシミュレーション環境は、本発明による方法でデータストリームを調査する必要の無い要素をシミュレーションし、従って、より簡単に構築することができる。
シミュレーションにおいて、シミュレーションモデル5は、アプリケーションソフトウェア12から発生するデータ処理タスク2を実行し、その際、パラメータデータ13は、事前に定義されたテストケースに基づき算出される。この場合、例えば、ソフトウェアプログラムは、その全体又は個別部分として処理することができる。この場合、テストケースは、例えば、ハードウェアシステム1の出来る限り現実的な進行状況に対して設計することができるが、特別なシナリオを表すか、或いは限界領域における動作条件と関連することもできる。車両用の走行支援システムと関連するテストケースを作成して、最適化する方法が、例えば、特許文献1に開示されており、そこでは、「テストシナリオ」と呼ばれている。シミュレーション環境4がそのようなテストケースに基づきシミュレーションモデル5を動作させる一方、シミュレーションモデル5におけるクリティカルなデータの物理的なコピーの作成、送信、処理/結合及び削除が、制御・監視システム24によって観察されて、ログに記録される。
シミュレーションの実行後(又はその実行中)に、ログに記録されたデータに基づき、制御・監視システム24によって、場合によっては、グラフィック表示をも含む評価14が作成される。この場合、評価14は、特に、有線接続式及び/又は無線接続式データ接続部を介したクリティカルなデータの送信プロセスと、シミュレーションモデル5としてモデル化された、ハードウェアシステム1の表現における任意のメモリ位置でのクリティカルなデータの物理的なコピーの作成及び削除とを表す。シミュレーションの実行後にメモリユニット3に存在する可能性のあるクリティカルなデータのインスタンスが特に興味の対象である。それは、クリティカルなデータ6のコピーが、シミュレーションの実行後(又は限定されたデータ処理タスク2の実行後、或いは元のメモリ位置でのクリティカルなデータ6の削除後)に未だ削除されていないか、或いは上書きされた場合であり、従って、発見されない形式の所定のアドレスがメモリユニット3の中の一つに依然として存在する場合であるとすることができる。
有利には、この評価14において、メモリユニット3、通信機器8及び通信ユニット9の中の一つ以上をそれぞれ「許容ドメイン」15と「禁止ドメイン」16に分割することができる。これらのドメインは、例えば、メモリユニット3全体又はメモリユニット3内の所定のアドレス空間に基づき、バスアドレスに基づき、或いはハードウェアコンポーネント7に基づき定義することができ、この定義又は分割は、同じく制御・監視システム24によって行うことができる。
シミュレーションモデル5は、必要に応じて、実行すべきハードウェアシステム1を定義可能な詳細度で表現することができる。例えば、シミュレーションモデル5は、CPU命令セットのレベル(CPU・インストラクション・レベル)又はハードウェアゲートレベルにおいてモデルすることができる。所要の詳細度は、テストすべき攻撃の形式に共通して依存する。ソフトウェアエラーに基づく望ましくないデータストリームを発見するためには、例えば、CPUの命令レベルにおけるシミュレーションで十分である。ハードウェア内の隙間又はキャッシュ攻撃に基づく望ましくないデータストリームを発見するためには、例えば、ハードウェアレベル/ゲートレベルにおいて、シミュレーションしなければならない。
ハードウェアシステム1は、特に、例えば、メモリダイレクトアクセス、周辺機器などのサブシステムと通信インタフェースを包含することもできる。
図2は、アプリケーションソフトウェア12を実行できるオペレーティングシステム11が動作するハードウェアシステム1の具体的な例を図示している。このハードウェアシステム1は、従来のコンピュータアーキテクチャに基づき構築されており、プロセッサ17は、プロセッサコア18,プロセッサキャッシュ19及びプロセッサIO20を備えている。このプロセッサ17は、バスアーキテクチャ21を介して別のコンポーネント22と通信することができる。このプロセッサコア18,プロセッサキャッシュ19、プロセッサIO20、バスアーキテクチャ21及び別のコンポーネント22から成るユニットは、(典型的には、センサー機器とアクチュエータを介して)(現実の)環境と置き換わるサイバーフィジカルシステムとして観察することができる。そのようなサイバーフィジカルシステムは、例えば、自動車の制御機器(ECU)であるとすることができる。
このハードウェアシステム1において、アプリケーションソフトウェア12を処理できるオペレーティングシステム11が動作する。
図1と関連して成された総合的な記述の意味において、図2のプロセッサ17が、例えば、第一のハードウェアコンポーネント7aに相当し、プロセッサコア18がプロセッサユニット10に相当し、プロセッサキャッシュ19がメモリユニット3に相当し、プロセッサIO20が通信ユニット9に相当し、バス装置21が通信機器8に相当し、別のコンポーネント22がそれ以外のハードウェアコンポーネント7を包含することができる。既に言及した通り、例えば、より詳細なレベルにおける別のモデル形態も可能である。
図3では、図2のハードウェアシステム1のモデル形態が、例えば、オペレーティングシステム11とアプリケーションソフトウェア12を考慮して、シミュレーション環境4によってハードウェアシステム1のシミュレーションとして動かすことができるシミュレーションモデル5で図示されている。
図4は、テスト実行時に本発明による方法に応じて実施される工程の模式図を図示している。試験者23は、制御・監視システム24のユーザーインターフェース25を介して、シミュレーション環境4を操作し、図4の図面では、シミュレーションモデル5のモデル化が既に終了している。定義工程Iにおいて、試験者がクリティカルなデータ6を定義し、この定義は、特に、ハードウェアシステム1とそこで動作するアプリケーションソフトウェア12の分析に基づく。監視すべきクリティカルなデータ6は、ユーザーによって、例えば、特別な標識により決定され、これは、ソフトウェア内で直に、即ち、コンパイル前に行うことができる。そのためには、例えば、シンボルファイルなどの、アプリケーションソフトウェア12のソースコード及び/又はデバッグ情報へのアクセスが少なくとも部分的に必要である。場合によっては、クリティカルなデータの定義の決定は、ファイル特性、例えば、データ内容、発生時点、処理時点、メモリ内のアドレス等に関する属性の付与によって行うこともでき、この大部分は、ソースコードにアクセスしなくとも可能である。
それによると、本開示との関連において、特に、定義工程で、実施する人(例えば、プログラマー又は試験者23)によって、或いは事前に定義された特性に基づきクリティカルなデータとして定義されたデータが「クリティカルなデータ」と呼ばれる。クリティカルなデータを定義するための判断基準は、特に、その時々の個々のケースと、検査すべきハードウェアシステム及び/又はデータ処理タスクとに依存する。当業者は、ここに開示された教示を知った上で、クリティカルなデータの定義を行うことが可能である。
クリティカルなデータ6の定義と関連して、ルールを作成する、例えば、監視されるクリティカルなデータ6が「上回る」ことを許されない「限界」を記述することができる。これらの限界は、ハードウェアの所定の部分、所定のメモリ範囲、CPU内の所定の部分等と関連付けて、これらのリソースをそれぞれ許容ドメイン15と禁止ドメイン16に分割することができる。これらの定義は、別の制限、例えば、所定の時間区間又はシステム状態への依存性を含むこともできる。ドメインを定義するための別の特徴として、場合によっては、プロセスを実行する、例えば、どのユーザーの下で、(或いはどのユーザーのために)プロセスを実行するのか、或いはプロセッサをユーザーモード又はカーネルモードで動作させるのかなどの文脈を利用することができる。
定義工程Iの間に、シミュレーションの途中で処理すべきテストケースの選定又は定義も行われる。この工程において、シミュレーションモデル5のモデル化を行うか、或いはこのモデル化を適合させることもできる。
シミュレーションモデル5のモデル化、クリティカルなデータ6の定義、テストケースの選定及びルールと限界の定義の工程を任意の順番で、さもなければ互いに平行して、或いは反復工程で実施できることに留意されたい。
工程IIにおいて、検査すべきアプリケーションソフトウェア12が、用途又はテストケースに基づきシミュレーション環境にセットされて、工程IIIにおいて、このシミュレーション環境4で、シミュレーションが開始されて、この進行するシミュレーションが制御・監視システム24によって監視される。テストすべきアプリケーションソフトウェアと、場合によっては、その下位のテストすべき部分(フレームワーク、ランタイムライブラリ、オペレーティングシステム等)、並びにハードウェアがシミュレーション環境4内で「動作」するので、クリティカルなデータ又はクリティカルなデータ(及びそのコピー)のストリームへの全てのアクセスを観察して、監視するとともに、定義されたルールと比較することができる。ルール違反は、ログに記録するか、警報メッセージとして通報するか、或いはその両方を行うことができ、それによって、起こり得るデータ漏洩を発見することができる。更に、文脈の記録とこれらの発見に関する履歴(シミュレーション環境4における完全な進行を追跡方法によって文書化できること)によって、別の診断(又はデバッグ)に重要な支援を与えることができる。
制御・監視システム24は、少なくとも部分的に内部レジスタとシミュレーション環境4の状態にアクセスし、これは、典型的なデバッカーインタフェースに似ている。
そのため、クリティカルなデータ6、それへの全てのアクセス、並びにソフトウェア及びハードウェアの作動によって、これらのデータから由来し得る全ての変化(例えば、CPUのレジスタのフラグ)が観察、監視される。クリティカルなデータの経路は、制御・監視システム24によって記録されて、評価14において、例えば、空間構造における軌跡(「トレース」)の形で表すことができる(工程IV)。
図5には、そのようなツリー構造を有するクリティカルなデータ6に関する評価14の例が図示されている。x軸は、シミュレーションの時間経過を表し、y軸には、許容ドメイン15と禁止ドメイン16に分割されたハードウェアの区間が表示されている。
図5に図示された例では、時点(a)で、(例えば、クリティカルなデータがハードウェアコンポーネント7のメモリにロードされた時に)クリティカルなデータ6の監視が始まる。時点(b)で、プロセス工程の途中において、第一のインスタンス6’として表示された、クリティカルなデータのコピーが作成される。この第一のインスタンスは、許容ドメイン15に割り当てられたメモリ領域に有る。時点(c)で、コピーによって、第一のインスタンスから第二のインスタンス6’’が生成されて、禁止ドメイン16に割り当てられたメモリに保存される。このプロセスは、制御・監視システム24によって検知されて、報告される。場合によっては、警報メッセージを作成するか、シミュレーションの進行を中止するか、或いはその両方が可能である。時点(d)で、クリティカルなデータのオリジナルが破壊される(即ち、例えば、上書きされるか、削除される)。しかし、この時点では、第一のインスタンス6’が依然として(しかし、許容ドメインに)存在する。このことも、記録されて、通報される。このようにして、監視されているクリティカルなデータ6の全てのインスタンスとそれへのアクセスを検知することができる。新しいインスタンスは、典型的には、新しいサブツリーの開始ノードを形成する。
実際には、上述した評価14は、例えば、以下のプロセスを文書化することができる。監視されているデータが、外部メモリからCPUのレジスタにロードされる。しかし、それによって、典型的には、CPUのレジスタ内のデータが削除又は上書きされた場合にも存在するコピーが(場合によっては、複数のレベルにおいてさえ)キャッシュに発生する可能性がある。即ち、このコピー(即ち、第一のインスタンス6’)を新たに監視しなければならず、従って、相応の状態でグラフ内に新しい分岐を形成する(例えば、キャッシュに割り当てられる)。バスを介したデータの伝送も、場合によっては、同じバスに繋がっている全ての受信機がその時点でそのデータを読み取ること(それに続いて、コピー又は処理すること)を可能にする。このことも、新しい枝によって、グラフ内に文書化されて、更に追跡される。
別の可能性は、監視されているデータの処理である。例えば、シフト命令によって、データが、二進の形で一定数のビット位置だけずらされて、それにより変更される。この結果は、監視されているデータに依存し、そのため、同じく新しい枝としてグラフ内に文書化されて、更に追跡される。
ここに開示した措置は、例えば、特に、車両において、制御機器及びバスシステムにおける「機密性」や「プライバシー」などの特性をテスト及び診断するための新しいツールファミリーの開発を可能にする。特に、自動化を支援された、或いは自律的な車両の開発との関連において、駆動系統、走行機能、車両通信、乗客の快適性(eHealthも)及び積載量管理に関する来るべき制御機器が、人に関連するデータ又は使命に関して重要なデータを益々処理することになろう。そのようなデータは、定義された形式及び手法でのみ開示又は転送されることを許されて、決して予期せぬ形で、或いは集中的な攻撃により傍受可能であってはならない。本発明を用いて、様々なハードウェアシステムを任意の深さの詳細度で安全性に関連するデータストリームに関してテストすることが可能である。これらのテストは、任意の拡がりで拡張可能であり、例えば、複数の互いに協力して動作するシステムをシミュレーションすることができる。同様に詳細度の深さが拡張可能なことによって、異なるレベルで(アプリケーションソフトウェアで、オペレーティングシステムで、ハイパーバイザーでも、或いは更に深いレベルで)、ハードウェアの実装形態において直にエラーを探し出すことができる(これは、例えば、サイドチャネル攻撃と関連する可能性がある)。
1 ハードウェアシステム
2 データ処理タスク
3 メモリユニット
4 シミュレーション環境
5 シミュレーションモデル
6 クリティカルなデータ
7 ハードウェアコンポーネント
8 通信機器
9 通信ユニット
10 プロセッサユニット
11 オペレーティングシステム
12 アプリケーションソフトウェア
13 パラメータデータ
14 評価
15 許容ドメイン
16 禁止ドメイン
17 プロセッサ
18 プロセッサコア
19 プロセッサキャッシュ
20 プロセッサIO
21 バス装置
22 別のコンポーネント
23 試験者
24 制御・監視システム
25 ユーザーインターフェース

Claims (10)

  1. 少なくとも一つのデータ処理タスク(2)の実行中にハードウエアシステム(1)に発生する安全性に関連するデータフローを検出する方法において、
    このハードウエアシステム(1)の少なくとも一つのメモリユニット(3)に保存できるか、インタフェースを介して、このハードウエアシステム(1)に伝送できるか、或いはその両方が可能であるクリティカルなデータ(6)を定義する工程と、
    このハードウエアシステム(1)をシミュレーション環境(4)において実行可能なシミュレーションモデル(5)にマッピングする工程と、
    このシミュレーション環境(4)において、シミュレーションモデル(5)によるシミュレーションとしてデータ処理タスク(2)を実行する工程と、
    このデータ処理タスク(2)の実行中に、シミュレーションモデル(5)においてクリティカルなデータ(6)及びクリティカルなデータ(6)のインスタンス(6’,6’’)の作成、送信及び削除を監視する工程と、
    安全性に関連するデータストリームを特定して、ログに記録する工程とを特徴とする方法。
  2. ハードウエアシステム(1)をシミュレーションモデル(5)にマッピングするために、ハードウエアシステム(1)が、少なくとも一つの通信機器(8)を介して互いに接続されるとともに、この通信機器(8)を介してデータを交換できる多数のハードウェアコンポーネント(7)に分割されて、各ハードウェアコンポーネント(7)が、少なくとも一つの通信ユニット(9)、少なくとも一つのメモリユニット(3)及び少なくとも一つのプロセッサユニット(10)を有することを特徴とする請求項1に記載の方法。
  3. クリティカルなデータ(6)の定義がデータ特性の定義によって行われることを特徴とする請求項1又は2に記載の方法。
  4. 少なくとも所定の安全性に関連するデータストリームが特定された場合に、警報メッセージが作成されることを特徴とする請求項1〜3のいずれか1項に記載の方法。
  5. 特定された安全性に関連するデータストリームが評価(14)に保存されることを特徴とする請求項1〜4のいずれか1項に記載の方法。
  6. 前記の評価(14)がグラフィック表示されることを特徴とする請求項5に記載の方法。
  7. シミュレーションの進行状況がログに記録されることを特徴とする請求項1〜6のいずれか1項に記載の方法。
  8. データ処理タスク(2)が、場合によっては、定義されたテストケースの処理時に動作させるアプリケーションソフトウェア(12)の実行から発生することを特徴とする請求項1〜7のいずれか1項に記載の方法。
  9. 本方法が、ハードウェアシステムの区画を許容ドメイン(15)と禁止ドメイン(16)に分割する工程を更に有することを特徴とする請求項1〜8のいずれか1項に記載の方法。
  10. 安全性に関連するデータストリームとして、少なくとも、
    クリティカルなデータ(6)又はそのインスタンス(6’,6’’)が禁止ドメイン(16)の通信機器(8)を介して送信されるデータストリーム、
    クリティカルなデータ(6)が削除される一方で、そのクリティカルなデータ(6)のインスタンス(6’,6’’)が存在し続けるデータストリーム、
    禁止ドメイン(16)でクリティカルなデータ(6)のインスタンス(6’,6’’)が作成されるデータストリーム、
    所定の時点及び/又はシステム状態の後で、特に、データ処理タスクの完了後に、クリティカルなデータが存在し続けるデータストリーム、
    が特定されることを特徴とする請求項9に記載の方法。
JP2021519758A 2018-10-11 2019-10-10 安全性に関連するデータストリームを検出する方法 Active JP7377260B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
ATA50889/2018A AT521713B1 (de) 2018-10-11 2018-10-11 Verfahren zur Detektion sicherheitsrelevanter Datenflüsse
ATA50889/2018 2018-10-11
PCT/AT2019/060339 WO2020073072A1 (de) 2018-10-11 2019-10-10 Verfahren zur detektion sicherheitsrelevanter datenflüsse

Publications (2)

Publication Number Publication Date
JP2022502790A true JP2022502790A (ja) 2022-01-11
JP7377260B2 JP7377260B2 (ja) 2023-11-09

Family

ID=68424542

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021519758A Active JP7377260B2 (ja) 2018-10-11 2019-10-10 安全性に関連するデータストリームを検出する方法

Country Status (8)

Country Link
US (1) US20210342249A1 (ja)
EP (1) EP3864547A1 (ja)
JP (1) JP7377260B2 (ja)
KR (1) KR20210061446A (ja)
CN (1) CN112840341B (ja)
AT (1) AT521713B1 (ja)
IL (1) IL282039A (ja)
WO (1) WO2020073072A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11347892B2 (en) * 2019-11-27 2022-05-31 AO Kaspersky Lab System and method for access control in electronic control units of vehicles
US20220245266A1 (en) * 2019-11-27 2022-08-04 AO Kaspersky Lab System and method for providing a security policy

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114217545A (zh) * 2021-11-04 2022-03-22 北京机电工程研究所 结合硬件条件判断的控制软件关键指令输出方法
CN114384820B (zh) * 2021-11-30 2023-12-22 重庆长安汽车股份有限公司 基于云台架的自动驾驶算法仿真测试系统及方法
TWI797934B (zh) * 2021-12-30 2023-04-01 新唐科技股份有限公司 微控制晶片及存取方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0226906D0 (en) * 2002-11-18 2002-12-24 Advanced Risc Mach Ltd Virtual to physical memory address mapping within a system having a secure domain and a non-secure domain
JP4656929B2 (ja) * 2003-11-18 2011-03-23 クイックターン・デザイン・システムズ・インコーポレイテッド エミュレーションシステムとシミュレータとの間でのシミュレーション及び可視化データ転送のための最適化インターフェース
US8127360B1 (en) * 2006-06-29 2012-02-28 Symantec Corporation Method and apparatus for detecting leakage of sensitive information
US8060074B2 (en) 2007-07-30 2011-11-15 Mobile Iron, Inc. Virtual instance architecture for mobile device management systems
WO2012154658A2 (en) 2011-05-06 2012-11-15 University Of North Carolina At Chapel Hill Methods, systems, and computer readable media for efficient computer forensic analysis and data access control
US9298918B2 (en) * 2011-11-30 2016-03-29 Elwha Llc Taint injection and tracking
JP5832954B2 (ja) * 2012-05-18 2015-12-16 日本電信電話株式会社 タグ付与装置及びタグ付与方法
JP5952218B2 (ja) * 2013-05-16 2016-07-13 日本電信電話株式会社 情報処理装置および情報処理方法
US10185584B2 (en) 2013-08-20 2019-01-22 Teleputers, Llc System and method for self-protecting data
AT513370B1 (de) 2013-11-05 2015-11-15 Avl List Gmbh Virtuelle Testoptimierung für Fahrerassistenzsysteme
US9473520B2 (en) 2013-12-17 2016-10-18 Verisign, Inc. Systems and methods for incubating malware in a virtual organization
CN105404828A (zh) 2014-09-12 2016-03-16 国际商业机器公司 用于数据安全的方法和系统
EP3001313A1 (de) * 2014-09-23 2016-03-30 dSPACE digital signal processing and control engineering GmbH Verfahren zur Simulation eines Anwendungsprogramms eines elektronischen Steuergeräts auf einem Computer
WO2016141998A1 (de) * 2015-03-12 2016-09-15 Siemens Aktiengesellschaft Vorrichtung und verfahren zum bereitstellen einer digitalen abbildung einer physikalischen entität
US10037221B2 (en) * 2015-12-28 2018-07-31 Amazon Technologies, Inc. Management of virtual desktop instance pools
US10719631B2 (en) * 2016-07-27 2020-07-21 Tortuga Logic Inc. Method and system for detecting hardware trojans and unintentional design flaws
JP6396519B2 (ja) 2017-01-23 2018-09-26 ファナック株式会社 通信環境への侵入を検出するシステム、および侵入検出方法
CN108255711A (zh) * 2017-12-29 2018-07-06 湖南优利泰克自动化系统有限公司 一种基于污点分析的plc固件模糊测试系统及测试方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11347892B2 (en) * 2019-11-27 2022-05-31 AO Kaspersky Lab System and method for access control in electronic control units of vehicles
US20220245266A1 (en) * 2019-11-27 2022-08-04 AO Kaspersky Lab System and method for providing a security policy
US11640481B2 (en) * 2019-11-27 2023-05-02 AO Kaspersky Lab System and method for providing a security policy

Also Published As

Publication number Publication date
US20210342249A1 (en) 2021-11-04
EP3864547A1 (de) 2021-08-18
CN112840341B (zh) 2024-03-15
JP7377260B2 (ja) 2023-11-09
AT521713A3 (de) 2023-04-15
CN112840341A (zh) 2021-05-25
AT521713A2 (de) 2020-04-15
WO2020073072A1 (de) 2020-04-16
AT521713B1 (de) 2023-07-15
KR20210061446A (ko) 2021-05-27
IL282039A (en) 2021-05-31

Similar Documents

Publication Publication Date Title
JP7377260B2 (ja) 安全性に関連するデータストリームを検出する方法
US10489564B2 (en) Method and execution environment for the secure execution of program instructions
Mahmood et al. A whitebox approach for automated security testing of Android applications on the cloud
US8499288B2 (en) User interface analysis management
US20100146340A1 (en) Analyzing Coverage of Code Changes
JP2017097862A (ja) セーフティクリティカルソフトウェア自動要求ベーステストケース生成のためのシステムおよび方法
US11748487B2 (en) Detecting a potential security leak by a microservice
US20160055333A1 (en) Protecting software application
US11888885B1 (en) Automated security analysis of software libraries
Ruohonen et al. A large-scale security-oriented static analysis of python packages in pypi
Mongiovì et al. Combining static and dynamic data flow analysis: a hybrid approach for detecting data leaks in Java applications
US9058427B2 (en) Iterative generation of symbolic test drivers for object-oriented languages
Mahmoodi et al. Attack surface modeling and assessment for penetration testing of IoT system designs
Azar et al. Fuzz, penetration, and ai testing for soc security verification: Challenges and solutions
CN111859380A (zh) Android App漏洞的零误报检测方法
US11620129B1 (en) Agent-based detection of fuzzing activity associated with a target program
Pike et al. Securing the automobile: A comprehensive approach
CN109165509B (zh) 软件实时可信度量的方法、设备、系统及存储介质
US11934534B2 (en) Vulnerability analysis of a computer driver
Baradaran et al. A unit-based symbolic execution method for detecting memory corruption vulnerabilities in executable codes
Zein et al. Static analysis of android apps for lifecycle conformance
CN113312626A (zh) 评估软件对工业自动化和控制系统的影响的系统和方法
CN115292723B (zh) 一种检测侧信道漏洞的方法和装置
EP4276665A1 (en) Analyzing scripts to create and enforce security policies in dynamic development pipelines
Lauber et al. Testing Security of Embedded Software Through Virtual Processor Instrumentation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220905

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230929

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20231004

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231027

R150 Certificate of patent or registration of utility model

Ref document number: 7377260

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150