以下、図面を参照して、本発明の実施形態を詳述する。なお、本説明においては断りのない限り、端末からリソースへのアクセス要求はTCP(Transfer Control Protocol)通信により実現されるものとする。また、セッションとは、端末からリソースに対して一定の短期間内に発生する1以上のアクセス要求の集合を示す。例えば、一定の短期間を1秒とした場合、あるアクセス要求R1と、R1が発生してから1秒以内に発生した別のアクセス要求R2とは、同一のセッションに属するものとする。
(1)システム構成
図1は、本発明の一実施形態に係る動的アクセス認可システム1の構成例を示す図である。動的アクセス認可システム1は、ユーザが操作する端末10からリソース30に対してアクセスの要求が行われる際に、端末10及び/またはユーザに関する挙動情報を含む認可要求メッセージ510に基づいて、アクセス制御装置20がアクセス要求520をリソース30に通過させるか遮断するかの認可判定を行うことにより、アクセス要求520の動的認可を実現するシステムである。
図1において、動的アクセス認可システム1は、端末側プログラム100、端末設定DB310、挙動監視部装置DB320、認可要求メッセージ履歴DB330、制御装置側プログラム200、アクセス制御設定DB410、アクセスポリシースクリプトDB420、及びアクセス認可情報DB430を備えて構成される。以下、動的アクセス認可システム1の構成を中心に、図1に示した各要素について詳しく説明する。
図1に示したように、端末10とアクセス制御装置20との間は通信ネットワーク41で接続され、アクセス制御装置20とリソース30との間は通信ネットワーク42で接続される。通信ネットワーク41,42はそれぞれ、例えばLAN(Local Area Network)であるが、WAN(Wide Area Network)、携帯電話、またはPHSなどの公衆回線網でもよい。通信ネットワーク41には、1以上の端末10及び1以上のアクセス制御装置20が接続され、通信ネットワーク42には、1以上のアクセス制御装置20及び1以上のリソース30が接続される。なお、通信ネットワーク41と通信ネットワーク42は、実体としては同一のネットワークであってもよい。
詳細は後述するが、動的アクセス認可システム1においては、端末10またはそのユーザがリソース30に対するアクセス要求を作成し実行しようとする際には、端末10から通信ネットワーク41を介してアクセス制御装置20にアクセス要求520が送信される。このとき、端末10は、アクセス要求の作成を捕捉し、アクセス要求の認可判定が必要とされる場合には、アクセス要求520をアクセス制御装置20に送信する前に、端末10及び/またはユーザの挙動情報を載せた認可要求メッセージ510をアクセス制御装置20に送信し、認可判定を依頼する。そしてアクセス制御装置20において、認可要求メッセージ510に基づいてアクセス要求の認可判定が行われ、アクセス要求が認可された場合には、アクセス制御装置20は、端末10から受信して一時的にバッファリングしていたアクセス要求520を、通信ネットワーク42を介して宛先のリソース30に転送する。一方、認可判定の結果、アクセス要求の認可が得られなかった場合には、アクセス制御装置20は、アクセス要求520のリソース30への送信を遮断する。またこのとき、アクセス制御装置20は、管理用端末40に対して管理者通知メッセージ530を送信することができる。
認可要求メッセージ510は、通信ネットワーク41を介して、端末10からアクセス制御装置20に送信される電信文であり、端末10及び/またはユーザの直近の挙動が暗号化されて格納されている。アクセス制御装置20は、認可要求メッセージ510に基づいてアクセス要求520の通信可否を判断する。本発明では、認可要求メッセージ510は、通信プロトコルとして、TCPとは異なり、通信確立のための制御パケットを必要としないUDP(User Datagram Packet)を使用するものとする。UDPは一般的にTCPより軽量であり、計算機やネットワーク側の負担が小さくリアルタイム性が高い通信を実現する。一方で、パケットロスが発生した場合のリカバリー方法が無いという欠点がある。また、ゼロトラストに資するアクセス認可の指針を満足させるためには、認可要求メッセージ510の送信は、セッション単位で実施されることが好ましい。後述する図9には、認可要求メッセージ510のデータフォーマットの具体例が示される。
アクセス要求520は、通信ネットワーク41を介して端末10からアクセス制御装置20に送信され、アクセス制御装置20が通信を許可した場合は、通信ネットワーク42を介してリソース30へと送信される電信文である。前述した通り、本発明で想定するアクセスはTCPであり、アクセス要求520としては、TCPの開始に送信されるTCP SYNパケットを想定する。
管理者通知メッセージ530は、アクセス制御装置20における通信制御状況を管理者に通達する電信文であり、管理用端末40を介してその内容が表示される。後述する図10には、管理者通知メッセージ530の具体例として、管理者通知メッセージ530A,530Bが示される。
(1-1)端末10
端末10は、パーソナルコンピュータやサーバといった一般的な計算機であり、例えば端末10を使用するユーザの業務において、リソース30へのアクセスを要求するものである。端末10は、OS/アプリケーション11、端末側プログラム100、端末設定DB310、挙動監視部装置DB320、及び認可要求メッセージ履歴DB330を備える。
OS/アプリケーション11は、一般的なオペレーティングシステム(OS)、及びOS上で動作する一般的なアプリケーション(例えばドキュメント作成ソフト、Webブラウザ、データベースクライアントなど)である。
端末側プログラム100は、OS/アプリケーション11がリソース30へのアクセスを要求するタイミングにおいて、端末10及び/またはそのユーザの直近の挙動を収集し、認可要求メッセージ510を、端末10とリソース30との通信経路上に位置するアクセス制御装置20に対して送信することで、動的認可を実現する。端末側プログラム100には、1以上の挙動監視部110、挙動情報調整部120、認可要求制御部130、及び認可要求メッセージ送信部140が含まれ、挙動情報調整部120にはさらに、挙動情報圧縮部121及び挙動情報優先付け部122が含まれる。
挙動監視部110は、端末10やそのユーザの挙動を監視し、定期的に、その結果を挙動監視部管理DB320に出力するプログラムである。挙動監視部110は、監視対象となる挙動の種類に応じて複数存在する。例えば、プロセス起動及びネットワーク通信の2種類を監視したい場合、挙動監視部110の個数は2となる。
挙動情報調整部120は、挙動監視部110が出力する複数の挙動監視結果を、その価値の損失を出来る限り抑えながら、認可要求メッセージ510に格納可能なデータサイズに収まる形に調整する役割を持つ。挙動情報調整部120には、挙動情報圧縮部121及び挙動情報優先付け部122の2つの機能部が含まれる。
挙動情報圧縮部121は、挙動監視部110が出力した「リスト型」の挙動情報のデータサイズを圧縮する機能を有する。リスト型の挙動情報の例としては、端末10上で起動している全ての実行プログラムのハッシュ値の一覧、実行中のサービスプログラムの一覧、一定時間内に通信を行ったことがある端末の識別子の一覧、端末10にインストールされているアプリケーションの一覧などが考えられる。圧縮の方法としては、ZIPなどの可逆型圧縮方式、または後述するBloomFilterに代表される非可逆圧縮方式がある。ハッシュ値など乱数性が高いデータを圧縮するには、非可逆圧縮方式の方が大きな圧縮効果が認められる。
挙動情報優先付け部122は、複数種類の挙動情報が与えられた場合に、個々の情報の価値とサイズとを基に、決められたデータサイズに収まるかたちで価値の総和を最大化する挙動情報の組み合わせを決定する機能を有する。
認可要求制御部130は、端末10からリソース30へのアクセス要求を捕捉すると、認可要求メッセージ送信部140に対して認可要求メッセージ510の発行を要求する。また、認可要求制御部130は、アクセス制御装置20における認可要求メッセージ510の処理時間を基に、アクセス要求520を一定時間バッファリングした後、リソース30へ送信する。
認可要求メッセージ送信部140は、認可要求制御部130の指示に基づいて認可要求メッセージ510を作成し、アクセス制御装置20へと送信する。なお、以下の説明では、アクセス要求520を送信する認可要求制御部130と、認可要求メッセージ510を送信する認可要求メッセージ送信部140とを、別の機能部として説明するが、本実施形態に係る動的アクセス認可システム1では、例えば、認可要求制御部130が認可要求メッセージ送信部140による機能を含むように構成されてもよい。
端末設定DB310、挙動監視部管理DB320、及び認可要求メッセージ履歴DB330は、端末10において端末側プログラム100が動作する際に参照される各種情報を格納するデータ保持部である。
端末設定DB310は、端末側プログラム100の種々の設定に関する情報として、端末設定情報を格納する。後述する図3には、端末設定情報の具体例が示される。
挙動監視部管理DB320は、挙動監視部110に関するパラメータ、及び端末10で観測された挙動情報に関連する情報として、挙動監視部管理情報を格納する。後述する図4には、挙動監視部管理情報の具体例が示される。
認可要求メッセージ履歴DB330は、端末10が過去に発行した認可要求メッセージ510の送信日時などに関する情報として、認可要求メッセージ履歴情報を格納する。後述する図5には、認可要求メッセージ履歴情報の具体例が示される。
(1-2)アクセス制御装置20
アクセス制御装置20は、認可要求メッセージ510に対して認可の可否を判定し、その判定結果を基に、アクセス要求520の通過/遮断の処理を実施する計算機であって、例えば、パーソナルコンピュータやサーバといった一般的な計算機で実現することができる。アクセス制御装置20は、制御装置側プログラム200、アクセス制御設定DB410、アクセスポリシースクリプトDB420、及びアクセス認可情報DB430を備える。なお、図1には不図示であるが、アクセス制御装置20も、端末10と同様にOS/アプリケーションを備えると考えてよい。
制御装置側プログラム200は、端末10から受信した認可要求メッセージ510に対して、端末10で観測された動的情報(具体的には例えば挙動情報)に基づいてアクセスの認可判定を行い、その判定結果を基に、アクセス要求520を通過あるいは遮断する通過/遮断処理を実施する。制御装置側プログラム200には、ポリシー管理部210、認可要求メッセージ受信部220、挙動情報伸長部230、アクセス判定部240、及びアクセス制御部250が含まれる。
ポリシー管理部210は、アクセス認可を行うためのアクセスポリシースクリプトを管理する。アクセスポリシースクリプトは、XML(eXtensible Markup Language)、JSON(JavaScript Object Notation)、またはテキスト形式で論理式が記述される文書である。アクセスポリシースクリプトは、例えば管理者によって管理用端末40で記述されてアクセス制御装置20に送信され、ポリシー管理部210によってアクセスポリシースクリプトDB420に格納される。
認可要求メッセージ受信部220は、端末10から送信された認可要求メッセージ510を受信する機能を有する。
挙動情報伸長部230は、挙動情報圧縮部121によって圧縮された挙動情報を伸長する役割を持つ。なお、本実施形態において挙動情報伸長部230が実行する伸長処理は、挙動情報がZIPなどの可逆圧縮形式で圧縮されている場合は、いわゆる解凍処理にあたる。一方、挙動情報が非可逆圧縮形式で圧縮されている場合は、圧縮された挙動情報内にある特定データ(本実施形態では、後述する「キーワード」及び「圧縮挙動情報キーワード」に相当)が記録されているかどうかを判定し、記録されている場合は特定データを用いて挙動情報を置き換える処理を、伸長処理とする。
具体的には例えば、圧縮された挙動情報XにプロセスA,プロセスB,プロセスCなどのプロセスのリストが記録されている場合、挙動情報伸長部230は特定のプロセス(例えばプロセスB)が当該の挙動情報Xに記録されているか否かを判定する。もしプロセスBが記録されていると判定された場合、挙動情報XをプロセスBで置き換える。これにより、後段のアクセス判定部240によるアクセス可否の判定処理(図14のステップS242に示す認可判定)において、アクセスポリシースクリプトと挙動情報との対応を基に、アクセスの可否を判定することができる。
アクセス判定部240は、挙動情報伸長部230により伸長された認可要求メッセージ510を、ポリシー管理部210が管理し、アクセスポリシースクリプトDB420に格納されたアクセスポリシースクリプトに適用することにより、アクセス可否を判定する。
アクセス制御部250は、アクセス判定部240による認可判定の判定結果に応じて、アクセス要求520の通過/遮断処理を実施する。
アクセス制御設定DB410、アクセスポリシースクリプトDB420、及びアクセス認可情報DB430は、アクセス制御装置20において制御装置側プログラム200が動作する際に参照される各種情報を格納するデータ保持部である。
アクセス制御設定DB410は、アクセス制御装置20の設定に関する情報として、アクセス制御設定情報を格納する。後述する図6には、アクセス制御設定情報の具体例が示される。
アクセスポリシースクリプトDB420は、アクセス認可を行うためのアクセスポリシースクリプトを記録する。前述したように、アクセスポリシースクリプトはポリシー管理部210によって管理される。後述する図7には、アクセスポリシースクリプトの具体例が示される。
アクセス認可情報DB430は、アクセス判定部240によって実行された認可判定の判定結果を示す情報として、アクセス認可情報を記録する。アクセス認可情報は、アクセス制御部250によって利用される。後述する図8には、アクセス認可情報の具体例が示される。
(1-3)リソース30、管理用端末40
リソース30は、端末10からのアクセス要求の対象となるリソースを保持する計算機であって、Webサーバ、データベースサーバ、計算用サーバ、アカウント管理サーバ、またはメールサーバなど、業務で使用される様々な計算機がその対象となる。本説明では、簡略のため、特段の断りがある場合を除き、アクセス要求520でアクセスが要求されるデータとしてのリソースと、当該リソースを保持するリソース装置とを区別することなく、リソース30として記載する。
管理用端末40は、管理者が使用する計算機である。先述した通り、管理者は管理用端末40を通じて、アクセス制御装置20のポリシー管理部210にアクセスし、アクセスポリシースクリプトの作成や編集を行う。また、アクセス制御部250によるアクセス要求520の制御結果は、管理者通知メッセージ530として管理用端末40に送信され、管理用端末40のディスプレイ等に表示される。
(2)ハードウェア構成
図2は、端末10、アクセス制御装置20、リソース30、及び管理用端末40のハードウェア構成例を示すブロック図である。上記の各装置は、例えば、図2に示したハードウェア構成を有する情報処理装置50によって実現することができる。図2に示した情報処理装置50は、一般的な情報処理装置であって、CPU51、メモリ52、外部記憶装置53、インタフェース(IF)54、及び入出力装置55が、バス56によって互いに接続されて構成される。
CPU51は、演算処理を行うプロセッサの一例であって、例えばCPU(Central Processing Unit)である。情報処理装置50では、CPU51がメモリ52に記憶されたプログラムを実行することにより、当該装置が有する所定の機能が実現される。具体的には例えば、情報処理装置50が端末10である場合、CPU51は、メモリ52に記憶された端末側プログラム100を実行することにより、各機能の処理ルーチン(挙動監視部110、挙動情報調整部120、認可要求制御部130、認可要求メッセージ送信部140)を具現化する。また例えば、情報処理装置50がアクセス制御装置20である場合、CPU51は、メモリ52に記憶された制御装置側プログラム200を実行することにより、各機能の処理ルーチン(ポリシー管理部210、認可要求メッセージ受信部220、挙動情報伸長部230、アクセス判定部240、アクセス制御部250)を具現化する。
メモリ52は、主記憶装置であって、当該装置における各機能部を実現するために必要な実行プログラム(例えば、端末側プログラム100)を記憶する。メモリ52は、上記プログラムの実行に係るデータの短期記憶を行うためにも用いられる。
外部記憶装置53は、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の非一時的な記憶装置であって、主にデータの長期記憶を行うために用いられる。具体的には例えば、情報処理装置50が端末10である場合、端末設定DB310、挙動監視部管理DB320、及び認可要求メッセージ履歴DB330は、当該情報処理装置50の外部記憶装置53によって実現することができる。また例えば、情報処理装置50がアクセス制御装置20である場合、アクセス制御設定DB410、アクセスポリシースクリプトDB420、及びアクセス認可情報DB430は、当該情報処理装置50の外部記憶装置53によって実現することができる。
IF54は、通信インタフェース及び入出力インタフェース等の各種インタフェースである。例えば、情報処理装置50が端末10である場合、通信インタフェースとしてのIF54は、端末10を通信ネットワーク41に接続する。また例えば、情報処理装置50がアクセス制御装置20である場合、通信インタフェースとしてのIF54は、アクセス制御装置20を通信ネットワーク41及び通信ネットワーク42に接続する。
入出力装置55は、ユーザ等による情報処理装置50への各種情報の入力を受け付ける入力装置、及び、情報処理装置50に格納されている情報の外部への出力を行う出力装置である。入力装置としての入出力装置55は、例えば、キーボード、マウス、またはタッチパネルなどである。出力装置としての入出力装置55は、例えば、液晶表示装置、有機EL(Electro Luminescence)ディスプレイ、またはプリンタなどである。
バス56は、通信線であって、情報処理装置50を構成する各装置(CPU51、メモリ52、外部記憶装置53、IF54、入出力装置55)を接続し、これらの装置間における情報のやり取りを実現する。
なお、情報処理装置50においてCPU51が実行するプログラムや当該プログラムが参照するデータの一部または全ては、メモリ52または外部記憶装置53に予め格納されていてもよいし、必要に応じて、IF54を介して、ネットワークで接続された他の装置の非一時的記憶装置から、または非一時的な記憶媒体から、情報処理装置50の外部記憶装置53に格納されるように構成されてもよい。
(3)データ構成
(3-1)端末設定DB310
図3は、端末設定情報の一例を示す図である。図3の端末設定情報3100は、端末設定DB310に格納される端末設定情報の一例であり、端末側プログラム100における種々の設定項目の情報が記録される。図3に示したように、端末設定情報3100は、ID3101、項目3102、及び値3103の項目を有する。
ID3101は、データベース内でレコードを一意に識別するための符号である。項目3102は、設定項目を指し示す符号であり、例えば文字列で表される。値3103は、項目3102に対応する値を示すものであり、その値は文字列や数値など任意である。
以下、図3の端末設定情報3100における具体的な記録内容を説明する。
ID3101=「1」の項目3102に示す「最大許容データサイズ」は、認可要求メッセージ510に格納可能な挙動情報の最大データサイズを規定する。図3の場合、当該レコードの値3103には「1000byte」が設定されている。
ID3101=「2」の項目3102に示す「挙動情報圧縮方式」は、挙動情報圧縮部121が実行する情報圧縮アルゴリズムを規定する。図3の場合、当該レコードの値3103には「BloomFilter」が設定されている。BloomFilterは、非可逆圧縮アルゴリズムの一種であり、複数のデータをビット配列に登録し、後で任意のデータがビット配列に登録されているかどうかを、一定の誤識別率の下で判定することができる。BloomFilterでは、データのビット配列への登録処理において、登録対象データに複数種類のハッシュ関数を適用して得られたハッシュ値に該当するビット配列の要素を「1」に設定する。そして、データがビット配列に登録されているか否かの判定処理において、判定対象データのハッシュ値に対応するビット配列の要素が全て「1」であるか否かを確認する。なお、BloomFilterは、一般的な可逆圧縮方式よりも高い圧縮率を実現するが、その仕組み上、判定処理において、ビット配列に実際には入っていない(登録されていない)データが、当該ビット配列に登録されている、と誤識別される場合がある。
ID3101=「3」の項目3102に示す「最大許容誤識別率」は、ID3101=「2」で述べたBloomFilterの誤識別率の許容値を規定するパラメータである。図3の場合、当該レコードの値3103には「0.0001」が設定されている。
ID3101=「4」の項目3102に示す「推定平均検証時間」は、アクセス制御装置20が認可要求メッセージ510の検証処理に要する時間の推定値を規定する。この推定値は、認可要求制御部130がアクセス要求520のパケットをバッファリングする時間を求める際に使用される。図3の場合、当該レコードの値3103には「200msec」が設定されている。
ID3101=「5」の項目3102に示す「推定通信許可時間」は、アクセス制御装置20が、認可要求メッセージ510を検証した結果、アクセス要求520を許可すると判断した場合に、その判断結果が継続する時間の推定最小値を規定する。図3の場合、当該レコードの値3103には「10sec」が設定されている。
ID3101=「6」の項目3102に示す「挙動情報圧縮部フラグ」は、認可要求メッセージ510を作成する際に、挙動情報圧縮部121の機能を使用するか否かを規定する。図3の場合、当該レコードの値3103には、使用を意味する「On」が設定されている。
ID3101=「7」の項目3102に示す「挙動情報優先付け部フラグ」は、認可要求メッセージ510を作成する際に、挙動情報優先付け部122の機能を使用するか否かを規定する。図3の場合、当該レコードの値3103には、使用を意味する「On」が設定されている。
ID3101=「8」の項目3102に示す「挙動更新間隔」は、挙動監視部110が最新の挙動情報を挙動監視部管理DB320(挙動監視部管理情報)に反映する時間間隔を規定する。図3の場合、当該レコードの値3103には「10sec」が設定されている。
ID3101=「9」の項目3102に示す「想定最大パケットロス率」は、通信ネットワーク41で発生するパケットロス率の想定される最大値を設定する。図3の場合、当該レコードの値3103には「20%」が設定されている。
ID3101=「10」の項目3102に示す「自端末秘密鍵」は、認可要求メッセージ510に付与する電子署名の作成に必要な鍵を規定する。図3の場合、当該レコードの値3103には「fa31cf31...」が設定されている。
ID3101=「11」~「13」の各レコードは、アクセス制御装置20の公開鍵に関する情報であり、認可要求メッセージ510はこれらの公開鍵で暗号化される。本実施形態に係る動的アクセス認可システム1では、端末10がアクセスを要求するリソース30に依存して、認可要求メッセージ510の送信先となるアクセス制御装置20も変わる。図3の場合は、一例として、3台のアクセス制御装置20(個別には、アクセス制御装置X,Y,Z)が通信ネットワーク41に存在すると仮定している。なお、リソース30とアクセス制御装置20との対応付けは、データベースで予め定めて管理するとしてもよいし、リソース30のIPアドレスに基づいて、対応するアクセス制御装置20のIPアドレスを一意に特定するとしてもよい。具体的には例えば、リソース30のIPアドレスが「A.B.C.D」である場合に、対応するアクセス制御装置20のIPアドレスを「A.B.C.1」とすることなどが考えられる。
ID3101=「11」の項目3102に示す「アクセス制御装置X公開鍵」は、アクセス制御装置Xの公開鍵を規定する。図3の場合、当該レコードの値3103には「a381f13...」が設定されている。
ID3101=「12」の項目3102に示す「アクセス制御装置Y公開鍵」は、アクセス制御装置Yの公開鍵を規定する。図3の場合、当該レコードの値3103には「c39ddff1...」が設定されている。
ID3101=「13」の項目3102に示す「アクセス制御装置Z公開鍵」は、アクセス制御装置Zの公開鍵を規定する。図3の場合、当該レコードの値3103には「e390413...」が設定されている。
(3-2)挙動監視部管理DB320
図4は、挙動監視部管理情報の一例を示す図である。図4の挙動監視部管理情報3200は、挙動監視部管理DB320に格納される挙動監視部管理情報の一例であり、挙動監視部110のパラメータ、及び端末10で観測し出力された挙動情報の管理に関する情報が記録される。図4に示したように、挙動監視部管理情報3200は、ID3201、挙動監視部名称3202、タイプ3203、価値3204、出力形式3205、圧縮対象3206、最新挙動情報3207、出力サイズ3208、圧縮後サイズ3209、及び採用フラグ3210の項目を有する。
ID3201は、データベース内でレコードを一意に識別するための符号である。挙動監視部名称3202は、個々の挙動監視部110の名称を示す。
タイプ3203は、監視対象を基に、挙動監視部110を分類する識別子である。図4では、一例として、「プロセス」、「通信」、「センサ」、「内部犯行」、及び「通信」の5種類の識別子が示されている。
価値3204は、挙動監視部110が出力する挙動情報の価値を示す値であり、値が大きいほど価値が高いことを表す。価値3204の値は、端末側プログラム100が端末10にインストールされる前に、管理者によって予め定められる。但し、動的アクセス認可システム1では、システムの運用中に価値3204の値を変更するようにしてもよい。
出力形式3205は、挙動監視部110が出力する挙動情報の形式である。図4では、一例として、「整数値」、「リスト」、及び「二値」の3種類の形式が示されている。
圧縮対象3206は、挙動監視部110による挙動監視によって出力される挙動情報が、挙動情報圧縮部121による圧縮処理の対象であるか否かを判断するためのフラグである。圧縮対象3206の値が「YES」の場合は、圧縮処理の対象であることを表し、「NO」の場合は圧縮処理の対象ではないことを表す。但し、圧縮対象3206=「YES」の挙動情報であっても、当該挙動情報のデータサイズが、端末設定情報3100のID3101=「1」で示される最大許容データサイズと比べて余裕がある場合には、実際には圧縮処理が行われないこともある。
最新挙動情報3207は、挙動監視部110が出力する最新の挙動情報を記録する。なお、挙動情報圧縮部121によって挙動情報に圧縮処理が実施された後は、最新挙動情報3207には、圧縮後の挙動情報の値が記録される。
出力サイズ3208は、最新挙動情報3207のデータサイズを示す。但し、挙動情報圧縮部121による圧縮処理が施された挙動情報については、出力サイズ3208には、圧縮前の挙動情報のデータサイズが記録される。なお、挙動監視部110の仕組みによっては、挙動情報は可変長となるが、その場合、出力サイズ3208の値は、その時々で変化してもよい。
圧縮後サイズ3209は、圧縮処理が施された後の挙動情報のデータサイズを示す。なお、挙動情報が圧縮処理の対象外である場合、圧縮後サイズ3209には、「n/a」のように無効を表す値が記録される。
採用フラグ3210は、複数の挙動情報の組み合わせを決定する挙動情報優先付け部122による処理の対象であるか否かを示すフラグであり、言い換えれば、当該レコードの挙動情報を要求メッセージ510に載せるか否かの判断結果を示すフラグである。図4では、採用フラグ3210には、「On」または「Off」の値が記録されている。
以下、図4の挙動監視部管理情報3200における具体的な記録内容を説明する。
ID3201=「1」のレコードは、挙動監視部名称3202が「不審プロセス起動数」である挙動監視部110に関する情報を保持する。この監視挙動部100は、過去に発生したことがないプロセスが、直近の一定時間以内に発生した回数を、挙動情報として記録する。なお、上記「過去」とは、厳密には、上記「直近の一定時間」よりも前、を意味するものであり、これは、挙動監視部管理情報3200における他のレコードについて後述する際の「過去」についても同様である。また、上記「直近の一定時間」とは、現在時刻を基点とする一定の時間幅を指す。時間幅の具体的な値としては、例えば「10秒」、「1分」、「1時間」など、数秒~数時間の範囲が考えられる。時間幅の値は複数の挙動監視部110で共通の値を設定しても良いし、各挙動監視部110の特性に合わせ個別の値を設定しても良い。また、運用中に設定ファイルなどを通じて値を変更してもよい。挙動情報の記録には、OS/アプリケーション11が提供するAPIを利用する。図4の場合、当該レコードにおいて、タイプ3203は「プロセス」、価値3204は「5」、出力形式3205は「整数値」、圧縮対象3206は「NO」、最新挙動情報3207は「1」、出力サイズ3208は「4byte」、圧縮後サイズ3209は「n/a」、採用フラグ3210は「On」が記録されている。
ID3201=「2」のレコードは、挙動監視部名称3202が「不審通信先数」である挙動監視部110に関する情報を保持する。この監視挙動部100は、端末10が過去に通信した実績は無いが、直近一定時間以内に初めて通信が行われた宛先のユニーク数を、挙動情報として記録する。記録には、OS/アプリケーション11が提供するAPIを利用する。図4の場合、当該レコードにおいて、タイプ3203は「通信」、価値3204は「5」、出力形式3205は「整数値」、圧縮対象3206は「NO」、最新挙動情報3207は「3」、出力サイズ3208は「4byte」、圧縮後サイズ3209は「n/a」、採用フラグ3210は「On」が記録されている。
ID3201=「3」のレコードは、挙動監視部名称3202が「プロセスハッシュ値一覧」である挙動監視部110に関する情報を保持する。この監視挙動部100は、端末10で動作しているプロセスのハッシュ値の一覧を、挙動情報として記録する。記録には、OS/アプリケーション11が提供するAPIを利用する。図4の場合、当該レコードにおいて、タイプ3203は「プロセス」、価値3204は「5」、出力形式3205は「リスト」、圧縮対象3206は「YES」、最新挙動情報3207は「83af,321d,415f,...」、出力サイズ3208は「2000byte」、圧縮後サイズ3209は「150byte」、採用フラグ3210は「On」が記録されている。
ID3201=「4」のレコードは、挙動監視部名称3202が「起動サービス一覧」である挙動監視部110に関する情報を保持する。この監視挙動部100は、端末10内で起動されているサービスの名称一覧を、挙動情報として記録する。記録には、OS/アプリケーション11が提供するAPIを利用する。図4の場合、当該レコードにおいて、タイプ3203は「サービス」、価値3204は「3」、出力形式3205は「リスト」、圧縮対象3206は「YES」、最新挙動情報3207は「a.service,b.service,...」、出力サイズ3208は「1500byte」、圧縮後サイズ3209は「400byte」、採用フラグ3210は「Off」が記録されている。
ID3201=「5」のレコードは、挙動監視部名称3202が「カメラ有効有無」である挙動監視部110に関する情報を保持する。この監視挙動部100は、端末10の中でカメラ機能が有効化されているか否かを、挙動情報として記録する。具体的には例えば、有効化されている場合は最新挙動情報3207に「True」が記録され、有効化されていない(無効化されている)場合は最新挙動情報3207に「False」が記録される。記録には、OS/アプリケーション11が提供するAPIを利用する。図4の場合、当該レコードにおいて、タイプ3203は「センサ」、価値3204は「2」、出力形式3205は「二値」、圧縮対象3206は「NO」、最新挙動情報3207は「False」、出力サイズ3208は「1byte」、圧縮後サイズ3209は「n/a」、採用フラグ3210は「On」が記録されている。
ID3201=「6」のレコードは、挙動監視部名称3202が「マイク有効有無」である挙動監視部110に関する情報を保持する。この監視挙動部100は、端末10の中でマイク機能が有効化されているか否かを、挙動情報として記録する。具体的には例えば、有効化されている場合は最新挙動情報3207に「True」が記録され、有効化されていない(無効化されている)場合は最新挙動情報3207に「False」が記録される。記録には、OS/アプリケーション11が提供するAPIを利用する。図4の場合、当該レコードにおいて、タイプ3203は「センサ」、価値3204は「2」、出力形式3205は「二値」、圧縮対象3206は「NO」、最新挙動情報3207は「True」、出力サイズ3208は「1byte」、圧縮後サイズ3209は「n/a」、採用フラグ3210は「On」が記録されている。
ID3201=「7」のレコードは、挙動監視部名称3202が「ユーザアイドル時間」である挙動監視部110に関する情報を保持する。この監視挙動部100は、端末10に対してユーザがキーボードやマウスなどのインタフェースを通じた操作を最後に行った日時と現在日時との差を、挙動情報として記録する。記録には、OS/アプリケーション11が提供するAPIを利用する。図4の場合、当該レコードにおいて、タイプ3203は「ユーザ」、価値3204は「2」、出力形式3205は「二値」、圧縮対象3206は「NO」、最新挙動情報3207は「450」、出力サイズ3208は「4byte」、圧縮後サイズ3209は「n/a」、採用フラグ3210は「Off」が記録されている。
ID3201=「8」のレコードは、挙動監視部名称3202が「印刷実行回数」である挙動監視部110に関する情報を保持する。この監視挙動部100は、一定時間内にユーザが印刷を行った回数を、挙動情報として記録する。記録には、OS/アプリケーション11が提供するAPIを利用する。図4の場合、当該レコードにおいて、タイプ3203は「内部犯行」、価値3204は「3」、出力形式3205は「整数値」、圧縮対象3206は「NO」、最新挙動情報3207は「30」、出力サイズ3208は「4byte」、圧縮後サイズ3209は「n/a」、採用フラグ3210は「On」が記録されている。
ID3201=「9」のレコードは、挙動監視部名称3202が「USBメモリ挿入有無」である挙動監視部110に関する情報を保持する。この監視挙動部100は、一定時間以内に、従来使用されたことがないUSBメモリが端末10に挿入されたか否かを、挙動情報として記録する。具体的には例えば、従来使用されたことがないUSBメモリが端末10に挿入された場合は最新挙動情報3207に「True」が記録され、上記USBメモリが端末10に挿入されなかった場合は最新挙動情報3207に「False」が記録される。記録には、OS/アプリケーション11が提供するAPIを利用する。図4の場合、当該レコードにおいて、タイプ3203は「内部犯行」、価値3204は「4」、出力形式3205は「二値」、圧縮対象3206は「NO」、最新挙動情報3207は「False」、出力サイズ3208は「1byte」、圧縮後サイズ3209は「n/a」、採用フラグ3210は「Off」が記録されている。
ID3201=「10」のレコードは、挙動監視部名称3202が「アップロード通信量」である挙動監視部110に関する情報を保持する。この監視挙動部100は、一定時間内に発生した、インターネット上の計算機へのデータ送信量の最大値を、挙動情報として記録する。記録には、OS/アプリケーション11が提供するAPIを利用する。図4の場合、当該レコードにおいて、タイプ3203は「通信」、価値3204は「5」、出力形式3205は「」、圧縮対象3206は「NO」、最新挙動情報3207は「1310」、出力サイズ3208は「4byte」、圧縮後サイズ3209は「n/a」、採用フラグ3210は「On」が記録されている。
(3-3)認可要求メッセージ履歴DB330
図5は、認可要求メッセージ履歴情報の一例を示す図である。図5の認可要求メッセージ履歴情報3300は、認可要求メッセージ履歴DB330に格納される認可要求メッセージ履歴情報の一例であり、端末10が過去に発行した認可要求メッセージ510について、送信先や送信日時などの情報が記録される。図5に示したように、認可要求メッセージ履歴情報3300は、ID3301、宛先アクセス制御装置3302、及び認可要求メッセージ送信日時3303の項目を有する。
ID3301は、データベース内でレコードを一意に識別するための符号である。宛先アクセス制御装置3302は、認可要求メッセージ510の宛先とされたアクセス制御装置20を示す情報である。認可要求メッセージ送信日時3303は、宛先アクセス制御装置3302で指定されたアクセス制御装置20に対して認可要求メッセージ510を送信した日時である。
以下、図5の認可要求メッセージ履歴情報3300における具体的な記録内容を説明する。
ID3301=「1」のレコードは、アクセス制御装置Xを宛先として、「2021-03-08 15:00:00」、「2021-03-08 15:00:01」、及び「2021-03-08 15:00:02」の日時に、認可要求メッセージ510が送信されたことを意味する。
ID3301=「2」のレコードは、アクセス制御装置Yを宛先として、「2021-03-08 13:00:00」及び「2021-03-08 14:00:00」の日時に、認可要求メッセージ510が送信されたことを意味する。
ID3301=「3」のレコードは、アクセス制御装置Zを宛先として、「2021-03-08 16:00:00」及び「2021-03-08 16:00:10」の日時に、認可要求メッセージ510が送信されたことを意味する。
(3-4)アクセス制御設定DB410
図6は、アクセス制御設定情報の一例を示す図である。図6のアクセス制御設定情報4100は、アクセス制御設定DB410に格納されるアクセス制御設定情報の一例であり、アクセス制御装置20における種々の設定項目の情報が記録される。図6に示したように、アクセス制御設定情報4100は、ID4101、項目4102、及び値4103の項目を有する。
ID4101は、データベース内でレコードを一意に識別するための符号である。項目4102は、設定項目を指し示す符号であり、例えば文字列で表される。値4103は、項目4102に対応する値を示すものであり、その値は文字列や数値など任意である。
以下、図6のアクセス制御設定情報4100における具体的な記録内容を説明する。
ID4101=「1」の項目4102に示す「制御装置秘密鍵」は、アクセス制御設定情報4100を保持するアクセス制御装置20が管理する秘密鍵を規定する。図6の場合、当該レコードの値4103には「1cf32d31...」が設定されている。
ID4101=「2」~「4」の各レコードは、アクセス制御装置20にアクセスする可能性がある端末10の公開鍵に関する情報である。具体的には、ID4101=「2」の項目4102に示す「端末A公開鍵」は、端末Aの公開鍵を規定しており、図6の場合、当該レコードの値4103は「1deaf13...」である。また、ID4101=「3」の項目4102に示す「端末B公開鍵」は、端末Bの公開鍵を規定しており、図6の場合、当該レコードの値4103は「f3932cf1...」である。また、ID4101=「4」の項目4102に示す「端末C公開鍵」は、端末Cの公開鍵を規定しており、図6の場合、当該レコードの値4103は「c3d0436...」である。
ID4101=「5」の項目4102に示す「情報伸長対象監視部」は、圧縮処理が行われる可能性がある挙動監視部110の挙動監視部名称3202を規定する。本説明の構成では、図6に示したように、値4103に「プロセスハッシュ値一覧」及び「起動サービス一覧」が規定されている。
ID4101=「6」の項目4102に示す「遮断モード」は、アクセス判定部240によるアクセスの認可判定の結果、通信遮断が決定された場合に設定される遮断モードを規定する。当該レコードの値4103には、選択可能な遮断モードのフラグが記録される。具体的には例えば、通信遮断が決定された以後のアクセス要求520を完全に遮断する遮断モードのフラグを「完全遮断」とし、通信遮断が決定された以後の一定の遮断期間の後に、無条件にアクセス要求520を許可する期間を設ける遮断モードのフラグを「一時遮断」とする。「一時遮断」の遮断モードが選択された場合は、正常な通信が誤判断によって遮断されてしまった場合でも、その後の一定の通信許可期間を設けることにより、上記正常な通信の遮断によって業務が完全に停止することを回避することが可能となる。
ID4101=「7」の項目4102に示す「通信遮断間隔」は、「一時遮断」の遮断モードが行われる場合の遮断期間の長さを規定する。図6の場合、当該レコードの値4103の値は「30sec」である。
ID4101=「8」の項目4102に示す「通信通過間隔」は、アクセス判定部240によりアクセス要求520の通信通過が許可された場合、あるいはアクセス要求520の通信が一時遮断されて通信遮断期間が過ぎた場合に、無条件にアクセス要求520の通過が許可される期間(通信許可期間)の長さを規定する。この通信許可期間が経過した後は、再び認可要求メッセージ510が認可されるまで、アクセス要求520は遮断される。図6の場合、当該レコードの値4103の値は「40sec」である。なお、一旦、認可要求メッセージ510が認可された通信は、通信通過間隔の規定に拘わらず、通信終了まで遮断されることはないとする。
(3-5)アクセスポリシースクリプトDB420
図7は、アクセスポリシースクリプトの一例を示す図である。図7のアクセスポリシースクリプト4200は、アクセスポリシースクリプトDB420に格納されるアクセスポリシースクリプトの一例であり、アクセス制御部250が認可要求メッセージ510に対する認可判定の処理を行う際に参照される。図7に示したように、アクセスポリシースクリプト4200は、ID4201、スクリプト4202、及び圧縮挙動情報キーワード4203の項目を有する。
ID4201は、データベース内でレコードを一意に識別するための符号である。
スクリプト4202には、アクセスポリシーのスクリプトが記述される。アクセスポリシースクリプトには、アクセス元である端末10の属性を示す“subject”、アクセス先であるリソース30の属性を示す“resource”、及び端末10で観測された挙動情報である“behavior”の3つの観点から論理式が記述される。そして、認可要求メッセージ510に含まれる内容が全ての論理式が満たしている場合に限り、“judgement”の記載に従って、通過または遮断の判定を行う。“subject”の属性としては、端末10のIPアドレスや識別子、端末10を操作しているユーザ名やアカウントID、あるいはユーザの職位、所属組織名、与えられたセキュリティクリアランスなどが考えられる。“resource”の属性としては、リソース30のIPアドレス、提供するサービスのタイプなどが考えられる。
圧縮挙動情報キーワード4203は、挙動情報伸長部230による圧縮挙動情報伸長化処理(後述する図15参照)において、非可逆圧縮処理が施された挙動情報内に記録されているか否かの確認対象とされる「キーワード」を示す。圧縮挙動情報キーワード4203に記載されるキーワードは、スクリプト4202の記述から、アクセス制御設定情報4100のID4101=「5」で指定された情報伸長対象監視部の値4103に該当する値を抽出したものである。
以下、図7のアクセスポリシースクリプト4200における具体的な記録内容を説明する。
ID4201=「1」であるレコードのスクリプト4202は、“judgement”=「通過」となるアクセスポリシースクリプトの一例である。subjectが満たす要件として、端末10を操作しているユーザ名が“Alice”であることが規定されている。次に“resource”が満たす要件として、リソース30のIPアドレスが“10.0.0.8/8”に含まれることが規定されている。次に“behavior”としては3つの挙動情報に関する論理式が規定されている。複数の論理式が規定されている場合、その中の1つ以上あるいは全てを満たす必要がある。ここでは“AND”により全ての論理式を満たす必要があることを規定している。1つ目の論理式は、挙動監視部管理情報3200のID3201=「1」で指定された「不審プロセス起動数」が20未満であることが規定されている。2つ目の論理式は、挙動監視部管理情報3200のID3201=「7」で指定された「ユーザアイドル時間」が120秒以内であることが規定されている。3つ目の論理式は、挙動監視部管理情報3200のID3201=「4」で指定された「起動サービス一覧」に、“アンチウイルスX”及び“セキュリティサービスY”が含まれることを規定している。そして、当該レコードにおける圧縮挙動情報キーワード4203には、“アンチウイルスX”及び“セキュリティサービスY”が記載されている。
ID4201=「2」であるレコードのスクリプト4202は、“judgement”=「遮断」となるアクセスポリシースクリプトの一例である。“subject”が満たす要件として、端末10を操作しているユーザのセキュリティクリアランスが“H”であることが規定されている。次に“resource”が満たす要件として、リソース30が提供するサービスのタイプが“データベース”であることが規定されている。次に“behavior”では、挙動監視部管理情報3200のID3201=「3」で指定された「プロセスハッシュ値一覧」の中に“3abe4b2”または“ffa3bf23”が含まれることが規定されている。そして、当該レコードにおける圧縮挙動情報キーワード4203には、“3abe4b2”及び“ffa3bf23”が記載されている。
(3-6)アクセス認可情報DB430
図8は、アクセス認可情報の一例を示す図である。図8のアクセス認可情報4300は、アクセス認可情報DB430に格納されるアクセス認可情報の一例であり、アクセス判定部240によって実行された認可判定の判定結果を示す情報が記録される。アクセス制御部250は、アクセス認可情報に従って、アクセス要求520の通過/遮断処理を行う。図8に示したように、アクセス認可情報4300は、ID4301、端末IPアドレス4302、リソースIPアドレス4303、メッセージタイムスタンプ4304、通信遮断期間4305、及び通信通過期間4306の項目を有する。
ID4301は、データベース内でレコードを一意に識別するための符号である。端末IPアドレス4302は、通過若しくは遮断の対象となる端末10のIPアドレスを示す。リソースIPアドレス4303は、端末10がアクセス要求するリソース30のIPアドレスを示す。メッセージタイムスタンプ4304は、認可要求メッセージ510の認可判定が行われた日時を示す。
通信遮断期間4305は、認可判定の判定結果が「一時遮断」となった場合に、通信を遮断する期間を示す。認可判定の結果が「完全遮断」または「通過」となった場合は、通信遮断期間4305には「N/A」が記載される。なお、通信遮断期間の開始日時と終了日時との差分は、アクセス制御設定情報4100においてID4101=「7」の「通信遮断間隔」レコードで規定される。
通信通過期間4306は、端末IPアドレス4302からリソースIPアドレス4303に対してアクセス要求520の通過を許可する期間を示す。この期間を過ぎた場合、アクセス要求520は須らく遮断される。なお、通信通過期間の開始日時と終了日時との差分は、アクセス制御設定情報4100においてID4101=「8」の「通信通過間隔」レコードで規定される。
なお、図8に例示したアクセス認可情報4300では、リソース30の宛先ポート番号が項目に含まれていないが、変形例として、アクセス認可情報に宛先ポート番号を含むようにして、宛先のポート番号によって通信の通過/遮断の制御を実行可能にしてもよい。このようにする場合、例えば、80番ポートへの通信は許可するが、443番ポートへの通信は遮断するといった制御も可能である。
以下、図8のアクセス認可情報4300における具体的な記録内容を説明する。
ID4301=「1」のレコードは、端末IPアドレス4302=「10.0.0.1」、リソースIPアドレス4303=「20.0.0.1」、メッセージタイムスタンプ4304=「20:23:10」、通信遮断期間4305=「20:23:10~20:23:40」、通信通過期間4306=「20:23:40~20:24:20」である。
ID4301=「2」のレコードは、端末IPアドレス4302=「10.0.0.1」、リソースIPアドレス4303=「20.0.0.2」、メッセージタイムスタンプ4304=「21:00:00」、通信遮断期間4305=「N/A」、通信通過期間4306=「21:00:00~21:00:40」である。
ID4301=「3」のレコードは、端末IPアドレス4302=「10.0.0.2」、リソースIPアドレス4303=「20.0.0.2」、メッセージタイムスタンプ4304=「22:12:03」、通信遮断期間4305=「22:12:03~22:12:33」、通信通過期間4306=「22:12:33~22:13:13」である。
(3-7)各種メッセージ
図9は、認可要求メッセージ510のデータフォーマットの一例を示す図である。図9に示すデータフォーマット5100は、認可要求メッセージ510のデータフォーマットの一例であり、データフォーマット5100は、ID5101及び項目5102を有して構成される。
ID5101は、認可要求メッセージ510内の各項目5102を一意に識別するための符号である。項目5102は、各項目を指し示す符号であり、例えば文字列で表される。
以下、図9のデータフォーマット5100における各項目の詳細な内容を説明する。
ID5101=「1」の項目5102に示す「タイムスタンプ」は、認可要求メッセージ510が作成された日時を示す。この情報は、攻撃者が、盗聴した認可要求メッセージ510を何度もアクセス制御装置20に送信して不正な認可を行おうとするリプレイアタックを防ぐために用いられる。
ID5101=「2」の項目5102に示す「端末識別子・属性」は、端末10を識別するための端末識別子、及び端末10の属性情報を示す。端末識別子には、例えばIPアドレスや計算機名称などを用いることができ、属性情報には、例えば端末10の種類や用途などに関する情報を用いることができる。
ID5101=「3」の項目5102に示す「ユーザ識別子・属性」は、端末10を操作するユーザを識別するためのユーザ識別子、及びユーザの属性情報を示す。ユーザ識別子には、例えばユーザ名や従業員番号などを用いることができ、属性情報には、例えばユーザのセキュリティクリアランスや所属などを用いることができる。
ID5101=「4」の項目5102に示す「アクセス先リソース識別子・属性」は、認可要求メッセージ510に対応するアクセス要求520がアクセスを要求するリソース30(アクセス先リソース)を識別するためのアクセス先リソース識別子、及び当該アクセス先リソースの属性情報を示す。アクセス先リソース識別子には、例えば、アクセス先リソースのIPアドレスや計算機名称などを用いることができる。また、当該リソース30のサービスが提供しているポート番号をアクセス先リソース識別子に含めてもよい。属性情報には、例えば、当該リソース30の種類や用途などに関する情報を用いることができる。
ID5101=「5」の項目5102に示す「挙動情報一覧」には、認可要求メッセージ510に含まれる挙動情報の一覧が記載される。言い換えれば、ID5101=「5」の項目5102に示す「挙動情報一覧」には、挙動監視部管理情報3200においてあるタイミングで採用フラグ3210が「On」となる挙動情報が記載される。なお、「挙動情報一覧」に記載される挙動情報は、挙動監視部110の識別子ごとに記載されており、後から特定の挙動監視部110に関わる挙動情報のみを抜き出すことができるものとする。
ID5101=「6」の項目5102に示す「共通鍵」には、ID5101=「1」~「5」の各項目を暗号化するための共通鍵暗号が記載される。また、共通鍵自体は、端末設定情報3100のID3101=「11」~「13」に記録された、アクセス制御装置20の公開鍵で暗号化される。
ID5101=「7」の項目5102に示す「端末側の電子署名」には、端末設定情報3100のID3101=「10」に記録された自端末秘密鍵を用いて計算された電子署名が記載される。
なお、認可要求メッセージ510の送信においては、ID5101=「1」~「6」の項目は、全て暗号化された状態で送信されることが好ましい。
図10は、管理者通知メッセージ530の一例を示す図である。図10には、管理者通知メッセージ530の具体例として、管理者通知メッセージ530A及び管理者通知メッセージ530Bが示されている。
管理者通知メッセージ530A,530では、端末10からリソース30へのアクセス要求が「完全遮断」されるに至った判断理由が、端末10若しくはユーザの挙動の観点から述べられている。より具体的には、管理者通知メッセージ530Aでは、挙動監視部管理情報3200のID3201=「7」で指定される「ユーザアイドル時間」の挙動情報が規定の値を上回ったことが理由として述べられている。一方、管理者通知メッセージ530Aでは、挙動監視部管理情報3200のID3201=「4」で指定される「起動サービス一覧」の挙動情報が条件を満たさなかったことが理由として述べられている。
(4)処理
以下では、ユーザによる操作などに応じて端末10からリソース30へのアクセス要求が行われる際に、動的アクセス認可システム1が実行する処理について、詳しく説明する。
(4-1)端末10による処理
図11は、端末10側で実施される処理手順例を示すシーケンス図である。なお、図11では、挙動情報圧縮部121及び挙動情報優先付け部122による処理は、挙動情報調整部120による処理として記載されている。
図11に示した挙動監視部110は、挙動監視部管理DB320に保持される挙動監視部管理情報3200の各レコードに記載された挙動監視部に相当する。図11に示すように、これらの挙動監視部110はそれぞれ、端末10やユーザの挙動を監視する(ステップS101)。
そして、挙動監視部110は、ステップS101の監視結果に基づいて、挙動監視部管理情報3200の最新挙動情報3207を更新するとともに、定期的に、挙動情報調整部120に対して挙動情報の更新通知を行う(ステップS102)。挙動監視部110は、ステップS102で更新通知を行った後は、ステップS101に戻り、挙動監視を繰り返す。
なお、ステップS102における挙動監視部管理情報3200の更新間隔は、端末設定DB310に保持される端末設定情報3100におけるID3101=「8」のレコードに記載された挙動更新間隔に従う。これらの構成により、端末側プログラム100に掛かる演算負荷と、挙動情報のリアルタイム性とのバランスを調整することができる。
挙動情報調整部120は、ステップS102で挙動監視部110から送信された挙動情報の更新通知を受信する(ステップS111)。次いで、挙動情報調整部120は、挙動監視部管理情報3200の出力サイズ3208に記載されている各挙動情報のデータサイズを合計し、その合計値が最大許容データサイズ(端末設定情報3100のID=「1」のレコードを参照)を超えるか否かを確認する(ステップS112)。ステップS112において、挙動情報の合計値が最大許容データサイズを超える場合は(ステップS112のYES)、ステップS113に進み、挙動情報の合計値が最大許容データサイズ以下である場合は(ステップS112のNO)、ステップS115に進む。
ステップS113では、挙動情報調整部120の一部である挙動情報圧縮部121が、以下に説明する所定の条件を満足する挙動情報に対して圧縮処理を行う。詳しくは、挙動情報圧縮部121は、端末設定情報3100のID3101=「6」で指定された「挙動情報圧縮部フラグ」を確認し、当該フラグが「On」である場合に、圧縮処理の対象となる挙動情報(挙動監視部管理情報3200において圧縮対象3206=「YES」となっている挙動情報)の最新挙動情報3207に対して、端末設定情報3100のID3101=「2」で指定された圧縮方式に従って、圧縮処理を行う。一方、「挙動情報圧縮部フラグ」が「Off」である場合には、挙動情報圧縮部121は、ステップS113の処理を終了してステップS114に進む。
また、ステップS113において挙動情報圧縮部121は、圧縮処理の結果を最新挙動情報3207及び圧縮後サイズ3209に反映する。そして、圧縮処理後も挙動情報のデータサイズの合計値が最大許容データサイズを超える場合には、ステップS114に進む。
なお、ステップS113における圧縮処理の仕組みは、端末設定情報3100のID3101=「2」で指定される「挙動情報圧縮方式」に依存する。ここで、挙動情報圧縮方式としてBloomFilerを使う場合は、各挙動情報のハッシュ値に対応する位置にあるビット配列の要素を「1」に設定する。例えば、圧縮対象の挙動情報に対応する挙動監視部110が、挙動監視部管理情報3200のID3201=「4」に示された「起動サービスの一覧」である場合は、「a.service」及び「b.service」のハッシュ値を基に、ビット配列を操作する。
ステップS114では、挙動情報調整部120の一部である挙動情報優先付け部122が、以下に詳述する手順によって、認可要求メッセージ510に載せる挙動情報の組み合わせを算出する優先付け処理を行う。
優先付け処理ではまず、挙動情報優先付け部122は、端末設定情報3100のID3101=「7」で指定された「挙動情報優先付け部フラグ」を確認する。「挙動情報優先付け部フラグ」が「Off」である場合には、実質的な優先付け処理が不要であることを意味するため、挙動情報優先付け部122は、全ての採用フラグ3210を「On」に設定し、ステップS115に進む。
「挙動情報優先付け部フラグ」が「On」である場合には、挙動情報優先付け部122は、送信対象となる挙動情報の合計値が最大許容データサイズ以下になる制約の中で、送信対象とする挙動情報の価値3204の合計値が最大化する挙動情報の組み合わせを導出する。上記組み合わせの導出後は、ステップS115に進む。
上記の挙動情報の組み合わせ導出には、遺伝的アルゴリズムや線形計画法などの数理処理を用いることができる。例えば、遺伝的アルゴリズムを使用した場合、送信対象とする挙動情報の組み合わせ(集合)の候補をランダムに一定数、生成する。そして、その中で合計サイズが最大許容データサイズ以下で、価値3204の合計値が比較的高い集合に対して、ランダムな操作や他の集合との掛け合わせなどの操作を繰り返し行い、より価値が高い集合を逐次的に求めていく。そして、繰り返し回数が規定回数を超えた時点で、最も価値が高い集合に含まれる最新挙動情報3207を送信対象として、挙動情報の組み合わせを導出する。
また、様々な観点で動的認可を行うという点では、出来る限り異なるタイプ3203の挙動情報を含む集合を組み合わせることが望ましい。そこで、集合に含まれるタイプの種類を、最適な集合を導出する際のパラメータとして用いてもよい。例えば、遺伝的アルゴリズムの例では、価値3204の合計値に、集合に含まれるタイプ3203の種類を掛け合わせたものを、集合の価値として使用してもよい。具体的には例えば、挙動監視部管理情報3200のID3201=「2」,「10」の挙動情報を組み合わせた場合、タイプ3203の種類は同一であることから、この組み合わせによる価値は(5+5)×1=10となり、出力サイズ3208の合計値は8byteとなる。一方、ID3201=「1」,「2」の挙動情報を組み合わせた場合には、タイプ3203の種類が異なることから、この組み合わせによる価値は(5+5)×2=20となり、出力サイズ3208の合計値は8byteとなる。したがって、この場合は、出力サイズの合計値が同じでも、ID3201=「1」,「2」の挙動情報を組み合わせた方が、価値が高く望ましいといえる。
ステップS115では、挙動情報調整部120が、ステップS112~S114の処理結果に基づいて、認可要求メッセージ510に採用する挙動情報を確定する。詳しくは、ステップS112の判定結果が「NO」である場合(言い換えると、ステップS114の優先付け処理が実施されなかった場合)、挙動情報調整部120は、挙動監視部管理情報3200における全てのレコードの採用フラグ3210を「On」に設定し、全ての挙動情報を認可要求メッセージ510による送信対象とする。一方、ステップS112の判定結果が「YES」である場合(言い換えると、ステップS114の優先付け処理が実施された場合)、挙動情報調整部120は、挙動監視部管理情報3200において、ステップS114で選択された集合に含まれる挙動情報に対応する採用フラグ3210を「On」に設定し、その他の挙動情報に対応する採用フラグ3210を「Off」に設定する。
以上ステップS111~S115の処理が行われることにより、最終的に挙動監視部管理情報3200において採用フラグ3210が「On」に設定されたレコードの挙動情報が、認可要求メッセージ510に含めて送信される挙動情報として決定される。そして、ステップS115の処理の完了後は、ステップS111に戻り、挙動情報調整部120は、挙動情報の更新通知を待機する。
認可要求制御部130は、端末10やユーザによるアクセス要求520の作成を監視し、アクセス要求520が作成されたときにはこれを捕捉する(ステップS121)。
認可要求制御部130は、ステップS121でアクセス要求520の作成を捕捉すると、当該アクセス要求520に対して認可要求メッセージ510の作成が必要であるか否かを判定する(ステップS122)。
ここで、認可要求メッセージ510の作成要否を判定する最も簡素な方法は、捕捉したすべてのアクセス要求520に対して、それぞれ認可要求メッセージ510を作成する方法である。一方、短時間のうちに多数のアクセス要求520が作成される場合には、必ずしもすべてのアクセス要求520に対して認可要求メッセージ510を作成する必要はない。また、通信ネットワーク41上においてはパケットロスが発生する可能性が常に存在するため、過去に端末10から送信したすべての認可要求メッセージがアクセス制御装置20によって受理されるとは限らない、という問題もある。そこで、本実施形態の認可要求制御部130は、ステップS122において、図12に詳述する認可要求メッセージ要否判定処理を実行することによって、認可要求メッセージ510の作成要否を判定する。
図12は、認可要求メッセージ要否判定処理の処理手順例を示すフローチャートである。上述したように、認可要求メッセージ要否判定処理は、認可要求制御部130によって実行される。
図12によればまず、認可要求制御部130は、現在日時を基点に、端末設定情報3100においてID3101=「5」で指定される「推定通信許可時間」以内の過去に、アクセス要求520の送信先のリソース30に対応するアクセス制御装置20に向けて認可要求メッセージ510を送信した送信回数をカウントし、送信の有無を判定する(ステップS141)。上記送信回数は、認可要求メッセージ履歴DB330に保持されている認可要求メッセージ履歴情報3300を参照することによって計数できる。送信回数が「0」以外である場合は(ステップS141のYES)、ステップS142に進む。一方、送信回数が「0」である場合は(ステップS141のNO)、ステップS143に進む。
ステップS142では、認可要求制御部130は、ステップS141でカウントした送信回数(認可要求メッセージ送信回数)と、端末設定情報3100においてID3101=「9」で指定される「想定最大パケットロス率」と、を引数とする所定の関数によって、「送信確率」を算出する。この算出値は、「送信確率」を示す内部パラメータにセットされる。送信確率を算出する関数の一例としては、「想定最大パケットロス率」に対して、認可要求メッセージ送信回数をべき乗する関数が考えられる。ステップS142の処理後はステップS144に進む。
一方、ステップS143に進んだ場合、認可要求制御部130は、「送信確率」の内部パラメータに「1.0」を設定し、ステップS144に進む。
ステップS144では、認可要求制御部130は、ステップS142またはステップS143で設定された「送信確率」に比例する形で、認可要求メッセージ510の送信要否を判定する。例えば、「送信確率」=「1.0」の場合は、必ず認可要求メッセージ510を送信する必要があると判定されるため、後述するステップS132で認可要求メッセージ510が必ず送信されることになる。
以上、ステップS141~S144の処理が実行されることにより、認可要求制御部130は、捕捉したアクセス要求520に対して認可要求メッセージ510の作成が必要であるか否かを判定することができる。
図11の説明に戻る。ステップS122の処理が終了した後、認可要求制御部130は、ステップS122において認可要求メッセージ510の作成が必要と判定されたか否か(言い換えれば、認可要求メッセージ510の送信が決定されたか否か)を確認する(ステップS123)。認可要求メッセージ510の作成が必要と判定された場合は(ステップS123のYES)、ステップS124に進み、認可要求メッセージ510の作成が不要と判定された場合は(ステップS123のNO)、ステップS121に戻る。
ステップS124では、認可要求制御部130は、認可要求メッセージ510の作成要求を認可要求メッセージ送信部140に送信する。認可要求メッセージ送信部140側の処理は後述する。
ステップS124の処理後、認可要求制御部130は、最後に認可要求メッセージ510を送信してから、ステップS121で捕捉したアクセス要求520を送信するまでに待機する時間間隔(送信間隔)を計算する(ステップS125)。
ここで、上記の送信間隔が短すぎると、アクセス制御装置20における認可要求メッセージ510に対する認可判定が完了する前に、アクセス要求520が端末10から送信されてアクセス制御装置20に到着してしまい、アクセス制御装置20において正常に通信を確立できなくなる。一方、上記送信間隔が長すぎると、通信効率が悪化してしまう。そこで、本実施形態の認可要求制御部130は、ステップS125において、図13に詳述する送信間隔演算処理を実行することによって、アクセス要求520を送信するまでの待機時間に相当する「送信間隔」を算出する。
図13は、送信間隔演算処理の処理手順例を示すフローチャートである。上述したように、送信間隔演算処理は、認可要求制御部130によって実行される。
図13によればまず、認可要求制御部130は、端末設定情報3100においてID3101=「5」で指定される「推定通信許可時間」以内の過去に、認可要求メッセージ510を送信したか否かを判定する(ステップS151)。過去の認可要求メッセージ510の送信履歴は、認可要求メッセージ履歴DB330に保持されている認可要求メッセージ履歴情報330を参照することによって確認できる。推定通信許可時間以内の過去に認可要求メッセージ510を送信した履歴が存在する場合は(ステップS151のYES)、ステップS152に進む。一方、推定通信許可時間以内の過去に認可要求メッセージ510を送信した履歴が存在しない場合は(ステップS151のNO)、ステップS153に進む。
ステップS152では、認可要求制御部130は、端末設定情報3100においてID3101=「4」で指定される「推定平均検証時間」と、最後に認可要求メッセージ510を送信した日時から現在日時までの経過時間と、を引数とする所定の関数によって、「送信間隔」を算出する。この算出値は、「送信間隔」を示す内部パラメータにセットされる。送信間隔を算出する関数の一例としては、待ち行列理論では処理時間の分布は指数分布で示されることが多いことを利用して、「送信間隔=経過時間×EXP(-1×経過時間/推定平均検証時間)」の算出式から送信間隔を算出するようにしてもよい。ステップS152の処理が完了すると、認可要求制御部130は送信間隔演算処理を終了する。
一方、ステップS153に進んだ場合、認可要求制御部130は、「送信間隔」の内部パラメータに「推定平均検証時間」を設定し、送信間隔演算処理を終了する。
以上、ステップS151~S153の処理が実行されることにより、認可要求制御部130は、捕捉したアクセス要求520を送信するまでに待機する時間間隔(送信間隔)を算出することができる。
図11の説明に戻る。ステップS125の処理が終了した後、認可要求制御部130は、ステップS125で計算された送信間隔が経過するまで、処理を待機する(ステップS126)。
そして、送信間隔が経過した後は、認可要求制御部130は、ステップS121で捕捉して待機させていたアクセス要求520をアクセス制御装置20に送信し、その後はステップS121に戻る。
次に、認可要求メッセージ送信部140の処理を説明する。認可要求メッセージ送信部140は、まず、ステップS124で認可要求制御部130から送信された認可要求メッセージ510の作成要求を受信する(ステップS131)。
次いで、認可要求メッセージ送信部140は、挙動監視部管理情報3200において採用フラグ3210が「On」に設定されている挙動情報を、図9に示したデータフォーマット5100に載せて、認可要求メッセージ510を作成し、アクセス制御装置20に送信する(ステップS132)。なお、ステップS132における認可要求メッセージ510の作成において、挙動情報は、データフォーマット5100のID5101=「5」で指定される「挙動情報一覧」のレコードに記載される。このとき、より具体的には、採用フラグ3210が「On」に設定されたそれぞれの挙動情報は、挙動監視部管理情報3200における該当レコードのID3210及び最新挙動情報3207のペアで表され、該当する全ての挙動情報をまとめた情報が、「挙動情報一覧」として、認可要求メッセージ510に組み込まれる。
そして、認可要求メッセージ510の送信後、認可要求メッセージ送信部140は、認可要求メッセージ履歴DB330に保持される認可要求メッセージ履歴情報3300を更新し、具体的には、該当するレコードにおいて、上記認可要求メッセージ510の送信日時を認可要求メッセージ送信日時3303に追記する。以上の処理が終了した後、認可要求メッセージ送信部140は、ステップS131の処理に戻る。
(4-2)アクセス制御装置20による処理
図14は、アクセス制御装置20側で実施される処理手順例を示すシーケンス図である。図14に示したシーケンスは、アクセス要求の認可処理を行うための準備を行う設定フェイズと、実際に認可処理を行う運用フェイズとに分かれており、少なくとも運用フェイズが開始される前の時点で設定フェイズが完了される。
まず、設定フェイズに含まれる処理として、ポリシー管理部210によって実行されるステップS201~S202の処理、及び挙動情報伸長部230によって実行されるステップS211~S212の処理について説明する。
設定フェイズにおいて、ポリシー管理部210は、アクセスポリシースクリプト4200を作成するためのユーザインタフェースを管理者に対して提供する(ステップS201)。上記ユーザインタフェースでは、管理者は、スクリプト4202に記載されるスクリプト文を直接作成してもよいし、既知の自動入力支援などを用いて、より簡易な形でスクリプトの作成を行うとしてもよい。
そして、ポリシー管理部210は、ステップS201で提供されたユーザインタフェースを利用して管理者が作成したアクセスポリシースクリプトを、アクセスポリシースクリプトDB420に保存する(ステップS202)。
設定フェイズにおいて、挙動情報伸長部230は、アクセスポリシースクリプトDB420に保持されたアクセスポリシースクリプト4200の各レコードを読み込む(ステップS211)。
そして、挙動情報伸長部230は、ステップS211で読み込んだアクセスポリシースクリプト4200(スクリプト4202)のうちから、アクセス制御設定情報4100においてID4101=「5」で指定される「情報伸長対象監視部」に関する記述を探し、アクセス制御に用いられる要素を抽出し、当該レコードの圧縮挙動情報キーワード4203に記録する(ステップS212)。具体的には、図7におけるID4201=「1」のレコードの場合は、「情報伸長対象監視部」に記載された「起動サービス一覧」に含まれる「アンチウイルスX」及び「セキュリティサービスY」が該当する。同様に、ID4201=「2」のレコードの場合は、「プロセスハッシュ値一覧」に含まれる「3abe4b2...」及び「ffa3bf23...」が該当する。
以下では、運用フェイズに含まれる処理として、認可要求メッセージ受信部220によって実行されるステップS221~S225の処理、挙動情報伸長部230によって実行されるステップS231~S233の処理、アクセス判定部240によって実行されるステップS241~S243の処理、及びアクセス制御部250によって実行されるステップS251~S252の処理について説明する。
まず、認可要求メッセージ受信部220は、図11のステップS132において端末10の認可要求メッセージ送信部140から送信された認可要求メッセージ510を、受信する(ステップS221)。
次に、認可要求メッセージ受信部220は、ステップS221で受信した認可要求メッセージ510を、アクセス制御設定情報4100においてID4101=「1」に示される「制御装置秘密鍵」と、認可要求メッセージ510のID5101=「6」に示される「共通鍵」とを使って復号するとともに、認可要求メッセージ510のID5101=「7」に示される「端末側の電子署名」を検証し、改ざんがないことを確認する(ステップS222)。さらに、ステップS222において、認可要求メッセージ受信部220は、認可要求メッセージ510のID5101=「1」に示される「タイムスタンプ」を現在日時と比較して、認可要求メッセージ510がリプレイアタックに類するものではないことを確認する。
次に、認可要求メッセージ受信部220は、ステップS222で復号化された認可要求メッセージ510に含まれるID5101=「5」の「挙動情報一覧」を挙動情報伸長部230に送信し、圧縮されている挙動情報の伸長化を依頼する(ステップS223)。
次に、認可要求メッセージ受信部220は、ステップS223で依頼した挙動情報の伸長化が行われた後の挙動情報(挙動情報一覧)を挙動情報伸長部230から受信して、認可要求メッセージ510におけるID5101=「5」の「挙動情報一覧」の値を、伸長化された挙動情報に置き換える(ステップS224)。
次に、認可要求メッセージ受信部220は、ステップS224の処理後の認可要求メッセージ510をアクセス判定部240に送信し、認可判定を依頼する(ステップS225)。ステップS225の処理後は、ステップS221に戻る。
挙動情報伸長部230は、ステップS223で認可要求メッセージ受信部220から挙動情報一覧の伸長化が依頼されたとき、この挙動情報一覧を受信する(ステップS231)。なお、以下では、ステップS231で受信する挙動情報一覧には、圧縮処理が施された挙動情報が含まれているとして説明するが、必ずしもすべての挙動情報について圧縮処理が施されている必要はなく、また、すべての挙動情報が圧縮処理されていない場合もあり得る。但し、挙動情報一覧に含まれるすべての挙動情報が圧縮処理されていない場合は、ステップS231~S233の処理は実質的に不要であることから、例えば認可要求メッセージ受信部220がステップS223~S224の処理をスキップするようにしてもよい。
次に、挙動情報伸長部230は、ステップS231で受信した挙動情報一覧に含まれる1以上の挙動情報に対して、圧縮されている挙動情報を伸長化する圧縮挙動情報伸長化処理を実行する(ステップS232)。
図15は、圧縮挙動情報伸長化処理の処理手順例を示すフローチャートである。上述したように、圧縮挙動情報伸長化処理は、挙動情報伸長部230によって実行される。
図15によればまず、挙動情報伸長部230は、アクセスポリシースクリプトDB420に保持されているアクセスポリシースクリプト4200にアクセスし、圧縮挙動情報キーワード4203を収集する(ステップS261)。
次に、挙動情報伸長部230は、認可要求メッセージ受信部220から受け取った「挙動情報一覧」に含まれる挙動情報のうちから、アクセス制御設定情報4100のID4101=「5」に指定された「情報伸長対象監視部」に該当する挙動監視部110による挙動情報を1つずつ選択し、以下のステップS263~S265の処理を行う(ステップS262)。
ステップS263では、挙動情報伸長部230は、ステップS261で収集した圧縮挙動情報キーワード4203から、ステップS262で選択した挙動情報に該当するキーワードのそれぞれについて、1つずつキーワードを選択してステップS264~S265の処理を行う。図7に示したアクセスポリシースクリプト4200を用いる場合、「アンチウイルスX」、「セキュリティサービスY」、「3abe4b2...」、及び「ffa3bf3bf23...」が、上記キーワードに該当する。
ステップS264では、挙動情報伸長部230は、ステップS262で選択した挙動情報に、ステップS263で選択したキーワードが含まれているか否かを確認する。上記挙動情報に上記キーワードが含まれている場合は(ステップS264のYES)、ステップS265に進む。一方、上記挙動情報に上記キーワードが含まれていない場合は(ステップS264のNO)、ステップS263に戻り、次のキーワードが選択される。
ステップS264においてキーワードを確認する方法は、端末設定情報3100のID3101=「2」で指定された「挙動情報圧縮方式」によって異なる。例えば、挙動情報圧縮方式がBloomFilterである場合、圧縮された挙動情報はビット配列である。このため、ステップS264において挙動情報伸長部230は、図11のステップS113において挙動情報調整部120がBloomFilterを使って挙動情報を圧縮するときの処理と同様に、キーワードのハッシュ値に該当する要素が「1」であるか否かを判断することによって、挙動情報のビット配列にキーワードが含まれるか否かを判断することができる。具体的には例えば、「挙動サービス一覧」に該当する挙動情報がビット配列であり、「アンチウイルスX」という文字列のハッシュ値に対応する要素が「1」であれば、当該挙動情報には「アンチウイルスX」が含まれることになる。
ステップS265では、挙動情報伸長部230は、ステップS262で選択した挙動情報に、ステップS263で選択したキーワードを、例えば平文で追記する。
そして、ステップS265の処理後は、ステップS263に戻り、次のキーワードが選択される。また、すべてのキーワードに対してステップS264~S265の処理が完了すると、ステップS262に戻り、次の挙動情報が選択される。さらに、すべての挙動情報に対してステップS263~S265の処理が完了すると、挙動情報伸長部230は、圧縮挙動情報伸長化処理を終了する。
以上のように圧縮挙動情報伸長化処理が行われることにより、非可逆圧縮方式で圧縮処理された挙動情報からは含まれるキーワードを直接参照できなかったところを、ステップS265でキーワードが追加されることによって、伸長化処理後の挙動情報からは含まれるキーワードを直接参照できるようになる。
図14の説明に戻る。ステップS232の処理が終了した後、挙動情報伸長部230は、ステップS232で伸長化した挙動情報一覧(詳述すれば、キーワードを追加した挙動情報からなる挙動情報一覧)を認可要求メッセージ受信部220に返信する(ステップS233)。ステップS233の終了後は、ステップS231に戻る。
アクセス判定部240は、ステップS225で認可要求メッセージ受信部220から送信された認可要求メッセージ510に対する認可判定の依頼を受信する(ステップS241)。
次に、アクセス判定部240は、アクセスポリシースクリプトDB420に保持されたアクセスポリシースクリプト4200のスクリプト4202に基づいて、ステップS241で受信した認可要求メッセージ510の内容を判定し、アクセスの可否を判定する認可判定を行う(ステップS242)。
ステップS242において、アクセス判定部240は、アクセスポリシースクリプト4200においてID4201の値が小さいスクリプトから順々に適用する。そして、認可要求メッセージ510が、スクリプト4202内の“subject”、“resource”、及び“behavior”の全ての条件を満たす場合に、“judgement”の記載内容が最終的に、アクセスの認可判定の判定結果とされる。なお、アクセスポリシースクリプト4200において、上記した全ての条件を満たすスクリプト4202が存在しない場合には、予め定められたデフォルトの判定結果が適用される。デフォルトの判定結果は、「通過」または「遮断」の何れかとする。
次に、アクセス判定部240は、ステップS242の判定結果に基づいて、アクセス認可情報DB430に保持されるアクセス認可情報4300を更新する(ステップS243)。
ステップS243において、認可判定の判定結果が「通過」である場合は、図8のアクセス認可情報4300のID4301=「2」に示されたように、通信遮断期間4305が指定されずに(N/Aが設定されて)、通信通過期間4306が設定される。
一方、ステップS243において、認可判定の判定結果が「遮断」である場合は、アクセス認可情報4300のID4301=「6」に指定される「遮断モード」の設定内容(「完全遮断」または「一時遮断」)に応じて、異なる内容でアクセス認可情報4300が更新される。具体的には、遮断モードが「一時遮断」の場合、図8のアクセス認可情報4300のID4301=「1」または「3」に示されたように、通信遮断期間4305及び通信通過期間4306が設定される。また、遮断モードが「完全遮断」の場合には、少なくとも通信遮断期間4305が設定される。このとき、通信通過期間4306は、所定の長期間が設定されるとしてもよいが、特に期間が指定されない(N/Aが設定される)としてもよい。
また、ステップS243において、認可判定の判定結果が「遮断」で、遮断モードが「完全遮断」の場合には、アクセス判定部240は、アクセスを遮断する旨の認可判定が下された旨を通知する管理者通知メッセージ530を作成し(図10参照)、これを管理用端末40に送信する。この結果、管理者は管理用端末40を介して管理者通知メッセージ530を閲覧することにより、アクセス遮断の判定が行われたことを認知することができる。
以上のようにステップS243の処理が行われた後は、ステップS241に戻る。
アクセス制御部250は、図11のステップS127において端末10の認可要求制御部130から送信されたアクセス要求520を、受信する(ステップS251)。
次に、アクセス制御部250は、ステップS251で受信したアクセス要求520と、アクセス認可情報DB430に保持されているアクセス認可情報4300における各レコードとを比較し、アクセス要求520を通過させるべきか遮断するべきかを決定し、当該決定の結果に従って、アクセス要求520に対する制御を行う(ステップS252)。
ステップS252における通過/遮断の決定について詳しく説明すると、アクセス制御部250は、アクセス認可情報4300の各レコードのうちから、端末IPアドレス4302及びリソースIPアドレス4303に基づいて、アクセス要求520の送信元の端末10と宛先のリソース30との組み合わせに合致するレコードを選別し、さらに、アクセス要求520の送信日時(あるいは現在日時)と、上記選別したレコードにおける通信遮断期間4305または通信通過期間4306とを比較することによって、アクセス要求520に対する通過/遮断の決定を行うことができる。すなわち、アクセス要求520の送信日時(あるいは現在日時)が、選別したレコードにおける通信通過期間4306に含まれる場合は、アクセス要求520を通過させると決定する。一方、アクセス要求520の送信日時(あるいは現在日時)が、選別したレコードにおける通信遮断期間4305に含まれる場合は、アクセス要求520を遮断すると決定する。
そして、ステップS252において、アクセス制御部250は、アクセス要求520を通過させると決定した場合は、宛先のリソース30に向けてアクセス要求520を転送する。一方、アクセス要求520を遮断すると決定した場合は、アクセス要求520のリソース30への転送を行わない。以上、ステップS252の処理が終了した後は、再びステップS251に戻る。
以上、図11~図15に示した処理が行われることにより、動的アクセス認可システム1では、端末10からリソース30へのアクセス要求が発生したとき、セッション単位で、端末10からアクセス制御装置20に、ユーザや端末10の挙動情報を含む認可要求メッセージ510が送信され、アクセス制御装置20において、認可要求メッセージ510をアクセスポリシースクリプト4200と比較することによって、アクセス要求をリソース30に通過させるか遮断するかの認可判定が行われ、その判定結果に基づいてアクセス要求520の制御が行われる。また、アクセス制御装置20に送信される認可要求メッセージ510は、端末10において圧縮処理や優先付け処理が行われることで、適切なセキュリティレベル及びデータサイズとすることができる。これらの結果、本実施形態に係る動的アクセス認可システム1によれば、通信ネットワーク41,42及び端末10への負荷を抑制しながら、端末10及び/またはユーザの直近の挙動に基づいて、リアルタイムに、リソース30へのアクセス要求520の動的認可を実現することができる。
(5)変形例
なお、本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。
(5-1)変形例1
図1では、アクセス制御装置20をリソース30とは別に独立した装置として示したが、動的アクセス認可システム1の一変形例として、アクセス制御装置20は、リソース30に内包される形態で実現してもよい。この場合、図1に示した制御装置側プログラム200はソフトウェアの形態をとってリソース30に備えられ、端末10からリソース30に送信される認可要求メッセージ510及びアクセス要求520を受信して、上述した制御装置側プログラム20としての処理を行う。
(5-2)変形例2
図11では、挙動情報調整部120内の処理として、ステップS113で挙動情報圧縮部121が挙動情報の圧縮処理を行った後に、ステップS114において挙動情報優先付け部122が認可要求メッセージ510に載せる挙動情報の組み合わせを算出する優先付け処理を行うとしたが、動的アクセス認可システム1の一変形例として、挙動情報調整部120は、ステップS113の圧縮処理とステップS114の優先付け処理の何れか一方だけを実行するとしてもよい。また、圧縮処理及び優先付け処理の両方を実行するとした場合には、処理の実行順番を入れ替えてもよい。すなわち、挙動情報優先付け部122による優先付け処理(ステップS114)を、挙動情報圧縮部121による圧縮処理(ステップS113)よりも先に実行するようにしてもよい。
図11に示したように圧縮処理の後に優先付け処理を行う場合には、端末設定情報3100のID3101=「6」で指定された「挙動情報圧縮部フラグ」が「On」である挙動情報を圧縮した後で優先付け処理を行うことから、挙動情報の合計値のデータサイズに拘わらず、最終的に認可要求メッセージ510に載せられる挙動情報一覧のデータサイズを可能な限り小さくする効果に期待できる。一方、上記変形例のように圧縮処理よりも前に優先付け処理を行う場合には、例えば、優先付け処理の終了時点で挙動情報のデータサイズの合計値を計算し、この合計値が最大許容データサイズ(端末設定情報3100のID=「1」のレコードを参照)に収まる場合(十分に小さい場合)には圧縮処理をスキップしてもよい。また、優先付け処理の終了時点で最大許容データサイズを超える場合には、圧縮処理を実行し、圧縮処理後に最大許容データサイズに収まる範囲で挙動情報を選択する(優先付け処理の結果を考慮する)ことにより、挙動情報認可要求メッセージ510に載せられる挙動情報一覧を決定することができる。上記のように、圧縮処理がスキップされるときには、圧縮処理による処理負荷の増大を抑制できるだけでなく、伸長化処理も不要になることで、処理負荷の更なる抑制効果にも期待できる。
(5-3)変形例3
図7では、アクセス要求時に認可要求メッセージ510に対する認可判定において比較されるアクセスポリシースクリプト4200が例示され、スクリプト4202には「不要プロセス起動数」や「ユーザアイドル時間」などといった挙動に関する動的情報が判断基準として記述されていたが、動的アクセス認可システム1の一変形例として、認可判定において比較される要素は、上述した挙動に関する情報に限定されず、その他の種別の情報を含むものであってもよい。具体的には例えば、日時、曜日、または休日/平日などの要素もスクリプト4202に記述されてよい。
また、上述した実施形態では、図4で挙動監視部管理情報3200の挙動監視部名称3202で指定される挙動監視部110による挙動情報を、認可要求メッセージ510に記載される可能性がある情報(言い換えると、認可判定において比較される情報)としたが、動的アクセス認可システム1の一変形例として、端末10の中にインストールされているパッチプログラムやOS/アプリケーションのバージョン情報といった比較的静的な情報を認可要求メッセージ510に載せるようにしてもよく(上述した動的な挙動情報と組み合わせて載せるようにしてもよい)、これらを参照してアクセス制御を行うようにしてもよい。この場合、例えばアクセスポリシースクリプト4200において、上記静的な情報を要素に用いた論理式が記述されておくことにより、アクセス判定部240が静的な情報も考慮した認可判定を実行することができる。かくして、動的アクセス認可システム1は、動的情報だけでなく、既存技術で用いられる静的情報とも組み合わせて、アクセス要求に対する認可判定及びアクセス制御を実現することができる。
なお、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計するなどによりハードウェアで実現してもよい。また、上記の各構成及び機能などは、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイルなどの情報は、メモリや、ハードディスク、SSD(Solid State Drive)などの記録装置、または、ICカード、SDカード、DVDなどの記録媒体に置くことができる。
また、図面において制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えてもよい。