−−−実施例1−−−
以下に本発明の実施形態について図面を用いて詳細に説明する。図1は、本実施形態のホワイトリスト管理システム10の機能構成例を示す図である。
<機能構成例>
ホワイトリスト管理システム10は、少なくとも端末100で構成される。この端末100は、メモリ110にインストールされて端末100上で動作する複数のプログラム、およびに記憶装置120に保存された複数のデータにより、必要な機能を構成している。
この端末100は、ユーザ101が利用するコンピュータ装置である。また、端末100は、メモリ110、記憶装置120、通信部130、および、入出力部131を備える。ユーザ101は、入出力部131を介して端末100を操作することとなる。
続いて、実施例1におけるホワイトリスト管理システム10の端末100が備える機能について説明する。ここでは、端末100にて備える適宜なプログラムを実行することで実現される機能について説明するものとする。
端末100においては、アクセス試行取得プログラム111、アクセス可否判定プログラム112、セキュリティレベル更新プログラム113、および、アクセス可否結果返却プログラム114が実行される。また、端末100においては、ファイルセキュリティレベル121、ドメインセキュリティレベル122、プロセスセキュリティレベル123、および、許可通信メソッド124をデータとして保持する。
上述のプログラムのうちアクセス試行取得プログラム111は、端末100にて発生する所定リソースへのアクセス試行をフックし、アクセス可否判定プログラム112に引き渡すプログラムである。アクセスとは例えば、プロセスの起動、通信、ファイルアクセスなどである。
また、アクセス可否判定プログラム112は、端末100にて発生した上述のアクセス試行に対し、ホワイトリストに基づいて許可または禁止を判定するプログラムである。
また、セキュリティレベル更新プログラム113は、上述のアクセス試行の発生に伴い、当該処理に関連するファイルおよびプロセスのセキュリティレベルを算出し、ファイルセキュリティレベル121およびプロセスセキュリティレベル123を更新するプログラムである。
また、アクセス可否結果返却プログラム114は、上述のアクセス試行の許可または禁止の判定に基づき処理が行われるよう、フック元に処理を返すプログラムである。
また、端末100が保持するデータのうちファイルセキュリティレベル121は、端末
100に保存された各ファイルに対して付与された、アクセス可否判定の基準となるセキュリティレベルの一覧である。このデータの詳細については後述する(以下同様)。
また、ドメインセキュリティレベル122は、ドメインに対して付与された、アクセス可否判定の基準となるセキュリティレベルの一覧である。
また、プロセスセキュリティレベル123は、端末100にて実行中の各プロセスに対して付与された、アクセス可否判定の基準となるセキュリティレベルの一覧である。
また、許可通信メソッド124は、アクセス可否判定の基準となる、ドメインのセキュリティレベルと許可される通信メソッドとの対応関係の一覧である。
これらの情報の詳細は、テーブル300〜600に記載されている。これらのテーブルの内容については、図3〜図6を用いて後述する。
<ハードウェア構成>
続いて、実施例1における端末100のハードウェア構成について説明する。図2は、実施例1における端末100のハードウェアの構成例を示す図である。
図2にて例示する端末100は、CPU201、メモリ202、記憶装置203、通信インターフェイス204、入力装置205、出力装置206、およびバス207から構成される。
このうちCPU201は中央演算装置であり、メモリ202(または記憶装置203)に保持しているプログラムを実行することで、必要な機能を実装するものとなる。
また、メモリ202は、上述のCPU201が処理を実行する際に利用する主記憶装置であり、RAMなどの揮発性記憶素子で構成される。
また、記憶装置203は、CPU201へ提供する入力データやCPU201から出力される出力データを補完するための補助記憶装置であり、ハードディスクドライブやSSD(Solid State Drive)など適宜な不揮発性記憶素子で構成される。
また、通信装置204は、端末100が外部装置との通信を行うために用いる通信装置であり、ネットワークインターフェイスカード(NIC:Network Interface Card)などで構成される。
また、入力装置205は、操作者からの入力を受け付けるインターフェイスであり、キーボード、タッチパネル、カードリーダ、音声入力装置などで構成される。
また、出力装置206は、操作者に対してデータの出力を行うインターフェイスであり、ディスプレイ、スピーカー、プリンタなどで構成される。
また、バス207は、CPU201、メモリ202、記憶装置203、通信インターフェイス204、入力装置205、および、出力装置206を接続する通信路である。
<データ構成例>
次に、実施例1におけるホワイトリスト管理システム10の端末100が利用するデータについて、その構成例を説明する。
図3は、実施例1におけるファイルセキュリティレベルテーブル300の構成例を示す
図である。ファイルセキュリティレベルテーブル300は、ファイルID301、ファイルパス302、ファイル信頼レベル303、ファイル機密レベル304、ファイル保護レベル305、ファイルハッシュ値306をデータ項目として持つ。
このうちファイルID301は、記憶装置203に保存されたファイルに対してユニークに割り当てられたIDである。また、ファイルパス302は、当該ファイルの記憶装置上での保存箇所およびファイル名を特定する情報である。
また、ファイル信頼レベル303は、当該ファイルに含まれるデータが、悪性コードや不正情報などを含まないことの確実性を示す情報である。また、ファイル機密レベル304は、当該ファイルが含むデータの機密性を示す情報である。また、ファイル保護レベル305は、当該ファイルを更新するために必要な権限のレベルを示す情報である。
また、ファイルハッシュ値306は、当該ファイルデータを適宜なハッシュ関数によりハッシュ化したものであり、ファイルを一意に特定するための情報である。
なお、ファイル信頼レベル303、ファイル機密レベル304、および、ファイル保護レベル305の総称を、ファイルのセキュリティレベルとする。
図4は、実施例1におけるドメインセキュリティレベルテーブル400の構成例を示す図である。ドメインセキュリティレベルテーブル400は、ドメインID401、ドメイン名402、ドメイン信頼レベル403、ドメイン機密レベル404、ドメイン保護レベル405をデータ項目として持つ。
このうちドメインID401は、ドメインセキュリティテーブル400に登録されたドメインに対しユニークに割り当てられたIDである。また、ドメイン名402は、当該ドメインを表す文字列である。
また、ドメイン信頼レベル403は、当該ドメインからダウンロード可能なデータが、悪性コードや不正情報などを含まないことの確実性を示す情報である。また、ドメイン機密レベル404は、当該ドメインからダウンロード可能なデータの機密性を示す情報である。また、ドメイン保護レベル305は、当該ドメインとの通信時に適用すべき制限の程度を示す情報である。
なお、ドメイン信頼レベル403、ドメイン機密レベル404、および、ドメイン保護レベル405の総称を、ドメインのセキュリティレベルとする。
図5は、実施例1におけるプロセスセキュリティレベルテーブル500の構成例を示す図である。プロセスセキュリティレベルテーブル500は、プロセスID501、プロセス信頼レベル502、プロセス機密レベル503をデータ項目として持つ。
このうちプロセスID501は、メモリ202上で動作しているプロセスに対しユニークに割り当てられたIDである。
また、プロセス信頼レベル502は、当該プロセスが、悪性コードなどを含まないことの確実性を示す情報である。また、プロセス機密レベル503は、当該プロセスがメモリ202上に保持するデータの機密性を示す情報である。
なお、プロセス信頼レベル502およびプロセス機密レベル503の総称を、プロセスのセキュリティレベルとする。
図6は、実施例1における許可通信メソッドテーブル600の構成例を示す図である。許可通信メソッドテーブル600は、ドメイン保護レベル601、および、許可通信メソッド602をデータ項目として持つ。
このうちドメイン保護レベル601は、上述のドメインセキュリティレベルテーブル40におけるドメイン保護レベル405の値に対応する、該当ドメインとの通信時に適用すべき制限の程度を示す情報である。
また、許可通信メソッドは、該当ドメインとの通信時に適用される制限の内容であり、本実施例では上述のドメイン保護レベル601に対し許可される通信メソッドが格納される。
<フロー例:アクセス制御処理>
以下、本実施形態におけるホワイトリスト管理方法の実際手順について図に基づき説明する。以下で説明するホワイトリスト管理方法に対応する各種動作は、ホワイトリスト管理システム10における端末100がメモリ等に読み出して実行するプログラムによって実現される。そして、このプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。
ここではまず、アクセス試行発生時の処理フロー例について説明する。図7は、実施例1におけるアクセス制御処理の例を示すフロー図である。アクセス試行発生時の処理の概要を、図7に基づき説明する。
この場合、端末100のアクセス試行取得プログラム111は、端末100にて生じたプロセスによるアクセス試行をフックし、アクセス制御処理700を開始する。フックとは、当該プロセスの実行に伴う、ファイルやドメイン等のリソースへのアクセスを一旦回避してプロセス遂行を一次停止することである。
続いて、アクセス可否判定プログラム112は、上述のアクセス試行の種別を判別する(ステップ701)。当該アクセス試行の内容がプロセスの起動に関するものであれば(ステップ701:Yes)、アクセス可否判定プログラム112は、プロセス制御処理(ステップ705)に処理を進める。他方、それ以外の場合(ステップ701:No)、アクセス可否判定プログラム112は、処理をステップ702に進める。
続いて、アクセス可否判定プログラム112は、上述のアクセス試行の種別を判別し(ステップ702)、当該アクセス試行の内容が通信に関するものであれば(ステップ702:Yes)、通信制御処理(ステップ706)に処理を進める。他方、それ以外の場合(ステップ702:No)、アクセス可否判定プログラム112は、処理をステップ703に進める。
また、アクセス可否判定プログラム112は、上述のアクセス試行の種別を判別し(ステップ703)、当該アクセス試行の内容がファイル読み取りに関するものであれば(ステップ703:Yes)、処理をファイル読み取り制御処理(ステップ707)に進める。それ以外の場合(ステップ703:No)、アクセス可否判定プログラム112は、処理をステップ704に進める。
また、アクセス可否判定プログラム112は、上述のアクセス試行の種別を判別し(ステップ704)、当該アクセス試行の内容がファイル書き込みに関するものであれば(ステップ704:Yes)、処理をファイル書き込み制御処理(ステップ708)に進める
。それ以外の場合(ステップ704:No)、アクセス可否判定プログラム112は、処理をステップ709に進める。
ここで上述のプロセス制御処理(ステップ705)の概要について説明する。この場合、アクセス可否判定プログラム112は、上述のプロセス起動に伴い、当該プロセス起動を許可して、セキュリティレベル更新プログラム113およびアクセス可否結果返却プログラム114に結果を伝達する。また、セキュリティレベル更新プログラム113は、ファイルセキュリティレベルテーブル300を参照し、当該プロセスに関連するファイルのファイル信頼レベル303、ファイル機密レベル304、ファイル保護レベル305を取得して、セキュリティレベル更新プログラム113に伝達する。また、セキュリティレベル更新プログラム113は、伝達された上述の情報に基づき、当該プロセスのプロセス信頼レベル502、プロセス機密レベル503を算出し、プロセスセキュリティレベルテーブル500を更新する。また、アクセス可否結果返却プログラム114は、伝達された情報に基づき、フック元に処理を返す。本ステップの詳細は、図8を用いて後述する。
また、上述の通信制御処理(ステップ706)の概要について説明する。この場合、アクセス可否判定プログラム112は、通信に関するアクセス試行に伴い、プロセスセキュリティレベルテーブル500を参照し、当該通信を試行したプロセスのプロセス信頼レベル502およびプロセス機密レベル503を取得する。またアクセス可否判定プログラム112は、ドメインセキュリティレベルテーブル400を参照し、通信対象ドメインのドメイン信頼レベル403、ドメイン機密レベル404、ドメイン保護レベル405を取得する。アクセス可否判定プログラム112は、これら取得した情報に基づき、当該プロセスによる上述のドメインへの通信可否を判定し、セキュリティレベル更新プログラム113およびアクセス可否結果返却プログラム114に結果を伝達する。セキュリティレベル更新プログラム113は、伝達された情報に基づき、当該プロセスのプロセス信頼レベル502、プロセス機密レベル503を算出し、プロセスセキュリティレベルテーブル500を更新する。アクセス可否結果返却プログラム114は、伝達された情報に基づき、フック元に処理を返す。本ステップの詳細は、図10を用いて後述する。
また、上述のファイル読み取り制御処理(ステップ707)の概要について説明する。この場合、アクセス可否判定プログラム112は、ファイル読み取り試行に伴い、プロセスセキュリティレベルテーブル500を参照し、ファイル読み取りに関するアクセス試行を行ったプロセスのプロセス信頼レベル502およびプロセス機密レベル503を取得する。また、アクセス可否判定プログラム112は、ファイルセキュリティレベルテーブル300を参照し、読み取り対象ファイルのファイル信頼レベル303、ファイル機密レベル304、ファイル保護レベル305を取得する。アクセス可否判定プログラム112は、これら取得した情報に基づき、当該プロセスによる上述のファイルへの読み取り可否を判定し、セキュリティレベル更新プログラム113およびアクセス可否結果返却プログラム114に結果を伝達する。セキュリティレベル更新プログラム113は、伝達された情報に基づき、当該プロセスのプロセス信頼レベル502、プロセス機密レベル503を算出し、プロセスセキュリティレベル500を更新する。アクセス可否結果返却プログラム114は、伝達された情報に基づき、フック元に処理を返す。本ステップの詳細は、図12を用いて後述する。
また、上述のファイル書き込み制御処理(ステップ708)の概要について説明する。この場合、アクセス可否判定プログラム112は、ファイル書き込みに関するアクセス試行に伴い、プロセスセキュリティレベルテーブル500を参照し、ファイル読み取りを試行したプロセスのプロセス信頼レベル502およびプロセス機密レベル503を取得する。また、アクセス可否判定プログラム112は、ファイルセキュリティレベルテーブル300を参照し、読み取り対象ファイルのファイル信頼レベル303、ファイル機密レベル
304、ファイル保護レベル305を取得する。アクセス可否判定プログラム112は、これら取得した情報に基づき、当該プロセスによる上述のファイルへの書き込み可否を判定し、セキュリティレベル更新プログラム113およびアクセス可否結果返却プログラム114に結果を伝達する。セキュリティレベル更新プログラム113は、伝達された情報に基づき、上述のファイルのファイル信頼レベル303、ファイル機密レベル304、ファイル保護レベル305を算出し、ファイルセキュリティレベル300を更新する。アクセス可否結果返却プログラム114は、伝達された情報に基づき、フック元に処理を返す。本ステップの詳細は、図14を用いて後述する。
また、上述のアクセス許可処理(ステップ709)について説明する。この場合、アクセス可否判定プログラム112は、上述のアクセス試行を許可し、許可したことをアクセス可否結果返却プログラム114に伝達する。アクセス可否結果返却プログラム114は、伝達された情報に基づき、フック元に処理を返す。
<フロー例:プロセス制御処理>
図8は、実施例1におけるプロセス制御処理の例を示すフロー図である。以下にてプロセス制御処理(ステップ705)について図8に基づき説明する。
この場合、アクセス可否判定プログラム112は、アクセス試行取得プログラム111から伝達された情報に基づき、プロセス起動処理を実行しようとしているプロセスのIDを得る。また、アクセス可否判定プログラム112は、プロセスセキュリティレベルテーブル500を参照し、プロセスID501の値が上述のように得たプロセスのIDと一致するレコードを検索して、当該レコードのプロセス信頼レベル502およびプロセス機密レベル503を取得する(ステップ801)。
次に、アクセス可否判定プログラム112は、アクセス試行取得プログラム111から伝達された情報に基づき、プロセス起動処理において起動元となる実行ファイルのパスを得る。また、アクセス可否判定プログラム112は、ファイルセキュリティレベルテーブル300を参照し、ファイルパス302の値が上述のように得た実行ファイルのパスと一致するレコードを検索して、当該レコードのファイル信頼レベル303、ファイル機密レベル304、ファイル保護レベル305を取得する(ステップ802)。
次に、アクセス可否判定プログラム112は、アクセス試行取得プログラム111から伝達された情報に基づき、プロセス起動処理に伴い読み込まれるライブラリファイル等の全てのファイルのパスを得て、当該ファイルのそれぞれに対し、ステップ804を実行する。(ステップ803)。
アクセス可否判定プログラム112は、ファイルセキュリティレベルテーブル300を参照し、ファイルパス302の値が、ステップ803で対象としたファイルのパスと一致するレコードを検索して、当該レコードのファイル信頼レベル303、ファイル機密レベル304、ファイル保護レベル305を取得する(ステップ804)。
また、アクセス可否判定プログラム112は、上述のステップ801〜ステップ804で取得した情報をセキュリティレベル更新プログラムに伝達する。セキュリティレベル更新プログラム113は、伝達された情報に基づき、新しく起動されるプロセスのプロセス信頼レベル502およびプロセス機密レベル503を算出して、プロセスセキュリティレベルテーブル500に追加する(ステップ805)。本ステップ(ステップ805)の詳細は、図9を用いて後述する。
<フロー例:プロセス起動時プロセスセキュリティレベル更新処理>
ここで、図8のフローにおけるプロセス起動時プロセスセキュリティレベル更新処理(ステップ805)の詳細について説明する。図9は、実施例1におけるプロセス起動時のプロセスセキュリティレベル更新処理の例を示すフロー図である。
この場合、セキュリティレベル更新プログラム113は、アクセス可否判定プログラム112から伝達された情報が示す、実行元ファイルおよびプロセス起動時に読み込む各ファイルの、ファイル信頼レベル303およびプロセス信頼レベル502の各間での最小値を算出し、今次起動される上述のプロセスのプロセス信頼レベル502と特定する。また、セキュリティレベル更新プログラム113は、同様に、アクセス可否判定プログラム112から伝達された情報が示す、実行元ファイルおよびプロセス起動時に読み込む各ファイルの、ファイル機密レベル304およびプロセス機密レベル503の各間での最大値を算出し、今次起動される上述のプロセスのプロセス機密レベル503と特定する(ステップ901)。
また、セキュリティレベル更新プログラム113は、プロセスセキュリティレベルテーブル500に新規のレコードを追加し、この新規レコードのプロセスID501に、上述の今次起動されるプロセスのIDを、また新規レコードのプロセス信頼レベル502およびプロセス機密レベル503に、上述のステップ901にて算出した値を格納する(ステップ902)。
<フロー例:通信制御処理>
図10は、実施例1における通信制御処理の例を示すフロー図である。以下にて通信制御処理(ステップ706)について図10に基づき説明する。
この場合、アクセス可否判定プログラム112は、アクセス試行取得プログラム111から伝達された情報に基づき、通信処理を実行しようとしているプロセスのIDを得る。また、アクセス可否判定プログラム112は、プロセスセキュリティレベルテーブル500を参照し、プロセスID501の値が、上述のように得た当該プロセスのIDと一致するレコードを検索して、当該レコードのプロセス信頼レベル502およびプロセス機密レベル503を取得する(ステップ1001)。
続いてアクセス可否判定プログラム112は、アクセス試行取得プログラム111から伝達された情報に基づき、通信処理における通信先のドメイン名を得る。また、アクセス可否判定プログラム112は、ドメインセキュリティレベルテーブル400を参照し、ドメイン名402の値が、上述のように得たドメイン名と一致するレコードを検索して、当該レコードのドメイン信頼レベル403、ドメイン機密レベル404、ドメイン保護レベル405を取得する(ステップ1002)。
次に、アクセス可否判定プログラム112は、上述のステップ1001で取得したプロセス機密レベル503を参照し、その値が0より大きいか否かを判定する(ステップ1003)。この判定の結果、値が0より大きい場合(ステップ1003:Yes)、アクセス可否判定プログラム112は、処理をステップ1004に進める。それ以外の場合(ステップ1003:No)、アクセス可否判定プログラム112は、処理をステップ1006に進める。
次に、アクセス可否判定プログラム112は、許可通信メソッドテーブル600を参照し、ドメイン保護レベル601が、上述のステップ1002で取得したドメイン保護レベル405と一致するレコードを検索して、許可通信メソッド602を取得する(ステップ1004)。
また、アクセス可否判定プログラム112は、アクセス試行取得プログラム111から伝達された通信に関するアクセス試行に関する情報と、上述のステップ1004で取得した許可通信メソッド602とを比較し、当該通信のアクセス試行のメソッドが、上述の許可通信メソッド602に含まれるか否かを判定する(ステップ1005)。
この判定の結果、含まれる場合(ステップ1005:Yes)、アクセス可否判定プログラム112は、処理をステップ1006に進める。それ以外の場合(ステップ1005:No)、アクセス可否判定プログラム112は、処理をステップ1007に進める。
上述のステップ1003または、ステップ1005で「Yes」となったことに続いて、アクセス可否判定プログラム112は、当該プロセスによる通信を許可し(ステップ1006)、許可したことをアクセス可否結果返却プログラム114に伝達する。この場合のアクセス可否結果返却プログラム114は、伝達された情報に基づき、フック元に処理を返す。また、アクセス可否判定プログラム112は、上述のステップ1001〜1002にて取得した情報をセキュリティレベル更新プログラム113に伝達する。
一方、上述のステップ1005で「No」の判定となったことに続いて、アクセス可否判定プログラム112は、当該プロセスによる通信を禁止し、禁止したことをアクセス可否結果返却プログラム114に伝達する(ステップ1007)。この場合のアクセス可否結果返却プログラム114は、伝達された情報に基づき、フック元に処理を返す。
続いて、セキュリティレベル更新プログラム113は、アクセス可否判定プログラム112から伝達された情報に基づき、当該プロセスのプロセス信頼レベル502およびプロセス機密レベル503を算出して、プロセスセキュリティレベルテーブル500を更新する(ステップ1008)。本ステップの詳細は、図11を用いて後述する。
<フロー例:通信時のプロセスセキュリティレベル更新処理>
次に、上述の図10のフローにおけるステップ1008の処理、すなわち通信時プロセスセキュリティレベル更新処理の詳細について、図11に基づき説明する。図11は、実施例1における通信時プロセスセキュリティレベル更新処理の例を示すフロー図である。
この場合、セキュリティレベル更新プログラム113は、アクセス可否判定プログラム112から伝達された、プロセス信頼レベル502とドメイン信頼レベル403とを比較する(ステップ1101)。この比較の結果、プロセス信頼レベル502がドメイン信頼レベル403より大きい場合(ステップ1101:Yes)、セキュリティレベル更新プログラム113は、処理をステップ1102に進める。それ以外の場合(ステップ1101:No)、セキュリティレベル更新プログラム113は、処理をステップ1103に進める。
次に、セキュリティレベル更新プログラム113は、プロセスセキュリティレベルテーブル500を参照し、プロセスID501の値が、当該プロセスのIDに一致するレコードを検索して、当該レコードのプロセス信頼レベル502の値を、上述のドメイン信頼レベル403の値で更新する(ステップ1102)
また、セキュリティレベル更新プログラム113は、プロセス機密レベル503とドメイン機密レベル404とを比較する(ステップ1103)。この比較の結果、プロセス機密レベル503がドメイン機密レベル404より小さい場合(ステップ1103:Yes)、セキュリティレベル更新プログラム113は、処理をステップ1104に進める。それ以外の場合(ステップ1103:No)、セキュリティレベル更新プログラム113は、本フローを終了する。
他方、セキュリティレベル更新プログラム113は、プロセスセキュリティレベルテーブル500を参照し、プロセスID501の値が当該プロセスのIDと一致するレコードを検索して、当該レコードのプロセス機密レベル503の値を、上述のドメイン機密レベル404の値で更新する(ステップ1104)。
<フロー例:ファイル読み取り制御処理>
続いて、図7のフローにおけるファイル読み取り制御処理(ステップ707)の詳細について、図12に基づき説明する。図12は、実施例1におけるファイル読み取り制御処理の例を示すフロー図である。
この場合、アクセス可否判定プログラム112は、アクセス試行取得プログラム111から伝達された情報に基づき、ファイル読み取り処理を実行しようとしているプロセスのIDを得る。また、アクセス可否判定プログラム112は、プロセスセキュリティレベルテーブル500を参照し、プロセスID501の値が、上述のように得たプロセスのIDと一致するレコードを検索して、当該レコードのプロセス信頼レベル502およびプロセス機密レベル503を取得する(ステップ1201)。
続いて、アクセス可否判定プログラム112は、アクセス試行取得プログラム111から伝達された情報に基づき、ファイル読み取り処理における対象ファイルのパスを得る。また、アクセス可否判定プログラム112は、ファイルセキュリティレベルテーブル300を参照し、ファイルパス302の値が、上述で得た対象ファイルのパスと一致するレコードを検索して、当該レコードのファイル信頼レベル303、ファイル機密レベル304、ファイル保護レベル305を取得する(ステップ1202)。
また、アクセス可否判定プログラム112は、上述のプロセス信頼レベル503とファイル機密レベル304とを比較する(ステップ1203)。この比較の結果、プロセス信頼レベル503がファイル機密レベル304と等しいか又はより大きい場合(ステップ1203:Yes)、アクセス可否判定プログラム112は、処理をステップ1204に進める。それ以外の場合(ステップ1203:No)、アクセス可否判定プログラム112は、処理をステップ1205に進める。
次に、上述のステップ1203で「Yes」となったことに続き、アクセス可否判定プログラム112は、上述のプロセスによるファイル読み取りを許可し、許可したことをアクセス可否結果返却プログラム114に伝達する(ステップ1204)。この場合のアクセス可否結果返却プログラム114は、伝達された情報に基づき、フック元に処理を返す。また、アクセス可否判定プログラム112は、前記ステップ1201および1202にて取得した情報をセキュリティレベル更新プログラム113に伝達する。
一方、上述のステップ1203で「No」となったことに続き、アクセス可否判定プログラム112は、上述のプロセスによるファイル読み取りを禁止し、禁止したことをアクセス可否結果返却プログラム114に伝達する(ステップ1205)。この場合のアクセス可否結果返却プログラム114は、伝達された情報に基づき、フック元に処理を返す。
また、セキュリティレベル更新プログラム113は、アクセス可否判定プログラム112から伝達された情報に基づき、上述のプロセスのプロセス信頼レベル502およびプロセス機密レベル503を算出して、プロセスセキュリティレベルテーブル500を更新する(ステップ1206)。本ステップの詳細は、図13を用いて後述する。
<フロー例:ファイル読み取り時のプロセスセキュリティレベル更新処理>
続いて、上述の図12のフローにおけるステップ1206、すなわちファイル読み取り
時プロセスセキュリティレベル更新処理の詳細について、図13に基づき説明する。
図13は、実施例1におけるファイル読み取り時のプロセスセキュリティレベル更新処理の例を示すフロー図である。この場合、セキュリティレベル更新プログラム113は、アクセス可否判定プログラム112から伝達された、プロセス信頼レベル502とファイル信頼レベル303とを比較する(ステップ1301)。この比較の結果、プロセス信頼レベル502がファイル信頼レベル303より大きい場合(ステップ1301:Yes)、セキュリティレベル更新プログラム113は、処理をステップ1302に進める。他方、それ以外の場合(ステップ1301:No)、セキュリティレベル更新プログラム113は、処理をステップ1303に進める。
ステップ1302におけるセキュリティレベル更新プログラム113は、プロセスセキュリティレベルテーブル500を参照し、プロセスID501の値が、上述のプロセスのIDに一致するレコードを検索して、当該レコードのプロセス信頼レベル502の値を、上述のファイル信頼レベル303の値で更新する(ステップ1302)
また、セキュリティレベル更新プログラム113は、プロセス機密レベル503とファイル機密レベル304とを比較する(ステップ1303)。この比較の結果、プロセス機密レベル503がファイル機密レベル304より小さい場合(ステップ1303:Yes)、セキュリティレベル更新プログラム113は、ステップ1304の処理を行う。それ以外の場合(ステップ1303:No)、セキュリティレベル更新プログラム113は、フローを終了する。
ステップ1304におけるセキュリティレベル更新プログラム113は、プロセスセキュリティレベルテーブル500を参照し、プロセスID501の値が、上述のプロセスのIDと一致するレコードを検索して、当該レコードのプロセス機密レベル503の値を、上述のファイル機密レベル304の値で更新する(ステップ1304)。
<フロー例:ファイル書き込み制御処理>
続いて、図7のフローにおけるステップ708、すなわちファイル書き込み制御の詳細について図14に基づき説明する。図14は、実施例1におけるファイル書き込み制御処理の例を示すフロー図である。
この場合、アクセス可否判定プログラム112は、アクセス試行取得プログラム111から伝達された情報に基づき、ファイル書き込み処理を実行しようとしているプロセスのIDを得る。また、アクセス可否判定プログラム112は、プロセスセキュリティレベルテーブル500を参照し、プロセスID501の値が、上述のように得たプロセスのIDと一致するレコードを検索して、当該レコードのプロセス信頼レベル502およびプロセス機密レベル503を取得する(ステップ1401)。
次に、アクセス可否判定プログラム112は、アクセス試行取得プログラム111から伝達された情報に基づき、ファイル書き込み処理における対象ファイルのパスを得る。また、アクセス可否判定プログラム112は、ファイルセキュリティレベルテーブル300を参照し、ファイルパス302の値が、上述の対象ファイルのパスと一致するレコードを検索して、当該レコードのファイル信頼レベル303、ファイル機密レベル304、ファイル保護レベル305を取得する(ステップ1402)。
続いて、アクセス可否判定プログラム112は、上述のプロセス信頼レベル503とファイル保護レベル305とを比較する(ステップ1403)。この比較の結果、プロセス信頼レベル503がファイル保護レベル305と等しいか又はより大きい場合(ステップ1403:Yes)、アクセス可否判定プログラム112は、処理をステップ1404に
進める。他方、それ以外の場合(ステップ1403:No)、アクセス可否判定プログラム112は、処理をステップ1405に進める。
ステップ1404におけるアクセス可否判定プログラム112は、上述のプロセスによるファイル書き込みを許可し、許可したことをアクセス可否結果返却プログラム114に伝達する(ステップ1404)。この場合のアクセス可否結果返却プログラム114は、伝達された情報に基づき、フック元に処理を返す。また、アクセス可否判定プログラム112は、上述のステップ1401および1402にて取得した情報をセキュリティレベル更新プログラム113に伝達する。
また、ステップ1405におけるアクセス可否判定プログラム112は、上述のプロセスによるファイル書き込みを禁止し、禁止したことをアクセス可否結果返却プログラム114に伝達する(ステップ1405)。この場合のアクセス可否結果返却プログラム114は、伝達された情報に基づき、フック元に処理を返す。
また、セキュリティレベル更新プログラム113は、アクセス可否判定プログラム112から伝達された情報に基づき、上述の対象ファイルのファイル信頼レベル303およびファイル機密レベル304を算出して、ファイルセキュリティレベルテーブル300を更新する(ステップ1406)。本ステップの詳細は、図15を用いて後述する。
<フロー例:ファイル書き込み時のファイルセキュリティレベル更新処理>
続いて、上述の図14のフローにおけるステップ1406、すなわちファイル書き込み時ファイルセキュリティレベル更新処理の詳細について、図15に基づき説明する。図15は、実施例1におけるファイル書き込み時のファイルセキュリティレベル更新処理の例を示すフロー図である。
この場合、セキュリティレベル更新プログラム113は、アクセス可否判定プログラム112から伝達された、プロセス信頼レベル502とファイル信頼レベル303とを比較する(ステップ1501)。この比較の結果、プロセス信頼レベル502がファイル信頼レベル303より小さい場合(ステップ1501:Yes)、セキュリティレベル更新プログラム113は、処理をステップ1502に進める。他方、それ以外の場合(ステップ1501:No)、セキュリティレベル更新プログラム113は、処理をステップ1503に進める。
ステップ1502におけるセキュリティレベル更新プログラム113は、ファイルセキュリティレベルテーブル300を参照し、ファイルパス302の値が、上述の対象ファイルのパスに一致するレコードを検索して、当該レコードのファイル信頼レベル303の値を、上述のプロセス信頼レベル502の値で更新する(ステップ1502)
また、ステップ1503におけるセキュリティレベル更新プログラム113は、プロセス機密レベル503とファイル機密レベル304とを比較する(ステップ1503)。この比較の結果、プロセス機密レベル503がファイル機密レベル304より大きい場合(ステップ1503:Yes)、セキュリティレベル更新プログラム113は、処理をステップ1504に進める。他方、それ以外の場合(ステップ1503:No)、セキュリティレベル更新プログラム113はフローを終了する。
ステップ1504におけるセキュリティレベル更新プログラム113は、ファイルセキュリティレベルテーブル300を参照し、ファイルパス302の値が、上述の対象ファイルのパスと一致するレコードを検索して、当該レコードのファイル機密レベル304の値を、上述のプロセス機密レベル503の値で更新する(ステップ1504)。
以上で説明した実施例1におけるホワイトリスト管理システム10は、プロセスによるプロセス起動、通信およびファイルアクセス等の試行に伴い、ファイル、ドメイン、プロセスに設定されたセキュリティレベルに基づいて当該処理の可否の判定およびセキュリティレベルの更新を行い、ホワイトリストのメンテナンスが不要なアクセス制御を可能とするものである。
−−−実施例2−−−
上述の実施例1においてセキュリティレベルは自動算出される形態を示した。しかしながら、セキュリティポリシーの変更や、脅威情報の更新などに伴い、システム管理者がセキュリティレベルを補正する機会も想定される。実施例1で述べたように、ファイル、ドメイン、プロセスのセキュリティレベルは、関連するファイル、ドメイン、プロセスのセキュリティレベルに基づいて算出されるため、これらの間の整合性を維持するためには、補正対象のセキュリティレベルに基づいて算出された他の全てのセキュリティレベルも補正する必要がある。このため、補正すべきセキュリティレベルの対象が膨大になり、システム管理者が全てを把握できない、運用負担が増す、といった問題が生じる。
そこでこうした問題を解決する手段として、セキュリティレベル算出に伴い、ファイル、ドメイン、プロセスのセキュリティレベル間の依存関係を保存しておき、後にセキュリティレベル補正が必要になった場合に、この依存関係に基づいて関連する全てのセキュリティレベルを再算出する方法が考えられる。以下では、この方法を実施するための形態の一例を、実施例2として説明する。
<機能構成例>
図16は、実施例2におけるホワイトリスト管理システム10の機能構成例を示す図である。実施例2におけるホワイトリスト管理システム10は、端末100_1〜Nにインストールされた、端末100_1〜N上で動作する複数のプログラムおよび端末100_1〜Nに保存された複数のデータ、サーバ140、管理端末150、ネットワーク160から構成される。こうした、端末100_1〜N、サーバ140、および、管理端末150は、ネットワーク160を介して通信可能に接続されている。
また、端末100_1〜Nは、ユーザ101_1〜Nが利用するコンピュータ装置である。この端末100_1〜Nは、メモリ110、記憶装置120、通信部130、入出力部131を備える。この端末100_1〜Nのユーザ101_1〜Nは、入出力部131を介して端末100_1〜Nを操作する。
また、サーバ140は、メモリ141、通信部142を備えるサーバ装置である。また、管理端末150は、通信部151、入出力部152を備える情報処理端末である。システム管理者153は、入出力部152を介して管理端末150を操作し、ネットワーク160を経由してサーバ140を操作する。
続いて、実施例2におけるホワイトリスト管理システム10が備える機能について説明する。ここでは、端末100_1〜Nおよびサーバ140にて備える適宜なプログラムを実行することで実現される機能について説明するものとする。
端末100_1〜Nにおいては、アクセス試行取得プログラム111、アクセス可否判定プログラム112、セキュリティレベル更新プログラム113、アクセス可否結果返却プログラム114、セキュリティレベル依存関係更新プログラム115、および、セキュリティレベル補正プログラム116が実行される。
また、端末100_1〜Nにおいては、ファイルセキュリティレベル121、ドメイン
セキュリティレベル122、プロセスセキュリティレベル123、許可通信メソッド124、ファイルセキュリティレベル依存関係125、プロセスセキュリティレベル依存関係126、および、定数ファイルセキュリティレベル127をデータとして保持する。
また、サーバ140においては、セキュリティレベル補正指示プログラム143および管理画面表示プログラム144が実行される。
上述のうち、アクセス試行取得プログラム111、アクセス可否判定プログラム112、セキュリティレベル更新プログラム113、アクセス可否結果返却プログラム114は、上述の実施例1と同様のプログラムである。
一方、セキュリティレベル依存関係更新プログラム115は、上述のセキュリティレベル更新プログラム113によるファイルセキュリティレベル121およびプロセスセキュリティレベル123の更新に伴い、ファイルセキュリティレベル依存関係125およびプロセスセキュリティレベル依存関係126を更新するプログラムである。
また、セキュリティレベル補正プログラム116は、セキュリティレベル補正指示プログラム143からの指示を受け、ファイルセキュリティレベル依存関係125およびプロセスセキュリティレベル依存関係126に基づき、ファイルセキュリティレベル121およびプロセスセキュリティレベル123を更新するプログラムである。
なお、ファイルセキュリティレベル121、ドメインセキュリティレベル122、プロセスセキュリティレベル123、および、許可通信メソッド124は、上述の実施例1と同様の情報である。
一方、ファイルセキュリティレベル依存関係125は、端末100_1〜Nに保存されたファイルに対し、各ファイルのセキュリティレベルの算出に用いられたファイル、ドメインのIDを格納した一覧である。また、プロセスセキュリティレベル依存関係126は、端末100_1〜N上で動作中のプロセスに対し、各プロセスのセキュリティレベルの算出に用いられたファイル、ドメインのIDを格納した一覧である。また、定数ファイルセキュリティレベル127は、システム管理者153が入力したファイルセキュリティレベルの一覧である。これらの情報の詳細は、図17〜図19を用いて後述する。
また、セキュリティレベル補正指示プログラム143は、システム管理者153からの入力に従い、セキュリティレベル補正プログラム116に指示を送信するプログラムである。また、管理画面表示プログラム144は、システム管理者153がサーバ140を操作するにあたり、操作用の画面を表示し、入出力を支援するプログラムである。
<データ構成例>
次に、実施例2におけるホワイトリスト管理システム10が利用するデータのうち、上述の実施例1との差分について、その構成例を説明する。
図17は、実施例2におけるファイルセキュリティレベル依存関係テーブル2500の構成例を示す図である。ファイルセキュリティレベル依存関係テーブル2500は、ファイルID2501、ファイル信頼レベル依存先2502、ファイル機密レベル依存先2503、および。ファイル保護レベル依存先2504をデータ項目として持つ。
このうちファイルIDは、端末100の記憶装置203に保存されたファイルに対してユニークに割り当て得られたIDであり、ファイルセキュリティレベルテーブル300におけるファイルID301に対応する。
また、ファイル信頼レベル依存先2502は、上述のファイルのファイル信頼レベル303の値の根拠となったファイルおよびドメインのIDである。また、ファイル機密レベル依存先2503は、上述のファイルのファイル機密レベル304の値の根拠となったファイルおよびドメインのIDである。また、ファイル保護レベル依存先2504は、上述のファイルのファイル機密レベル305の値の根拠となったファイルおよびドメインのIDである。
図18は、実施例2におけるプロセスセキュリティレベル依存関係テーブル2600の構成例を示す図である。プロセスセキュリティレベル依存関係テーブル2600は、プロセスID2601、プロセス信頼レベル依存先2602、および、プロセス機密レベル依存先2603をデータ項目として持つ。
このうちプロセスID2601は、端末100のメモリ202上で動作しているプロセスに対しユニークに割り当てられたIDであり、プログラムセキュリティレベルテーブル500におけるプロセスID501に対応する。また、プロセス信頼レベル依存先2602は、上述のプロセスのプロセス信頼レベル502の値の根拠となったファイルおよびドメインのIDである。また、プロセス機密レベル依存先2603は、上述のプロセスのプロセス機密レベル503の値の根拠となったファイルおよびドメインのIDである。
図19は、実施例2における定数ファイルセキュリティレベルテーブル2700の構成例を示す図である。定数ファイルセキュリティレベルテーブル2700は、定数ファイルID2701、定数ファイル信頼レベル2702、定数ファイル機密レベル2703、および、定数ファイル保護レベル2704をデータ項目として持つ。
このうち定数ファイルID2701は、定数ファイルセキュリティレベルテーブル2700のレコードに対しユニークに割り当てられたIDである。また、定数ファイル信頼レベル2702、定数ファイル機密レベル2703、定数ファイル保護レベル2704は、それぞれファイルセキュリティレベルテーブル300におけるファイル信頼レベル303、ファイル機密レベル304、ファイル保護レベル305に対応する値である。後者が自動的に更新され変化する値であるのに対し、前者はシステム管理者153が直接指定する値であり、自動では更新されない。
<フロー例:プロセス起動時プロセスセキュリティレベルおよび依存関係更新処理>
実施例2におけるホワイトリスト管理システム10は、アクセス試行の発生時には、実施例1において図7〜図15を用いて説明した処理とほぼ同じ処理を実行する。そこで、実施例2における処理フロー例のうち、実施例1との差分について、図20〜図23に基づき説明するものとする。
図20は、実施例2におけるプロセス起動時プロセスセキュリティレベルおよび依存関係の更新処理例を示すフロー図である。実施例1の図9におけるプロセス起動時プロセスセキュリティレベル更新処理900からの変更点は、ステップ902の後にステップ903が追加された点である。そこで以下では、ステップ903について説明する。
セキュリティレベル依存関係更新プログラム115は、プロセスセキュリティレベル依存関係テーブル2600に新規レコードを追加し、ステップ801、802および804で取得したプロセスID501およびファイルID301を、当該レコードのプロセス信頼レベル依存先2602およびプロセス機密レベル依存先2603に追加する(ステップ903)。
<フロー例:通信時プロセスセキュリティレベルおよび依存関係更新処理>
図21は、実施例2における通信時プロセスセキュリティレベルおよび依存関係の更新処理例を示すフロー図である。実施例1の図11における通信時プロセスセキュリティレベル更新処理1100からの変更点は、ステップ1104の後にステップ1105が追加された点である。そこで以下では、ステップ1105について説明する。
セキュリティレベル依存関係更新プログラム115は、プロセスセキュリティレベル依存関係テーブル2600を参照し、プロセスID2601が当該プロセスのプロセスIDと一致するレコードを検索して、ステップ1002で取得したドメインID401を、当該レコードのプロセス信頼レベル依存先2602およびプロセス機密レベル依存先2603に追加する(ステップ1105)。
<フロー例:ファイル読み取り時プロセスセキュリティレベルおよび依存関係更新処理>
図22は、実施例2におけるファイル読み取り時プロセスセキュリティレベルおよび依存関係の更新処理例を示すフロー図である。実施例1の図13におけるファイル読み取り時プロセスセキュリティレベル更新処理1300からの変更点は、ステップ1304の後にステップ1305が追加された点である。以下では、ステップ1305について説明する。
セキュリティレベル依存関係更新プログラム115は、プロセスセキュリティレベル依存関係テーブル2600を参照し、プロセスID2601が当該プロセスのプロセスIDと一致するレコードを検索して、ステップ1202で取得したファイルID401を、当該レコードのプロセス信頼レベル依存先2602およびプロセス機密レベル依存先2603に追加する(ステップ1305)。
<フロー例:ファイル書き込み時プロセスセキュリティレベルおよび依存関係更新処理>
図23は、実施例2におけるファイル書き込み時プロセスセキュリティレベルおよび依存関係の更新処理例を示すフロー図である。実施例1の図15におけるファイル書き込み時プロセスセキュリティレベル更新処理1500からの変更点は、ステップ1504の後にステップ1505が追加された点である。そこで以下では、ステップ1505について説明する。
セキュリティレベル依存関係更新プログラム115は、プロセスセキュリティレベル依存関係テーブル2600を参照し、プロセスID2601が当該プロセスのプロセスIDと一致するレコードを検索して、当該レコードのプロセス信頼レベル依存先2602およびプロセス機密レベル依存先2603を得る。更に、セキュリティレベル依存関係更新プログラム115は、ファイルセキュリティレベル依存関係テーブル2500を参照し、ファイルID2501がステップ1402で取得したファイルID301と一致するレコードを検索して、当該レコードのファイル信頼レベル依存先2502、ファイル機密レベル依存先2503、ファイル保護レベル依存先2504に、プロセス信頼レベル依存先2602およびプロセス機密レベル依存先2603の値を追加する(ステップ1505)。
<フロー例:セキュリティレベル一括補正処理>
次に、実施例2におけるセキュリティレベル補正時の処理フロー例について説明する。図24は、実施例2におけるセキュリティレベル一括補正処理の例を示すフロー図である。
ここで、システム管理者153は、管理端末150を介して、サーバ140にセキュリティレベル補正指示情報を送信するものとする。このセキュリティレベル補正指示情報は、セキュリティレベル補正対象のファイルまたはドメインの情報およびセキュリティレベ
ル補正値を含む。一方、サーバ140のセキュリティレベル補正指示プログラム143は、上述の管理端末150から受信したセキュリティレベル補正指示情報に基づき、端末100_1〜Nにセキュリティレベル補正指示情報を送信する。
そこで端末100_1〜Nにおけるセキュリティレベル補正プログラム116は、上述のセキュリティレベル補正指示情報を受信する(ステップ3201)。
続いて、セキュリティレベル補正プログラム116は、上述のセキュリティレベル補正指示情報に含まれるセキュリティレベル補正対象がファイルであるか否かを判定する(ステップ3202)。
上述の判定の結果、ファイルであった場合(ステップ3202:Yes)、セキュリティレベル補正プログラム116は、処理をステップ3204に進める。他方、それ以外の場合(ステップ3202:No)、セキュリティレベル補正プログラム116は、処理をステップ3203に進める。
ステップ3203におけるセキュリティレベル補正プログラム116は、ドメインセキュリティレベルテーブル400を参照し、ドメイン名402が上述のセキュリティレベル補正指示情報で指定されたセキュリティレベル補正対象のドメイン名と一致するレコードを検索し、当該レコードのドメイン信頼レベル403、ドメイン機密レベル404、ドメイン保護レベル405のうち、上述のセキュリティレベル補正指示情報にて補正値が指定されている項目については、当該項目を補正値で更新する(ステップ3203)。
一方、ステップ3204におけるセキュリティレベル補正プログラム116は、ファイルセキュリティレベルテーブル300を参照し、ファイルパス402またはファイルハッシュ値306が、上述のセキュリティレベル補正指示情報で指定されたセキュリティレベル補正対象のファイルパスまたはファイルハッシュ値と一致するレコードを検索し、当該レコードのファイル信頼レベル303、ファイル機密レベル304、ファイル保護レベル305のうち、上述のセキュリティレベル補正指示情報で補正値が指定されている項目については、当該項目を補正値で更新する(ステップ3204)。
続いて、セキュリティレベル補正プログラム116は、定数ファイルセキュリティレベルテーブル2700に新規レコードを追加し、定数ファイル信頼レベル2702、定数ファイル機密レベル2703、定数ファイル保護レベル2704のうち、上述のセキュリティレベル補正指示情報で補正値が指定されている項目については、当該項目に補正値を格納する(ステップ3205)。なお、上述のセキュリティレベル補正指示情報で補正値が指定されていない項目については、当該項目の値は空のままとする。
次に、セキュリティレベル補正プログラム116は、ファイルセキュリティレベル依存関係テーブル2500を参照し、ファイルID2501が、上述のステップ3204において更新したレコードのファイルID301と一致するレコードを検索し、ファイル信頼レベル依存先2502、ファイル機密レベル依存先2503、ファイル保護レベル依存先2504のうち、上述のステップ3204において更新した項目に対応する項目の値を消去し、上述のステップ3205において追加したレコードの定数ファイルIDの値を格納する(ステップ3206)。
また、セキュリティレベル補正プログラム116は、ファイルセキュリティレベル依存関係テーブル2500を参照し、上述のセキュリティレベル補正指示情報で指定されたドメインまたはファイルに依存するすべてのファイルを特定し、当該各ファイルのセキュリティレベルを再算出して、ファイルセキュリティレベルテーブル300の当該レコードを
更新する(ステップ3207〜3208)。
具体的には、セキュリティレベル補正プログラム116は、以下の処理を行う。セキュリティレベル補正プログラム116は、ファイルセキュリティレベル依存関係テーブル2500を参照し、ファイル信頼レベル依存先2502、ファイル機密レベル依存先2503、ファイル保護レベル依存先2504のいずれかに検索対象IDを含むレコードを検索する。
また、セキュリティレベル補正プログラム116は、該当する各レコードについて、ファイル信頼レベル依存先2502に含まれるIDをファイルID301、ドメインID401、定数ファイルID2701として持つレコードを、ファイルセキュリティレベルテーブル300、ドメインセキュリティレベルテーブル400、定数ファイルセキュリティレベルテーブル2700から検索し、これらのファイル信頼レベル303、ドメイン信頼レベル403、定数ファイル信頼レベル2702の最小値を算出する。
また、セキュリティレベル補正プログラム116は、ファイルセキュリティレベルテーブル300を参照し、ファイルID301が当該ファイルID2501と一致するレコードのファイル信頼レベル303の値を、上述の最小値で更新する。セキュリティレベル補正プログラム116は、ファイル機密レベル依存先2503についても同様の処理を行い、各機密レベルの最大値を算出して該当レコードのファイル機密レベルの値を更新する。また、セキュリティレベル補正プログラム116は、ファイル保護レベル依存先2504についても同様の処理を行い、登録されている保護レベルを用いて該当レコードのファイル保護レベルの値を更新する。
その後、セキュリティレベル補正プログラム116は、各レコードのファイル信頼レベル依存先2502、ファイル機密レベル依存先2503、ファイル保護レベル依存先2504に含まれるすべてのIDを新たな検索対象IDとし、各検索対象IDについて上述の処理を再帰的に実行する。
なお、検索対象IDの初期値は、上述のステップ3203において検索したレコードのドメインID401またはステップ3204において検索したレコードのファイルID301を最初の検索対象IDとする。
続いて、セキュリティレベル補正プログラム116は、プロセスセキュリティレベル依存関係テーブル2600を参照し、上述のステップ3203、3204および3208においてセキュリティレベルを更新したドメインおよびファイルのIDを、プロセス信頼レベル依存先2602またはプロセス機密レベル依存先2603に含むレコードを検索する。
また、セキュリティレベル補正プログラム116は、該当する各レコードについて、上述のステップ3208と同様に、プロセス信頼レベル依存先2602に含まれるIDをファイルID301、ドメインID401、定数ファイルID2701として持つレコードを、ファイルセキュリティレベルテーブル300、ドメインセキュリティレベルテーブル400、定数ファイルセキュリティレベルテーブル2700から検索し、これらのファイル信頼レベル303、ドメイン信頼レベル403、定数ファイル信頼レベル2702の最小値を算出する。
また、セキュリティレベル補正プログラム116は、プロセスセキュリティレベルテーブル500を参照し、プロセスID501が当該プロセスID2601と一致するレコードのプロセス信頼レベル502の値を、上述の最小値で更新する。
セキュリティレベル補正プログラム116は、プロセス機密レベル依存先2603についても同様の処理を行い、各機密レベルの最大値を算出して該当レコードのファイル機密レベルの値を更新し、また、プロセスセキュリティレベルテーブル500を更新する(ステップ3209、3210)。
図25は、実施例2におけるセキュリティレベル一括補正画面3300の例を示す図である。セキュリティレベル一括補正画面3300は、対象指定画面3310およびセキュリティレベル指定画面3320を備える。
このうち対象指定画面3310は、ファイルパス指定部3311、ハッシュ値指定部3312、ドメイン指定部3313を備える。
また、セキュリティレベル指定画面3320は、信頼レベル指定部3321、機密レベル指定部3322、保護レベル指定部3323、確定ボタン3324、リセットボタン3325を備える。
上述の図24で示したセキュリティレベル一括補正処理において、システム管理者153は、管理端末150からネットワーク160を経由してサーバ140に接続し、管理画面表示プログラム144を呼び出し、入出力部152から操作を行う。
このシステム管理者153によるセキュリティレベル補正の対象がファイルである場合、ファイルパス指定部3311、ハッシュ値指定部3312のいずれか、または両方に、セキュリティレベル補正対象ファイルのファイルパスおよびハッシュ値が入力されることとなる。
その後、システム管理者153は、当該ファイルに新たに設定するファイル信頼レベル303、ファイル機密レベル304、ファイル保護レベル305の値を、それぞれ信頼レベル指定部3321、機密レベル指定部3322、保護レベル指定部3323に入力し、確定ボタン3324を押下する。
以上の操作により、上述のセキュリティレベル一括補正処理が開始される。
また、システム管理者153によるセキュリティレベル補正の対象がドメインである場合、ドメイン指定部3313にセキュリティレベル補正対象ドメイン名が入力されることとなる。その後、システム管理者153は、当該ドメインに新たに設定するドメイン信頼レベル403、ドメイン機密レベル404、ドメイン保護レベル405の値を、それぞれ信頼レベル指定部3321、機密レベル指定部3322、保護レベル指定部3323に入力し、確定ボタン3324を押下する。
以上の操作により、上述のセキュリティレベル一括補正処理が開始される。
なお、操作を途中で中止する場合、システム管理者153は、リセットボタン3325を押下する。
以上で説明した実施例2におけるホワイトリスト管理システム10は、上述の実施例1に加え、セキュリティレベル間の依存関係を保持し、セキュリティレベル補正時に依存関係に基づいて、関連するセキュリティレベルを一括して補正することを可能とするものである。
−−−実施例3−−−
上述の実施例1においては、セキュリティレベルは自動算出されるものとしたが、セキュリティポリシーの変更や、脅威情報の更新などに伴い、システム管理者がセキュリティレベルを補正する必要が発生する場合が想定される。上述の通り、ファイル、ドメイン、プロセスのセキュリティレベルは、関連するファイル、ドメイン、プロセスのセキュリティレベルに基づいて算出されるため、これらの間の整合性を維持するためには、補正対象のセキュリティレベルに基づいて算出された他の全てのセキュリティレベルも補正する必要がある。このとき、補正すべきセキュリティレベルの対象が膨大になることが想定されるため、補正による影響をシステム管理者が把握できず、思わぬ悪影響が発生する可能性がある。
この問題を解決する手段として、セキュリティレベル算出に伴い、各ファイル、ドメイン、プロセスのセキュリティレベル間の依存関係を保存しておき、後にセキュリティレベル補正が必要になった場合に、当該依存関係に基づいて補正による影響をシミュレートし、提示することでシステム管理者の判断を支援し、最適な補正方法を選択できるようにする方法が考えられる。以下では、この方法を実施するための形態の一例を、実施例3として説明する。
<機能構成例>
図26は、実施例3におけるホワイトリスト管理システム10の機能構成例を示す図である。実施例3におけるホワイトリスト管理システム10は、端末100_1〜Nにインストールされた、端末100_1〜N上で動作する複数のプログラムおよび端末100_1〜Nに保存された複数のデータ、サーバ140、管理端末150、ネットワーク160から構成される。こうした端末100_1〜N、サーバ140、管理端末150は、ネットワーク160を介して通信可能に接続される。
上述の端末100_1〜Nは、ユーザ101が利用するコンピュータ装置である。また、端末100_1〜Nは、メモリ110、記憶装置120、通信部130、入出力部131を備えている。この場合、ユーザ101は、入出力部131を介して端末100_1〜Nを操作する。
また、サーバ140は、メモリ141、通信部142を備えるサーバ装置である。また、管理端末150は、通信部151、入出力部152を備える情報処理装置である。システム管理者153は、入出力部152を介してこの管理端末150を操作し、ネットワーク160を経由してサーバ140を操作する。
続いて、実施例3におけるホワイトリスト管理システム10が備える機能について説明する。ここでは、端末100_1〜Nおよびサーバ140にて備える適宜なプログラムを実行することで実現される機能について説明するものとする。
端末100_1〜Nにおいては、アクセス試行取得プログラム111、アクセス可否判定プログラム112、セキュリティレベル更新プログラム113、アクセス可否結果返却プログラム114、セキュリティレベル依存関係更新プログラム115、セキュリティレベル補正プログラム116、および、シミュレート情報取得プログラム117が実行される。
また、端末100_1〜Nにおいては、ファイルセキュリティレベル121、ドメインセキュリティレベル122、プロセスセキュリティレベル123、許可通信メソッド124、ファイルセキュリティレベル依存関係125、プロセスセキュリティレベル依存関係126、および、定数ファイルセキュリティレベル127を、データとして保持する。
また、サーバ140においては、セキュリティレベル補正指示プログラム143、管理画面表示プログラム144、および、セキュリティレベル補正シミュレートプログラム145が実行される。
このうち、アクセス試行取得プログラム111、アクセス可否判定プログラム112、セキュリティレベル更新プログラム113、アクセス可否結果返却プログラム114、セキュリティレベル依存関係更新プログラム115、および、セキュリティレベル補正プログラム116は、上述の実施例2と同様のプログラムである。
一方、シミュレート情報取得プログラム117は、セキュリティレベル補正シミュレートプログラム145からの要求に基づき、セキュリティレベル補正シミュレートに必要な情報を、ファイルセキュリティレベルテーブル121、ドメインセキュリティレベル122、ファイルセキュリティレベル依存関係テーブル125、および、定数ファイルセキュリティレベルテーブル127から取得して返送するプログラムである。
また、ファイルセキュリティレベル121、ドメインセキュリティレベル122、プロセスセキュリティレベル123、許可通信メソッド124、ファイルセキュリティレベル依存関係125、プロセスセキュリティレベル依存関係126、および、定数ファイルセキュリティレベル127は、上述の実施例2と同様の情報である。
また、セキュリティレベル補正シミュレートプログラム145は、システム管理者153からの要求に基づき、セキュリティレベル補正シミュレートや、そのために必要な情報収集を行うプログラムである。
<フロー例:セキュリティレベル補正支援処理>
図27は、実施例3におけるセキュリティレベル補正支援処理の例を示すフロー図である。以下、この図27に基づきセキュリティレベル補正支援処理方法について説明する。
この場合のシステム管理者153は、管理端末150を介して、サーバ140にセキュリティレベル補正指示情報を送信するものとする。このセキュリティレベル補正指示情報は、セキュリティレベル補正対象のファイルまたはドメインの情報、セキュリティレベル補正値および指示内容を含んでいる。
サーバ140の管理画面表示プログラム144は、上述の管理端末150からセキュリティレベル補正指示情報を受信する(ステップ4501)。
また、管理画面表示プログラム144は、上述のセキュリティレベル補正指示情報を参照し、その指示内容が「検索」または「リセット」を示すものであるか否か判定する(ステップ4502)。
上述の判定の結果、指示内容が「検索」または「リセット」である場合(ステップ4502:Yes)、管理画面表示プログラム144は、当該セキュリティレベル補正指示情報をセキュリティレベル補正シミュレートプログラム145に伝達し、処理をステップ4504に進める。一方、それ以外の場合(ステップ4502:No)、管理画面表示プログラム144は、処理をステップ4503に進める。
ステップ4503における管理画面表示プログラム144は、上述のセキュリティレベル補正指示情報を参照し、その指示内容が「一時反映」であるか否か判定する(ステップ4503)。
この判定の結果、指示内容が「一時反映」である場合(ステップ4503:Yes)、管理画面表示プログラム144は、上述のセキュリティレベル補正指示情報をセキュリティレベル補正シミュレートプログラム145に伝達し、処理をステップ4505に進める。 一方、それ以外の場合(ステップ4503:No)、管理画面表示プログラム144は、上述のセキュリティレベル補正指示情報をセキュリティレベル補正指示プログラム143に伝達し、処理をステップ4506に進める。
またステップ4504におけるセキュリティレベル補正シミュレートプログラム145は、上述のセキュリティレベル補正指示情報をシミュレート情報取得プログラム117に送信する(ステップ4504)。このシミュレート情報取得プログラム117は、ファイルセキュリティレベル依存関係テーブル2500を参照し、上述のセキュリティレベル補正指示情報に含まれる、セキュリティレベル補正対象のファイルまたはドメインと依存関係を持つ全てのファイルおよびドメインのIDを取得する。具体的には、以下の処理による。
すなわち、シミュレート情報取得プログラム117は、上述のセキュリティレベル補正指示情報の補正対象ファイルまたはドメインのIDを起点とし、ファイルID2501をキーとしてファイルセキュリティレベル依存関係テーブル2500を検索し、該当するレコードのファイル信頼レベル依存先2502、ファイル機密レベル依存先2503、ファイル保護レベル依存先2504に格納されたIDを取得する処理を再帰的に繰り返す。
また、シミュレート情報取得プログラム117は、上述のセキュリティレベル補正指示情報の補正対象ファイルまたはドメインのIDを起点とし、ファイル信頼レベル依存先2502、該機密レベル依存先2503、ファイル保護レベル依存先2504をキーとしてファイルセキュリティレベル依存関係テーブル2500を検索し、該当するレコードのファイルID2501に格納されたIDを取得する処理を再帰的に繰り返す。
次に、シミュレート情報取得プログラム117は、ファイルセキュリティレベルテーブル300、ドメインセキュリティレベルテーブル400、ファイルセキュリティレベル依存関係テーブル125、および、定数ファイルセキュリティレベルテーブル127を参照し、取得した当該ファイルおよびドメインのIDに合致する全てのレコードを取得して、セキュリティレベル補正シミュレート情報とし、セキュリティレベル補正シミュレートプログラム145に送信する。
一方、セキュリティレベル補正シミュレートプログラム145は、当該セキュリティレベル補正シミュレート情報を受信して(ステップ4504)、これを記憶装置にて保持し、そのコピーを管理画面表示プログラム144へ伝達する。なお、既にセキュリティレベル補正シミュレート情報を保持していた場合、セキュリティレベル補正シミュレートプログラム145は、新規情報で上書きする。
また、ステップ4505におけるセキュリティレベル補正シミュレートプログラム145は、上述のセキュリティレベル補正指示情報に基づき、図24におけるステップ3208と同様の処理を実行し、保持しているセキュリティレベル補正シミュレート情報を更新する。また、セキュリティレベル補正シミュレートプログラム145は、更新したセキュリティレベル補正シミュレート情報を保持し、そのコピーを管理画面表示プログラム144へ伝達する(ステップ4505)。
また、ステップ4506におけるセキュリティレベル補正指示プログラム143は、伝達されたセキュリティレベル補正指示情報をセキュリティレベル補正プログラム116に
送信する(ステップ4506)。この場合のセキュリティレベル補正プログラム116は、セキュリティレベル一括補正処理3200を実行するものとする。
また、ステップ4507における管理画面表示プログラム144は、伝達されたセキュリティレベル補正シミュレート情報に基づき、セキュリティレベル補正支援画面4700を生成して管理端末150へ送信する(ステップ4507)。セキュリティレベル補正支援画面4700の詳細については図28を用いて後述する。
図28は、実施例3におけるセキュリティレベル補正支援画面4700の例を示す図である。セキュリティレベル補正支援画面4700は、対象指定画面4710、依存性表示画面4720、および、セキュリティレベル指定画面4730を備える。
このうち対象指定画面4710は、ファイルパス指定部4711、ハッシュ値指定部4712、ドメイン指定部4713、および、検索ボタン4714を備える。
また、依存性表示画面は、ファイルおよびドメインのセキュリティレベルの依存関係をグラフ形式で表示する。
また、セキュリティレベル指定画面4730は、信頼レベル指定部4731、機密レベル指定部4732、保護レベル指定部4733、確定ボタン4734、一時反映ボタン4735、および、リセットボタン4736を備える。
上述の図27にて示したセキュリティレベル一括補正処理において、システム管理者153は、管理端末150からネットワーク160を経由してサーバ140に接続し、管理画面表示プログラム144を呼び出して、入出力部152から操作を行うものとする。
このシステム管理者153におけるセキュリティレベル補正の対象がファイルである場合、当該システム管理者153は、ファイルパス指定部4711およびハッシュ値指定部4712のいずれか、または両方に、セキュリティレベル補正対象ファイルのファイルパスおよびハッシュ値を入力し、検索ボタン4714を押下する。
すると、上述のステップ4504およびステップ4507が実行され、サーバ140が、上述の対象指定画面4710で指定されたファイルまたはドメインと関連する情報を、端末100_1〜Nから収集し、これを依存性表示画面4720に表示する。
この依存性表示画面4720は、サーバ140が収集した情報を、ファイルまたはドメインをノードとし、それらのセキュリティレベルの依存関係をエッジとする有向グラフで表示する。
このうちノードには、上述のファイルまたはドメインを識別可能な、ファイルパス、ハッシュ値およびドメイン名が表示される。また、ノードには、当該ファイルまたはドメインのセキュリティレベルが表示される。なお、当該ファイルまたはドメインが複数の端末に登録されている場合、当該情報が登録されている端末数が表示される。
システム管理者153は、上述のノードのうちセキュリティレベル補正対象とするものを画面クリックなどにより指定できる。
また、システム管理者153により、上述のセキュリティレベル補正対象に新たに設定するセキュリティレベルの値が、信頼レベル指定部4731、機密レベル指定部4732、保護レベル指定部4733に入力され、一時反映ボタン4735が押下されると、上述
のステップ4505およびステップ4507が実行される。これにより、依存性表示画面4720が更新される。
また、システム管理者153が確定ボタン4734を押下すると、上述のステップ4506が実行され、端末100_1〜Nにおいて、上述のセキュリティレベル一括補正処理3200が実行されることとなる。他方、システム管理者153がリセットボタン4736を押下した場合は、検索ボタン4714を押下した場合と同様の処理が実行される。
以上で示した実施例3におけるホワイトリスト管理システム10は、上述の実施例2に加え、セキュリティレベル補正時にセキュリティレベル間の依存関係に基づき、補正の影響をシミュレートすることで、補正に伴う管理者の判断を支援することを可能とするものである。
以上、本発明を実施するための最良の形態などについて具体的に説明したが、本発明はこれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
こうした本実施形態によれば、サイバー攻撃に対する安全性とユーザ等の利便性とを両立しつつ、ホワイトリスト更新の運用コストを低減可能となる。
本明細書の記載により、少なくとも次のことが明らかにされる。すなわち、本実施形態のホワイトリスト管理システムにおいて、前記セキュリティレベル更新部は、前記所定アクセスの主体および対象となる各リソースの前記セキュリティレベル情報を比較し、当該リソースの間で、セキュリティレベルがより低いリソースのセキュリティレベル情報で、他のリソースのセキュリティレベル情報を更新するものである、としてもよい。
これによれば、リソース間におけるアクセスの主体および対象の関係に応じて、当該アクセスに伴って想定されうるセキュリティレベル低下の影響を的確に踏まえ、当該リソースに関するセキュリティレベル情報を更新可能となる。
また、本実施形態のホワイトリスト管理システムにおいて、前記セキュリティレベル記憶部は、前記リソースたるファイルに関して前記セキュリティレベル情報を保持し、前記アクセス可否判定部は、所定アクセスに関係する、前記ファイルを含む各リソースの前記セキュリティレベル情報に基づき、前記所定アクセスの可否を所定アルゴリズムにて判定し、前記セキュリティレベル更新部は、前記所定アクセスに関係する前記ファイルまたは当該ファイルをアクセス対象とするリソースの前記セキュリティレベル情報を、所定アルゴリズムにて更新するものである、としてもよい。
これによれば、ファイルを含むリソース間におけるアクセスの主体および対象の関係に応じて、当該アクセスに伴って想定されうるセキュリティレベル低下の影響を的確に踏まえ、当該ファイルまたはこれに関連するリソースに関するセキュリティレベル情報を更新可能となる。
また、本実施形態のホワイトリスト管理システムにおいて、前記セキュリティレベル記憶部は、前記リソースたるドメインに関して前記セキュリティレベル情報を保持し、前記アクセス可否判定部は、所定アクセスに関係する、前記ドメインを含む各リソースの前記セキュリティレベル情報に基づき、前記所定アクセスの可否を所定アルゴリズムにて判定し、前記セキュリティレベル更新部は、前記所定アクセスに関係する前記ドメインをアクセス対象とするリソースの前記セキュリティレベル情報を、所定アルゴリズムにて更新するものである、としてもよい。
これによれば、ドメインを含むリソース間におけるアクセスの主体および対象の関係に応じて、当該アクセスに伴って想定されうるセキュリティレベル低下の影響を的確に踏まえ、当該ドメインをアクセス対象とするリソースに関するセキュリティレベル情報を更新可能となる。
また、本実施形態のホワイトリスト管理システムにおいて、前記セキュリティレベル記憶部は、前記リソースたるプロセスに関して前記セキュリティレベル情報を保持し、前記アクセス可否判定部は、所定アクセスに関係する、前記プロセスを含む各リソースの前記セキュリティレベル情報に基づき、前記所定アクセスの可否を所定アルゴリズムにて判定し、前記セキュリティレベル更新部は、前記所定アクセスに関係する前記プロセスの前記セキュリティレベル情報を、所定アルゴリズムにて更新するものである、としてもよい。
これによれば、プロセスを含むリソース間におけるアクセスの主体および対象の関係に応じて、当該アクセスに伴って想定されうるセキュリティレベル低下の影響を的確に踏まえ、当該プロセスに関連するリソースに関するセキュリティレベル情報を更新可能となる。
また、本実施形態のホワイトリスト管理システムにおいて、各リソースの間における前記セキュリティレベル情報の依存関係を規定した依存関係情報を保持するセキュリティレベル依存関係記憶部と、所定アクセスにおける主体および対象となる各リソースの関係に基づき、前記依存関係情報を更新するセキュリティレベル依存関係更新部と、を更に備えるとしてもよい。
これによれば、リソース間におけるセキュリティレベルの依存関係を、当該リソースに関連したアクセスに伴って適宜に管理することが可能となる。
また、本実施形態のホワイトリスト管理システムにおいて、前記依存関係情報に基づいて前記セキュリティレベル情報を更新するセキュリティレベル補正部を更に備えるとしてもよい。
これによれば、リソース間におけるセキュリティレベルの依存関係に基づき、当該リソースに関連したアクセスに伴うセキュリティレベル情報の更新を適宜に管理することが可能となる。
また、本実施形態のホワイトリスト管理システムにおいて、前記依存関係情報に基づいて前記セキュリティレベル情報の更新処理をシミュレートするセキュリティレベル補正シミュレート部を更に備えるとしてもよい。
これによれば、所定の管理者等に対し、セキュリティレベル情報の更新に伴う影響をシミュレーション結果として提示することが可能となる。ひいては、管理者等における業務効率が従来よりも改善され、ホワイトリスト更新の運用コストが低減可能となる。
また、本実施形態のホワイトリスト管理システムにおいて、前記セキュリティレベル補正シミュレート部は、前記シミュレートの結果を所定装置に表示するものであるとしてもよい。
これによれば、所定の管理者等に対し、セキュリティレベル情報の更新に伴う影響をシミュレーション結果として提示することが可能となる。ひいては、管理者等における業務効率が従来よりも改善され、ホワイトリスト更新の運用コストが低減可能となる。
また、本実施形態のホワイトリスト管理システムにおいて、前記セキュリティレベル記憶部および前記アクセス可否判定部を少なくとも備える複数の端末それぞれに関して、前記セキュリティレベル記憶部の前記セキュリティレベル情報の更新処理を管理するサーバ装置を含むとしてもよい。
これによれば、サーバ側で、各端末におけるセキュリティレベル情報の更新管理を一括で行うことが可能となり、ひいては、各端末の管理者等における業務効率が従来よりも改善され、ホワイトリスト更新の運用コストが低減可能となる。