JP4611659B2 - Unauthorized access detection device, unauthorized access detection method, program - Google Patents

Unauthorized access detection device, unauthorized access detection method, program Download PDF

Info

Publication number
JP4611659B2
JP4611659B2 JP2004123352A JP2004123352A JP4611659B2 JP 4611659 B2 JP4611659 B2 JP 4611659B2 JP 2004123352 A JP2004123352 A JP 2004123352A JP 2004123352 A JP2004123352 A JP 2004123352A JP 4611659 B2 JP4611659 B2 JP 4611659B2
Authority
JP
Japan
Prior art keywords
unauthorized access
shared memory
access
interrupt
value
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.)
Expired - Fee Related
Application number
JP2004123352A
Other languages
Japanese (ja)
Other versions
JP2005309613A (en
Inventor
康彦 平林
穏敬 塚田
明 松尾
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.)
Ueda Japan Radio Co Ltd
Original Assignee
Ueda Japan Radio 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 Ueda Japan Radio Co Ltd filed Critical Ueda Japan Radio Co Ltd
Priority to JP2004123352A priority Critical patent/JP4611659B2/en
Publication of JP2005309613A publication Critical patent/JP2005309613A/en
Application granted granted Critical
Publication of JP4611659B2 publication Critical patent/JP4611659B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Description

本発明は、複数のタスクや複数の割り込み処理が実行されるリアルタイムOS上における共有メモリへの不正アクセスを検出する不正アクセス検出装置に関する。   The present invention relates to an unauthorized access detection device that detects unauthorized access to a shared memory on a real-time OS on which a plurality of tasks and a plurality of interrupt processes are executed.

マルチタスクOS上で複数のタスクや複数の割り込み処理が実行されるユーザアプリケーションにおいては、従来より割り込み処理とタスクとの間、タスクと他のタスクとの間で利用する共有メモリの排他制御が必要となる。なぜなら、仮に共有メモリへのアクセス権がないにもかかわらず不正に共有メモリへのアクセスを許可した場合、アプリケーションの誤動作が発生することがあるからである。そのため、そのような不正アクセスが実際にアプリケーションを利用する際に発生することを防止するために、ソフトウェア開発段階のデバック作業等において不正アクセスの有無を検査する必要がある。そこで、例えば特許文献1には、セマフォを用いた場合における共有メモリへの排他制御に関する不正アクセスの検出するソフトウェア支援装置が提案されている。   In a user application in which multiple tasks and multiple interrupt processes are executed on a multi-task OS, exclusive control of shared memory used between interrupt processes and tasks and between tasks and other tasks has been required. It becomes. This is because an application malfunction may occur if access to the shared memory is illegally permitted even though there is no access right to the shared memory. Therefore, in order to prevent such unauthorized access from actually occurring when using an application, it is necessary to check whether or not there is unauthorized access in a debugging operation or the like at the software development stage. Thus, for example, Patent Document 1 proposes a software support apparatus that detects unauthorized access related to exclusive control of a shared memory when a semaphore is used.

特許文献1において、ソフトウェア支援装置はユーザアプリケーション実行中にメモリアクセス命令の実行を監視し、マルチタスクOSの各共有メモリの指定情報などを格納した共有資源情報を参照して共有メモリへのアクセスを検出する。そして、ソフトウェア支援装置はOS状態テーブルのアクセスタスクIDとセマフォ獲得タスクIDとを比較することで不正アクセスを検出する。   In Patent Document 1, the software support apparatus monitors execution of a memory access instruction during execution of a user application, and accesses the shared memory by referring to shared resource information that stores designation information of each shared memory of the multitask OS. To detect. Then, the software support apparatus detects unauthorized access by comparing the access task ID in the OS state table with the semaphore acquisition task ID.

ところで、リアルタイムOS上で実行されるユーザアプリケーションでも、割り込み処理とタスクとの間で利用する共有メモリへのアクセスには、CPUの外部割り込み許可・禁止による排他制御が必要であるが、リアルタイムOS上で稼働する割り込み処理ではセマフォを利用することはできない。   By the way, even in a user application executed on the real-time OS, exclusive control by enabling / disabling the CPU external interrupt is necessary to access the shared memory used between the interrupt processing and the task. The semaphore cannot be used in the interrupt processing that runs on.

ただ、上述したように、特許文献1におけるソフトウェア支援装置は、セマフォにより制御される共有メモリへのアクセス権を持たないタスクによる不正アクセスに関しての検出方法である。したがって、特許文献1におけるソフトウェア支援装置を利用しても、リアルタイムOS上で稼働する割り込み処理とタスクとの間やタスクと他のタスクとの間で共有して使用する共有メモリへの不正アクセスは検出することができない。   However, as described above, the software support apparatus in Patent Document 1 is a detection method for unauthorized access by a task that does not have access rights to the shared memory controlled by the semaphore. Therefore, even if the software support apparatus in Patent Document 1 is used, unauthorized access to the shared memory that is shared between the interrupt processing and the task running on the real-time OS and between the task and other tasks is not possible. It cannot be detected.

特開2001−154872号公報JP 2001-154872 A

本発明は、リアルタイムOS上で稼働する割り込み処理とタスクとの間やタスクと他のタスクとの間で共有して使用する共有メモリへの不正アクセスを検出することを目的とする。   An object of the present invention is to detect unauthorized access to a shared memory that is shared and used between an interrupt process and a task operating on a real-time OS and between a task and another task.

本発明に係る不正アクセス検出装置は、共有メモリへの外部割り込みの許可または禁止制御をCPUの内蔵する割り込み制御レジスタの値に応じてコンピュータに実行させるリアルタイムOS上における、前記共有メモリへの不正アクセスを検出する不正アクセス検出装置であって、前記共有メモリへのアクセスを検知する検知手段と、前記割り込み制御レジスタ値に基づいて外部割り込み許可状態か禁止状態かを判別する状態判別手段と、判別の結果、外部割り込み許可状態の場合、前記検知手段で検知した前記共有メモリへのアクセスを不正アクセスとして検出する不正アクセス検出手段と、を備えることを特徴とする。 The unauthorized access detection apparatus according to the present invention is configured to allow unauthorized access to a shared memory on a real-time OS that causes a computer to execute control for permitting or prohibiting external interrupts to the shared memory in accordance with the value of an interrupt control register built in the CPU. An unauthorized access detection device for detecting access, detection means for detecting access to the shared memory, state determination means for determining whether the external interrupt is enabled or disabled based on the value of the interrupt control register; If it is determined that the external interrupt is permitted, an unauthorized access detecting unit that detects an access to the shared memory detected by the detecting unit as an unauthorized access is provided.

本発明によれば、状態判別手段が割り込み制御レジスタに示される特定領域の値に基づいて外部割り込み許可状態か禁止状態かを判別し、その判別の結果、外部割り込み許可状態の場合、不正アクセス検出手段が検知手段で検知した前記共有メモリへのアクセスを不正アクセスとして検出する。よって、割り込み制御レジスタの外部割り込みの許可・禁止の状態を示す特定領域の値を参照し、その値に基づいて外部割り込み許可状態であるか否かを判定することで、共有メモリへのアクセスが不正アクセスか否かを判定することができ、リアルタイムOS上で稼働する割り込み処理とタスクとの間やタスクと他のタスクとの間で共有して使用する共有メモリへの不正アクセスを容易に検出することができる。   According to the present invention, the state determination unit determines whether the external interrupt is enabled or disabled based on the value of the specific area indicated in the interrupt control register. If the result of the determination is that the external interrupt is enabled, the unauthorized access is detected. The means detects the access to the shared memory detected by the detecting means as unauthorized access. Therefore, access to the shared memory can be performed by referring to the value of the specific area indicating the external interrupt enable / disable status in the interrupt control register and determining whether the external interrupt is enabled based on the value. It is possible to determine whether or not it is unauthorized access, and it is easy to detect unauthorized access to shared memory that is shared between interrupt processing and tasks running on the real-time OS and between tasks and other tasks. can do.

本発明の実施の形態(以下、実施形態)について、以下図面を用いて説明する。   Embodiments (hereinafter, embodiments) of the present invention will be described below with reference to the drawings.

図1は、本実施形態におけるソフトウェア開発支援システムの全体構成図である。図1において、ターゲット機器10は、リアルタイムOS20を搭載するハードウェア機器である。ソフトウェア開発支援装置30は、共有メモリの不正アクセスの検出指示をリアルタイムOS20に出力する装置である。そして、ターゲット機器10とソフトウェア開発支援装置30とはRS−232CケーブルやUSBケーブルなどターゲット機器10に実装された通信手段を用いて接続される。   FIG. 1 is an overall configuration diagram of a software development support system in the present embodiment. In FIG. 1, the target device 10 is a hardware device on which a real-time OS 20 is installed. The software development support device 30 is a device that outputs an instruction to detect unauthorized access to the shared memory to the real-time OS 20. Then, the target device 10 and the software development support apparatus 30 are connected using a communication unit mounted on the target device 10 such as an RS-232C cable or a USB cable.

本実施形態では、このように構成されたソフトウェア開発支援システムにおいて、リアルタイムOS上で複数のタスクや複数の割り込み処理が実行されるユーザアプリケーションを実行した際に、共有メモリへの不正アクセスが行われるか否かを検出する。   In the present embodiment, in the software development support system configured as described above, when a user application that executes a plurality of tasks and a plurality of interrupt processes is executed on the real-time OS, unauthorized access to the shared memory is performed. Whether or not is detected.

続いて、ターゲット機器10に搭載されるリアルタイムOS20について図2に示す機能ブロック図を用いてさらに詳細に説明する。   Next, the real-time OS 20 mounted on the target device 10 will be described in more detail using the functional block diagram shown in FIG.

図2において、割り込み制御部21は、外部機器などからの外部割り込み信号を受け付けて、その割り込み信号に対応したユーザ割り込みルーチン22を起動するモジュールである。タスクスケジュール部24は、ユーザ割り込みルーチン22やユーザタスク23からのサービスルーチンコールを受けて、タスクの実行優先順位を考慮してタスクの実行スケジューリングを行い、実行可能な優先順位の一番高いタスクを実行するモジュールである。サービスルーチン群25は、タスクの生成・削除、セマフォの生成・削除・獲得・開放、イベントフラグの生成・削除・セット・ウェイトなどの各種ルーチンで構成されるプログラムコードである。サービスルーチン群25は、それぞれユーザタスク23からコールされて実行される。なお、動作を待ち状態にしないサービスルーチン、例えばタスクの生成やイベントフラグのセットなどは、ユーザ割り込みルーチン22からもコールできる。しかし、持ち状態になる可能性のあるサービスルーチン、例えばセマフォ獲得などはユーザ割り込みルーチン22からはコールすることができない。   In FIG. 2, an interrupt control unit 21 is a module that receives an external interrupt signal from an external device or the like and starts a user interrupt routine 22 corresponding to the interrupt signal. The task schedule unit 24 receives a service routine call from the user interrupt routine 22 or the user task 23, performs task execution scheduling in consideration of the task execution priority, and selects the task with the highest executable priority. The module to execute. The service routine group 25 is a program code including various routines such as task generation / deletion, semaphore generation / deletion / acquisition / release, and event flag generation / deletion / set / wait. The service routine group 25 is called from the user task 23 and executed. Note that service routines that do not wait for operation, such as task generation and event flag setting, can also be called from the user interrupt routine 22. However, a service routine that can be held, such as semaphore acquisition, cannot be called from the user interrupt routine 22.

監視対象アドレス情報受付部26は、ソフトウェア開発支援装置30から送信された監視対象アドレス情報を監視対象アドレス情報記憶部27に記録するとともに、アクセス監視部28にその監視対象アドレス情報を通知するモジュールである。ここで、監視対象アドレス情報とは、外部割り込み許可・禁止による排他制御が必要な共有メモリの各メモリアドレスやメモリアドレスパターンを示す情報のことをいう。メモリアドレスパターンとは、複数のメモリアドレスを含むアドレスグループであり、例えば、メモリアドレスが16進数で表現される場合に上位2桁が同一のメモリアドレス(10**(*:任意))を一つのグループとすると、上位2桁が同一のメモリアドレス(1000〜10ff)がそれぞれ監視対象のメモリアドレスとなる。   The monitoring target address information receiving unit 26 is a module that records the monitoring target address information transmitted from the software development support device 30 in the monitoring target address information storage unit 27 and notifies the access monitoring unit 28 of the monitoring target address information. is there. Here, the monitoring target address information refers to information indicating each memory address or memory address pattern of the shared memory that requires exclusive control by enabling / disabling external interrupts. The memory address pattern is an address group including a plurality of memory addresses. For example, when the memory address is expressed in hexadecimal, one memory address (10 ** (*: arbitrary)) having the same upper two digits is assigned. Assuming one group, memory addresses (1000 to 10 ff) having the same upper two digits are the memory addresses to be monitored.

アクセス監視部28は、一般的にはCPUに搭載されたアクセス監視コントローラ(例えば、ユーザブレークコントローラ)などで実現されるものである。そして、アクセス監視部28は、通知された監視対象アドレス情報に示されたメモリアドレスへのアクセスを監視して、そのメモリアドレスへのアクセスが発生したならばその事象をCPU内部割り込みを利用して不正アクセス検出部29に通知する。   The access monitoring unit 28 is generally realized by an access monitoring controller (for example, a user break controller) mounted on a CPU. Then, the access monitoring unit 28 monitors the access to the memory address indicated in the notified monitoring target address information, and if an access to the memory address occurs, the event is detected using a CPU internal interrupt. The unauthorized access detection unit 29 is notified.

不正アクセス検出部29は、アクセス監視部28からのアクセス通知を受けて、そのアクセスが発生する直前のCPUの割り込み制御レジスタに示される外部割り込みの許可・禁止の状態を示す領域の値に基づいて、監視対象のメモリアドレスへのアクセス発生時に外部割り込みが許可状態か禁止状態かを判別するモジュールである。そして、判別の結果、外部割り込みが許可状態の場合、外部割り込みを許可状態のまま共有メモリへのアクセスを行ったものと判断して、そのアクセスを不正アクセスと判定する。不正アクセス検出部29は、不正アクセスと判定した場合、そのアクセスが発生する直前のCPUプログラムカウンタ、つまり、その監視対象のメモリアドレスにアクセスしたプログラムの実行アドレスなど不正アクセスを行ったタスクを特定するのに必要な情報を収集して、ソフトウェア開発支援装置30に送信する。   The unauthorized access detection unit 29 receives an access notification from the access monitoring unit 28, and based on the value of the area indicating the permission / prohibition state of the external interrupt indicated in the interrupt control register of the CPU immediately before the access occurs. This module determines whether an external interrupt is enabled or disabled when an access to a monitored memory address occurs. If the external interrupt is permitted as a result of the determination, it is determined that the shared memory is accessed while the external interrupt is permitted, and the access is determined to be unauthorized access. If it is determined that the access is unauthorized, the unauthorized access detection unit 29 identifies the CPU program counter immediately before the access occurs, that is, the task that performed the unauthorized access, such as the execution address of the program that accessed the monitored memory address. Necessary information is collected and transmitted to the software development support apparatus 30.

続いて、ソフトウェア開発支援装置30について図3に示す機能ブロック図を用いて説明する。   Next, the software development support device 30 will be described with reference to the functional block diagram shown in FIG.

図3において監視対象アドレス情報入力部31は、コマンド入力による対話形式により、不正なメモリアクセスを監視する対象となる共有メモリのメモリアドレスやメモリアドレスパターンを示す管理対象アドレス情報の入力を受け付け、それらのメモリアドレスへのアクセス監視を監視対象アドレス情報受付部26に通知するユーザインタフェースである。図4に、監視対象アドレス情報入力部31において入力される管理アドレス情報の入力例を示す。   In FIG. 3, the monitoring target address information input unit 31 accepts input of management target address information indicating the memory address and memory address pattern of the shared memory to be monitored for illegal memory access in an interactive manner by command input. This is a user interface for notifying the monitoring target address information accepting unit 26 of access monitoring to the memory address. FIG. 4 shows an input example of management address information input in the monitoring target address information input unit 31.

不正アクセス検出表示部32は、不正アクセス検出部29から送信された不正アクセスを発生させたプログラムのアドレス、タスクIDおよび、アクセスしたメモリアドレスなど不正アクセスを行ったタスクを特定するのに必要な情報をモニタ等の画面に表示するモジュールである。なお、この監視対象アドレス情報入力部31および不正アクセス検出表示部32は、特別なソフトウェアではなく一般的なターミナルソフトを利用することができる。   The unauthorized access detection display unit 32 is information necessary for identifying the task that performed unauthorized access, such as the address of the program that caused the unauthorized access transmitted from the unauthorized access detection unit 29, the task ID, and the accessed memory address. Is a module that displays on a screen such as a monitor. The monitored address information input unit 31 and the unauthorized access detection display unit 32 can use general terminal software instead of special software.

本実施形態によれば、監視対象アドレス情報受付部26が受信した監視対象の共有メモリのメモリアドレスに対するアクセスをアクセス監視部28が監視する。そして、その監視対象メモリアドレスへのアクセスが発生した場合、不正アクセス検出部29が割り込み制御レジスタの特定の領域に示される値に基づいて、監視対象のメモリアドレスへの外部割り込みが許可状態か禁止状態かを判別する。その結果、外部割り込みが許可状態の場合、不正アクセス検出部29は、外部割り込みを許可状態のまま共有メモリへのアクセスを行ったものと判断して、そのアクセスを不正アクセスと判定する。   According to this embodiment, the access monitoring unit 28 monitors the access to the memory address of the monitoring target shared memory received by the monitoring target address information receiving unit 26. When an access to the monitoring target memory address occurs, the unauthorized access detection unit 29 determines whether or not external interrupt to the monitoring target memory address is permitted based on a value indicated in a specific area of the interrupt control register. Determine if it is in a state. As a result, when the external interrupt is permitted, the unauthorized access detection unit 29 determines that the shared memory is accessed while the external interrupt is permitted, and determines that the access is unauthorized access.

図5A、5B、5Cは、それぞれ本実施形態における共有メモリアクセスのプログラムの例を示す図である。   5A, 5B, and 5C are diagrams illustrating examples of shared memory access programs in the present embodiment, respectively.

図5Aは、ユーザ割り込みルーチンを示すプログラムである(以下、user_intとする)。 FIG. 5A is a program showing a user interrupt routine (hereinafter referred to as user_int ).

また、図5Bは、正常に排他制御を行って共有メモリへのアクセスを実行するプログラムである(以下、user_1taskとする)。図5Bにおいて、loc_cpu関数は、リアルタイムOSのサービスルーチンの一つであり、CPUに内蔵された割り込み制御レジスタを操作して外部割り込みを禁止状態にするサービスルーチンである。また、unl_cpu関数は、同じくリアルタイムOSのサービスルーチンの一つであり、外部割り込みを許可状態にするサービスルーチンである。したがって、user_1taskを実行すると、loc_cpu関数により共有メモリへの外部割り込みが禁止状態にされた後に、共有メモリへアクセスしてその共有メモリからデータが取り出され、データ取り出しが終了した時点でunl_cpu関数により共有メモリへの外部割り込みが許可状態に変更される。よって、user_1taskを実行しても、共有メモリの排他制御が正常に行われるため、共有メモリへの同時アクセスによってアプリケーションの誤動作が発生することはない。 FIG. 5B is a program that normally performs exclusive control and executes access to the shared memory (hereinafter referred to as user_1task ). In FIG. 5B, the loc_cpu function is one of the service routines of the real-time OS, and is a service routine that operates an interrupt control register built in the CPU and disables external interrupts. The unl_cpu function is also a service routine of the real-time OS, and is a service routine that enables external interrupts. Therefore, when user_1task is executed, the external interrupt to the shared memory is disabled by the loc_cpu function, then the shared memory is accessed and the data is taken out from the shared memory. When the data fetch is finished, the unl_cpu function is used for sharing. The external interrupt to the memory is changed to the enabled state. Therefore, even if user_1task is executed, exclusive control of the shared memory is normally performed, so that an application malfunction does not occur due to simultaneous access to the shared memory.

一方、図5Cは、排他制御を行わずに共有メモリへのアクセスを実行するプログラムであり、本実施形態ではいわゆる不正アクセスに該当するプログラムである(以下、user_2taskとする)。つまり、user_2taskを実行した場合、共有メモリへのアクセスを行う前に、共有メモリへの外部割り込みが禁止状態にされないため、user_2taskにより共有メモリへのアクセスが行われている間に、例えばuser_1taskが実行されることがある。すると、一つの共有メモリに対して2以上のタスクからアクセスが同時に実行され、共有メモリに正常にアクセスできず、データを正常に取り出せない場合がある。そこで、本実施形態では、図5Cに示すようなプログラムが実行された場合を不正アクセスとして検出して通知する。
On the other hand, FIG. 5C is a program that executes access to the shared memory without performing exclusive control. In this embodiment, the program corresponds to so-called unauthorized access (hereinafter referred to as user_2task ). In other words, when user_2task is executed, external interrupt to the shared memory is not disabled before accessing the shared memory. For example, user_1task is executed while user_2task is accessing the shared memory. May be. Then, two or more tasks are simultaneously accessed for one shared memory, the shared memory cannot be normally accessed, and data may not be extracted normally. Therefore, in this embodiment, a case where a program as shown in FIG. 5C is executed is detected as unauthorized access and notified.

ここで、図6に示すフローチャートをもとに不正アクセス検出部29での不正アクセスの判定フローについてさらに説明する。   Here, the unauthorized access determination flow in the unauthorized access detection unit 29 will be further described with reference to the flowchart shown in FIG.

まず、不正アクセス検出部29は、アクセス監視部28からのアクセス通知を受けて、処理中断点の情報として、アクセス発生直前の割り込み制御レジスタやCPU内蔵汎用レジスタの値、アクセス発生直前のプログラムカウンタの値などアクセス発生直前まで稼働していたタスクもしくは割り込み処理ルーチンの実行状況を示す情報をそれらのスタック領域に保存する(S101)。続いて、監視対象アドレス情報記憶部27に示した監視対象アドレス情報を参照して、アクセスした共有メモリのメモリアドレスが監視対象アドレス情報に示されているか否か(メモリアドレスパターンが監視対象アドレス情報に示されている場合は、そのアドレスがそのメモリアドレスパターンの示す条件と一致するか否か)を判定することで、外部割り込み許可・禁止による排他制御を必要とするアドレスであるか否かを判定する(S102)。そして、S102での判定の結果、外部割り込み許可・禁止による排他制御を必要とするメモリアドレスであった場合、スタック領域に保存したアクセス発生直前の割り込み制御レジスタの外部割り込みの許可・禁止の状態を示す領域の値を参照して、その値が外部割り込み許可状態であるか否かを判定する(S103)。   First, upon receiving an access notification from the access monitoring unit 28, the unauthorized access detection unit 29 uses the interrupt control register immediately before the occurrence of the access, the value of the general-purpose register in the CPU, and the program counter immediately before the occurrence of the access as information on the processing interruption point. Information indicating the execution status of the task or interrupt processing routine that has been running immediately before the occurrence of access, such as a value, is stored in the stack area (S101). Subsequently, referring to the monitoring target address information shown in the monitoring target address information storage unit 27, whether or not the memory address of the accessed shared memory is indicated in the monitoring target address information (the memory address pattern is the monitoring target address information). If the address matches the condition indicated by the memory address pattern), it is determined whether or not the address requires exclusive control by enabling / disabling an external interrupt. Determine (S102). If the result of determination in S102 is a memory address that requires exclusive control by external interrupt enable / disable, the external interrupt enable / disable state of the interrupt control register immediately before the occurrence of the access stored in the stack area is displayed. With reference to the value of the indicated area, it is determined whether or not the value is in the external interrupt enabled state (S103).

S103での判定の結果、外部割り込み許可状態である場合は、不正なアクセスであると判定して、スタック領域に保存したプログラムカウンタの値、アクセスメモリ番地、タスクIDなどの不正アクセスを行ったタスクを特定するための情報を不正アクセス検出表示部32に送信し(S104)、加えて不正アクセスを起こしたユーザタスクを停止状態にする(S105)。   As a result of the determination in S103, if the external interrupt is permitted, it is determined that the access is unauthorized, and the task that performed unauthorized access such as the value of the program counter stored in the stack area, the access memory address, and the task ID Is transmitted to the unauthorized access detection display unit 32 (S104), and the user task that caused the unauthorized access is suspended (S105).

そして、タスクを特定するための情報を受信した不正アクセス検出表示部32は、図7に示すように、不正アクセスを行ったタスクを特定する情報として、プログラムカウンタの値やアクセスメモリ番地、タスクIDなどを文字列としてモニタに表示する。ユーザはモニタに表示された文字列を見ることで、ユーザアプリケーションの不正アクセス動作の要因特定を即座にすることができる。   Then, the unauthorized access detection display unit 32 that has received the information for identifying the task, as shown in FIG. 7, uses the value of the program counter, the access memory address, the task ID as information for identifying the task that has performed unauthorized access. Is displayed on the monitor as a character string. The user can immediately identify the cause of the unauthorized access operation of the user application by looking at the character string displayed on the monitor.

一方、S103での判定の結果、外部割り込み禁止状態である場合は、共有メモリに対する正常なアクセスであると判定して、割り込み制御レジスタが示す値やCPU内蔵汎用レジスタが示す値、プログラムカウンタが示す値などを、S101においてスタック領域に保存しておいた値に戻し、メモリアクセスにより中断していた処理を処理中断点から再開させる(S106)。   On the other hand, if it is determined in S103 that the external interrupt is disabled, it is determined that the shared memory is normally accessed, and the value indicated by the interrupt control register, the value indicated by the CPU built-in general-purpose register, or the program counter is indicated. The value or the like is returned to the value stored in the stack area in S101, and the process interrupted by the memory access is resumed from the processing interruption point (S106).

以上、本実施形態では、不正アクセス検出部29が、割り込み制御レジスタの外部割り込みの許可・禁止の状態を示す領域の値を参照し、その値が外部割り込み許可状態であるか否かを判定することで、共有メモリへのアクセスが不正アクセスか否かを判定することができ、リアルタイムOS上で稼働する割り込み処理とタスクとの間やタスクと他のタスクとの間で共有して使用する共有メモリへの不正アクセスを容易に検出することができる。   As described above, in this embodiment, the unauthorized access detection unit 29 refers to the value of the area indicating the external interrupt permission / prohibition state in the interrupt control register, and determines whether the value is in the external interrupt permission state. Therefore, it is possible to determine whether or not the access to the shared memory is an unauthorized access, and the sharing that is shared between the interrupt processing and the task that runs on the real-time OS and between the task and another task is used. Unauthorized access to the memory can be easily detected.

また、特許文献1に開示されたような不正アクセス検出方法では、リアルタイムOSは、OSの内部イベントを逐次発生させるととともに、ソフトウェア開発支援装置は逐次そのイベントを読み取る必要があり、リアルタイムOSの処理性能が低下する恐れがあった。一方、本実施形態によれば、割り込み制御レジスタに示される値を参照するだけで、不正アクセスを検出することができるため、リアルタイムOSの処理性能の低下を低減することができる。   Further, in the unauthorized access detection method disclosed in Patent Document 1, the real-time OS needs to sequentially generate internal events of the OS, and the software development support apparatus needs to read the events sequentially. There was a risk of performance degradation. On the other hand, according to the present embodiment, since unauthorized access can be detected simply by referring to the value indicated in the interrupt control register, it is possible to reduce deterioration in processing performance of the real-time OS.

さらに、本実施形態のソフトウェア開発支援装置は、特別なソフトウェアではなく一般的なターミナルソフトを利用することができるため、一般的なパソコンで実現可能であり、ソフトウェア開発支援装置の構築費用を抑えることができる。   Furthermore, since the software development support apparatus of this embodiment can use general terminal software instead of special software, it can be realized with a general personal computer, and the construction cost of the software development support apparatus can be reduced. Can do.

本実施形態におけるソフトウェア開発支援システムの全体構成を示す図である。It is a figure which shows the whole structure of the software development assistance system in this embodiment. ターゲット機器10に搭載されるリアルタイムOS20の機能ブロックを示す図である。3 is a diagram showing functional blocks of a real-time OS 20 mounted on a target device 10. FIG. ソフトウェア開発支援装置の機能ブロックを示す図である。It is a figure which shows the functional block of a software development assistance apparatus. 本実施形態の監視対象アドレス情報入力部31において入力される監視対象アドレス情報の入力例を示す図である。It is a figure which shows the input example of the monitoring object address information input in the monitoring object address information input part 31 of this embodiment. 本実施形態のリアルタイムOS上で共有メモリへのアクセス処理を行うプログラムの一例である。It is an example of the program which performs the access process to a shared memory on real time OS of this embodiment. 本実施形態のリアルタイムOS上で共有メモリへのアクセス処理を行うプログラムの一例である。It is an example of the program which performs the access process to a shared memory on real time OS of this embodiment. 本実施形態のリアルタイムOS上で共有メモリへのアクセス処理を行うプログラムの一例である。It is an example of the program which performs the access process to a shared memory on real time OS of this embodiment. 本実施形態における不正アクセス検出部29での不正アクセスの判定フローを示すフローチャート図である。It is a flowchart figure which shows the determination flow of the unauthorized access in the unauthorized access detection part 29 in this embodiment. 本実施形態において不正アクセスを検出した際にモニタに表示される不正アクセスを行ったタスクを特定するための情報の一例である。It is an example of the information for specifying the task which performed unauthorized access displayed on a monitor when unauthorized access is detected in this embodiment.

符号の説明Explanation of symbols

10 ターゲット機器、20 リアルタイムOS、21 割り込み制御部、22 ユーザ割り込みルーチン、23 ユーザタスク、24 タスクスケジュール部、25 サービスルーチン群、26 監視対象アドレス情報受付部、27 監視対象アドレス情報記憶部、28 アクセス監視部、29 不正アクセス検出部、30 ソフトウェア開発支援装置、31 監視対象アドレス情報入力部、32 不正アクセス検出表示部。   10 target device, 20 real-time OS, 21 interrupt control unit, 22 user interrupt routine, 23 user task, 24 task schedule unit, 25 service routine group, 26 monitoring target address information receiving unit, 27 monitoring target address information storage unit, 28 access Monitoring unit, 29 Unauthorized access detection unit, 30 Software development support device, 31 Monitoring target address information input unit, 32 Unauthorized access detection display unit.

Claims (3)

共有メモリへの外部割り込みの許可または禁止制御をCPUの内蔵する割り込み制御レジスタの値に応じてコンピュータに実行させるリアルタイムOS上における、前記共有メモリへの不正アクセスを検出する不正アクセス検出装置であって、
前記共有メモリへのアクセスを検知する検知手段と、
前記割り込み制御レジスタ値に基づいて外部割り込み許可状態か禁止状態かを判別する状態判別手段と、
判別の結果、外部割り込み許可状態の場合、前記検知手段で検知した前記共有メモリへのアクセスを不正アクセスとして検出する不正アクセス検出手段と、
を備えることを特徴とする不正アクセス検出装置。
An unauthorized access detection device that detects unauthorized access to a shared memory on a real-time OS that allows a computer to execute control to enable or prohibit external interrupts to the shared memory in accordance with the value of an interrupt control register built in the CPU. And
Detecting means for detecting access to the shared memory;
State determining means for determining whether the external interrupt is enabled or disabled based on the value of the interrupt control register;
As a result of the determination, in the case of an external interrupt permission state, unauthorized access detection means for detecting access to the shared memory detected by the detection means as unauthorized access;
An unauthorized access detection device comprising:
共有メモリへの外部割り込みの許可または禁止制御をCPUの内蔵する割り込み制御レジスタの値に応じてコンピュータに実行させるリアルタイムOS上における、前記共有メモリへの不正アクセスを検出する不正アクセス検出方法であって、前記コンピュータが実行する工程として、
前記共有メモリへのアクセスを検知する検知工程と、
前記割り込み制御レジスタ値に基づいて外部割り込み許可状態か禁止状態かを判別する状態判別工程と、
判別の結果、外部割り込み許可状態の場合、前記検知工程で検知した前記共有メモリへのアクセスを不正アクセスとして検出する不正アクセス検出工程と、
を含むことを特徴とする不正アクセス検出方法。
This is an unauthorized access detection method for detecting unauthorized access to the shared memory on a real-time OS that allows a computer to execute control for permitting or prohibiting external interrupts to the shared memory in accordance with the value of an interrupt control register built in the CPU. As a step executed by the computer,
A detection step of detecting access to the shared memory;
A state determination step of determining whether the external interrupt is enabled or disabled based on the value of the interrupt control register;
As a result of determination, in the case of an external interrupt permission state, an unauthorized access detection step of detecting access to the shared memory detected in the detection step as unauthorized access;
An unauthorized access detection method comprising:
コンピュータを用いて、共有メモリへの外部割り込みの許可または禁止制御をCPUの内蔵する割り込み制御レジスタの値に応じて前記コンピュータに実行させるリアルタイムOS上における、前記共有メモリへの不正アクセスを検出するためのプログラムであって、
前記共有メモリへのアクセスを検知する検知ステップと、
前記割り込み制御レジスタ値に基づいて外部割り込み許可状態か禁止状態かを判別する状態判別ステップと、
判別の結果、外部割り込み許可状態の場合、前記検知ステップで検知した前記共有メモリへのアクセスを不正アクセスとして検出する不正アクセス検出ステップと、
前記コンピュータに実行させることを特徴とするプログラム。
Using a computer , detection of unauthorized access to the shared memory on a real-time OS that allows the computer to execute control to permit or prohibit external interrupts to the shared memory in accordance with the value of an interrupt control register built in the CPU A program for
A detection step of detecting access to the shared memory;
A state determination step of determining whether the external interrupt is enabled or disabled based on the value of the interrupt control register;
As a result of the determination, in the case of an external interrupt enabled state, an unauthorized access detection step for detecting access to the shared memory detected in the detection step as unauthorized access;
A program characterized by causing the computer to perform the.
JP2004123352A 2004-04-19 2004-04-19 Unauthorized access detection device, unauthorized access detection method, program Expired - Fee Related JP4611659B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004123352A JP4611659B2 (en) 2004-04-19 2004-04-19 Unauthorized access detection device, unauthorized access detection method, program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004123352A JP4611659B2 (en) 2004-04-19 2004-04-19 Unauthorized access detection device, unauthorized access detection method, program

Publications (2)

Publication Number Publication Date
JP2005309613A JP2005309613A (en) 2005-11-04
JP4611659B2 true JP4611659B2 (en) 2011-01-12

Family

ID=35438364

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004123352A Expired - Fee Related JP4611659B2 (en) 2004-04-19 2004-04-19 Unauthorized access detection device, unauthorized access detection method, program

Country Status (1)

Country Link
JP (1) JP4611659B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7769964B2 (en) * 2006-08-21 2010-08-03 Intel Corporation Technique to perform memory reference filtering
JPWO2023119652A1 (en) * 2021-12-24 2023-06-29

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09319613A (en) * 1996-03-29 1997-12-12 Toshiba Corp Device and method for supporting program development
JP2000339189A (en) * 1999-05-28 2000-12-08 Nec Microcomputer Technology Ltd Method for detecting illegal memory access debugging device and storage medium
JP2001117791A (en) * 1999-10-18 2001-04-27 Denso Corp Interruption instruction checker and recording medium

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09319613A (en) * 1996-03-29 1997-12-12 Toshiba Corp Device and method for supporting program development
JP2000339189A (en) * 1999-05-28 2000-12-08 Nec Microcomputer Technology Ltd Method for detecting illegal memory access debugging device and storage medium
JP2001117791A (en) * 1999-10-18 2001-04-27 Denso Corp Interruption instruction checker and recording medium

Also Published As

Publication number Publication date
JP2005309613A (en) 2005-11-04

Similar Documents

Publication Publication Date Title
EP2431876B1 (en) Method and device for exception handling in embedded system
JP5905904B2 (en) Controlling debug exception generation
US7730249B2 (en) Device control apparatus that calls an operating system to control a device
JP6615726B2 (en) Information processing apparatus, information processing method, and program
US20070266435A1 (en) System and method for intrusion detection in a computer system
KR101701014B1 (en) Reporting malicious activity to an operating system
KR20130031860A (en) System testing method
JP2007249323A (en) Microcomputer
EP3144813A1 (en) Information-processing device, information-processing monitoring method, program, and recording medium
TWI678615B (en) Debugging in a data processing apparatus
CN103561045A (en) Safety monitoring system and method for Android system
JP2005539322A5 (en)
JP2020520037A (en) Computer with isolated user computing section
RU2606565C2 (en) Firmware agent
WO2010032330A1 (en) Information processing device and its memory protection method
US20160335439A1 (en) Method and apparatus for detecting unsteady flow in program
JP4611659B2 (en) Unauthorized access detection device, unauthorized access detection method, program
US6785883B1 (en) Software system for tracing data
JP2015166952A (en) Information processor, information processing monitoring method, program and recording medium
JPH02294739A (en) Fault detecting system
KR20110057297A (en) Dynamic analyzing system for malicious bot and methods therefore
JP2005234744A (en) Multiprocessor system and failure processing method
JP2010015364A (en) Multiprocessor system and information processor
WO2007094460A1 (en) Parallel processing device and exclusive access control
JP5997005B2 (en) Information processing apparatus, process normal end determination method, and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070328

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100413

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100528

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: 20101012

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101014

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131022

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees