JP2004287810A - 不正アクセス防止システム、不正アクセス防止方法、および不正アクセス防止プログラム - Google Patents
不正アクセス防止システム、不正アクセス防止方法、および不正アクセス防止プログラム Download PDFInfo
- Publication number
- JP2004287810A JP2004287810A JP2003078558A JP2003078558A JP2004287810A JP 2004287810 A JP2004287810 A JP 2004287810A JP 2003078558 A JP2003078558 A JP 2003078558A JP 2003078558 A JP2003078558 A JP 2003078558A JP 2004287810 A JP2004287810 A JP 2004287810A
- Authority
- JP
- Japan
- Prior art keywords
- monitoring
- access
- unit
- event
- rule
- 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.)
- Granted
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
【解決手段】不正アクセス防止システムは、入出力装置と、サーバ装置と、アクセス判定部での操作の実行可否の判定に用いられる監視ルールを作成する機能を有するルール作成装置と、記憶装置とを備える。サーバ装置は、監視対象プログラムにもとづくプラットフォームに対する処理を仲介する機能と、仲介した操作の内容を一意に識別する文字列を生成する機能とを有するアクセス制御部と、監視ルールの内容にもとづいて、アクセス制御部から受信したイベントが示す操作の実行の可否を判定する機能を有するアクセス判定部とを含む。
【選択図】 図1
Description
【発明の属する技術分野】
本発明は、ソフトウェアの障害や設定の誤りにもとづく不正動作がなされることを防止する不正アクセス防止システム、不正アクセス防止方法、および不正アクセス防止プログラムに関する。
【0002】
【従来の技術】
近年のインターネットの普及に伴い、インターネットは電話網などと並ぶ重要な社会インフラとなりつつある。インターネットでは、ユーザは様々なサービスを受けることができる。インターネット上で提供されるサービスは、一般に、ユーザからの一連のリクエストを受け付け、受け付けたリクエストに応じた処理を実行し、その処理結果をユーザに送信することで実現されている。具体的には、WWW(World Wide Web)によるサービスが広く普及しており、現在では電子商取引などの様々なサービスの基盤となっている。
【0003】
上記のインターネット上で提供される様々なサービスは、インターネットに接続されたサーバと呼ばれるシステムによって実現されている。特に、インターネットに公開されたサーバは、匿名性の高い不特定多数のユーザからのリクエストを受け付けるため、いわゆるサイバー攻撃(サイバースペースへの攻撃)の対象となりやすく、セキュリティ上の大きな問題となっている。
【0004】
このような、公開サーバに対するサイバー攻撃の一つに、サーバの脆弱性(サーバソフトウェアの障害、サーバソフトウェアの設定ミス)を悪用し、サーバに悪意のあるリクエストを送りつけて不正動作させ、機密ファイルを盗むなどの悪意のある動作をさせるようにするものである。このようなサイバー攻撃は、「脆弱性攻撃」と呼ばれる。
【0005】
脆弱性攻撃は、理想的には、サーバの脆弱性を無くすことによって、未然に防止することができる。しかし、ソフトウェアの脆弱性を完全に無くすことは非常に困難であり、現実的には不可能である。また、ソフトウェアの作成者とサーバ運用者は一般には同一でないため、サーバ運用者がソフトウェアの仕様を誤解して、セキュリティ上問題のある設定をしてしまう可能性は排除することができない。
【0006】
従って、脆弱性攻撃を未然に防ぐための現実的な対処としては、システムの実際の動作を監視して、サーバ運用者が想定している通りの挙動を示していることを保証する仕組みが必要となる。なお、システムのあらゆる動作を監視する必要はなく、ファイルアクセスやネットワークアクセスのように、システムにリソースに対するアクセスを監視できればよい。なぜなら、システムのリソースの不正使用が、セキュリティ上の被害を引き起こす最も深刻な不正動作であるからである。
【0007】
現在の一般的なコンピュータアーキテクチャでは、サーバプログラムが単独でコンピュータ上で動作することはなく、オペレーティングシステム(OS)の上で動作する。そして、ファイル等の重要なシステムリソースに対するアクセスは、必ずOSを介して行なわれる。このようなソフトウェアの階層は、OS上で動作する処理系にも当てはまる。例えば、Java(登録商標)と呼ばれるプログラミング言語で記述されたサーバプログラムの場合、プログラムからのファイルアクセスは、まずJavaVM(Java Virtual Machine)を介して行なわれる。このように、システムリソースへのアクセスが必ず仲介される環境では、アクセス元(ユーザ等)からアクセス先(ファイル等)へのアクセス(システムコール等)の可否を、アクセス元やアクセス先のそれぞれに対してあらかじめ定めておくことにより、セキュリティ違反動作の防止を実現できる。これをアクセス制御技術と呼ぶ。なお、以下、アクセス元のことを「主体」、アクセス先のことを「対象」、アクセスのことを「操作」と呼ぶ。
【0008】
例えば、UNIX(登録商標)と呼ばれるOSは、ファイルの所有者、ファイルに設定されているグループに属するユーザ、それ以外のユーザの3種類の主体に対して、ファイルの読み込み、書き出し、実行の3種類の操作の可否を設定できる。これらの設定は、そのファイルを書き換え可能なユーザ(一般には、所有者からOSの管理者)以外は変更することができない。例えば、システムを構成するWWWサーバに未知の脆弱性があったとしても、機密ファイルはWWWサーバから読み出せないように設定しておけば、そのWWWサーバが不正ユーザの攻撃によって異常な動作をしても、機密ファイルが盗まれることはない。
【0009】
ファイルシステムと同様に、ネットワーク通信に対するアクセス制御も実現されている。例えば、UNIXオペレーティングシステム上で一般に使用されている「xinetd」というサーバプログラムは、ネットワーク経由のリクエストに対して、そのリクエストを処理する他のサーバプログラム(ftpサーバ、telnetサーバ等)を起動する一種のプラットフォームである。「xinetd」は、あるサーバプログラムが、どのホストからのリクエストのみを受け付ける、といった設定をすることができる。
【0010】
また、アクセス制御を行なう対象を、OS内部の広範なオブジェクトに適用する方式も提案されている。例えば、米国国家安全保障局(NSA)が研究用プロトタイプとして公開している「SELinux」が挙げられる(非特許文献1参照)。
【0011】
「SELinux」では、TCPソケットに対して、例えば図45に示すような各種の権限を設定することができる。例えば、WWWサーバに感染するインターネットワームの中には、WWWサーバの動作を乗っ取り、周辺のサーバに手当たり次第に接続し、ワームを伝染させる動作をするものがある。
【0012】
サーバプログラムは、原則として自発的にネットワーク接続することはないので、「SELinux」上では、WWWサーバに対して、「connectto」を許可しないことによって、このような動作を制限することができる。
【0013】
また、特定の対象への動作を、特定のユーザが特定のプログラムを使用した場合に限り許可するというように、細かく主体を設定することにより、セキュリティを向上させているものもある(特許文献1参照)。
【0014】
上記のような手法で特定の動作を制限するアクセス制御技術を、「従来技術1」と呼ぶことにする。
【0015】
一方、より高度なソフトウェアの動作保証の仕組みとして、サーバの動作履歴を利用したポリシー強制技術がある。例えば、EM(Execution Monitoring:実行の監視)と呼ばれるサーバの動作履歴に依存したポリシー強制技術がある(非特許文献2)。
【0016】
EMは、セキュリティオートマトンという有限状態機械(有限状態モデル)の一種によって、ソフトウェアの動作を規制する。ソフトウェアの個々の動作は、セキュリティオートマトンの状態遷移と関連付けられており、状態遷移が可能な動作のみが許容され、状態遷移が不可能な動作が生じた場合はそのソフトウェアは強制終了される。
【0017】
ここで、「有限状態機械」とは、システムをある有限な状態の集合で表し、システムの動作を、システムへの入力に応じた状態の遷移で記述したものを意味する。また、「セキュリティオートマトン」とは、ソフトウェアが実行してもよい動作がなされたときにのみ状態遷移が可能な有限状態機械を意味する。
【0018】
図46は、EMによる動作規制の例を示す説明図である。図46に示す例では、「FileRead」と「Send」という2つの操作の順序を規制しており、「FileRead」のあとに「Send」を実行してはならないことを表す。図46において、状態q1は初期状態を意味し、状態q2は状態q1であるときに「FileRead」が実行された場合に遷移する状態を意味する。
【0019】
図46に示す例では、最初は状態q1であるため、初期状態では「FileRead」も「Send」も実行可能である。状態q1であるときに「Send」が実行された場合、状態遷移901によって状態q1のままとなる。状態q1であるときに「FileRead」が実行された場合、状態遷移902によって状態q2に移行する。状態q2では、「FileRead」のみが実行可能である。状態q2であるときに「FileRead」が実行された場合、状態遷移903によって状態q2のままとなる。「Send」に対応する状態遷移は存在しないため、「Send」を実行しようとすると、プログラムが強制終了される。
【0020】
上記のような手法で特定の動作を制限するアクセス制御技術を、「従来技術2」と呼ぶことにする。
【0021】
【特許文献1】
特開2001−337864号公報
【非特許文献1】
「オペレーティングシステムのセキュリティ機能拡張の調査」、13情経第1179号、IPA/ISEC(情報処理振興事業協会セキュリティセンター)、平成13年度、概要調査編、p.I−5−I−13
【非特許文献2】
Fred Schneider(フレッド・シュナイダー)「Enforceable Security Policies(エンフォーサブル・セキュリティ・ポリシーズ)」、ACM Transactions on Information and System Security(エイシーエム・トランザクションズ・オン・インフォメーション・アンド・システムセキュリティ)、3巻1号、2000年2月、p.30―50
【0022】
【発明が解決しようとする課題】
上述した従来技術1のアクセス制御技術は、いずれも、アクセス制御の操作を細かく分類しているものの、アクセス制御の主体であるサーバプログラムの状態については一切関知しないものである。
【0023】
サーバプログラムは、一般的に複雑な内部状態を持ったプログラムであるため、より広範な不正動作を監視するには、上述した従来技術1によるアクセス制御では限界があり、適切に不正動作を監視することはできないという課題があった。
【0024】
例えば、理想的には、WWWサーバが自発的にネットワーク接続する動作を制限すれば、ワームの伝染を未然に防止できる。しかし、実際には、WWWサーバには、起動時に一度自発的にネットワーク接続を行うものがあるため、このようなWWWサーバの動作を適切に制限することはできない。このようなサーバの動作を適切に制限するためには、「ある時点まではconnectしてもよいが、ある時点以降はconnectしてはならない」という、状態依存のアクセス制御を設けることが必要となる。
【0025】
一方、上述した従来技術2では、サーバの状態に依存したアクセス制御を実現しているが、以下に示す課題を有している。
【0026】
第1の課題は、従来技術2のアクセス制御技術では、プログラムの動作の順序を制限する機能が与えられているが、操作の対象を限定した状態依存のアクセス制御の記述ができないことである。例えば、「open」、「read」、「close」という3つの操作がある場合、「openしたあとreadを実行しなくてはならない」といったルールを記述することはできるが、「ファイルAをopenしたあと、ファイルAをreadしてはならない」というように、操作の対象を限定する記述ができない。したがって、ファイルAを「open」したあと、ファイルBを「read」した場合も違反動作として検知されてしまう。従って、アクセス制御のルールの記述が困難なものとなり、アクセス制御の能力も限られてしまう。
【0027】
第2の課題は、通常のサーバ運用者にとっては、アクセス制御のルールの記述が困難であるという点にある。なぜなら、サーバ運用者は、対象とするサーバプログラムの大まかな仕様しか把握していないが、現実のサーバプログラムの動作は一般に非常に複雑であるためである。この問題は、従来技術1でも生じるが、従来技術2ではサーバの内部状態遷移を知る必要があるため、より難しくなる。誤ったルールを記述すると、正当な動作が不正なものとして制限されてしまうという問題が発生してしまうことになる。
【0028】
第3の課題は、違反動作が生じた際に、単に強制終了するだけなので、不正動作の内容に応じた対処ができない点にある。
【0029】
本発明は上述した問題を解消し、操作の対象を指定した状態依存アクセス制御機能を持つことができるようにすることを目的とする。また、アクセス制御のルールをより簡単に記述することができるようにすることを目的とする。さらに、状態依存アクセス制限に違反した動作が生じた際に、違反した内容に応じた対処を指定することができるようにすることを目的とする。
【0030】
【課題を解決するための手段】
上記の問題を解決するために、本発明の不正アクセス防止システム(例えば不正アクセス防止システム100)は、サーバ装置(例えばサーバ装置2)に搭載されているプラットフォーム(例えばプラットフォーム21b)が管理するリソースに対するアクセスを制御するアクセス制御手段(例えばアクセス制御部22)と、プラットフォームに対する監視対象の制御プログラム(例えば監視対象プログラム21a)にもとづく操作の履歴を記憶する履歴記憶手段(例えば状態変数記憶部23d)と、履歴記憶手段に記憶された操作の履歴にもとづいて、リソースへのアクセスを許可するか否かを判定するアクセス判定手段(例えばアクセス判定部23)とを備え、アクセス制御手段が、アクセス判定手段の判定結果(例えば図29において「許可」で終了したか「拒否」で終了したかの結果)に従ってリソースに対するアクセスを制御することを特徴とする。
【0031】
上記のように、監視対象の制御プログラムにもとづく操作の履歴を用いてアクセス制御を行う構成としたので、高機能なアクセス制御を実現することができる。この結果、制御プログラムの内部状態に依存したアクセス制御を実現することができ、制御プログラムの脆弱性に起因するセキュリティ違反動作を防止する能力が向上する。
【0032】
また、本発明の不正アクセス防止システム(例えば不正アクセス防止システム100)は、サーバ装置(例えばサーバ装置2)に搭載されているプラットフォーム(例えばプラットフォーム21b)が管理するリソースに対するアクセスを制御するアクセス制御手段(例えばアクセス制御部22)と、監視対象の制御プログラム(例えば監視対象プログラム21a)にもとづく規制対象とする操作順序を示す監視ルールを予め記憶する監視ルール記憶手段(例えば監視ルール記憶部42)と、制御プログラムのプラットフォームに対する一連の操作を監視して、当該一連の操作内容を示すイベント列を生成するイベント生成手段(例えばイベント生成部22b)と、イベント列と監視ルールとを比較することで、リソースへのアクセスを許可するか否かを判定(例えば、生成されたイベント列が、監視ルールにより禁止しようとしているイベント列であるか否かを判定する)するアクセス判定手段(例えばアクセス判定部23)とを備え、アクセス制御手段が、アクセス判定手段の判定結果に従ってリソースに対するアクセスを制御することを特徴とする。
【0033】
上記のように、イベント列と監視ルールとを比較することでアクセス制御を行う構成としたので、高機能なアクセス制御を実現することができる。この結果、制御プログラムの内部状態に依存したアクセス制御を実現することができ、制御プログラムの脆弱性に起因するセキュリティ違反動作を防止する能力が向上する。
【0034】
また、アクセス判定手段が、アクセス判定手段の判定結果が拒否であったことに応じて制御プログラムにもとづく操作を遮断する操作遮断手段(例えばステップS382にてプログラムを終了させる処理を実行させる手段)を含むように構成されていてもよい。
【0035】
上記の構成とすれば、アクセスを拒否すると判定されたときに、操作を遮断することができる。
【0036】
アクセス判定手段は、アクセス制御の対象となるリソース毎に、監視ルールに適合するイベント列のパターンに従った状態遷移を許容するための有限状態モデル(有限状態機械)を生成する有限状態モデル構築手段(例えば監視FSM構築部23b)と、リソースへのアクセスを許可するか否かの判定をするために当該有限状態モデルを実行する有限状態モデル実行手段(例えば監視FSM実行部23a)とを含むように構成されていてもよい。
【0037】
上記の構成とすれば、有限状態モデルを用いて高速に判定処理を行うことができるようになる。
【0038】
監視ルール記憶手段には、監視ルールに違反した操作がなされたときの対応処理を示す違反対応情報(例えば対応選択領域116で選択された対応を示す情報)が記憶され、監視ルールに違反した操作がなされたときに対応処理を実行する状態に遷移させるための有限状態モデルを生成する有限状態モデル構築手段(例えばアクセス判定・対応部24が有する監視FSM構築部23b)と、違反対応情報を出力するために当該有限状態モデルを実行する有限状態モデル実行手段(例えばアクセス判定・対応部24が有する監視FSM実行部23a)と、有限状態モデル実行手段からの違反対応情報が入力したことにもとづいて、当該違反対応情報が示す対応処理を実行する対応処理手段(例えば対応処理部51)とを備えていてもよい。
【0039】
上記の構成とすれば、アクセスを拒否すると判定されたときに、適切な対応処理をとることができるようになる。
【0040】
監視対象の制御プログラムの内容を解析するプログラム解析手段(例えば監視対象解析部33)と、プログラム解析手段による解析結果にもとづいて、監視ルール記憶手段に記憶されている監視ルールの修正または追加を行う監視ルール更新手段(例えば監視ルール作成部31)とを備えていてもよい。
【0041】
上記の構成とすれば、拒否すべきでないアクセスを拒否してしまうような不適切な監視ルールが生成されてしまうことを防止することができる。
【0042】
監視ルールの登録を行うルール登録手段(例えばルール作成装置3)を備え、ルール登録手段は、監視対象の制御プログラムを静的解析することで当該プログラムから生成され得るイベントのフローグラフを生成する監視対象解析手段(例えば監視対象解析部33)と、監視ポリシーの入力を受け付けて監視ポリシーを編集する監視ポリシー編集手段(例えば監視ポリシー編集部31a)と、監視ポリシーにもとづく監視ルールを作成するルール作成手段(例えばポリシー翻訳部31b)と、監視ルールとフローグラフとの整合性を検査する整合性検査手段(例えば整合性検査部31c)とを備え、整合性検査手段により整合がとれていると判定されたときに、監視ルールを監視ルール記憶手段に記憶させるように構成されていてもよい。
【0043】
上記の構成とすれば、拒否すべきでないアクセスを拒否してしまうような不適切な監視ルールが生成されてしまうことを防止することができる。
【0044】
整合性検査手段により不整合であると判定されたときに、不適切な監視ポリシーである旨を警告する警告出力手段(例えば対応処理装置5)を備えていてもよい。
【0045】
上記の構成とすれば、拒否すべきでないアクセスを拒否してしまうような不適切な監視ポリシーが指定されたときに、警告を発して監視ポリシーの変更や指定中止などを促すことができるようになる。
【0046】
監視ルールを作成するルール作成手段(例えばルール作成装置3)を備え、ルール作成手段は、監視対象の制御プログラムに対する正常な入力パターンを生成する正常入力生成手段(例えば正常入力生成部34a)と、正常な入力パターンによって生成されるイベント列を収集するイベント列収集手段(例えばイベント列収集部34c)と、イベント列が監視ルールに違反しているか否かを検査し、違反していると判定したときに警告を出力する違反検査手段(例えば違反検査部31d)とを含むように構成されていてもよい。
【0047】
上記の構成とすれば、拒否すべきでないアクセスを拒否してしまうような不適切な監視ポリシーが指定されたときに、警告を発して監視ポリシーの変更や指定中止などを促すことができるようになる。
【0048】
また、本発明の不正アクセス防止方法は、サーバ装置に搭載されているプラットフォームが管理するリソースに対するアクセスを制御するためにアクセス制御装置によって実行される不正アクセス防止方法であって、アクセス制御装置が、監視対象の制御プログラムにもとづく規制対象とする操作順序を示す監視ルールを予め監視ルール記憶手段に記憶し、制御プログラムのプラットフォームに対する一連の操作を監視して、当該一連の操作内容を示すイベント列を生成し、イベント列と監視ルールとを比較することで、リソースへのアクセスを許可するか否かを判定し、その判定結果に従って前記リソースに対するアクセスを制御することを特徴とする。
【0049】
上記のように、イベント列と監視ルールとを比較することでアクセス制御を行う構成としたので、高機能なアクセス制御を実現することができる。この結果、制御プログラムの内部状態に依存したアクセス制御を実現することができ、制御プログラムの脆弱性に起因するセキュリティ違反動作を防止する能力が向上する。
【0050】
さらに、本発明の不正アクセス防止プログラムは、サーバ装置に搭載されているプラットフォームが管理するリソースに対するアクセスを制御するための不正アクセス防止プログラムであって、コンピュータに、監視対象の制御プログラムのプラットフォームに対する一連の操作を監視して、当該一連の操作内容を示すイベント列を生成する処理と、イベント列と、制御プログラムにもとづく規制対象とする操作順序を示す監視ルールとを比較することで、リソースへのアクセスを許可するか否かを判定し、その判定結果に従ってリソースに対するアクセスを制御する処理とを実行させることを特徴とする。
【0051】
上記のように、イベント列と監視ルールとを比較することでアクセス制御を実行させる構成としたので、高機能なアクセス制御を実現することができる。この結果、制御プログラムの内部状態に依存したアクセス制御を実現することができ、制御プログラムの脆弱性に起因するセキュリティ違反動作を防止する能力が向上する。
【0052】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して説明する。
実施の形態1.
図1は、本発明の第1の実施形態における不正アクセス防止システム100の構成例を示すブロック図である。不正アクセス防止システム100は、入出力装置1と、サーバ装置2と、ルール作成装置3と、記憶装置4とを備える。不正アクセス防止システム100は、例えばWWWサーバやネットワークサーバとして機能するパーソナルコンピュータによって構成される。この不正アクセス防止システム100(主としてサーバ装置2)は、インターネットなどの通信ネットワークを介して情報の提供や受け付けなどの各種のサービスを実行する機能を有する。
【0053】
入出力装置1は、キーボードやマウスなどの入力部によって構成され例えばサーバ運用者によって操作される入力装置と、LCD(液晶表示装置)などの表示部によって構成される出力装置を含む。なお、出力装置は、プリンタなどの印刷部を含む構成とされていてもよい。
【0054】
サーバ装置2は、ROMやRAMなどの記憶媒体によって構成されるデータ記憶部21と、アクセス制御部22と、アクセス判定部23とを含む。サーバ装置2は、データ記憶部21に格納されている制御プログラムに従って動作を行う。
【0055】
データ記憶部21には、監視対象プログラム21aや、プラットフォーム21bなどの各種のデータが格納される。監視対象プログラム21aは、データ記憶部21に格納されている制御プログラムのうち、アクセス制御の対象とするものとしてあらかじめ定めらている制御プログラムである。制御プログラムには、例えばWWWサーバプログラムなどが挙げられる。プラットフォーム21bは、監視対象プログラム21aを含む各制御プログラムが動作する基盤ソフトウェアである。プラットフォーム21bには、例えばUNIXのようなOSやJavaVMなどが挙げられる。
【0056】
アクセス制御部22は、図2に示すように、操作仲介部22aと、イベント生成部22bと、対象属性記憶部22cとを含む。
【0057】
アクセス制御部22は、監視対象プログラム21aにもとづくプラットフォーム21bに対する処理(操作)を仲介する機能と、仲介した操作の内容を一意に識別する文字列(イベント)を生成する機能と、生成したイベントをアクセス判定部23に通知する機能とを有する。
【0058】
操作仲介部22aは、監視対象プログラム21aにもとづくプラットフォーム21bに対する操作が実行されるときに、イベント生成部22bを呼び出す処理を実行する。すなわち、操作仲介部22aは、プラットフォーム21bにあらかじめ組み込まれているリソースアクセス操作に対するフック機構として機能する。例えば、「SELinux」には、このような仕組みが用意されている。なお、操作仲介部22aを実現する機構がプラットフォーム21b上で用意されていない場合には、監視対象プログラム21aからプラットフォーム21bへの呼び出しを仲介するラッパープログラムを用意し、そのラッパープログラム用いてフックさせるようにすればよい。
【0059】
イベント生成部22bは、操作仲介部22aによって仲介された操作に対応するイベント(対象となる操作の内容を一意に識別する文字列)を生成し、生成したイベントをアクセス判定部23に送信する処理を実行する。
【0060】
アクセス判定部23は、図3に示すように、監視FSM実行部23aと、監視FSM構築部23bと、監視FSM記憶部23cと、状態変数記憶部23dとを含む。なお、「FSM」は、有限状態機械を意味する。
【0061】
アクセス判定部23は、監視ルール記憶部42に格納されている後述する監視ルールの内容にもとづいて、アクセス制御部22から受信したイベントが示す操作の実行の可否を判定する機能と、その判定結果をアクセス制御部22に通知する機能とを有する。
【0062】
ルール作成装置3は、監視ルール作成部31と、解析結果記憶部32と、監視対象解析部33とを含む。ルール作成装置3は、サーバ運用者によって指定された監視ポリシーにもとづいて、アクセス判定部23での操作の実行可否の判定に用いられる監視ルールを作成する機能を有する。「監視ポリシー」は、サーバ運用者によって指定されるアクセス制御の方策を意味する。「監視ルール」は、イベントが示す操作の実行を許可するか否かの判定の際に、アクセス判定部23によって参酌される規則を意味する。「監視ポリシー」はサーバ運用者側からみたアクセス制御での監視内容を示す情報であり、「監視ルール」はサーバ装置2側からみたアクセス制御で監視内容を示す情報である。
【0063】
監視ルール作成部31は、図4に示すように、監視ポリシー編集部31aと、ポリシー翻訳部31bと、整合性検査部31cとを含む。
【0064】
監視ルール作成部31は、入出力装置1からサーバ運用者によって入力された監視ポリシーと、解析結果記憶部32に記憶されている解析結果情報とにもとづいて、監視ルールを生成する機能と、生成した監視ルールを監視ルール記憶部42に格納させる機能とを有する。
【0065】
監視対象解析部33は、監視対象プログラム21aを解析し、その解析結果を解析結果記憶部32に格納する機能を有する。監視対象解析部33は、図5に示すように、構文解析部33aと、基本ブロック抽出部33bと、ライブラリ関数置換部33cと、イベントフロー生成部33dと、ライブラリ表記憶部33eとを含む。
【0066】
構文解析部33aは、監視対象プログラム21aから実行文リスト(図7参照)を生成する処理を実行する。基本ブロック抽出部33bは、構文解析部33aによって生成された実行文リストを解析し、基本ブロックを抽出し、後述する制御フローグラフ(図8参照)を生成する処理を実行する。
【0067】
ライブラリ関数置換部33cは、制御フローを構成する各基本ブロックに含まれているライブラリ関数呼び出しを、ライブラリ表記憶部33eに格納されているライブラリ表(図9参照)を用いて、プラットフォーム21b上の操作呼び出しに置き換える処理を実行する。すなわち、監視対象プログラム21aにもとづいて実行される制御を、プラットフォーム21bが実行する操作として表現する処理を実行する。具体的には、例えば、後述する図7に示す実行文リストにて「call文」によって呼び出される「fopen」「fread」「fclose」などの関数を、各関数に対応する操作フローグラフに置換する処理を実行する。
【0068】
ライブラリ表記憶部33eは、ライブラリ表を記憶する。イベントフロー生成部33dは、操作呼び出しをイベントに置き換えることにより、イベントのフローグラフ(図11参照)を生成する処理を実行する。
【0069】
構文解析部33aは、監視対象とするプログラムの実行形式の種類毎に用意される。監視対象プログラム21aの実行形式がPerlやPHPのようなスクリプト言語の場合、構文解析部33aは、そのスクリプト言語の構文解析器として機能する。監視対象プログラム21aの実行形式がC言語等で書かれたネイティブ実行形式の場合、構文解析部33aは、実行形式を逆アセンブルし、関数呼び出し・プロシージャ呼び出しをそのプラットフォームの慣習にもとづいて解釈し、実行にコールされているライブラリ関数・API(Application Programming interface)を特定する手段である。
【0070】
記憶装置4は、RAM、ROM、磁気ディスクなどの記憶媒体によって構成され、入出力装置1とサーバ装置2との間のデータの受け渡しを行なう役割を果たす。記憶装置4は、イベント表記憶部41と、監視ルール記憶部42とを含む。
【0071】
次に、本発明の第1の実施の形態における不正アクセス防止システム100の動作について説明する。
【0072】
先ず、イベントフローグラフを生成するためのイベントフローグラフ生成処理について説明する。図6は、イベントフローグラフ生成処理の例を示すフローチャートである。イベントフローグラフ生成処理は、制御対象プログラム21aの内容にもとづいて、イベントフローグラフを生成する処理である。イベントフローグラフ生成処理は、例えば、制御対象プログラム21aがサーバ装置2に搭載されたとき、あるいはサーバ運用者からの実行指示があったときに実行される。そして、監視対象プログラム21aに関するアクセス制御を遂行するために、監視対象プログラム21aにもとづくイベントフローグラフがあらかじめ生成されて記憶領域に格納される。
【0073】
イベントフローグラフ生成処理において、構文解析部33aは、監視対象プログラムの構文を解析してプログラムを構成する各文のリスト(実行文リスト)を生成する(ステップS601)。図7に示す実行文リストは、Intel X86系CPU用の実行コードを、構文解析部33aが処理することで生成したアセンブリ言語文のリストである。
【0074】
次いで、基本ブロック抽出部33bは、構文解析部33aによって生成された実行文リストを走査して基本ブロックを抽出し、制御フローグラフを生成する(ステップS602)。なお、「基本ブロック」とは、そのブロックの先頭から末尾まで順にコードが実行され、その末尾以外には分岐がないプログラム片をいう。また、「制御フローグラフ」とは、該当する監視対象プログラムに従って実行され得る制御の実行パターンを示すグラフをいう。
【0075】
具体的には、基本ブロック抽出部33bは、ステップS602にて、基本ブロックの先頭となる文(リーダ)を、以下に示す規則1〜規則3に従って決定する。
規則1:プログラムの最初の文をリーダとする。
規則2:分岐先となる文をリーダとする。
規則3:分岐文の直後の文をリーダとする。
【0076】
次いで、基本ブロック抽出部33bは、規則1〜規則3に従って決定したそれぞれのリーダに対し、次のリーダの直前の文まで、あるいはプログラムの末尾までをまとめて基本ブロックとする。
【0077】
図7は、実行文リストから抽出された基本ブロックの例を示す説明図である。図7に示すリストでは、文ST1が分岐文(「jz」は、条件分岐を意味する)であり、文ST2が分岐先の直後の文である。よって、この例では、上記の規則1〜規則3に従って、図7に示す「B1」,「B2」,「B3」の3つの基本ブロックが抽出される。図7は、実行文リストから抽出された基本ブロックの例を示す説明図である。
【0078】
基本ブロックB1,B2,B3を抽出すると、基本ブロック抽出部33bは、ステップS602にて、抽出した基本ブロックB1,B2,B3の各処理の遷移を示す制御フローグラフを生成する。
【0079】
具体的には、制御フローフラグの生成処理において、基本ブロック抽出部33bは、基本ブロックの末尾が条件分岐文(条件に応じて分岐することを示す文)の場合は、次の基本ブロックと、分岐先の基本ブロックにリンクを生成する。また、基本ブロックの末尾が無条件分岐文(常に分岐することを示す文)の場合は、分岐先の基本ブロックにリンクを生成する。そして、基本ブロックの末尾が分岐文でない場合は、次の基本ブロックとリンクを生成する。
【0080】
図8は、図7の実行文リストにもとづいて生成される制御フローグラフの例を示す説明図である。図8に示す制御フローグラフは、基本ブロックB1の処理が終了すると基本ブロックB2または基本ブロックB3に遷移し、基本ブロックB2が終了すると基本ブロックB3に遷移することを示す。
【0081】
なお、基本ブロック抽出部33bが実行する上述したステップS602の処理は、例えば、「Compilers, Principles, Techniques, and Tools;著者:A.Aho,R.Sethi,J.D.Ulman、1986年刊行、ISBN 0−201−10088−6(以下、「公知文献」という)」の第529頁、Algorithm9.1に記載されている公知の処理である。
【0082】
制御フローグラフが生成されると、ライブラリ関数置換部33cは、生成された制御フローグラフを、操作フローグラフに置換する処理を行う(ステップS603)。具体的には、ライブラリ関数置換部33cは、基本ブロック抽出部33bによって生成された制御フローグラフの基本ブロックに含まれているライブラリ関数呼び出し(例えば図7に示す「call文」)を、ライブラリ表記憶部33eに格納されているライブラリ表を参照して、対応する操作フローグラフに置き換える処理を行う。
【0083】
ライブラリ表記憶部33eには、ライブラリ関数名と、操作フローグラフとの組合せを複数含むライブラリ表が格納されている。「操作フローグラフ」は、対応するライブラリ関数が呼び出されたときに実行され得る操作の実行パターンを示すグラフをいう。なお、ライブラリ表は、プラットフォーム毎に予め作成され、ライブラリ表記憶部33eに予め格納されている。
【0084】
図9は、ライブラリ表記憶部33eに格納されているライブラリ表の例を示す説明図である。このライブラリ表には、「fopen」、「fread」、「fclose」の3つのライブラリ関数名と、それぞれの関数に対応する操作フローグラフとが記述されている。なお、操作フローフラグの各矢印に付加されたラベルが操作を表している。この例では、ラベル「ε」は、操作が生じないことを表す。よって、例えば図9に示す最上段の組合せは、「fopen」が呼び出された場合、「open」が実行されるか、何も実行されないかの何れかであることを意味する。
【0085】
図10は、図8に示されている制御フローグラフを、図9に示されているライブラリ表にもとづいて置換して得た操作フローグラフの例を示す説明図である。図10に示す操作フローグラフは、図8に示されている制御フローグラフの基本ブロックB1を「fopen」に対応する操作フローグラフに置換し、基本ブロックB2を「fread」に対応する操作フローグラフに置換し、基本ブロックB3を「fclose」に対応する操作フローグラフに置換することによって生成される。
【0086】
操作フローグラフが生成されると、イベントフロー生成部33dは、生成された操作フローグラフからイベントの生起順序を表すイベントフローグラフを生成する(ステップS604)。イベントフロー生成部33dは、ステップS604にて、イベント表記憶部41に格納されているイベント表を参照しつつ、操作フローグラフに含まれる操作をイベントに置き換える処理を行う。
【0087】
図11は、図10に示された操作フローグラフを、後述する図18に示すイベント表を参照して生成したイベントフローグラフの例を示す説明図である。図18を参照すると、操作「open」にはイベント「read_ open」とイベント「write_ open」とが対応付けされており、操作「read」にはイベント「read」が対応付けされており、操作「write」に対応付けされたイベントは存在せず、操作「close」にはイベント「close」が対応付けされている。従って、図10に示された操作フローグラフの操作「open」を「イベント「read_ open」またはイベント「write_ open」」に置換し、操作「read」をイベント「read」に置換し、操作「write」を削除し、操作「close」をイベント「close」に置換する処理を行うことで、図11に示すイベントフローグラフが生成される。
【0088】
イベントフローグラフが生成されると、イベントフロー生成部33dは、生成したイベントフローグラフを出力して解析結果記憶部32に格納させる処理を行う(ステップS605)。
【0089】
次に、監視ルールを作成するための監視ルール作成処理について説明する。図12は、監視ルール作成部31が実行する監視ルール作成処理の例を示すフローチャートである。ここでは、サーバ運用者による入出力装置1の操作によって指定された監視ポリシーにもとづいて、監視ルールを作成する処理が実行される。
【0090】
監視ルール作成処理において、監視ポリシー編集部31aは、入出力装置1の出力装置に監視ポリシー処理画面を表示させ(ステップS121)、入出力装置1からの監視ポリシーの指定を受け付ける(ステップS122)。
【0091】
図13〜図16は、監視ポリシー処理画面の例を示す説明図である。監視ポリシー編集部31aは、ステップS121及びステップS122にて、図13〜図16に示すような監視ポリシー処理画面を入出力装置1に表示させ、サーバ運用者からの監視ポリシーの指定を受け付ける。
【0092】
図13は、監視ポリシー一覧画面の表示状態の例を示す説明図である。図13に示すように、監視ポリシー一覧画面には、対象プログラム選択領域101と、型選択タブ102と、監視ポリシー表示領域103と、追加ボタン104と、削除ボタン105とが設けれられている。
【0093】
対象プログラム選択領域101には、プラットフォーム21b上で稼動するアクセスの対象となるプログラム(監視対象プログラムとなり得るプログラム)のリストが表示される。この例では、選択されているプログラムが、対象プログラム選択領域101の最上部に表示される。例えば、プログラムの表示部分がサーバ運用者によってマウスクリックされると、対象とするプログラムが切り替えられる。型選択タブ102は、「ファイル」や「ネットワーク」などのアクセス制御の対象の型を選択するためのタブである。型選択タブ102がサーバ運用者によってマウスクリックされると、アクセス制御の対象の型が切り替えられる。監視ポリシー表示領域103には、既に設定されている監視ポリシーのうち、選択されている監視対象プログラムにおける選択されている型についての監視ポリシーの内容が一覧表示される。図13では、「WWWサーバ[/usr/sbin/httpd]に対して、クライアントからのネットワーク接続後は、ファイル[/etc/passwd]を読み出すことを禁止する」という設定済の監視ポリシーが表示されている。追加ボタン104は、監視ポリシーを追加するときに、例えばマウスクリックによって押下されるボタンである。また、削除ボタン105は、設定されている監視ポリシーを削除するときに、例えばマウスクリックによって押下されるボタンである。
【0094】
監視ポリシー一覧画面が表示されると、サーバ運用者は、入出力装置1を操作して、型選択タブ102をクリックすることでアクセス制御の対象の型を選択するとともに、対象プログラム選択領域101に表示されているプログラムのリストから、主体となるプログラム(例えば監視対象プログラム21a)を選択する。そして、対象プログラム選択領域101にて選択されているプログラムに対して監視ポリシーの追加を行うときには、サーバ運用者は、入出力装置1を操作して、追加ボタン104をクリックする。
【0095】
図14は、監視ポリシー追加画面の例を示す説明図である。監視ポリシー追加画面は、監視ポリシー一覧画面において追加ボタン104が押下されると入出力装置1の表示画面に表示される。監視ポリシー追加画面には、図14に示すように、アクセス制御の対象を選択させるため対象選択領域111と、アクセス制御の操作を選択させるための操作選択領域112と、選択されているアクセス制御の条件が表示される条件表示領域113と、追加ボタン114と、削除ボタン115とが設けれられている。
【0096】
監視ポリシー追加画面上で、サーバ運用者は、アクセス制御の「対象」および「操作」を指定するとともに、必要に応じて「条件」を指定する。具体的には、対象選択領域111にて、アクセス制御の「対象」として、特定のファイルを直接指定するか、または任意のファイルを指定することができる。任意のファイルを指定した場合、全てのファイルがアクセス制御の「対象」となる。「対象」を指定したあと、アクセス制御を行う「操作」を指定する。これは、操作選択領域112に提示された操作の中から例えばマウスクリックによって選択する。また、操作選択領域112にて、選択した操作を禁止するのか、選択した操作のみ許可するのかを、操作選択領域112内に設けられているラジオボタン112aを用いて指定する。その後、必要に応じて、アクセス制御の「条件」を指定する。選択されているアクセス制御の「条件」は、条件表示領域113に一覧表示される。アクセス制御の「条件」を追加する場合には、追加ボタン114を押下し、削除する場合には削除ボタン115を押下する。
【0097】
図15は、条件追加画面の例を示す説明図である。条件追加画面は、監視ポリシー追加画面において追加ボタン114が押下されると入出力装置1の表示画面に表示される。条件追加画面には、図15に示すように、アクセス制御条件とする「操作」を選択させるため条件操作選択領域121と、アクセス制御条件とする「対象」を選択させるための条件対象選択領域122とが設けれられている。
【0098】
条件追加画面上で、サーバ運用者は、アクセス制御の条件とする「操作」および「対象」を選択する。具体的には、条件操作選択領域121にて、アクセス制御の条件とする「操作」として、どの型についてのどの操作であるかを選択する。どの型とするかは、型指定領域121aのラジオボタンを押下することで指定される。どの操作とするかは、操作指定領域121bに一覧表示されている各操作の中から選択する。また、アクセス制御条件とする「対象」を、条件対象選択領域122にて、監視ファイル(対象選択領域111にて指定されているファイルを意味する)を指定するか、特定のファイルを直接指定するか、または任意のファイルを指定する。どのファイルを対象とするかは、条件対象選択領域122内に設けられているラジオボタンを押下することで指定される。
【0099】
なお、図15に示す条件追加画面は、型指定領域121aにて型が指定されると、操作指定領域121bの表示内容が指定された型に合致した「操作」の一覧に切り替えられるとともに、条件対象選択領域122の表示内容も指定された型に合致した内容に切り替えられる。
【0100】
図16は、図15に示す画面において型指定領域121aの型「ネットワーク」が指定されたときの条件追加画面の例を示す説明図である。図16に示すように、型指定領域121aにて型「ネットワーク」が指定されているときには、条件操作選択領域121cにネットワークに関する操作の一覧が表示され、条件対象選択領域122にはネットワークに関連する対象を選択し得るような表示がなされる。
【0101】
図13〜図16の画面上の操作によりサーバ運用者が必要事項を入力すると、監視ポリシー編集部31aによって、サーバ運用者によって指定された監視ポリシーが受け付けられる。受け付けされた監視ポリシーは、「ある主体(領域101で指定)が、ある対象(領域111で指定)に対して、ある操作を禁止/ある操作のみ許可する(領域112で指定)ことを、それ以前に生じたその対象に対する操作/他の任意の対象に対する操作/他の特定の対象に対する操作(領域121,領域122で指定)の有無によって決定する」と編集される。
【0102】
監視ポリシー編集部31aによって監視ポリシーが受け付けられると、ポリシー翻訳部31bは、受け付けられた監視ポリシーを監視ルールに変換する処理を行う(ステップS123)。
【0103】
監視ルールは、「ある主体が、ある対象に対して実行してはならない操作のパターン」を、イベントの生起パターンによって記述したものである。監視ルールは、この例では、±(s,t:o,p,a)という式の集合で記述される。この式は、±(<主体>,<型>:<対象>,<パターン>,<操作>)のことである。具体的には、監視ルールを示す上記の式は、主体「s」による、型「t」を持つ対象「o」に対する操作「a」が、パターン「p」で表される前提条件が満たされる場合に限り、許可される「+」か拒否される「−」かを指定することを意味する。
【0104】
なお、<操作>はイベント名で表され、<パターン>は例えば図17に示す文法を用いた表現とされる。<パターン>は、図17に示す文法を1または2以上用いた表現とされる。図17には、複数種類の前提条件を示すパターンの文法の例が示されている。文法R11「a」は、操作「a」が監視ルール中に記載された対象(ここでは対象「o」)に対して生じることを前提条件とするときに用いられる。文法R12「t’:a」は、型「t’」の操作「a」が任意の対象(対象「o」は型「t」の対象であり、監視ルール中に型「t’」の対象が記述されていないため、任意と対象となる)に対して生じることを前提条件とするときに用いられる。文法R13「t’:a[o’]」は、型「t’」の操作「a」が対象「o’」に対して生じることを前提条件とするときに用いられる。文法R14「.」は、任意の操作が対象「o」に対して生じることを前提条件とするときに用いられる。文法R15「!a」は、「a」以外の任意の操作が、対象「o」に対して生じることを前提条件とするときに用いられる。文法R16「t’:!a」は、型「t’」の、「a」以外の任意の操作が、任意の対象に対して生じることを前提条件とするときに用いられる。文法R17「t’:!a[o’]」は、型「t’」の、「a」以外の任意の操作が、対象「o’」に対して生じることを前提条件とするときに用いられる。
【0105】
また、文法R18「A?」は、パターンAが0回か1回生じるパターンを前提条件とするときに用いられる。文法R19「A*」は、パターンAが0回以上続けて生じるパターンを前提条件とするときに用いられる。文法R20「A+」は、パターンAが1回以上続けて生じるパターンを前提条件とするときに用いられる。文法R21「AB」は、パターンAとパターンBとが連続して生じるパターンを前提条件とするときに用いられる。文法R22「A|B」は、パターンA又はパターンBの何れかが生じるパターンを前提条件とするときに用いられる。
【0106】
例えば、監視ポリシーにおける<主体>が[”/sbin/httpd” ]であり、<対象>が[”/etc/passwd”]であり、<型>が[file]であり、<パターン>が「操作aが対象oに対して生じる(図17の文法R11)」であり、<操作>が[b]である場合には、ステップS123にて、監視ルールを示す基本式に各項目が代入され、±(”/sbin/httpd”,file:”/etc/passwd”,a,b)という監視ルールが生成される。
【0107】
図18は、イベント表記憶部41に記憶されているイベント表の一部を示す説明図である。イベント表は、監視対象プログラム21aによる「操作」を、アクセス判定部23で解釈可能な「イベント」に翻訳するために使用される。図18に示すように、イベント表には、型、イベント名、操作、条件、対象、および処理が対応付けされて記述されている。イベント表には、ある操作が、どのような型とイベント名を持つかについても設定されていることになる。
【0108】
なお、図18において、$1は第1引数を意味し、$2は第2引数を意味する。また、図18に示す「処理」は、「操作」から「イベント」に翻訳(置換)する際に必要とされる処理を意味する。
【0109】
ステップS123にて、図14等の画面を用いて指定された監視ポリシーは、図19に示す監視ルールに変換される。すなわち、図13〜図15にて指定された監視ポリシーは、<主体>が[”/usr/sbin/httpd” ]であり(領域101で選択された監視対象プログラムを示す文字列)、<対象>が[”/etc/passwd”]であり(領域111で指定されたオブジェクトを表す文字列)、<型>が[file]であり(選択タブ102で選択された対象の型)、<パターン>が「クライアントから接続、またはファイルの属性変更の何れかが生じる」であり(領域121、領域122で指定された前提条件のパターン)、<操作>が[読み込みを禁止]である(領域112aで指定された許可/禁止の別)。
【0110】
このため、<主体>に[”/usr/sbin/httpd” ]を代入し、<対象>に[”/etc/passwd”]を代入し、<型>に[file]を代入する。また、クライアントからの接続を示す「net:connect」と、ファイルの属性変更を示す「chmod」とを図17の文法R22を用いて連結した[(net:connect | chmod)]に、図17の文法R14と文法R19との文法を示すパターンを連結した”.*”を付加したものを<パターン>に代入する。さらに、<操作>が[読み込みを禁止]であり「禁止」とされているため、式の先頭の符号を「−」とし、図18を参照して「読み込み」を示す操作「read」に対応するイベント名[read]を<操作>に代入する。このように、ユーザインタフェース上の表示を、イベント表を参照するなどして置換していくことで、図19に示す監視ルールが生成される。
【0111】
監視ルールを生成すると、整合性検査部31cは、生成した監視ルールと、イベントフローグラフとを比較することによって、整合性検査を行う(ステップS124)。
【0112】
図20は、整合性検査処理(ステップS201〜ステップS203)および反例推薦処理(ステップS204〜ステップS206)の例を示すフローチャートである。整合性検査処理では、監視対象プログラムからあらかじめ抽出されているイベントフローグラフと、ステップS123で生成された監視ルールとを比較することによって、整合性検査が行われる。イベントフローグラフは、あらかじめ監視対象解析部33によって監視対象プログラム21aを解析することによって作成され、解析結果記憶部32に格納されている。
【0113】
整合性検査処理において、整合性検査部31cは、重なり検査処理によって、解析結果記憶部32に格納されたイベントフローグラフによって生じるイベント生起パターンが、監視ルールによって表される禁止パターンに含まれるかどうか検査する(ステップS201)。
【0114】
ステップS201では、監視ルールを示す非決定性有限オートマトンと、イベントフローグラフを示す非決定性有限オートマトンとを用いて整合性検査を行う。
【0115】
まず、監視ルールは、図21に示す処理によって、非決定有限オートマトンを表す正規表現に変換できる。先ず、±(s,t:o,p,a)という符合付きの監視ルールの符号表示を消去するための変換処理を行う(ステップS211)。この例では、「+」の符号が付されている場合には、符号を除去するとともに、パターンと操作を示す「p,a」を操作「p !a」に置換する変換処理を実行する。また、「−」の符号が付されている場合には、符号を除去するとともに、パターンと操作を示す「p,a」を操作「p a」に置換する変換処理を実行する。
【0116】
次いで、主体「s」、型「t」および対象「o」が共通の監視ルールを1つの監視ルールに統合するための変換処理を行う(ステップS212)。この例では、操作、パターン、および符号を示す部分を、q1,q2,・・・,に置換するとともに、置換したq1,q2,・・・,を、s,t,oが同一である監視ルールについて連結することで統合される。具体的には、図21に示す例では、「p!a」を「q1」に置換し、「p a」を「q2」に置換し、「s,t,o」が同一である2つの監視ルールを、「q1」と「q2」とを連結した「q1|q2」することで1つの監視ルールに統合する。
【0117】
そして、全てのパターンの先頭に”.*”というパターンを追加する置換処理を行う(ステップS213)。
【0118】
上記手続きにより生成された監視ルール(s,t:o,q)の「q」は、主体「s」が型tの対象「o」に対して実行してはならない操作の系列を受理する有限オートマトンを生成するためのアルゴリズムを使用して、非決定性有限オートマトンに変換できる。上記の有限オートマトンを生成するためのアルゴリズムは、例えば、参考文献の第122頁、Algorithm3.3などに記載されている公知のアルゴリズムであるため、ここでの詳細な説明は省略する。
【0119】
一方、イベントフローグラフ(図11参照)は、イベントを入力アルファベットとする非決定性有限オートマトンそのものである。
【0120】
監視ルールを示す非決定性有限オートマトンをA、イベントフローグラフを示す非決定性有限オートマトンをBとし、AとBの両方で受理可能なイベント列のみを受理するオートマトンA∩Bを構築することで、A∩Bが空である(受理可能なイベントがない)かどうかを検査することができる。A∩Bが空である場合には重なりなしと判定し、空でない場合には重なりありと判定する。
【0121】
A∩Bは、Aの状態とBの状態の直積(組み合わせ)を状態とする有限オートマトンを考え、Aの状態遷移とBの状態遷移を掛け合わせたものを各状態間の遷移とすることによって構築できる。
【0122】
重なり検査処理(ステップS201)によって重なりが検出されたということは、監視ルールによって禁止しようとしているイベント列が、適切なサーバ運用時に発生し得るイベント列であることを意味する。従って、検出されたときには(ステップS202のY)、監視ルールに誤りがある可能性があるので、警告をサーバ運用者に提示する(ステップS203)。この警告は、例えば入出力装置1に警告表示を行うものであっても、スピーカから警告音を出力するものであっても、警告用のランプなどを点灯させるものであってもよい。
【0123】
この例では、整合性検査処理のあと、さらに推薦提案処理が実行される。なお、整合性検査処理と推薦提案処理とを連続して実行する必要はなく、別個のタイミングで別個に処理が行われるようにしてもよい。
【0124】
推薦提案処理において、整合性検査部31cは、反例として取り扱うことのできるイベントを示す判例イベントを抽出する処理を実行する(ステップS204)。「反例イベント」とは、プラットフォーム21b上で実行されるイベントであるが、監視対象プログラム21aにもとづく制御の実行中には出現しないイベントを意味する。すなわち、「反例イベント」は、イベント表に定義されているが、イベントフローグラフには現れないイベントである。よって、整合性検査部31cは、ステップS204にて、イベント表に定義されているイベントのうち、解析結果記憶部32に格納されているイベントフローグラフに含まれないイベントがあるか否か確認し、そのようなイベントが存在していれば、反例イベントとして抽出する処理を行う。
【0125】
次いで、整合性検査部31cは、抽出した反例イベントが有効反例であるか否か判定する(ステップS205)。ステップS205では、監視ルールの中に、反例イベントの実行を禁止するルールが含まれていなければ、その反例イベントが有効反例であると判定する。有効判例であると判定した場合には(ステップS205のY)、整合性検査部31cは、有効反例とされた反例イベントの実行を禁止を指定する監視ポリシーの追加の推薦提案をユーザに提示する(ステップS206)。この推薦提案は、例えば、入出力装置1の出力部に、推薦提案を示す文章を表示することで行われる。
【0126】
サーバ運用者は、入出力装置1を操作して、監視ポリシー編集手段31aを通じて、提示された警告や推薦にもとづく監視ポリシーの修正や追加を行う。
【0127】
そして、整合性検査部31cは、重なり検査処理(ステップS201)によって重なりが検出されなかった監視ルールを、監視ルール記憶部42に格納する。監視ルール記憶部42に格納された監視ルールは、監視対象プログラム21aの運用動作時に、サーバ装置2のアクセス判定部23によって読み込まれてアクセス許可/拒否の判定に用いられる。よって、アクセス判定部23の判定結果にもとづく監視対象プログラム21aのアクセス制御がアクセス制御部22を通じて実現される。
【0128】
次に、アクセス制御部22が実行するイベント生成処理について説明する。図22は、イベント生成処理の例を示すフローチャートである。イベント生成処理では、イベント生成部22bが、操作仲介部22aによって仲介された操作についてのイベントを生成する処理が実行される。
【0129】
イベント生成処理において、イベント生成部22bは、先ず、イベント表(図18参照)の操作名欄と条件欄を調べ、操作仲介部22aによって仲介された操作と、操作名が一致し、かつ、条件欄の評価結果が真であるレコードを検索する(ステップS221)。
【0130】
一致するレコードがなければ、イベント生成部22bは、プラットフォーム21bの操作呼び出しを行い(ステップS225)、イベントを生成せずに処理を終了する。
【0131】
一致するレコードがあれば、イベント生成部22bは、(s,t:o,a)という記述で表されるイベントを生成する(ステップS222)。イベント(s,t:o,a)は、監視対象プログラム21aのプログラム名を「s」、イベント欄に記述されたイベント名を「a」、対象欄の評価結果を「o」、型欄に記述された型名を「t」として生成されてものである。
【0132】
イベント生成部22bによって生成されたイベントは、アクセス判定部23に送信され、アクセス判定部23からの結果を待つ(ステップS223)。結果が「拒否」である場合には(ステップS224のN)、そのまま処理を終了する。結果が「許可」である場合は(ステップS224のY)、プラットフォーム21bの操作呼び出しを行う(ステップS226)。操作呼び出し後、一致したレコードの処理欄に処理が指定されていれば(ステップS227)、その処理を実行し(ステップS228)、イベント生成処理を終了する。
【0133】
次に、監視FSM構築部23bが実行する有限状態機械(FSM)の生成処理について説明する。図23は、有限状態機械生成処理の例を示すフローチャートである。有限状態機械生成処理では、生成されて監視ルール記憶部42に格納された監視ルールにもとづいて、有限状態機械を生成する処理が実行される。
【0134】
有限状態機械生成処理において、監視FSM構築部23bは、±(s,t:o,p,a)という符合付きの4つの組で記述されていた監視ルールを、符号なしの3つの組(s,t:o,q)の形式に変換する(ステップS231)。次いで、監視FSM構築部23bは、主体「s」と、型「t」と、対象「o」とが同一である複数の監視ルールを、一つの監視ルールに統合する処理を行う(ステップS232)。そして、監視FSM構築部23bは、全てのパターンの先頭に「.*」というパターンを追加する(ステップS233)。なお、ステップS231〜ステップS233は、上述したステップS211〜ステップS213と同様であるため、その詳細な説明は省略する。
【0135】
上記のステップS231〜ステップS233により生成された監視ルール(s,t:o,q)の「q」は、主体「s」が対象「o」に対して行ってはならない操作の系列のみを受理する有限オートマトンを表す正規表現となる。
【0136】
例えば、ステップS231〜ステップS233の処理によって、図24のR31〜R34に示される監視ルールから、図25に示すR41〜R43に示す有限状態機械が生成される。具体的には、R31からR41が、R32とR33からはR42が、R34からはR43が生成される。
【0137】
次に、監視FSM構築部23bは、生成された有限状態機械から固有イベントを抽出する処理を実行する(ステップS234)。「固有イベント」とは、有限状態機械を示す正規表現中に現れるイベントの型と名前の部分をいう。よって、ステップS234では、有限状態機械からイベントの型と名前を抽出する処理が実行される。例えば、有限状態機械R41には、「net:connect」、「chmod」、「read」の3つのイベントしか記述されない。従って、固有イベントは「net:connect」、「chmod」、「read」となる。
【0138】
次に、監視FSM構築部23bは、有限状態機械を示す正規表現を、固有イベントと「oに対する固有イベント以外のイベント」を意味する特別なイベントγを入力とする決定性有限オートマトンに変換し、構築された決定性有限オートマトンから、受理状態と受理状態に遷移する状態遷移を取り除く。
【0139】
なお、正規表現を決定性有限オートマトンに変換するアルゴリズムは、例えば、公知文献の第140頁、Algorithm3.5に記載されている。
【0140】
このようにして生成された状態遷移機械が、プログラム「s」のオブジェクト「o」に対する監視FSMとなる。FSMの実体は、行に状態、列にイベントを列挙し、表の要素(m,n)には、状態mでイベントnが入力された場合の遷移先の状態を記述した状態遷移表として表すことができる。例えばR41は図26に示す監視FSMに変換され、この監視FSMは図27に示す状態遷移表で表すことができる。
【0141】
以上の手続きにより、ある(s,o)の組みに1つにつき1つの監視FSMが生成され、最後に、FSM表格納部によって、生成した監視FSMに、それぞれ1以上の番号による識別子(FIDと呼ぶ)を割り振り、(FID,状態遷移表,s,o,固有イベント)の組にして、順に監視FSM記憶部23cに格納する。
【0142】
図28は、図24に示される監視ルールが監視ルール記憶部に格納されている場合に、監視FSM構築部23bによって、監視FSM記憶部23cに格納される監視FSM表の例である。
【0143】
次に、上記の手順によって作成された監視FSMを解釈実行する監視FSM実行処理について説明する。図29は、監視FSM実行部23aが実行する監視FSM実行処理の例を示すフローチャートである。監視FSM実行部23aがアクセス制御部22からイベント(s,t:o,a)を受信すると、それを受理する監視FSMを監視FSM表から検索する(ステップS291)。監視FSM表の主体欄がsに一致し、かつ、対象欄と固有イベントが図30に示す比較処理で一致するものがあれば、受理する監視FSMとなる。例えば、監視FSM表が図28である場合に、(”/usr/sbin/httpd”,file:”/etc/passwd”,chmod)というイベントを受信したとき、ルールR61によって監視FSM表のR51が検索される。
【0144】
次に、検索された監視FSMのFIDと、受信したイベント中のs,t,oをキーにして、状態変数記憶部23dから現在状態(どの監視FSMにおけるどの状態であるかを意味する。よって、具体的にどのような遷移をしてきたかは必ずしも把握できないが、有限状態モデルにおけるどの状態にあるのかが把握できるため、現在状態が「操作の履歴」を示すことになる。)を検索する(ステップS292)。なお、初期状態では、状態変数記憶部23dは空である。
【0145】
記憶済みであれば、検索された状態変数を現在状態として、監視FSMを状態遷移する。記憶済みでない場合には、初期状態を現在状態として、監視FSMを状態遷移する。状態遷移に失敗した場合は、適正な状態遷移でなく不正な動作が実行されるおそれがあるため、監視FSM実行部23aは、処理を終了し、アクセス制御部22に「拒否」を返す。状態遷移に成功した場合、s,t,oと検索された監視FSMのFIDをキーにして、状態変数の値を状態変数記憶部23dに格納する。ただし、遷移後の状態変数の値が初期状態である場合は、メモリを節約するために格納しなくてもよい。
【0146】
例えば、監視FSM表が図28である場合に、(”/usr/sbin/httpd”,file:”/etc/passwd”,chmod)というイベントを受信したとき、ステップS296実行後の状態変数記憶部23dの表は図31のようになる。
【0147】
上記の処理を、検索されたFSMの数だけ繰り返し、全ての遷移が成功した場合は、監視FSM実行部23aは、終了し、アクセス制御部22に「許可」を返す。
【0148】
以上のように、第1の実施の形態では、監視対象の制御プログラムにもとづく操作の履歴を用いてアクセス制御を行う構成としたので、高機能なアクセス制御を実現することができる。この結果、制御プログラムの内部状態に依存したアクセス制御を実現することができ、制御プログラムの脆弱性に起因するセキュリティ違反動作を防止する能力を向上させることができる。
【0149】
また、第1の実施の形態では、監視ルール作成装置3によって、対象とするオブジェクト毎の状態依存アクセス制御を記述する監視ルールを作成して、監視ルール記憶部42に保存し、その監視ルールを用いてサーバ装置2内で状態依存アクセス制御を行うことにより、操作の対象を限定したアクセス制御を実現している。従って、操作の対象を指定した状態依存アクセス制御機能を持つ不正アクセス防止システムを実現することができる。
【0150】
また、監視FSM構築部23b、監視FSM実行部23aにより、監視ルールをFSMに変換することによって、高速なアクセス制御を実現している。
【0151】
また、監視ルール作成部31とアクセス判定部23がイベント表記憶部41に格納されたイベント表を共有することにより、監視対象プログラム21aのプラットフォーム21bに対する詳しい知識なしにサーバ運用者が状態依存アクセス制御ルールを記述することができる。また、監視ポリシー編集部31aと、ポリシー翻訳部31bにより、サーバ運用者が正規表現の知識無しに状態依存アクセス制御ルールを記述することができる。よって、アクセス制御のルールをより簡単に記述することができるようになる。
【0152】
また、監視対象解析部によって監視対象プログラムを解析し、その結果を利用して整合性検査手段で重なり検査を行うことにより、サーバ運用者による監視ポリシーの記述ミスを発見・修正することができる。
【0153】
実施の形態2.
図32は、本発明の第2の実施の形態における不正アクセス防止システムの構成の例を示すブロック図である。以下の説明において、上述した第1の実施の形態における不正アクセス防止システム100と同一の構成および処理を行う部分については、同一の符号を付与してその詳細な説明を省略する。
【0154】
第2の実施の形態では、上述した第1の実施の形態の内容に加えて、監視ポリシーに反する動作が生じた場合に、適切な対応処理を行うことを実現する。対応処理とは、サーバ運用者に電子メールで異常を通知したり、監視対象プログラムを強制終了させたり、ネットワークを遮断してサーバを外部ネットワークから切り離したりすることである。
【0155】
図32に示すように、不正アクセス防止システム100aは、入出力装置1と、サーバ装置2aと、ルール作成装置3と、記憶装置4と、対応装置5とを備える。不正アクセス防止システム100aは、例えばWWWサーバやネットワークサーバとして機能するパーソナルコンピュータによって構成される。
【0156】
サーバ装置2aは、データ記憶部21と、アクセス制御部22と、アクセス判定・対応部24とを含む。対応装置5は、対応処理を実行する対応処理部51を含む。
【0157】
図33は、アクセス判定・対応部24の構成例を示すブロック図である。図33に示すように、アクセス判定・対応部24は、監視FSM実行部23aと、監視FSM構築部23bと、監視FSM記憶部23cと、状態変数記憶部23dとを含む。
【0158】
図34は、監視ポリシー追加画面の例を示す説明図である。この例では、図34に示す監視ポリシー追加画面では、図14に示した監視ポリシー追加画面と比較して、対応の種類を選択するための対応選択領域116が追加されている。対応選択領域116には、「プログラムを終了」、「ネットワークを遮断」、「なし」の3種類の対応が用意されている。よって、この例では、サーバ運用者は、対応選択領域116にて対応の種類を指定することにより、監視ポリシーそれぞれについて、個別の対応処理の内容を指定することができる。
【0159】
対応選択領域116にて指定された対応処理の内容は、監視ルールに反映される。この実施の形態では、監視ルールは、±(s,t:o,a,p,w)という形式で表される。「w」は、対応処理識別子を表す。例えば、図34に示す内容の監視ポリシーが指定されたことによって生成される監視ルールは、「−(/usr/sbin/httpd,file:”/etc/passwd”,(net:connect | chmod)).*,read,terminate)」のようになる。なお、「terminate」は、サーバを強制終了させるという対応処理を表す識別子である。
【0160】
図35は、第2の実施の形態における有限状態機械生成処理の例を示すフローチャートである。有限状態機械生成処理において、監視FSM構築部23bは、±(s,t:o,p,a,w)という符合付きの5つの組で記述されていた監視ルールを、符号なしの4つの組(s,t:o,q,w)の形式に変換する(ステップS351)。次いで、監視FSM構築部23bは、主体「s」と、型「t」と、対象「o」とが同一である複数の監視ルールを、一つの監視ルールに統合する処理を行う(ステップS352)。そして、監視FSM構築部23bは、全てのパターンの先頭に「.*」というパターンを追加する(ステップS353)。なお、ステップS351〜ステップS353は、上述したステップS211〜ステップS213と同様であるため、その詳細な説明は省略する。
【0161】
次に、監視FSM構築部23bは、生成された有限状態機械から固有イベントを抽出する処理を実行する(ステップS354)。
【0162】
次に、監視FSM構築部23bは、有限状態機械を示す正規表現を、固有イベントと「oに対する固有イベント以外のイベント」を意味する特別なイベントγを入力とする決定性有限オートマトンに変換し、構築された決定性有限オートマトンから、受理状態と受理状態に遷移する状態遷移を取り除く(ステップS355)。
【0163】
この例では、第1の実施の形態と異なり、同じs,oを対象とするルールを統合する際に、末尾に#w1、#w2という対応処理識別子と1対1で対応するダミーイベントを追加しておく(ステップS352参照)。その結果、q1とq2が同じイベントである場合でも、対応処理が異なれば、必ず異なる受理状態を持つ決定性有限オートマトン(DFA)を生成することができる。このようにして生成されたDFAから、受理状態を取り除き、さらに受理状態への遷移(#1)を持つ状態に、wというラベルを設定し、その状態からの遷移を取り除く。この手順によって、違反動作が生じた場合にのみ、その違反動作を記述していた監視ルールの対応処理識別子wをラベルに持つ状態に遷移するFSMを生成できる。
【0164】
例えば、監視ルール「−(/usr/sbin/httpd,file:”/etc/passwd”,(net:connect | chmod)).*,read,terminate)」は、先ず図36の状態遷移図で示されるDFAに変換される。ここから、最終状態q4を取り除き、q4に遷移する状態q3のラベルを「terminate」に置換することによって、図37の状態遷移図で示されるFSMを得る。そして、生成したFSMを監視FSM記憶部23dに格納する(ステップS356)。
【0165】
次に、上記の手順によって作成された監視FSMを解釈実行する監視FSM実行処理について説明する。図38は、第2の実施の形態における監視FSM実行部23aが実行する監視FSM実行処理を示すフローチャートである。ここでは、図29に示した処理と同一の処理を実行する部分については同一の符号を付与してその詳細な説明を省略する。監視FSM実行処理において、上述したステップS291〜ステップS294の処理を実行する。
【0166】
この例では、違反動作が生じた場合にも、対応処理をラベルにもつ状態に遷移する。そこで、対応処理識別子をラベルにもつ状態に遷移したかどうか検査し(ステップS381)、そうであった場合は、対応処理部51に対してそのラベルで示される対応処理識別子を通知し(ステップS382)、アクセス制御部22には「拒否」を返す。対応処理部51は、受信した対応処理識別子に応じた対応処理を行う。
【0167】
このように、上述した第2の実施の形態では、違反動作に対する対応処理を実現できる。また、対応処理の通知も監視FSM実行時に効率的に実現できる。よって、状態依存アクセス制限に違反した動作が生じた際に、違反した内容に応じた対処を指定することができる。
【0168】
実施の形態3.
図39は、本発明の第3の実施の形態における不正アクセス防止システムの構成の例を示すブロック図である。以下の説明において、上述した第1の実施の形態における不正アクセス防止システム100と同一の構成および処理を行う部分については、同一の符号を付与してその詳細な説明を省略する。
【0169】
第3の実施の形態では、監視対象プログラム21aを静的に解析するのではなく、実際に動作させて現実の動作履歴を収集し、収集したイベント列を利用して監視ルールの生成を支援する。
【0170】
図39に示すように、不正アクセス防止システム100bは、入出力装置1と、サーバ装置2と、ルール作成装置3bと、記憶装置4とを備える。不正アクセス防止システム100bは、例えばWWWサーバやネットワークサーバとして機能するパーソナルコンピュータによって構成される。
【0171】
ルール作成装置3bは、監視ルール作成部31Bと、プロファイル部34と、動作結果記憶部35とを含む。
【0172】
図40は、プロファイル部34の構成例を示すブロック図である。図40に示すように、プロファイル部34は、正常入力生成部34aと、入力パターン記憶部34bと、イベント列収集部34cとを含む。
【0173】
なお、図40に示されているアクセス制御部22は、上述した第1の実施の形態と同様に構成されるが、本例ではプロファイル部34から利用されることから、イベントの生成後に判定結果を待つ必要がないため、上述した図22に示した処理のステップS223およびステップS224を省略することができる。
【0174】
正常入力生成部34aは、監視対象プログラム21aへの入力(サーバへのリクエスト)を行う機能を有する。正常入力生成部34bは、入力パターン記憶部34bに格納されている入力パターンに従って、正常入力を生成する。この入力パターンを作成するには、サーバ運用者が実際に適当なクライアントプログラムを用いて、監視対象プログラム21a(サーバ)に適当なリクエストを行ってその内容を記録しておく方法、スクリプト言語によってリクエストの内容と送信方法を記述する方法などがある。また、正常入力生成部34aを、サーバソフトウェア用のテストツールを利用することで実現するようにしてもよい。
【0175】
正常入力生成部34aから入力されたリクエストは、監視対象プログラム21aに入力され、その入力内容とサーバ装置2の内部状態に応じて、アクセス制御部22からイベントが発行される。
【0176】
イベント列収集部34cは、入力したイベントを動作結果記憶部35に順に格納し、アクセス制御部22には常に「許可」を返す。
【0177】
図41は、プロファイル部34によって動作結果記憶部35に格納されたイベントのリストの例を示す説明図である。上述した第1の実施の形態では、監視対象解析部33による静的解析によって操作の対象を特定するのは一般に困難であるため、イベントフローグラフには操作の対象が空白のままであったが(図11参照)、プロファイル部34で生成されたイベントは、実際に監視対象プログラムを動作させているため、対象が必ず設定される。一方で、イベントはグラフ構造にはならず、順序のみが決定したリスト(グラフでない)である。
【0178】
図42は、監視ルール作成部31Bの構成例を示すブロック図である。図42に示すように、監視ルール作成部31Bは、監視ポリシー編集部31aと、ポリシー翻訳部31bと、違反検査部31dと、アクセス判定・対応部24とを含む。なお、この例では、アクセス判定・対応部24が監視ルール作成部31Bに含まれているため、サーバ装置2のアクセス判定部23は必ずしも必要でない。
【0179】
この例では、上述した第1の実施の形態と異なり、監視ポリシー編集部31aによって生成された監視ルールは、違反検査部31dで検査される。違反検査部31dは、それぞれの監視ルールに対して一意の対応処理識別子を一時的に付加して、上述した第2の実施の形態にて説明したアクセス判定・対応部24に入力する。そして、動作結果記憶部35に格納されたイベントのリスト(図41参照)を、擬似的なイベントとしてアクセス判定・対応部24に順に入力する。そして、アクセス判定・対応部24から対応処理通知を受けた場合、通知された識別子に対応する監視ルールを判定し、監視ポリシー編集部31aに警告を通知する。このような手順により、違反検査部31dは、監視ルールが動作結果記憶部35に格納されたイベント列を許可するかどうかを判別し、許可しない場合は監視ポリシー編集部31aを通じて入出力装置1に警告を出力することで、サーバ運用者に警告を通知する。
【0180】
上述した第3の実施の形態では、上述した第1の実施の形態のような監視対象プログラム21aの静的解析結果でなく、実際の動作履歴結果を監視ポリシーの検査に使用する。このような構成とされているので、静的解析では一般に解析できないイベントの対象を含んだ検査を実現することができる。
【0181】
実施の形態4.
図43は、本発明の第4の実施の形態における不正アクセス防止システムの構成の例を示すブロック図である。以下の説明において、上述した各実施の形態における不正アクセス防止システムと同一の構成および処理を行う部分については、同一の符号を付与してその詳細な説明を省略する。
【0182】
図43に示すように、不正アクセス防止システム100cは、サーバ装置2と、ルール作成装置3cと、記憶装置4とを含む。ルール作成装置3cは、上述したルール作成装置3と、ルール作成装置3bとに示された各構成を含む。すなわち、上述した第1の実施の形態と第3の実施の形態とを組合せた構成とされている。
【0183】
上記のように構成すれば、上述した第1の実施の形態での効果と、上述した第3の実施の形態での効果を同時に得ることができる。
【0184】
実施の形態5.
図44は、本発明の第5の実施の形態における不正アクセス防止システムの構成の例を示すブロック図である。以下の説明において、上述した各実施の形態における不正アクセス防止システムと同一の構成および処理を行う部分については、同一の符号を付与してその詳細な説明を省略する。
【0185】
図44に示すように、不正アクセス防止システム100dは、サーバ装置2dと、ルール作成装置3dと、記憶装置4とを含む。
【0186】
この実施の形態では、状態依存アクセス制御を実行しない構成とされ、既存のアクセス制御を実行する構成とされている。この例では、アクセス制御は既存のプラットフォーム21bによって実現される。従って、監視ルールは、ファイルに対するパーミッションなど、サーバ装置2dの内部状態には依存しないものである。監視対象プログラム21aは、第4の実施の形態と同様に、監視対象解析部33と、プロファイル部34とによって解析される。ただし、監視対象解析部33ではイベントフローグラフは生成せず、静的解析によって生起する可能性が確認されたイベントの列挙のみを行い、解析結果記憶部32に格納する。また、プロファイル部34でも、観測されたイベントが生起した順序を保存せずに、生起したイベントの列挙のみを行い、動作結果記憶部32に格納する。
【0187】
また、この実施の形態では、整合性検査部31cは、第1の実施の形態と異なり、重なり検査処理(ステップS201参照)において、解析結果記憶部32に格納されたイベントが、監視ポリシー編集部31aで禁止されたイベントに含まれるかどうかチェックする。その他は上述した第1の実施の形態と同様である。
【0188】
上記のように、既存のプラットフォームでアクセス制御を行う構成としても、監視ルール作成装置3dを利用することによって、アクセス制御の監視ルールの記述を容易にすることができる。
【0189】
以上説明したように、上述した実施の形態に示した不正アクセス防止システムにより、操作の履歴を用いたアクセス制御を実現することができ、高性能なアクセス制御を実現することができる。この結果、プログラムの内部状態に依存したアクセス制御を実現することができ、プログラムの脆弱性に起因するセキュリティ違反動作を防止する機能を向上させることができる。
【0190】
また、上述した実施の形態に示した不正アクセス防止システムでは、アクセス制御において、監視ルールを一旦監視FSMに変換するようにしているので、効率的なアクセス判定を実現することができる。さらに、対象の種類毎に監視FSMを構築し、対象の数毎に状態変数を管理する構成としているので、操作の対象を限定したアクセス制御を実現することができる。
【0191】
また、上述した実施の形態に示した不正アクセス防止システムでは、アクセス制御において、静的解析やプロファイルによる監視対象プログラムの分析を行い、監視ポリシーの誤りや、監視ポリシーの抜けを検出する構成としているので、セキュリティに関する高度の知識を持たないサーバ運用者であっても、誤った監視ルールを設定してしまったり、必要な監視ルールの設定ができなかったりすることが防止される。すなわち、アクセス制御の具体的な仕組みに依存することなく監視ポリシーを指定することができるため、適切な監視ルールを容易に設定することができる。
【0192】
さらに、上述した実施の形態に示した不正アクセス防止システムでは、アクセス制御の監視ルールに対応処理の内容を付加する構成としたので、アクセス違反時における対応処理を実現することができる。
【0193】
なお、上述した各実施の形態においては特に言及していないが、不正アクセス防止システムには、サーバ装置に搭載されているプラットフォームが管理するリソースに対するアクセスを制御するための制御プログラム(不正アクセス防止プログラム)が搭載されている。不正アクセス防止システムを構成する各部は、不正アクセス防止プログラムに従って各種の制御を実行する。すなわち、不正アクセス防止プログラムは、例えば、サーバ装置に、監視対象の制御プログラムのプラットフォームに対する一連の操作を監視して、当該一連の操作内容を示すイベント列を生成する処理と、イベント列と、制御プログラムにもとづく規制対象とする操作順序を示す監視ルールとを比較することで、リソースへのアクセスを許可するか否かを判定し、その判定結果に従ってリソースに対するアクセスを制御する処理とを実行させるプログラムである。
【0194】
【発明の効果】
以上のように、本発明の本発明の不正アクセス防止システムによれば、サーバ装置に搭載されているプラットフォームが管理するリソースに対するアクセスを制御するアクセス制御手段と、プラットフォームに対する監視対象の制御プログラムにもとづく操作の履歴を記憶する履歴記憶手段と、履歴記憶手段に記憶された操作の履歴にもとづいて、リソースへのアクセスを許可するか否かを判定するアクセス判定手段とを備え、アクセス制御手段が、アクセス判定手段の判定結果に従ってリソースに対するアクセスを制御することを特徴とするので、監視対象の制御プログラムにもとづく操作の履歴を用いてアクセス制御を行う構成としたので、高機能なアクセス制御を実現することができる。この結果、制御プログラムの内部状態に依存したアクセス制御を実現することができ、制御プログラムの脆弱性に起因するセキュリティ違反動作を防止する能力が向上する。
【0195】
また、本発明の不正アクセス防止システムは、サーバ装置に搭載されているプラットフォームが管理するリソースに対するアクセスを制御するアクセス制御手段と、監視対象の制御プログラムにもとづく規制対象とする操作順序を示す監視ルールを予め記憶する監視ルール記憶手段と、制御プログラムのプラットフォームに対する一連の操作を監視して、当該一連の操作内容を示すイベント列を生成するイベント生成手段と、イベント列と監視ルールとを比較することで、リソースへのアクセスを許可するか否かを判定するアクセス判定手段とを備え、アクセス制御手段が、アクセス判定手段の判定結果に従って前記リソースに対するアクセスを制御することを特徴とするので、イベント列と監視ルールとを比較することでアクセス制御を行う構成としたので、高機能なアクセス制御を実現することができる。この結果、制御プログラムの内部状態に依存したアクセス制御を実現することができ、制御プログラムの脆弱性に起因するセキュリティ違反動作を防止する能力が向上する。
【0196】
また、本発明の不正アクセス防止方法は、サーバ装置に搭載されているプラットフォームが管理するリソースに対するアクセスを制御するためにアクセス制御装置によって実行される不正アクセス防止方法であって、アクセス制御装置が、監視対象の制御プログラムにもとづく規制対象とする操作順序を示す監視ルールを予め監視ルール記憶手段に記憶し、制御プログラムのプラットフォームに対する一連の操作を監視して、当該一連の操作内容を示すイベント列を生成し、イベント列と監視ルールとを比較することで、リソースへのアクセスを許可するか否かを判定し、その判定結果に従ってリソースに対するアクセスを制御することを特徴とするので、イベント列と監視ルールとを比較することでアクセス制御を行う構成としたので、高機能なアクセス制御を実現することができる。この結果、制御プログラムの内部状態に依存したアクセス制御を実現することができ、制御プログラムの脆弱性に起因するセキュリティ違反動作を防止する能力が向上する。
【0197】
さらに、本発明の不正アクセス防止プログラムは、サーバ装置に搭載されているプラットフォームが管理するリソースに対するアクセスを制御するための不正アクセス防止プログラムであって、コンピュータに、監視対象の制御プログラムのプラットフォームに対する一連の操作を監視して、当該一連の操作内容を示すイベント列を生成する処理と、イベント列と、制御プログラムにもとづく規制対象とする操作順序を示す監視ルールとを比較することで、リソースへのアクセスを許可するか否かを判定し、その判定結果に従ってリソースに対するアクセスを制御する処理とを実行させることを特徴とするので、イベント列と監視ルールとを比較することでアクセス制御を実行させる構成としたので、高機能なアクセス制御を実現することができる。この結果、制御プログラムの内部状態に依存したアクセス制御を実現することができ、制御プログラムの脆弱性に起因するセキュリティ違反動作を防止する能力が向上する。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態における不正アクセス防止システムの構成例を示すブロック図である。
【図2】本発明の第1の実施の形態におけるアクセス制御部の構成例を示すブロック図である。
【図3】本発明の第1の実施の形態におけるアクセス判定部の構成例を示すブロック図である。
【図4】本発明の第1の実施の形態における監視ルール作成部の構成例を示すブロック図である。
【図5】本発明の第1の実施の形態における監視対象解析部の構成例を示すブロック図である。
【図6】本発明の第1の実施の形態におけるイベントフローグラフ生成処理の例を示すフローチャートである。
【図7】実行文リストから抽出された基本ブロックの例を示す説明図である。
【図8】図7の実行文リストにもとづいて生成される制御フローグラフの例を示す説明図である。
【図9】ライブラリ表記憶部に格納されているライブラリ表の例を示す説明図である。
【図10】図8に示されている制御フローグラフを図9に示されているライブラリ表にもとづいて置換して得た操作フローグラフの例を示す説明図である。
【図11】図10に示された操作フローグラフを図18に示すイベント表を参照して生成したイベントフローグラフの例を示す説明図である。
【図12】本発明の第1の実施の形態における監視ルール作成処理の例を示すフローチャートである。
【図13】本発明の第1の実施の形態における監視ポリシー一覧画面の例を示す説明図である。
【図14】本発明の第1の実施の形態における監視ポリシー追加画面の例を示す説明図である。
【図15】本発明の第1の実施の形態における条件追加画面の例を示す説明図である。
【図16】本発明の第1の実施の形態における条件追加画面の例を示す説明図である。
【図17】パターンの文法の例を示す説明図である。
【図18】イベント表の例を示す説明図である。
【図19】監視ルールの例を示す説明図である。
【図20】整合性検査処理および反例推薦処理の例を示すフローチャートである。
【図21】非決定有限オートマトンを表す正規表現への変換処理の例を示すフローチャートである。
【図22】イベント生成処理の例を示すフローチャートである。
【図23】有限状態機械生成処理の例を示すフローチャートである。
【図24】監視ルールの例を示す説明図である。
【図25】図24の監視ルールから生成された有限状態機械の例を示す説明図である。
【図26】監視FSMの例を示す説明図である。
【図27】状態遷移表の例を示す説明図である。
【図28】監視FSM記憶部に格納される監視FSM表の例を示す説明図である。
【図29】監視FSM実行処理の例を示すフローチャートである。
【図30】比較処理の例を示すフローチャートである。
【図31】状態変数記憶部に格納されている表の例を示す説明図である。
【図32】本発明の第2の実施の形態における不正アクセス防止システムの構成の例を示すブロック図である。
【図33】アクセス判定・対応部の構成例を示すブロック図である。
【図34】監視ポリシー追加画面の例を示す説明図である。
【図35】有限状態機械生成処理の例を示すフローチャートである。
【図36】DFAを示す状態遷移図である。
【図37】FSMを示す状態遷移図である。
【図38】監視FSM実行処理の例を示すフローチャートである。
【図39】本発明の第3の実施の形態における不正アクセス防止システムの構成の例を示すブロック図である。
【図40】プロファイル部の構成例を示すブロック図である。
【図41】イベントのリストの例を示す説明図である。
【図42】監視ルール作成部の構成例を示すブロック図である。
【図43】本発明の第4の実施の形態における不正アクセス防止システムの構成の例を示すブロック図である。
【図44】本発明の第5の実施の形態における不正アクセス防止システムの構成の例を示すブロック図である。
【図45】従来技術1のアクセス権の一覧を示す説明図である。
【図46】従来技術2のEMによる動作規制の例を示す説明図である。
【符号の説明】
1 入出力装置
2 サーバ装置
21 データ記憶部
21a プラットフォーム
21b 監視対象プログラム
22 アクセス制御部
23 アクセス判定部
3 ルール作成装置
31 監視ルール作成部
32 解析結果記憶部
33 監視対象解析部
4 記憶装置
41 イベント表記憶部
42 監視ルール記憶部
100 不正アクセス防止システム
Claims (18)
- サーバ装置に搭載されているプラットフォームが管理するリソースに対するアクセスを制御するアクセス制御手段と、
前記プラットフォームに対する監視対象の制御プログラムにもとづく操作の履歴を記憶する履歴記憶手段と、
前記履歴記憶手段に記憶された操作の履歴にもとづいて、前記リソースへのアクセスを許可するか否かを判定するアクセス判定手段とを備え、
前記アクセス制御手段は、前記アクセス判定手段の判定結果に従って前記リソースに対するアクセスを制御する
ことを特徴とする不正アクセス防止システム。 - サーバ装置に搭載されているプラットフォームが管理するリソースに対するアクセスを制御するアクセス制御手段と、
監視対象の制御プログラムにもとづく規制対象とする操作順序を示す監視ルールを予め記憶する監視ルール記憶手段と、
前記制御プログラムのプラットフォームに対する一連の操作を監視して、当該一連の操作内容を示すイベント列を生成するイベント生成手段と、
前記イベント列と前記監視ルールとを比較することで、前記リソースへのアクセスを許可するか否かを判定するアクセス判定手段とを備え、
前記アクセス制御手段は、前記アクセス判定手段の判定結果に従って前記リソースに対するアクセスを制御する
ことを特徴とする不正アクセス防止システム。 - アクセス判定手段は、アクセス判定手段の判定結果が拒否であったことに応じて制御プログラムにもとづく操作を遮断する操作遮断手段を含む
請求項2記載の不正アクセス防止システム。 - アクセス判定手段は、
アクセス制御の対象となるリソース毎に、監視ルールに適合するイベント列のパターンに従った状態遷移を許容するための有限状態モデルを生成する有限状態モデル構築手段と、
リソースへのアクセスを許可するか否かの判定をするために当該有限状態モデルを実行する有限状態モデル実行手段とを含む
請求項2または請求項3記載の不正アクセス防止システム。 - 監視ルール記憶手段には、監視ルールに違反した操作がなされたときの対応処理を示す違反対応情報が記憶され、
監視ルールに違反した操作がなされたときに前記対応処理を実行する状態に遷移させるための有限状態モデルを生成する有限状態モデル構築手段と、
前記違反対応情報を出力するために当該有限状態モデルを実行する有限状態モデル実行手段と、
前記有限状態モデル実行手段からの前記違反対応情報が入力したことにもとづいて、当該違反対応情報が示す対応処理を実行する対応処理手段とを備えた
請求項2または請求項3記載の不正アクセス防止システム。 - 監視対象の制御プログラムの内容を解析するプログラム解析手段と、
前記プログラム解析手段による解析結果にもとづいて、監視ルール記憶手段に記憶されている監視ルールの修正または追加を行う監視ルール更新手段とを備えた
請求項2から請求項5のうちいずれかに記載の不正アクセス防止システム。 - 監視ルールの登録を行うルール登録手段を備え、
前記ルール登録手段は、
監視対象の制御プログラムを静的解析することで当該プログラムから生成され得るイベントのフローグラフを生成する監視対象解析手段と、
監視ポリシーの入力を受け付けて監視ポリシーを編集する監視ポリシー編集手段と、
前記監視ポリシーにもとづく監視ルールを作成するルール作成手段と、
前記監視ルールと前記フローグラフとの整合性を検査する整合性検査手段とを備え、
前記整合性検査手段により整合がとれていると判定されたときに、前記監視ルールを監視ルール記憶手段に記憶させる
請求項2から請求項6のうちいずれかに記載の不正アクセス防止システム。 - 整合性検査手段により不整合であると判定されたときに、不適切な監視ポリシーである旨を警告する警告出力手段を備えた
請求項7記載の不正アクセス防止システム。 - 監視ルールを作成するルール作成手段を備え、
前記ルール作成手段は、
監視対象の制御プログラムに対する正常な入力パターンを生成する正常入力生成手段と、
前記正常な入力パターンによって生成されるイベント列を収集するイベント列収集手段と、
前記イベント列が監視ルールに違反しているか否かを検査し、違反していると判定したときに警告を出力する違反検査手段とを含む
請求項2から請求項6のうちいずれかに記載の不正アクセス防止システム。 - サーバ装置に搭載されているプラットフォームが管理するリソースに対するアクセスを制御するためにアクセス制御装置によって実行される不正アクセス防止方法であって、
前記アクセス制御装置は、
監視対象の制御プログラムにもとづく規制対象とする操作順序を示す監視ルールを予め監視ルール記憶手段に記憶し、
前記制御プログラムのプラットフォームに対する一連の操作を監視して、当該一連の操作内容を示すイベント列を生成し、
前記イベント列と前記監視ルールとを比較することで、前記リソースへのアクセスを許可するか否かを判定し、その判定結果に従って前記リソースに対するアクセスを制御する
ことを特徴とする不正アクセス防止方法。 - サーバ装置に搭載されているプラットフォームが管理するリソースに対するアクセスを制御するための不正アクセス防止プログラムであって、
コンピュータに、
監視対象の制御プログラムのプラットフォームに対する一連の操作を監視して、当該一連の操作内容を示すイベント列を生成する処理と、
前記イベント列と、前記制御プログラムにもとづく規制対象とする操作順序を示す前記監視ルールとを比較することで、前記リソースへのアクセスを許可するか否かを判定し、その判定結果に従って前記リソースに対するアクセスを制御する処理と
を実行させることを特徴とする不正アクセス防止プログラム。 - コンピュータに、
判定結果が拒否であったことに応じて制御プログラムにもとづく操作を遮断する処理を実行させる
請求項11記載の不正アクセス防止プログラム。 - コンピュータに、
アクセス制御の対象となるリソース毎に、監視ルールに適合するイベント列のパターンに従った状態遷移を許容するための有限状態モデルを生成する処理と、
リソースへのアクセスを許可するか否かの判定をするために当該有限状態モデルを実行する処理とを実行させる
請求項11または請求項12記載の不正アクセス防止プログラム。 - コンピュータに、
監視ルールに違反した操作がなされたときに、監視ルールに違反した操作がなされたときの対応処理を実行する状態に遷移させるための有限状態モデルを生成する処理と、
前記違反対応情報を出力するために当該有限状態モデルを実行する処理と、
前記対象処理を示す前記違反対応情報が入力したことにもとづいて、当該違反対応情報が示す対応処理を実行する処理とを実行させる
請求項11または請求項12記載の不正アクセス防止プログラム。 - コンピュータに、
監視対象の制御プログラムの内容を解析する処理と、
前記制御プログラムの内容の解析結果にもとづいて、監視ルールの修正または追加を行う処理とを実行させる
請求項11から請求項14のうちいずれかに記載の不正アクセス防止プログラム。 - コンピュータに、
監視対象の制御プログラムを静的解析することで当該プログラムから生成され得るイベントのフローグラフを生成する処理と、
監視ポリシーの入力を受け付けて監視ポリシーを編集する処理と、
前記監視ポリシーにもとづく監視ルールを作成する処理と、
前記監視ルールと前記フローグラフとの整合性を検査する処理と、
整合性の検査によって整合がとれていると判定されたときに、前記監視ルールを記憶手段に格納する処理とを実行させる
請求項11から請求項15のうちいずれかに記載の不正アクセス防止プログラム。 - コンピュータに、整合性の検査によって不整合であると判定されたときに、不適切な監視ポリシーである旨を警告する処理を実行させる
請求項16記載の不正アクセス防止プログラム。 - コンピュータに、
監視対象の制御プログラムに対する正常な入力パターンを生成する処理と、
前記正常な入力パターンによって生成されるイベント列を収集する処理と、
前記イベント列が監視ルールに違反しているか否かを検査し、違反していると判定したときに警告を出力する処理とを実行させる
請求項11から請求項15のうちいずれかに記載の不正アクセス防止プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003078558A JP4547861B2 (ja) | 2003-03-20 | 2003-03-20 | 不正アクセス防止システム、不正アクセス防止方法、および不正アクセス防止プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003078558A JP4547861B2 (ja) | 2003-03-20 | 2003-03-20 | 不正アクセス防止システム、不正アクセス防止方法、および不正アクセス防止プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004287810A true JP2004287810A (ja) | 2004-10-14 |
JP4547861B2 JP4547861B2 (ja) | 2010-09-22 |
Family
ID=33293008
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003078558A Expired - Fee Related JP4547861B2 (ja) | 2003-03-20 | 2003-03-20 | 不正アクセス防止システム、不正アクセス防止方法、および不正アクセス防止プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4547861B2 (ja) |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006031718A (ja) * | 2004-07-21 | 2006-02-02 | Microsoft Corp | ワームの封じ込め |
WO2006090781A1 (ja) * | 2005-02-24 | 2006-08-31 | Nec Corporation | フィルタリングルール分析方法及びシステム |
JP2008524726A (ja) * | 2004-12-21 | 2008-07-10 | 株式会社エヌ・ティ・ティ・ドコモ | Risc形式アセンブリコードの情報フローの強制 |
JP2008192094A (ja) * | 2007-02-08 | 2008-08-21 | Mitsubishi Electric Corp | 通信システム及びデータ処理方法 |
JP2009080560A (ja) * | 2007-09-25 | 2009-04-16 | Sky Kk | アクセス権限制御システム |
JP2009516887A (ja) * | 2005-11-21 | 2009-04-23 | 株式会社エヌ・ティ・ティ・ドコモ | 通知の安全な処理を検証及び保証するための方法及び装置 |
JP2009521737A (ja) * | 2005-11-10 | 2009-06-04 | 株式会社エヌ・ティ・ティ・ドコモ | Javascriptプログラムの不安全動作安を検出するため、及び防止するための方法及び装置 |
WO2009081530A1 (ja) * | 2007-12-26 | 2009-07-02 | Nec Corporation | 仮想計算機システム、ポリシ強制システム、ポリシ強制方法及び仮想計算機制御用プログラム |
JP2009526304A (ja) * | 2006-02-10 | 2009-07-16 | サムスン エレクトロニクス カンパニー リミテッド | デバイスの間に悪性アプリケーションの行為情報を使用する装置および方法 |
JP2010503921A (ja) * | 2006-09-14 | 2010-02-04 | 株式会社エヌ・ティ・ティ・ドコモ | タイミング関連の秘密チャネル及びマルチスレッドが存在する場合のrisc型アセンブリコードのための情報フローの実行 |
US8015551B2 (en) | 2005-11-28 | 2011-09-06 | Ntt Docomo, Inc. | Software operation modeling device, software operation monitoring device, software operation modeling method, and software operation monitoring method |
JP2012137938A (ja) * | 2010-12-27 | 2012-07-19 | Internatl Business Mach Corp <Ibm> | リソース保護処理プログラムとリソース保護処理装置とリソース保護処理方法 |
US8613084B2 (en) * | 2007-09-18 | 2013-12-17 | Mcafee, Inc. | System, method, and computer program product for detecting at least potentially unwanted activity based on execution profile monitoring |
WO2014017117A1 (en) * | 2012-07-23 | 2014-01-30 | Kabushiki Kaisha Toshiba | Information processing apparatus and control method |
WO2014017118A1 (en) * | 2012-07-23 | 2014-01-30 | Kabushiki Kaisha Toshiba | Information processing apparatus and control method |
JP2016533564A (ja) * | 2013-10-08 | 2016-10-27 | クラウドストライク インコーポレイテッド | システムコンポーネントの状態を相関させるイベントモデル |
JP2016534479A (ja) * | 2013-09-12 | 2016-11-04 | ヴァーセック・システムズ・インコーポレーテッドVirsec Systems,Inc. | マルウェアのランタイム中の自動検出 |
US9501646B2 (en) | 2012-09-26 | 2016-11-22 | Mitsubishi Electric Corporation | Program verification apparatus, program verification method, and computer readable medium |
US10114726B2 (en) | 2014-06-24 | 2018-10-30 | Virsec Systems, Inc. | Automated root cause analysis of single or N-tiered application |
US10331888B1 (en) | 2006-02-09 | 2019-06-25 | Virsec Systems, Inc. | System and methods for run time detection and correction of memory corruption |
US10354074B2 (en) | 2014-06-24 | 2019-07-16 | Virsec Systems, Inc. | System and methods for automated detection of input and output validation and resource management vulnerability |
US11409870B2 (en) | 2016-06-16 | 2022-08-09 | Virsec Systems, Inc. | Systems and methods for remediating memory corruption in a computer application |
US11449473B2 (en) | 2017-05-26 | 2022-09-20 | Nec Corporation | Distribution history management system, distribution history management device, method, and program |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0476637A (ja) * | 1990-07-12 | 1992-03-11 | Nec Corp | プログラムテスト方式および方法 |
-
2003
- 2003-03-20 JP JP2003078558A patent/JP4547861B2/ja not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0476637A (ja) * | 1990-07-12 | 1992-03-11 | Nec Corp | プログラムテスト方式および方法 |
Cited By (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006031718A (ja) * | 2004-07-21 | 2006-02-02 | Microsoft Corp | ワームの封じ込め |
JP2008524726A (ja) * | 2004-12-21 | 2008-07-10 | 株式会社エヌ・ティ・ティ・ドコモ | Risc形式アセンブリコードの情報フローの強制 |
US7792775B2 (en) | 2005-02-24 | 2010-09-07 | Nec Corporation | Filtering rule analysis method and system |
WO2006090781A1 (ja) * | 2005-02-24 | 2006-08-31 | Nec Corporation | フィルタリングルール分析方法及びシステム |
JP2009521737A (ja) * | 2005-11-10 | 2009-06-04 | 株式会社エヌ・ティ・ティ・ドコモ | Javascriptプログラムの不安全動作安を検出するため、及び防止するための方法及び装置 |
JP2009516887A (ja) * | 2005-11-21 | 2009-04-23 | 株式会社エヌ・ティ・ティ・ドコモ | 通知の安全な処理を検証及び保証するための方法及び装置 |
US8015551B2 (en) | 2005-11-28 | 2011-09-06 | Ntt Docomo, Inc. | Software operation modeling device, software operation monitoring device, software operation modeling method, and software operation monitoring method |
US11599634B1 (en) | 2006-02-09 | 2023-03-07 | Virsec Systems, Inc. | System and methods for run time detection and correction of memory corruption |
US10331888B1 (en) | 2006-02-09 | 2019-06-25 | Virsec Systems, Inc. | System and methods for run time detection and correction of memory corruption |
US8640240B2 (en) | 2006-02-10 | 2014-01-28 | Samsung Electronics Co., Ltd. | Apparatus and method for using information on malicious application behaviors among devices |
JP2009526304A (ja) * | 2006-02-10 | 2009-07-16 | サムスン エレクトロニクス カンパニー リミテッド | デバイスの間に悪性アプリケーションの行為情報を使用する装置および方法 |
JP2010503921A (ja) * | 2006-09-14 | 2010-02-04 | 株式会社エヌ・ティ・ティ・ドコモ | タイミング関連の秘密チャネル及びマルチスレッドが存在する場合のrisc型アセンブリコードのための情報フローの実行 |
JP2008192094A (ja) * | 2007-02-08 | 2008-08-21 | Mitsubishi Electric Corp | 通信システム及びデータ処理方法 |
US8613084B2 (en) * | 2007-09-18 | 2013-12-17 | Mcafee, Inc. | System, method, and computer program product for detecting at least potentially unwanted activity based on execution profile monitoring |
JP2009080560A (ja) * | 2007-09-25 | 2009-04-16 | Sky Kk | アクセス権限制御システム |
US8468522B2 (en) | 2007-12-26 | 2013-06-18 | Nec Corporation | Virtual machine system, system for forcing policy, method for forcing policy, and virtual machine control program |
JP5387415B2 (ja) * | 2007-12-26 | 2014-01-15 | 日本電気株式会社 | 仮想計算機システム、ポリシ強制システム、ポリシ強制方法及び仮想計算機制御用プログラム |
WO2009081530A1 (ja) * | 2007-12-26 | 2009-07-02 | Nec Corporation | 仮想計算機システム、ポリシ強制システム、ポリシ強制方法及び仮想計算機制御用プログラム |
JP2012137938A (ja) * | 2010-12-27 | 2012-07-19 | Internatl Business Mach Corp <Ibm> | リソース保護処理プログラムとリソース保護処理装置とリソース保護処理方法 |
JP2014021929A (ja) * | 2012-07-23 | 2014-02-03 | Toshiba Corp | 情報処理装置および制御方法 |
JP2014021923A (ja) * | 2012-07-23 | 2014-02-03 | Toshiba Corp | 情報処理装置および制御方法 |
WO2014017117A1 (en) * | 2012-07-23 | 2014-01-30 | Kabushiki Kaisha Toshiba | Information processing apparatus and control method |
WO2014017118A1 (en) * | 2012-07-23 | 2014-01-30 | Kabushiki Kaisha Toshiba | Information processing apparatus and control method |
US9501646B2 (en) | 2012-09-26 | 2016-11-22 | Mitsubishi Electric Corporation | Program verification apparatus, program verification method, and computer readable medium |
US10079841B2 (en) | 2013-09-12 | 2018-09-18 | Virsec Systems, Inc. | Automated runtime detection of malware |
JP2016534479A (ja) * | 2013-09-12 | 2016-11-04 | ヴァーセック・システムズ・インコーポレーテッドVirsec Systems,Inc. | マルウェアのランタイム中の自動検出 |
US11146572B2 (en) | 2013-09-12 | 2021-10-12 | Virsec Systems, Inc. | Automated runtime detection of malware |
JP2016533564A (ja) * | 2013-10-08 | 2016-10-27 | クラウドストライク インコーポレイテッド | システムコンポーネントの状態を相関させるイベントモデル |
US10114726B2 (en) | 2014-06-24 | 2018-10-30 | Virsec Systems, Inc. | Automated root cause analysis of single or N-tiered application |
US10354074B2 (en) | 2014-06-24 | 2019-07-16 | Virsec Systems, Inc. | System and methods for automated detection of input and output validation and resource management vulnerability |
US11113407B2 (en) | 2014-06-24 | 2021-09-07 | Virsec Systems, Inc. | System and methods for automated detection of input and output validation and resource management vulnerability |
US11409870B2 (en) | 2016-06-16 | 2022-08-09 | Virsec Systems, Inc. | Systems and methods for remediating memory corruption in a computer application |
US11449473B2 (en) | 2017-05-26 | 2022-09-20 | Nec Corporation | Distribution history management system, distribution history management device, method, and program |
Also Published As
Publication number | Publication date |
---|---|
JP4547861B2 (ja) | 2010-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4547861B2 (ja) | 不正アクセス防止システム、不正アクセス防止方法、および不正アクセス防止プログラム | |
US11601442B2 (en) | System and method associated with expedient detection and reconstruction of cyber events in a compact scenario representation using provenance tags and customizable policy | |
Snyder et al. | Most websites don't need to vibrate: A cost-benefit approach to improving browser security | |
Deepa et al. | Securing web applications from injection and logic vulnerabilities: Approaches and challenges | |
Torkura et al. | Continuous auditing and threat detection in multi-cloud infrastructure | |
Wei et al. | Preventing SQL injection attacks in stored procedures | |
US7296274B2 (en) | Method and apparatus providing deception and/or altered execution of logic in an information system | |
US7437766B2 (en) | Method and apparatus providing deception and/or altered operation in an information system operating system | |
US9268945B2 (en) | Detection of vulnerabilities in computer systems | |
US8800042B2 (en) | Secure web application development and execution environment | |
US20140259095A1 (en) | Method of providing cyber security as a service | |
US20060090206A1 (en) | Method, system and apparatus for assessing vulnerability in Web services | |
Wyss et al. | Wolf at the door: Preventing install-time attacks in npm with latch | |
Xu et al. | JSCSP: a novel policy-based XSS defense mechanism for browsers | |
Primiero et al. | On malfunction, mechanisms and malware classification | |
Roth et al. | Assessing the impact of script gadgets on csp at scale | |
Rubio-Medrano et al. | DyPolDroid: Protecting against permission-abuse attacks in android | |
Rauter et al. | Privilege-based remote attestation: Towards integrity assurance for lightweight clients | |
Alghazzawi | Security and Performance through Operating System Services; Development of an Anti-Hacking System | |
Chang et al. | Vulnerable service invocation and countermeasures | |
Mookhey et al. | Linux: Security, Audit and Control Features | |
Lohanathan et al. | Live Response Training Range mit Velociraptor | |
Titze | Analysis and Mitigation of Security Issues on Android | |
Lepola | Applicability of IEC 62443-4-1 based secure development lifecycle (SDL) to cloud applications | |
Morris | Have you driven an SELinux lately |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20051117 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20051117 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060213 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090901 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091022 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100323 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100513 |
|
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: 20100615 |
|
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: 20100628 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130716 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |