JP2012048609A - Security policy generation program, and secure os computer system - Google Patents
Security policy generation program, and secure os computer system Download PDFInfo
- Publication number
- JP2012048609A JP2012048609A JP2010191948A JP2010191948A JP2012048609A JP 2012048609 A JP2012048609 A JP 2012048609A JP 2010191948 A JP2010191948 A JP 2010191948A JP 2010191948 A JP2010191948 A JP 2010191948A JP 2012048609 A JP2012048609 A JP 2012048609A
- Authority
- JP
- Japan
- Prior art keywords
- file
- application
- security policy
- secure
- access
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本発明は、セキュアOS(Operating System)のセキュリティポリシを生成する技術に関するものである。 The present invention relates to a technology for generating a security policy of a secure OS (Operating System).
一般に、コンピュータのOS上のリソース(ファイル、ネットワークポートなど)に対するアクセス権限は、そのリソースの所有者が設定する。また、全ての権限をもつ特権ユーザが存在し、OS管理者がその特権ユーザとしてリソースのアクセス権限を設定することもできる。 In general, the access authority for a resource (file, network port, etc.) on the OS of the computer is set by the owner of the resource. Further, there is a privileged user having all the authority, and the OS administrator can set the resource access authority as the privileged user.
これに対し、セキュアOSとは、全権を持つ特権ユーザを排除し、プロセス毎(例えばアプリケーションの実行ファイル毎)に最小限のアクセス権限を付与することができるようにしたOSである。プロセス毎にどんなアクセス権限を持つかについての設定は、セキュリティポリシファイルというファイルに記載されている。 On the other hand, the secure OS is an OS in which a privileged user having all rights is excluded and a minimum access authority can be given for each process (for example, for each execution file of an application). Settings regarding what access authority each process has are described in a file called a security policy file.
セキュアOSでは、上記機能により、プロセスが必要なリソースにだけアクセスすることがOSによって保証されている。そのため、プロセスにセキュリティホールがあり、攻撃者に当該プロセスが乗っ取られたとしても、当該プロセスに起因するセキュリティ被害を最小限に留めることができる。 In the secure OS, the OS ensures that the process accesses only the resources that the process requires. Therefore, even if there is a security hole in the process and the process is taken over by an attacker, the security damage caused by the process can be minimized.
セキュアOS上でプロセスに必要最小限の権限を割り当てるには、セキュリティポリシを適切に設定する必要がある。しかし、アクセス権限の設定項目が膨大になることが多く、その作業は煩雑である。そこで、セキュリティポリシを設定する作業をサポートする技術が研究されている。例えば、下記特許文献1および非特許文献1のような技術が提案されている。 In order to assign the minimum necessary authority to the process on the secure OS, it is necessary to appropriately set the security policy. However, the setting items for access authority are often enormous, and the work is complicated. Therefore, a technology that supports the work of setting a security policy has been studied. For example, techniques such as the following Patent Document 1 and Non-Patent Document 1 have been proposed.
特許文献1は、アプリケーションの動作ログからセキュリティポリシ設定を自動生成する技術を記載している。非特許文献1は、セキュリティポリシの記述を単純化する技術を記載している。 Patent Document 1 describes a technology for automatically generating a security policy setting from an operation log of an application. Non-Patent Document 1 describes a technique for simplifying the description of a security policy.
セキュアOSのセキュリティポリシを適切に設定するためには、アプリケーションが使用する可能性のある全てのアクセス権限について、アクセス可否を設定する必要がある。 In order to appropriately set the security policy of the secure OS, it is necessary to set whether or not access is possible for all access authorities that the application may use.
上記特許文献1に記載の技術では、アプリケーションを実際に動作させて動作履歴を監査ログなどの形態で取得し、その履歴を参考にしてアプリケーションが必要とするアクセス許可を設定する。この手法では、アプリケーションが使用する可能性のあるアクセス権限を網羅するためにアプリケーションを繰り返しテスト動作させる必要があり、動作履歴を取得するための作業工数が多大になる可能性がある。また、セキュアOSの仕様によっては、パフォーマンス劣化を防ぐため、監査ログを簡易記述することがあり、この場合は監査ログから完全な動作履歴を得ることが難しくなる。 In the technique described in Patent Document 1, an operation history is acquired in a form such as an audit log by actually operating an application, and an access permission required by the application is set with reference to the history. In this method, it is necessary to repeatedly perform an application test operation in order to cover the access authority that can be used by the application, and there is a possibility that the number of work steps for acquiring the operation history may be increased. Depending on the specifications of the secure OS, the audit log may be simply described to prevent performance degradation. In this case, it is difficult to obtain a complete operation history from the audit log.
本発明は、上記のような課題を解決するためになされたものであり、アプリケーションの動作履歴に拠ることなく、当該アプリケーションが必要とするアクセス権限をセキュリティポリシとして設定することのできる技術を提供することを目的とする。 The present invention has been made to solve the above-described problems, and provides a technique capable of setting an access right required by an application as a security policy without depending on the operation history of the application. For the purpose.
本発明に係るセキュリティポリシ生成プログラムは、セキュアOS上で動作するアプリケーションの実行ファイル、アプリケーションの設定ファイル、アプリケーションを構成するファイルリストのうち少なくともいずれかを読み込み、これらファイルに関連してセキュアOS上のいずれのアクセス権限が必要となるかを解析する。また、その解析結果を、セキュアOSのセキュリティポリシ候補として出力する。 The security policy generation program according to the present invention reads at least one of an execution file of an application operating on the secure OS, an application setting file, and a file list constituting the application, and relates to these files on the secure OS. Analyze which access rights are required. The analysis result is output as a security policy candidate of the secure OS.
本発明に係るセキュリティポリシ生成プログラムによれば、アプリケーションに関連するファイルを解析することにより、アプリケーションを実行するときにいずれのアクセス権限が必要となるかを把握することができる。これにより、アプリケーションを実行しなくとも、セキュアOS上で必要となるアクセス権限が分かる。また、そのアクセス権限をセキュリティポリシの候補として提示するので、セキュリティポリシを設定する作業負担を軽減することができる。 According to the security policy generation program according to the present invention, it is possible to grasp which access authority is required when executing an application by analyzing a file related to the application. Thereby, it is possible to know the access authority necessary on the secure OS without executing the application. In addition, since the access authority is presented as a security policy candidate, the work load for setting the security policy can be reduced.
<実施の形態1>
図1は、本発明の実施形態1に係るセキュアOSコンピュータ100の構成図である。セキュアOSコンピュータ100は、セキュアOSを搭載したコンピュータであり、セキュアOS110、セキュリティポリシファイル120、セキュリティポリシ生成プログラム130を備える。必要に応じて、アプリケーションプログラムおよび必要な設定ファイルなどを格納したアプリケーションパッケージ140をインストールすることもできる。さらには、インストール済みのアプリケーションパッケージを管理するパッケージ管理プログラム150を備えていてもよい。
<Embodiment 1>
FIG. 1 is a configuration diagram of a
セキュアOSコンピュータ100は、図1に示した構成の他、セキュアOS110および上記各プログラムを実行するCPU(Central Processing Unit)を備える。また、セキュアOS110、上記各プログラム、セキュリティポリシファイル120などのデータを格納するHDD(Hard Disk Drive)などの記憶装置、メモリ、ネットワークインターフェースなどの構成を適宜備える。
In addition to the configuration shown in FIG. 1, the
以下では、説明の便宜上、セキュアOS110、上記各プログラムなどのプログラムを動作主体として説明する場合があるが、これらのプログラムを実際に実行するのはCPUなどの演算装置であることを付言しておく。
In the following, for convenience of explanation, the
セキュアOS110は、セキュアOSコンピュータ100のOSである。セキュアOS110は、セキュリティポリシファイル120の記述にしたがって、セキュアOSコンピュータ100が備えるリソースに対するアクセスを制御する。セキュリティポリシファイル120の例については後述する。
The secure OS 110 is an OS of the
セキュリティポリシ生成プログラム130は、アプリケーションパッケージ140に含まれているファイルを解析し、セキュリティポリシファイル120またはその雛形を生成する。詳細は後述する。
The security
アプリケーションパッケージ140は、アプリケーション実行ファイル、アプリケーション設定ファイル、アプリケーション構成ファイルなどを一纏めにパッケージ化したファイルである。典型的には、インストーラパッケージの形態で構成されている。アプリケーションパッケージ140の内部的構成については後述する。
The
パッケージ管理プログラム150は、セキュアOSコンピュータ100にインストールされているアプリケーションパッケージを管理し、設定変更、アンインストールなどの処理を実行する。
The
オペレータ200は、セキュアOSコンピュータ100が備えるキーボード、マウスなどを用いて、セキュリティポリシ生成プログラム130を実行するようにセキュアOSコンピュータ100へ指示する。また、セキュリティポリシ生成プログラム130が提示するセキュリティポリシファイル120の雛形を修正するなどして、セキュリティポリシファイル120の内容を最終的に確定する。オペレータ200が修正作業に用いる画面などについては後述する。
The
図2は、セキュリティポリシファイル120の構成とデータ例を示す図である。ここでは説明の便宜上、テーブル形式のデータ例を示したが、データ形式はこれに限られるものではない。
FIG. 2 is a diagram illustrating a configuration of the
セキュリティポリシファイル120は、サブジェクトフィールド121、オブジェクトフィールド122、パーミッションフィールド123を有する。
The
サブジェクトフィールド121は、セキュアOS110上のアクセス権限を用いて動作するプログラムの実行ファイル名を記述する。本フィールドの例として、アプリケーションパッケージ140内に含まれるアプリケーション実行ファイルのインストール先ファイルパスを記述したものが挙げられる。
The
オブジェクトフィールド122は、サブジェクトフィールド121が記述しているプログラムがアクセスする、セキュアOS110上のリソースを記述する。ここでいうリソースとは、セキュアOS110上のファイル、フォルダ、ネットワークポート、後述するCapabilityと呼ばれる特殊なアクセス権限、などのことをいう。すなわち、アクセスするためにセキュアOS110上のアクセス権限が必要となる対象を指す。
The
パーミッションフィールド123は、サブジェクトフィールド121が記述しているプログラムが、オブジェクトフィールド122が記述しているリソースに対して有するアクセス権限を記述する。本フィールドの例については以下で説明する。
The
1行目のデータ例は、プログラム「/sbin/httpd」がファイル「/var/www/*」に対して有するアクセス権限を記述している。本行はファイルに対するアクセス権限を記述しているため、アクセス権限の例として、「読込許可(read)」、「書込許可(write)」などが考えられる。 The data example on the first line describes the access authority that the program “/ sbin / httpd” has for the file “/ var / www / *”. Since this line describes the access authority for the file, examples of the access authority include “read permission (read)” and “write permission (write)”.
2行目のデータ例は、プログラム「/sbin/httpd」がネットワークリソース「TCP80番ポート」に対して有するアクセス権限を記述している。ネットワークリソースに対するアクセス権限は、ファイルやフォルダに対するアクセス権限と類似しているが、呼称が異なる。ここでは、TCP80番ポートに対して「bind(外部からの接続リクエストを待機する)」することができる旨を例示した。
The data example on the second line describes the access authority that the program “/ sbin / httpd” has for the network resource “
3行目のデータ例は、プログラム「/sbin/ftpd」が、Capability「setuid」を実行することができる旨を記述している。Capabilityとは、セキュアOS110が備えるカーネル機能(システムコール)をアプリケーションプログラムから直接呼び出すことのできる機能をいう。カーネル機能を直接呼び出すと、通常のアプリケーションが備えている機能を超えた動作を実行することができるため、Capabilityに対するアクセス権限は慎重に設定する必要がある。Capabilityの例として、以下が挙げられる。
The data example on the third line describes that the program “/ sbin / ftpd” can execute the capability “setup”. Capability refers to a function that can directly call a kernel function (system call) provided in the
(Capabilityの例1:setuid)
setuidは、アプリケーションを実行するユーザIDを一時的に他のユーザIDへ変更する機能である。ここでいう他のユーザIDには、特権ユーザIDが含まれる場合もある。
(Capabilityの例2:chroot)
chrootは、アプリケーションにとってのルートディレクトリを変更する機能である。ルートディレクトリを変更されたアプリケーションは、その範囲外のファイル等にはアクセスすることができなくなる。
(Capability example 1: setup)
The setid is a function for temporarily changing a user ID for executing an application to another user ID. The other user ID referred to here may include a privileged user ID.
(Capability example 2: root)
“root” is a function for changing the root directory for the application. An application whose root directory has been changed cannot access files outside that range.
図3は、アプリケーションパッケージ140の構成図である。アプリケーションパッケージ140は、セキュアOS110上で動作するアプリケーションをセキュアOSコンピュータ100にインストールするためのファイルであり、アプリケーション実行ファイル141、アプリケーション設定ファイル142、アプリケーション構成ファイル143を内部的に含む。
FIG. 3 is a configuration diagram of the
アプリケーション実行ファイル141は、当該アプリケーションの本体となる実行形式のファイルである。アプリケーション設定ファイル142は、アプリケーション実行ファイル141を実行する際に用いられる設定パラメータなどを記述している。アプリケーション構成ファイル143は、アプリケーション実行ファイル141をインストールするときにともにインストールするファイル、または改変を加えるファイルの一覧、当該アプリケーションの名称、当該アプリケーションのバージョン、などのアプリケーション全体に関する情報を記述している。アプリケーション設定ファイル142とアプリケーション構成ファイル143の例は、後述の図4〜図5で説明する。
The
図4は、アプリケーション設定ファイル142の記述例を示す図である。1行目は、当該アプリケーションがキャッシュファイルを格納するフォルダパスを記述している。2行目は、当該アプリケーションが接続を待ち受けるTCPポート番号を記述している。
FIG. 4 is a diagram illustrating a description example of the
図5は、アプリケーション構成ファイル143の記述例を示す図である。1行目は、当該アプリケーションの名称を記述している。2行目は、当該アプリケーションのバージョン番号を記述している。3行目以降は、当該アプリケーションをインストールすることによって新たにインストールまたは改変等されるファイルのリストを記述している。パッケージ管理プログラム150は、これらファイルのインストール、アンインストール、内容改変などの処理を実施する。
FIG. 5 is a diagram illustrating a description example of the
以上、セキュアOSコンピュータ100の構成について説明した。次に、セキュリティポリシ生成プログラム130の詳細構成について説明する。
The configuration of the
図6は、セキュリティポリシ生成プログラム130の機能構成図である。セキュリティポリシ生成プログラム130は、逆アセンブラ部131、ファイルアクセス解析部132、ネットワークアクセス解析部133、Capabilityアクセス解析部134、設定提示部135、ネットワークパーミッションパターンファイル136、シンボルパーミッション対応テーブル137を有する。これらは同一のプログラムファイル内に構成してもよいし、個別のサブモジュールなどの形態で構成してもよい。
FIG. 6 is a functional configuration diagram of the security
逆アセンブラ部131は、アプリケーションの実行ファイルをアセンブリ言語に変換する機能、アプリケーションの実行ファイルが内部的に使用するシンボルを抽出する機能を有する。シンボルとは、実行ファイルが関数を呼び出す際に内部的に使用する関数名などの識別子のことである。実行ファイルがどのシンボルを使用しているかを解析することにより、当該実行ファイルがどの関数を使用しているかが分かる。この関数のなかには、システムコールのようなCapabilityアクセスに属する関数も含まれる。
The
ファイルアクセス解析部132は、アプリケーションパッケージ140に含まれるアプリケーション実行ファイル141が動作するとき、どのファイルにアクセスする可能性があるかを推測する。詳細は後述の図12で説明する。
The file
ネットワークアクセス解析部133は、アプリケーションパッケージ140に含まれるアプリケーション実行ファイル141が動作するとき、どのネットワークリソースにアクセスする可能性があるかを推測する。詳細は後述の図13で説明する。
When the
Capabilityアクセス解析部134は、プリケーションパッケージ140に含まれるアプリケーション実行ファイル141が動作するとき、どのCapabilityアクセス権限を使用する可能性があるかを推測する。詳細は後述の図14で説明する。
The Capability
設定提示部135は、ファイルアクセス解析部132、ネットワークアクセス解析部133、Capabilityアクセス解析部134の解析結果を、セキュアOSコンピュータ100が備えるディスプレイ上に画面表示する。画面イメージについては後述の図15〜図17で改めて説明する。
The
ネットワークパーミッションパターンファイル136は、アプリケーションの実行ファイルがネットワークリソースを使用する際に実施すると推測される動作パターンを記述している。ネットワークアクセス解析部133は、本ファイルが記述している動作パターンと、逆アセンブラ部131またはファイルアクセス解析部132の処理結果から得られる動作パターンとをマッチングさせ、該当するものを抽出する。詳細は後述の図7で説明する。
The network permission pattern file 136 describes an operation pattern presumed to be executed when an application execution file uses network resources. The network
シンボルパーミッション対応テーブル137は、アプリケーションの実行ファイルが使用するシンボルと、当該シンボルを使用する際に必要となるCapabilityアクセス権限との対応関係を記述するテーブルである。Capabilityアクセス解析部134は、逆アセンブラ部131の処理結果から得られるシンボルと、本テーブルが記述しているシンボルとをマッチングさせ、該当するものを抽出する。詳細は後述の図8で説明する。
The symbol permission correspondence table 137 is a table describing a correspondence relationship between a symbol used by an execution file of an application and a Capability access authority necessary for using the symbol. The capability
図7は、ネットワークパーミッションパターンファイル136の構成とデータ例を示す図である。ネットワークパーミッションパターンファイル136は、パターンフィールド1361、パターン名フィールド1362を有する。
FIG. 7 is a diagram showing a configuration and data example of the network
パターンフィールド1361は、アプリケーションの実行ファイルがネットワークリソースにアクセスする際に実行するアセンブリ命令のパターンを記述している。また、アプリケーション設定ファイル142に記述され得る設定パラメータのうち、実行ファイルがネットワークリソースにアクセスする際に用いるものを記述している。
A
パターン名フィールド1362は、各パターンを識別するために設けた名称を記述している。
A
以下、図7の各行に示す例について説明する。
(図7:1行目:ポート番号)
図7の1行目は、実行ファイルがUNIX(登録商標)のhtons(host to network short)関数を呼び出してポート番号を設定しているアセンブリ命令パターンを記述している。アプリケーションの実行ファイルがこれらアセンブリ命令を実行するときは、ネットワークリソース(ここではポート番号)にアクセスするものと判断することができる。なお、可変するパラメータは<>を用いて一般化することとした。本例ではポート番号は実行毎に可変であるため、<数字>と記述した。以下の例においても同様である。
Hereinafter, an example shown in each row of FIG. 7 will be described.
(Figure 7: Line 1: Port number)
The first line of FIG. 7 describes an assembly instruction pattern in which an execution file calls a UNIX (registered trademark) htons (host to network short) function to set a port number. When the execution file of the application executes these assembly instructions, it can be determined that the network resource (here, the port number) is accessed. The variable parameters are generalized using <>. In this example, the port number is variable for each execution, so <number> is described. The same applies to the following examples.
(図7:2行目:bindシステムコール)
図7の2行目は、実行ファイルがbindシステムコールを呼び出して、ネットワークからの接続を待ち受けるアセンブリ命令パターンを記述している。ネットワークからの接続を待ち受ける場合、ネットワークリソースを使用するため、リソースに対するアクセス権限が適正であるか否かを判断する必要がある。したがって、実行ファイルに本パターンが含まれる場合、これを抽出することとした。
(Figure 7: 2nd line: bind system call)
The second line in FIG. 7 describes an assembly instruction pattern in which the execution file calls the bind system call and waits for a connection from the network. When waiting for a connection from the network, the network resource is used, and therefore it is necessary to determine whether or not the access right to the resource is appropriate. Therefore, when this pattern is included in the execution file, it is decided to extract it.
(図7:3行目:conectシステムコール)
図7の3行目は、実行ファイルがconnectシステムコールを呼び出して、外部ネットワークに接続するアセンブリ命令パターンを記述している。外部ネットワークに接続する場合、ネットワークリソースを使用するため、リソースに対するアクセス権限が適正であるか否かを判断する必要がある。
(Figure 7: 3rd line: connect system call)
The third line in FIG. 7 describes an assembly instruction pattern in which the execution file calls the connect system call to connect to the external network. When connecting to an external network, since network resources are used, it is necessary to determine whether or not the access authority to the resources is appropriate.
(図7:4行目:socketシステムコール)
図7の4行目は、実行ファイルがsocketシステムコールを呼び出して、これから用いる通信プロトコルを設定するアセンブリ命令パターンを記述している。<数字>の部分がプロトコルを示す。OSがLinuxである場合、<数字>の部分が1であればTCP、2であればUDPを設定することを示す。通信プロトコルを設定する場合、ネットワークリソースを使用するため、リソースに対するアクセス権限が適正であるか否かを判断する必要がある。
(Figure 7: 4th line: socket system call)
The fourth line in FIG. 7 describes an assembly instruction pattern in which an execution file calls a socket system call and sets a communication protocol to be used. The <number> part indicates the protocol. When the OS is Linux, if <number> is 1, TCP indicates that UDP is set. When setting a communication protocol, since network resources are used, it is necessary to determine whether or not the access authority to the resources is appropriate.
(図7:5行目:ポート待ち受け)
図7の5行目は、実行ファイルが所定のTCPポートに外部端末から接続してくるのを待機するアプリケーション設定パラメータ例を記述している。本行は、アプリケーション設定ファイル142内に記述されるパターンを例示したものである。実行ファイルがポートを開いて接続を待ち受ける場合、そのネットワークリソースを使用するため、リソースに対するアクセス権限が適正であるか否かを判断する必要がある。なお、本行はネットワークからの接続を待ち受けるパターンを記述する点で2行目と共通するが、2行目が実行ファイル内のアセンブリ命令パターンであるのに対し、本行はアプリケーション設定ファイル142内の記述パターンである点が異なる。
(Figure 7: 5th line: Port standby)
The fifth line in FIG. 7 describes an example of application setting parameters for waiting for an execution file to connect to a predetermined TCP port from an external terminal. This line exemplifies a pattern described in the
ネットワークアクセス解析部133は、本ファイルが記述している動作パターンと、逆アセンブラ部131の処理結果から得られるアセンブリ命令(またはアプリケーション設定ファイル142内の記述)とをマッチングし、両者が合致する部分を抽出する。両者が合致する部分が存在する場合、当該実行ファイルはネットワークリソースにアクセスすることが分かるので、後のステップでアクセス権限を設定するため、抽出しておくこととしたものである。
The network
図8は、シンボルパーミッション対応テーブル137の構成とデータ例を示す。シンボルパーミッション対応テーブル137は、シンボルフィールド1371とパーミッションフィールド1372を有する。シンボルパーミッション対応テーブル137は、実行ファイル内に含まれるシンボルが指定する関数を実行する際に、どのCapabilityアクセス権限が必要になるかを記述している。シンボル名は必ずしもCapabilityアクセス権限そのものを示していないため、本テーブルを用いて両者の対応関係を明示することとした。
FIG. 8 shows a configuration and data example of the symbol permission correspondence table 137. The symbol permission correspondence table 137 has a
Capabilityアクセス解析部134は、本ファイルが記述している対応関係と、逆アセンブラ部131の処理結果から得られるアセンブリ命令とをマッチングし、両者が合致する部分を抽出する。両者が合致する部分が存在する場合、当該実行ファイルはCapabilityアクセス権限を使用することが分かるので、後のステップでアクセス権限の使用可否を設定するため、抽出しておくこととしたものである。
The capability
なお、ここではシンボルとCapabilityアクセス権限の対応関係のみを例示したが、シンボルに対応する関数を実行する際にセキュアOS上のその他のアクセス権限が必要となる場合には、その対応関係を記述するようにしてもよい。 Here, only the correspondence between the symbol and the capability access authority is illustrated here, but when other access authority on the secure OS is required when executing the function corresponding to the symbol, the corresponding relation is described. You may do it.
図9は、逆アセンブラ部131がアプリケーションの実行ファイルを逆アセンブルしてアセンブリ命令に変換した結果の例を示す図である。ネットワークアクセス解析部133は、本図に示すアセンブリ命令のうち、ネットワークパーミッションパターンファイル136が記述しているアセンブリ命令パターンに合致する部分を抽出する。
FIG. 9 is a diagram illustrating an example of a result of the
図10は、逆アセンブラ部131がアプリケーションの実行ファイルを逆アセンブルしてシンボルを抽出した結果の例を示す図である。Capabilityアクセス解析部134は、本図に示すシンボルのうち、シンボルパーミッション対応テーブル137が記述しているシンボルパターンに合致する部分を抽出する。
FIG. 10 is a diagram illustrating an example of a result of the
以上、セキュリティポリシ生成プログラム130の詳細構成について説明した。次に、セキュリティポリシ生成プログラム130の動作について説明する。
The detailed configuration of the security
図11は、セキュリティポリシ生成プログラム130の全体動作フローである。以下、図11の各ステップについて説明する。なおここでは、アプリケーションパッケージ140に含まれている各ファイルを解析対象とする場合を例示するが、いずれか1つまたは2つのみを解析対象とすることもできる。例えば、アプリケーション実行ファイル141単体を解析することもできる。
FIG. 11 is an overall operation flow of the security
(図11:ステップS1101)
セキュリティポリシ生成プログラム130の逆アセンブラ部131は、アプリケーションパッケージ140に含まれるアプリケーション実行ファイル141を逆アセンブルし、図9〜図10で例示した解析結果を得る。
(FIG. 11: Step S1101)
The
(図11:ステップS1102)
セキュリティポリシ生成プログラム130のファイルアクセス解析部132は、アプリケーション設定ファイル142とアプリケーション構成ファイル143を解析する。本ステップの詳細は、後述の図12で説明する。
(FIG. 11: Step S1102)
The file
(図11:ステップS1103)
セキュリティポリシ生成プログラム130のネットワークアクセス解析部133は、ネットワークパーミッションパターンファイル136を用いて、ステップS1101の処理結果とアプリケーション構成ファイル143を解析する。本ステップの詳細は、後述の図13で説明する。
(FIG. 11: Step S1103)
The network
(図11:ステップS1104)
セキュリティポリシ生成プログラム130のCapabilityアクセス解析部134は、シンボルパーミッション対応テーブル137を用いて、ステップS1101の処理結果を解析する。本ステップの詳細は、後述の図14で説明する。
(FIG. 11: Step S1104)
The capability
(図11:ステップS1105)
セキュリティポリシ生成プログラム130の設定提示部135は、後述の図15〜図17で例示するように、セキュリティポリシファイル120を設定する画面を表示する。同画面には、ステップS1101〜S1104の結果を反映する。
(FIG. 11: Step S1105)
The
図12は、ステップS1102の詳細フローを示す図である。以下、図12の各ステップについて説明する。
(図12:ステップS1102_01)
ファイルアクセス解析部132は、アプリケーション設定ファイル142を解析し、アプリケーションがアクセスする可能性のあるファイルのリストを抽出する。例えば、「/」で始まる文字列はファイル名を記述しているものと判断し、抽出する。図4で示した記述例では、ファイル名として「/var/cahce/foo」が抽出される。
FIG. 12 is a diagram showing a detailed flow of step S1102. Hereinafter, each step of FIG. 12 will be described.
(FIG. 12: Step S1102_01)
The file
(図12:ステップS1102_02)
ファイルアクセス解析部132は、アプリケーション構成ファイル143を解析し、アプリケーションをインストールした後に当該アプリケーションがアクセスする可能性のあるファイルのリストを抽出する。抽出基準はステップS1102_01と同じでよい。図5で示した記述例では、ファイル名として「/sbin/foo」「/etc/foo/foo.conf」「/var/log/foo」が抽出される。
(FIG. 12: Step S1102_02)
The file
図13は、ステップS1103の詳細フローを示す図である。以下、図13の各ステップについて説明する。
(図13:ステップS1103_01)
ネットワークアクセス解析部133は、ステップS1101の解析結果と、ネットワークパーミッションパターンファイル136が記述しているアセンブリ命令パターンとが合致する部分を抽出する。図7に示したネットワークパーミッションパターンファイル136の例と、図9に示した逆アセンブル結果例とを比較すると、以下の結果が得られる。
FIG. 13 is a diagram showing a detailed flow of step S1103. Hereinafter, each step of FIG. 13 will be described.
(FIG. 13: Step S1103_01)
The network
(図13:ステップS1103_01:抽出例)
図9の5〜6行目における「movl」「call」は、図7の4行目のsocket関数を呼び出すパターンに合致する。図9の7〜8行目における「movl」「call」は、図7の1行目のhtons関数を呼び出すパターンに合致する。図9の最終行における「call」は、図7の2行目のbindシステムコールを呼び出すパターンに合致する。
(FIG. 13: Step S1103_01: Extraction Example)
“Movl” and “call” in the fifth to sixth lines in FIG. 9 match the pattern for calling the socket function in the fourth line in FIG. “Movl” and “call” in the 7th to 8th lines in FIG. 9 match the pattern for calling the htons function in the 1st line in FIG. “Call” in the last line in FIG. 9 matches the pattern for calling the bind system call in the second line in FIG.
(図13:ステップS1103_02)
ネットワークアクセス解析部133は、アプリケーション設定ファイル142と、ネットワークパーミッションパターンファイル136が記述している記述パターンとが合致する部分を抽出する。図7に示したネットワークパーミッションパターンファイル136の例と、図4に示したアプリケーション設定ファイル142記述例とを比較すると、以下の結果が得られる。
(FIG. 13: Step S1103_02)
The network
(図13:ステップS1103_02:抽出例)
図4の2行目における「Listen on 9999」は、図7の5行目に記述している、ネットワーク接続を待ち受けるパターン(bindシステムコールを使用するパターン)に合致する。
(FIG. 13: Step S1103_02: Extraction Example)
“Listen on 9999” in the second line in FIG. 4 matches the pattern for waiting for network connection (pattern using the bind system call) described in the fifth line in FIG.
図14は、ステップS1104の詳細フローを示す図である。以下、図14の各ステップについて説明する。
(図14:ステップS1104_01)
Capabilityアクセス解析部134は、ステップS1101の解析結果と、シンボルパーミッション対応テーブル137が記述しているシンボルパターンとが合致する部分を抽出する。図8に示したシンボルパーミッション対応テーブル137の例と、図10に示した逆アセンブル結果例とを比較すると、以下の結果が得られる。
FIG. 14 is a diagram showing a detailed flow of step S1104. Hereinafter, each step of FIG. 14 will be described.
(FIG. 14: Step S1104_01)
The capability
(図14:ステップS1104_01:抽出例)
図10の4行目における「chroot」は、図8の1行目のchrootシステムコールを呼び出すパターンに合致する。
(FIG. 14: Step S1104_01: Extraction Example)
“Root” in the fourth line in FIG. 10 matches the pattern for calling the root system call in the first line in FIG.
図15は、ステップS1105において設定提示部135が画面表示するファイルアクセス制御ポリシ設定画面1500の1例を示す図である。ファイルアクセス制御ポリシ設定画面1500は、ステップS1102における解析結果、すなわちアプリケーション設定ファイル142とアプリケーション構成ファイル143の解析結果を画面表示する。
FIG. 15 is a diagram showing an example of a file access control
ファイルアクセス制御ポリシ設定画面1500は、チェックボックス1501、ファイルリスト1502、パーミッション選択ボックス1503、適用ボタン1504を有する。画面上部は、後述する図16〜図17に示す画面に切り替えるためのタブを有する。
The file access control
チェックボックス1501は、ファイルリスト1502に表示されているファイルに対するパーミッション設定をセキュリティポリシファイル120に反映するか否かを選択する。反映する場合はチェックをONにする。
A
ファイルリスト1502は、ファイルアクセス解析部132がアプリケーション設定ファイル142とアプリケーション構成ファイル143から抽出したファイルの一覧を表示する。ここに表示されているファイルリストは、図11の動作フローで解析したアプリケーションがアクセスする可能性があるものである。
The
パーミッション選択ボックス1503は、ファイルリスト1502に表示されているファイルに対して、図11の動作フローで解析したアプリケーションにどのアクセス権限を付与するかを選択するための選択肢を有する。アプリケーションは、ファイルリスト1502に表示されているファイルに対して少なくとも読込アクセスするであろうと想定されるので、デフォルト値は「Read」となっている。
The
アクセス権限適用ボタン1504は、ファイルアクセス制御ポリシ設定画面1500上の設定をセキュリティポリシファイル120に反映するようセキュリティポリシ生成プログラム130に指示するボタンである。
The access
図16は、ステップS1105において設定提示部135が画面表示するネットワークアクセス制御ポリシ設定画面1600の1例を示す図である。ネットワークアクセス制御ポリシ設定画面1600は、ステップS1103における解析結果、すなわちアプリケーション実行ファイル141とアプリケーション設定ファイル142の解析結果を画面表示する。
FIG. 16 is a diagram showing an example of a network access control
ネットワークアクセス制御ポリシ設定画面1600は、プロトコル表示部1601、ポート番号表示部1602、パーミッション表示部1603、チェックボックス1604、適用ボタン1605を有する。画面上部は、図15または後述する図17に示す画面に切り替えるためのタブを有する。
The network access control
プロトコル表示部1601、ポート番号表示部1602、パーミッション表示部1603は、ステップS1103の解析結果として、図11の動作フローで解析したアプリケーションがアクセスする可能性があるネットワークリソースの一覧を表示する。
The
設定者200は、セキュリティポリシファイル120に反映するネットワークリソースをチェックボックス1604で選択し、適用ボタン1605を押下する。セキュリティポリシ生成プログラム130は、選択されているネットワークリソースに対するアクセスを許可する旨を、セキュリティポリシファイル120に反映する。
The
図17は、ステップS1105において設定提示部135が画面表示するCapabilityアクセス制御ポリシ設定画面1700の1例を示す図である。Capabilityアクセス制御ポリシ設定画面1700は、ステップS1104における解析結果、すなわちアプリケーション実行ファイル141の解析結果を画面表示する。
FIG. 17 is a diagram showing an example of the Capability access control
Capabilityアクセス制御ポリシ設定画面1700は、チェックボックス1701、capability表示部1702、適用ボタン1703を有する。画面上部は、図15〜図16に示す画面に切り替えるためのタブを有する。
The capability access control
チェックボックス1701は、capability表示部1702に表示されているCapabilityアクセスに対するパーミッション設定をセキュリティポリシファイル120に反映するか否かを選択する。反映する場合はチェックをONにする。capability表示部1702は、ステップS1104で抽出したCapabilityアクセスのリストを表示する。
A
設定者200は、セキュリティポリシファイル120に反映するCapabilityアクセス権限をチェックボックス1701で選択し、適用ボタン1703を押下する。セキュリティポリシ生成プログラム130は、選択されているネットワークリソースに対するアクセスを許可する旨を、セキュリティポリシファイル120に反映する。
The
<実施の形態1:まとめ>
以上のように、本実施形態1に係るセキュリティポリシ生成プログラム130は、アプリケーション実行ファイル141、アプリケーション設定ファイル142、アプリケーション構成ファイル143の少なくともいずれかを読み取り、アプリケーションが使用する可能性のあるアクセス権限を抽出する。これにより、アプリケーションを実行することなく、必要となるアクセス権限設定の候補を提示することができるので、セキュリティポリシファイル120の設定に係る作業負担を軽減することができる。
<Embodiment 1: Summary>
As described above, the security
また、本実施形態1に係るセキュリティポリシ生成プログラム130は、アプリケーション実行ファイル141を逆アセンブルしてネットワークパーミッションパターンファイル136と比較し、ネットワークリソースにアクセスするアセンブリ命令パターンを抽出する。これにより、アプリケーションを実行することなく、ネットワークリソースに対して必要となるアクセス権限の候補を提示することができる。
Also, the security
また、本実施形態1に係るセキュリティポリシ生成プログラム130は、アプリケーション実行ファイル141に含まれるシンボルを抽出し、そのシンボルに対応する関数を実行する際に必要となるCapabilityアクセス権限を、シンボルパーミッション対応テーブル137によって特定する。これにより、アプリケーションを実行することなく、必要となるCapabilityアクセス権限の候補を提示することができる。
In addition, the security
また、本実施形態1に係るセキュリティポリシ生成プログラム130は、アプリケーション設定ファイル142またはアプリケーション構成ファイル143内に記述されているファイル名を抽出し、アプリケーションはそのファイルに対するアクセス権限が必要になるものと仮定して提示する。これにより、アプリケーションを実行することなく、ファイルに対して必要となるアクセス権限の候補を提示することができる。
Further, it is assumed that the security
<実施の形態2>
実施形態1では、セキュアOS110がUNIXベースのOSであることを想定し、chrootやsetuidなどのUNIXシステムコールを例に挙げて説明した。しかし本発明に係る手法は、任意のセキュアOSについて適用することができる。
<Embodiment 2>
In the first embodiment, the
OSが異なれば、システムコールに相当するものは異なるし、シンボル名やネットワークリソースの表現形態も異なる可能性がある。しかし、アプリケーション実行ファイル141、アプリケーション設定ファイル142、アプリケーション構成ファイル143の少なくともいずれかを解析し、必要となるアクセス権限の候補を抽出する点は、いずれのOSについても応用することができる。
If the OS is different, what corresponds to the system call is different, and the expression form of the symbol name and network resource may be different. However, it is applicable to any OS in that at least one of the
また、実施形態1では、アプリケーションパッケージ140またはその内部に含まれるファイルを解析する例を示したが、既にインストールされている実行ファイルなどについても同様の手法を用いて解析することができる。
In the first embodiment, an example in which the
100:セキュアOSコンピュータ、110:セキュアOS、120:セキュリティポリシファイル、121:サブジェクトフィールド、122:オブジェクトフィールド、123:パーミッションフィールド、130:セキュリティポリシ生成プログラム、131:逆アセンブラ部、132:ファイルアクセス解析部、133:ネットワークアクセス解析部、134:Capabilityアクセス解析部、135:設定提示部、136:ネットワークパーミッションパターンファイル、1361:パターンフィールド、1362:パターン名フィールド、137:シンボルパーミッション対応テーブル、1371:シンボルフィールド、1372:パーミッションフィールド、140:アプリケーションパッケージ、141:アプリケーション実行ファイル、142:アプリケーション設定ファイル、143:アプリケーション構成ファイル、150:パッケージ管理プログラム、200:設定者、1500:ファイルアクセス制御ポリシ設定画面、1501:チェックボックス、1502:ファイルリスト、1503:パーミッション選択ボックス、1504:適用ボタン、1600:ネットワークアクセス制御ポリシ設定画面、1601:プロトコル表示部、1602:ポート番号表示部、1603:パーミッション表示部、1604:チェックボックス、1605:適用ボタン、1700:Capabilityアクセス制御ポリシ設定画面、1701:チェックボックス、1702:capability表示部、1703:適用ボタン。 100: secure OS computer, 110: secure OS, 120: security policy file, 121: subject field, 122: object field, 123: permission field, 130: security policy generation program, 131: disassembler unit, 132: file access analysis , 133: Network access analysis unit, 134: Capability access analysis unit, 135: Setting presentation unit, 136: Network permission pattern file, 1361: Pattern field, 1362: Pattern name field, 137: Symbol permission correspondence table, 1371: Symbol Field, 1372: permission field, 140: application package, 141: application Execution file, 142: application setting file, 143: application configuration file, 150: package management program, 200: setter, 1500: file access control policy setting screen, 1501: check box, 1502: file list, 1503: permission Selection box, 1504: Apply button, 1600: Network access control policy setting screen, 1601: Protocol display section, 1602: Port number display section, 1603: Permission display section, 1604: Check box, 1605: Apply button, 1700: Capability access Control policy setting screen, 1701: check box, 1702: capability display section, 1703: apply button.
Claims (5)
前記セキュアOS上で動作するアプリケーションの実行ファイル、前記アプリケーションの設定パラメータを記述した設定ファイル、前記アプリケーションを構成するファイルリストを記述した構成ファイルのうち少なくともいずれかを読み込む読込ステップと、
前記実行ファイルを実行するとき、前記実行ファイルが前記設定パラメータを用いるとき、前記実行ファイルが前記ファイルリスト内に記述されているファイルを使用するときの少なくともいずれかにおいて、前記セキュアOS上のいずれのアクセス権限が必要となるかを解析するアクセス解析ステップと、
前記アクセス解析ステップの結果を前記セキュリティポリシの候補として出力するステップと、
を実行させることを特徴とするセキュリティポリシ生成プログラム。 A program for causing a computer to execute a process for generating a security policy for a secure OS,
A read step of reading at least one of an execution file of an application operating on the secure OS, a setting file describing setting parameters of the application, and a configuration file describing a file list constituting the application;
When executing the executable file, when the executable file uses the setting parameter, or when the executable file uses a file described in the file list, any of the secure OSs An access analysis step for analyzing whether access authority is required;
Outputting the result of the access analysis step as a candidate for the security policy;
A security policy generation program characterized in that
前記実行ファイルを逆アセンブルしてアセンブリ言語に変換するステップと、
前記アセンブリ言語から前記セキュアOS上のネットワークリソースにアクセスする処理を抽出するステップと、
前記ネットワークリソースにアクセスするためのアクセス権限を、前記セキュアOS上で必要となるアクセス権限として抽出するステップと、
を実行させることを特徴とする請求項1記載のセキュリティポリシ生成プログラム。 In the access analysis step, the computer
Disassembling and converting the executable to assembly language;
Extracting a process for accessing network resources on the secure OS from the assembly language;
Extracting an access right for accessing the network resource as an access right required on the secure OS;
The security policy generation program according to claim 1, wherein:
前記実行ファイルに含まれるシンボルを抽出するシンボル抽出ステップと、
アプリケーションの実行ファイルに含まれるシンボルに対応する関数を実行する際に前記セキュアOS上で必要となるアクセス権限を記述したシンボルパーミッション対応テーブルを読み込むステップと、
前記シンボルパーミッション対応テーブルが記述しているアクセス権限のうち前記シンボル抽出ステップで抽出したシンボルに対応するものを検索する検索ステップと、
前記検索ステップの結果得られたアクセス権限を、前記セキュアOS上で必要となるアクセス権限として特定するステップと、
を実行させることを特徴とする請求項1または2記載のセキュリティポリシ生成プログラム。 In the access analysis step, the computer
A symbol extraction step of extracting symbols included in the executable file;
Reading a symbol permission correspondence table describing access authority required on the secure OS when executing a function corresponding to a symbol included in an execution file of an application;
A search step for searching for an access right described in the symbol permission correspondence table corresponding to the symbol extracted in the symbol extraction step;
Specifying the access authority obtained as a result of the search step as an access authority required on the secure OS;
The security policy generation program according to claim 1 or 2, wherein the security policy generation program is executed.
前記アプリケーションが使用するファイルとして前記設定ファイルが指定しているファイル、または前記構成ファイルが記述しているファイルリストが指定するファイルに対して、前記セキュアOS上で読取アクセス権限が必要となるものと判定させる
ことを特徴とする請求項1から3のいずれか1項記載のセキュリティポリシ生成プログラム。 In the access analysis step, the computer
Read access authority is required on the secure OS for the file specified by the setting file as the file used by the application or the file specified by the file list described by the configuration file The security policy generation program according to any one of claims 1 to 3, wherein the security policy generation program is determined.
前記セキュリティポリシ生成プログラムが生成するセキュリティポリシを用いるセキュアOSと、
を備えたことを特徴とするセキュアOSコンピュータシステム。 The security policy generation program according to any one of claims 1 to 4,
A secure OS using a security policy generated by the security policy generation program;
A secure OS computer system comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010191948A JP2012048609A (en) | 2010-08-30 | 2010-08-30 | Security policy generation program, and secure os computer system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010191948A JP2012048609A (en) | 2010-08-30 | 2010-08-30 | Security policy generation program, and secure os computer system |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012048609A true JP2012048609A (en) | 2012-03-08 |
Family
ID=45903368
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010191948A Pending JP2012048609A (en) | 2010-08-30 | 2010-08-30 | Security policy generation program, and secure os computer system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012048609A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016525313A (en) * | 2013-07-18 | 2016-08-22 | アルカテル−ルーセント | Method and device for protecting private data |
WO2019150699A1 (en) * | 2018-01-31 | 2019-08-08 | ソニー株式会社 | Information processing device, information processing method, and computer program |
JP2020016989A (en) * | 2018-07-24 | 2020-01-30 | 横河電機株式会社 | Device, method, program, and recording medium |
-
2010
- 2010-08-30 JP JP2010191948A patent/JP2012048609A/en active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016525313A (en) * | 2013-07-18 | 2016-08-22 | アルカテル−ルーセント | Method and device for protecting private data |
WO2019150699A1 (en) * | 2018-01-31 | 2019-08-08 | ソニー株式会社 | Information processing device, information processing method, and computer program |
JP2020016989A (en) * | 2018-07-24 | 2020-01-30 | 横河電機株式会社 | Device, method, program, and recording medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10540160B2 (en) | Techniques for deploying virtual software applications on computers | |
JP5726212B2 (en) | Virtual environment for server applications such as web applications | |
US8341619B2 (en) | Simplifying installation of software modules on heterogeneous remote systems | |
US11126417B2 (en) | System and method for application plug-in distribution | |
US20160371105A1 (en) | Deployment and installation of updates in a virtual environment | |
US8438418B2 (en) | Simplifying automated software maintenance of data centers | |
JP2011008487A (en) | Compatibility evaluation apparatus, compatibility evaluation method, and program | |
RU2568294C2 (en) | Method for automatic installation of application without human participation | |
US8677339B2 (en) | Component relinking in migrations | |
Heap | Ansible: from beginner to pro | |
US20090030908A1 (en) | Centralized management type computer system | |
CN107636667B (en) | System and method for creating multiple workspaces in a device | |
JP2012048609A (en) | Security policy generation program, and secure os computer system | |
US8392469B2 (en) | Model based distributed application management | |
US9917922B2 (en) | Extensibility bundles for a cloud and devices suite | |
JP5574017B2 (en) | Information processing apparatus, compatibility evaluation method, and program | |
Khare | Apache Tomcat 7 Essentials | |
JP6781126B2 (en) | Virtual machine setting input system, virtual machine setting input method, and program | |
US10223413B2 (en) | Capturing components of an application using a static post-installation analysis of the system | |
Shah | Penetration Testing Android Applications | |
Joukov et al. | Built-to-order service engineering for enterprise IT discovery | |
Jadidi et al. | Capexec: Towards transparently-sandboxed services (extended version) | |
US11882123B2 (en) | Kernel level application data protection | |
Bernstein | 5e: Memory Corruption Detection for the Rest of Us | |
US20190197235A1 (en) | Server and setting method thereof |