(57)【特許請求の範囲】
【請求項１】
汎用セキュリティポリシを利用して移植先装置で用いるセキュアＯＳのセキュリティポリシを最適化する方法であって、
前記移植先装置に実装した最適化手段により、
汎用セキュリティポリシを汎用セキュリティポリシファイルから読込み、読み込んだ汎用セキュリティポリシの中からユーザにとって不要なパーミッションの選択入力を受付け、選択入力されたパーミッションに関するセキュアＯＳのアクセスチェックを無効化し、かつ当該パーミッションが含まれる設定を汎用セキュリティポリシの中から削除する第１のステップと、
前記汎用セキュリティポリシ中に含まれるドメインとプログラムの関連付け設定を参照し、移植先装置において使用していない不要なドメインに関する設定を汎用セキュリティポリシの中から削除する第２のステップと、
前記汎用セキュリティポリシ中に含まれるラベルとリソースの関連付け設定を参照し、移植先装置に存在しないリソースに対するラベルを不要なラベルとして抽出し、前記汎用セキュリティポリシの中から当該不要なラベルに関する設定を削除する第３のステップとを備えることを特徴とするセキュアＯＳのセキュリティポリシの最適化方法。
【請求項２】
汎用セキュリティポリシを利用して移植先装置で用いるセキュアＯＳのセキュリティポリシを最適化するプログラムであって、
前記移植先装置に実装され、
汎用セキュリティポリシを汎用セキュリティポリシファイルから読込み、読み込んだ汎用セキュリティポリシの中からユーザにとって不要なパーミッションの選択入力を受付け、選択入力されたパーミッションに関するセキュアＯＳのアクセスチェックを無効化し、かつ当該パーミッションが含まれる設定を汎用セキュリティポリシの中から削除する第１のステップと、
前記汎用セキュリティポリシ中に含まれるドメインとプログラムの関連付け設定を参照し、移植先装置において使用していない不要なドメインに関する設定を汎用セキュリティポリシの中から削除する第２のステップと、
前記汎用セキュリティポリシ中に含まれるラベルとリソースの関連付け設定を参照し、移植先装置に存在しないリソースに対するラベルを不要なラベルとして抽出し、前記汎用セキュリティポリシの中から当該不要なラベルに関する設定を削除する第３のステップとをコンピュータに実行させることを特徴とするセキュアＯＳのセキュリティポリシの最適化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セキュアＯＳのセキュリティポリシの最適化方法及びプログラムに関するものである。
【背景技術】
【０００２】
現在広く使われているＯＳのアクセス制御は、リソースの所有者がそのリソースへのアクセス権限を設定する。また、全ての権限を持つ特権というものが存在する。それに対してセキュアＯＳとは、全権を持つ特権を排除し、プロセス毎にドメインと呼ばれるアクセス権限を付与できるようにしたＯＳである。
プロセス毎にどんな権限を持つかという設定はセキュリティポリシファイルというファイルに記載されている。この機能により、プロセスが必要なリソースにだけアクセスすることがＯＳによって保証され、プロセスにセキュリティホールがあり、攻撃者にプロセスが乗っ取られたとしても、その被害を最小限にすることができる。
【０００３】
セキュアＯＳのうち、ラベルベースのセキュアＯＳでは、ファイルやネットワークなどのリソースをラベルで識別する。すなわち、ファイルやネットワークにラベルという識別子を付与し、ドメインがどんなラベルにアクセスできるかを制御する。
アクセス制御の設定は、セキュリティポリシと呼ばれる。セキュリティポリシは、ドメインとプログラムの関連づけ、ラベルとリソースの対応付けおよびドメインがどんなラベルにアクセスできるかのアクセス許可設定から成り立つ。
セキュアＯＳ上で、アプリケーションを動作させるには、このセキュリティポリシを設定する必要がある。アクセス許可設定を行わないと、アクセスが拒否され、アプリケーションが動作しないからである。
このような機能を備えたセキュアＯＳとしては、SELinux(Security Enhanced Linux)が代表的なものの一つである。
【０００４】
セキュリティポリシの設定に関する技術としては、特許文献１および２のような技術がある。
特許文献１の技術は、アプリケーションのソースコードもしくはモデリング図を用いてセキュリティポリシを生成するものである。
特許文献２は、プロセスのアクセス履歴からセキュリティポリシを生成するものである。
【０００５】
【特許文献１】特開２００５−６３２２４
【特許文献２】特開２００５−２３４６６１
【発明の開示】
【発明が解決しようとする課題】
【０００６】
セキュアＯＳは、多種類の操作をアクセス制御できるため、プロセスを動作させるためには、様々な操作を許可する設定を記述する必要がある。その結果、システムを正常に動作させるため必要なセキュリティポリシの量が膨大になる傾向がある。
そこで、設定の手間を省くため、セキュアＯＳの開発元が汎用セキュリティポリシを用意し、セキュアＯＳと共に配布し、ユーザはそれをカスタマイズして使うことが多い。
ただし、組込み機器のようなデバイスは、搭載する記憶装置、補助記憶装置の容量が小さく、汎用セキュリティポリシはサイズが大きすぎることがある。
こういったデバイスにセキュアＯＳを移植する場合、汎用セキュリティポリシのサイズを小さくするチューニングが必要になってくる。
特許文献１及び特許文献２の技術にあっては、セキュリティポリシの設定を一から記述するものであり、汎用セキュリティポリシの流用は考慮されていない。
【０００７】
本発明の目的は、汎用セキュリティポリシのサイズを移植先の装置の機能に応じて最適なサイズにチューニング（最適化）することができるセキュリティポリシの最適化方法及び装置を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明に係る汎用セキュリティポリシの最適化方法は、  前記移植先装置に実装した最適化手段により、汎用セキュリティポリシを汎用セキュリティポリシファイルから読込み、読み込んだ汎用セキュリティポリシの中からユーザにとって不要なパーミッションの選択入力を受付け、選択入力されたパーミッションに関するセキュアＯＳのアクセスチェックを無効化し、かつ当該パーミッションが含まれる設定を汎用セキュリティポリシの中から削除する第１のステップと、前記汎用セキュリティポリシ中に含まれるドメインとプログラムの関連付け設定を参照し、移植先装置において使用していない不要なドメインに関する設定を汎用セキュリティポリシの中から削除する第２のステップと、前記汎用セキュリティポリシ中に含まれるラベルとリソースの関連付け設定を参照し、移植先装置に存在しないリソースに対するラベルを不要なラベルとして抽出し、前記汎用セキュリティポリシの中から当該不要なラベルに関する設定を削除する第３のステップとを備えることを特徴とする。
【０００９】
また、本発明に係る汎用セキュリティポリシの最適化プログラムは、汎用セキュリティポリシを汎用セキュリティポリシファイルから読込み、読み込んだ汎用セキュリティポリシの中からユーザにとって不要なパーミッションの選択入力を受付け、選択入力されたパーミッションに関するセキュアＯＳのアクセスチェックを無効化し、かつ当該パーミッションが含まれる設定を汎用セキュリティポリシの中から削除する第１のステップと、
前記汎用セキュリティポリシ中に含まれるドメインとプログラムの関連付け設定を参照し、移植先装置において使用していない不要なドメインに関する設定を汎用セキュリティポリシの中から削除する第２のステップと、
前記汎用セキュリティポリシ中に含まれるラベルとリソースの関連付け設定を参照し、移植先装置に存在しないリソースに対するラベルを不要なラベルとして抽出し、前記汎用セキュリティポリシの中から当該不要なラベルに関する設定を削除する第３のステップとをコンピュータに実行させることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、汎用セキュリティポリシを読込み、パーミッション最適化、ドメイン最適化、ラベル最適化の三段階の処理により、移植先の装置で不要なパーミッション、ドメイン、ラベルを削除し、移植先装置の機能に応じたサイズのセキュリティポリシとして構築する。よって、汎用セキュリティポリシのサイズを移植先の装置の機能に応じて最適なサイズにチューニング（最適化）することができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の一実施形態を図面を参照しながら説明する。
図１は、本発明に係る汎用セキュリティポリシの最適化方法を実施するコンピュータの実施形態を示す機能構成図である。
コンピュータ１１０が汎用セキュリティポリシを最適化して移植する移植先のコンピュータである。
コンピュータ１１０にはセキュアＯＳ１１１が搭載されている。
セキュアＯＳ１１１は、最適化後キュリティポリシファイル１１４に記載されたルールを基にアクセス制御を行う。最適化プログラム１１２は、汎用セキュリティポリシファイル１１３のサイズを最適化する機能を有するプログラムである。
汎用セキュリティポリシファイル１１３は、多くのマシンで使える汎用的なセキュリティポリシの設定が記述されている。
最適化プログラム１１２は、汎用セキュリティポリシファイル１１３を入力として、移植先のコンピュータ１１０の機能に応じてサイズが最適化された最適化後ポリシファイル１１４を出力する。
【００１２】
図２は、コンピュータ１１０の詳細な構成を示した図である。
セキュアＯＳ１１１は、アクセス制御機能２１１を備える。
アクセス制御機能２１１では、プロセスにドメインを、ファイルなどのリソースにラベルを付与し、「ドメインがどんなラベルにどのようなパーミッションのアクセスができるか」というアクセス制御を行う。
アクセス制御は、プロセスがリソースにアクセスするＯＳにおけるシステムコールの内部のパーミッションチェックとして行われている。
アクセス制御設定は、最適化後セキュリティポリシファイル１１４に格納されている。
【００１３】
最適化プログラム１１２は、パーミッション最適化機能２３１、ドメイン最適化機能２３２、ラベル最適化機能２３３から構成されている。これらの詳細は図９から図１２で後述する。
パーミッションチェックスキップ機能２２０は、アクセス制御機能２１１における特定の種別のパーミッションチェックをスキップさせることができる機能である。例えば、ネットワークリソースを利用する際のパーミッションチェックをスキップさせることができる。
パーミッションチェックスキップ機能２２０は、ＯＳ内部にパラメータを埋め込んだり、ＯＳのソースを書き換えてＯＳをコンパイルし直すなどすることにより実現できる。
【００１４】
汎用ポリシファイル１１３は、ドメイン付与設定ファイル２４１、ラベル付与設定ファイル２４２、アクセス制御設定２４３から構成されている。これらの詳細は図３から図５で後述する。
【００１５】
最適化後ポリシファイル１１４は、最適化後ドメイン付与設定ファイル２５１、最適化後ラベル付与設定ファイル２５２、最適化後アクセス制御設定ファイル２５３から成り立っている。これらの詳細は図６から図８で後述する。
【００１６】
図３は、ドメイン付与設定ファイル２４１の詳細な構成を示した図である。
ドメイン付与設定ファイル２４１には、コンピュータ１１０で使用するプログラムにどんなドメインを付与するかが列３１０，３２０に設定してある。ドメインは、プロセスに付与される識別子である。例えば行５３１は、/usr/sbin/httpdというプログラムの実行ファイルを実行すると、そのプロセスはhttpd_tというドメインが付与されることを意味する。
【００１７】
図４は、ラベル付与設定ファイル２４２の詳細な設定を示した図である。
ラベル付与設定ファイル２４２には、リソース名４１０に、ファイル名などリソース名を列挙する。ラベル４２０に、列挙されたリソース名に対して、どんなラベルを付与するかを記述する。
例えば、行４３１は、/etcディレクトリ以下にetc_tという名前のラベルを付与することを意味する。ファイル以外のリソースの指定も可能である。
行４３５は、TCP 80番ポートにhttp_port_tというラベルを付与している。
【００１８】
図５は、アクセス制御設定ファイル２４３の詳細な構成を示した図である。
アクセス制御設定ファイル２４３には、ドメイン５１０、ラベル５２０、操作５３０の組を指定して設定する。
ドメイン５１０は、プロセスに付与される識別子である。ラベル５２０は、リソース（ファイルやネットワークなど、プロセスがアクセスする対象のこと）に付与される識別子である。
操作５３０は、ドメインがラベルにどんな操作ができるかを表す。例えば１行目は、httpd_tドメインはhomepage_tというラベルが付与されたリソースに対して、file:read(ファイル読み込み)操作ができる、という設定をしている。なお、このファイルに明示的に記述されていない場合のアクセスは全て不可になる。
【００１９】
図６は、最適化後ドメイン付与設定ファイル２５１の構成を示した図である。意味はドメイン付与設定ファイル２４１と同じである。
図７は、最適化後ラベル付与設定ファイル２５２の構成を示した図である。意味はラベル付与設定ファイル２４２と同じである。
図８は、最適化後アクセス制御設定ファイル２５３の構成を示した図である。意味は、アクセス制御設定ファイル２４３と同じである。
【００２０】
図９は、最適化プログラム１１２の処理の流れを示すフローチャートである。
まず、ステップ９１０，９２０，９３０にて、パーミッション最適化機能２３１、ドメイン最適化機能２３２、ラベル最適化機能２３３が実行される。以下の図１０、１１、１２を参照し、図３〜図５の汎用ポリシファイルがどのように最適化されるかの例と共に説明する。
【００２１】
図１０は、パーミッション最適化機能２３１の処理の流れを示すフローチャートである。
まず、ステップ１０１０において、ユーザは、不要なパーミッションを選択入力する。
不要なパーミッションを選択入力する方法としては、汎用セキュリティポリシを読み込み、それをディスプレイに表示し、その中から不要なパーミッションを選択するようにしてもよいし、ユーザが不要なパーミッションを直接入力するようにしてもよい。
ここでは、ユーザが不要パーミッションとして、例えば「tcp:bind(TCPソケットを使ってネットワーク接続を待ち受けるパーミッション)」を入力したものと仮定して以下の説明を進める。
【００２２】
次に、ステップ１０２０において、パーミッションチェックスキップ機能２２０を用い、セキュアＯＳ１１１がステップ１０１０で入力されたパーミッションをチェックしないようにする。
次に、ステップ１０３０において、アクセス制御設定ファイル２４３より、ステップ１０１０で入力されたパーミッションを許可している設定を削除する。ここでは、不要パーミッションとしてtcp:bindを入力したので、図５の行５３７の設定を削除する。
【００２３】
図１１は、ドメイン最適化機能２３２の処理の詳細を示したフローチャートである。
まず、ステップ１１１０において、削除候補になるドメインを抽出する。
ドメイン付与設定ファイル２４１のプログラム３２０のうち、システムに存在しないものを削除候補ドメインとする。今回は例えば、２行目の/sbin/sqldが存在しないと仮定する。存在しないプログラムに対するドメイン設定は本来不要なものであるため、ドメインdbms_tが削除候補となる。
次に、ステップ１１２０において、ステップ１１１０で得られた削除候補ドメインについて、ステップ１１３０，１１４０を繰り返す。
ステップ１１３０では、アクセス制御設定ファイル２４３のラベル５２０のうち、削除候補ドメインからしかアクセスされていないものは、削除候補ドメインを削除すると同時に不要なラベルとなるため、これを、削除候補ラベルとして記憶する。今回の場合、行５３４の「database_t」は、dbms_tからしかアクセスされていないため、削除候補となる。
そして、削除候補ラベルを含んだ設定は、不要な設定となるため、アクセス制御設定ファイル２４３およびラベル付与設定ファイル２４２より削除する。今回の場合、行５３４及び行４３４が削除される。
次に、ステップ１１４０において、削除候補ドメインを含んだ設定を、アクセス制御設定ファイル２４３より削除する。今回は、行５３４、行５３５が消去される。
【００２４】
図１２は、ラベル最適化機能２３３の処理の流れを示したフローチャートある。
まず、ステップ１２１０において、ラベル付与設定ファイル２４２の中から削除候補ラベルを抽出する。ラベル付与設定ファイル２４２のリソース名４１０がシステムに存在しない場合、それに対するラベル付けは不要であるため、削除候補とできる。今回、/optディレクトリが存在しないコンピュータ上で動かしていると仮定する。すると、行４３２の「opt_t」は削除候補ラベルとなる。
次に、ステップ１２２０において、ステップ１２１０で得た削除候補ラベルについて、以下の処理を実行する。
すなわち、ステップ１２３０において、除去候補ラベルを含んだ設定を、ラベル付与設定ファイル２４２およびアクセス制御設定ファイル２４３より削除する。今回の例では、行４３２および５３３が削除される。
ここまでの処理の結果を、最適化後ポリシファイル１１４として出力する。結果得られたものが、図６，７，８である。削除した設定は空白としてある。
図６、７、８のように、本発明により、設定の量を減らすことができている。また、ステップ９２０でパーミッションチェックがスキップされているため、システムの速度が速くなるという副次的な効果も期待できる。
【図面の簡単な説明】
【００２５】
【図１】本発明を実施するコンピュータの実施の形態を示す機能構成図である。
【図２】図１のコンピュータの詳細構成を示す図である。
【図３】ドメイン付与設定ファイルの構成例を示す図である。
【図４】ラベル付与設定ファイルの構成例を示す図である。
【図５】アクセス制御設定ファイルの構成例を示す図である。
【図６】最適化後ドメイン付与設定ファイルの構成例を示す図である。
【図７】最適化後ラベル付与設定ファイルの構成例を示す図である。
【図８】最適化後アクセス制御設定ファイルの構成例を示す図である。
【図９】最適化プログラムの処理の流れを示すフローチャートである。
【図１０】パーミッション最適化機能の処理の流れを示すフローチャートである。
【図１１】ドメイン最適化機能の処理の流れを示すフローチャートである。
【図１２】ラベル最適化機能の処理の流れを示すフローチャートである。
【符号の説明】
【００２６】
１１０  コンピュータ
１１１  セキュアＯＳ
１１２  最適化プログラム
１１３  汎用セキュリティポリシファイル
１１４  最適化後ポリシファイル
２３１  パーミッション最適化機能
２３２  ドメイン最適化機能
２３３  ラベル最適化機能
【図１】
0004949147.tif 000002
【図２】
0004949147.tif 000003
【図３】
0004949147.tif 000004
【図４】
0004949147.tif 000005
【図５】
0004949147.tif 000006
【図６】
0004949147.tif 000007
【図７】
0004949147.tif 000008
【図８】
0004949147.tif 000009
【図９】
0004949147.tif 000010
【図１０】
0004949147.tif 000011
【図１１】
0004949147.tif 000012
【図１２】
0004949147.tif 000013