(57)【要約】      （修正有）【課題】セキュリティポリシーの改竄に対して、よりセキュリティを高める情報処理装置、方法及びプログラムを提供する。【解決手段】アプリケーションのセキュリティポリシーの改竄を検知する検知手段によりセキュリティポリシーの改竄が検知された場合Ｓ４０４でＹＥＳ、ポリシー改竄検知時処理を実行するＳ４０５。次に、入力したセキュリティポリシーに基づいてアプリケーションによるコンピュータ資源へのアクセス要求を許可するか否かを判定するＳ４０７。許可すると判定された場合、アクセス要求に対応するシステムコールを行うＳ４０８。【選択図】図４
2018005732.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションのセキュリティポリシーの改竄を検知する検知手段と、
前記検知手段によりセキュリティポリシーの改竄が検知された場合、処理を実行する実行手段と、
前記セキュリティポリシーに基づいて前記アプリケーションによるコンピュータ資源へのアクセス要求を許可するか否かを判定する判定手段と、
前記判定手段により前記アプリケーションによるコンピュータ資源へのアクセス要求を許可すると判定された場合、前記アクセス要求に対応するシステムコールを行う処理手段と、
を有する情報処理装置。
【請求項２】
前記検知手段は、前記アプリケーションのセキュリティポリシーと、セキュリティポリシーの原本情報と、に基づいて、前記アプリケーションのセキュリティポリシーの改竄を検知する請求項１記載の情報処理装置。
【請求項３】
前記セキュリティポリシーの原本情報は、前記セキュリティポリシーのハッシュ値であり、
前記検知手段は、前記アプリケーションのセキュリティポリシーのハッシュ値を求め、求めたハッシュ値と、前記原本情報である前記セキュリティポリシーのハッシュ値と、を比較し、同一でない場合は前記アプリケーションのセキュリティポリシーの改竄を検知する請求項２記載の情報処理装置。
【請求項４】
前記セキュリティポリシーのハッシュ値は、前記セキュリティポリシーの全体のハッシュ値である請求項３記載の情報処理装置。
【請求項５】
前記セキュリティポリシーのハッシュ値は、前記セキュリティポリシーに含まれるコアポリシーの全体のハッシュ値である請求項３記載の情報処理装置。
【請求項６】
前記実行手段は、改竄されたセキュリティポリシーのアプリケーションに応じて異なる処理を実行する請求項１乃至５何れか１項記載の情報処理装置。
【請求項７】
前記実行手段は、改竄されたセキュリティポリシーの改竄された箇所に応じて異なる処理を実行する請求項１乃至５何れか１項記載の情報処理装置。
【請求項８】
前記異なる処理とは、外部サーバにバックアップしていたセキュリティポリシーに書き戻して、前記セキュリティポリシーの場所を変更する処理と、セーフモードで起動する処理と、システムを停止する処理と、を含む請求項６又は７記載の情報処理装置。
【請求項９】
情報処理装置が実行する情報処理方法であって、
アプリケーションのセキュリティポリシーの改竄を検知する検知ステップと、
前記検知ステップによりセキュリティポリシーの改竄が検知された場合、処理を実行する実行ステップと、
前記セキュリティポリシーに基づいて前記アプリケーションによるコンピュータ資源へのアクセス要求を許可するか否かを判定する判定ステップと、
前記判定ステップにより前記アプリケーションによるコンピュータ資源へのアクセス要求を許可すると判定された場合、前記アクセス要求に対応するシステムコールを行う処理ステップと、
を含む情報処理方法。
【請求項１０】
コンピュータを、請求項１乃至８何れか１項記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
システムにおいて、システム管理者の権限を取られても、システムの特定の実行プロセスやファイル及びデバイスと言ったコンピュータ資源（以下、コンピュータ資源）へのアクセスを制御とする仕組みがいくつか提案されている。その中に、強制アクセス制御（Ｍａｎｄａｔｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ、以下、ＭＡＣという）がある。これは、予め作成したセキュリティポリシーに基づいて、実行プロセスやファイルへのアクセスを制御するものである。ＭＡＣに関する技術としては、特許文献１が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１８１０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＭＡＣにおいて、例えば、ケアレスミス等でセキュリティポリシーの改竄を許した場合に、コンピュータ資源へのアクセスを制御できなくなってしまう。
本発明は、よりセキュリティを高めることを目的とする。
【課題を解決するための手段】
【０００５】
本発明は、アプリケーションのセキュリティポリシーの改竄を検知する検知手段と、前記検知手段によりセキュリティポリシーの改竄が検知された場合、処理を実行する実行手段と、前記セキュリティポリシーに基づいて前記アプリケーションによるコンピュータ資源へのアクセス要求を許可するか否かを判定する判定手段と、前記判定手段により前記アプリケーションによるコンピュータ資源へのアクセス要求を許可すると判定された場合、前記アクセス要求に対応するシステムコールを行う処理手段と、を有する。
【発明の効果】
【０００６】
本発明によれば、よりセキュリティを高めることができる。
【図面の簡単な説明】
【０００７】
【図１】情報処理装置の構成を示す図である。
【図２】ＯＳの構成等を示す図である。
【図３】検知時処理設定ファイル等を示す図である。
【図４】実施形態１の強制アクセス制御処理の一例を示すフローチャートである。
【図５】ポリシーの一例を示す図である。
【図６】改竄スコアの一例を示す図である。
【図７】実施形態２の強制アクセス制御処理の一例を示すフローチャートである。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態について図面に基づいて説明する。
【０００９】
＜第１の実施形態＞
本実施形態では、情報処理装置は、セキュリティポリシー（以下、ポリシーという）の原本情報を基づいて、改竄を検知し、検知した場合に予め設定したポリシー改竄検知時の処理を実行する。これによって、改竄を検知した場合でもコンピュータ資源へのアクセスを制限することができる。
（情報処理装置の構成）
本実施形態における情報処理装置１００のハードウェア構成の一例を図１（Ａ）に示す。
図１（Ａ）において情報処理装置１００は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、Ｉ／Ｆ１０４、ＨＤＤ１０５を有し、それぞれの構成はバス１０９で接続されている。
ＣＰＵ１０１は、ＲＯＭ１０２の内容に沿って情報処理装置１００内の各部の動作を制御したり、ＲＡＭ１０３にロードしたプログラム（ＯＳやアプリケーションのプログラム）を実行したりする。ＲＯＭ１０２は、読み出し専用メモリであり、ブートプログラムやファームウェア、後述する処理を実現するための各種処理プログラム、各種データを格納している。ＲＡＭ１０３は、ＣＰＵ１０１にて処理を行うために一時的にプログラムやデータを格納しておくワークメモリであり、ＣＰＵ１０１により各種処理プログラムやデータがロードされる。
Ｉ／Ｆ１０４は、ネットワーク機器やＵＳＢデバイスといった外部装置と通信するためのインタフェースであり、ネットワークを通じたデータ通信や、外部装置とデータの送受信を行う。ＨＤＤ１０５は、ＯＳ（Ｏｐｅｒａｔｉｏｎ  Ｓｙｓｔｅｍ）のプログラムや各種プログラム、又は各種データを保持するものである。
ＣＰＵ１０１が、ＲＯＭ１０２又はＨＤＤ１０５に記憶されたプログラムに基づき処理を実行することにより、図１（Ｂ）、図２（Ａ）に示すソフトウェア構成や図４、図７のフローチャートの処理が実現される。
【００１０】
次に、本実施形態における情報処理装置１００のソフトウェア構成の一例を図１（Ｂ）に示す。本実施形態における情報処理装置１００は、ＯＳ１１０と複数のアプリケーション１１１とを動作させている。また、情報処理装置１００は、ＯＳ１１０より上位に複数のアプリケーション１１１を動作させている。
アプリケーション１１１としては情報処理を実施するものであればよい。例えば、アプリケーション１１１としては文書編集アプリケーション、画像編集アプリケーション及びＷｅｂ接続アプリケーション、プリント処理アプリケーション、スキャン処理アプリケーション、コピー処理アプリケーション等がある。アプリケーション１１１は、データをＨＤＤ１０５に書き込む場合には、ＯＳ１１０を介して書込み処理を実施する。読出し処理も同様である。ここで、ＯＳ１１０側ではＨＤＤ１０５の論理アドレスを指定してＨＤＤ１０５に対する読み書きを実施する。
【００１１】
（ＯＳ１１０のソフトウェア構成）
図２（Ａ）はＯＳ１１０のソフトウェア構成の一例を図である。また、図２（Ｂ）はＯＳ１１０で使用されるプロセス情報１１７の例を示す図である。
改竄検知部１１４は、システムコール及びプロセス情報１１７を受け取った場合に、まず、システムコールから対応するポリシーをポリシーＤＢ１１３から取得する。ここで、プロセス情報１１７は例えば、図２（Ｂ）で示される。１行目の「Ｓｔａｔｕｓ」はプロセスの情報を示しており、例えば、休眠中を示す「ｓｌｅｅｐｉｎｇ」や実行中を示す「ｒｕｎｎｉｎｇ」等がある。２行目の「Ｐｉｄ」は各プロセスの識別子、３行目の「Ｃｍｄｌｉｎｅ」は、実行ファイルのパスを示している。そして、改竄検知部１１４は、取得したポリシーとポリシー原本情報１２０とを比較して、ポリシーの改竄を検知する。ここで、ポリシー原本情報１２０は、例えば、ポリシーのハッシュ値であり、ＲＯＭ１０２や暗号化したＨＤＤ１０５の一部等のセキュアな領域に保存されている。最後に、改竄検知部１１４は、検知時処理部１１２に、システムコール、ポリシー及びポリシー改竄検知結果を渡す。
検知時処理部１１２は、改竄を検知した場合に、検知時処理設定ファイル１１８に基づき、ポリシー改竄検知時処理を行う。例えば、検知時処理設定ファイル１１８は図３（Ａ）であり、「改竄検知時処理内容」は「書き戻してポリシーの場所を変更」と記載されている。これは、検知時処理部１１２が、管理者が外部サーバにバックアップしていたポリシーに書き戻して、ＯＳ１１０上のポリシーＤＢ１１３の場所を変更する処理である。より具体的には、検知時処理部１１２は、ＯＳ１１０上のポリシーＤＢ１１３の場所を「／ｐｏｌｉｃｙ＿ｄａｔａ」フォルダから「／ｕｓｒ／ｌｏｃａｌ／ｎｅｗ＿ｐｏｌｉｃｙ＿ｄａｔａ」へ変更する。一方、検知時処理部１１２は、改竄を検知しない場合は検知処理に関しては何もしない。そして、検知時処理部１１２は、改竄を検知した場合も検知しない場合もシステムコール及びポリシーをアクセス制御部１１５に渡す。
アクセス制御部１１５は、制御対象のアプリケーション１１１に対応するポリシーに基づいて、システムコールから取得した要求を制御する。要求を拒絶しない場合、アクセス制御部１１５は、システムコール処理部１１６に要求を入力する。
システムコール処理部１１６は、要求に対応したシステムコール処理を行う。
以下では、ＯＳ１１０の強制アクセス制御処理について説明する。
【００１２】
（強制アクセス制御処理）
図４は、強制アクセス制御処理の一例を示すフローチャートである。
Ｓ４０１において、改竄検知部１１４は、アプリケーション１１１から発行されたシステムコールよりＯＳ１１０への要求を取得する。
Ｓ４０２において、改竄検知部１１４は、強制アクセス制御をするか否かを判定する。改竄検知部１１４は、判定を、強制アクセス制御フラグがＯＮであるか否かに基づき行う。例えば、強制アクセス制御フラグはユーザが操作できるユーザ空間とは異なるカーネル空間に保存されており、ＯＳ１１０起動後は書き換えが困難である。改竄検知部１１４は、強制アクセス制御をする場合（Ｓ４０２においてＹＥＳ）、Ｓ４０３に進む。そして、Ｓ４０３において、改竄検知部１１４は、ポリシーＤＢ１１３から各アプリケーションのポリシーと、ポリシー原本情報１２０と、を入力し、ポリシーの改竄を検知する。より具体的には、改竄検知部１１４は、ポリシーからハッシュ値を算出し、ポリシー原本情報１２０と同一の場合は改竄なしとし、同一でない場合は改竄ありとする。一方、改竄検知部１１４は、強制アクセス制御をしない場合（Ｓ４０２においてＮＯ）、Ｓ４０８に進む。そして、Ｓ４０８において、システムコール処理部１１６は、アプリケーションからの要求を処理するシステムコール処理を行い、図４に示すフローチャートの処理を終了する。
【００１３】
Ｓ４０４において、検知時処理部１１２は、Ｓ４０３の改竄検知結果に基づき、処理を切り替える。検知時処理部１１２は、ポリシーの改竄を検知した場合（Ｓ４０４においてＹＥＳ）、Ｓ４０５に進む。そして、Ｓ４０５において、検知時処理部１１２は、検知時処理設定ファイル１１８に基づき、ポリシー改竄検知時処理を実施する。ポリシー改竄検知時処理の例は、上述したように管理者が外部サーバにバックアップしていたポリシーに書き戻して、ＯＳ１１０上のポリシーＤＢ１１３の場所を変更する処理である。なお、検知時処理設定ファイルを書きなおすことで、別の処理を実施するようにしてもよい。例えば、「システム停止」や「セーフモードで起動」等の処理を実施してもよい。ここでセーフモードとは必要最低限の機能以外は無効になっているモードであり、コンピュータ資源へのアクセスを制限できる。一方、検知時処理部１１２は、ポリシーの改竄を検知しない場合（Ｓ４０４においてＮＯ）、Ｓ４０６に進む。
Ｓ４０６において、アクセス制御部１１５は、ポリシーを入力する。
Ｓ４０７において、アクセス制御部１１５は、入力したポリシーに基づいてアプリケーション１１１がアクセスするコンピュータ資源のアクセス要求を許可するか否かを判定する。アクセス制御部１１５は、アクセス要求を許可する場合（Ｓ４０７においてＹＥＳ）、Ｓ４０８に進む。そして、Ｓ４０８において、システムコール処理部１１６は、アプリケーションからの要求を処理するシステムコール処理を行い、図４に示すフローチャートの処理を終了する。
【００１４】
例えば、アプリケーション「Ａｐｐ１」がファイル「／ｕｓｒ／ｌｏｃａｌ／ｕｓｅｒ＿ｄａｔａ／ｔｅｘｔ．ｔｘｔ」を読み込む要求を入力し、図５（Ａ）のポリシー６０１が入力された場合を考える。
ポリシー６０１の６０１ａには、どのアプリケーションのポリシーかを示すために、アプリケーションの実行ファイルのパスが記述されている。６０１ｂには、具体的なルールが記載されており、ファイル毎に一行ずつ記載されている。各行の前半はファイルのパス名を示し、後半は許可する制御情報が記載される。「ｒｅａｄ」と記載されていれば、読み取りを許可し、「ｗｒｉｔｅ」と記載されていれば、書き込みを許可する。６０１ｃに示すように、「／ｕｓｒ／ｌｏｃａｌ／ｕｓｅｒ＿ｄａｔａ」フォルダ以下にある「ｔｅｘｔ．ｔｘｔ」の読み取りは許可されているため、この要求は許可され、システムコール処理部１１６は、この要求を処理するシステムコール処理を行う。
一方、アクセス要求を許可しない場合（Ｓ４０７においてＮＯ）、アクセス制御部１１５は、要求を拒否し、図４に示すフローチャートの処理を終了する。
なお、本実施形態では、情報処理装置１００は、システムコール処理の前にポリシーの改竄検知をして、ポリシーに基づいたアクセス制御を実施した。しかしながら、情報処理装置１００は、ポリシーの改竄検知の処理のみを別途常駐プロセスとして定期的（例えば、１日毎や半日毎）に実行し、システムコール処理の前にはポリシーに基づいたアクセス制御のみを実行してもよい。この方法は、システムのセキュリティよりも処理の効率性を重視するシステムでは有効である。
【００１５】
＜第２の実施形態＞
第１の実施形態では、情報処理装置１００は、ポリシーの原本情報を基づいて、改竄を検知し、検知した場合に予め設定したポリシー改竄検知時の処理を実行した。この際に、情報処理装置１００は、設定したポリシーに対してどんな改竄を検知した場合でも同じ処理を実施した。しかしながら、情報処理装置１００は、ポリシーのどの箇所が改竄されたかや、どのアプリケーションのポリシーが改竄されたかによって改竄検知時処理内容を切り替えるようにしてもよい。例えば、ｂａｓｈ等のシェルのポリシー等、どのアプリケーションへユーザがアクセスできるかを決定できる重要なアプリケーションのポリシーである場合等である。本実施形態では、ポリシーの改竄の度合いを改竄スコアとして数値化し、合計改竄スコアに応じた処理を実行する。これによって、改竄の度合いに対応することができる。
第１の実施形態とは、（ＯＳ１１０のソフトウェア構成）の一部と（強制アクセス制御処理）のみが異なり、それ以外は同じである。以下では、（ＯＳ１１０のソフトウェア構成）の第１の実施形態からの差分と（強制アクセス制御処理）を説明する。
【００１６】
（ＯＳ１１０のソフトウェア構成）
改竄検知部１１４は、システムコール及びプロセス情報１１７を受け取った場合に、まず、システムコールから対応するポリシーをポリシーＤＢ１１３から取得する。そして、改竄検知部１１４は、取得したポリシーとポリシー原本情報１２０とに基づいて、合計改竄スコアを算出する。ここで、ポリシー原本情報１２０は、第１の実施形態と同様にポリシーのハッシュ値であり、セキュアな領域に保存されている。但し、ポリシー原本情報１２０は、ポリシー毎に２つのハッシュ値を持つ。一つは、ポリシー全体のハッシュ値である。もう一つは、コアポリシー全体のハッシュ値である。例えば、図５（Ｂ）の６０２ｂのように「／＊  ＣＯＲＥ  ＊／」と記載されているのが、コアポリシーである。コアポリシーは、ポリシー６０２において設定される。コアポリシーは、アプリケーションの基本的な処理（アプリケーションの設定ファイルへのアクセス許可や脆弱性がファイルへのアクセス拒否等）に支障をきたすのを防ぐ重要なポリシーである。コアポリシー全体はアプリケーションの実行パスと各コアポリシーとを含む６０２ａで表現される。また、合計改竄スコアは図６（Ａ）に示す改竄スコアと図６（Ｂ）に示す改竄スコアとの合計である。図６（Ａ）は改竄されたポリシーのアプリケーションがシェル（具体的にはインストールされているｂａｓｈ）だった場合は改竄スコアが２であり、シェルではない又は改竄なしの場合は改竄スコアが０である。図６（Ｂ）は改竄されたポリシーの一部にアプリケーションのコアポリシーを含む場合は２であり、コアポリシーを含まない場合は１であり、改竄なしの場合は改竄スコアが０である。ここで、改竄検知部１１４は、コアポリシーを含むか否かはポリシーから算出したコアポリシー全体のハッシュ値と原本情報のコアポリシー全体のハッシュ値とが同一か否かで判定する。例えば、シェルのポリシーが改竄されており、改竄されたポリシーにコアポリシーを含まない場合を考える。この場合は、シェルなので、改竄スコアが２、コアポリシーを含まないので、改竄スコアが１となり、合計改竄スコアが２＋１＝３となる。
最後に、改竄検知部１１４は、検知時処理部１１２に、システムコール、ポリシー及び合計改竄スコアを渡す。
検知時処理部１１２は、検知時処理設定ファイル１１８の合計改竄スコアに応じたポリシー改竄検知時処理を行う。例えば、検知時処理部１１２は、検知時処理設定ファイル１１８が図３（Ｂ）であり、合計改竄スコアが０の場合は何も処理しない。検知時処理部１１２は、合計改竄スコアが１の場合は第１の実施形態に記載した内容の同様に「書き戻してポリシーの場所を変更」の処理を実施する。検知時処理部１１２は、合計改竄スコアが２の場合は「セーフモードで起動」の処理を実施する。検知時処理部１１２は、合計改竄スコアが３以上の場合は「システム停止」の処理を実施する。そして、検知時処理部１１２は、合計改竄スコアがどんな値であってもシステムコール及びポリシーをアクセス制御部１１５に渡す。
なお、ポリシーＤＢ１１３、アクセス制御部１１５、システムコール処理部１１６及びプロセス情報１１７は第１の実施形態の各部と同様なので、説明は省略する。
【００１７】
（強制アクセス制御処理）
図７は、強制アクセス制御処理の一例を示すフローチャートである。
まず、図７のＳ４０１の処理は、第１の実施形態と同じ名称のステップと同様の処理である。
Ｓ４０２において、改竄検知部１１４は、強制アクセス制御をするか否かを判定する。第１の実施形態と同様に、改竄検知部１１４は、強制アクセス制御フラグがＯＮであるか否かで行う。改竄検知部１１４は、強制アクセス制御をする場合（Ｓ４０２においてＹＥＳ）、Ｓ４０９に進む。そして、Ｓ４０９において、改竄検知部１１４は、ポリシーＤＢ１１３から各アプリケーションのポリシーと、ポリシー原本情報１２０と、を入力し、合計改竄スコアを算出する。なお、算出方法は、上述した（ＯＳ１１０のソフトウェア構成）に説明した通りである。一方、改竄検知部１１４は、強制アクセス制御をしない場合（Ｓ４０２においてＮＯ）、Ｓ４０８に進む。そして、Ｓ４０８において、システムコール処理部１１６は、アプリケーションからの要求を処理するシステムコール処理を行い、図７に示すフローチャートの処理を終了する。
Ｓ４０９において、検知時処理部１１２は、Ｓ４０９で算出した合計改竄スコアの値に基づき、処理を切り替える。検知時処理部１１２は、合計改竄スコアが０の場合、Ｓ４０６に進む。検知時処理部１１２は、合計改竄スコアが１の場合、Ｓ４１１に進む。そして、Ｓ４１１において、検知時処理部１１２は、「書き戻してポリシーの場所を変更」の処理を実行する。検知時処理部１１２は、合計改竄スコアが２の場合、Ｓ４１２に進む。そして、Ｓ４１２において、検知時処理部１１２は、「セーフモードで起動」の処理を実行する。検知時処理部１１２は、合計改竄スコアが３以上の場合、Ｓ４１３に進む。そして、Ｓ４１３において、検知時処理部１１２は、「システム停止」の処理を実行する。
Ｓ４０６からＳ４０８までの処理は、第１の実施形態と同じ名称のステップと同様の処理である。
なお、第１の実施形態の最後で述べたように、情報処理装置１００は、ポリシーの改竄検知の処理のみを別途常駐プロセスとして定期的に実行し、システムコール処理の前にはポリシーに基づいたアクセス制御のみを実行してもよい。
【００１８】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給する。そして、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００１９】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではない。
【００２０】
以上、上述した各実施形態の処理によれば、よりセキュリティを高めることができる。
また、ＭＡＣにおいて、ポリシーの原本情報を基づいて、改竄を検知し、改竄を検知した場合でもコンピュータ資源へのアクセスを制御することができる。
【符号の説明】
【００２１】
１００  情報処理装置
１０１  ＣＰＵ
１０５  ＨＤＤ
【図１】
2018005732.tif 000003
【図２】
2018005732.tif 000004
【図３】
2018005732.tif 000005
【図４】
2018005732.tif 000006
【図５】
2018005732.tif 000007
【図６】
2018005732.tif 000008
【図７】
2018005732.tif 000009