JP2011150656A - Program inspection system - Google Patents

Program inspection system Download PDF

Info

Publication number
JP2011150656A
JP2011150656A JP2010013445A JP2010013445A JP2011150656A JP 2011150656 A JP2011150656 A JP 2011150656A JP 2010013445 A JP2010013445 A JP 2010013445A JP 2010013445 A JP2010013445 A JP 2010013445A JP 2011150656 A JP2011150656 A JP 2011150656A
Authority
JP
Japan
Prior art keywords
program
inspection
domain
execution
storage
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.)
Pending
Application number
JP2010013445A
Other languages
Japanese (ja)
Inventor
Hisashi Oguma
寿 小熊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toyota Motor Corp
Toyota InfoTechnology Center Co Ltd
Original Assignee
Toyota Motor Corp
Toyota InfoTechnology Center Co Ltd
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 Toyota Motor Corp, Toyota InfoTechnology Center Co Ltd filed Critical Toyota Motor Corp
Priority to JP2010013445A priority Critical patent/JP2011150656A/en
Publication of JP2011150656A publication Critical patent/JP2011150656A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To perform program inspection in parallel with program execution without causing access conflict to a storage. <P>SOLUTION: In a multi-core system for executing an execution domain (10) and an inspection domain (20) in parallel, access from the execution domain (10) to a storage (30) is prohibited, and an access request to the storage (30) is performed through the inspection domain (20). The inspection domain (20) receiving a program acquisition request from the execution domain (10) transfers a program read out from the storage (30) to the execution domain (10) and prepares a copy of the program. The inspection domain (20) inspects the copied program as a target. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、プログラムの正当性を検証するプログラム検査技術に関し、特に、記憶装置を共有するマルチコアシステムにおけるプログラム検査技術に関する。   The present invention relates to a program inspection technique for verifying the validity of a program, and more particularly to a program inspection technique in a multi-core system sharing a storage device.

特許文献1にはランタイムでプログラムを検査する手法が提案されている。マルチコアプロセッサシステム上で、このようなランタイムのプログラム検査を利用する場合は、既存機能の動作環境(実行ドメイン)と並列実行できる動作環境(検査ドメイン)を導入する方法が考えられる。このようにプログラム実行とプログラム検査を並列実行することで、検査がプログラム実行に影響を与えないことが期待されるが、実際にはプログラムを保存する記憶装置(ストレージ)に対するアクセス競合によりプログラム実行のスループットに悪影響を与えてしまう。   Patent Document 1 proposes a method for inspecting a program at runtime. When using such a runtime program inspection on a multi-core processor system, a method of introducing an operation environment (inspection domain) that can be executed in parallel with the operation environment (execution domain) of an existing function can be considered. By executing program execution and program inspection in parallel in this way, it is expected that the inspection will not affect the program execution. However, in reality, program execution is caused by access contention with respect to the storage device (storage) that stores the program. It will adversely affect the throughput.

ストレージに対するアクセス競合によるスループットの低下を避けるために、本発明者は、実行ドメインがストレージにアクセスするときに検査ドメインに割り込みをかけることで、検査ドメインによる検査を中断する手法を提案している(特許文献2)。   In order to avoid a decrease in throughput due to contention for access to the storage, the present inventor has proposed a method of interrupting the inspection by the inspection domain by interrupting the inspection domain when the execution domain accesses the storage ( Patent Document 2).

特開2004−171564号公報JP 2004-171564 A 特開2009−282751号公報JP 2009-282755 A

しかしながら、特許文献2の手法では、改ざんされた実行ドメイン内のプログラムが定期的に検査ドメインに割り込みをかけることで、プログラム検査を無効にして改ざん検知を免れるおそれがある。   However, in the method of Patent Document 2, there is a possibility that a program in the execution domain that has been tampered with periodically interrupts the inspection domain, thereby invalidating the program inspection and avoiding detection of tampering.

本発明は、特許文献2の手法とは異なる手法により、ストレージに対するアクセス競合に起因するスループット低下の問題を解決する。すわなち、本発明は、検査対象プログラムが格納されている記憶装置へのアクセス競合を発生させずに、プログラム実行と並列してプログラム検査を行うことを目的とする。   The present invention solves the problem of throughput reduction due to access contention for storage by a method different from the method of Patent Document 2. In other words, an object of the present invention is to perform program inspection in parallel with program execution without causing access contention to a storage device in which the inspection target program is stored.

上記課題を解決するために、本発明に係るプログラム検査システムは、プログラムを格納する記憶手段と、前記プログラムを実行するプログラム実行手段と、前記プログラムを検査する検査手段と、を有する。本プログラム検査システムは、マルチコアシステム上で動作するものであり、プログラム検査処理とプログラム実行処理を並列に行うことができるものである。   In order to solve the above problems, a program inspection system according to the present invention includes a storage unit for storing a program, a program execution unit for executing the program, and an inspection unit for inspecting the program. This program inspection system operates on a multi-core system, and can perform a program inspection process and a program execution process in parallel.

なお、本明細書において、マルチコアシステムとは、複数のプロセッサコアを有するコンピュータシステムのことを意味する。したがって、1つのプロセッサパッケージの中に複数のプロセッサコアを含むシステムや、それぞれが1つのプロセッサコアを有する複数のプロセッサを含むシステムや、これらの組み合わせが、本明細書におけるマルチコアシステムに該当する。   In this specification, a multi-core system means a computer system having a plurality of processor cores. Therefore, a system including a plurality of processor cores in one processor package, a system including a plurality of processors each having one processor core, and a combination thereof correspond to the multi-core system in this specification.

本発明におけるプログラム実行手段は、記憶手段からプログラムを読み出す際に、記憶
手段に直接アクセスせずに、検査手段に対してプログラムの取得を要求する。
The program execution means in the present invention requests the inspection means to obtain the program without directly accessing the storage means when reading the program from the storage means.

本発明における検査手段は、プログラム実行手段からのプログラムの取得要求に応じて記憶手段からプログラムを取得してプログラム実行手段へ送信するとともに、取得したプログラムのコピーを作成してコピーされたプログラムを対象に検査を実行する。   The inspection unit according to the present invention acquires a program from the storage unit in response to a program acquisition request from the program execution unit, transmits the program to the program execution unit, and creates a copy of the acquired program and targets the copied program Run the inspection.

このように、プログラム実行手段からは記憶手段へのアクセスを行わず、プログラム検査手段を介して記憶手段からプログラムを取得することで、記憶装置へのアクセスが統一され、両者の間でのアクセス競合が解消される。   In this way, the program execution means does not access the storage means, and the program is acquired from the storage means via the program inspection means, so that the access to the storage device is unified, and access conflict between the two Is resolved.

本発明において、検査手段は、正常なプログラムのダイジェスト値をあらかじめ記憶しており、前記コピーされたプログラムから算出されるダイジェスト値が記憶されたダイジェスト値と一致するか否かによって、プログラムが正常であるか否かを判断することができる。   In the present invention, the inspection means stores a digest value of a normal program in advance, and the program is normal depending on whether or not the digest value calculated from the copied program matches the stored digest value. It can be determined whether or not there is.

このようなダイジェスト値として、例えば、SHA−1などのハッシュ値を用いることが好適である。また、ダイジェスト値として、MD5やCRCなどのチェックサムを用いても良い。つまり、ダイジェスト値は、プログラムデータが異なるものであれば異なる値をとることが期待されるような値であれば、任意のものを採用可能である。   As such a digest value, for example, a hash value such as SHA-1 is preferably used. Also, a checksum such as MD5 or CRC may be used as the digest value. In other words, any digest value can be used as long as it is expected to take a different value if the program data is different.

本発明は、上記処理の少なくとも一部を含むプログラム検査方法、または、これらの方法を実現するためのプログラムとして捉えることもできる。上記手段および処理の各々は可能な限り互いに組み合わせて本発明を構成することができる。   The present invention can also be understood as a program inspection method including at least a part of the above processing or a program for realizing these methods. Each of the above means and processes can be combined with each other as much as possible to constitute the present invention.

本発明によれば、検査対象プログラムが格納されている記憶装置へのアクセス競合を発生させずに、プログラム実行と並列してプログラム検査を行える。   According to the present invention, program inspection can be performed in parallel with program execution without causing access contention to the storage device storing the inspection target program.

本実施形態に係るプログラム検査システムの構成を示す図。The figure which shows the structure of the program inspection system which concerns on this embodiment. 本実施形態に係るプログラム検査システムをTrustZone(登録商標)を利用して実現した場合の構成を示す図。The figure which shows the structure at the time of implement | achieving the program test | inspection system which concerns on this embodiment using TrustZone (trademark). 本実施形態に係るプログラム検査システムをXenを利用して実現した場合の構成を示す図。The figure which shows the structure at the time of implement | achieving the program inspection system which concerns on this embodiment using Xen. 本実施形態に係るプログラム検査システムの全体的な処理の流れを示すフローチャート。The flowchart which shows the flow of the whole process of the program inspection system which concerns on this embodiment. 本実施形態に係るプログラム検査システムにおける、検査ドメインでの検査処理の流れを示すフローチャート。The flowchart which shows the flow of the inspection process in an inspection domain in the program inspection system which concerns on this embodiment. ストレージ内におけるプログラムとブロックの対応関係を説明する図。The figure explaining the correspondence of the program and block in a storage. ブロック正常状態記憶部に記憶される正常なブロックのダイジェスト値を説明する図。The figure explaining the digest value of the normal block memorize | stored in a block normal state memory | storage part.

以下に図面を参照して、この発明の好適な実施の形態を例示的に詳しく説明する。   Exemplary embodiments of the present invention will be described in detail below with reference to the drawings.

〈構成〉
図1に本実施形態に係るプログラム検査システムの構成図を示す。本実施形態は、マルチコアのCPUを有するマルチコアシステムであり、ストレージを共有している。そして、既存機能が動作する実行ドメインに加えて、並列に動作して実行ドメインを監視する検査ドメインを導入する。ドメインとは、プログラムが実行される仮想的な領域・環境を表
す。各ドメインは互いに独立しており原則として他のドメインにアクセスすることができない。ただし、ドメイン間のアクセスを制御する機構を設けることで、他のドメインに対するアクセスが許可されたドメインを設けることができる。ここで、検査ドメイン20は、改ざんなどの攻撃を受けないことが望まれるので、物理的な攻撃や他のドメインからの攻撃を受けないようにセキュアなドメインとして構築する。
<Constitution>
FIG. 1 shows a configuration diagram of a program inspection system according to the present embodiment. The present embodiment is a multi-core system having a multi-core CPU and shares storage. Then, in addition to the execution domain in which the existing functions operate, a test domain that operates in parallel and monitors the execution domain is introduced. A domain represents a virtual area / environment in which a program is executed. Each domain is independent of each other and, as a general rule, cannot access other domains. However, by providing a mechanism for controlling access between domains, it is possible to provide a domain in which access to other domains is permitted. Here, since it is desired that the inspection domain 20 is not subjected to attacks such as tampering, the inspection domain 20 is constructed as a secure domain so as not to receive physical attacks or attacks from other domains.

本実施形態では、プログラムを実行する環境である実行ドメインと、ストレージへのアクセスおよびプログラムの検査を行う検査ドメインの少なくとも2つのドメインを備える。実行ドメインが本発明におけるプログラム実行手段に相当し、検査ドメインが本発明におけるプログラム検査手段に相当する。   The present embodiment includes at least two domains: an execution domain that is an environment for executing a program, and an inspection domain that performs storage access and program inspection. The execution domain corresponds to the program execution means in the present invention, and the inspection domain corresponds to the program inspection means in the present invention.

本実施形態では、実行ドメイン10からストレージ30に対する直接のアクセスが禁止される。そこで、実行ドメイン10からストレージ30にアクセスする場合には、デバイスドライバ12は、検査ドメイン20にストレージ30へのアクセス要求を転送して、検査ドメイン20を介してストレージへアクセスする。   In this embodiment, direct access from the execution domain 10 to the storage 30 is prohibited. Therefore, when accessing the storage 30 from the execution domain 10, the device driver 12 transfers an access request to the storage 30 to the inspection domain 20 and accesses the storage via the inspection domain 20.

なお、このような複数のドメインから構成されるマルチコアシステムは、例えば、ARM社のTrustZone(登録商標)技術によって実現することができる。図2に、TrustZone技術を利用して図1の構成を実現した場合の構成図を示す。この場合、TrustZone技術に対応したハードウェア(CPU等)を利用して、セキュアドメインと通常ドメインを構築する。TrustZone技術は、周辺機器へのアクセス制御機能を持ち、セキュアドメイン以外はストレージへのアクセスを不可にできるため、本実施形態に好適な環境である。この場合、通常ドメイン(実行ドメイン)とセキュアドメイン(検査ドメイン)との間の通信は、ドメイン間の通信を監視する、TrustZoneモニタソフトウェアを介して行わる。   Note that such a multi-core system composed of a plurality of domains can be realized by, for example, ARM's TrustZone (registered trademark) technology. FIG. 2 shows a configuration diagram when the configuration of FIG. 1 is realized using the TrustZone technology. In this case, a secure domain and a normal domain are constructed using hardware (such as a CPU) compatible with the TrustZone technology. The TrustZone technology has a function of controlling access to peripheral devices and can make access to storage other than the secure domain impossible. Therefore, the TrustZone technology is a suitable environment for this embodiment. In this case, communication between the normal domain (execution domain) and the secure domain (inspection domain) is performed through TrustZone monitor software that monitors communication between domains.

また、仮想化技術であるXenを用いて本実施形態を構築することもできる。図3にXenを利用して図1の構成を実現した場合の構成図を示す。Xenではマルチコアシステム上で、仮想マシンを提供するXen VMM(仮想マシンモニタ)を実行し、その上で複数のOSが実行される。仮想マシンの実行単位がドメインと呼ばれ、特権的なドメインであるドメイン0と、その他のドメイン(ドメインU)が存在する。ドメイン0は、実ハードウェアへのアクセスやその他のドメインを管理するものである。ドメインUからの周辺機器へのアクセスは仮想マシンであるVMMに対して行われ、その要求はドメイン0にリダイレクトされる。そして、ドメイン0が実際の周辺機器にアクセスして、アクセス結果をドメインUへ返す。Xenでは周辺機器に対するこのようなアクセス方式を提供するので、本実施形態を構築するために利用することができる。   Moreover, this embodiment can also be constructed using Xen, which is a virtualization technology. FIG. 3 shows a configuration diagram when the configuration of FIG. 1 is realized using Xen. In Xen, a Xen VMM (virtual machine monitor) that provides a virtual machine is executed on a multi-core system, and a plurality of OSs are executed thereon. The execution unit of the virtual machine is called a domain, and there is a domain 0 that is a privileged domain and another domain (domain U). Domain 0 manages access to real hardware and other domains. Access to the peripheral device from the domain U is made to the VMM which is a virtual machine, and the request is redirected to the domain 0. Then, the domain 0 accesses the actual peripheral device and returns the access result to the domain U. Since Xen provides such an access method for peripheral devices, it can be used to construct this embodiment.

〈全体処理〉
図1における各機能部の役割を、処理の流れとともに説明する。図4は、本マルチコアシステムにおける全体処理の流れを示すフローチャートである。検査ドメイン20は、実行ドメイン10からのプログラムロード要求に応じてプログラムの検査を行うので、実行ドメインからのプログラムロード要求を待つ(ステップS10)。実行ドメイン10においてカーネル11がプログラムを実行する場合には、ストレージ30内のプログラムを取得するようデバイスドライバ12に対して要求する(ステップS11)。カーネル11からのプログラムロード要求を受けて、デバイスドライバ12は、検査ドメイン20に対してプログラムのロードを要求する(ステップS12)。なお、ストレージ30内には図6Aに示すようにブロックをまたがってプログラムが格納されているので、図6Bに示すようなプログラムとブロックの対応付けを記憶しているプログラム−ブロック変換部12aが要求されたプログラムに対応するブロックを決定する。そして、ブロックロード転送部12bが、このブロックをロードするように実行ドメイン通信部21を介して検査ドメイ
ン20に要求する。
<Overall processing>
The role of each functional unit in FIG. 1 will be described along with the flow of processing. FIG. 4 is a flowchart showing the flow of overall processing in the multi-core system. Since the inspection domain 20 inspects the program in response to the program load request from the execution domain 10, it waits for the program load request from the execution domain (step S10). When the kernel 11 executes the program in the execution domain 10, the device driver 12 is requested to acquire the program in the storage 30 (step S11). In response to the program load request from the kernel 11, the device driver 12 requests the test domain 20 to load the program (step S12). Since the program is stored across the block as shown in FIG. 6A in the storage 30, the program-block conversion unit 12a storing the correspondence between the program and the block as shown in FIG. The block corresponding to the programmed program is determined. Then, the block load transfer unit 12b requests the inspection domain 20 via the execution domain communication unit 21 to load this block.

検査ドメイン20における処理は後で詳しく説明するので、ここでは簡単に説明する。検査ドメイン20が、プログラムの要求(ブロックロードの要求)を受け付ける(ステップS13)と、ストレージドライバ22がストレージ30から要求されてブロックをロードし、取得したブロックのコピーを生成するとともに、実行ドメイン10に送信する(ステップS14)。実行ドメイン10では、要求したプログラムを受け取ると、カーネル11がこのプログラムを実行する(S15)。一方、検査ドメイン20では、コピーしたプログラムを対象にして検査を行う(ステップS16)。プログラムに異常があれば、実行ドメイン10に通知して実行ドメイン10におけるプログラムの実行を停止させる。   Since the process in the inspection domain 20 will be described in detail later, it will be briefly described here. When the inspection domain 20 receives a request for a program (block load request) (step S13), the storage driver 22 requests the storage 30 to load the block, and generates a copy of the acquired block. (Step S14). In the execution domain 10, when the requested program is received, the kernel 11 executes this program (S15). On the other hand, in the inspection domain 20, the copied program is inspected (step S16). If there is an abnormality in the program, the execution domain 10 is notified and the execution of the program in the execution domain 10 is stopped.

〈検査ドメインにおける検査処理〉
以下、検査ドメイン20における詳細な処理について、図5のフローチャートを参照して説明する。実行ドメイン通信部21が、実行ドメイン10のデバイスドライバ12からブロックロードの要求を受信すると(ステップS20)、ストレージドライバ22が、指定されたブロックをストレージ30からロードする(ステップS21)。ストレージドライバ22は、ロードしたブロックをブロックコピー生成部23に渡し(ステップS22)、ブロックコピー生成部23はロードしたブロックのコピーを検査ドメイン20内のRAM上に生成して内部で保存する(ステップS23)。また、実行ドメイン通信部21は、ロードされたコピー元のブロックを実行ドメイン10のデバイスドライバ12へ渡す(ステップS24)。上述したように、これによって実行ドメイン10でプログラムの実行が開始される。検査ドメイン20では、ブロック検査部24が、コピーされたブロックを対象として検査を行う(ステップS25)。具体的には、ブロック検査部24がコピーされたブロックのダイジェスト値を算出する。ブロック正常状態記憶部25には、図7に示すように各ブロックが正常な場合のダイジェスト値が格納されているので、ブロック検査部24は算出したダイジェスト値をブロック正常状態記憶部25に格納されているダイジェスト値を比較することで、ストレージ30内のブロックが正常であるか否か判断する。ロードしたブロックが正常である場合(S26−YES)は、検査処理を終了し次のブロックロード要求を待つ。一方、ロードしたブロックのダイジェスト値が記憶されている値と異なり異常である場合(S26−NO)は、ブロック検査部24から検査ドメインメッセージ受信部13に対して、その旨の通知を行う。実行ドメイン10では、この通知を受けた場合は、プログラムの実行を停止する。
<Inspection process in inspection domain>
Hereinafter, detailed processing in the inspection domain 20 will be described with reference to the flowchart of FIG. When the execution domain communication unit 21 receives a block load request from the device driver 12 of the execution domain 10 (step S20), the storage driver 22 loads the designated block from the storage 30 (step S21). The storage driver 22 passes the loaded block to the block copy generation unit 23 (step S22), and the block copy generation unit 23 generates a copy of the loaded block on the RAM in the inspection domain 20 and stores it internally (step S22). S23). The execution domain communication unit 21 passes the loaded copy source block to the device driver 12 of the execution domain 10 (step S24). As described above, this starts program execution in the execution domain 10. In the inspection domain 20, the block inspection unit 24 performs inspection on the copied block (step S25). Specifically, the block inspection unit 24 calculates the digest value of the copied block. Since the digest value when each block is normal is stored in the block normal state storage unit 25 as shown in FIG. 7, the block inspection unit 24 stores the calculated digest value in the block normal state storage unit 25. It is determined whether or not the block in the storage 30 is normal by comparing the digest values. If the loaded block is normal (S26-YES), the inspection process is terminated and the next block load request is awaited. On the other hand, when the digest value of the loaded block is abnormal, unlike the stored value (S26-NO), the block inspection unit 24 notifies the inspection domain message reception unit 13 to that effect. When the execution domain 10 receives this notification, the execution of the program is stopped.

〈本実施形態の作用・効果〉
本実施形態においては、実行ドメインがプログラムを実行すると同時に、そのプログラムが検査ドメイン内でコピーされるので、検査ドメインから検査のために再度ストレージにアクセスする必要が無くなる。すなわち、ストレージに対するアクセスは一度だけであるため実行ドメインと検査ドメインとの間でアクセス競合が生じず、検査に伴う実行ドメインへの影響を最小限とすることができる。本実施形態では、検査ドメインにおいてロードしたプログラムのコピーをRAM上に生成するオーバヘッドが生じる。しかし、一般にRAMへの操作時間はストレージに対する操作時間よりも小さいため、コピーによるオーバヘッドは小さい。
<Operation and effect of this embodiment>
In this embodiment, since the execution domain executes the program and the program is copied in the inspection domain, it is not necessary to access the storage again for the inspection from the inspection domain. That is, since access to the storage is performed only once, there is no access contention between the execution domain and the inspection domain, and the influence on the execution domain due to the inspection can be minimized. In this embodiment, an overhead is generated in which a copy of the program loaded in the inspection domain is generated on the RAM. However, since the operation time for the RAM is generally shorter than the operation time for the storage, the overhead due to copying is small.

また、TrustZoneやXenなどの仮想化技術により、実行ドメインのカーネルやデバイスドライバに変更を加えずに、下位層を制御することで実行ドメインからストレージへのアクセス要求を検査ドメインにリダイレクトできる。すなわち、実行環境側のプログラムを変更することなく、検査ドメインのみを追加することによってプログラムの検査が行える。   Further, by using a virtualization technology such as TrustZone or Xen, an access request from the execution domain to the storage can be redirected to the inspection domain by controlling the lower layer without changing the kernel or device driver of the execution domain. That is, the program can be inspected by adding only the inspection domain without changing the program on the execution environment side.

10 実行ドメイン
11 カーネル
12 デバイスドライバ
13 検査ドメインメッセージ受信部
20 検査ドメイン
21 実行ドメイン通信部
22 ストレージドライバ
23 ブロックコピー生成部
24 ブロック検査部
25 ブロック正常状態記憶部
30 ストレージ
DESCRIPTION OF SYMBOLS 10 Execution domain 11 Kernel 12 Device driver 13 Inspection domain message receiving unit 20 Inspection domain 21 Execution domain communication unit 22 Storage driver 23 Block copy generation unit 24 Block inspection unit 25 Block normal state storage unit 30 Storage

Claims (4)

プログラムを格納する記憶手段と、
前記プログラムを実行するプログラム実行手段と、
前記プログラムを検査する検査手段と、
を有し、前記プログラムの検査と実行をマルチコアシステムにより並列に実行するプログラム検査システムであって、
前記プログラム実行手段は、前記記憶手段からプログラムを読み出す際に、前記記憶手段に直接アクセスせずに、前記検査手段に対してプログラムの取得を要求し、
前記検査手段は、前記プログラム実行手段からのプログラムの取得要求に応じて前記記憶手段からプログラムを取得して前記プログラム実行手段へ送信するとともに、当該プログラムのコピーを作成してコピーされたプログラムを対象に検査を実行する
ことを特徴とするプログラム検査システム。
Storage means for storing the program;
Program execution means for executing the program;
Inspection means for inspecting the program;
A program inspection system that executes the inspection and execution of the program in parallel by a multi-core system,
The program execution means, when reading the program from the storage means, requests acquisition of the program from the inspection means without directly accessing the storage means,
The inspection unit acquires a program from the storage unit in response to a program acquisition request from the program execution unit, transmits the program to the program execution unit, and creates a copy of the program and targets the copied program A program inspection system characterized in that the inspection is executed.
前記検査手段は、正常なプログラムのダイジェスト値をあらかじめ記憶しており、前記コピーされたプログラムから算出されるダイジェスト値が記憶されたダイジェスト値と一致するか否かによって、プログラムが正常であるか否かを判断する
ことを特徴とする請求項1に記載のプログラム検査システム。
The inspection means stores a digest value of a normal program in advance, and whether or not the program is normal depends on whether or not the digest value calculated from the copied program matches the stored digest value. The program inspection system according to claim 1, wherein:
プログラムを格納する記憶手段と、
前記プログラムを実行するプログラム実行手段と、
前記プログラムを検査する検査手段と、
を有し、前記プログラムの検査と実行をマルチコアシステムにより並列に実行するプログラム検査システムにおけるプログラム検査方法であって、
前記プログラム実行手段が、前記検査手段に対してプログラムの取得を要求するプログラム取得要求工程と、
前記検査手段が、前記プログラム実行手段からのプログラムの取得要求に応じて前記記憶手段からプログラムを取得するステップと、取得されたプログラムを前記プログラム実行手段へ送信するステップと、取得されたプログラムのコピーを作成してコピーされたプログラムを対象に検査するステップとを行う検査工程と、
を含むプログラム検査方法。
Storage means for storing the program;
Program execution means for executing the program;
Inspection means for inspecting the program;
A program inspection method in a program inspection system that executes the inspection and execution of the program in parallel by a multi-core system,
The program execution means, a program acquisition request step for requesting the inspection means to acquire a program;
The inspection unit acquiring a program from the storage unit in response to a program acquisition request from the program execution unit, a step of transmitting the acquired program to the program execution unit, and a copy of the acquired program And an inspection process for performing an inspection on a copied program
A program inspection method including:
前記検査手段には、正常なプログラムのダイジェスト値があらかじめ記憶されており、
前記検査するステップでは、前記コピーされたプログラムから算出されるダイジェスト値が記憶されたダイジェスト値と一致するか否かによって、プログラムが正常であるか否かを判断する
ことを特徴とする請求項3に記載のプログラム検査方法。
In the inspection means, a digest value of a normal program is stored in advance,
4. In the step of checking, it is determined whether or not the program is normal depending on whether or not a digest value calculated from the copied program matches a stored digest value. The program inspection method described in 1.
JP2010013445A 2010-01-25 2010-01-25 Program inspection system Pending JP2011150656A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010013445A JP2011150656A (en) 2010-01-25 2010-01-25 Program inspection system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010013445A JP2011150656A (en) 2010-01-25 2010-01-25 Program inspection system

Publications (1)

Publication Number Publication Date
JP2011150656A true JP2011150656A (en) 2011-08-04

Family

ID=44537548

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010013445A Pending JP2011150656A (en) 2010-01-25 2010-01-25 Program inspection system

Country Status (1)

Country Link
JP (1) JP2011150656A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019016281A (en) * 2017-07-10 2019-01-31 大日本印刷株式会社 Secure element, computer program, device, server and installation method of trusted application
KR20200041639A (en) * 2018-10-12 2020-04-22 현대자동차주식회사 In-vehicle software update system and method for controlling the same

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005096121A1 (en) * 2004-04-02 2005-10-13 Matsushita Electric Industrial Co., Ltd. Execution device
JP2006285738A (en) * 2005-04-01 2006-10-19 Canon Inc System for starting software for composite machine
JP2006323675A (en) * 2005-05-19 2006-11-30 Fujitsu Ltd Information processor, information processing method, and computer program
JP2007183937A (en) * 2006-01-09 2007-07-19 Samsung Electronics Co Ltd Device and method for verifying program operation of nonvolatile memory and memory card including this device
JP2009282751A (en) * 2008-05-22 2009-12-03 Toyota Infotechnology Center Co Ltd Program inspection system and method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005096121A1 (en) * 2004-04-02 2005-10-13 Matsushita Electric Industrial Co., Ltd. Execution device
JP2006285738A (en) * 2005-04-01 2006-10-19 Canon Inc System for starting software for composite machine
JP2006323675A (en) * 2005-05-19 2006-11-30 Fujitsu Ltd Information processor, information processing method, and computer program
JP2007183937A (en) * 2006-01-09 2007-07-19 Samsung Electronics Co Ltd Device and method for verifying program operation of nonvolatile memory and memory card including this device
JP2009282751A (en) * 2008-05-22 2009-12-03 Toyota Infotechnology Center Co Ltd Program inspection system and method

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019016281A (en) * 2017-07-10 2019-01-31 大日本印刷株式会社 Secure element, computer program, device, server and installation method of trusted application
KR20200041639A (en) * 2018-10-12 2020-04-22 현대자동차주식회사 In-vehicle software update system and method for controlling the same
KR102579861B1 (en) 2018-10-12 2023-09-18 현대자동차주식회사 In-vehicle software update system and method for controlling the same

Similar Documents

Publication Publication Date Title
US9176752B1 (en) Hardware-based mechanisms for updating computer systems
CN103890716B (en) For accessing the interface based on webpage of the function of basic input/output
US12032680B2 (en) Preserving confidentiality of tenants in cloud environment when deploying security services
CN110414235B (en) Active immune double-system based on ARM TrustZone
US8776245B2 (en) Executing trusted applications with reduced trusted computing base
US10353831B2 (en) Trusted launch of secure enclaves in virtualized environments
AU2017205257B2 (en) System and methods for auditing a virtual machine
US9372984B2 (en) Authenticated launch of virtual machines and nested virtual machine managers
JP4249779B2 (en) Device controller
US20130340077A1 (en) Secure cloud hypervisor monitor
US20080163212A1 (en) Paralleled management mode integrity checks
TWI667588B (en) Computing device, method and machine readable storage media for detecting unauthorized memory accesses
JP2017117443A (en) Method to increase cloud availability and silicon isolation using secure enclaves
WO2019060691A1 (en) Multicore framework for use in pre-boot environment of a system-on-chip
KR101701014B1 (en) Reporting malicious activity to an operating system
Ozaki et al. Detecting system failures with gpus and llvm
CN102122327A (en) Entering a secured computing environment using multiple authenticated code modules
Hetzelt et al. Via: Analyzing device interfaces of protected virtual machines
CN110851188A (en) Domestic PLC trusted chain implementation device and method based on binary architecture
US20160154655A1 (en) Providing a trustworthy indication of the current state of a multi-processor data processing apparatus
CN110046495B (en) Data structure measurement comparison
JP2011150656A (en) Program inspection system
US9330255B2 (en) Method and system for monitoring a computer system
KR20130051225A (en) Apparatus and method for guarantee security in heterogeneous computing environment
JP2009282751A (en) Program inspection system and method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120521

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130530

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20131008