JPH0922369A - マルチタスキング方式のカーネルにおける不正動作検出方法 - Google Patents

マルチタスキング方式のカーネルにおける不正動作検出方法

Info

Publication number
JPH0922369A
JPH0922369A JP7172020A JP17202095A JPH0922369A JP H0922369 A JPH0922369 A JP H0922369A JP 7172020 A JP7172020 A JP 7172020A JP 17202095 A JP17202095 A JP 17202095A JP H0922369 A JPH0922369 A JP H0922369A
Authority
JP
Japan
Prior art keywords
user
task
identifier
memory
debugger
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.)
Withdrawn
Application number
JP7172020A
Other languages
English (en)
Inventor
Hideji Masuda
秀二 増田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP7172020A priority Critical patent/JPH0922369A/ja
Publication of JPH0922369A publication Critical patent/JPH0922369A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【目的】 ソフト的にメモリへの不正な書替え動作を検
出し、該不正書替え動作をしたタスク、処理を突き止め
る。 【構成】 利用者タスクを起動するタスクディスパッチ
処理及び利用者割込み処理への制御転送処理を実行する
マルチタスキング方式のカーネルにおける不正動作検出
方法において、保存手段1cは予め監視対象メモリ空間
1aの内容を保存メモリ空間1bに保存し、比較手段1
dは、利用者タスクの起動、利用者タスクの処理終了、
利用者割込み処理の起動、利用者割込み処理終了のそれ
ぞれにおいて、監視対象メモリ空間1aのメモリ内容と
メモリ1bに保存してあるメモリ内容とが一致している
か調べ、不正動作検出手段1eはメモリ内容の変化に基
づいて利用者タスク又は利用者割込み処理によるメモリ
書替え不正動作を識別する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は不正動作検出方法に係わ
り、特に利用者タスクを起動するタスクディスパッチ処
理及び利用者割込み処理への制御転送処理を実行するマ
ルチタスキング方式のカーネルにおける不正動作検出方
法に関する。近年の通信制御装置では組み込み型のO/
S(オペレーティングシステム)を使用してソフトウェ
アで処理を行うのが常識となっている。このような通信
装置では汎用CPUを使用し、O/Sはリアルタイム性
や高速応答性が要求されることから、イベントドリブン
型のマルチタスキング処理が可能なカーネルが主流であ
る。組み込み型のO/Sにおいてもソフトウェアデバッ
グのためにデバッガが用意されているのが普通であり、
デバッガの機能が充実していればソフト開発の効率化が
可能となり、十分な試験を実施できることから装置の信
頼性も向上する。本発明は、マルチタスク方式で最も厄
介なバグの一つである、処理に無関係なタスクによるメ
モリの不正な書き替え等の検出方式に関するものであ
り、ディスパッチ処理において不正な動作の検出を行う
ため、特別なハードウェア機構を必要としない点が特徴
である。
【0002】
【従来の技術】マルチタスキング処理においては、複数
のタスクが同時に動いて処理を実行する。かかるマルチ
タスキングによるデバッグ中に、O/Sにより共通に管
理されている資源、例えばメモリの内容が不正に書き替
えられることがある。かかる場合には、メモリを書き替
えたタスクを発見する必要があるが、多数のタスクが並
行して動作しているためソフト的にその発見をするのが
難しかった。すなわち、不正にメモリの書き替えが行わ
れた場合、書き替えられたアドレスに対するアクセスを
ソフトのみで検出する手段はなかった。このため、従来
は、CPUのバス状態を監視するハードウェアを設け、
該ハードウェアにより特定アドレスのアクセスを検出
し、NMI割り込み等でソフトに通知する機構を設けて
特定アドレスに対してアクセスが行われたことを検出し
ている。
【0003】O/Sが管理するオブジェクト(セマフ
ォ、メールボックス、イベントフラグ等)に対する不正
操作についても同様であり、ソフト的にオブジェクトに
不正操作したタスクを発見するのが難しかった。このた
め、オブジェクトを管理しているメモリに対して前述の
ハードウェアにより不正な書き込みを行っている利用者
タスクや利用者割込み処理を突き止める方法でデバッグ
を行っている。尚、システムコール・トレース機能を有
するO/Sの場合には、トレース情報の解析により不正
な操作を行っている処理を見つけることが行われてい
る。
【0004】
【発明が解決しようとする課題】しかし、上記従来の方
法では以下の問題点がある。すなわち、 ハードウェアによるメモリアクセス検出法は、メモリ
不正書替え動作を行ったタスクや処理を発見するための
周辺回路が複雑で高価になる問題がある。 又、ハードウェアによるメモリアクセス検出法は、メ
モリプールの空き領域のようにダイナミックに変化する
領域の不正書き込みに対処できない問題がある。これ
は、メモリプールの場合空き領域のアドレスが変化し、
予め監視すべき領域(アドレス)を特定できないからで
ある。 更に、ハードウェアによるメモリアクセス検出法で
は、オブジェクトに対する正当なアクセスも検出してし
まう問題がある。すなわち、所定のオブジェクトに対す
る操作が許されている利用者タスクや利用者割込み処理
からの正当なアクセスをも検出する。このため、アクセ
ス資格との連携による不正アクセスのみの検出が要望さ
れている。 不正なオブジェクト操作をトレース情報で検出する方
法は、バグの発生状況によっては必要なトレース情報が
失われて(トレース領域サイズ不足により)、原因が究
明できない問題がある。 又、トレース情報が多いと不正な操作を行っている部
分を見つけるのに手間がかかる問題がある。
【0005】以上から本発明の第1の目的は、メモリへ
の不正な書替え動作をソフト的に検出できる不正動作検
出方法を提供することである。本発明の第2の目的は、
メモリプールの空き領域のようにダイナミックに変化す
るメモリ領域の不正書替え動作を検出できる不正動作検
出方法を提供することである。本発明の第3の目的は、
入出力装置に対する不正のアクセス動作を検出できる不
正動作検出方法を提供することである。本発明の第4の
目的は、アクセス資格との連携によりオブジェクトに対
する不正な操作を検出できる不正動作検出方法を提供す
ることである。
【0006】
【課題を解決するための手段】前記第1の目的は本発明
によれば、図1に示すように、予め設定されている監視
対象メモリ空間1aの内容を別のメモリ空間1bに保存
する手段1cと、利用者タスクの起動、利用者タスクの
処理終了、利用者割込み処理の起動、利用者割込み処理
終了のそれぞれにおいて、監視対象メモリ空間1aのメ
モリ内容とメモリ空間1bに保存してあるメモリ内容と
が一致しているか調べる手段1dと、メモリ内容の変化
に基づいて所定の利用者タスク又は利用者割込み処理に
よるメモリ書替え不正動作を識別する手段1eとにより
達成される。・・・請求項1
【0007】前記第2の目的は、本発明によれば、監視
対象メモリにおける各空き領域の内容を保存する手段
と、利用者タスクの起動、利用者タスクの処理終了、利
用者割込み処理の起動、利用者割込み処理終了のそれぞ
れにおいて、各空き領域の内容と保存してある各空き領
域の内容とが一致しているか調べる手段と、少なくとも
1つの空き領域における内容変化に基づいて所定の利用
者タスク又は利用者割込み処理によるメモリ書替え不正
動作を識別する手段とにより達成される。・・・請求項
11
【0008】前記第3の目的は、本発明によれば、図2
に示すように、予め、監視対象である入出力装置のアド
レスAIOと、該入出力装置にアクセス可能な利用者タ
スクあるいは利用者割込み処理を特定するアクセス資格
AQRとをそれぞれ設定する手段2aと、利用者タスク
あるいは利用者割込み処理からカーネルの有する入出力
処理機能がコールされた時、該コール要求に含まれる入
出力アドレスと前記設定されているアドレスとを比較す
る第1の比較手段2bと、一致している場合には、該コ
ール要求を発行した利用者タスクあるいは利用者割込み
処理の識別子と前記アクセス資格AQRとを比較する第
2の比較手段2cと、識別子とアクセス資格の不一致に
基づいて、入出力装置に対する利用者タスクあるいは利
用者割込み処理の不正アクセスを識別する手段2dとに
より達成される。・・・請求項4
【0009】前記第4の目的は、本発明によれば、図3
に示すように、予め、監視対象オブジェクトの識別子I
DOと該オブジェクトの操作が可能な利用者タスクある
いは利用者割込み処理を特定するアクセス資格AQRと
をそれぞれ設定する手段3aと、利用者タスクあるいは
利用者割込み処理からカーネルにオブジェクト操作が要
求された時、該操作要求に含まれるオブジェクト識別子
と前記設定されているオブジェ識別子IDOとを比較す
る第1の比較手段3bと、一致している場合には、該オ
ブジェクト操作要求を発行した利用者タスクあるいは利
用者割込み処理の識別子と前記アクセス資格AQRとを
比較する第2の比較手段3cと、利用者タスクあるいは
利用者割込み処理の識別子とアクセス資格との不一致に
基づいて、設定されているオブジェクトに対する利用者
タスクあるいは利用者割込み処理の不正操作を識別する
手段3dとにより達成される。・・・請求項6
【0010】又、前記第4の目的は、本発明によれば、
予め、監視対象オブジェクトの識別子及び該オブジェク
トに対する操作内容をそれぞれ設定する手段と、利用者
タスクあるいは利用者割込み処理からカーネルにオブジ
ェクト操作が要求された時、該操作要求に含まれるオブ
ジェクト識別子、操作内容が前記設定されているオブジ
ェ識別子、操作内容とそれぞれ一致しているか比較する
手段と、両者の一致に基づいて、設定されているオブジ
ェクトに対する利用者タスクあるいは利用者割込み処理
の不正操作を識別する手段とにより達成される。・・・
請求項8
【0011】更に、前記第4の目的は、本発明によれ
ば、予め、監視対象オブジェクトの識別子及びタスクの
異常終了とみなす異常終了コードあるいは異常終了とみ
なさない異常終了コードをそれぞれ設定する手段と、利
用者タスクあるいは利用者割込み処理からのシステムコ
ールにより要求されたオブジェクト操作に対する異常終
了時、該システムコールに含まれるオブジェクト識別子
が前記設定されているオブジェクト識別子と一致する
か、及び、異常終了コードが前記設定されている異常終
了コードと一致しているか比較する手段と、オブジェク
ト識別子及び異常終了コードの両方の一致に基づいて、
あるいはオブジェクト識別子の一致、異常コードの不一
致に基づいて利用者タスクあるいは利用者割込み処理の
異常を検出する手段とにより達成される。・・・請求項
10
【0012】
【作用】利用者タスクを起動するタスクディスパッチ処
理及び利用者割込み処理への制御転送処理を実行するマ
ルチタスキング方式のカーネルにおける不正動作検出方
法において、保存手段1c(図1)は予め監視対象メモ
リ空間1aの内容を保存メモリ空間1bに保存し、比較
手段1dは、利用者タスクの起動、利用者タスクの処理
終了、利用者割込み処理の起動、利用者割込み処理終了
のそれぞれにおいて、監視対象メモリ空間1aのメモリ
内容とメモリ1bに保存してあるメモリ内容とが一致し
ているか調べ、不正動作検出手段1eはメモリ内容の変
化に基づいて所定の利用者タスク又は利用者割込み処理
によるメモリ書替え不正動作を識別する。この場合、保
存手段1cは、監視対象メモリ空間1a全体の内容を加
算し,演算結果を保存メモリ空間1bに保存し、比較手
段1dは、利用者タスクの起動、利用者タスクの処理終
了、利用者割込み処理の起動、利用者割込み処理終了の
それぞれにおいて、監視対象メモリ空間1aの全体の内
容を加算し、加算結果と保存してある加算結果とを比較
することにより監視対象メモリ空間1aのメモリ内容の
変化を検出する。以上のようにすれば、保存メモリ空間
のメモリ容量を少なくできる。・・・請求項1、2
【0013】監視メモリ空間が、メモリプールのように
空き領域が変化する場合には、各空き領域の内容を保存
し、利用者タスクの起動、利用者タスクの処理終了、利
用者割込み処理の起動、利用者割込み処理終了のそれぞ
れにおいて、各空き領域の内容と保存してある各空き領
域の内容とが一致しているか調べ、少なくとも1つの空
き領域における内容変化に基づいて所定の利用者タスク
又は利用者割込み処理によるメモリ書替え不正動作を識
別する。この場合、空き領域毎に空き領域の内容を加算
し、加算結果を保存し、利用者タスクの起動、利用者タ
スクの処理終了、利用者割込み処理の起動、利用者割込
み処理終了のそれぞれにおいて、各空き領域毎に、該空
き領域の内容を加算し、加算結果と保存してある対応す
る空き領域の加算結果とを比較することによりメモリ内
容の変化を検出する。・・・請求項11、12
【0014】利用者タスクを起動するタスクディスパッ
チ処理及び利用者割込み処理への制御転送処理を実行す
るマルチタスキング方式のカーネルにおける不正動作検
出方法において、設定手段2a(図2)は、予め、監視
対象である入出力装置のアドレスAIOと、該入出力装
置にアクセス可能な利用者タスクあるいは利用者割込み
処理を特定するアクセス資格AQRとをそれぞれ設定
し、第1比較手段2bは、利用者タスクあるいは利用者
割込み処理からカーネルの有する入出力処理機能がコー
ルされた時、該コール要求に含まれる入出力アドレスと
前記設定されているアドレスを比較し、第2比較手段2
cは、アドレスが一致している場合には、該コール要求
を発行した利用者タスクあるいは利用者割込み処理の識
別子と前記アクセス資格AQRを比較し、不正動作検出
部2dは、識別子とアクセス資格の不一致に基づいて、
入出力装置に対する利用者タスクあるいは利用者割込み
処理の不正アクセスを識別する。・・・請求項4
【0015】利用者タスクを起動するタスクディスパッ
チ処理及び利用者割込み処理への制御転送処理を実行す
るマルチタスキング方式のカーネルにおける不正動作検
出方法において、設定手段3a(図3)は、予め、監視
対象オブジェクトの識別子IDOと該オブジェクトの操
作が可能な利用者タスクあるいは利用者割込み処理を特
定するアクセス資格AQRとをそれぞれ設定し、第1比
較手段3bは、利用者タスクあるいは利用者割込み処理
からカーネルにオブジェクト操作が要求された時、該操
作要求に含まれるオブジェクト識別子と前記設定されて
いるオブジェ識別子IDOを比較し、識別子が一致して
いる場合には、第2比較手段3cは、該オブジェクト操
作要求を発行した利用者タスクあるいは利用者割込み処
理の識別子と前記アクセス資格AQRを比較し、不正動
作検出手段3dは、利用者タスクあるいは利用者割込み
処理の識別子とアクセス資格との不一致に基づいて、設
定されているオブジェクトに対する利用者タスクあるい
は利用者割込み処理の不正操作を識別する。・・・請求
項6
【0016】利用者タスクを起動するタスクディスパッ
チ処理及び利用者割込み処理への制御転送処理を実行す
るマルチタスキング方式のカーネルにおける不正動作検
出方法において、予め、監視対象オブジェクトの識別子
及び該オブジェクトに対する操作内容をそれぞれ設定
し、利用者タスクあるいは利用者割込み処理からカーネ
ルにオブジェクト操作が要求された時、該操作要求に含
まれるオブジェクト識別子、操作内容が前記設定されて
いるオブジェ識別子、操作内容とそれぞれ一致している
か比較し、両者の一致に基づいて、設定されているオブ
ジェクトに対する利用者タスクあるいは利用者割込み処
理の不正操作を識別する。このようにしても、オブジェ
クトに対する不正操作を識別できる。・・・請求項8
【0017】又、予め、監視対象オブジェクトの識別子
及びタスクの異常終了とみなす異常終了コード(あるい
は異常終了とみなさない異常終了コード)をそれぞれ設
定し、利用者タスクあるいは利用者割込み処理からのシ
ステムコールにより要求されたオブジェクト操作に対す
る異常終了時、該システムコールに含まれるオブジェク
ト識別子が前記設定されているオブジェクト識別子と一
致するか、及び、異常終了コードが前記設定されている
異常終了コードと一致しているか比較し、オブジェクト
識別子及び異常終了コードの両方の一致に基づいて(あ
るいはオブジェクト識別子の一致、異常コードの不一致
に基づいて)利用者タスクあるいは利用者割込み処理の
異常を検出する。・・・請求項10
【0018】
【実施例】
(A)メモリ不正書替え動作検出 (a) メモリ不正書き替え動作検出タイミングの説明 図4は本発明のメモリの不正書き替え動作検出タイミン
グの説明図である。11はカーネルであり、タスクディ
スパッチ処理部11a、利用者割り込み処理への制御転
送処理部11bから構成される。12,13は利用者タ
スク、15は利用者割込み処理、16は監視対象メモリ
である。イベントドリブン型のタスクスケジューリング
では、システムコール発行や外部割り込みにより、利用
者タスク12,13の切替えや利用者割り込み処理15
の実行が行われる。図4の例では次の順序で利用者タス
クや利用者割込み処理が実行される。
【0019】処理(a)において、利用者タスク12から
システムコールAが発行されて利用者タスク13の起動
が要求されると、タスクディスパッチ処理部11aはタ
スクスケジューリングアルゴリズムに従って利用者タス
ク13を起動する。利用者タスク13の処理(b)が終了
すると、利用者タスク13はシステムコールBを発行し
てタスク終了をタスディスパッチ処理部11aに通知す
る。これにより、タスクディスパッチ処理部11aは利
用者タスク12を起動し、利用者タスク12はシステム
コールAの直後から処理(c)を実行する。利用者タスク
12の処理(c)の実行中に割り込みが発生すると、制御
処理転送部11bは利用者割り込み処理15を起動す
る。利用者割り込み処理15の処理(d)が終了すると、
利用者割り込み処理15は割込み処理終了を制御転送処
理部11bに通知する。これにより、制御転送処理部1
1bは割り込み元である利用者タスク12を起動し、利
用者タスク12は割込み発生直後から処理(e)を実行す
る。
【0020】以上から明らかなように、処理切替え毎に
カーネル11のタスクディスパッチ処理あるいは制御転
送処理が介在することになる。そこで、カーネル11の
処理の切替えタイミングをメモリ不正書き込みの検出タ
イミングとし、該検出タイミング〜で監視対象メモ
リ16の内容変化を調べる。処理(a)〜(d)のどこかでメ
モリの書き替えが行われれば、監視対象メモリの内容が
変化し、書き替えたタスクや処理を検出できる。図4の
例では、検出タイミングの時点のメモリ内容と検出タ
イミングの時点のメモリ内容が不一致となり、利用者
タスク13の処理(b)の中で書き替えが行われたことが
分かる。
【0021】(b) メモリの不正書替え動作検出の第1実
施例 図5は、利用者タスクによるメモリの不正書替え動作検
出の第1実施例説明図である。図中、11aはカーネル
におけるディスパッチ処理部、12〜14は利用者タス
ク、16は監視対象メモリ、17はメモリ監視範囲の内
容を複写される作業領域、18はメモリ監視範囲を記憶
する監視範囲記憶部、19はデバッガ、20はコンソー
ル装置である。
【0022】カーネルにより利用者タスク12が起動す
ると、(1) 利用者タスク12はデバッガ強制起動割込み
を発生し、デバッガ19を起動する。デバッガ19は強
制起動割り込みにより起動されると、コンソール装置2
0を利用したコマンド入力が可能となる。(2) かかる状
態において、コンソール装置20よりコマンド受け付け
部19aを介してメモリ監視範囲が入力されると、デバ
ッガ19はメモリ監視設定コマンド19bを実行して入
力されたメモリ監視範囲を記憶部18に設定し、(3) 同
時に、指定範囲のメモリ内容を監視対象メモリ16から
作業領域17に複写する。そして、デバッガ終了コマン
ドにより、利用者タスク12に復帰する。(4) 利用者タ
スク12よりタスク切替のシステムコールが発生する
と、(5) ディスパッチ処理部11aは、監視対象メモリ
16と作業領域17の内容を比較する。(6) 比較の結
果、メモリ内容が一致していれば、ディスパッチ処理部
11aは利用者タスク13を起動してタスクを切り替え
る。これにより、利用者タスク13の処理が開始する。
【0023】(7) 利用者タスク13よりタスク切替のシ
ステムコールが発生すると、(8) タスクディスパッチ処
理部11aは前記と同様に監視対象メモリ16と作業領
域17の内容を比較する。(9) メモリ内容が一致してい
れば、利用者タスク14にタスクが切り替わる。(10)
しかし、不一致であれば、タスクディスパッチ処理部1
1aは、利用者タスク14への切替を行わず、デバッガ
19を起動する。デバッガ19が起動されることによ
り、利用者はコンソール装置20を利用して不正なメモ
リ書き込みを行った利用者タスクと書き込みを行ったプ
ログラムの範囲を突き止めることができる。すなわち、
カーネルは、不正動作が検出された時点(メモリ内容不
一致検出の時点)で、該不正動作を行ったタスク識別子
と検出部位(プログラム範囲)をログ収集して保持し、
デバッガ19はコンソール装置20からの不正タスク表
示要求により不正タスク表示コマンド19cを実行し、
カーネルからログ収集結果を受信してコンソール装置2
0のディスプレイ画面に表示する。以上では、利用者タ
スクによる不正書替え動作検出を説明したが、利用者割
込み処理による不正書替え動作検出も同様に行われる。
【0024】(c) メモリの不正書替え動作検出の第2実
施例 図6は、利用者タスクによるメモリの不正書替え動作検
出の第2実施例説明図である。図中、11aはカーネル
におけるディスパッチ処理部、12〜14は利用者タス
ク、16は監視対象メモリ、17′はメモリ監視範囲の
全内容を加算した加算結果を記憶する加算結果格納領
域、18はメモリ監視範囲を記憶する監視範囲記憶部、
19はデバッガ、20はコンソール装置である。第1実
施例の場合、メモリ内容の比較において監視範囲が広い
と作業領域17の確保が難しくなる。そこで、メモリ内
容の変化を検出するための別の手段として、監視範囲内
のメモリ内容の加算を行い、加算結果の比較によるメモ
リ内容変化検出法を用いる。第2実施例では、書き替え
られた内容によっては変化を検出できない場合がある
が、非常に稀にしか発生せず、メモリ不正書き込みの検
出の目的には十分実用になる。
【0025】カーネル11により利用者タスク12が起
動すると、(1) 利用者タスク12はデバッガ強制起動割
込みを発生し、デバッガ19を起動する。デバッガ19
は強制起動割り込みにより起動されると、コンソール装
置20を利用したコマンド入力が可能となる。(2) かか
る状態において、コンソール装置20よりコマンド受け
付け部19aを介してメモリ監視範囲が入力されると、
デバッガ19はメモリ監視設定コマンド19bを実行し
てメモリ監視範囲を記憶部18に設定し、(3)同時に、
指定範囲のメモリ内容を加算し、加算結果を加算結果記
憶領域17′に格納する。しかる後、デバッガ終了コマ
ンドにより、利用者タスク12に復帰し、該利用者タス
クが実行される。(4) 利用者タスク12よりタスク切替
のシステムコールが発生すると、(5) ディスパッチ処理
部11aは、監視対象メモリ16におけるメモリ監視範
囲の内容を加算し、(6) 該加算結果と加算結果格納領域
17′に格納されている加算結果を比較する。(7) 比較
の結果、加算結果が一致していれば、ディスパッチ処理
部11aは利用者タスク13を起動してタスクを切り替
える。(8) 次に利用者タスク13よりシステムコールの
発行によりタスク切替え要求が発生すると、(9) タスク
ディスパッチ処理部11aは同様に監視対象メモリ16
におけるメモリ監視範囲の内容を加算し、(10) 該加算
結果と加算結果格納領域17′に格納されている加算結
果を比較する。(11) 比較の結果、加算結果が一致して
いれば、利用者タスク14に切り替わる。(12) しか
し、不一致であれば、タスクディスパッチ処理部11a
は、利用者タスク14への切替を行わず、デバッガ19
を起動する。デバッガ19が起動されることにより、利
用者は第1実施例の場合と同様にコンソール装置20を
利用して不正なメモリ書替えを行った利用者タスクと書
替えを行ったプログラムの範囲を突き止めることができ
る。以上では、加算を施した場合について説明したが、
減算、排他的論理和演算その他の演算を施すことができ
る。
【0026】(B)入出力装置に対す不正アクセス検出 図7は入出力装置に対する不正アクセス検出の実施例で
ある。図中、11はカーネルであり、ディスパッチ処理
部11a、入出力処理部11cを有している。12〜1
4は利用者タスク、19はデバッガ、20はコンソール
装置、21は記憶部であり、コンソール装置よりデバッ
ガを介して設定された監視対象の入出力装置のアドレス
AIOと、該入出力装置にアクセス可能な利用者タスク
あるいは利用者割込み処理を特定するアクセス資格AQ
Rとを記憶する。カーネルの入出力処理機能が利用者タ
スクからCALLされると、同時に入出力装置のアドレ
スが通知されるので、このアドレスと設定されている監
視対象の入力装置のアドレスAIOの比較する。一致す
れば、アクセス資格AQRとカーネル11が認識してい
る現在動作中の利用者タスク、利用者割込み処理等の識
別子を比較する。一致しなければ、アクセス資格のない
タスクあるいは処理から監視対象の入出力装置にアクセ
スが行われたことを検出できる。
【0027】以下、入出力装置に対す不正アクセス検出
について詳細に説明する。カーネル11により利用者タ
スク12が起動すると、(1) 利用者タスク12はデバッ
ガ強制起動割込みを発生し、デバッガ19を起動する。
デバッガ19は強制起動割り込みにより起動されると、
コンソール装置20を利用したコマンド入力が可能とな
る。(2) かかる状態において、コンソール装置20より
コマンド受け付け部19aを介して監視対象である入出
力装置のアドレスAIO(=100)、アクセス資格A
QR(=利用者タスク14の識別子)が入力されると、
デバッガ19は入出力監視設定コマンド19dを実行し
てこれらAIO,AQRを記憶部21に設定する。(3)
そして、デバッガ終了コマンドにより、利用者タスク1
2に復帰する。(4) 利用者タスク12よりシステムコー
ルにより利用者タスク13の起動が要求されると、(5)
ディスパッチ処理部11aは、タスクスケジューリング
アルゴリズムに従って利用者タスク13を起動し、処理
を開始する。(6) そして、利用者タスク13が入出力ア
ドレス=100として入出力処理機能をCALLする
と、(7) カーネル11の入出力処理部11cは、不正ア
クセス判定処理を行う。
【0028】図8は不正アクセス判定処理のフローであ
る。入出力処理機能がコールされると(ステップ10
1)、入出力処理部11cはCALLと同時に通知され
る入出力装置のアドレスと記憶部21に設定されている
監視対象のアドレスAIOの比較を行う(ステップ10
2)。アドレスが一致してなければ、処理を継続し(ス
テップ103)、一致していれば、アクセス資格AQR
とカーネル11が認識している現在動作中の利用者タス
クの識別子を比較する(ステップ104)。一致すれ
ば、正当なアクセスである。正当なアクセスの場合に
は、入出力処理実行後、利用者タスク13に復帰するの
で、不正なアクセスが発生しない限り利用者タスク13
の処理は通常通りに実行され続ける(ステップ10
3)。一方、一致しなければ、アクセス資格のないタス
クあるいは処理から監視対象の入出力装置にアクセスが
行われたことになり(不正アクセス)、利用者タスクの
実行を中断してデバッガ19を起動する(ステップ10
5、106)。
【0029】図7の例では、記憶部21に設定されてい
るアクセス対象アドレスAIO(=100)と利用者タ
スク13から依頼された入出力アドレス(=100)と
一致している。そこで、カーネル11が管理している動
作中の処理(利用者タスク13)とアクセス資格(=利
用者タスク14)を比較する。(8) 一致していないた
め,入出力処理部11cは不正なアクセスと判断して、
利用者タスクの実行を中断しデバッガを起動する。デバ
ッガが起動されることにより、利用者はコンソール装置
20を利用して不正動作を行ったタスクや、入出力処理
をCALLしたプログラムを突き止めることができる。
すなわち、カーネル11は、不正アクセス動作が検出さ
れた時点で、該不正アクセスを行ったタスクの識別子と
検出部位(プログラム範囲)をログ収集して保持し、デ
バッガ19はコンソール装置20からの不正タスク表示
要求によりカーネルからログ収集結果を受信してコンソ
ール装置20のディスプレイ画面に表示する。
【0030】(C)オブジェクトに対する不正操作検出 (a) オブジェクトに対する不正操作検出の第1実施例 図9はオブジェクトに対する不正操作検出の第1実施例
の構成図である。図中、11はカーネルであり、ディス
パッチ処理部11a、オブジェクト操作処理部11dを
有している。12〜14は利用者タスク、19はデバッ
ガ、20はコンソール装置、21は記憶部であり、コン
ソール装置よりデバッガを介して設定された監視対象オ
ブジェクトの識別子IDOと、該オブジェクト操作が可
能な利用者タスクあるいは利用者割込み処理を特定する
アクセス資格AQRとを記憶する。オブジェクト不正操
作検出の概略は以下の通りである。例えば、利用者タス
ク13からオブジェクト操作処理機能が呼出されると、
同時にオブジェクト識別子が通知されるので、オブジェ
クト操作処理部11dはこの識別子と設定されている監
視対象オブジェクトの識別子IDOを比較する。一致す
れば、設定されているアクセス資格AQRとカーネルが
認識している現在動作中の利用者タスクの識別子あるい
は利用者割込み処理の識別子とを比較する。一致しなけ
れば、アクセス資格のないタスクあるいは処理が監視対
象オブジェクトを不正に操作したことを検出できる。
【0031】オブジェクトとしてはセマフォ、メールボ
ックス、イベントフラグ、メモリプール等があり、O/
Sにより管理されている。このうちセマフォは、整数を
値としてとる変数で、P及びV命令によってのみ値が変
更される。1つのセマフォに対しては、一時的にはただ
1つのタスクだけがP又はV命令を実行できる。Sをセ
マフォ値とするとき、あるタスクがP(S)を実行する
と、Sの値が1減らされた後、そのSの値が S≧0なら、そのタスクは実行を続ける。 S<0なら、そのタスクは停止し、S対する待ち行列
に入る。 タスクV(S)を実行すると、Sの値が1増加された
後、そのSの値が S>0なら、そのタスクは実行を続ける。 S≦0なら、Sに対する待ち行列から1つタスクを取
り出し、そのタスクの実行を再開させる。V(S)を実
行したタスク自身も実行を継続する。
【0032】図10はRMS 68Kのセマフォを用い
た排他制御の説明図である。尚、ATSENは、そのタスク
がある危険部分の排他制御のためにセマフォを用いるこ
とを宣言するもの、WTSENはセマフォを通して、危険部
分の使用を要求するものであり、SGSEM はその使用を開
放するものである。又、WTSENはセマフォ値を−1し、S
GSENは+1する。まずタスクbがセマフォを通して危険
部分の使用を要求する。この場合、セマフォ値が1なの
で、その要求は受け付けられ、使用が許可される。その
とき、セマフォ値は−1されて0となる。しかる後、タ
スクaが走行し、同じセマフォに対して使用要求したと
き、セマフォ値が1でないので、使用中であり、使用が
許可されず、タスクaはセマフォキューに入る。さら
に、タスクcが走行し、同じセマフォを要求するが、同
様にセマフォキューにタスクcも入る。この時のセマフ
ォ値は2回−1され、−2になっている。その後、タス
クbがSGSENにより使用を開放し、セマフォキューにあ
るタスクaが、その使用を許可される。更に、タスクa
が開放することにより、タスクcの使用が許可され、最
後にセマフォ値は1に戻り、セマフォキューも空とな
る。又、メールボックスはタスク間の交信手段であり、
あるタスクによってメッセージが置かれ、他のタスクに
よってメッセージが取り出される構造で表現された待ち
行列である。メッセージを送る側のタスクはメールボッ
クスに対してメッセージを送り、又、メッセージを受信
する側のタスクはメールボックス上でメッセージの到着
を待つ。かかるメールボックスを用いて同期制御や排他
制御が行われる。
【0033】以下、図9に従ってオブジェクトの不正操
作検出方法を詳述する。カーネル11により利用者タス
ク12が起動すると、(1) 利用者タスク12はデバッガ
強制起動割込みを発生し、デバッガ19を起動する。デ
バッガ19は強制起動割り込みにより起動されると、コ
ンソール装置20を利用したコマンド入力が可能とな
る。(2) かかる状態において、コンソール装置20より
コマンド受け付け部19aを介して監視対象オブジェク
トの識別子IDO(=28)、アクセス資格AQR(=
利用者タスク14の識別子)が入力されると、デバッガ
19はオブジェクト監視設定コマンド19eを実行して
これらIDO,AQRを記憶部21に設定する。(3) し
かる後、デバッガ終了コマンドにより、利用者タスク1
2に復帰する。(4) 利用者タスク12よりシステムコー
ルにより利用者タスク13の起動が要求されると、(5)
ディスパッチ処理部11aは、タスクスケジューリング
アルゴリズムに従って利用者タスク13を起動し、利用
者タスク13は処理を開始する。(6) そして、利用者タ
スク13がシステムコール(オブジェクト識別子=2
3)を発行してオブジェクト操作を要求すると、(7) カ
ーネル11のオブジェクト操作処理部11dは、不正操
作判定処理を行う。
【0034】図11は不正操作判定処理のフローであ
る。オブジェクト操作のシステムコールが発行されると
(ステップ201)、オブジェクト操作処理部11dは
システムコールに含まれるオブジェクト識別子と記憶部
21に設定されているオブジェクト識別子IDOとの比
較を行う(ステップ202)。オブジェクト識別子が一
致してなければ、処理を継続し(ステップ203)、一
致していれば、アクセス資格AQRとカーネル11が認
識している現在動作中の利用者タスクの識別子を比較す
る(ステップ204)。一致すれば、正当なオブジェク
ト操作である。正当なオブジェクト操作の場合には、オ
ブジェクト操作処理後、利用者タスク13に復帰するの
で、不正なオブジェクト操作が発生しない限り利用者タ
スク13の処理は通常通りに実行され続ける(ステップ
203)。一方、一致しなければ、アクセス資格のない
タスクあるいは処理が監視対象のオブジェクトを操作し
たことになり(不正操作)、利用者タスクの実行を中断
してデバッガ19を起動する(ステップ205、20
6)。
【0035】図9の例では、記憶部21に設定されてい
るオブジェクト識別子IDO(=28)と利用者タスク
13が発行したシステムコールに含まれるオブジェクト
識別子(=28)が一致している。そこで、カーネル1
1が管理している動作中の処理(=利用者タスク13)
とアクセス資格(=利用者タスク14)を比較する。
(8) 一致していないため、オブジェクト操作処理部11
dは不正なオブジェクト操作と判断して、利用者タスク
の実行を中断しデバッガを起動する。デバッガ19が起
動されることにより、利用者はコンソール装置20を利
用して不正操作を行ったタスクやオブジェクト操作のシ
ステムコールを発行したプログラム部分を突き止めるこ
とができる。すなわち、カーネル11は、オブジェクト
の不正操作が検出された時点で、該不正操作を行ったタ
スクの識別子と検出部位(プログラム範囲)をログ収集
して保持し、デバッガ19はコンソール装置20から不
正タスク表示要求が入力されるとカーネルからログ収集
結果を受信してコンソール装置20のディスプレイ画面
に表示する。
【0036】(b) 第2実施例 図12はオブジェクト不正操作の検出の第2実施例の構
成図である。11はカーネル、11eはイベント通知処
理部、12は利用者カーソル、19はデバッガ、20は
コンソール装置、21はオブジェクト操作検出条件が設
定される記憶部、23はイベントフラグ管理情報記憶部
である。第2実施例では、イベントフラグの不正操作を
例にして説明する。又、フラグID=10のフラグに対
し、本来セットされるはずのないビット7がセットされ
る現象が発生しているものとする。
【0037】カーネル11により利用者タスク12が起
動すると、(1) 利用者タスク12はデバッガ強制起動割
込みを発生し、デバッガ19を起動する。デバッガ19
は強制起動割り込みにより起動されると、コンソール装
置20を利用したコマンド入力が可能となる。(2) かか
る状態において、コンソール装置20よりコマンド受け
付け部19aを介して監視対象オブジェクトの識別子I
DO(=10)、機能FNC(=セットフラグ)、デー
タDTA(=セットビット7)が入力されると、デバッ
ガ19はオブジェクト操作条件設定コマンド19fを実
行してこれらIDO,FNC,DTAを記憶部21に設
定する。(3) そして、デバッガ終了コマンドにより、利
用者タスク12の実行を再開させる。(4) 利用者タスク
12がイベントフラグ操作のシステムコール(フラグI
D=10、セットフラグ、セットビット7)を発行して
イベントフラグ操作を要求する。(5) カーネルのイベン
ト通知処理部11eは、セットフラグのシステムコール
が発行されると、デバッガの設定条件をもとに不正操作
検出処理を実行する。
【0038】図13はイベントフラグの不正操作検出の
処理フローである。オブジェクト操作(セットフラグ)
のシステムコールが発行されると(ステップ301)、
イベント通知処理部11eは、記憶部21に設定されて
いるオブジェクト操作条件(イベントフラグ操作条件)
を参照する(ステップ302)。ついで、システムコー
ルに含まれるオブジェクト操作条件と設定されているオ
ブジェクト操作検出条件との比較を行う(ステップ30
3)。すなわち、システムコールに含まれるオブジェク
ト識別子(フラグID=10)、機能コード(=セット
フラグ)、データ(=セットビット7)と、記憶部21
に設定されているオブジェクト識別子IDO(=1
0)、機能コードFNC(=セットフラグ)、データ
(=セットビット7)とをそれぞれ比較する。
【0039】オブジェクト操作条件が異なれば、正当な
オブジェクト操作であり、イベントフラグ操作処理後に
利用者タスク13に復帰し、利用者タスク13の処理を
継続する(ステップ304,305)。一方、オブジェ
クト操作条件が一致すれば、利用者タスク12が設定さ
れているイベントフラグの不正操作をしたことになり
(不正操作)、利用者タスクの実行を中断してデバッガ
19を起動する(ステップ306,307)。図12の
例では、オブジェクト操作検出条件が一致するから、イ
ベント通知処理部11eは利用者タスク12の実行を中
断し、デバッガ19を起動することになる。デバッガが
起動されることにより、利用者はコンソール装置20を
利用して不正操作を行ったタスクやシステムコールを発
行したプログラム範囲を突き止めることができる。
【0040】(c) オブジェクト不正操作検出の第3実施
例 図14はオブジェクト操作のシステムコールが単純に異
常終了したことによりタスクの異常検出を行う第3実施
例の構成図である。図中、11はカーネル、11fはシ
ステムコール処理部、12は利用者タスク、19はデバ
ッガ、21はオブジェクト操作検出条件が設定される記
憶部である。デバッガ19は既に説明したように強制起
動により起動する。そして、(1) デバッガ19はオブジ
ェクト操作条件設定コマンドに従ってオブジェクト操作
検出条件を記憶部21に設定する。第3実施例は、オブ
ジェクト操作のシステムコールが、単純に異常終了する
とタスクに異常ありと判定するものである。このため、
オブジェクト操作検出条件におけるオブジェクトの種類
/オブジェクト識別子として「全種類」が、システムコ
ール異常終了コードとして「全種類」がそれぞれ設定さ
れる。
【0041】デバッガによるオブジェクト操作検出条件
設定が終了すれば、利用者タスク12の処理が開始す
る。そして、(2) 利用者タスク12がオブジェクト操作
のシステムコールを発行して所定のオブジェクト操作を
要求すると、(3) カーネル11のシステムコール処理部
11fは要求されたオブジェクト操作を実行しようとす
る。しかし、要求されたオブジェクト操作が実行できな
い場合、例えば、セマフォを獲得したいけれどセマフォ
がない、あるいは、領域を獲得したいけれど領域がない
等により要求されたオブジェクト操作が実行できない場
合には、システムコール異常終了とする。(4) かかる異
常終了により、システムコール処理部11fは記憶部2
1に設定されているオブジェクト操作検出条件を参照す
る。
【0042】オブジェクト操作検出条件において、オブ
ジェクトの種類/オブジェクト識別子は「全種類」、シ
ステムコール異常終了コードは「全種類」となってい
る。このため、システムコール処理部11fは、システ
ムコールで要求されたオブジェクトの種類や異常終了コ
ードに関係なく、直ちに利用者タスク12の実行を中断
し、デバッガ19を起動する。以後、利用者はコンソー
ル装置20を利用して異常終了したタスクを突き止める
ことができる。
【0043】(d) オブジェクト不正操作検出の第4,第
5実施例 図15は、指定したオブジェクト操作が異常終了したこ
とによりタスクの異常を検出する第4実施例の構成図で
ある。第4実施例において、第3実施例(図14)と異
なる点は、オブジェクト種別/オブジェクト識別子を
指定すると共に、タスクの異常とみなす異常終了コー
ドを指定している点である。予め、監視対象オブジェク
トの種類/識別子(イベントフラグ/識別子=10)及び
タスクの異常とみなす異常終了コード(コード=8)を
それぞれ記憶部21に設定しておく。利用者タスク12
からのシステムコールにより要求されたオブジェクト操
作に対する異常終了時、イベント通知処理部11eは、
該システムコールに含まれるオブジェクトの種別/識別
子が前記設定されているオブジェクトの種別/識別子と
一致するか、及び、異常終了コードが前記設定されてい
る異常終了コードと一致しているか比較する。オブジェ
クトの種類/識別子及び異常終了コードの両方が一致し
ている場合には、イベント通知処理部11eは、システ
ムコールを発行した利用者タスク12の異常とみなし、
該タスクの実行を中断し、デバッガを起動する。以後、
利用者はコンソール装置を利用して異常終了したタスク
を突き止めることができる。
【0044】図16は、指定したオブジェクトが指定し
た異常終了コード以外の異常で終了したことによりタス
クの異常を検出する第5実施例の構成図である。第5実
施例において、第3実施例(図14)と異なる点は、
オブジェクト種別/オブジェクト識別子を指定すると共
に、タスクの異常とみなさない異常終了コードを指定
している点である。予め、監視対象オブジェクトの種類
/識別子(イベントフラグ/識別子=10)及びタスクの
異常とみなさない異常終了コード(コード=7)をそれ
ぞれ記憶部21に設定しておく。利用者タスク12から
のシステムコールにより要求されたオブジェクト操作に
対する異常終了時、イベント通知処理部11eは、該シ
ステムコールに含まれるオブジェクトの種類/識別子が
前記設定されているオブジェクトの種類/識別子と一致
するか、及び、異常終了コードが前記設定されている異
常終了コードと一致しないか比較する。オブジェクトの
種類/識別子が一致し、異常終了コードが不一致の場
合、イベント通知処理部11eは、システムコールを発
行した利用者タスク12の異常とみなし、該タスクの実
行を中断し、デバッガを起動する。以後、利用者はコン
ソール装置を利用して異常終了したタスクを突き止める
ことができる。
【0045】(D)メモリプールの空き領域に対する不
正書き込み動作の検出 図17は、メモリプールの空き領域に対する不正書き込
み動作検出方式の説明図であり、監視対象メモリはメモ
リプール内の空き領域で、内容変化検出方式は加算結果
比較方式である。図中、31はメモリプールで、左側は
メモリブロック返却前のメモリプール、右側はメモリブ
ロック返却後のメモリプールである。メモリプール31
の空き領域はメモリブロック返却によりダイナミックに
変化する。従って、メモリブロック返却ごとにメモリプ
ールの空き領域31a〜31cの内容加算を行い、加算
結果を空き領域の最終アドレス31a′〜31c′に最
終ワードとして格納する。又、ディスパッチ処理部によ
るディスパッチ処理では、各空き領域毎に内容の加算を
行い、加算結果と該空き領域の最終アドレスに格納され
ている加算結果とを比較し、一致/不一致により空き領
域への不正書き込みの有無を判断する。
【0046】図18はメモリプールの空き領域に対する
不正書き込み動作検出処理のフロー図である。タスク切
換のシステムコールあるいは利用者割込み等が発生した
か、換言すれば、検出タイミングになったかチェックす
る(ステップ401)。検出タイミングになれば、すな
わち、利用者タスクの起動、利用者タスクの処理終了、
利用者割込み処理の起動、利用者割込み処理終了のそれ
ぞれにおいて、メモリプール31の各空き領域毎に内容
の加算を行い、加算結果と対応する空き領域の最終アド
レスに格納されている加算結果とを比較する(ステップ
402)。少なくとも1つの空き領域において加算結果
が異なる場合には、空き領域への不正書き込みがあった
ものとみなし、利用者タスクの実行を中断し、デバッガ
を起動する(ステップ403、404)。以後、利用者
はコンソール装置を利用してメモリプールの空き領域に
不正書き込みをしたタスクあるいは処理を突き止めるこ
とができる。
【0047】一方、ステップ402において、全空き領
域の加算結果が一致(空き領域の内容が一致)していれ
ば、あるいは、ステップ401において、「NO」であ
れば、メモリブロックの返却(リリースブロック)によ
りメモリプールの空き領域が変化したかチェックする
(ステップ405)、変化してなければ初めに戻り、ス
テップ401以降の処理を繰り返す。しかし、空き領域
が変化すれば、新たな空き領域の内容を加算し(ステッ
プ406)、該加算結果を空き領域の最終アドレスに格
納し(ステップ407)、以後、初めに戻り、ステップ
401以降の処理を繰り返す。尚、演算は加算に限ら
ず、減算、排他的論理和演算その他の演算を採用するこ
とができる。又、以上では空き領域の加算結果を比較し
て空き領域への不正書き込み動作を検出したが、空き領
域の内容を保存しておき、保存内容と空き領域の内容を
比較することにより不正書き込み動作を検出することも
できる。以上、本発明を実施例により説明したが、本発
明は請求の範囲に記載した本発明の主旨に従い種々の変
形が可能であり、本発明はこれらを排除するものではな
い。
【0048】
【発明の効果】以上本発明は、異常となる現象は分かっ
ているが、その現象を引き起こすタスクあるいは処理が
不明な場合に適用して有効である。又、マルチタスキン
グ方式のO/Sでは、タスクが数10本同時に動作して
いるのが普通なので、異常現象だけ分かっていても発生
元タスクを特定するのは困難なことが多い。本発明によ
れば、異常現象をブレーク条件として設定することによ
り、該現象が発生した時点で利用者タスクを中断してデ
バッガを起動するため、デバッガのメモリ表示機能等に
より異常現象の発生元タスクやシステムの状態を調査す
ることができる。
【0049】本発明によれば、ソフト的にメモリへの不
正な書替え動作を検出し、該不正書替え動作をしたタス
ク、処理を突き止めることができる。この結果、デバッ
グを効率良く行うことができる。又、この場合、監視メ
モリ領域の内容変化、すなわち、監視メモリ領域への不
正書替え動作を、該領域の内容を加算してその加算結果
の比較により行うことにより、不正書替え動作検出に使
用するメモリ容量を著しく少なくできる。本発明によれ
ば、メモリプールの空き領域のようにダイナミックに変
化するメモリ領域の不正書替え動作を検出し、該不正書
替え動作をしたタスク、処理を突き止めることができ
る。この結果、デバッグを効率良く行うことができる。
又、空き領域の内容変化を加算結果の比較により行うこ
とにより、不正書替え動作検出に使用するメモリ容量を
著しく少なくできる。
【0050】本発明によれば、アクセス資格との連携に
より、入出力装置に対する不正のアクセス動作やオブジ
ェクトに対する不正なアクセス操作を検出し、該不正ア
クセス、不正操作をしたタスク、処理を突き止めること
ができる。この結果、デバッグを効率良く行うことがで
きる。
【図面の簡単な説明】
【図1】本発明の第1の原理説明図である。
【図2】本発明の第2の原理説明図である。
【図3】本発明の第3の原理説明図である。
【図4】メモリ不正書替え検出タイミングの説明図であ
る。
【図5】利用者タスクによるメモリの不正書替え動作検
出の第1実施例である。
【図6】利用者タスクによるメモリの不正書替え動作検
出の第2実施例である。
【図7】入出力装置に対する不正アクセス動作検出の実
施例である。
【図8】I/O不正アクセスの判定処理フローである。
【図9】オブジェクトに対する不正操作検出の第1実施
例である。
【図10】セマフォを用いた排他制御の説明図である。
【図11】オブジェクト不正操作の判定処理フローであ
る。
【図12】オブジェクト不正操作検出の第2実施例であ
る。
【図13】イベントフラグ不正操作検出の処理フローで
ある。
【図14】オブジェクト不正操作検出の第3実施例であ
る。
【図15】オブジェクト不正操作検出の第4実施例であ
る。
【図16】オブジェクト不正操作検出の第5実施例であ
る。
【図17】メモリプールの空き領域に対する不正書替え
検出の説明図である。
【図18】メモリプールの空き領域に対する不正書き込
み動作検出の処理フローである。
【符号の説明】
1a・・監視対象メモリ空間 1b・・保存メモリ空間 1c・・保存手段 1d・・比較手段 1e・・不正動作検出手段

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 利用者タスクを起動するタスクディスパ
    ッチ処理及び利用者割込み処理への制御転送処理を実行
    するマルチタスキング方式のカーネルにおける不正動作
    検出方法において、 予め設定されている監視対象メモリ空間の内容を保存す
    る第1ステップ、 利用者タスクの起動、利用者タスクの処理終了、利用者
    割込み処理の起動、利用者割込み処理終了のそれぞれに
    おいて、監視対象メモリ空間のメモリ内容と保存してあ
    るメモリ内容とが一致しているか調べる第2ステップ、 メモリ内容の変化に基づいて所定の利用者タスク又は利
    用者割込み処理によるメモリ書替え不正動作を識別する
    第3ステップを有することを特徴とする不正動作検出方
    法。
  2. 【請求項2】 前記第1ステップは、監視対象メモリ空
    間全体の内容を加算し、あるいはその他の演算処理を施
    して該演算結果を保存し、 第2ステップは、監視対象メモリ空間全体の内容を加算
    し、あるいはその他の演算処理を施し、該演算結果と保
    存してある演算結果を比較することにより監視対象メモ
    リ空間のメモリ内容の変化を調べることを特徴とする請
    求項1記載の不正動作検出方法。
  3. 【請求項3】 前記方法は更に、デバッガを設け、該デ
    バッガを介して監視対象メモリ空間を設定するステップ
    を有し、 前記第3ステップは、 メモリ内容の変化が検出された時、デバッガを起動する
    ステップ、 デバッガによりメモリ内容を書き替えた利用者タスクの
    識別子あるいは利用者割込み処理の識別子を出力するス
    テップを有することを特徴とする請求項1記載の不正動
    作検出方法。
  4. 【請求項4】 利用者タスクを起動するタスクディスパ
    ッチ処理及び利用者割込み処理への制御転送処理を実行
    するマルチタスキング方式のカーネルにおける不正動作
    検出方法において、 予め、監視対象である入出力装置のアドレスと、該入出
    力装置にアクセス可能な利用者タスクあるいは利用者割
    込み処理を特定するアクセス資格とをそれぞれ設定する
    第1ステップ、 利用者タスクあるいは利用者割込み処理からカーネルの
    有する入出力処理機能がコールされた時、該コール要求
    に含まれる入出力アドレスと前記設定されているアドレ
    スを比較する第2ステップ、 一致している場合には、該コール要求を発行した利用者
    タスクあるいは利用者割込み処理の識別子と前記アクセ
    ス資格を比較する第3ステップ、 識別子とアクセス資格の不一致に基づいて、入出力装置
    に対する利用者タスクあるいは利用者割込み処理の不正
    アクセスを識別する第4ステップを有することを特徴と
    する不正動作検出方法。
  5. 【請求項5】 前記方法は、更に、デバッガを設け、該
    デバッガを介して前記監視対象である入出力装置のアド
    レスとアクセス資格を設定するステップを有し、 前記第4ステップは、 コール要求を発行した利用者タスクあるいは利用者割込
    み処理の識別子と前記アクセス資格の不一致が検出され
    た時、デバッガを起動するステップ、 デバッガによりアクセスした利用者タスクの識別子ある
    いは利用者割込み処理の識別子を出力するステップを有
    することを特徴とする請求項4記載の不正動作検出方
    法。
  6. 【請求項6】 利用者タスクを起動するタスクディスパ
    ッチ処理及び利用者割込み処理への制御転送処理を実行
    するマルチタスキング方式のカーネルにおける不正動作
    検出方法において、 予め、監視対象オブジェクトの識別子と該オブジェクト
    の操作が可能な利用者タスクあるいは利用者割込み処理
    を特定するアクセス資格とをそれぞれ設定する第1ステ
    ップ、 利用者タスクあるいは利用者割込み処理からカーネルに
    オブジェクト操作が要求された時、該操作要求に含まれ
    るオブジェクト識別子と前記設定されているオブジェ識
    別子を比較する第2ステップ、 一致している場合には、該オブジェクト操作要求を発行
    した利用者タスクあるいは利用者割込み処理の識別子と
    前記アクセス資格を比較する第3ステップ、 利用者タスクあるいは利用者割込み処理の識別子とアク
    セス資格との不一致に基づいて、設定されているオブジ
    ェクトに対する利用者タスクあるいは利用者割込み処理
    の不正操作を識別する第4ステップを有することを特徴
    とする不正動作検出方法。
  7. 【請求項7】 前記方法は、更に、デバッガを設け、該
    デバッガを介して前記監視対象オブジェクトの識別子と
    アクセス資格を設定するステップを備え、 前記第4ステップは、 オブジェクト操作要求を発行した利用者タスクあるいは
    利用者割込み処理の識別子とアクセス資格の不一致が検
    出された時、デバッガを起動するステップ、 デバッガによりアクセスした利用者タスクの識別子ある
    いは利用者割込み処理の識別子を出力するステップを有
    することを特徴とする請求項6記載の不正動作検出方
    法。
  8. 【請求項8】 利用者タスクを起動するタスクディスパ
    ッチ処理及び利用者割込み処理への制御転送処理を実行
    するマルチタスキング方式のカーネルにおける不正動作
    検出方法において、 予め、監視対象オブジェクトの識別子及び該オブジェク
    トに対する操作内容をそれぞれ設定する第1ステップ、 利用者タスクあるいは利用者割込み処理からカーネルに
    オブジェクト操作が要求された時、該操作要求に含まれ
    るオブジェクト識別子、操作内容が前記設定されている
    オブジェ識別子、操作内容とそれぞれ一致しているか比
    較する第2ステップ、 両者の一致に基づいて、設定されているオブジェクトに
    対する利用者タスクあるいは利用者割込み処理の不正操
    作を識別する第3ステップを有することを特徴とする不
    正動作検出方法。
  9. 【請求項9】 前記方法は、更に、デバッガを設け、該
    デバッガを介して前記監視対象のオブジェクト識別子と
    オブジェクトに対する操作内容を設定するステップを備
    え、 前記第3ステップは、 前記両者の一致が検出された時、デバッガを起動するス
    テップ、 デバッガによりアクセスした利用者タスクの識別子ある
    いは利用者割込み処理の識別子を出力するステップを有
    することを特徴とする請求項8記載の不正動作検出方
    法。
  10. 【請求項10】 利用者タスクを起動するタスクディス
    パッチ処理及び利用者割込み処理への制御転送処理を実
    行するマルチタスキング方式のカーネルにおける不正動
    作検出方法において、 予め、監視対象オブジェクトの識別子及びタスクの異常
    終了とみなす異常終了コードあるいは異常終了とみなさ
    ない異常終了コードをそれぞれ設定する第1ステップ、 利用者タスクあるいは利用者割込み処理からのシステム
    コールにより要求されたオブジェクト操作に対する異常
    終了時、該システムコールに含まれるオブジェクト識別
    子が前記設定されているオブジェクト識別子と一致する
    か、及び、異常終了コードが前記設定されている異常終
    了コードと一致しているか比較する第2ステップ、 オブジェクト識別子及び異常終了コードの両方の一致に
    基づいて、あるいはオブジェクト識別子の一致、異常コ
    ードの不一致に基づいて利用者タスクあるいは利用者割
    込み処理の異常を検出する第3ステップを有することを
    特徴とする不正動作検出方法。
  11. 【請求項11】 利用者タスクを起動するタスクディス
    パッチ処理及び利用者割込み処理への制御転送処理を実
    行するマルチタスキング方式のカーネルにおける不正動
    作検出方法において、 監視対象メモリにおける各空き領域の内容を保存する第
    1ステップ、 利用者タスクの起動、利用者タスクの処理終了、利用者
    割込み処理の起動、利用者割込み処理終了のそれぞれに
    おいて、各空き領域の内容と保存してある各空き領域の
    内容とが一致しているか調べる第2ステップ、 少なくとも1つの空き領域における内容変化に基づいて
    利用者タスク又は利用者割込み処理によるメモリ書替え
    不正動作を識別する第3ステップを有することを特徴と
    する不正動作検出方法。
  12. 【請求項12】 前記第1ステップは、監視対象メモリ
    における空き領域毎に、空き領域の内容を加算し、ある
    いはその他の演算処理を施して、該演算結果を保存し、 第2ステップは、監視対象メモリにおける各空き領域毎
    に、空き領域の内容を加算し、あるいはその他の演算処
    理を施し、該演算結果と保存してある対応する空き領域
    の演算結果とを比較することにより監視対象メモリにお
    ける各空き領域の内容が一致しているか調べることを特
    徴とする請求項11記載の不正動作検出方法。
JP7172020A 1995-07-07 1995-07-07 マルチタスキング方式のカーネルにおける不正動作検出方法 Withdrawn JPH0922369A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7172020A JPH0922369A (ja) 1995-07-07 1995-07-07 マルチタスキング方式のカーネルにおける不正動作検出方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7172020A JPH0922369A (ja) 1995-07-07 1995-07-07 マルチタスキング方式のカーネルにおける不正動作検出方法

Publications (1)

Publication Number Publication Date
JPH0922369A true JPH0922369A (ja) 1997-01-21

Family

ID=15934040

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7172020A Withdrawn JPH0922369A (ja) 1995-07-07 1995-07-07 マルチタスキング方式のカーネルにおける不正動作検出方法

Country Status (1)

Country Link
JP (1) JPH0922369A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001154872A (ja) * 1999-11-25 2001-06-08 Nec Ic Microcomput Syst Ltd ソフトウェア開発支援装置、ソフトウェア開発支援方法、および、そのプログラムを記録した記録媒体
JP2006018684A (ja) * 2004-07-02 2006-01-19 Ntt Docomo Inc タスク管理システム
JP2006053760A (ja) * 2004-08-12 2006-02-23 Nippon Telegr & Teleph Corp <Ntt> バッファオーバーフロー脆弱性分析方法、データ処理装置、分析情報提供装置、分析情報抽出処理用プログラムおよび分析情報提供処理用プログラム
JP2008507767A (ja) * 2004-07-20 2008-03-13 ソフトリシティ インコーポレイテッド コンピュータアプリケーションにおけるデータ損失を最小限にする方法およびシステム
JP2009217503A (ja) * 2008-03-10 2009-09-24 Hitachi Ltd 計算機システム、計算機制御方法及び計算機制御プログラム
JP2010160704A (ja) * 2009-01-08 2010-07-22 Toshiba Corp デバッグ支援装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001154872A (ja) * 1999-11-25 2001-06-08 Nec Ic Microcomput Syst Ltd ソフトウェア開発支援装置、ソフトウェア開発支援方法、および、そのプログラムを記録した記録媒体
JP2006018684A (ja) * 2004-07-02 2006-01-19 Ntt Docomo Inc タスク管理システム
JP4668556B2 (ja) * 2004-07-02 2011-04-13 株式会社エヌ・ティ・ティ・ドコモ タスク管理システム
JP2008507767A (ja) * 2004-07-20 2008-03-13 ソフトリシティ インコーポレイテッド コンピュータアプリケーションにおけるデータ損失を最小限にする方法およびシステム
JP2006053760A (ja) * 2004-08-12 2006-02-23 Nippon Telegr & Teleph Corp <Ntt> バッファオーバーフロー脆弱性分析方法、データ処理装置、分析情報提供装置、分析情報抽出処理用プログラムおよび分析情報提供処理用プログラム
JP4643201B2 (ja) * 2004-08-12 2011-03-02 日本電信電話株式会社 バッファオーバーフロー脆弱性分析方法、データ処理装置、分析情報提供装置、分析情報抽出処理用プログラムおよび分析情報提供処理用プログラム
JP2009217503A (ja) * 2008-03-10 2009-09-24 Hitachi Ltd 計算機システム、計算機制御方法及び計算機制御プログラム
JP2010160704A (ja) * 2009-01-08 2010-07-22 Toshiba Corp デバッグ支援装置
US8347274B2 (en) 2009-01-08 2013-01-01 Kabushiki Kaisha Toshiba Debugging support device, debugging support method, and program thereof

Similar Documents

Publication Publication Date Title
JP4094724B2 (ja) ソフトウェアをデバッグする際に例外を識別するための装置および方法
US5748959A (en) Method of conducting asynchronous distributed collective operations
US5675800A (en) Method and apparatus for remotely booting a computer system
US5745770A (en) Method and apparatus for servicing simultaneous I/O trap and debug traps in a microprocessor
US5297274A (en) Performance analysis of program in multithread OS by creating concurrently running thread generating breakpoint interrupts to active tracing monitor
US20020004966A1 (en) Painting apparatus
US20030018691A1 (en) Queues for soft affinity code threads and hard affinity code threads for allocation of processors to execute the threads in a multi-processor system
EP0727742A2 (en) Method and apparatus for crash safe enforcement of mutually exclusive access to shared resources in a multitasking computer system
US20040123185A1 (en) Tools and methods for discovering race condition errors
US20030005417A1 (en) Debugger for a hardware-implemented operating system
US5680599A (en) Program counter save on reset system and method
US4045661A (en) Apparatus for detecting and processing errors
CA2373055A1 (en) Method and device for monitoring the creation and destruction of child processes within an application executing in a computer system
US20050097398A1 (en) Program debug method and apparatus
US20020099893A1 (en) System and method for the handling of system management interrupts in a multiprocessor computer system
JP2004501407A (ja) 呼出し元アドレスを使用した安全なソフトウェアsmiディスパッチング
US5363502A (en) Hot stand-by method and computer system for implementing hot stand-by method
JP2008513899A (ja) コンピュータシステム上でコンピュータプログラムを処理する方法
JPH0922369A (ja) マルチタスキング方式のカーネルにおける不正動作検出方法
US5862340A (en) Method operating in each node of a computer system providing and utilizing special records for collective communication commands to increase work efficiency at each node
US5257269A (en) Error controller for use in debugging microprocessor
US5758161A (en) Testing method for checking the completion of asynchronous distributed collective operations
JP3503504B2 (ja) デバッグ処理システムと計算機およびデバッグ処理方法
US6185700B1 (en) Method and device for evaluating a program
JP2002251299A (ja) プログラムトレース装置

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20021001