JP4363214B2 - Access policy generation system, access policy generation method, and access policy generation program - Google Patents

Access policy generation system, access policy generation method, and access policy generation program Download PDF

Info

Publication number
JP4363214B2
JP4363214B2 JP2004039858A JP2004039858A JP4363214B2 JP 4363214 B2 JP4363214 B2 JP 4363214B2 JP 2004039858 A JP2004039858 A JP 2004039858A JP 2004039858 A JP2004039858 A JP 2004039858A JP 4363214 B2 JP4363214 B2 JP 4363214B2
Authority
JP
Japan
Prior art keywords
access
policy
access information
information
generalization
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
JP2004039858A
Other languages
Japanese (ja)
Other versions
JP2005234661A (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2004039858A priority Critical patent/JP4363214B2/en
Publication of JP2005234661A publication Critical patent/JP2005234661A/en
Application granted granted Critical
Publication of JP4363214B2 publication Critical patent/JP4363214B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Description

本発明は、ポリシ強制に用いるアクセスポリシを生成するアクセスポリシ生成システム等に関し、特に、ポリシ強制の対象となるプログラムにもとづく動作を収集し、収集した動作からアクセスポリシを生成するアクセスポリシ生成システム、アクセスポリシ生成方法、およびアクセスポリシ生成用プログラムに関する。   The present invention relates to an access policy generation system that generates an access policy used for policy enforcement, and in particular, an access policy generation system that collects operations based on a program that is a policy enforcement target and generates an access policy from the collected operations, The present invention relates to an access policy generation method and an access policy generation program.

従来から、制御プログラムにもとづく処理での不正なリソース利用を防止するため、セキュアOS、アクセス制御ミドルウェア、サンドボックス、不正侵入検知システム、不正侵入防止システムなどと呼ばれる各種のポリシ強制システムが利用されている。   Conventionally, various policy enforcement systems called secure OS, access control middleware, sandbox, unauthorized intrusion detection system, unauthorized intrusion prevention system have been used to prevent unauthorized use of resources in processing based on control programs. Yes.

従来のポリシ強制システムは、与えられたリソース利用の要件(以下、「アクセスポリシ」または単に「ポリシ」という)に従って、ポリシ強制の対象とする制御プログラムにもとづく処理にて特定のリソース(例えば、ファイルシステム、通信デバイスなど)を操作(以下、「アクセス」という)することを制限する機能を持つ。   A conventional policy enforcement system uses a specific resource (for example, a file) in a process based on a control program subject to policy enforcement in accordance with a given resource usage requirement (hereinafter referred to as “access policy” or simply “policy”). A function of restricting operation (hereinafter referred to as “access”) of a system, a communication device, and the like.

図20は、ポリシ強制システムの一般的な構成を示すブロック図である。このポリシ強制システム500は、プログラム制御により動作するコンピュータ(具体的には、例えば中央処理装置、プロセッサ、データ処理装置)によって構成され、アクセス監査手段502と、リソース503と、ポリシ記憶部504とを含む。   FIG. 20 is a block diagram showing a general configuration of the policy enforcement system. This policy enforcement system 500 is configured by a computer (specifically, for example, a central processing unit, a processor, and a data processing unit) that operates under program control, and includes an access auditing unit 502, a resource 503, and a policy storage unit 504. Including.

アクセス監査手段502は、ポリシ強制の対象となるプログラム501に従って動作するコンピュータシステム500のリソース503へのアクセスを監視し、ポリシ記憶部504に保存されているポリシの内容に従って、リソース503へのアクセスの可否を判定する。   The access auditing unit 502 monitors the access to the resource 503 of the computer system 500 that operates according to the program 501 that is subject to policy enforcement, and accesses the resource 503 according to the contents of the policy stored in the policy storage unit 504. Judgment is made.

そして、アクセス監査手段502は、アクセスが許可されている場合にはそのままリソース503へのアクセスを許し、アクセスが許可されていない場合にはリソース503へのアクセスを中断する。   Then, the access auditing means 502 allows the access to the resource 503 as it is when the access is permitted, and interrupts the access to the resource 503 when the access is not permitted.

なお、アクセスポリシには、「許可ポリシ」と「禁止ポリシ」の2種類がある。また、アクセスポリシの指定方法は、「許可ポリシ」のみを指定する方法、「禁止ポリシ」のみを指定する方法、その両方を指定する方法の3通りがある。   There are two types of access policies, “permitted policy” and “prohibited policy”. There are three access policy designation methods: a method of designating only “permitted policy”, a method of designating only “prohibited policy”, and a method of designating both.

許可ポリシのみを指定する方法では、ユーザによって、許可するアクセスのみが記述される。この場合、許可ポリシに合致したアクセスは許可され、それ以外のアクセスは禁止される。   In the method of specifying only the permission policy, only the access permitted by the user is described. In this case, access that matches the permission policy is permitted, and other access is prohibited.

禁止ポリシのみを指定する方法では、ユーザによって、禁止するアクセスのみが記述される。この場合、禁止ポリシに合致したアクセスは禁止され、それ以外のアクセスは許可される。   In the method of designating only the prohibited policy, only the prohibited access is described by the user. In this case, access that matches the prohibited policy is prohibited, and other access is permitted.

許可ポリシと禁止ポリシの両方を指定する方法では、ユーザによって、許可ポリシと禁止ポリシとが競合したときの処理を定める「メタポリシ」が別途記述される。   In the method of designating both the permitted policy and the prohibited policy, a “meta-policy” that defines processing when the permitted policy and the prohibited policy conflict with each other is separately described by the user.

上記のようなポリシ強制システム500において、アクセスポリシを正しく設定しておくことにより、不正アクセス、クラッキング、ウイルス、ワームなどの被害が抑制される。   In the policy enforcement system 500 as described above, by setting the access policy correctly, damages such as unauthorized access, cracking, virus, and worm are suppressed.

具体的には、「WWW(World Wide Web)サーバはWWWコンテンツを書き換え不可」という禁止ポリシを設定しておけば、WWWサーバの脆弱性を攻撃され、任意コードを実行されたとしても、WWWコンテンツの書き換えによるWeb改ざんを防止できる。   Specifically, if the prohibition policy “WWW (World Wide Web) server cannot rewrite WWW content” is set, even if an arbitrary code is executed by attacking the vulnerability of WWW server, WWW content Web falsification due to rewriting can be prevented.

同様に、例えば、「WWWサーバはテンポラリファイルのみ書き出す」という許可ポリシを設定しておけば、WWWサーバの脆弱性を攻撃され、任意コードを実行されたとしても、WWWコンテンツの書き出しにもとづくWeb改ざんを防止できる。   Similarly, for example, if a permission policy that “the WWW server writes only temporary files” is set, even if an arbitrary code is executed by attacking the vulnerability of the WWW server, Web tampering based on writing WWW content Can be prevented.

しかし、上記のようなポリシ強制システム500では、アクセスポリシを人手で記述する必要がある。アクセスポリシのユーザによる記述は、手間と時間がかかるだけでなく、間違いも生じやすい。   However, in the policy enforcement system 500 as described above, it is necessary to manually describe the access policy. The description of the access policy by the user is not only troublesome and time consuming but also prone to errors.

そこで、従来から、プログラムの実際の動作を観測して、許可ポリシを自動的に生成する方法が提案されている(例えば、特許文献1参照)。   Therefore, conventionally, a method for automatically generating a permission policy by observing an actual operation of a program has been proposed (for example, see Patent Document 1).

図21は、特許文献1に記載されている従来のアクセスポリシ生成システム600の例を示すブロック図である。   FIG. 21 is a block diagram showing an example of a conventional access policy generation system 600 described in Patent Document 1. In FIG.

対象プログラム501にもとづく処理でのリソース503へのアクセスは、アクセス監査手段502によって監視される。この監視の際に、アクセスの内容がポリシ生成手段505に送られる。ポリシ生成手段505では、そのアクセス内容を許可ポリシとしてポリシ記憶部504に記憶されているアクセスポリシに追加する。このようにして自動的にアクセスポリシが生成される。このような技術を、「従来技術1」ということにする。   Access to the resource 503 in the process based on the target program 501 is monitored by the access auditing unit 502. At the time of this monitoring, the contents of access are sent to the policy generation means 505. The policy generation unit 505 adds the access contents to the access policy stored in the policy storage unit 504 as a permitted policy. In this way, an access policy is automatically generated. Such a technique is referred to as “conventional technique 1”.

また、ファイル入出力だけではなく、OS(Operating System)を経由したリソースアクセス、すなわち、システムコールのポリシを生成するアクセスポリシ生成システムも提案されている(例えば、非特許文献1参照)。   Further, not only file input / output but also an access policy generation system that generates resource access via an OS (Operating System), that is, a system call policy has been proposed (for example, see Non-Patent Document 1).

このアクセスポリシ生成システムでは、単にアクセス先をそのままポリシに追加するだけではなく、追加した後、人手によって編集する機能を有している。このような技術を、「従来技術2」ということにする。 This access policy generation system has a function of not only adding the access destination to the policy as it is, but also manually editing it after adding the access destination. Such a technique is referred to as “conventional technique 2”.

特開2003−6027号公報(図1)Japanese Patent Laying-Open No. 2003-6027 (FIG. 1) ニールス・プローブス(Niels Provos)著、“CITI Technical Report 02-3 Improving Host Security with System Call Policies”、[online]、[平成16年2月13日検索]、インターネット<URL:http://citeseer.nj.nec.com/provos02improving.html>Niels Provos, "CITI Technical Report 02-3 Improving Host Security with System Call Policies", [online], [Search February 13, 2004], Internet <URL: http: // citeseer. nj.nec.com/provos02improving.html>

上述した従来のアクセスポリシ生成技術では、プログラムにもとづくリソースへのアクセスを全て収集することができないため、生成されるポリシに抜けが生じ、その結果として、プログラムの正常な動作であるにも関わらず、不正動作として判定される場合が生じるという問題があった。   The conventional access policy generation technology described above cannot collect all accesses to resources based on the program, so the generated policy is lost, and as a result, despite the normal operation of the program. There is a problem that it may be determined as an illegal operation.

その理由は、一定期間中に観測したプログラムのアクセスをそのままポリシとして使用しているためである。一般に、プログラムの動作は多岐にわたるため、ある一定期間に観測したアクセスのみでは、そのプログラムがアクセスし得る全ての動作を列挙することは困難である。   The reason is that the program access observed during a certain period is used as a policy as it is. In general, since the operations of a program are diverse, it is difficult to enumerate all the operations that can be accessed by the program only by the access observed during a certain period.

例えば、多くのサーバプログラムでは、一時的なファイル(テンポラリファイル)を作成して情報を一時的に保存するが、テンポラリファイルのファイル名としては、固定のファイル名の後にランダムな数値を付加したものを用いることが多い。   For example, in many server programs, a temporary file (temporary file) is created and information is temporarily stored. The temporary file name is a fixed file name with a random number added. Is often used.

従って、テンポラリファイルの作成動作を一定期間観測し、「/tmp/tmp03123」、「/tmp/tmp04145」、「/tmp/tmp04231」という各ファイルへのアクセスを観測し、これを許可ポリシとしてポリシに追加したとしても、例えば、ファイル「/tmp/tmp05134」を作成する動作は許可ポリシとして含まれていないので、それはポリシ違反動作として検知されてしまう。   Therefore, the creation operation of the temporary file is observed for a certain period, access to each file "/ tmp / tmp03123", "/ tmp / tmp04145", "/ tmp / tmp04231" is observed, and this is set as a permission policy in the policy. Even if it is added, for example, since the operation for creating the file “/ tmp / tmp05134” is not included as a permission policy, it is detected as a policy violation operation.

上述した従来技術2では、この問題点に対処するため、ユーザによる後処理工程を設けている。具体的には、後処理工程で、ファイル「/tmp/tmp*」(「*」は任意の文字列をあらわす)の作成を許可ポリシとして追加することで、上記の問題を解消することとしている。   In the prior art 2 described above, a post-processing step by the user is provided in order to cope with this problem. Specifically, in the post-processing step, the creation of the file “/ tmp / tmp *” (“*” represents an arbitrary character string) is added as a permission policy to solve the above problem. .

つまり、「/tmp/tmp03123」、「/tmp/tmp04145」、「/tmp/tmp04231」の3つのファイルだけでなく、ディレクトリ「/tmp」以下の「tmp」で始まるファイルの作成を全て許可ポリシとするように汎化(より広い範囲を対象とするにようにルールを一般化すること)することによって、プログラムにもとづくアクセスの収集洩れに対応することとしている。しかし、ルールの一般化を図るための後処理をユーザが行わなければばらないため、時間と労力が費やされる煩わしい後処理をユーザが強いられているという新たな課題が生じていた。   In other words, not only the three files “/ tmp / tmp03123”, “/ tmp / tmp04145”, “/ tmp / tmp04231”, but also the creation of all files starting with “tmp” under the directory “/ tmp” Generalization of the rules (generalizing the rules so as to cover a wider range) makes it possible to deal with the missing access collection based on the program. However, since the user has to perform post-processing to generalize the rules, there is a new problem that the user is forced to perform troublesome post-processing that consumes time and labor.

本発明は、上述した問題を解消し、人手による煩わしい後処理を行うことなく、プログラムを動作させて収集したアクセスを自動的に汎化してアクセスポリシを生成することができるようにすることを目的とする。   An object of the present invention is to solve the above-described problems and generate an access policy by automatically generalizing access collected by operating a program without performing cumbersome post-processing. And

本発明によるアクセスポリシ生成システムは、リソースへのアクセスの許可ルールを示す許可ポリシにもとづいてポリシ強制を行うためのアクセスポリシを生成するアクセスポリシ生成システム(例えばアクセスポリシ生成システム100,100a,200)であって、ポリシ強制の際に監査の対象とする対象プログラムにもとづくリソースへのアクセスを検知するアクセス検知手段(例えば、アクセス監査手段102、システムコール検査手段202)と、アクセス検知手段が検知したアクセスの内容を示すアクセス情報(例えば図3に示すアクセス情報)を取得するアクセス情報取得手段(例えば、アクセス監査手段102、システムコール検査手段202)と、アクセスが発生したとき、対象プログラムの実行で生じる当該対象プログラムの処理の内部状態を観測し、内部状態の観測結果をアクセス情報に付加(例えばステップS105)する状態観測手段(例えば、状態観測手段108、スタック検査手段208)と、付加された観測結果にもとづいて複数のアクセスの相関関係を示す相関値を算出し、算出した相関値があらかじめ定められた基準値よりも高い場合に、アクセス情報取得手段によって取得された複数のアクセス情報における非共通部分の一部または全部を一般化し、汎用的に用いられる形式に汎化したアクセス情報を生成する汎化手段(例えば、汎化手段107,207)と、汎化手段によって汎化されたアクセス情報にもとづいてアクセスポリシを生成するポリシ生成手段(例えば、ポリシ生成手段205)とを備えたことを特徴とする。 The access policy generation system according to the present invention generates an access policy for enforcing policy based on a permission policy indicating a permission rule for access to resources (for example, access policy generation systems 100, 100a, 200). The access detection unit (for example, the access audit unit 102 and the system call inspection unit 202) and the access detection unit detect the access to the resource based on the target program to be audited when the policy is enforced. Access information acquisition means (for example, access audit means 102, system call inspection means 202) for acquiring access information indicating the content of access (for example, access information shown in FIG. 3), and execution of the target program when access occurs The target pro A state observing means (for example, the state observing means 108, stack checking means 208) for observing the internal state of the ram processing and adding the observation result of the internal state to the access information (for example, step S105), and the added observation result A correlation value indicating a correlation between a plurality of accesses is calculated on the basis, and when the calculated correlation value is higher than a predetermined reference value, a non-common part in the plurality of access information acquired by the access information acquisition unit Generalization means (for example, generalization means 107 and 207) for generating access information generalized in part or all and generalized to a general-purpose format, and access information generalized by the generalization means And a policy generation means (for example, policy generation means 205) for generating an access policy.

上記のように、検知したアクセスの内容を示すアクセス情報を汎化し、汎化したアクセス情報にもとづいてアクセスポリシを生成する構成としているので、煩わしい処理を行うことなく自動的にアクセスポリシを生成することができる。   As described above, the access information indicating the content of the detected access is generalized, and the access policy is generated based on the generalized access information. Therefore, the access policy is automatically generated without performing troublesome processing. be able to.

上記のように、検知したアクセスの内容を示すアクセス情報を、アクセスが発生したときの処理状態を考慮して汎化する構成としているので、抜けが少なく精度の高いアクセスポリシを生成することができる。   As described above, the access information indicating the content of the detected access is generalized in consideration of the processing state when the access occurs, so that it is possible to generate an access policy with high accuracy with few omissions. .

状態観測手段は、例えば、プロシージャ呼び出しの履歴が格納されているコールスタックを検査することによって、アクセスを起動したプロシージャを含むコールスタック情報を取得するスタック検査手段(例えばスタック検査手段208)を含む構成とされ、スタック検査手段が、観測結果として、コールスタック情報を対応するアクセスの内容を示すアクセス情報に付加し(例えば図12に示すように付加する)、汎化手段が、付加されたコールスタック情報にもとづいて算出した相関値が基準値よりも高い複数のアクセス情報を一般化し、汎化したアクセス情報を生成するように構成される。   The state observing means includes, for example, a stack checking means (for example, a stack checking means 208) that acquires call stack information including a procedure that has started access by checking a call stack in which a procedure call history is stored. The stack checking means adds the call stack information to the access information indicating the contents of the corresponding access as an observation result (for example, as shown in FIG. 12), and the generalizing means adds the call stack A plurality of pieces of access information whose correlation values calculated based on the information are higher than a reference value are generalized to generate generalized access information.

汎化手段は、例えば、複数のアクセス情報の相関関係を示す相関値を算出する相関値算出手段と、相関値算出手段により算出された相関値にもとづいてアクセス情報を分類するカテゴライズ手段と、カテゴライズ手段により同一分類とされた複数のアクセス情報を汎化して共通のアクセス情報とする共通化手段とを含む構成とされる。   The generalization unit includes, for example, a correlation value calculation unit that calculates a correlation value indicating a correlation between a plurality of pieces of access information, a categorization unit that classifies access information based on the correlation value calculated by the correlation value calculation unit, and a categorization unit And a common means for generalizing a plurality of pieces of access information classified by the means into common access information.

アクセス情報は、例えば、アクセス検知手段が検知したアクセスの種類とアクセスの対象とを含み、汎化手段が、アクセスの種類が同一の複数のアクセス情報におけるアクセスの対象を一般化することで、汎化したアクセス情報を生成する構成とされる。   The access information includes, for example, the type of access detected by the access detection unit and the access target, and the generalization unit generalizes the access target in a plurality of pieces of access information having the same access type. The access information is generated.

また、本発明のアクセスポリシ生成方法は、リソースへのアクセスの許可ルールを示す許可ポリシにもとづいてポリシ強制を行うためのアクセスポリシを生成するアクセスポリシ生成方法であって、アクセス検知手段が、ポリシ強制の際に監査の対象とする対象プログラムにもとづくリソースへのアクセスを検知し(例えばステップS101)、アクセス情報取得手段が、検知したアクセスの内容を示すアクセス情報を取得し(例えばステップS101)、状態観測手段が、アクセスが発生したとき、対象プログラムの実行で生じる当該対象プログラムの処理の内部状態を観測し(例えばステップS105)、状態観測手段が、内部状態の観測結果をアクセス情報に付加し(例えばステップS105)、汎化手段が、付加された観測結果にもとづいて複数のアクセスの相関関係を示す相関値を算出し、汎化手段が、算出した相関値があらかじめ定められた基準値よりも高い場合に、アクセス情報取得手段によって取得された複数のアクセス情報における非共通部分の一部または全部を一般化して、汎用的に用いられる形式に汎化したアクセス情報を生成し(例えばステップS103)、ポリシ生成手段が、汎化されたアクセス情報にもとづいてアクセスポリシを生成する(例えばステップS104)ことを特徴とする。 The access policy generation method of the present invention is an access policy generation method for generating an access policy for policy enforcement based on a permission policy indicating a permission rule for access to a resource, wherein the access detection means includes a policy. When access is made, the access to the resource based on the target program to be audited is detected (for example, step S101), and the access information acquisition unit acquires the access information indicating the content of the detected access (for example, step S101). When access occurs, the state observing means observes the internal state of the processing of the target program that occurs upon execution of the target program (for example, step S105), and the state observing means adds the observation result of the internal state to the access information. (For example, step S105), the generalization means also adds to the added observation result. Calculating a correlation value indicating the correlation between a plurality of access Zui, generalization means is higher than the calculated reference value correlation value predetermined with a plurality of access information acquired by the access information acquiring means Generalize a part or all of the non-common part in to generate access information generalized into a general-purpose format (for example, step S103), and the policy generation means accesses based on the generalized access information A policy is generated (for example, step S104).

上記のように、検知したアクセスの内容を示すアクセス情報を汎化し、汎化したアクセス情報にもとづいてアクセスポリシを生成する構成としているので、煩わしい処理を行うことなく自動的にアクセスポリシを生成することができる。   As described above, the access information indicating the content of the detected access is generalized, and the access policy is generated based on the generalized access information. Therefore, the access policy is automatically generated without performing troublesome processing. be able to.

上記のように、検知したアクセスの内容を示すアクセス情報を、アクセスが発生したときの処理状態を考慮して汎化する構成としているので、抜けが少なく精度の高いアクセスポリシを生成することができる。   As described above, the access information indicating the content of the detected access is generalized in consideration of the processing state when the access occurs, so that it is possible to generate an access policy with high accuracy with few omissions. .

さらに、本発明のアクセスポリシ生成用プログラムは、リソースへのアクセスの許可ルールを示す許可ポリシにもとづいてポリシ強制を行うためのアクセスポリシを生成させるためのアクセスポリシ生成用プログラムであって、コンピュータ(例えばアクセスポリシ生成システム100,100a,200)に、ポリシ強制の際に監査の対象とする対象プログラムにもとづくリソースへのアクセスを検知するステップ(例えばステップS101)と、検知したアクセスの内容を示すアクセス情報を取得するステップ(例えばステップS101)と、アクセスが発生したとき、対象プログラムの実行で生じる当該対象プログラムの処理の内部状態を観測するステップ(例えばステップS105)と、内部状態の観測結果をアクセス情報に付加するステップ(例えばステップS105)と、付加された観測結果にもとづいて複数のアクセスの相関関係を示す相関値を算出するステップと、算出した相関値があらかじめ定められた基準値よりも高い場合に、取得された複数のアクセス情報における非共通部分の一部または全部を一般化して、汎用的に用いられる形式に汎化したアクセス情報を生成するステップ(例えばステップS103)と、汎化されたアクセス情報にもとづいてアクセスポリシを生成するステップ(例えばステップS104)とを実行させることを特徴とする。 Furthermore, an access policy generation program of the present invention is an access policy generation program for generating an access policy for enforcing policy based on a permission policy indicating a permission rule for access to a resource. For example, in the access policy generation system 100, 100a, 200), a step (for example, step S101) of detecting access to a resource based on a target program to be audited when policy is enforced, and an access indicating the content of the detected access A step of acquiring information (for example, step S101), a step of observing the internal state of the processing of the target program that occurs when the target program is executed (for example, step S105), and an access to the observation result of the internal state Append to information Steps (e.g., step S105), when calculating a correlation value indicating the correlation between a plurality of access based on the added observations, the calculated correlation value is higher than the predetermined reference value, obtaining Generalizing part or all of the non-common parts in the plurality of access information generated to generate access information generalized into a general-purpose format (for example, step S103), and generalized access information A step of generating an access policy on the basis (for example, step S104) is executed.

上記のように、コンピュータに、検知したアクセスの内容を示すアクセス情報を汎化し、汎化したアクセス情報にもとづいてアクセスポリシを生成する処理を実行させる構成としているので、煩わしい処理を行うことなく自動的にアクセスポリシを生成させることができる。   As described above, the computer is configured to generalize the access information indicating the content of the detected access and execute the process of generating the access policy based on the generalized access information. Thus, an access policy can be generated.

上記のように、コンピュータに、検知したアクセスの内容を示すアクセス情報を、アクセスが発生したときの処理状態を考慮して汎化する処理を実行させる構成としているので、抜けが少なく精度の高いアクセスポリシを生成させることができる。   As described above, the computer is configured to execute the process of generalizing the access information indicating the content of the detected access in consideration of the processing state when the access occurs, so there is little missing and high-precision access A policy can be generated.

本発明によれば、検知したアクセスの内容を示すアクセス情報を汎化し、汎化したアクセス情報にもとづいてアクセスポリシを生成する構成としているので、煩わしい処理を行うことなく、自動的にアクセスポリシを生成することができる。   According to the present invention, since the access information indicating the content of the detected access is generalized and the access policy is generated based on the generalized access information, the access policy can be automatically updated without performing troublesome processing. Can be generated.

以下、本発明の実施の形態について図面を参照して説明する。
実施の形態1.
図1は、本発明の第1の実施の形態におけるアクセスポリシ生成システム100の構成の例を示すブロック図である。
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
Embodiment 1 FIG.
FIG. 1 is a block diagram illustrating an example of a configuration of an access policy generation system 100 according to the first embodiment of this invention.

アクセスポリシ生成システム100は、プログラム制御により動作するコンピュータ(中央処理装置、プロセッサ、データ処理装置)により構成される。また、アクセスポリシ生成システム100には、各種の情報を入力する入力装置110が接続されている。なお、入力装置110をシステム100に含めるようにしてもよい。   The access policy generation system 100 is configured by a computer (central processing unit, processor, data processing unit) that operates under program control. The access policy generation system 100 is connected to an input device 110 for inputting various information. Note that the input device 110 may be included in the system 100.

図1に示すように、アクセスポリシ生成システム100は、対象プログラム101と、アクセス監査手段102と、リソース103と、ポリシ記憶部104と、ポリシ生成手段105と、アクセス記憶部106と、汎化手段107とを含む。   As shown in FIG. 1, the access policy generation system 100 includes a target program 101, an access audit unit 102, a resource 103, a policy storage unit 104, a policy generation unit 105, an access storage unit 106, and a generalization unit. 107.

対象プログラム101は、システム100上で動作するプログラムであって、アクセス監査の対象となるプログラムを意味する。   The target program 101 is a program operating on the system 100 and means a program to be subjected to access audit.

アクセス監査手段102は、「監査モード」と「ルール生成モード」のうち何れか一方のモードで動作する。「監査モード」と「ルール生成モード」の何れとするかの設定は、入力装置110からのユーザ入力によって行われる。   The access auditing unit 102 operates in one of the “audit mode” and “rule generation mode”. The setting of either “audit mode” or “rule generation mode” is performed by user input from the input device 110.

「監査モード」では、アクセス監査手段102は、対象プログラム101にもとづくリソース103へのアクセスを監視し、ポリシ記憶部104に格納されたアクセスポリシにもとづいてポリシ強制を行う。   In the “audit mode”, the access audit unit 102 monitors access to the resource 103 based on the target program 101 and enforces policy based on the access policy stored in the policy storage unit 104.

「ポリシ強制」とは、設定されているアクセスポリシにもとづいて、アクセスを許可するか禁止するか判定し、許可すると判定したアクセスを受け入れ、禁止すると判定したアクセスを拒否する処理を意味する。   “Policy enforcement” means a process of determining whether to permit or prohibit access based on a set access policy, accepting access determined to be permitted, and rejecting access determined to be prohibited.

「ルール生成モード」では、アクセス監査手段102は、対象プログラム101にもとづくリソース103へのアクセスを監視するが、ポリシ強制は行わずに、検知したアクセスの内容をアクセス記憶部106に格納する処理を行う。   In the “rule generation mode”, the access audit unit 102 monitors the access to the resource 103 based on the target program 101, but does not enforce policy, and stores the content of the detected access in the access storage unit 106. Do.

リソース103は、対象プログラム101が動作する基盤プログラム(例えばオペレーティングシステム)上で管理されるシステムリソースを意味する。具体的には、ファイルシステムや通信デバイスなどが該当する。   The resource 103 means a system resource managed on a base program (for example, an operating system) on which the target program 101 operates. Specifically, file systems and communication devices are applicable.

なお、「アクセス」とは、対象プログラム101にもとづく基盤プログラムに対する命令であって、システムリソース103の操作のための操作命令を意味する。また、「アクセス」を、システムリソース103の操作の意味で用いることもある。   Note that “access” is an instruction to the base program based on the target program 101 and means an operation instruction for operating the system resource 103. Further, “access” may be used to mean operation of the system resource 103.

例えば、基盤プログラムがOSの場合には、ファイル読み出し、ファイル書き込み、通信ネットワークへのデータ送信、通信ネットワークからのデータ受信などを行うためのシステムコールが「アクセス」となる。   For example, when the base program is an OS, a system call for performing file reading, file writing, data transmission to the communication network, data reception from the communication network, and the like is “access”.

なお、プロセス実行や、ヒープメモリ確保などを行うためのその他のシステムコールを「アクセス」に含めてもよい。   It should be noted that “access” may include other system calls for executing processes and securing heap memory.

また、例えば、基盤プログラムがJava(登録商標)VM(Java Virtual Machine)の場合には、オブジェクト作成、他のオブジェクトのメソッド呼び出しなどのJavaVMに対するAPI(Application Programming Interface)呼び出し全般が「アクセス」となる。   Also, for example, when the base program is a Java (registered trademark) VM (Java Virtual Machine), API (Application Programming Interface) calls for Java VM such as object creation and method call of other objects are “access”. .

ポリシ記憶部104は、ポリシ生成手段105によって生成された許可ポリシを記憶する記憶装置である。   The policy storage unit 104 is a storage device that stores the permitted policy generated by the policy generation unit 105.

アクセス記憶部106は、アクセス監査手段102によって検知されたアクセスにもとづくアクセス情報を一時的に記憶する記憶装置である。なお、アクセス情報は、アクセスの種類と、アクセスの対象とを含む情報である。   The access storage unit 106 is a storage device that temporarily stores access information based on the access detected by the access audit unit 102. The access information is information including an access type and an access target.

ポリシ記憶部104とアクセス記憶部106とは、ハードディスクなどの外部記憶装置であっても、システム100に搭載されるメインメモリであってもよい。   Policy storage unit 104 and access storage unit 106 may be an external storage device such as a hard disk or a main memory mounted in system 100.

汎化手段107は、アクセス記憶部106に一時的に保存されたアクセス情報を汎化する処理を行う。汎化処理は、例えば、アクセス情報中に含まれるパラメータ(アクセスの対象)を汎化することによって行われる。   The generalization unit 107 performs a process of generalizing the access information temporarily stored in the access storage unit 106. The generalization process is performed, for example, by generalizing a parameter (access target) included in the access information.

ポリシ生成手段105は、汎化手段107によって汎化されたパラメータをアクセスポリシに変換し、ポリシ記憶部104に格納する処理を行う。   The policy generation unit 105 converts the parameter generalized by the generalization unit 107 into an access policy and stores it in the policy storage unit 104.

なお、システム100が「監査モード」で動作しているときは、ポリシの生成のための動作が行われず、アクセス監査手段102からアクセス記憶部106に対してアクセス情報は一切出力されない。このため、「監査モード」では、汎化手段107およびポリシ生成手段105は何ら動作を行わない。   When the system 100 is operating in the “audit mode”, no policy generation operation is performed, and no access information is output from the access auditing unit 102 to the access storage unit 106. For this reason, in the “audit mode”, the generalization unit 107 and the policy generation unit 105 perform no operation.

次に、本例のアクセスポリシ生成システム100の動作について説明する。
ここでは、ルール生成モードが設定されているときのアクセスポリシ生成システム100の動作について詳細に説明する。
Next, the operation of the access policy generation system 100 of this example will be described.
Here, the operation of the access policy generation system 100 when the rule generation mode is set will be described in detail.

図2は、ルール生成モードが設定されているときにアクセスポリシ生成システム100が実行するアクセスポリシ生成処理の例を示すフローチャートである。   FIG. 2 is a flowchart showing an example of access policy generation processing executed by the access policy generation system 100 when the rule generation mode is set.

アクセスポリシ生成処理において、アクセス監査手段102は、対象プログラムにもとづくアクセスの有無を監視し、対象プログラム101にもとづくアクセスが発生するたびに、アクセスの種類とアクセスの対象とを含むアクセス情報をアクセス記憶部106に格納する(ステップS101)。   In the access policy generation process, the access audit unit 102 monitors the presence / absence of access based on the target program, and accesses and stores the access information including the access type and the access target every time the access based on the target program 101 occurs. The data is stored in the unit 106 (step S101).

アクセスの監視は後述する監視終了条件が成立するまで継続して実行され、監視中にアクセスが発生すると、ステップS101の処理が実行される。   Access monitoring is continuously executed until a monitoring end condition described later is satisfied. When an access occurs during monitoring, the process of step S101 is executed.

監視終了条件は、例えば、対象プログラム101にもとづく処理が終了したこと、ルール生成モードの終了が入力装置110によって指定されたこと、所定期間が経過したこと、所定個数のアクセス情報がアクセス記憶部106に格納されたこと、あるいはこれらの任意の組合せなどのように、あらかじめ定められていものとする。   The monitoring end condition includes, for example, that the processing based on the target program 101 has ended, that the end of the rule generation mode has been designated by the input device 110, that a predetermined period has passed, and that a predetermined number of access information is stored in the access storage unit 106. It is assumed that it is stored in advance, or any combination thereof.

図3は、アクセス記憶部106に格納されたアクセス情報の例を示す説明図である。この例では、図3に示すように、アクセスの種類とアクセスの対象とを含むアクセス情報が表形式で格納される。   FIG. 3 is an explanatory diagram illustrating an example of access information stored in the access storage unit 106. In this example, as shown in FIG. 3, the access information including the access type and the access target is stored in a table format.

「アクセスの種類(アクセス名)」は、例えば、ファイルの作成(「create」)、ファイルの読み込み(「read」)など、対象プログラム101にもとづくリソース103へのアクセスの内容を示す情報である。   The “access type (access name)” is information indicating the contents of access to the resource 103 based on the target program 101 such as file creation (“create”) and file read (“read”).

「アクセスの対象」は、対象プログラム101にもとづくアクセスによって操作対象とされたファイルなどのリソース103を示す情報である。   “Access target” is information indicating a resource 103 such as a file that is an operation target by access based on the target program 101.

具体的には、図3の最初の行に示すアクセス情報は、「/tmp/tmp03123」という名前のファイルが作成されたことを意味する。また、図3の2行目に示すアクセス情報は、「/etc/hosts」という名前のファイルが読み込まれたことを意味する。   Specifically, the access information shown in the first line of FIG. 3 means that a file named “/ tmp / tmp03123” has been created. The access information shown in the second line of FIG. 3 means that a file named “/ etc / hosts” has been read.

監視終了条件が成立すると(ステップS102のY)、アクセス監査手段102によるアクセスの監視を終了し、汎化処理(ステップS103)に移行する。   When the monitoring termination condition is satisfied (Y in step S102), the access monitoring by the access auditing unit 102 is terminated, and the process proceeds to the generalization process (step S103).

汎化処理(ステップS103)では、汎化手段107は、アクセス記憶部106に格納された表(図3参照)を参照して、各アクセス情報それぞれのアクセス名とアクセス対象とから、各アクセス情報における同じアクセス名に対応するアクセス対象それぞれで共通しているパターンを抽出し、アクセス対象を汎化する処理を行う。   In the generalization process (step S103), the generalization unit 107 refers to the table (see FIG. 3) stored in the access storage unit 106, and determines each access information from the access name and access target of each access information. A pattern common to each access target corresponding to the same access name is extracted, and the access target is generalized.

なお、「汎化」とは、あるデータを汎用的に用いることができるように変換することをいう。この例では、共通部分を持つデータの非共通部分を一般化することで「汎化」を行うようにしている。   Note that “generalization” refers to conversion of certain data so that it can be used for general purposes. In this example, “generalization” is performed by generalizing non-common parts of data having common parts.

汎化処理(ステップS103)による汎化の方法には、様々な方法が考えられる。以下、アクセス対象がファイル名で特定されている図3に示したアクセス情報を例に、汎化の方法の例について説明する。   Various methods can be considered as a generalization method by the generalization process (step S103). Hereinafter, an example of the generalization method will be described by taking the access information shown in FIG. 3 in which the access target is specified by the file name as an example.

例えば、汎化処理において、図3に示すアクセス情報のアクセス対象であるファイルのうち、同じディレクトリに含まれているファイル同士の非共通部分を一般化することで汎化するようにすればよい。   For example, in the generalization process, among the files that are the access targets of the access information shown in FIG. 3, generalization may be performed by generalizing non-common parts of files included in the same directory.

この場合、図4に示すように、同じアクセス名「create」に対応する各アクセス対象のうち同じディレクトリ「tmp」に含まれている4つのファイルが、「/tmp/」という一般化されたファイル名とされ、同じアクセス名「read」に対応する各アクセス対象のうち同じディレクトリ「etc」に含まれている2つのファイルが、「/etc/」という一般化されたファイル名とされることで、汎化される。 In this case, as shown in FIG. 4, four files included in the same directory “tmp” among the access targets corresponding to the same access name “create” are generalized as “/ tmp / * ”. Two files included in the same directory “etc” among the access targets corresponding to the same access name “read” are assumed to be generalized file names “/ etc / * ”. It is generalized.

なお、「*」は任意の文字列を表す。すなわち、ファイル「/tmp/」は、ディレクトリ「tmp」に格納されている任意のファイルを意味する。 Note that “*” represents an arbitrary character string. That is, the file “/ tmp / * ” means an arbitrary file stored in the directory “tmp”.

上記のようにして汎化処理を行うと、6つあったアクセス情報(図3参照)が、図4に示すように、汎化された2つのアクセス情報で表現される。   When the generalization process is performed as described above, the six pieces of access information (see FIG. 3) are represented by two generalized access information as shown in FIG.

また、汎化処理において、図3に示すアクセス情報のアクセス対象である各ファイルについて、同じディレクトリに含まれているファイルのファイル名の一部が一致する部分も共通部分として取り扱い、その他の非共通部分を一般化することで汎化するようにしてもよい。   In addition, in the generalization process, for each file that is the access target of the access information shown in FIG. 3, the part of the file name of the file included in the same directory is treated as a common part, and other non-common You may make it generalize by generalizing a part.

この場合、図5に示すように、同じディレクトリ「tmp」に含まれている4つのファイルのファイル名のうち一致する一部「tmp」も共通部分として取り扱い、これら4つのファイルが「/tmp/ tmp」に一般化される。なお、同じディレクトリ「etc」に含まれている2つのファイルのファイル名には一致する部分がないため、図4に示した場合と同様に「/etc/」に一般化される。 In this case, as shown in FIG. 5, the matching part “tmp” among the file names of the four files included in the same directory “tmp” is also handled as a common part, and these four files are “/ tmp / Generalized to “tmp * ”. Since there is no matching part between the file names of the two files included in the same directory “etc”, it is generalized to “/ etc / * ” as in the case shown in FIG.

上記のようにして汎化処理を行うと、6つあったアクセス情報(図3参照)が、図5に示すように、2つの汎化された2つのアクセス情報で表現される。   When generalization processing is performed as described above, the six pieces of access information (see FIG. 3) are represented by two generalized two pieces of access information as shown in FIG.

さらに、汎化処理において、図3に示すアクセス情報のアクセス対象であるファイルについて、同じディレクトリに含まれているファイルのファイル名に表れる文字の種類が一致する部分も共通部分として取り扱い、文字の種類が共通であるとして一般化することで汎化するようにしてもよい。   Further, in the generalization process, with respect to the file that is the access target of the access information shown in FIG. 3, the part that matches the character type appearing in the file name of the file included in the same directory is treated as a common part, and the character type May be generalized by generalizing as being common.

この場合、図6に示すように、同じディレクトリ「tmp」に含まれている4つのファイルのファイル名が一致する一部「tmp」に加え、文字の種類が一致している部分も共通部分として取り扱い、これら4つのファイルが「/tmp/tmp[0−9]」に一般化される。 In this case, as shown in FIG. 6, in addition to the part “tmp” in which the file names of the four files included in the same directory “tmp” match, the part in which the character type matches is also a common part. Handling, these four files are generalized to "/ tmp / tmp [0-9] * ".

ここで、「[0−9]」は、0から9までの数字のいずれかのみで構成される文字列を意味する。すなわち、ファイル「/tmp/tmp[0−9]」は、ディレクトリ「tmp」に格納されているファイルのうち、「tmp」の後に任意の数字が付加されたファイル名を持つ任意のファイルを意味する。 Here, “[0-9] * ” means a character string composed of only one of the numbers from 0 to 9. That is, the file “/ tmp / tmp [0-9] * ” is an arbitrary file having a file name in which an arbitrary number is added after “tmp” among files stored in the directory “tmp”. means.

上記のようにして汎化処理を行うと、6つあったアクセス情報(図3参照)が、図6に示すように、2つの汎化された2つのアクセス情報で表現される。   When generalization processing is performed as described above, the six pieces of access information (see FIG. 3) are represented by two generalized two pieces of access information as shown in FIG.

汎化処理を終了すると、ポリシ生成手段105は、汎化手段107によって汎化されたアクセス情報を、許可ポリシとしてポリシ記憶部104に格納する(ステップS104:ポリシ生成処理)。   When the generalization process ends, the policy generation unit 105 stores the access information generalized by the generalization unit 107 in the policy storage unit 104 as a permitted policy (step S104: policy generation process).

ポリシ生成処理では、ステップS103にてアクセス情報が図6に示すように汎化された場合には、「/tmp/tmp[0−9]」に対する「create」と、「/etc/」に対する「read」との2つを許可ポリシとしてポリシ記憶部104に格納し、2つの許可ポリシが追加される。 In the policy generation process, when the access information is generalized as shown in FIG. 6 in step S103, “create” for “/ tmp / tmp [0-9] * ” and “/ etc / * ”. Are stored in the policy storage unit 104 as permission policies, and two permission policies are added.

以上に説明したように、検知したアクセスの内容を示すアクセス情報の非共通部分の一部または全部を一般化することで汎用的に用いることができるような形式に汎化し、汎化したアクセス情報にもとづいてアクセスポリシを生成する構成としているので、抜けが少なく精度の高いアクセスポリシを煩わしい処理を行うことなく自動的に生成することができる。   As explained above, generalized access information that has been generalized into a form that can be used for general purposes by generalizing part or all of the non-common part of the access information indicating the content of the detected access. Since the access policy is generated based on the above, it is possible to automatically generate a highly accurate access policy with few omissions without performing troublesome processing.

実施の形態2.
次に、本発明の第2の実施の形態について説明する。
図7は、本発明の第2の実施の形態におけるアクセスポリシ生成システム100aの構成の例を示すブロック図である。なお、図7において、上述したアクセスポリシ生成システム100と同様の構成をなす部分については、同一の符号を付与してその詳細な説明は省略する。
Embodiment 2. FIG.
Next, a second embodiment of the present invention will be described.
FIG. 7 is a block diagram showing an example of the configuration of the access policy generation system 100a according to the second embodiment of the present invention. In FIG. 7, the same reference numerals are given to portions having the same configuration as that of the access policy generation system 100 described above, and detailed description thereof is omitted.

図7に示すように、アクセスポリシ生成システム100aは、上述したアクセスポリシ生成システム100が備える構成と、状態観測手段108とを含む。すなわち、アクセスポリシ生成システム100aは、アクセスポリシ生成システム100の構成に状態観測手段108を追加した構成とされている。   As shown in FIG. 7, the access policy generation system 100 a includes a configuration included in the access policy generation system 100 described above and a state observation unit 108. That is, the access policy generation system 100 a is configured by adding the state observation means 108 to the configuration of the access policy generation system 100.

状態観測手段108は、対象プログラム101にもとづく処理を行う制御手段(例えば、コンピュータ)の内部状態(例えば、制御手段が備えるスタックの内容、レジスタの内容、ヒープメモリの内容など)を調べ、アクセス監査手段102によって検知されたアクセス情報に内部状態を加えてアクセス記憶部106に格納する。   The state observing means 108 checks the internal state of the control means (for example, a computer) that performs processing based on the target program 101 (for example, the contents of the stack, the contents of the registers, the contents of the heap memory, etc. provided in the control means), and the access audit The internal state is added to the access information detected by the means 102 and stored in the access storage unit 106.

ここで、アクセス記憶部106に保存する内部状態は、制御手段の内部状態の一部のみとするのが好ましい。なぜなら、制御手段の内部状態を表すデータ量は一般に大きく、全て保存するのはメモリ利用効率上問題が生じるおそれがあるためである。   Here, the internal state stored in the access storage unit 106 is preferably only a part of the internal state of the control means. This is because the amount of data representing the internal state of the control means is generally large, and all the data is stored because there is a possibility that a problem may occur in terms of memory utilization efficiency.

従って、例えば、制御手段の内部状態のうち、スタックの内容や、コールスタック(スタックの中でも、特に、プロシージャ呼び出しの履歴を格納する部分)を保存するようにすればよい。   Accordingly, for example, the contents of the stack and the call stack (particularly, the portion storing the history of procedure calls) in the internal state of the control means may be saved.

次に、本例のアクセスポリシ生成システム100aの動作について説明する。
ここでは、ルール生成モードが設定されているときのアクセスポリシ生成システム100aの動作について詳細に説明する。
Next, the operation of the access policy generation system 100a of this example will be described.
Here, the operation of the access policy generation system 100a when the rule generation mode is set will be described in detail.

図8は、ルール生成モードが設定されているときにアクセスポリシ生成システム100aが実行するアクセスポリシ生成処理の例を示すフローチャートである。なお、この実施の形態における監査モードでのアクセスポリシ生成システム100aの動作は、上述したアクセスポリシ生成システム100の監査モードでの動作と同一である。   FIG. 8 is a flowchart showing an example of access policy generation processing executed by the access policy generation system 100a when the rule generation mode is set. Note that the operation of the access policy generation system 100a in the audit mode in this embodiment is the same as the operation of the access policy generation system 100 described above in the audit mode.

アクセスポリシ生成処理において、アクセス監査手段102は、対象プログラムにもとづくリソース103へのアクセスを監視し、対象プログラム101にもとづくアクセスが発生するたびに、アクセスの種類とアクセスの対象とを含むアクセス情報をアクセス記憶部106に格納する(ステップS101)。   In the access policy generation process, the access auditing means 102 monitors access to the resource 103 based on the target program, and each time access based on the target program 101 occurs, access information including the type of access and the access target is obtained. Store in the access storage unit 106 (step S101).

アクセス情報が格納されると、状態観測手段108は、対象プログラム101にもとづく処理を行っている制御手段の内部状態であって、格納されたアクセス情報がアクセス監査手段102によって検知された時点の内部状態(ここでは内部状態の一部)をアクセス記憶部106に格納する(ステップS105)。   When the access information is stored, the state observing means 108 is the internal state of the control means that performs processing based on the target program 101, and the internal state at the time when the stored access information is detected by the access auditing means 102. The state (here, part of the internal state) is stored in the access storage unit 106 (step S105).

終了条件が成立するまでステップS101とステップS105の処理を繰り返し行うことによって、例えば図9に示すように、内部状態が付加されたアクセス情報が表形式で格納される。   By repeatedly performing the processing of step S101 and step S105 until the end condition is satisfied, for example, as shown in FIG. 9, the access information to which the internal state is added is stored in a table format.

図9の最初の行は、「/tmp/tmp03123」という名前のファイルが作成されたことを表すアクセス情報であり、2行目は、「/etc/hosts」という名前のファイルが読み込まれたことを表すアクセス情報である。   The first line in FIG. 9 is access information indicating that a file named “/ tmp / tmp03123” has been created, and the second line indicates that a file named “/ etc / hosts” has been read. Is access information that represents.

図3に示した例とは異なり、図9の表では、アクセス情報に内部状態が付加されている。なお、図9に示す「内部状態」は、対応するアクセスを起動したプロシージャのアドレスを表している。   Unlike the example shown in FIG. 3, in the table of FIG. 9, the internal state is added to the access information. The “internal state” shown in FIG. 9 represents the address of the procedure that started the corresponding access.

終了条件が成立すると(ステップS102のY)、汎化手段107によって汎化処理を行い(ステップS103)、ポリシ生成手段105によってポリシ生成処理を行う(ステップS104)。   When the end condition is satisfied (Y in step S102), the generalization unit 107 performs generalization processing (step S103), and the policy generation unit 105 performs policy generation processing (step S104).

ポリシ生成処理では、汎化手段107によって汎化されたアクセス情報を、許可ポリシとしてポリシ記憶部104に格納する処理が行われる。   In the policy generation process, a process of storing the access information generalized by the generalization unit 107 in the policy storage unit 104 as a permitted policy is performed.

汎化処理では、汎化手段107が、アクセス記憶部106に格納された表(図9参照)を参照して、アクセス名とアクセス対象と内部状態からパターンを抽出し、アクセス対象を汎化する。   In the generalization process, the generalization unit 107 refers to the table stored in the access storage unit 106 (see FIG. 9), extracts a pattern from the access name, the access target, and the internal state, and generalizes the access target. .

本実施の形態では、上述した第1の実施の形態と異なり、内部状態をパターン抽出に用いることができる。例えば図9の例の場合、同じディレクトリに含まれており、かつ、同じプロシージャから呼び出されたアクセスの対象となったファイル同士を汎化することが考えられる。   In the present embodiment, unlike the first embodiment described above, the internal state can be used for pattern extraction. For example, in the case of the example in FIG. 9, it is conceivable to generalize files that are included in the same directory and are accessed by the same procedure.

具体的には、図10に示すように、同じディレクトリに含まれており、かつ、同じプロシージャから呼び出されたアクセスの対象の共通部分が一般化されて汎化される。なお、「*」は任意の文字列を表す。   Specifically, as shown in FIG. 10, the common part of the access target included in the same directory and called from the same procedure is generalized and generalized. Note that “*” represents an arbitrary character string.

図10に示す例では、上述した第1の実施の形態における図4に示した例と比較すると、ファイル「/etc/hosts」に対するreadと、ファイル「/etc/passwd」に対するreadは異なるプロシージャから呼び出されているため、両者は汎化されずに残る。   In the example shown in FIG. 10, compared with the example shown in FIG. 4 in the first embodiment described above, the read for the file “/ etc / hosts” and the read for the file “/ etc / passwd” are from different procedures. Since they are called, both remain ungeneralized.

一般に、プログラム内の同じ場所(同じプロシージャ)から呼び出されたアクセスは同じ意味を持ち、異なる場所(異なるプロシージャ)から呼び出されたアクセスは別の意味を持つ。処理において別の意味を持つアクセス(例えば、異なる場所から呼ばれるアクセス)を汎化によって許可ポリシに含めることは好ましくない。   In general, accesses called from the same place (same procedure) in the program have the same meaning, and accesses called from different places (different procedures) have different meanings. It is not preferable to include an access having a different meaning in the processing (for example, an access called from a different place) in the permission policy by generalization.

なぜなら、一般に、テンポラリファイルを作成するという処理、パスワードを読み出すという処理、ホストファイルを読み出すという処理は、それぞれ、プログラム中の別々の箇所で行われる。   This is because, generally, the process of creating a temporary file, the process of reading out a password, and the process of reading out a host file are performed at different points in the program.

このため、処理によって異なる取り扱いがなされ、一般に、テンポラリファイルを作成するという処理は作成されるファイル名が異なっていても同じ場所から呼ばれるが、パスワードを読み出すという処理、ホストファイルを読み出すという処理は異なる場所から呼ばれる。   For this reason, different handling is performed depending on the process. Generally, the process of creating a temporary file is called from the same place even if the created file name is different, but the process of reading out the password and the process of reading out the host file are different. Called from the place.

このような、プログラムの持つ性質を利用することによって、本実施の形態では、テンポラリファイルの作成を示すアクセス情報(図9の1,3、4、6行目)は汎化し、パスワードを読み出すという処理を示すアクセス情報(図9の5行目)とホストファイルを読み出すという処理を示すアクセス情報(図9の2行目)とは汎化しない。   By using such a property of the program, in this embodiment, access information (first, third, fourth, and sixth lines in FIG. 9) indicating creation of a temporary file is generalized and a password is read out. The access information indicating the process (line 5 in FIG. 9) and the access information indicating the process of reading the host file (line 2 in FIG. 9) are not generalized.

上記のように、アクセス名とアクセス対象だけでなく、アクセスが検知されたときの制御手段の処理状態(内部状態)をも考慮して汎化する構成としているので、過剰な汎化を防止することができ、生成されるアクセスポリシが緩すぎるものになることを防ぐことができる。すなわち、アクセスポリシの抜けを防止し、精度の高いアクセスポリシを生成することができる。   As described above, the configuration is generalized in consideration of not only the access name and the access target but also the processing state (internal state) of the control means when the access is detected, thereby preventing excessive generalization. It is possible to prevent the generated access policy from becoming too loose. That is, it is possible to prevent an access policy from being lost and generate an access policy with high accuracy.

すなわち、アクセス監査手段102によって収集可能なアクセス名およびアクセス対象のみからでは、後処理による汎化を高精度で行うことは難しい。   That is, it is difficult to perform generalization by post-processing with high accuracy only from access names and access targets that can be collected by the access auditing means 102.

サーバプログラムの多くは、動作時にOSの設定ファイルを参照する。例えば、設定ファイル読み出しの動作を一定期間観測し、「/etc/passwd」、「/etc/hosts」、および「/etc/services」というファイルへのアクセスを観測したとする。   Many server programs refer to OS configuration files during operation. For example, it is assumed that the setting file read operation is observed for a certain period and access to the files “/ etc / passwd”, “/ etc / hosts”, and “/ etc / services” is observed.

ここで、上述した第1の実施の形態と同様に、「ファイル「/etc/*」の読み出し」を許可ポリシとするように汎化するのは必ずしも正しくない。   Here, as in the first embodiment described above, it is not always correct to generalize so that “reading of the file“ / etc / * ”” is the permission policy.

つまり、テンポラリファイルの場合と異なり、サーバプログラムによるファイル「/etc/passwd」、ファイル「/etc/hosts」、およびファイル「/etc/services」の読み出しは、一般に、それぞれ別の意味を持つ処理であり、これらのファイルを読み出したとしても、ファイル「/etc/shadow」の読み出しを許可してよいとは限らないためである。   In other words, unlike the case of temporary files, reading of the file “/ etc / passwd”, the file “/ etc / hosts”, and the file “/ etc / services” by the server program is generally a process with different meanings. This is because even if these files are read, reading of the file “/ etc / shadow” may not necessarily be permitted.

ところが、アクセス名およびアクセス対象によって特定される「どのようなアクセスが、何に対して生じたか」という情報のみからでは、それぞれのアクセスがどのような背景で呼ばれたかを判定することはできない。   However, it is not possible to determine in what background each access was called based only on the information “what access occurred with respect to what” specified by the access name and the access target.

これに対し、上述した第2の実施の形態では、アクセス名とアクセス対象だけでなく、対象プログラムにもとづく処理の内容(制御手段の内部情報)をも収集する構成としているので、それぞれのアクセスがどのような背景で呼ばれたかを示す情報をも考慮した上で、汎化処理を行うことができ、抜けの少ない高精度なアクセスポリシを生成することができる。   On the other hand, in the second embodiment described above, not only the access name and the access target but also the contents of the processing based on the target program (internal information of the control means) are collected. In consideration of information indicating what kind of background is called, generalization processing can be performed, and a highly accurate access policy with few missing points can be generated.

なお、上述した第2の実施の形態では、同じプロシージャから呼び出されたアクセスの対象の共通部分を一般化して汎化する構成としていた。すなわち、対象プログラムにもとづく処理の内容(制御手段の内部情報)が同一の複数のアクセス情報を汎化する構成としていたが、複数のデータを含む内部情報(例えば後述する図12に示すコールスタック情報)が得られる場合には、内部情報が同一である場合に限らず、内部情報が近似する複数のアクセス情報をも汎化対象とする構成としてもよい。   In the second embodiment described above, the common part of the access target called from the same procedure is generalized and generalized. In other words, a plurality of pieces of access information having the same processing contents (internal information of the control means) based on the target program are generalized, but internal information including a plurality of data (for example, call stack information shown in FIG. 12 described later) ) Is not limited to the case where the internal information is the same, and a plurality of access information that approximates the internal information may be targeted for generalization.

この場合、例えば、ステップS103の汎化処理にて、汎化手段107が、内部情報にもとづいて複数のアクセスの相関関係を示す相関値を算出し、算出した相関値があらかじめ定められた基準値よりも高い複数のアクセス情報を一般化することで、汎化したアクセス情報を生成するようにすればよい。具体的には、先ず、対比される複数のアクセス情報について、それぞれに付加された内部情報に含まれる複数のデータの中に占める一致するデータの割合を相関値として算出する。そして、算出した相関値が基準値としてあらかじめ定められた値(例えば6割、8割などの値)よりも高ければ、該当する複数のアクセス情報を汎化することに決定するようにすればよい。このように構成すれば、例えば内部情報を収集するための観測範囲を広くした場合(例えば後述する実施例においてスタック領域の全てを観測することとした場合)に、汎化するための要件が厳し過ぎて汎化対象となるアクセス情報が極端に少なくなってしまうような事態を防止することができる。   In this case, for example, in the generalization process in step S103, the generalization unit 107 calculates a correlation value indicating a correlation between a plurality of accesses based on the internal information, and the calculated correlation value is a predetermined reference value. Generalized access information may be generated by generalizing a plurality of higher access information. Specifically, for a plurality of pieces of access information to be compared, a ratio of matching data occupying among a plurality of pieces of data included in internal information added to each is calculated as a correlation value. If the calculated correlation value is higher than a predetermined value (for example, 60%, 80%, etc.) as a reference value, it may be decided to generalize a plurality of corresponding access information. . With this configuration, for example, when the observation range for collecting internal information is widened (for example, when all the stack areas are observed in the embodiments described later), the requirements for generalization are strict. Thus, it is possible to prevent a situation in which the access information to be generalized becomes extremely small.

なお、上述した各実施の形態では特に言及していないが、本発明は、上述した各処理をコンピュータに実行させるソフトウェアが搭載されたサーバ装置に適用できることは勿論である。また、上述したアクセスポリシ生成システムの一部がインターネットや専用回線などの通信ネットワークを介して接続されていてもよく、そのような通信ネットワークに接続される機器に適用することもできる。   Although not specifically mentioned in each of the above-described embodiments, the present invention is naturally applicable to a server device in which software for causing a computer to execute each of the above-described processes is installed. Further, a part of the above-described access policy generation system may be connected via a communication network such as the Internet or a dedicated line, and can be applied to a device connected to such a communication network.

また、上述した各実施の形態では特に言及していないが、上述した各実施の形態における各処理は、システムが備える制御プログラム(アクセスポリシ生成用プログラム)にもとづいて行われている。   Further, although not particularly mentioned in each of the above-described embodiments, each process in each of the above-described embodiments is performed based on a control program (access policy generation program) provided in the system.

アクセスポリシ生成用プログラムは、コンピュータ(システム100,100a)に、リソースへのアクセスの許可ルールを示す許可ポリシにもとづいてポリシ強制を行うためのアクセスポリシを生成させるための制御プログラムである。具体的には、アクセスポリシ生成用プログラムは、例えば、コンピュータに、ポリシ強制の際に監査の対象とする対象プログラムにもとづくリソースへのアクセスを検知するステップと、検知したアクセスの内容を示すアクセス情報を取得するステップと、アクセスが発生したとき、対象プログラムの実行で生じる当該対象プログラムの処理の内部状態を観測するステップと、内部状態の観測結果をアクセス情報に付加するステップと、付加された観測結果にもとづいて複数のアクセスの相関関係を示す相関値を算出するステップと、算出した相関値があらかじめ定められた基準値よりも高い場合に、取得された複数のアクセス情報における非共通部分の一部または全部を一般化して、汎用的に用いられる形式に汎化したアクセス情報を生成するステップと、汎化されたアクセス情報にもとづいてアクセスポリシを生成するステップとを実行させる制御プログラムである。 The access policy generation program is a control program for causing a computer (system 100, 100a) to generate an access policy for performing policy enforcement based on a permission policy indicating a permission rule for access to a resource. Specifically, the access policy generation program detects, for example, a step of detecting access to a resource based on a target program to be audited when a policy is enforced on a computer, and access information indicating the content of the detected access. , A step of observing the internal state of the processing of the target program that occurs when the target program is executed, a step of adding the observation result of the internal state to the access information, and an attached observation A step of calculating a correlation value indicating a correlation between a plurality of accesses based on the result, and one of the non-common parts in the acquired plurality of access information when the calculated correlation value is higher than a predetermined reference value. Generalized part or all, generates access information generalized to a general-purpose format A step that is a control program for executing the steps of generating an access policy based on the generalized access information.

次に、本発明の具体的実施例について説明する。
図11は、本実施例におけるアクセスポリシ生成システム200を示すブロック図である。アクセスポリシ生成システム200は、各種のデータ処理を行うパーソナル・コンピュータを含むシステムによって構成される。
Next, specific examples of the present invention will be described.
FIG. 11 is a block diagram showing an access policy generation system 200 in the present embodiment. The access policy generation system 200 is configured by a system including a personal computer that performs various data processing.

図11に示すように、アクセスポリシ生成システム200は、WWWサーバ201と、システムコール検査手段202と、Linux OS203と、ポリシ記憶部204と、ポリシ生成手段205と、アクセス記憶部206と、汎化手段207と、スタック検査手段208とを含む。   As shown in FIG. 11, the access policy generation system 200 includes a WWW server 201, a system call inspection unit 202, a Linux OS 203, a policy storage unit 204, a policy generation unit 205, an access storage unit 206, and a generalization. Means 207 and stack inspection means 208 are included.

図11に示すWWWサーバ201は、対象プログラム101に従って動作を行う制御手段の具体例である。   A WWW server 201 illustrated in FIG. 11 is a specific example of a control unit that operates according to the target program 101.

システムコール検査手段202は、アクセス監査手段102の具体例である。Linux OS203は、リソース103の具体例であるファイルなどのシステムリソースを管理するオペレーティングシステムである。   The system call inspection unit 202 is a specific example of the access audit unit 102. The Linux OS 203 is an operating system that manages system resources such as files that are specific examples of the resource 103.

システムコール検査手段202は、Linux OS203のptraceシステムコールを利用することによって、対象プログラムにもとづくシステムコールが発生するたびに、ソフトウェア割り込みによってシステムコール名(アクセス名の例)と引数(アクセス対象の例)の内容を確認する処理を行う。   The system call inspection unit 202 uses the ptrace system call of the Linux OS 203 so that a system call name (an example of an access name) and an argument (an example of an access target) are generated by a software interrupt each time a system call based on the target program occurs. ) Is performed to confirm the contents.

システムコール検査手段202による確認結果は、アクセス情報としてアクセス記憶部208に格納される。なお、システムコール検査手段202は、対象プログラムにもとづくシステムコールが発生したことを、スタック検査手段208に通知する処理を行う。   The confirmation result by the system call inspection unit 202 is stored in the access storage unit 208 as access information. The system call inspection unit 202 performs processing for notifying the stack inspection unit 208 that a system call based on the target program has occurred.

なお、ptraceシステムコールと呼ばれる手法を利用してシステムコール名と引数の内容を調べることは、straceプログラムと呼ばれるプログラムなどにより実現されている公知の処理である。   Note that checking a system call name and the contents of an argument using a method called a ptrace system call is a known process realized by a program called an strace program.

ポリシ記憶部204はポリシ記憶部104の具体例であり、ポリシ生成手段205はポリシ生成手段104具体例である。ポリシ生成手段205は、汎化手段207によって生成された汎化されたアクセス情報にもとづいて、アクセスポリシを生成する処理を行う。 The policy storage unit 204 is a specific example of the policy storage unit 104, and the policy generation unit 205 is a specific example of the policy generation unit 104. The policy generation unit 205 performs processing for generating an access policy based on the generalized access information generated by the generalization unit 207.

汎化手段207は汎化手段107の具体例であり、アクセス記憶部206に格納されたデータを汎化したルールを生成するための汎化処理を行う。   The generalization unit 207 is a specific example of the generalization unit 107, and performs a generalization process for generating a rule that generalizes the data stored in the access storage unit 206.

また、スタック検査手段208は、状態観測手段108の具体例である。スタック検査手段208は、システムコールが呼び出された時点でのWWWサーバ201のコールスタックを検査する。   The stack inspection unit 208 is a specific example of the state observation unit 108. The stack checking unit 208 checks the call stack of the WWW server 201 at the time when the system call is called.

スタック検査手段208は、コールスタックを検査することによって、そのシステムコールがプログラム中のどのようなプロシージャによって呼び出されたかを、プロシージャの呼び出し階層を遡って検査し、その検査結果を示す後述するコールスタック情報を取得する処理を行う。   The stack checking means 208 checks the call stack to check what procedure in the program the system call was called up by going back up the procedure call hierarchy, and shows the result of the call stack described later. Process to get information.

なお、コールスタックを検査することによって、その時点におけるプロシージャ呼び出しの階層を遡って調べることは、gdb(GNUデバッガ)プログラムなどのデバッガプログラムで実現されている公知の処理である。   Note that checking the call stack and examining the hierarchy of procedure calls at that point in time is a known process implemented by a debugger program such as a gdb (GNU debugger) program.

アクセス記憶部206は、システム200のメインメモリであり、アクセス記憶部106の具体例である。アクセス記憶部206は、システムコール検査手段202によって検出されたシステムコール呼び出しを示すアクセス情報と、スタック検査手段208によって検査されたシステムコールの呼び出し時点でのコールスタック情報とを保存する。   The access storage unit 206 is a main memory of the system 200 and is a specific example of the access storage unit 106. The access storage unit 206 stores access information indicating the system call invocation detected by the system call inspecting unit 202 and call stack information at the time of invoking the system call inspected by the stack inspecting unit 208.

図12は、アクセス記憶部206に格納されるアクセス情報の例を示す説明図である。ここで、「システムコール名」には、システムコールの名前、「引数の値」には、システムコールの引数の値が格納される。引数は複数あってもよい。また、「コールスタック情報」には、システムコール呼び出し時のプロシージャ呼び出しの履歴を示す情報が保存されている。   FIG. 12 is an explanatory diagram illustrating an example of access information stored in the access storage unit 206. Here, “system call name” stores the name of the system call, and “argument value” stores the value of the argument of the system call. There may be multiple arguments. The “call stack information” stores information indicating a history of procedure calls at the time of calling a system call.

ここで、「0x40002340」といった「コールスタック情報」を示す数値は、プロシージャのメモリアドレスをあらわしている。   Here, the numerical value indicating “call stack information” such as “0x40002340” represents the memory address of the procedure.

従って、例えば図12の最初の行(行番号1)は、readシステムコールが"/etc/passwd"という引数を伴ってコールされ、コールしたプロシージャのメモリアドレスは「0x40002340」であり、かつ、そのプロシージャをコールしたプロシージャのメモリアドレスは「0x80003128」であり、さらに、そのプロシージャをコールしたプロシージャのメモリアドレスは「0x80003320」であり、さらに、そのプロシージャは対象プログラムのプロセスのエントリポイントであることを表す。   Thus, for example, in the first line (line number 1) in FIG. 12, the read system call is called with an argument "/ etc / passwd", the memory address of the calling procedure is "0x40002340", and The memory address of the procedure that called the procedure is “0x80003128”, the memory address of the procedure that called the procedure is “0x80003320”, and the procedure is the entry point of the process of the target program. .

実施の形態2で例示した手法と異なり、プロシージャ呼び出しの階層を全て調べることによって、例えば、共有ライブラリを経由してシステムコールが呼び出された場合も、正確に区別することが可能となる。   Unlike the method exemplified in the second embodiment, by examining all the procedure call hierarchies, for example, even when a system call is called via a shared library, it is possible to accurately distinguish.

なぜなら、Linux OSでは、一般に、システムコールを呼び出したプロシージャのアドレスは、アプリケーションプログラムに記述されているプロシージャではなく、共有ライブラリ内のプロシージャであり、一般に、同じシステムコールを呼び出す共有ライブラリ内のプロシージャは同じアドレスに格納されているためである。   Because, in Linux OS, the address of the procedure that called the system call is generally a procedure in the shared library, not the procedure described in the application program. Generally, the procedure in the shared library that calls the same system call is This is because they are stored at the same address.

図13は、汎化手段207の具体的構成の例を示すブロック図である。図13に示すように、汎化手段207は、相関値算出手段301と、カテゴライズ手段302と、共通化手段303とを含む。   FIG. 13 is a block diagram illustrating an example of a specific configuration of the generalization unit 207. As shown in FIG. 13, the generalization unit 207 includes a correlation value calculation unit 301, a categorization unit 302, and a commoning unit 303.

相関値算出手段301は、アクセス記憶部206に格納されている表の各レコードを、システムコール名と、各コールスタックの内容とから、レコード間の相関値(近似度)を算出する手段である。   Correlation value calculation means 301 is means for calculating correlation values (approximation) between records for each record in the table stored in access storage unit 206 from the system call name and the contents of each call stack. .

カテゴライズ手段302は、相関値算出手段301によって算出された相関値を元に、各レコードを分類する手段である。   The categorizing unit 302 is a unit that classifies each record based on the correlation value calculated by the correlation value calculating unit 301.

共通化手段303は、カテゴライズ手段302で分類された各レコードに含まれる引数の値から、共通な部分を取り出して汎化する手段である。   The commoning unit 303 is a unit that extracts and generalizes a common part from the argument values included in each record classified by the categorizing unit 302.

次に、本実施例のアクセスポリシ生成システム200の動作について説明する。
ここでは、ルール生成モードが設定されているときのアクセスポリシ生成システム200の動作について詳細に説明する。
Next, the operation of the access policy generation system 200 of this embodiment will be described.
Here, the operation of the access policy generation system 200 when the rule generation mode is set will be described in detail.

図14は、ルール生成モードが設定されているときにアクセスポリシ生成システム200するアクセスポリシ生成処理の例を示すフローチャートである。   FIG. 14 is a flowchart illustrating an example of access policy generation processing performed by the access policy generation system 200 when the rule generation mode is set.

この例では、アクセスポリシ生成システム200は、システム200に搭載されているアクセス生成プログラムが起動されると、対象プログラムに従って動作を行うWWWサーバ201を起動する(ステップS201)。   In this example, when the access generation program installed in the system 200 is started, the access policy generation system 200 starts the WWW server 201 that operates according to the target program (step S201).

なお、ステップS201にて、WWWサーバ201を新たに起動するのではなく、既に起動しているWWWサーバ201からのアクセスの監視等の処理を、アクセスポリシ生成プログラムの起動に応じて開始するようにしてもよい。   In step S201, instead of newly starting the WWW server 201, processing such as access monitoring from the already started WWW server 201 is started in response to the start of the access policy generation program. May be.

このような処理は、PTRACE_ATTACHオプションをつけてptraceシステムコールを起動することによって実現される公知の処理である。   Such a process is a known process realized by invoking the ptrace system call with the PTRACE_ATTACH option.

次に、WWWサーバ201に対象プログラムにもとづく処理を実行させるために、適当なリクエストを発行する(ステップS202)。   Next, in order to cause the WWW server 201 to execute processing based on the target program, an appropriate request is issued (step S202).

なお、リクエストの発行は、人手で行うようにユーザに指示してもよいし、WWWサーバテストツールなどを利用して機械的に入力してもよい。   The request may be issued manually by the user, or may be input mechanically using a WWW server test tool or the like.

また、攻撃を受けることが無いようにセキュリティ上の注意を十分払った上で、WWWサーバ201を実運用環境に配置するようにしてもよい。この場合、実運用環境にてリクエストが発行される。   Further, the WWW server 201 may be arranged in an actual operating environment after paying sufficient attention to security so as not to be attacked. In this case, the request is issued in the actual operating environment.

リクエストの発行は、WWWサーバ201から発行されるアクセスの数が十分な数になり、アクセス情報の収集が完了するまで繰り返し実行する(ステップS203)。   Requests are repeatedly issued until the number of accesses issued from the WWW server 201 is sufficient and the collection of access information is completed (step S203).

ここで、収集完了とするかどうかの判定は、収集したアクセスの数だけでなく、リクエスト数の数を利用してもよいし、WWWサーバ201を動作させた時間に依存して決定するようにしてもよい。   Here, the determination as to whether or not the collection is complete may be made using not only the number of collected accesses but also the number of requests, or depending on the time the WWW server 201 is operated. May be.

収集を完了すると、汎化手段207によって汎化処理を行い(ステップS204)、ポリシ生成手段205によってアクセスポリシを生成する(ステップS205)。   When the collection is completed, generalization processing is performed by the generalization unit 207 (step S204), and an access policy is generated by the policy generation unit 205 (step S205).

次に、汎化手段207を構成する、相関値算出手段301、カテゴライズ302、および共通化手段303の詳細な動作について説明する。   Next, detailed operations of the correlation value calculating unit 301, the categorizing unit 302, and the commoning unit 303 constituting the generalizing unit 207 will be described.

図15は、相関値算出手段301が実行する相関値算出処理の例を示すフローチャートである。   FIG. 15 is a flowchart illustrating an example of correlation value calculation processing executed by the correlation value calculation unit 301.

相関値算出処理では、アクセス記憶部206に格納されている表(図12参照)における各レコードの2つずつの組合せ全てについて、図15に示す処理を行う。   In the correlation value calculation process, the process shown in FIG. 15 is performed for all two combinations of each record in the table (see FIG. 12) stored in the access storage unit 206.

相関値算出処理において、相関値算出手段301は、i番目のレコードEi(行番号iのアクセス情報:図12に示す例では1≦i≦6)とj番目のレコードEj(行番号jのアクセス情報:図12に示す例では1≦j≦6かつj≠i)に対して、EiとEjが同じシステムコール名かどうかを比較し(ステップS301)、同じでない場合は0を相関値とする(ステップS302)。   In the correlation value calculation process, the correlation value calculation means 301 includes the i-th record Ei (access information of row number i: 1 ≦ i ≦ 6 in the example shown in FIG. 12) and the j-th record Ej (access of row number j). Information: In the example shown in FIG. 12, for 1 ≦ j ≦ 6 and j ≠ i), it is compared whether Ei and Ej are the same system call name (step S301). (Step S302).

EiとEjが同じシステムコール名であれば、相関値算出手段301は、EiのコールスタックとEjのコールスタックを比較し、最長部分列Cijを算出する(ステップS303)。   If Ei and Ej are the same system call name, the correlation value calculation means 301 compares the call stack of Ei and the call stack of Ej, and calculates the longest subsequence Cij (step S303).

なお、最長部分列を算出するアルゴリズムは、LCS(Longest Common Substring)アルゴリズムと呼ばれている広く知られているアルゴリズムを用いるようにすればよい。   Note that a widely known algorithm called an LCS (Longest Common Substring) algorithm may be used as an algorithm for calculating the longest subsequence.

最長部分列Cijを算出すると、相関値算出手段301は、(Cijの長さ)/(Eiの長さ)×(Cijの長さ)/(Ejの長さ)を算出し、その算出結果をレコードEiとレコードEjの相関値とする(ステップS304)。   When the longest subsequence Cij is calculated, the correlation value calculating means 301 calculates (Cij length) / (Ei length) × (Cij length) / (Ej length), and the calculation result is calculated. The correlation value between the record Ei and the record Ej is set (step S304).

ステップS304にて算出される相関値は、EiとEjが完全に同じ場合は1.0となり、全く異なる場合は0となる。   The correlation value calculated in step S304 is 1.0 when Ei and Ej are completely the same, and 0 when they are completely different.

相関値算出手段301は、上述したステップS301〜ステップS304の処理を、全てのi,jの組み合わせに対して行う。   The correlation value calculating unit 301 performs the above-described processing in steps S301 to S304 for all combinations of i and j.

図16は、図12に示したアクセス情報における各レコード間の相関値を示す説明図である。この例では、図16に示すように、行番号2("/var/tmp/31240.tmp"に対するwriteシステムコール)と行番号5( "/var/tmp/34123.tmp"に対するwriteシステムコール)との間と、行番号3("/var/html/index.html"に対するreadシステムコール)と行番号4("/var/html/title.gif"に対するreadシステムコール)との間とで相関値が1となる。   FIG. 16 is an explanatory diagram showing correlation values between records in the access information shown in FIG. In this example, as shown in FIG. 16, line number 2 (write system call for "/var/tmp/31240.tmp") and line number 5 (write system call for "/var/tmp/34123.tmp") And between line number 3 (read system call for "/var/html/index.html") and line number 4 (read system call for "/var/html/title.gif") The value is 1.

次に、カテゴライズ手段302が実行する分類処理の例について説明する。カテゴライズ手段302は、相関値算出手段301によって算出された相関値が1であるアクセス情報を同じカテゴリとして分類する処理を行う。   Next, an example of classification processing executed by the categorizing unit 302 will be described. The categorizing unit 302 performs processing for classifying access information having a correlation value of 1 calculated by the correlation value calculating unit 301 as the same category.

図17は、図12に示したアクセス情報をカテゴライズした状態を示す説明図である。同じカテゴリに分類されているものは、「カテゴリ」欄に同じカテゴリ名が与えられる。   FIG. 17 is an explanatory diagram showing a state in which the access information shown in FIG. 12 is categorized. Those classified into the same category are given the same category name in the “category” column.

図17では、行番号2("/tmp/31240.tmp"に対するwriteシステムコール)と行番号5("/tmp/34123.tmp"に対するwriteシステムコール)とが同じカテゴリAに属する。   In FIG. 17, line number 2 (write system call for “/tmp/31240.tmp”) and line number 5 (write system call for “/tmp/34123.tmp”) belong to the same category A.

また、行番号3("/var/html/index.html"に対するreadシステムコール)と行番号4("/var/html/title.gif"に対するreadシステムコール)とが同じカテゴリBに属する。その他の2つはそれぞれ独立したカテゴリに属する。   Also, line number 3 (read system call for “/var/html/index.html”) and line number 4 (read system call for “/var/html/title.gif”) belong to the same category B. The other two belong to independent categories.

次に、共通化手段303が実行する共通化処理の例について説明する。共通化手段303は、同じカテゴリに属するアクセス情報のシステムコールの引数の値から、共通な部分を取り出して汎化する処理を行う。   Next, an example of the sharing process executed by the sharing unit 303 will be described. The common unit 303 performs a process of extracting and generalizing a common part from the values of system call arguments of access information belonging to the same category.

ここで、引数の値が文字列の場合は、共通化手段303は、上述した最長部分文字列算出アルゴリズム(LCSアルゴリズム)を用いて処理を行う。   Here, when the value of the argument is a character string, the common unit 303 performs processing using the above-described longest partial character string calculation algorithm (LCS algorithm).

また、、文字列がファイル名の場合は、ファイル名で特別な意味を持つ文字(スラッシュ「/」やピリオド「.」)を特別扱いして一旦トークン化し、トークン化したトークン列に対してLCSアルゴリズムを用いるようにすればよい。   Also, if the character string is a file name, specially treated characters (slash “/” and period “.”) In the file name are treated as tokens once, and LCS is performed on the tokenized token sequence. An algorithm may be used.

このように処理を行うようにすると、ファイル名の持つ意味が汎化の際に考慮されるため、より精度の高い汎化を行うことができる。   When processing is performed in this way, since the meaning of the file name is taken into account during generalization, it is possible to perform generalization with higher accuracy.

例えば、図12に示した行番号2のファイル「/var/tmp/31240.tmp」と行番号5のファイル「/var/tmp/34123.tmp」を汎化する場合、単純にLCSアルゴリズムを適用すると、ファイル「/var/tmp/3*.tmp」となる。なお、「*」は可変部分を表し、それ以外の文字が部分文字列を表す。   For example, when generalizing the file “/var/tmp/31240.tmp” of line number 2 and the file “/var/tmp/34123.tmp” of line number 5 shown in FIG. 12, the LCS algorithm is simply applied. The file will be “/var/tmp/3*.tmp”. Note that “*” represents a variable part, and other characters represent a partial character string.

その結果、ファイル「/var/tmp/31240.tmp」への書き込みと、ファイル「/var/tmp/34123.tmp」への書き込みは許可されるが、例えば、ファイル「/var/tmp/41234.tmp」への書き込みはポリシ違反となってしまう。   As a result, writing to the file `` /var/tmp/31240.tmp '' and writing to the file `` /var/tmp/34123.tmp '' are permitted, but for example, the file `` / var / tmp / 41234. Writing to “tmp” is a policy violation.

しかし、この書き込みは、ランダムな数値によるファイルを用いた、テンポラリファイル書き込みである可能性が高い。その場合、本来は、ファイル「/var/tmp/41234.tmp」への書き込みは正当なものである。   However, this writing is highly likely to be a temporary file writing using a file with random numerical values. In that case, writing to the file “/var/tmp/41234.tmp” is proper.

一方、図12に示した行番号2のファイル「/var/tmp/31240.tmp」と行番号5のファイル「/var/tmp/34123.tmp」を汎化する場合、一旦スラッシュとピリオドを区切り文字と見なしてトークン化し、トークン列に対してLCSアルゴリズムを用いた上で、逆トークン化することによって、ファイル「/var/tmp/*.tmp」という結果が得られる。   On the other hand, when generalizing the file “/var/tmp/31240.tmp” of line number 2 and the file “/var/tmp/34123.tmp” of line number 5 shown in FIG. 12, the slash and period are once separated. By tokenizing it as characters, using the LCS algorithm for the token string, and de- tokenizing, the result of the file “/var/tmp/*.tmp” is obtained.

図18は、共通化手段303が実行する上記のトークン化処理とLCSアルゴリズムを組み合わせた共通化処理の例を示す説明図である。   FIG. 18 is an explanatory diagram showing an example of a common process that combines the tokenization process executed by the common unit 303 and the LCS algorithm.

共通化処理において、共通化手段303は、行番号2のファイル「/var/tmp/31240.tmp」と行番号5のファイル「/var/tmp/34123.tmp」それぞれのファイル名を、「/」 と 「.」で区切るトークン化処理を行う(ステップS401,S402)。   In the sharing process, the sharing unit 303 sets the file names of the file “/var/tmp/31240.tmp” of line number 2 and the file “/var/tmp/34123.tmp” of line number 5 to “/ ”And“. ”Are tokenized (steps S401 and S402).

次に、共通化手段303は、トークン(区切られた文字のかたまり、図18では四角の枠で表記)に対して、最長部分列を算出する(ステップS403)。   Next, the sharing unit 303 calculates the longest subsequence for the token (a group of separated characters, represented by a square frame in FIG. 18) (step S403).

最後に、共通化手段303は、トークンを元の文字列に戻すことによって(ステップS404)、ファイル「/var/tmp/*.tmp」という結果を得る。   Finally, the sharing unit 303 obtains a result of the file “/var/tmp/*.tmp” by returning the token to the original character string (step S404).

この結果は、単にLCSアルゴリズムを適用した場合と比較して、例えばファイル「/var/tmp/41234.tmp」への書き込みも許可ポリシに含ませることができ、より正確に汎化することができていると言える。   Compared to the case where the LCS algorithm is simply applied, for example, writing to the file “/var/tmp/41234.tmp” can be included in the permission policy, and the result can be generalized more accurately. It can be said that.

上記の共通化処理が同じカテゴリに分類されたそれぞれのアクセス情報について実行されると、最終的に、図19に示すようなアクセス情報に汎化される。   When the above common processing is executed for each piece of access information classified into the same category, it is finally generalized to access information as shown in FIG.

ポリシ生成手段205は、図19に示すような汎化されたアクセス情報から、アクセスポリシの記述文法に従ってアクセスポリシを生成し、生成したアクセスポリシを出力する。   The policy generation means 205 generates an access policy from the generalized access information as shown in FIG. 19 according to the description grammar of the access policy, and outputs the generated access policy.

このような構成にすることによって、過不足の無いアクセスポリシを生成することができる。   With such a configuration, an access policy without excess or deficiency can be generated.

例えば、図12に示すアクセス情報をそのまま許可ポリシとした場合、従来技術1では、ファイル「/var/tmp/35321.tmp」への書き込みが生じた場合はポリシ違反となってしまう。   For example, when the access information shown in FIG. 12 is used as the permission policy as it is, in the related art 1, when the writing to the file “/var/tmp/35321.tmp” occurs, the policy is violated.

しかし、上述のとおり、この書き込みは、ランダムな数値によるファイルを用いたテンポラリファイル書き込みである可能性が高く、その場合、ファイル「/var/tmp/35321.tmp」への書き込みは本来は正当なものである。しかし、従来技術1では、プログラムの正常な動作であるにも関わらず、不正動作として判定されてしまう。   However, as described above, this writing is likely to be a temporary file writing using a file with a random numerical value. In that case, writing to the file "/var/tmp/35321.tmp" is inherently valid. Is. However, in the prior art 1, although it is a normal operation of the program, it is determined as an illegal operation.

一方、本実施例では、「ファイル「/var/tmp/*.tmp」への書き込みを許可する」という許可ポリシが生成されるため、ファイル「/var/tmp/35321.tmp」への書き込みも正当なものと認められ、上記のような問題は生じない。   On the other hand, in this embodiment, since the permission policy “permit writing to the file“ /var/tmp/*.tmp ”” is generated, writing to the file “/var/tmp/35321.tmp” is also possible. It is recognized as legitimate and does not cause the above problems.

また、図12に示したアクセス情報を、コールスタックの情報を用いずに図15に示した共通化処理によって汎化する場合には、ファイル「/var/tmp/31240.tmp」、ファイル「/var/tmp/34123.tmp」、およびファイル「/var/log/httpd.log」の3つが同じカテゴリとして分類されるため、「ファイル「/var/*」への書き込み」が許可ポリシとされてしまう。   When the access information shown in FIG. 12 is generalized by the common processing shown in FIG. 15 without using the call stack information, the file “/var/tmp/31240.tmp”, the file “/ var / tmp / 34123.tmp "and the file" /var/log/httpd.log "are classified as the same category, so" Write to file "/ var / *" "is set as the permission policy. End up.

しかし、ファイル「/var/log/httpd.log」への書き込みは、テンポラリファイルの書き込みではなく、ログファイルの書き込みであるため、この3つをまとめて汎化するのは過剰な汎化であるといえる。   However, since writing to the file “/var/log/httpd.log” is not writing of a temporary file, but writing of a log file, it is excessive generalization to generalize all three. It can be said.

例えば、ファイル「/var/log/troyanhorse.pl」への書き込みは、トロイの木馬やコンピュータウイルスの感染行為である可能性があり、許可ポリシに含ませるべきではない。   For example, writing to the file “/var/log/troyanhorse.pl” may be an infection activity of a Trojan horse or computer virus and should not be included in the authorization policy.

これに対し、本実施例では、スタック検査手段208を備えてコールスタックを観測し、かつ、そのコールスタックを汎化手段207での汎化処理で利用する構成としているので、過剰な汎化を抑制することができる。   On the other hand, in the present embodiment, the stack inspection unit 208 is provided to observe the call stack, and the call stack is used in the generalization processing by the generalization unit 207. Can be suppressed.

本発明は、ポリシ強制システムなどのアクセスポリシにもとづくセキュリティの管理に適用可能であり、特に、一般のOSのファイルアクセス権限の設定、セキュアOSのアクセス権限の設定、アクセス制御ミドルウェアのポリシ設定、ホストベース不正侵入検知システム、ホストベース不正侵入防止システムのポリシ設定、あるいは、サンドボックスモデルを有するバーチャルマシンのポリシ設定などに適用し、アクセスポリシを自動的に生成するために有用である。   The present invention is applicable to security management based on an access policy such as a policy enforcement system, and in particular, setting of file access authority of a general OS, setting of access authority of a secure OS, policy setting of access control middleware, host This is useful for automatically generating an access policy by applying it to a policy setting of a base intrusion detection system, a host-based intrusion prevention system, or a policy setting of a virtual machine having a sandbox model.

本発明の第1の実施の形態におけるアクセスポリシ生成システムの構成の例を示すブロック図である。It is a block diagram which shows the example of a structure of the access policy production | generation system in the 1st Embodiment of this invention. 本発明の第1の実施の形態におけるアクセスポリシ生成処理の例を示すフローチャートである。It is a flowchart which shows the example of the access policy production | generation process in the 1st Embodiment of this invention. 本発明の第1の実施の形態におけるアクセス情報の例を示す説明図である。It is explanatory drawing which shows the example of the access information in the 1st Embodiment of this invention. 本発明の第1の実施の形態における汎化したアクセス情報の例を示す説明図である。It is explanatory drawing which shows the example of the generalized access information in the 1st Embodiment of this invention. 本発明の第1の実施の形態における汎化したアクセス情報の他の例を示す説明図である。It is explanatory drawing which shows the other example of the generalized access information in the 1st Embodiment of this invention. 本発明の第1の実施の形態における汎化したアクセス情報のさらに他の例を示す説明図である。It is explanatory drawing which shows the further another example of the generalized access information in the 1st Embodiment of this invention. 本発明の第2の実施の形態におけるアクセスポリシ生成システムの構成の例を示すブロック図である。It is a block diagram which shows the example of a structure of the access policy production | generation system in the 2nd Embodiment of this invention. 本発明の第2の実施の形態におけるアクセスポリシ生成処理の例を示すフローチャートである。It is a flowchart which shows the example of the access policy production | generation process in the 2nd Embodiment of this invention. 本発明の第2の実施の形態におけるアクセス情報の例を示す説明図である。It is explanatory drawing which shows the example of the access information in the 2nd Embodiment of this invention. 本発明の第2の実施の形態における汎化したアクセス情報の例を示す説明図である。It is explanatory drawing which shows the example of the generalized access information in the 2nd Embodiment of this invention. アクセスポリシ生成システムの具体例を示すブロック図である。It is a block diagram which shows the specific example of an access policy production | generation system. アクセス情報の具体例を示す説明図である。It is explanatory drawing which shows the specific example of access information. 汎化手段の具体的構成の例を示すブロック図である。It is a block diagram which shows the example of the specific structure of a generalization means. アクセスポリシ生成処理の具体例を示すフローチャートである。It is a flowchart which shows the specific example of an access policy production | generation process. 相関値算出処理の例を示すフローチャートである。It is a flowchart which shows the example of a correlation value calculation process. 相関値の算出結果を示す説明図である。It is explanatory drawing which shows the calculation result of a correlation value. カテゴライズしたアクセス情報を示す説明図である。It is explanatory drawing which shows the categorized access information. 共通化処理の具体例を示す説明図である。It is explanatory drawing which shows the specific example of a sharing process. 汎化したアクセス情報の具体例を示す説明図である。It is explanatory drawing which shows the specific example of generalized access information. ポリシ強制システムの一般的な構成の例を示すブロック図である。It is a block diagram which shows the example of the general structure of a policy enforcement system. 従来のアクセスポリシ生成システムの例を示すブロック図である。It is a block diagram which shows the example of the conventional access policy production | generation system.

符号の説明Explanation of symbols

100,100a,200 アクセスポリシ生成システム
101 対象プログラム
102 アクセス監査手段
103 リソース
104,204 ポリシ記憶部
105,205 ポリシ生成手段
106,206 アクセス記憶部
107.207 汎化手段
108 状態観測手段
110 入力装置
201 WWWサーバ
202 システムコール検査手段
203 Linux OS
208 スタック検査手段
100, 100a, 200 Access policy generation system 101 Target program 102 Access audit means 103 Resource 104, 204 Policy storage section 105, 205 Policy generation means 106, 206 Access storage section 107.207 Generalization means 108 State observation means 110 Input device 201 WWW server 202 System call inspection means 203 Linux OS
208 Stack inspection means

Claims (12)

リソースへのアクセスの許可ルールを示す許可ポリシにもとづいてポリシ強制を行うためのアクセスポリシを生成するアクセスポリシ生成システムであって、
前記ポリシ強制の際に監査の対象とする対象プログラムにもとづく前記リソースへのアクセスを検知するアクセス検知手段と、
前記アクセス検知手段が検知したアクセスの内容を示すアクセス情報を取得するアクセス情報取得手段と、
前記アクセスが発生したとき、前記対象プログラムの実行で生じる当該対象プログラムの処理の内部状態を観測し、前記内部状態の観測結果を前記アクセス情報に付加する状態観測手段と、
付加された前記観測結果にもとづいて複数のアクセスの相関関係を示す相関値を算出し、算出した相関値があらかじめ定められた基準値よりも高い場合に、前記アクセス情報取得手段によって取得された複数のアクセス情報における非共通部分の一部または全部を一般化し、汎用的に用いられる形式に汎化したアクセス情報を生成する汎化手段と、
前記汎化手段によって汎化されたアクセス情報にもとづいてアクセスポリシを生成するポリシ生成手段とを備えた
ことを特徴とするアクセスポリシ生成システム。
An access policy generation system for generating an access policy for policy enforcement based on an authorization policy indicating an authorization rule for access to a resource,
Access detection means for detecting access to the resource based on a target program to be audited when the policy is enforced;
Access information acquisition means for acquiring access information indicating the content of access detected by the access detection means;
A state observing means for observing the internal state of the processing of the target program that occurs when the target program is executed and adding the observation result of the internal state to the access information when the access occurs;
A correlation value indicating a correlation between a plurality of accesses is calculated based on the added observation result, and when the calculated correlation value is higher than a predetermined reference value, a plurality of information acquired by the access information acquisition unit Generalization means for generalizing a part or all of the non-common part in the access information and generating access information generalized in a general-purpose format;
An access policy generation system comprising: policy generation means for generating an access policy based on the access information generalized by the generalization means.
状態観測手段は、プロシージャ呼び出しの履歴が格納されているコールスタックを検査することによって、アクセスを起動したプロシージャを含むコールスタック情報を取得するスタック検査手段を含み、
前記スタック検査手段は、観測結果として、コールスタック情報を対応するアクセスの内容を示すアクセス情報に付加し、
汎化手段は、付加された前記コールスタック情報にもとづいて算出した相関値が基準値よりも高い複数のアクセス情報を一般化し、汎化したアクセス情報を生成する
請求項記載のアクセスポリシ生成システム。
The state observing means includes stack checking means for acquiring call stack information including a procedure that has started access by inspecting a call stack in which a history of procedure calls is stored.
The stack inspection means adds the call stack information to the access information indicating the content of the corresponding access as an observation result,
Generalization means, the added the generalization of the plurality of access information is higher than the reference value is a correlation value calculated based on the call stack information, generalization to claim 1, wherein the access policy generation system for generating access information .
汎化手段は、複数のアクセス情報の相関関係を示す相関値を算出する相関値算出手段と、前記相関値算出手段により算出された相関値にもとづいてアクセス情報を分類するカテゴライズ手段と、前記カテゴライズ手段により同一分類とされた複数のアクセス情報を汎化して共通のアクセス情報とする共通化手段とを含む
請求項1または請求項2に記載のアクセスポリシ生成システム。
The generalization means includes a correlation value calculation means for calculating a correlation value indicating a correlation between a plurality of access information, a categorization means for classifying access information based on the correlation value calculated by the correlation value calculation means, and the categorization The access policy generation system according to claim 1, further comprising: a common unit that generalizes a plurality of pieces of access information that are classified into the same classification by the unit to obtain common access information.
アクセス情報は、アクセス検知手段が検知したアクセスの種類とアクセスの対象とを含み、
汎化手段は、アクセスの種類が同一の複数のアクセス情報におけるアクセスの対象を一般化することで、汎化したアクセス情報を生成する
請求項1から請求項のうちいずれかに記載のアクセスポリシ生成システム。
The access information includes the type of access detected by the access detection means and the target of access.
The access policy according to any one of claims 1 to 3 , wherein the generalization unit generates generalized access information by generalizing an access target in a plurality of access information having the same access type. Generation system.
リソースへのアクセスの許可ルールを示す許可ポリシにもとづいてポリシ強制を行うためのアクセスポリシを生成するアクセスポリシ生成方法であって、
アクセス検知手段が、前記ポリシ強制の際に監査の対象とする対象プログラムにもとづく前記リソースへのアクセスを検知し、
アクセス情報取得手段が、検知したアクセスの内容を示すアクセス情報を取得し、
状態観測手段が、前記アクセスが発生したとき、前記対象プログラムの実行で生じる当該対象プログラムの処理の内部状態を観測し、
状態観測手段が、前記内部状態の観測結果を前記アクセス情報に付加し、
汎化手段が、付加された前記観測結果にもとづいて複数のアクセスの相関関係を示す相関値を算出し、
汎化手段が、算出した相関値があらかじめ定められた基準値よりも高い場合に、アクセス情報取得手段によって取得された複数のアクセス情報における非共通部分の一部または全部を一般化して、汎用的に用いられる形式に汎化したアクセス情報を生成し、
ポリシ生成手段が、汎化されたアクセス情報にもとづいてアクセスポリシを生成する
ことを特徴とするアクセスポリシ生成方法。
An access policy generation method for generating an access policy for policy enforcement based on an authorization policy indicating an authorization rule for access to a resource,
The access detection means detects access to the resource based on a target program to be audited when the policy is enforced,
The access information acquisition means acquires access information indicating the content of the detected access,
When the access occurs, the state observing means observes the internal state of the processing of the target program that occurs in the execution of the target program,
State observation means adds the observation result of the internal state to the access information,
The generalization means calculates a correlation value indicating a correlation between a plurality of accesses based on the added observation result,
Generalization means generalizes a part or all of non-common parts in a plurality of access information acquired by access information acquisition means when the calculated correlation value is higher than a predetermined reference value. Generate access information generalized in the format used for
Policy generation means, the access policy generation method characterized by generating an access policy based on the generalized access information.
状態観測手段に含まれるスタック検査手段が、プロシージャ呼び出しの履歴が格納されているコールスタックを検査することによって、アクセスを起動したプロシージャを含むコールスタック情報を取得し、
前記スタック検査手段が、観測結果として、コールスタック情報を対応するアクセスの内容を示すアクセス情報に付加し、
汎化手段が、付加された前記コールスタック情報にもとづいて算出した相関値が基準値よりも高い複数のアクセス情報を一般化することで、汎化したアクセス情報を生成する
請求項記載のアクセスポリシ生成方法。
The stack checking means included in the state observing means obtains call stack information including the procedure that started the access by inspecting the call stack in which the procedure call history is stored.
The stack inspection means adds the call stack information to the access information indicating the contents of the corresponding access as an observation result,
6. The access according to claim 5 , wherein the generalization means generates the generalized access information by generalizing a plurality of pieces of access information whose correlation value calculated based on the added call stack information is higher than a reference value. Policy generation method.
汎化手段に含まれる相関値算出手段が、複数のアクセス情報の相関関係を示す相関値を算出し、
汎化手段に含まれるカテゴライズ手段が、算出された相関値にもとづいてアクセス情報を分類し、
汎化手段に含まれる共通化手段が、同一分類とされた複数のアクセス情報を共通のアクセス情報とすることで、汎化したアクセス情報を生成する
請求項5または請求項6に記載のアクセスポリシ生成方法。
Correlation value calculation means included in the generalization means calculates a correlation value indicating a correlation between a plurality of access information,
The categorizing means included in the generalizing means classifies the access information based on the calculated correlation value,
The access policy according to claim 5 or 6 , wherein the sharing means included in the generalization means generates the generalized access information by using a plurality of access information classified as the same classification as the common access information. Generation method.
アクセス情報は、アクセス検知手段が検知したアクセスの種類とアクセスの対象とを含み、
汎化手段が、アクセスの種類が同一の複数のアクセス情報におけるアクセスの対象を一般化することで、汎化したアクセス情報を生成する
請求項から請求項のうちいずれかに記載のアクセスポリシ生成方法。
The access information includes the type of access detected by the access detection means and the target of access.
Generalization means, that the kind of access to generalize the access target in the same plurality of the access information, the access policy according to any one of claims 7 claims 5 to generate a generalized access information Generation method.
リソースへのアクセスの許可ルールを示す許可ポリシにもとづいてポリシ強制を行うためのアクセスポリシを生成させるためのアクセスポリシ生成用プログラムであって、
コンピュータに、
前記ポリシ強制の際に監査の対象とする対象プログラムにもとづく前記リソースへのアクセスを検知するステップと、
検知したアクセスの内容を示すアクセス情報を取得するステップと、
前記アクセスが発生したとき、前記対象プログラムの実行で生じる当該対象プログラムの処理の内部状態を観測するステップと、
前記内部状態の観測結果を前記アクセス情報に付加するステップと、
付加された前記観測結果にもとづいて複数のアクセスの相関関係を示す相関値を算出するステップと、
算出した相関値があらかじめ定められた基準値よりも高い場合に、取得された複数のアクセス情報における非共通部分の一部または全部を一般化して、汎用的に用いられる形式に汎化したアクセス情報を生成するステップと、
汎化されたアクセス情報にもとづいてアクセスポリシを生成するステップとを
実行させることを特徴とするアクセスポリシ生成用プログラム。
An access policy generation program for generating an access policy for enforcing a policy based on an authorization policy indicating an access permission rule for a resource,
On the computer,
Detecting access to the resource based on a target program to be audited when the policy is enforced;
Obtaining access information indicating the content of the detected access;
Observing an internal state of processing of the target program that occurs when the target program is executed when the access occurs;
Adding the observation result of the internal state to the access information;
Calculating a correlation value indicating a correlation of a plurality of accesses based on the added observation result;
If the calculated correlation value is higher than a predetermined reference value , generalize part or all of the non-common part in the acquired multiple access information and generalize it into a general-purpose format A step of generating
A program for generating an access policy, comprising: generating an access policy based on generalized access information.
コンピュータに、
対象プログラムの処理の内部状態の観測として、プロシージャ呼び出しの履歴が格納されているコールスタックを検査することによって、アクセスを起動したプロシージャを含むコールスタック情報を取得するステップを実行させ、
観測結果の付加として、コールスタック情報を対応するアクセスの内容を示すアクセス情報に付加するステップを実行させ、
付加された前記コールスタック情報にもとづいて算出した相関値が基準値よりも高い複数のアクセス情報を一般化することで、汎化したアクセス情報を生成するステップを実行させる
請求項記載のアクセスポリシ生成用プログラム。
On the computer,
As an observation of the internal state of the processing of the target program, by inspecting the call stack in which the procedure call history is stored, the step of obtaining the call stack information including the procedure that initiated the access is executed,
As an addition of the observation result, a step of adding the call stack information to the access information indicating the content of the corresponding access is executed,
The access policy according to claim 9, wherein a step of generating generalized access information is executed by generalizing a plurality of pieces of access information having a correlation value calculated based on the added call stack information higher than a reference value. Generation program.
コンピュータに、
さらに、複数のアクセス情報の相関関係を示す相関値を算出するステップと、
算出された相関値にもとづいてアクセス情報を分類するステップとを実行させ、
同一分類とされた複数のアクセス情報を共通のアクセス情報とすることで、汎化したアクセス情報を生成するステップを実行させる
請求項9または請求項10に記載のアクセスポリシ生成用プログラム。
On the computer,
A step of calculating a correlation value indicating a correlation between a plurality of pieces of access information;
And classifying the access information based on the calculated correlation value,
The access policy generation program according to claim 9 or 10 , wherein a step of generating generalized access information is executed by using a plurality of pieces of access information classified into the same classification as common access information.
アクセス情報は、アクセス検知手段が検知したアクセスの種類とアクセスの対象とを含み、
コンピュータに、
アクセスの種類が同一の複数のアクセス情報におけるアクセスの対象を一般化することで、汎化したアクセス情報を生成するステップを実行させる
請求項から請求項11のうちいずれかに記載のアクセスポリシ生成用プログラム。
The access information includes the type of access detected by the access detection means and the target of access.
On the computer,
The access policy generation according to any one of claims 9 to 11 , wherein a step of generating generalized access information is executed by generalizing an access target in a plurality of access information having the same access type. Program.
JP2004039858A 2004-02-17 2004-02-17 Access policy generation system, access policy generation method, and access policy generation program Expired - Fee Related JP4363214B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004039858A JP4363214B2 (en) 2004-02-17 2004-02-17 Access policy generation system, access policy generation method, and access policy generation program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004039858A JP4363214B2 (en) 2004-02-17 2004-02-17 Access policy generation system, access policy generation method, and access policy generation program

Publications (2)

Publication Number Publication Date
JP2005234661A JP2005234661A (en) 2005-09-02
JP4363214B2 true JP4363214B2 (en) 2009-11-11

Family

ID=35017584

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004039858A Expired - Fee Related JP4363214B2 (en) 2004-02-17 2004-02-17 Access policy generation system, access policy generation method, and access policy generation program

Country Status (1)

Country Link
JP (1) JP4363214B2 (en)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8336085B2 (en) * 2004-11-15 2012-12-18 Microsoft Corporation Tuning product policy using observed evidence of customer behavior
JP4482816B2 (en) * 2005-09-27 2010-06-16 日本電気株式会社 Policy processing apparatus, method, and program
JP2007133632A (en) * 2005-11-10 2007-05-31 Hitachi Software Eng Co Ltd Method and program for setting security policy
KR100791290B1 (en) 2006-02-10 2008-01-04 삼성전자주식회사 Apparatus and method for using information of malicious application's behavior across devices
US8307404B2 (en) * 2007-04-16 2012-11-06 Microsoft Corporation Policy-management infrastructure
US11244048B2 (en) 2017-03-03 2022-02-08 Nippon Telegraph And Telephone Corporation Attack pattern extraction device, attack pattern extraction method, and attack pattern extraction program
US10929356B2 (en) 2018-06-04 2021-02-23 International Business Machines Corporation Detection of hidden data co-occurrence relationships
US20190384796A1 (en) * 2018-06-13 2019-12-19 Oracle International Corporation Regular expression generation using longest common subsequence algorithm on regular expression codes
US11941018B2 (en) 2018-06-13 2024-03-26 Oracle International Corporation Regular expression generation for negative example using context
CN111353036B (en) * 2020-02-27 2024-04-09 深信服科技股份有限公司 Rule file generation method, device, equipment and readable storage medium
JP7446544B1 (en) 2023-07-05 2024-03-08 三菱電機株式会社 Information processing device and information processing method

Also Published As

Publication number Publication date
JP2005234661A (en) 2005-09-02

Similar Documents

Publication Publication Date Title
Aljawarneh et al. Cloud security engineering: Early stages of SDLC
CN110310205B (en) Block chain data monitoring method, device, equipment and medium
RU2580032C2 (en) System and method of determining the category of proxy application
WO2022247199A1 (en) Vulnerability detection method and apparatus for open-source component
US20070300299A1 (en) Methods and apparatus to audit a computer in a sequestered partition
CN113364753B (en) Anti-crawler method and device, electronic equipment and computer readable storage medium
CN113132311B (en) Abnormal access detection method, device and equipment
JP4363214B2 (en) Access policy generation system, access policy generation method, and access policy generation program
US11397812B2 (en) System and method for categorization of .NET applications
Bagheri et al. Efficient, evolutionary security analysis of interacting android apps
Seacord et al. A structured approach to classifying security vulnerabilities
Zhu et al. Detecting privilege escalation attacks through instrumenting web application source code
CN113486335B (en) JNI malicious attack detection method and device based on RASP zero rule
JP2007109016A (en) Access policy creation system, method and program
RU2747514C2 (en) System and method for categorizing application on computing device
Hadavi et al. Software security; a vulnerability activity revisit
CN117032894A (en) Container security state detection method and device, electronic equipment and storage medium
RU2587424C1 (en) Method of controlling applications
Kim et al. Detection and blocking method against dll injection attack using peb-ldr of ics ews in smart iot environments
Zhang et al. Contextual approach for identifying malicious inter-component privacy leaks in android apps
Armando et al. Mobile App Security Analysis with the MAVeriC Static Analysis Module.
Thomeczek Security Analysis of Linux Kernel Features for Embedded Software Systems in Vehicles
Rouzaud-Cornabas et al. An information flow approach for preventing race conditions: Dynamic protection of the Linux OS
US8756699B1 (en) Counting unique identifiers securely
RU2739833C1 (en) System and method for reducing load on malware detection service

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050517

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20051118

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20051118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090119

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

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

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

Free format text: PAYMENT UNTIL: 20120828

Year of fee payment: 3

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

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees