JP2008209990A - Invalid process detection apparatus - Google Patents
Invalid process detection apparatus Download PDFInfo
- Publication number
- JP2008209990A JP2008209990A JP2007043608A JP2007043608A JP2008209990A JP 2008209990 A JP2008209990 A JP 2008209990A JP 2007043608 A JP2007043608 A JP 2007043608A JP 2007043608 A JP2007043608 A JP 2007043608A JP 2008209990 A JP2008209990 A JP 2008209990A
- Authority
- JP
- Japan
- Prior art keywords
- unauthorized
- information
- save area
- range
- memory
- 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
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
Description
本発明は、複数の割込処理が実行されるリアルタイムOSにおける不正プロセスを検出する不正プロセス検出装置に関する。 The present invention relates to an unauthorized process detection device that detects an unauthorized process in a real-time OS in which a plurality of interrupt processes are executed.
従来、複数のプロセス(タスク)をリアルタイムに実行できるリアルタイムOSは、制御系システム、コンピュータ等のワンチップマイコンに多く使用されており、近年、これに対する要求も高まる傾向にある。さらに、このリアルタイムOSは、種々様々なデータ等を扱うマルチメディアシステムに対応することも要求されている。 Conventionally, a real-time OS capable of executing a plurality of processes (tasks) in real time has been widely used in one-chip microcomputers such as control systems and computers, and in recent years, there has been a growing demand for such OSs. Furthermore, this real-time OS is also required to be compatible with a multimedia system that handles various data.
リアルタイムOSの具体的な動作は、CPUがプログラムの実行中に新しいプログラムが割込処理が入ると、実行途中のプログラムのアドレスと処理結果等の値をメモリの退避領域(レジスタ)に退避させる。このレジスタには、計算用等に使える汎用レジスタと使用目的が決まっている専用レジスタ、プログラムカウンタ、フラグレジスタ、スタックポインタ等がある。例えば、プログラムカウンタには、次にどのアドレス(旧プログラムの実行途中のアドレスの次のアドレス)の命令を読み込むかが記憶され、汎用レジスタには、旧プログラムの実行途中の処理結果が記憶される。新プログラムが実行された後、退避領域に書き込まれたメモリ番地と処理結果を読み出し、この番地と処理結果から旧プログラムの処理を実行する。 As for the specific operation of the real-time OS, when a new program is interrupted while the CPU is executing the program, the address of the program being executed and the value of the processing result are saved in a save area (register) of the memory. These registers include general-purpose registers that can be used for calculation and dedicated registers, program counters, flag registers, stack pointers, and the like whose purpose of use has been determined. For example, the program counter stores which address (the address next to the address during execution of the old program) is read next, and the general-purpose register stores the processing result during execution of the old program. . After the new program is executed, the memory address and processing result written in the save area are read out, and the processing of the old program is executed from this address and processing result.
一方、システムの開発にあっては、CPUにICE(In Circuit Emulator)を接続することにより外部バスを監視し、不正アクセス等のバグを検出するデバッグ処理を行っていた。しかし、昨今の組み込みシステムに使用されるCPUは、高速動作と周辺デバイスを同一パッケージに取り込む関係からICEが接続できなくなってきている。また、その代用として、デバック処理を行う方法としてJTAGシステム(CPUに内蔵されたデバッグ機能を利用したエミュレータ)がある。しかし、このJTAGシステムでは、CPU自体がハングした場合にはCPUの内部情報を読み出すことができない。
このように、リアルタイムOSのシステムでは、バグの検出、つまり不正プロセス(タスク)を特定するのが困難であった。
On the other hand, in the development of a system, an external bus is monitored by connecting an ICE (In Circuit Emulator) to the CPU, and debugging processing is performed to detect bugs such as unauthorized access. However, CPUs used in recent embedded systems have become unable to connect ICE due to the high speed operation and the relationship of taking peripheral devices into the same package. As an alternative, there is a JTAG system (an emulator using a debugging function built in the CPU) as a method for performing a debugging process. However, in this JTAG system, when the CPU itself hangs, the internal information of the CPU cannot be read.
As described above, in the real-time OS system, it is difficult to detect bugs, that is, to identify an unauthorized process (task).
そこで、特許文献1,2に記載されるようなバグ検出装置がある。
文献1には、バス監視装置にアドレス範囲を設定し、このアドレスにアクセスされることを不正として診断する故障診断装置が開示されており、文献2には、スタック領域アドレスの上限と下限を設定し、退避される情報が前記アドレスを超えた際に、スタックオーバーフローとして検出するスタックオーバーフロー検出回路が開示されている。
Document 1 discloses a failure diagnosis device that sets an address range in the bus monitoring device and diagnoses that access to this address is illegal. Document 2 sets the upper and lower limits of the stack area address. However, a stack overflow detection circuit that detects a stack overflow when the saved information exceeds the address is disclosed.
前記各文献に記載の装置では、バスの挙動をハード的に監視することは可能であるが、その原因がソフトウェアにある場合、不正アクセスしたプロセスまたは、スタックオーバーフローをしたプロセスを特定することは困難であった。 In the devices described in the above documents, it is possible to monitor the behavior of the bus in hardware, but when the cause is in the software, it is difficult to identify the process that has been illegally accessed or the process that has caused the stack overflow. Met.
本発明は、上述した課題に鑑なみてなされたもので、不正プロセスを容易に特定することのできる不正プロセス検出装置を提供することを目的とする。 The present invention has been made in view of the above-described problems, and an object thereof is to provide an unauthorized process detection device that can easily identify an unauthorized process.
上述した課題を解決するために、請求項1に記載の発明は、複数のプロセスの処理をリアルタイムに割込処理で実行するためのリアルタイムOSが実装されたシステムであって、前記複数のプロセスを順次実行するCPUと、前記プロセスの情報を順次退避させて記憶するメモリと、プロセスの情報を切り替えるタスクスイッチと、を具備したシステムの不正プロセス検出装置において、
前記メモリの退避領域の範囲を設定する退避領域範囲設定手段と、前記退避領域に書き込み・読み出しされる前記プロセスによる情報を一時的に記憶する記憶手段と、前記情報が前記タスクスイッチによって情報が切り替られていないと判定され、および/または前記プロセスのデータ量が前記退避領域の範囲に対応したデータ量以上であると判定された場合、前記記憶手段に記憶されたプロセスを不正プロセスとする判定手段と、を備えたことを特徴とする不正プロセス検出装置を提供することにある。
In order to solve the above-described problem, the invention described in claim 1 is a system in which a real-time OS for executing processing of a plurality of processes by real-time interrupt processing is mounted, and the plurality of processes are In an unauthorized process detection device for a system, comprising: a CPU that executes sequentially; a memory that sequentially stores and stores the process information; and a task switch that switches process information.
The save area range setting means for setting the save area range of the memory, the storage means for temporarily storing information by the process written / read in the save area, and the information is switched by the task switch. A determination unit that determines that the process stored in the storage unit is an unauthorized process when it is determined that the process is not performed and / or the data amount of the process is determined to be greater than or equal to the data amount corresponding to the range of the save area And providing an unauthorized process detection device characterized by comprising:
請求項1に記載の不正プロセス検出装置は、判定手段により、プロセスによる情報がタスクスイッチによって情報が切り替られていないと判定され、および/または前記プロセスのデータ量が前記退避領域の範囲に対応したデータ量以上であると判定された場合、記憶手段に一時的に記憶されたプロセスを不正プロセスとする。これにより、不正プロセスを容易に特定することが可能となる。 The unauthorized process detection apparatus according to claim 1, wherein the determination unit determines that the information by the process has not been switched by the task switch, and / or the data amount of the process corresponds to the range of the save area If it is determined that the data amount is exceeded, the process temporarily stored in the storage means is regarded as an unauthorized process. This makes it possible to easily identify an unauthorized process.
請求項2に記載の発明は、複数のプロセスの処理をリアルタイムに割込処理で実行するためのリアルタイムOSが実装されたシステムであって、前記複数のプロセスを順次実行するCPUと、前記CPUで次に実行されるプロセスのアドレスを記憶するプログラムカウンタと、前記プロセスの情報を順次退避させて記憶するメモリと、を具備したシステムの不正プロセス検出装置において、
前記メモリの退避領域の範囲を設定する退避領域範囲設定手段と、前記退避領域に書き込み・読み出しされる前記プロセスによる情報を一時的に記憶する記憶手段と、
前記プログラムカウンタに記憶されたアドレスに対応した次に実行されるプロセスに一致しない情報が、前記退避領域に対して書き込み・読み出しが行われると判定され、および/または前記プロセスのデータ量が前記退避領域の範囲に対応したデータ量以上であると判定された場合、前記記憶手段に記憶されたプロセスを不正プロセスとする判定手段と、を備えたことを特徴とする不正プロセス検出装置を提供することにある。
The invention according to claim 2 is a system in which a real-time OS for executing processing of a plurality of processes by interrupt processing in real time is mounted, and a CPU that sequentially executes the plurality of processes, and the CPU In an unauthorized process detection device of a system comprising a program counter for storing an address of a process to be executed next and a memory for sequentially saving and storing the information of the process,
A save area range setting means for setting a range of the save area of the memory; a storage means for temporarily storing information by the process written / read in the save area;
It is determined that information that does not match the process to be executed next corresponding to the address stored in the program counter is written / read to / from the save area, and / or the data amount of the process is saved. To provide an unauthorized process detection device comprising: a determination unit that determines that the process stored in the storage unit is an unauthorized process when it is determined that the amount of data is greater than or equal to the range of the area. It is in.
請求項2に記載の不正プロセス検出装置は、判定手段により、プログラムカウンタに記憶されたアドレスに対応した次に実行されるプロセスに一致しない情報が、前記退避領域に対して書き込み・読み出しが行われると判定され、および/または前記プロセスのデータ量が前記退避領域の範囲に対応したデータ量以上であると判定された場合、記憶手段に一時的に記憶されたプロセスを不正プロセスとする。これにより、不正プロセスを容易に特定することが可能となる。 In the unauthorized process detection apparatus according to claim 2, information that does not match a process to be executed next corresponding to the address stored in the program counter is written to and read from the save area by the determination unit. And / or if it is determined that the data amount of the process is greater than or equal to the data amount corresponding to the range of the save area, the process temporarily stored in the storage means is regarded as an unauthorized process. This makes it possible to easily identify an unauthorized process.
請求項3に記載の発明は、複数のプロセスの処理をリアルタイムに割込処理で実行するためのリアルタイムOSが実装されたシステムであって、前記複数のプロセスを順次実行するCPUと、前記プロセスの情報を順次退避させて記憶するメモリと、前記CPUで次に実行されるプロセスのアドレスを記憶するプログラムカウンタと、を具備したシステムの不正プロセス検出装置において、
前記メモリの不正アクセスの範囲を設定する不正アクセス範囲設定手段と、前記退避領域に書き込み・読み出しされる前記プロセスによる情報を一時的に記憶する記憶手段と、前記プログラムカウンタに記憶されたアドレスが不正アクセスの範囲と判定された場合、前記記憶手段に記憶されたプロセスを不正プロセスとする判定手段と、を備えたことを特徴とする不正プロセス検出装置を提供することにある。
The invention according to claim 3 is a system in which a real-time OS for executing processing of a plurality of processes by interrupt processing in real time is mounted, wherein a CPU that sequentially executes the plurality of processes, In an unauthorized process detection apparatus for a system, comprising: a memory that sequentially saves and stores information; and a program counter that stores an address of a process to be executed next by the CPU.
An unauthorized access range setting means for setting an unauthorized access range of the memory, a storage means for temporarily storing information by the process written to and read from the save area, and an address stored in the program counter are invalid An object of the present invention is to provide an unauthorized process detection apparatus comprising: a determination unit that determines that the process stored in the storage unit is an unauthorized process when the access range is determined.
請求項3に記載の不正プロセス検出装置は、判定手段により、プログラムカウンタに記憶されたアドレスが不正アクセスの範囲と判定された場合、記憶手段に一時的に記憶されたプロセスを不正プロセスとする。これにより、不正プロセスを容易に特定することが可能となる。 According to another aspect of the present invention, when the determination unit determines that the address stored in the program counter is within the range of unauthorized access, the unauthorized process detection device sets the process temporarily stored in the storage unit as an unauthorized process. This makes it possible to easily identify an unauthorized process.
請求項4に記載の不正プロセス検出装置は、上記記載の不正プロセス検出装置において、前記判定手段によって不正プロセスと判定した場合には、前記記憶手段に記憶されたプロセスの情報を前記メモリに書き込む書込手段を備えたことを特徴とする。 The unauthorized process detection device according to claim 4, wherein in the unauthorized process detection device described above, when the determination unit determines that the process is an unauthorized process, the process information stored in the storage unit is written to the memory. It is characterized by having a fitting means.
請求項5に記載の発明は、複数のプロセスの処理をリアルタイムに割込処理で実行するためのリアルタイムOSが実装されたシステムであって、前記複数のプロセスを順次実行するCPUと、前記プロセスの情報を順次退避させて記憶するメモリと、プロセスの情報を切り替えるタスクスイッチと、前記CPUで次に実行されるプロセスのアドレスを記憶するプログラムカウンタと、を具備したシステムの不正プロセス検出装置において、
前記メモリの退避領域の範囲と不正アクセスの範囲をそれぞれ設定する退避領域範囲設定手段と、前記退避領域に書き込み・読み出しされる前記プロセスによる情報を一時的に記憶する記憶手段と、前記情報が前記タスクスイッチによって情報が切り替られていないと判定され、および/または前記プロセスのデータ量が前記退避領域の範囲に対応したデータ量以上であると判定された場合、前記記憶手段に記憶されたプロセスを不正プロセスとする第1の判定手段と、前記プログラムカウンタに記憶されたアドレスに対応した次に実行されるプロセスに一致しない情報が、前記退避領域に対して書き込み・読み出しが行われると判定され、および/または前記プロセスのデータ量が前記退避領域の範囲に対応したデータ量以上であると判定された場合、前記記憶手段に記憶されたプロセスを不正プロセスとする第2の判定手段と、前記プログラムカウンタに記憶されたアドレスが不正アクセスの範囲と判定された場合、前記記憶手段に記憶されたプロセスを不正プロセスとする第3の判定手段と、前記各判定手段のいずれかによって不正プロセスと判定した場合には、前記記憶手段に記憶されたプロセスの情報を前記メモリに書き込む書込手段と、を備えたことを特徴とする不正プロセス検出装置を提供することにある。
The invention according to
Save area range setting means for setting the save area range and unauthorized access range of the memory; storage means for temporarily storing information by the process written to and read from the save area; and When it is determined that information has not been switched by a task switch and / or the data amount of the process is determined to be greater than or equal to the data amount corresponding to the range of the save area, the process stored in the storage unit is It is determined that information that does not match a first determination unit that is an unauthorized process and a process that is executed next corresponding to an address stored in the program counter is written to or read from the save area; And / or determining that the data amount of the process is greater than or equal to the data amount corresponding to the range of the save area If it is determined that the process stored in the storage unit is an unauthorized process, and the address stored in the program counter is determined to be an unauthorized access range, the process is stored in the storage unit. A third determination unit that sets the process as an unauthorized process; and a writing unit that writes information on the process stored in the storage unit to the memory when any of the determination units determines that the process is an unauthorized process; It is another object of the present invention to provide an unauthorized process detection device characterized by comprising:
請求項5に記載の不正プロセス検出装置は、第1の判定手段により、プロセスによる情報がタスクスイッチによって情報が切り替られていないと判定され、および/または前記プロセスのデータ量が前記退避領域の範囲に対応したデータ量以上であると判定された場合、記憶手段に一時的に記憶されたプロセスを不正プロセスとする。第2の判定手段により、プログラムカウンタに記憶された次に実行されるプロセスに一致しない情報が、前記退避領域に対して書き込み・読み出しが行われると判定され、および/または前記プロセスのデータ量が前記退避領域の範囲に対応したデータ量以上であると判定された場合、記憶手段に一時的に記憶されたプロセスを不正プロセスとする。第3の判定手段により、プログラムカウンタに記憶されたアドレスが不正アクセスの範囲と判定された場合、記憶手段に一時的に記憶されたプロセスを不正プロセスとする。これにより、不正プロセスおよびその理由を容易に特定することが可能となる。
The unauthorized process detection apparatus according to
以下、図面を参照して本発明の実施の形態について詳細に説明する。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
(1) 全体構成
図1は、本発明の実施形態の不正プロセス検出装置を含むシステムの全体構成を示す図である。
システム1は、CPU10と、このCPU10とバス15を介して接続されるメモリ20とから構成されている。このシステム1はワンチップマイコンによって構成されるため、メモリ20は、不揮発性メモリのROMと揮発性メモリのRAM(いずれも図示せず)とからなる。そして、このシステム1はリアルタイムOSを実行するプログラムがメモリ20のプログラム領域に格納されており、外部からの割込処理および定期的な割込処理をリアルタイムに実行する。
メモリ20は、図2に示すメモリマップのように、プログラム領域とプロセススタック領域等の領域に分けられ、プログラム領域には、複数のプログラムが領域毎に格納されており、割込処理を実行する場合には、プログラム退避領域に書き込まれたレジスタから情報を受け、この情報中の要求により対応するプログラムが処理されるようになっている。また、メモリ20には、図示しない不正プロセス情報領域も確保されている。
なお、本実施形態の場合、例えば、プログラム領域のアドレスがaaaa〜nnnn、プロセス退避領域のアドレスがyyyy〜zzzzというように設定される。
(1) Overall Configuration FIG. 1 is a diagram showing an overall configuration of a system including an unauthorized process detection apparatus according to an embodiment of the present invention.
The system 1 includes a
The
In the present embodiment, for example, the program area address is set to aaaa to nnnn, and the process save area address is set to yyyy to zzz.
リアルタイムOSの動作を、図2〜4を参照しつつ説明する。
まず、CPU10は、図2中の左側に示すプログラムシーケンスに沿って、上側のアドレスから順に下側に向けて実行する。
その途中で、矢印aのように割込み(他のプログラムの実行要求)が発生すると、実行されていたプログラムのうち、このアドレスaaaaまでをプロセス0,アドレスaaaa+1移行をプロセス1として区切る。そして、矢印bのように実行中のデータ、戻りアドレス等をプロセス退避領域に書き込む。例えば、図3に示すように、2つのレジスタエリアがメインメモリに設定されている場合には、プロセス0に対してレジスタA,Bが書き込まれる。なお、割込みの信号には、次にCPU10に要求するプログラムのアドレス、各種条件等の情報が含まれている。
The operation of the real-time OS will be described with reference to FIGS.
First, the
In the middle of the process, when an interrupt (execution request for another program) occurs as indicated by an arrow a, the process up to this address aaaa is divided into process 0 and the transition to address aaa + 1 as process 1 in the program being executed. Then, the data being executed, the return address, etc. are written in the process save area as indicated by the arrow b. For example, as shown in FIG. 3, when two register areas are set in the main memory, registers A and B are written to process 0. The interrupt signal includes information such as an address of a program to be requested next to the
さらに、具体的には、プロセス領域に書き込まれた情報(レジスタ)は、図4に示すような構造で書き込まれる。つまり、レジスタは、戻りアドレス(アドレスaaaa+1)を示すプログラムカウンタ、CPU10の演算状態を示すフラグレジスタ(ステータスレジスタ)、割込処理の回数「1」を示すスタックレジスタ、その他の情報(例えば、プロセスをコード化したデータ)を示す汎用レジスタ、以上4個のレジスタからなる。
そして、CPU10が他のプログラムの処理を終了すると、矢印cのように、レジスタのプログラムカウンタの戻りアドレスを参照して、アドレスaaaa+1に戻り、このアドレス移行の処理を実行する。この際、レジスタに書き込まれた各情報に基づき、先のプロセス0の処理を受けた処理が再度実行される。
More specifically, information (register) written in the process area is written in a structure as shown in FIG. That is, the register includes a program counter indicating the return address (address aaa + 1), a flag register (status register) indicating the operation state of the
When the
順次、割込みが発生する度に、この処理が繰り返される。また、他のプログラムを実行中にさらに別のプログラムの割込みが発生した場合には、プロセス退避領域には2つ目のレジスタが書き込まれる。この際、レジスタ中のプログラムカウンタには他のプログラムに対応した戻りアドレスが、スタックレジスタには割込処理の回数「2」が書き込まれる。
例えば、図4では、8ビットの記憶エリアを設定した場合を記載しているため、十進数では255までの数字が書き込まれることになる。そして、別のプログラムの処理が終了すると、2個目のレジスタの情報に基づき、他のプログラムに戻って、それ以降の処理を実行する。このように、プロセス退避領域に書き込まれるレジスタは、FIFO(First In First Out)の動作を行うことになる。
This process is repeated every time an interrupt occurs. If another program interrupt occurs while another program is being executed, the second register is written in the process save area. At this time, a return address corresponding to another program is written in the program counter in the register, and the interrupt processing count “2” is written in the stack register.
For example, since FIG. 4 shows a case where an 8-bit storage area is set, numbers up to 255 are written in decimal. When the processing of another program is completed, the processing returns to the other program based on the information in the second register, and the subsequent processing is executed. Thus, the register written in the process save area performs a FIFO (First In First Out) operation.
また、プロセスの情報をレジスタとして書き込む場合、プロセスの処理言語に対応したデータを二進数に書き換えるため、プロセスを切り替える、所謂タスクスイッチを行っている。このタスクスイッチを行ってデータを変換したことも、レジスタ中の例えばフラグレジスタに書き込まれる。 In addition, when writing process information as a register, so-called task switching is performed to switch processes in order to rewrite data corresponding to the processing language of the process into binary numbers. The conversion of data by performing this task switch is also written in, for example, a flag register in the register.
(2) 不正プロセス検出装置
次に、図1に戻って本実施形態による不正プロセス検出装置について説明する。
不正プロセス検出装置30は記憶デバイス31を備えており、バス15を介してCPU10とメモリ20との間に配置されている。不正プロセス検出装置30はバス15の信号を監視するものであり、便宜上図示しているが、このシステムを構成するROM内に格納されている。
記憶デバイス31は情報を一時的に記憶するものであり、便宜上図示しているが、メモリ20内の別領域に確保される。
(2) Unauthorized Process Detection Device Next, returning to FIG. 1, the unauthorized process detection device according to the present embodiment will be described.
The unauthorized
The
(3) 処理動作
不正プロセス検出装置30の動作を、図5のフローチャートを参照しつつ説明する。
まず、装置30は、プロセス退避領域のアドレス範囲とプログラム領域の不正アドレスを設定する(ステップS1)。本実施形態の場合、前述した如く、プロセス退避領域のアドレスがyyyy〜zzzzに設定し、不正アドレスは、プログラム領域のアドレスaaaa〜nnnn以外のアドレスに設定する。また、図4に示すように、プロセス退避領域の1つのプロセスに対応したレジスタが4個の場合、そのデータ量は8ビット×4個=32ビットのデータ量となる。
(3) Processing Operation The operation of the unauthorized
First, the
次に、不正プロセス検出装置30はメモリ20からCPU10に送信されるレジスタ情報を記憶デバイス31に一時的に記憶する(ステップS2)。
さらに、不正プロセス検出装置30は、この信号の情報を判定する。つまり、信号がプロセス退避領域から送信されるレジスタの場合には、そのデータ量は32ビットとなるため、まず読み出されたレジスタが32ビット以内であるか否かを判定し、かつタスクスイッチによってレジスタの情報を書き替えているか否かを判定する(ステップS3)。
このステップS3における判定処理で「YES」の場合には、ステップS4以降の処理に移り、「NO」の場合にはCPU10に対して割込処理を発生させ(ステップS7)、記憶デバイス31に記憶されたレジスタを読み出し、メモリ20の不正プロセス情報領域に書き込む(ステップS8)。
Next, the unauthorized
Further, the unauthorized
If “YES” in the determination process in step S 3, the process proceeds to the process after step S 4. If “NO”, the
レジスタは、先に説明したように、戻りアドレスを示すプログラムカウンタ、CPU10の演算状態を示すフラグレジスタ(ステータスレジスタ)、割込処理の回数を示すスタックレジスタ、その他の情報(例えば、プロセスをコード化したデータ)を示す汎用レジスタから構成されている。このため、ユーザおよび作業者は、このレジスタ情報を参照することにより、不具合が発生した際のプロセスおよび不正状況を容易に把握することが可能となる。
また、レジスタが不正プロセス情報領域に書き込まれる際には、どのような不正(判定処理)が発生したかが分かるように、その不正をコード化させてレジスタに書き込んでおけば、より正確な不正状況が記憶される。この際、比較的下位ビットしか使用されないスタックレジスタの上位ビットに二値化されたコードを書き込んでもよい。
As described above, the register includes a program counter indicating the return address, a flag register (status register) indicating the operation state of the
In addition, when a register is written to the illegal process information area, it is more accurate if it is coded and written to the register so that it can be seen what kind of fraud (judgment processing) has occurred. The situation is remembered. At this time, the binarized code may be written in the upper bits of the stack register, which uses only relatively lower bits.
このステップS3における判定処理で否定された場合の不正は、具体的にはプロセス退避領域から読み出されたレジスタがバス15を送信する間に、その信号にノイズ等の不正信号が重畳してビット数が変化したり、バス15を介して送信される別の信号等による不具合である。この判定処理によって、正しいレジスタと間違ってCPU10が認識してしまうのを防止する。
The fraud when the determination in step S3 is negative is specifically a bit in which an illegal signal such as noise is superimposed on the signal while the register read from the process save area transmits the
一方、不正プロセス検出装置30はレジスタのプログラムカウンタに記憶された戻りアドレスがプログラム領域のアドレスであるか否か、さらにレジスタのデータ量がプロセス退避領域のレジスタのデータ量(例えば、32ビット)を超えているか否かのオーバーフローを判定する(ステップS4)。
On the other hand, the illegal
このステップS4における判定処理で「NO」の場合には、ステップS5以降の処理に移り、「YES」の場合にはCPU10に対して割込処理を発生させ、ステップS7以降の処理を行う。
このステップS4における判定処理で肯定された場合の不正は、レジスタのプログラムカウンタに記憶された戻りアドレスがプログラム領域のアドレス範囲に存在せず、或いはレジスタに何らかのノイズが重畳されてデータ量がオーバーフローしている場合等がある。特に、戻りアドレスがプログラム領域にないアドレスとなっている場合には、CPU10をハングさせる可能性がある。
If “NO” in the determination process in step S4, the process proceeds to the process after step S5. If “YES”, the
If the determination in step S4 is affirmative, the illegality is that the return address stored in the program counter of the register does not exist in the address range of the program area, or some noise is superimposed on the register and the data amount overflows. There are cases. In particular, when the return address is an address not in the program area, there is a possibility that the
さらに、不正プロセス検出装置30はメモリ20からCPU10に送信されるレジスタ情報を判定する。つまり、信号がCPU10から送信されるレジスタの場合には、そのデータ量は32ビットとなるため、まず読み出されたレジスタが32ビット以内であるか否かを判定し、かつタスクスイッチによってレジスタの情報を書き替えているか否かを判定する(ステップS5)。
このステップS5における判定処理で「YES」の場合には、ステップS6に移行して記憶デバイス31に記憶されたレジスタ情報を削除し、ステップS2以降の処理を繰り返す。一方、「NO」の場合にはCPU10に対して割込処理を発生させ、ステップS7以降の処理を行う。
Further, the unauthorized
If “YES” in the determination process in step S5, the process proceeds to step S6, the register information stored in the
(4) 実施形態の効果
上述した如く、本実施形態による不正プロセス検出装置30では、CPU10とメモリ20との間のレジスタを監視し、各種判定を行うことで不正プロセスを検出する。また、レジスタのデータ量およびタスクスイッチを判定することにより、外部からのノイズ等によって不正なレジスタが生成されているか否かが分かる。レジスタ中のプログラムカウントに記憶された戻りアドレスがプログラム領域範囲内のアドレスを指しているか否かを判定することにより、何らかの理由によりレジストの改竄が行われているか否かが分かる。
このように、この不正プロセス検出装置30は、不正プロセスを特定するだけでなく、不正情報も分かるため、システムデバック処理における不正プロセスの特定および不正原因の究明等に大いに役立てることができる。
(4) Effects of the Embodiment As described above, the unauthorized
As described above, the unauthorized
(5) 変形例
なお、前記実施形態では、不正プロセス検出装置30は、CPU10とメモリ20とからなるワンチップマイコン内に組み込まれるようにしたが、バス15の部分に信号を監視するプローブを当てて、このポローブを介して信号を外付けのパソコンで判定処理を実行するようにしてもよい。
(5) Modification In the above embodiment, the unauthorized
前記実施形態の処理動作では、ステップS3とS5の判定処理を、レジスタのデータ量が32ビット以内であるか否かの判定と、タスクスイッチによってレジスタの情報を書き替えているか否かを判定することを、アンド条件で判定した場合を例示したが、いずれかの判定が「NO」であった場合でも不正として判定するようにしてもよい。さらに、この判定処理は別々に行うようにしてもよい。 In the processing operation of the above-described embodiment, the determination processing in steps S3 and S5 is performed by determining whether or not the data amount of the register is within 32 bits and determining whether or not the register information has been rewritten by the task switch. This is exemplified by the AND condition, but it may be determined as illegal even if any of the determinations is “NO”. Further, this determination process may be performed separately.
1…システム、10…CPU、15…バス、20…メモリ、30…不正プロセス検出装置、31…記憶デバイス。 DESCRIPTION OF SYMBOLS 1 ... System, 10 ... CPU, 15 ... Bus, 20 ... Memory, 30 ... Unauthorized process detection apparatus, 31 ... Storage device.
Claims (5)
前記メモリの退避領域の範囲を設定する退避領域範囲設定手段と、
前記退避領域に書き込み・読み出しされる前記プロセスによる情報を一時的に記憶する記憶手段と、
前記情報が前記タスクスイッチによって情報が切り替えられていないと判定され、および/または前記プロセスのデータ量が前記退避領域の範囲に対応したデータ量以上であると判定された場合、前記記憶手段に記憶されたプロセスを不正プロセスとする判定手段と、を備えた
ことを特徴とする不正プロセス検出装置。 A system in which a real-time OS for executing processing of a plurality of processes in real time by interrupt processing is mounted, a CPU that sequentially executes the plurality of processes, and a memory that sequentially saves and stores information on the processes And a task switch for switching process information, in the unauthorized process detection device of the system,
Save area range setting means for setting the save area range of the memory;
Storage means for temporarily storing information by the process written to and read from the save area;
When it is determined that the information has not been switched by the task switch and / or the data amount of the process is greater than or equal to the data amount corresponding to the range of the save area, the information is stored in the storage unit An unauthorized process detection apparatus comprising: a determination unit that sets the processed process as an unauthorized process.
前記メモリの退避領域の範囲を設定する退避領域範囲設定手段と、
前記退避領域に書き込み・読み出しされる前記プロセスによる情報を一時的に記憶する記憶手段と、
前記プログラムカウンタに記憶されたアドレスに対応した次に実行されるプロセスに一致しない情報が、前記退避領域に対して書き込み・読み出しが行われると判定され、および/または前記プロセスのデータ量が前記退避領域の範囲に対応したデータ量以上であると判定された場合、前記記憶手段に記憶されたプロセスを不正プロセスとする判定手段と、を備えた
ことを特徴とする不正プロセス検出装置。 A system in which a real-time OS for executing processing of a plurality of processes by real-time interrupt processing is mounted, and a CPU that sequentially executes the plurality of processes, and an address of a process that is executed next by the CPU In an unauthorized process detection device of a system comprising a program counter for storing and a memory for sequentially saving and storing the information of the process,
Save area range setting means for setting the save area range of the memory;
Storage means for temporarily storing information by the process written to and read from the save area;
It is determined that information that does not match the next process to be executed corresponding to the address stored in the program counter is written to or read from the save area, and / or the data amount of the process is saved An unauthorized process detection apparatus comprising: a determination unit that determines that the process stored in the storage unit is an unauthorized process when it is determined that the amount of data is greater than or equal to the range of the area.
前記メモリの不正アクセスの範囲を設定する不正アクセス範囲設定手段と、
前記退避領域に書き込み・読み出しされる前記プロセスによる情報を一時的に記憶する記憶手段と、
前記プログラムカウンタに記憶されたアドレスが不正アクセスの範囲と判定された場合、前記記憶手段に記憶されたプロセスを不正プロセスとする判定手段と、を備えた
ことを特徴とする不正プロセス検出装置。 A system in which a real-time OS for executing processing of a plurality of processes in real time by interrupt processing is mounted, a CPU that sequentially executes the plurality of processes, and a memory that sequentially saves and stores information on the processes And a program counter for storing an address of a process to be executed next by the CPU,
Unauthorized access range setting means for setting a range of unauthorized access of the memory;
Storage means for temporarily storing information by the process written to and read from the save area;
An unauthorized process detection apparatus comprising: a determination unit that determines that the process stored in the storage unit is an unauthorized process when the address stored in the program counter is determined to be an unauthorized access range.
前記判定手段によって不正プロセスと判定した場合には、前記記憶手段に記憶されたプロセスの情報を前記メモリに書き込む書込手段を備えた
ことを特徴とする不正プロセス検出装置。 The unauthorized process detection device according to any one of claims 1 to 3,
An unauthorized process detection apparatus, comprising: a writing unit that writes information on a process stored in the storage unit into the memory when the determination unit determines that the process is an unauthorized process.
前記メモリの退避領域の範囲と不正アクセスの範囲をそれぞれ設定する退避領域範囲設定手段と、
前記退避領域に書き込み・読み出しされる前記プロセスによる情報を一時的に記憶する記憶手段と、
前記情報が前記タスクスイッチによって情報が切り替られていないと判定され、および/または前記プロセスのデータ量が前記退避領域の範囲に対応したデータ量以上であると判定された場合、前記記憶手段に記憶されたプロセスを不正プロセスとする第1の判定手段と、
前記プログラムカウンタに記憶されたアドレスに対応した次に実行されるプロセスに一致しない情報が、前記退避領域に対して書き込み・読み出しが行われると判定され、および/または前記プロセスのデータ量が前記退避領域の範囲に対応したデータ量以上であると判定された場合、前記記憶手段に記憶されたプロセスを不正プロセスとする第2の判定手段と、
前記プログラムカウンタに記憶されたアドレスが不正アクセスの範囲と判定された場合、前記記憶手段に記憶されたプロセスを不正プロセスとする第3の判定手段と、
前記各判定手段のいずれかによって不正プロセスと判定した場合には、前記記憶手段に記憶されたプロセスの情報を前記メモリに書き込む書込手段と、を備えた
ことを特徴とする不正プロセス検出装置。 A system in which a real-time OS for executing processing of a plurality of processes in real time by interrupt processing is mounted, a CPU that sequentially executes the plurality of processes, and a memory that sequentially saves and stores information on the processes And an unauthorized process detection device of a system comprising: a task switch for switching process information; and a program counter for storing an address of a process to be executed next by the CPU.
Save area range setting means for setting the range of the save area of the memory and the range of unauthorized access;
Storage means for temporarily storing information by the process written to and read from the save area;
When it is determined that the information has not been switched by the task switch and / or the data amount of the process is greater than or equal to the data amount corresponding to the range of the save area, the information is stored in the storage unit First determination means for setting the processed process as an unauthorized process;
It is determined that information that does not match the next process to be executed corresponding to the address stored in the program counter is written to or read from the save area, and / or the data amount of the process is saved If it is determined that the amount of data corresponding to the range of the area is greater than or equal to the second determination means for making the process stored in the storage means an unauthorized process;
If the address stored in the program counter is determined to be a range of unauthorized access, third determining means for setting the process stored in the storage means as an unauthorized process;
An unauthorized process detection apparatus comprising: a writing unit that writes information on a process stored in the storage unit into the memory when any of the determination units determines an unauthorized process.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007043608A JP2008209990A (en) | 2007-02-23 | 2007-02-23 | Invalid process detection apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007043608A JP2008209990A (en) | 2007-02-23 | 2007-02-23 | Invalid process detection apparatus |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008209990A true JP2008209990A (en) | 2008-09-11 |
Family
ID=39786265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007043608A Pending JP2008209990A (en) | 2007-02-23 | 2007-02-23 | Invalid process detection apparatus |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008209990A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014215979A (en) * | 2013-04-30 | 2014-11-17 | 大日本印刷株式会社 | Information storage medium and bytecode execution method |
-
2007
- 2007-02-23 JP JP2007043608A patent/JP2008209990A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014215979A (en) * | 2013-04-30 | 2014-11-17 | 大日本印刷株式会社 | Information storage medium and bytecode execution method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7627807B2 (en) | Monitoring a data processor to detect abnormal operation | |
US8099636B2 (en) | System and method for protecting memory stacks using a debug unit | |
US8140908B2 (en) | System and method of client side analysis for identifying failing RAM after a user mode or kernel mode exception | |
EP0664511A2 (en) | Microprocessor fault log | |
US20110271152A1 (en) | Failure management method and computer | |
EP2901281B1 (en) | Notification of address range including non-correctable error | |
US20080276129A1 (en) | Software tracing | |
KR20180018734A (en) | Memory monitoring unit | |
US20070226418A1 (en) | Processor and method for controlling processor | |
US9009537B2 (en) | Diagnostic data capture in a computing environment | |
WO2007086150A1 (en) | Memory destruction detection method and device | |
CN103853551B (en) | Detect the method that the memory of no initializtion is read | |
CN1329839C (en) | Designing method for computer CPU anti-interference | |
JP2008209990A (en) | Invalid process detection apparatus | |
US9361204B2 (en) | Generating trace data including a lockup identifier indicating occurrence of a lockup state | |
JP2009223714A (en) | Arithmetic circuit and failure analysis method of arithmetic circuit | |
CN100369009C (en) | Monitor system and method capable of using interrupt signal of system management | |
JPS60159951A (en) | Tracing system in information processing device | |
JP2014182676A (en) | Log collection device, arithmetic unit, and log collection method | |
US20100077383A1 (en) | Simulation method and storage medium for storing program | |
JP4806577B2 (en) | Trace data recording device | |
JP2015130023A (en) | Information recording device, information processor, information recording method and information recording program | |
US20060230196A1 (en) | Monitoring system and method using system management interrupt | |
JP2007156594A (en) | Program trace unit and method | |
JPH10228395A (en) | Abnormality diagnostic device for controller |