JP7338686B2 - 半導体装置、制御フロー検査方法、制御フロー検査プログラム及び電子機器 - Google Patents
半導体装置、制御フロー検査方法、制御フロー検査プログラム及び電子機器 Download PDFInfo
- Publication number
- JP7338686B2 JP7338686B2 JP2021528686A JP2021528686A JP7338686B2 JP 7338686 B2 JP7338686 B2 JP 7338686B2 JP 2021528686 A JP2021528686 A JP 2021528686A JP 2021528686 A JP2021528686 A JP 2021528686A JP 7338686 B2 JP7338686 B2 JP 7338686B2
- Authority
- JP
- Japan
- Prior art keywords
- determination
- avoidance
- control flow
- code block
- target code
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/54—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/565—Static detection by checking file integrity
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Debugging And Monitoring (AREA)
Description
所定のプログラム内の複数のコードブロックのうち実行対象である対象コードブロックにおける判定補助情報に基づき、制御フロー整合性の検査の回避条件を満たすか否かの判定を行う判定手段と、
前記回避条件を満たすと判定した場合に、前記対象コードブロックにおける前記制御フロー整合性の検査を回避する検査手段と、
を備える。
コンピュータが、
所定のプログラム内の複数のコードブロックのうち実行対象である対象コードブロックにおける判定補助情報に基づき、制御フロー整合性の検査の回避条件を満たすか否かの判定を行い、
前記回避条件を満たすと判定した場合に、前記対象コードブロックにおける前記制御フロー整合性の検査を回避する。
所定のプログラム内の複数のコードブロックのうち実行対象である対象コードブロックにおける判定補助情報に基づき、制御フロー整合性の検査の回避条件を満たすか否かの判定を行う処理と、
前記回避条件を満たすと判定した場合に、前記対象コードブロックにおける前記制御フロー整合性の検査を回避する処理と、
をコンピュータに実行させる制御フロー検査プログラムが格納されたものである。
図1は、本実施形態1にかかる半導体装置100の構成を示すブロック図である。半導体装置100は、所定のプログラムの実行を制御するプロセッサ等の制御装置や情報処理装置である。また、半導体装置100は、コンピュータもしくは情報処理装置、又は、IoT(Internet of Thing)機器もしくは組み込み機器等の電子機器に搭載されたものであってもよい。半導体装置100は、判定部110と、検査部120とを備える。
本実施形態2は、上述した実施形態1の具体例である。
図3は、本実施形態2にかかるデバイス200の構成を示すブロック図である。デバイス200は、上述した半導体装置100の一例である。デバイス200は、プログラム実行部210と、入力値判定部220と、制御フロー整合性検査部230と、制御フローグラフ241と、ハッシュ値242と、回避レベル閾値243と、履歴情報記憶部250とを少なくとも備える。
尚、制御フロー整合性の検査には、ハッシュ値242の代わりに、実行順序そのものや実行順序の組そのものを用いても良い。具体的には、対象コードブロックの現在の実行順序と、あらかじめ記録しておいた実行順序を列挙したパターンと比較し、現在の実行順序がそのパターンの中にあれば、正常とみなしてプログラムの実行を許可する。
本実施形態3は、上述した実施形態1の変形例である。本実施形態3にかかる判定補助情報は、対象コードブロックの実行時の内部状態変数値をさらに含む。そして、判定手段は、内部状態変数値の範囲を回避条件としてさらに加味して判定を行うものである。これにより、回避条件を満たすか否かの判定精度をより向上できる。その理由は、対象コードブロックが繰り返し実行される場合に、入力値が類似したとしても、実行に伴い内部状態変数値が変化し、内部状態変数値によっては検査を要する場合があり得るためである。
本実施形態4は、上述した実施形態1から3の変形例である。実施形態4では、デバイスの各種ログを用いて回避条件の判定モデルを機械学習し、判定精度を向上させるものである。
尚、上記実施形態において、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、CPU(Central Processing Unit)、メモリ、その他の回路で構成することができ、ソフトウェア的には、CPUがメモリにロードして実行するプログラム等によって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、又はそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
(付記A1)
所定のプログラム内の複数のコードブロックのうち実行対象である対象コードブロックにおける判定補助情報に基づき、制御フロー整合性の検査の回避条件を満たすか否かの判定を行う判定手段と、
前記回避条件を満たすと判定した場合に、前記対象コードブロックにおける前記制御フロー整合性の検査を回避する検査手段と、
を備える半導体装置。
(付記A2)
前記判定手段は、
前記対象コードブロックにおける過去の実行時の判定補助情報との類似度合いを前記回避条件として前記判定を行う
付記A1に記載の半導体装置。
(付記A3)
前記判定補助情報は、前記対象コードブロックへの入力値を含み、
前記判定手段は、
前記入力値のデータ内容又はデータサイズの範囲を前記回避条件として前記判定を行う
付記A1又はA2に記載の半導体装置。
(付記A4)
前記判定補助情報は、前記対象コードブロックの実行時の内部状態変数値をさらに含み、
前記判定手段は、
前記内部状態変数値の範囲を前記回避条件としてさらに加味して前記判定を行う
付記A3に記載の半導体装置。
(付記A5)
前記判定手段は、
前記回避条件を満たすと前記判定を行った場合、当該回避条件を満たす度合いに応じて回避レベルを設定し、
前記検査手段は、
前記回避レベルに応じて前記検査を回避する
付記A1乃至A4のいずれか1項に記載の半導体装置。
(付記A6)
前記複数のコードブロックのそれぞれは、前記回避レベルの閾値が予め定義されており、
前記検査手段は、
前記判定手段により設定された回避レベルが、前記対象コードブロックに定義された回避レベルの閾値を満たす場合、前記検査を回避する
付記A5に記載の半導体装置。
(付記A7)
前記判定補助情報の履歴情報を記憶する記憶手段をさらに備え、
前記判定手段は、
前記対象コードブロックにおける判定補助情報を取得し、
前記履歴情報と前記取得した判定補助情報とに基づいて、前記判定を行い、
前記検査手段による回避結果に応じて、前記取得した判定補助情報を前記履歴情報として前記記憶手段に追加する
付記A1乃至A6のいずれか1項に記載の半導体装置。
(付記A8)
前記判定手段は、
前記履歴情報を用いて前記回避条件が学習された判定モデルを用いて、前記判定を行う
付記A7に記載の半導体装置。
(付記A9)
前記履歴情報を用いて前記判定モデルの前記回避条件を学習してパラメータを更新する学習手段をさらに備える
付記A8に記載の半導体装置。
(付記A10)
前記半導体装置は、セキュア領域と非セキュア領域とを備え、
前記セキュア領域は、前記判定手段及び前記検査手段を少なくとも含み、
前記非セキュア領域は、プログラム実行手段を含み、
前記判定手段は、
前記プログラム実行手段により前記対象コードブロックに設定された前記制御フロー整合性の検査を呼び出す検査命令の実行に応じて、前記判定を行う
付記A1乃至A9のいずれか1項に記載の半導体装置。
(付記B1)
コンピュータが、
所定のプログラム内の複数のコードブロックのうち実行対象である対象コードブロックにおける判定補助情報に基づき、制御フロー整合性の検査の回避条件を満たすか否かの判定を行い、
前記回避条件を満たすと判定した場合に、前記対象コードブロックにおける前記制御フロー整合性の検査を回避する
制御フロー検査方法。
(付記C1)
所定のプログラム内の複数のコードブロックのうち実行対象である対象コードブロックにおける判定補助情報に基づき、制御フロー整合性の検査の回避条件を満たすか否かの判定を行う処理と、
前記回避条件を満たすと判定した場合に、前記対象コードブロックにおける前記制御フロー整合性の検査を回避する処理と、
をコンピュータに実行させる制御フロー検査プログラムが格納された非一時的なコンピュータ可読媒体。
(付記D1)
付記A1乃至A10のいずれか1項に記載の半導体装置を備える電子機器。
110 判定部
120 検査部
200 デバイス
200a デバイス
200b デバイス
210 プログラム実行部
211 対象コードブロック
212 検査命令
220 入力値判定部
220b 入力値判定部
230 制御フロー整合性検査部
230a 制御フロー整合性検査部
241 制御フローグラフ
242 ハッシュ値
243 回避レベル閾値
250 履歴情報記憶部
251 入力値
252 回避結果
253 内部状態変数値
254 検査結果
255 実行結果
260 内部状態変数値判定部
260b 内部状態変数値判定部
270 学習部
271 判定モデル
31 モジュール
32 コードブロック
321 コードブロック
322 コードブロック
323 コードブロック
33 ハッシュ値検査処理
331 回避
332 回避
333 回避
334 回避
335 回避
336 回避
400 デバイス
410 normal world
411 プロセッサコア
420 secure world
500 情報処理装置
510 記憶装置
511 制御フロー検査プログラム
512 制御フローグラフ
513 ハッシュ値
514 回避レベル閾値
515 実行対象プログラム
516 履歴情報
520 制御部
530 メモリ
540 IF部
Claims (13)
- 所定のプログラム内の複数のコードブロックのうち実行対象である対象コードブロックにおける判定補助情報に基づき、制御フロー整合性の検査の回避条件を満たすか否かの判定を行う判定手段と、
前記回避条件を満たすと判定した場合に、前記対象コードブロックにおける前記制御フロー整合性の検査を回避する検査手段と、
を備え、
前記判定補助情報は、前記対象コードブロックへの入力値を含み、
前記判定手段は、
前記入力値のデータ内容又はデータサイズの範囲を前記回避条件として前記判定を行う
半導体装置。 - 前記判定手段は、
前記対象コードブロックにおける過去の実行時の判定補助情報との類似度合いを前記回避条件として前記判定を行う
請求項1に記載の半導体装置。 - 前記判定補助情報は、前記対象コードブロックの実行時の内部状態変数値をさらに含み、
前記判定手段は、
前記内部状態変数値の範囲を前記回避条件としてさらに加味して前記判定を行う
請求項1又は2に記載の半導体装置。 - 所定のプログラム内の複数のコードブロックのうち実行対象である対象コードブロックにおける判定補助情報に基づき、制御フロー整合性の検査の回避条件を満たすか否かの判定を行う判定手段と、
前記回避条件を満たすと判定した場合に、前記対象コードブロックにおける前記制御フロー整合性の検査を回避する検査手段と、
を備え、
前記判定手段は、
前記回避条件を満たすと前記判定を行った場合、当該回避条件を満たす度合いに応じて回避レベルを設定し、
前記複数のコードブロックのそれぞれは、前記回避レベルの閾値が予め定義されており、
前記検査手段は、
前記判定手段により設定された回避レベルが、前記対象コードブロックに定義された回避レベルの閾値を満たす場合、前記検査を回避する
半導体装置。 - 所定のプログラム内の複数のコードブロックのうち実行対象である対象コードブロックにおける判定補助情報に基づき、制御フロー整合性の検査の回避条件を満たすか否かの判定を行う判定手段と、
前記回避条件を満たすと判定した場合に、前記対象コードブロックにおける前記制御フロー整合性の検査を回避する検査手段と、
前記判定補助情報の履歴情報を記憶する記憶手段をさらに備えと、
を備え、
前記判定手段は、
前記対象コードブロックにおける判定補助情報を取得し、
前記履歴情報と前記取得した判定補助情報とに基づいて、前記判定を行い、
前記検査手段による回避結果に応じて、前記取得した判定補助情報を前記履歴情報として前記記憶手段に追加する
半導体装置。 - 前記判定手段は、
前記履歴情報を用いて前記回避条件が学習された判定モデルを用いて、前記判定を行う
請求項5に記載の半導体装置。 - 前記履歴情報を用いて前記判定モデルの前記回避条件を学習してパラメータを更新する学習手段をさらに備える
請求項6に記載の半導体装置。 - 前記半導体装置は、セキュア領域と非セキュア領域とを備え、
前記セキュア領域は、前記判定手段及び前記検査手段を少なくとも含み、
前記非セキュア領域は、プログラム実行手段を含み、
前記判定手段は、
前記プログラム実行手段により前記対象コードブロックに設定された前記制御フロー整合性の検査を呼び出す検査命令の実行に応じて、前記判定を行う
請求項1乃至7のいずれか1項に記載の半導体装置。 - コンピュータが、
所定のプログラム内の複数のコードブロックのうち実行対象である対象コードブロックにおける判定補助情報に基づき、制御フロー整合性の検査の回避条件を満たすか否かの判定を行い、
前記回避条件を満たすと判定した場合に、前記対象コードブロックにおける前記制御フロー整合性の検査を回避する
制御フロー検査方法であって、
前記判定補助情報は、前記対象コードブロックへの入力値を含み、
前記入力値のデータ内容又はデータサイズの範囲を前記回避条件として前記判定を行う
制御フロー検査方法。 - コンピュータが、
所定のプログラム内の複数のコードブロックのうち実行対象である対象コードブロックにおける判定補助情報に基づき、制御フロー整合性の検査の回避条件を満たすか否かの判定を行い、
前記回避条件を満たすと判定した場合に、前記対象コードブロックにおける前記制御フロー整合性の検査を回避する
制御フロー検査方法であって、
前記回避条件を満たすと前記判定を行った場合、当該回避条件を満たす度合いに応じて回避レベルを設定し、
前記複数のコードブロックのそれぞれは、前記回避レベルの閾値が予め定義されており、
前記設定された回避レベルが、前記対象コードブロックに定義された回避レベルの閾値を満たす場合、前記検査を回避する
制御フロー検査方法。 - コンピュータが、
所定のプログラム内の複数のコードブロックのうち実行対象である対象コードブロックにおける判定補助情報に基づき、制御フロー整合性の検査の回避条件を満たすか否かの判定を行い、
前記回避条件を満たすと判定した場合に、前記対象コードブロックにおける前記制御フロー整合性の検査を回避する
制御フロー検査方法であって、
前記対象コードブロックにおける判定補助情報を取得し、
前記判定補助情報の履歴情報と前記取得した判定補助情報とに基づいて、前記判定を行い、
前記検査の回避結果に応じて、前記取得した判定補助情報を前記履歴情報として記憶装置に追加する
制御フロー検査方法。 - 所定のプログラム内の複数のコードブロックのうち実行対象である対象コードブロックにおける判定補助情報に基づき、制御フロー整合性の検査の回避条件を満たすか否かの判定を行う処理と、
前記回避条件を満たすと判定した場合に、前記対象コードブロックにおける前記制御フロー整合性の検査を回避する処理と、
をコンピュータに実行させる制御フロー検査プログラムであって、
前記判定補助情報は、前記対象コードブロックへの入力値を含み、
前記入力値のデータ内容又はデータサイズの範囲を前記回避条件として前記判定を行う処理をコンピュータに実行させる制御フロー検査プログラム。 - 請求項1乃至8のいずれか1項に記載の半導体装置を備える電子機器。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2019/025100 WO2020261365A1 (ja) | 2019-06-25 | 2019-06-25 | 半導体装置、制御フロー検査方法、非一時的なコンピュータ可読媒体及び電子機器 |
Publications (3)
Publication Number | Publication Date |
---|---|
JPWO2020261365A1 JPWO2020261365A1 (ja) | 2020-12-30 |
JPWO2020261365A5 JPWO2020261365A5 (ja) | 2022-03-10 |
JP7338686B2 true JP7338686B2 (ja) | 2023-09-05 |
Family
ID=74060831
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021528686A Active JP7338686B2 (ja) | 2019-06-25 | 2019-06-25 | 半導体装置、制御フロー検査方法、制御フロー検査プログラム及び電子機器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11868467B2 (ja) |
JP (1) | JP7338686B2 (ja) |
WO (1) | WO2020261365A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4004784B1 (en) * | 2020-09-30 | 2024-03-13 | Google LLC | Determining expected hash-values in functions with control flow |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180225446A1 (en) | 2017-02-06 | 2018-08-09 | Huawei Technologies Co., Ltd. | Processor trace-based enforcement of control flow integrity of a computer system |
JP2019012498A (ja) | 2017-07-03 | 2019-01-24 | 株式会社デンソー | 電子制御装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3373178A1 (en) | 2017-03-08 | 2018-09-12 | Secure-IC SAS | Comparison of execution context data signatures with references |
US11496506B2 (en) * | 2017-07-03 | 2022-11-08 | Denso Corporation | Program generation method and electronic control unit for changing importance of functions based on detected operation state in a vehicle |
-
2019
- 2019-06-25 US US17/620,804 patent/US11868467B2/en active Active
- 2019-06-25 WO PCT/JP2019/025100 patent/WO2020261365A1/ja active Application Filing
- 2019-06-25 JP JP2021528686A patent/JP7338686B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180225446A1 (en) | 2017-02-06 | 2018-08-09 | Huawei Technologies Co., Ltd. | Processor trace-based enforcement of control flow integrity of a computer system |
JP2019012498A (ja) | 2017-07-03 | 2019-01-24 | 株式会社デンソー | 電子制御装置 |
Also Published As
Publication number | Publication date |
---|---|
US20220358211A1 (en) | 2022-11-10 |
WO2020261365A1 (ja) | 2020-12-30 |
US11868467B2 (en) | 2024-01-09 |
JPWO2020261365A1 (ja) | 2020-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2021535477A (ja) | フォールトツリー分析を使用して機能安全のため制御フローグラフを最適化するシステム及び方法 | |
US7353500B2 (en) | Suppressing execution of monitoring measurement program pointed to by inserted branch after threshold number of coverage to reduce instruction testing overhead | |
US20100275186A1 (en) | Segmentation for static analysis | |
JP7047969B2 (ja) | 障害保護のための並列実行および関連プロセスの比較のためのシステムおよび方法 | |
EP2983117A1 (en) | Event processing method in stream processing system and stream processing system | |
US20160162381A1 (en) | Implementing processor functional verification by generating and running constrained random irritator tests for multiple processor system and processor core with multiple threads | |
KR101978984B1 (ko) | 프로세서의 오류를 검출하는 장치 및 방법 | |
JP7338686B2 (ja) | 半導体装置、制御フロー検査方法、制御フロー検査プログラム及び電子機器 | |
CN111459964A (zh) | 一种面向模板基于Word2vec的日志异常检测方法及装置 | |
US20140149800A1 (en) | Test method and test control apparatus | |
US20190146893A1 (en) | Simulation device, simulation system, simulation method, and simulation program | |
KR101294708B1 (ko) | 행위 오류 분석 장치 및 그 방법 | |
US10824546B2 (en) | Test method and non-transitory computer readable medium storing program for testing modules | |
US20220092476A1 (en) | Dependence relationship detection device and dependence relationship detection method | |
US20230324856A1 (en) | Control of a technical system by means of a computing unit for artificial intelligence | |
JP7318707B2 (ja) | 半導体装置、制御フロー検査方法、制御フロー検査プログラム及び電子機器 | |
US20150082278A1 (en) | Clone detection method and clone function commonalizing method | |
CN115328772A (zh) | 激励组合与模块相关性的学习方法与测试脚本产生方法 | |
JP2013254371A (ja) | ソフトウェア開発支援装置、ソフトウェア開発支援方法及びソフトウェア開発支援プログラム | |
JP7415593B2 (ja) | コード検査ツール、コード検査方法 | |
JP2008090699A (ja) | トレースロギング方法、装置及びプログラム | |
US20220327203A1 (en) | Whitelist generation apparatus, whitelist generation method, and non-transitory computer readable medium storing program | |
WO2019142266A1 (ja) | テストケース生成装置、テストケース生成方法およびテストケース生成プログラム | |
US20200349304A1 (en) | Method, apparatus, device, and medium for implementing simulator | |
JPWO2020194455A1 (ja) | テストケース生成装置、テストケース生成方法、およびテストケース生成プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20211213 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20211213 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230214 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230406 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20230725 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230807 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 7338686 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |