JP6787841B2 - アクセス制御装置、アクセス制御方法およびアクセス制御プログラム - Google Patents

アクセス制御装置、アクセス制御方法およびアクセス制御プログラム Download PDF

Info

Publication number
JP6787841B2
JP6787841B2 JP2017126639A JP2017126639A JP6787841B2 JP 6787841 B2 JP6787841 B2 JP 6787841B2 JP 2017126639 A JP2017126639 A JP 2017126639A JP 2017126639 A JP2017126639 A JP 2017126639A JP 6787841 B2 JP6787841 B2 JP 6787841B2
Authority
JP
Japan
Prior art keywords
file
access
identification information
source process
access source
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017126639A
Other languages
English (en)
Other versions
JP2019008732A (ja
Inventor
剛 永吉
剛 永吉
宮本 剛
宮本  剛
和巳 木下
和巳 木下
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2017126639A priority Critical patent/JP6787841B2/ja
Publication of JP2019008732A publication Critical patent/JP2019008732A/ja
Application granted granted Critical
Publication of JP6787841B2 publication Critical patent/JP6787841B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、アクセス制御装置、アクセス制御方法およびアクセス制御プログラムに関する。
従来より、コンピュータ上で存在および動作することが許可されているアプリケーションおよびアプリケーションコンポーネント(ライブラリファイル、設定ファイル等)を予めホワイトリストに登録しておくアプリケーション制御技術がある。このアプリケーション制御技術は、アプリケーションおよびアプリケーションコンポーネントがホワイトリストに登録されており、かつこれらのファイルの完全性が確認されている場合、その動作を許可し、ホワイトリストに登録されていない場合、または、これらのファイルの完全性が失われている場合、その動作を許可しないというものである(例えば、非特許文献1参照)。ファイルの完全性とは、例えば、ファイルが改ざんされていないことをいう。
ファイルに対するアクセス制御の観点によれば、アプリケーションおよびアプリケーションコンポーネントはアクセス先ファイルであり、ライブラリや設定ファイルを参照するアプリケーションプロセスはアクセス元プロセスと見ることができる。上述の従来技術はアクセス先ファイルの完全性を確認できる場合のみ、アクセス元プロセスが目的とするファイルアクセスを許可するものである。
Adam Sedgewick et al.、"Guide to Application Whitelisting"、[online]、NIST Special Publication 800-167、National Institute of Standards and Technology、[平成29年6月12日検索]、インターネット〈URL:http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-167.pdf〉
しかしながら、上述の従来技術は、ファイルアクセスにおいて、アクセス先ファイルの完全性は確認できるが、ファイルへアクセスするアクセス元プロセスの完全性は確認できない。アクセス元プロセスの完全性が失われるとは、例えば、アクセス元プロセスがマルウェア等の不適切なプロセスであることを含む。よって、アクセス元プロセスによるファイルアクセスの結果、アクセス先ファイルの完全性が失われることを防止できないという問題がある。
アクセス先ファイルがアプリケーションプロセスの実行ファイル、ライブラリ、設定ファイル、入出力ファイルなどである場合、アクセス先ファイルが不正に改ざんされていれば、当該アプリケーションプロセスが不正に動作する可能性がある。一方、アクセス元プロセスが改ざんされているなど不正なものである場合、当該プロセスがアクセスすることによってアクセス先ファイルが不正に改ざんされる可能性がある。さらに、そのように改ざんされたアクセス先ファイルが、さらに別のアプリケーションプロセスの不正な動作につながる可能性がある。すなわち、ファイルアクセスの安全性を確認するには、アクセス先ファイルの完全性と、アクセス元プロセスの完全性の、両方を確認することが必要である。
なお、上述の従来技術において、網羅的かつ正確なアプリケーションホワイトリストを作成することが可能であれば、コンピュータシステム上で完全性を欠いたアプリケーションプロセスの実行を防ぐことができるため、個々のファイルアクセスに着目してアクセス元プロセスの完全性を確認するまでも無い。しかしながら、一般的な環境において、網羅的かつ正確なアプリケーションホワイトリストを作成し維持することは、多くのコストがかかり難しい。
本願が開示する実施形態の一例は、上述に鑑みてなされたものであって、アクセス元プロセスによりアクセス先ファイルの完全性が失われることを防止することを目的とする。
本願の実施形態の一例において、アクセス制御装置は、ファイルへのアクセスを許可されている許可プロセスの識別情報を該ファイルごとに記憶する記憶部と、ファイルに対するアクセス元プロセスのアクセスを検知する検知部と、ファイルのファイルデータに基づいて、該ファイルが改ざんされているか否かを判定するファイル判定部と、前記検知部によりファイルに対するアクセスが検知されたアクセス元プロセスの識別情報が前記許可プロセスの識別情報に含まれているか否かを判定するプロセス判定部と、前記ファイル判定部により、前記アクセス元プロセスがアクセスしようとしているファイルが改ざんされていないと判定され、かつ、前記アクセス元プロセスの識別情報が前記許可プロセスの識別情報に含まれていると判定された場合には、該ファイルに対する前記アクセス元プロセスのアクセスを安全と判定し、該ファイルが改ざんされていると判定された、または、前記アクセス元プロセスの識別情報が前記許可プロセスの識別情報に含まれていないと判定された場合には、該ファイルに対する前記アクセス元プロセスのアクセスを危険と判定するアクセス制御判定部とを備えた。
本願の実施形態の一例によれば、例えば、アクセス元プロセスによるファイルアクセスの結果、アクセス先ファイルの完全性が失われることを防止することができる。
図1は、ファイルと、依存プロセスと、アクセス元プロセスとの関係の一例を示す図である。 図2は、制御フラグと、ファイルデータ完全性およびアクセス元プロセス完全性との関係の一例を示す図である。 図3は、ファイルおよびプロセスの再帰的な完全性確認の一例を示す図である。 図4は、実施形態1のアクセス制御装置の構成の一例を示す図である。 図5は、実施形態1のアクセス対象ファイルリストと、プロセスACLと、依存プロセスリストと、不完全プロセスリストの一例を示す図である。 図6は、実施形態1における判定結果リストの一例を示す図である。 図7は、実施形態1の初期設定処理の一例を示すフローチャートである。 図8は、実施形態1のファイルアクセス制御処理の一例を示すフローチャートである。 図9は、実施形態2のアクセス制御装置の構成の一例を示す図である。 図10は、実施形態2のアクセス対象ファイルリストと、プロセスACLの一例を示す図である。 図11は、実施形態2のファイルアクセス制御処理の一例を示すフローチャートである。 図12は、プログラムが実行されることにより、アクセス制御装置が実現されるコンピュータの一例を示す図である。
以下、本願の実施形態の一例のアクセス制御装置、アクセス制御方法およびアクセス制御プログラムの実施形態を説明する。なお、以下の実施形態は、一例を示すに過ぎず、本願を限定するものではない。以下の各実施形態において、既出の同一構成および同一処理については、説明を省略する。また、以下に示す各実施形態は、矛盾しない範囲で適宜組合せることができる。
[実施形態1]
(ファイルと、依存プロセスと、アクセス元プロセスとの関係)
実施形態1の説明に先立ち、ファイルのアクセス制御について説明する。図1は、ファイルと、依存プロセスと、アクセス元プロセスとの関係の一例を示す図である。図1では、アクセス元プロセス、ファイルF、依存プロセスは、オペレーティングシステムにより管理されているとする。なお、図1は、あくまで一例を示すに過ぎず、アクセス元プロセス、ファイルF、依存プロセスそれぞれの数、ファイルアクセスの関係、依存関係は、図示のものに限られない。
図1に例示するファイルFは、データファイル、設定ファイル、プログラムファイル、スクリプトファイル等である。プログラムファイルは、実行ファイル、ライブラリファイル等である。ここで、ファイルFが「ファイルデータ完全性V1」を有するとは、ファイルFのファイルデータのダイジェスト値(例えばハッシュ値)と、事前定義したファイルFの参照ダイジェスト値とが一致することをいう。
また、図1に例示する依存プロセスは、依存プロセスの動作の正当性(以下、「依存プロセス完全性」という)が、当該依存プロセスが依存関係にあるファイルFの「ファイルデータ完全性V1」に依存するプロセスである。依存プロセスは、アプリケーションプロセス、オペレーティングシステム、インタプリタプロセス等である。
例えば、依存プロセスは、依存プロセス完全性が、アプリケーションプロセスの実行ファイルであるファイルFの「ファイルデータ完全性V1」に依存する、当該アプリケーションプロセスである。また、例えば、依存プロセスは、依存プロセス完全性が、アプリケーションプロセスのライブラリファイルであるファイルFの「ファイルデータ完全性V1」に依存する、当該アプリケーションプロセスである。
また、例えば、依存プロセスは、依存プロセス完全性が、アプリケーションプロセスへの入力データのデータファイルであるファイルFの「ファイルデータ完全性V1」に依存する、当該アプリケーションプロセスである。また、例えば、依存プロセスは、依存プロセス完全性が、アプリケーションプロセスの設定ファイルであるファイルFの「ファイルデータ完全性V1」に依存する、当該アプリケーションプロセスである。依存プロセスは、オペレーティングシステムを介して、依存プロセスの実行ファイルパス等によって識別される。
また、図1に例示するアクセス元プロセスは、ファイルFに対してアクセスするプロセスである。アクセス元プロセスは、依存プロセス同様、アプリケーションプロセス、オペレーティングシステム、インタプリタプロセス等である。
例えば、アクセス元プロセスは、データファイルであるファイルFを参照または更新するアプリケーションプロセスである。また、例えば、アクセス元プロセスは、設定ファイルであるファイルFを参照するアプリケーションプロセスである。また、例えば、アクセス元プロセスは、プログラムファイルであるファイルFを実行するオペレーティングシステムである。また、例えば、アクセス元プロセスは、スクリプトファイルであるファイルFを実行するインタプリタプロセスである。
ここで、アクセス元プロセスが「アクセス元プロセス完全性V2」を有するとは、アクセス元プロセスがファイルFに対してファイルアクセスが許可されているプロセスとしてプロセスACL(Access Control List)に登録されており、かつ、当該アクセス元プロセスが依存関係にあるファイルが「ファイルデータ完全性V1」を有することをいう。アクセス元プロセスは、オペレーティングシステムを介して、アクセス元プロセスの実行ファイルパス等によって識別される。図1において、アクセス元プロセスが依存関係にあるファイルは、不図示のファイルである。
ここで、アクセス元プロセスが「アクセス元プロセス完全性V2」を有さない場合、アクセス元プロセスによるファイルFへのファイルアクセスの結果、ファイルFが「ファイルデータ完全性V1」を有さなくなるおそれが生じる。また、ファイルFが「ファイルデータ完全性V1」を有さない場合、依存プロセスが、アクセス元プロセスとして振る舞う際の「アクセス元プロセス完全性V2」も有さなくなるおそれが生じる。このように、「ファイルデータ完全性V1」および「アクセス元プロセス完全性V2」は、再帰的に伝播していく。
(アクセス制御判定)
そこで、実施形態1では、アクセス元プロセスがファイルFに対してファイルアクセスを開始し、かつ、ファイルFの参照または更新が未実施の状態が検知された時点で、当該アクセス元プロセスのファイルアクセスを一時停止させて、「アクセス制御V4」の判定を行う。アクセス元プロセスがファイルFに対してファイルアクセスを開始したとは、例えば、アクセス元プロセスがオペレーティングシステムに対してファイルFのオープンを指示したことや、オペレーティングシステムによるファイルFの起動イベントを検知したことをいう。「アクセス制御V4」の判定は、「ファイルデータ完全性V1」、「アクセス元プロセス完全性V2」、「アクセス完全性V3」の各判定を含む。
ファイルFの「ファイルデータ完全性V1」の判定では、ファイルFのファイルデータのダイジェスト値を算出し、算出したダイジェスト値と、事前定義しておいた当該ファイルデータの参照ダイジェスト値とが一致するか否かを判定する。ファイルFのダイジェスト値と、参照ダイジェスト値とを比較した結果、両者が一致する場合、ファイルFの「ファイルデータ完全性V1」の判定結果をOKと判定し、両者が一致しない場合、ファイルFの「ファイルデータ完全性V1」の判定結果をNGと判定する。
なお、「ファイルデータ完全性V1」の判定は、ファイルFがプログラムファイル等、ファイルデータが更新されず固定である“データ固定ファイル”である場合に実行され、ログファイル等、ファイルデータが更新される“データ変動ファイル”である場合には実行されない。
「アクセス元プロセス完全性V2」の判定では、アクセス元プロセスがファイルFに対してファイルアクセスが許可されているプロセスとしてプロセスACLに登録されており、かつ、当該アクセス元プロセスが依存関係にあるファイルの「ファイルデータ完全性V1」の判定結果がOKであるか否かを判定する。アクセス元プロセスがプロセスACLに登録されており、かつ、当該アクセス元プロセスが依存関係にあるファイルの「ファイルデータ完全性V1」の判定結果がOKである場合、アクセス元プロセスの「アクセス元プロセス完全性V2」の判定結果をOKと判定する。一方、アクセス元プロセスがプロセスACLに登録されていない、または、当該アクセス元プロセスが依存関係にあるファイルの「ファイルデータ完全性V1」の判定結果がNGである場合、アクセス元プロセスの「アクセス元プロセス完全性V2判定」の判定結果をNGと判定する。
「アクセス完全性V3」の判定では、「ファイルデータ完全性V1」および「アクセス元プロセス完全性V2」の判定結果がともにNGでない場合、アクセス元プロセスによるファイルFに対するファイルアクセスの「アクセス完全性V3」の判定結果をOK(安全)と判定する。一方、「ファイルデータ完全性V1判定」または「アクセス元プロセス完全性V2判定」の判定結果のいずれかがNGの場合、アクセス元プロセスによるファイルFに対するファイルアクセスの「アクセス完全性V3」の判定結果をNG(危険)と判定する。
そして、実施形態1では、「制御フラグ」に応じて「アクセス制御V4」を行う。「制御フラグ」は、ファイルFごとに設定される、「ファイルデータ完全性V1」または「アクセス元プロセス完全性V2」の判定結果のいずれかがNGであった場合の動作モードを指定する。「制御フラグ」が指定する動作モードには、“記録モード”および“遮断モード”がある。
“記録モード”では、「ファイルデータ完全性V1」および「アクセス元プロセス完全性V2」の各判定結果を記録して、アクセス元プロセスによるファイルFに対するファイルアクセスを許可する。“遮断モード”では、アクセス元プロセスのファイルFに対するファイルアクセスを遮断する。“遮断モード”または“記録モード”をファイルFごとに設定することによって、柔軟なファイルアクセスの制御および管理が可能になる。
なお、“遮断モード”は、“記録モード”よりセキュリティ的に安全であるが、事後的にリスク分析するケースも多いことから、“遮断モード”あっても、アクセス元プロセスのファイルFに対するファイルアクセスを遮断しつつ、「ファイルデータ完全性V1」および「アクセス元プロセス完全性V2」の各判定結果を記録してもよい。
「アクセス制御V4」の判定では、「アクセス完全性V3」の判定結果および「制御フラグ」に基づいて、一時停止していたアクセス元プロセスのファイルFに対するファイルアクセスの“許可”または“遮断”を判定する。「アクセス制御V4」の判定では、「アクセス完全性V3」の判定結果がOK、または、「制御フラグ」が“記録モード”の場合、アクセス元プロセスによるファイルFに対するファイルアクセスを“許可”と判定する。また、「アクセス制御V4」では、「アクセス完全性V3」の判定結果がNG、かつ、「制御フラグ」が“遮断モード”の場合、アクセス元プロセスによるファイルFに対するファイルアクセスを“遮断”と判定する。
(制御フラグと、ファイルデータ完全性およびアクセス元プロセス完全性との関係)
図2は、制御フラグと、ファイルデータ完全性およびアクセス元プロセス完全性との関係の一例を示す図である。なお、ファイルFが“データ固定ファイル”である場合、プログラムファイル等のデータが更新されないファイルであるので、ダイジェスト値が固定値であり、「ファイルデータ完全性V1」が判定できる。一方、ファイルFが“データ変動ファイル”である場合、ログファイル等のデータが更新されるファイルであるので、ダイジェスト値が固定値でなく、「ファイルデータ完全性V1」が判定できない。
図2(a)に示すように、「制御フラグ」“記録モード”の場合であって、「ファイルデータ完全性V1」の判定結果がNGの場合、ファイルFの分類が“データ固定ファイル”であると、“依存プロセスの完全性にリスク”が存在することになる。“依存プロセスの完全性にリスク”が存在するとは、ファイルFの不完全性リスクが、依存プロセスへと伝播するおそれがあることをいう。
また、「制御フラグ」“記録モード”の場合であって、「アクセス元プロセス完全性V2」の判定結果がNGの場合、ファイルFの分類が“データ固定ファイル”であると、“ファイルFの完全性にリスク”が存在することになる。“ファイルFの完全性にリスク”が存在するとは、アクセス元プロセスの不完全性リスクが、ファイルFへと伝播するおそれがあることをいう。
また、図2(a)に示すように、「制御フラグ」“記録モード”の場合であって、ファイルFの分類が“データ変動ファイル”であると、ファイルデータの完全性V1は判定できないため、ファイルデータV1の完全性がNGのケースは存在しない。また、「制御フラグ」“記録モード”の場合であって、「アクセス元プロセス完全性V2」の判定結果がNGの場合、ファイルFの分類が“データ変動ファイル”であると、“ファイルFの完全性にリスク”が存在するとともに、“依存プロセスの完全性にリスク”が存在することになる。
なお、図2(a)において、「制御フラグ」“記録モード”の場合であって、“データ固定ファイル”であるファイルFに対する「アクセス元プロセス完全性V2」の判定結果がNGであっても、ファイルFに対する次回のアクセスを検知するまでは、ファイルFにアクセスするプロセスが存在しないため、ファイルFの“依存プロセスの完全性にリスク”は生じない。以降のファイルFに対するアクセス時に、ファイルFの「ファイルデータ完全性V1判定」の判定結果がNGと判定されれば、“依存プロセスの完全性にリスク”が生じる。また、図2(a)において、“データ変動ファイル”であるファイルFに対する「アクセス元プロセス完全性V2」の判定結果がNGであった場合、その時点でファイルFの“依存プロセスの完全性にリスク”が生じる。
また、図2(b)に示すように、「制御フラグ」“遮断モード”の場合であって、「ファイルデータ完全性V1」の判定結果がNGの場合は、ファイルFの分類が“データ固定ファイル”であると、“依存プロセスの完全性を保護”することになる。また、「制御フラグ」“遮断モード”の場合であって、「アクセス元プロセス完全性V2」の判定結果がNGの場合は、ファイルFの分類が“データ固定ファイル”であると、“ファイルFの完全性を保護”することになる。
また、図2(b)に示すように、「制御フラグ」“遮断モード”の場合であって、ファイルFの分類が“データ変動ファイル”であると、ファイルデータの完全性V1は判定できないため、ファイルデータV1の完全性がNGのケースは存在しない。また、「制御フラグ」“遮断モード”の場合であって、「アクセス元プロセス完全性V2」の確認結果がNGの場合は、ファイルFの分類が“データ変動ファイル”であると、“ファイルFの完全性を保護”するとともに、“依存プロセスの完全性を保護”することになる。
(ファイルおよびプロセスの再帰的な完全性確認)
図3は、ファイルおよびプロセスの再帰的な完全性確認の一例を示す図である。図3の例示では、「監視対象ファイル」“ファイル6”に対して、「監視対象ファイルを依存対象とするプロセス」、「監視対象ファイルの許可プロセス」がある。「監視対象ファイルを依存対象とするプロセス」は、“プロセス(AP4)”“プロセス(AP5)”である。APは、Application(アプリケーション)の略である。また、「監視対象ファイルの許可プロセス」は、“プロセス(AP2)”“プロセス(AP3)”である。
また、「監視対象ファイルの許可プロセス」に対して、「監視対象ファイルの許可プロセスの依存対象ファイル」がある。「監視対象ファイルの許可プロセスの依存対象ファイル」は、“ファイル2”〜“ファイル5”がある。
また、「監視対象ファイルの許可プロセスの依存対象ファイル」に対して、「監視対象ファイルの許可プロセスの依存対象ファイルの許可プロセス」がある。「監視対象ファイルの許可プロセスの依存対象ファイルの許可プロセス」は、“プロセス(AP1)”がある。
また、「監視対象ファイルの許可プロセスの依存対象ファイルの許可プロセス」に対して「監視対象ファイルの許可プロセスの依存対象ファイルの許可プロセスの依存対象ファイル」がある。「監視対象ファイルの許可プロセスの依存対象ファイルの許可プロセスの依存対象ファイル」は、“ファイル1”である。
“ファイル1”は、“プロセス(AP1)”が依存する、AP1の実行ファイル(AP1実行ファイル)である。なお、“ファイル1”は、ファイルアクセス時に、「ファイルデータ完全性V1」、「アクセス元プロセス完全性V2」、「アクセス完全性V3」の各判定が実行される。
“プロセス(AP1)”は、“ファイル1”が実行されることにより動作するプロセスである。すなわち、“プロセス(AP1)”は、“ファイル1”に依存関係にある。“プロセス(AP1)”は、実行時に、“ファイル3”および“ファイル4”にファイルアクセスする。
“ファイル2”は、“プロセス(AP2)”の実行ファイルである。“ファイル3”は、“プロセス(AP2)”のライブラリファイルである。“ファイル4”は、“プロセス(AP2)”の入力データのファイルであるとともに、“プロセス(AP1)”の出力データのファイルである。すなわち、“プロセス(AP1)”の出力データは、“プロセス(AP2)”の入力データである。また、“ファイル5”は、“プロセス(AP3)”の実行ファイルである。これら“ファイル2”〜“ファイル3”、“ファイル5”は、“データ固定ファイル”であるため、ファイルアクセス時に、「ファイルデータ完全性V1」、「アクセス元プロセス完全性V2」、「アクセス完全性V3」の各判定が実行される。また、“ファイル4”は、“データ変動ファイル”であるため、ファイルアクセス時に、「ファイルデータ完全性V1」の判定は実行されず、「アクセス元プロセス完全性V2」、「アクセス完全性V3」の各判定が実行される。
“プロセス(AP2)”は、“ファイル2”および“ファイル3”が実行され、“ファイル4”を入力データのファイルとすることにより動作するプロセスである。すなわち、“プロセス(AP2)”は、“ファイル2”〜“ファイル4”に依存関係にある。“プロセス(AP2)”は、実行時に、“ファイル6”にファイルアクセスし、プロセス(AP1)の出力データを“ファイル6”へ出力する。また、プロセス(AP3)”は、“ファイル5”が実行されることにより動作するプロセスである。すなわち、“プロセス(AP3)”は、“ファイル5”に依存関係にある。“プロセス(AP3)”は、実行時に、“ファイル6”にファイルアクセスする。
“ファイル6”は、“プロセス(AP1)”の出力データである。“ファイル6”は、“データ変動ファイル”であるため、ファイルアクセス時に、「ファイルデータ完全性V1」の判定は実行されず、「アクセス元プロセス完全性V2」、「アクセス完全性V3」の各判定が実行される。“プロセス(AP4)”および“プロセス(AP5)”は、“ファイル6”と依存関係にあるプロセスである。
このように、“ファイル1”の「ファイルデータ完全性V1」の有無が、“プロセス(AP1)”→“ファイル3”および“ファイル4”と伝播するが、“ファイル1”が改ざんされた際、“遮断モード”の場合には、“ファイル3”および“ファイル4”、ならびに以降の“プロセスAP2”、“ファイル6”は、改ざんによる“ファイル1”の「ファイルデータ完全性V1」の喪失の影響から遮断される。一方、“ファイル1”の“記録モード”の場合には、“ファイル1”を起点に“プロセス(AP2)”まで、「ファイルデータ完全性V1」の喪失が連鎖して伝播することが記録される。この記録をもとに、“ファイル6”の「アクセス制御V4」を実行することができる。
(実施形態1のアクセス制御装置)
図4は、実施形態1のアクセス制御装置の構成の一例を示す図である。実施形態1のアクセス制御装置10は、ファイル管理システム20と接続される。ファイル管理システム20では、オペレーティングシステム上で、アクセス元プロセスP1が動作し、アクセス対象ファイルF1へアクセスする。
アクセス制御装置10は、記憶部11、制御部12、入出力部13、アクセス検知・制御部14、データ取得部15、ファイルデータ完全性判定部16、アクセス元プロセス完全性判定部17、不完全プロセスリスト管理部18、アクセス制御判定部19を有する。
(記憶部が記憶する情報)
図5は、実施形態1のアクセス対象ファイルリストと、プロセスACLと、依存プロセスリストと、不完全プロセスリストの一例を示す図である。図6は、実施形態1における判定結果リストの一例を示す図である。記憶部11は、磁気記憶装置または半導体記憶装置等の記憶装置である。
図5に示すように、記憶部11は、初期設定されるデータとして、アクセス対象ファイルリストL1、アクセス対象ファイルリストL1の1レコードごとのリスト群L2、リスト群L2から生成される不完全プロセスリストL3を格納する。また、リスト群L2ぞれぞれは、ファイルパスL2−1、プロセスACL_L2−2、依存プロセスリストL2−3を含む。また、記憶部11は、判定結果リストL4を格納する。アクセス対象ファイルリストL1、リスト群L2、不完全プロセスリストL3、判定結果リストL4は、ファイル、DBMS(Data Base Management System)、あるいはプログラムのメモリ領域などに記録され、参照および更新される。
アクセス対象ファイルリストL1は、「ファイルパス」「参照ダイジェスト値」「アクセス元プロセス完全性判定フラグ」「制御フラグ」の項目を有する。「ファイルパス」は、ファイル管理システム20におけるアクセス元プロセスP1のアクセス対象ファイルF1のファイルパスである。
「参照ダイジェスト値」は、アクセス対象ファイルF1の「ファイルデータ完全性V1」を判定するためのアクセス対象ファイルF1の参照ダイジェスト値であり、アクセス対象ファイルF1のファイルデータをSHA-256等のhash関数で変換した値である。なお、アクセス対象ファイルF1が、ログファイル等のデータが変更または更新されるファイルである場合には、「参照ダイジェスト値」は定義されない。
「アクセス元プロセス完全性判定フラグ」は、ファイル管理システム20におけるアクセス対象ファイルF1の「アクセス元プロセス完全性V2」を判定する場合は“YES”、判定しない場合は“NO”がセットされる。なお、アクセス対象ファイルF1が、「参照ダイジェスト値」が定義されないログファイル等のデータが変更または更新されるファイルである場合には、「アクセス元プロセス完全性判定フラグ」“YES”がセットされることが必須である。
「制御フラグ」“遮断モード”は、「ファイルデータ完全性V1」および「アクセス元プロセス完全性V2」のいずれかの判定結果がNGであれば、アクセス対象ファイルF1に対するファイルアクセスを遮断する制御を行う動作モードである。また、「制御フラグ」“記録モード”は、「ファイルデータ完全性V1」および「アクセス元プロセス完全性V2」のいずれかの判定結果がNGであっても、アクセス対象ファイルF1に対するファイルアクセスを遮断せずに許可し、「ファイルデータ完全性V1」および「アクセス元プロセス完全性V2」の判定結果を記録する制御を行う動作モードである。
例えば、アクセス対象ファイルリストL1において、「ファイルパス」“d1/d2/f1”のアクセス対象ファイルF1は、「参照ダイジェスト値」が“f1のhash値”であり、「アクセス元プロセス完全性判定フラグ」が“YES”であり、「制御フラグ」が“遮断モード”である。
なお、アクセス対象ファイルリストL1における「アクセス対象ファイルF1」は、ファイル管理システム20上の全てのファイルではなく、ファイル管理システム20上のファイルのうちの、保護対象であるアクセス先ファイルおよびこれらに対するアクセス元プロセスの依存対象ファイルである。
そして、アクセス対象ファイルリストL1の「ファイルパス」“d1/d2/f1”のレコードに対応するリスト群L2は、“d1/d2/f1”を格納するファイルパスL2−1、プロセスACL_L2−2、依存プロセスリストL2−3を含む。プロセスACL_L2−2は、アクセス対象ファイルF1ごとのリストであり、「ファイルパス」“d1/d2/f1”のアクセス対象ファイルF1に対してアクセスを許可するアクセス元プロセスP1の実行ファイルが格納されるファイルパスのリストである。また、依存プロセスリストL2−3は、アクセス対象ファイルF1ごとのリストであり、アクセス対象ファイルF1に対して動作の正当性を依存する依存プロセスの実行ファイルが格納されるファイルパスのリストである。
例えば、プロセスACL_L2−2において、「ファイルパス」“d1/d2/f1”のアクセス対象ファイルF1へのファイルアクセスが許可されている「許可プロセスの実行ファイルパス」は、“d1/d2/f1”“d1/d4/f5”“d1/d5/f7”・・・である。また、依存プロセスリストL2−3において、「ファイルパス」“d1/d2/f1”のアクセス対象ファイルF1に対して動作の正当性を依存する「依存プロセスの実行ファイルパス」は、“d1/d2/f1”“d1/d4/f5”・・・である。
不完全プロセスリストL3は、全てのリスト群L2で共有されるリストとして、不完全プロセスリスト管理部18により生成され、更新される。不完全プロセスリストL3は、依存プロセスリストL2−3にファイルパスが登録されている依存プロセスのうち、依存プロセスの完全性を損なっているリスクがあるプロセスの実行ファイルパスを記録するリストである。“依存プロセスの完全性を損なっている”とは、依存プロセスが依存する依存対象ファイルの「ファイルデータ完全性V1」が損なわれていることをいう。不完全プロセスリストL3は、「アクセス元プロセス完全性V2」の判定の際に、プロセスACL_L2−2とともに参照される。
すなわち、アクセス対象ファイルF1にアクセスするアクセス元プロセスP1の実行ファイルのファイルパスが、プロセスACL_L2−2に登録されており、不完全プロセスリストL3に登録されていない場合に、「アクセス元プロセス完全性V2」の判定結果がOKと判定される。一方、アクセス対象ファイルF1にアクセスするアクセス元プロセスP1の実行ファイルのファイルパスが、プロセスACL_L2−2に登録されていない、または、不完全プロセスリストL3に登録されている場合に、「アクセス元プロセス完全性V2」の判定結果がNGと判定される。
また、不完全プロセスリストL3は、アクセス対象ファイルF1の「ファイルデータ完全性V1」の判定結果がNGであり、かつ、アクセス対象ファイルF1の「制御フラグ」“記録モード”である場合に、依存プロセスリストL2−3に登録されている依存プロセスの実行ファイルパスが追加される。
判定結果リストL4は、一時停止中のファイルアクセスに対する、判定結果の記録の一時保管データを記録するために自動生成され、更新される。判定結果リストL4には、アクセス対象ファイルF1の「ファイルデータ完全性V1」の判定結果、「アクセス元プロセス完全性V2」の判定結果が記録される。そして、判定結果リストL4には、「ファイルデータ完全性V1」および「アクセス元プロセス完全性V2」の判定結果がともにNGでない場合、「アクセス完全性V3」の判定結果OKが記録され、「ファイルデータ完全性V1」および「アクセス元プロセス完全性V2」の少なくともいずれかの判定結果がNGである場合、「アクセス完全性V3」の判定結果NGが記録される。
また、判定結果リストL4には、「アクセス完全性V3」の判定結果がOK、または、「制御フラグ」が“記録モード”のとき、「アクセス制御V4」“許可”の判定結果が記録される。一方、判定結果リストL4には、「アクセス完全性V3」の判定結果がNG、かつ、「制御フラグ」が“遮断モード”のとき、「アクセス制御V4」“遮断”の判定結果が記録される。
図4の説明に戻る。制御部12は、CPU(Central Processing Unit)等の処理装置であり、アクセス制御装置10の全体制御を行う。制御部12は、記憶部11、入出力部13、アクセス検知・制御部14、データ取得部15、ファイルデータ完全性判定部16、アクセス元プロセス完全性判定部17、不完全プロセスリスト管理部18、アクセス制御判定部19を制御する。
入出力部13は、アクセス対象ファイルリストL1、アクセス対象ファイルリストL1に登録されている全ての「ファイルパス」に対応するファイルパスL2−1、プロセスACL_L2−2、依存プロセスリストL2−3を含むリスト群L2を登録するためのインターフェースを提供する。具体的には、入出力部13は、入力に関しては、アクセス対象ファイルリストL1、ファイルパスL2−1、プロセスACL_L2−2、依存プロセスリストL2−3を含むリスト群L2のデータを記載した入力データを、オペレータが入力するためのユーザインターフェースにより実現される。入出力部13は、出力に関しては、出力データをログファイルとして出力、あるいは、出力データを表示するユーザインターフェースにより実現される。
アクセス検知・制御部14は、ファイル管理システム20上で、例えば、アクセス元プロセスP1がアクセス対象ファイルF1をopenし、かつ、アクセス対象ファイルF1のファイルデータへのアクセスが未実施の状態を検知し、当該ファイルアクセスを一時停止させる。そして、アクセス検知・制御部14は、アクセス元プロセスIDおよびアクセス対象ファイルパスを制御部12へ送信する。
そして、アクセス検知・制御部14は、「アクセス制御V4」が“許可”のとき、ファイルアクセス検知で一時停止していたファイルアクセスを許可して一時停止を解除する。また、アクセス検知・制御部14は、「アクセス制御V4」が“遮断”のとき、ファイルアクセス検知で一時停止していたファイルアクセスを遮断する。アクセス検知・制御部14は、例えば、Linux(登録商標、以下同様)のAPI(Application Programming Interface)であるfanotifyを用いて、Linuxファイルシステム上のファイルアクセスについてアクセス検知および制御を実施することができる。また、別の例としては、オペレーティングシステムがプログラムを実行するために、プログラムファイルにアクセスする契機を検知し、制御することができる。
データ取得部15は、アクセス元プロセスIDを制御部12から受信し、アクセス元プロセスP1の実行ファイルパスを制御部12へ入力する。そして、データ取得部15は、アクセス対象ファイルF1のファイルデータを取得し、制御部12へ入力する。データ取得部15の機能は、オペレーティングシステムの機能を利用することで実現できる。
ファイルデータ完全性判定部16は、記憶部11のアクセス対象ファイルリストL1において、アクセス対象ファイルF1のファイルパスに対応する参照ダイジェスト値が定義されている場合、すなわちアクセス対象ファイルF1が“データ固定ファイル”である場合、アクセス対象ファイルF1のファイルデータのダイジェスト値を算出し、算出したダイジェスト値と参照ダイジェスト値を比較する。そして、ファイルデータ完全性判定部16は、比較結果が一致する場合には「ファイルデータ完全性V1」の判定結果をOKと判定し、一致しない場合には「ファイルデータ完全性V1」の判定結果をNGと判定する。なお、ファイルデータ完全性判定部16は、アクセス対象ファイルF1が“データ変動ファイル”である場合、アクセス対象ファイルF1のファイルパスに対応する参照ダイジェスト値が定義されておらず、「ファイルデータ完全性V1」の判定を行わないので、判定結果は存在せず、判定結果を“NA”とする。
アクセス元プロセス完全性判定部17は、「アクセス対象ファイルF1のプロセスACL_L2−2に、アクセス元プロセスP1の実行ファイルパスの記載があり、かつ、不完全プロセスリストL3にアクセス元プロセスP1の実行ファイルパスの記載がないこと」の真偽を判定する。アクセス元プロセス完全性判定部17は、「アクセス対象ファイルF1のプロセスACL_L2−2に、アクセス元プロセスP1の実行ファイルパスの記載があり、かつ、不完全プロセスリストL3にアクセス元プロセスP1の実行ファイルパスの記載がないこと」が真であれば、「アクセス元プロセス完全性V2」の判定結果をOKと判定する。
一方、アクセス元プロセス完全性判定部17は、「アクセス対象ファイルF1のプロセスACL_L2−2に、アクセス元プロセスP1の実行ファイルパスの記載があり、かつ、不完全プロセスリストL3にアクセス元プロセスP1の実行ファイルパスの記載がないこと」が偽であれば、「アクセス元プロセス完全性V2」の判定結果をNGと判定する。
不完全プロセスリスト管理部18は、「アクセス対象ファイルF1の「ファイルデータ完全性V1」が判定結果NGであり、かつ、アクセス対象ファイルF1の「制御フラグ」が“記録モード”である」とき、アクセス対象ファイルF1の依存プロセスリストL2−3に記載されている実行ファイルパスを、不完全プロセスリストL3に追加する。
アクセス制御判定部19は、ファイルデータ完全性判定部16による「ファイルデータ完全性V1」の判定結果、および、アクセス元プロセス完全性判定部17による「アクセス元プロセス完全性V2」の判定結果がともにNGでない場合、「アクセス完全性V3」の判定結果をOKと判定する。また、アクセス制御判定部19は、ファイルデータ完全性判定部16による「ファイルデータ完全性V1」の判定結果、および、アクセス元プロセス完全性判定部17による「アクセス元プロセス完全性V2」の判定結果のいずれかがNGのとき、「アクセス完全性V3」の判定結果をNGと判定する。
そして、アクセス制御判定部19は、「アクセス完全性V3」の判定結果がOK、または、「制御フラグ」が“記録モード”のとき、「アクセス制御V4」は“許可”と判定する。また、アクセス制御判定部19は、「アクセス完全性V3」の判定結果NG、かつ、「制御フラグ」が“遮断モード”のとき、「アクセス制御V4」は“遮断”と判定する。
(実施形態1の初期設定処理)
図7は、実施形態1の初期設定処理の一例を示すフローチャートである。実施形態1の初期設定処理は、オペレータの操作時に、アクセス制御装置10の制御部12により実行される。ステップS11では、制御部12は、入出力部13を介して、オペレータによる指示に応じて、アクセス対象ファイルリストL1、アクセス対象ファイルリストL1に記載されている全ての「ファイルパス」に対応するファイルパスL2−1、プロセスACL_L2−2、依存プロセスリストL2−3を含むリスト群L2の初期設定の登録を受け付け、記憶部11に格納する。制御部12は、ステップS11が終了すると、実施形態1の初期設定処理を終了する。
(実施形態1のファイルアクセス制御処理)
図8は、実施形態1のファイルアクセス制御処理の一例を示すフローチャートである。実施形態1の初期設定処理は、アクセス制御装置10により、随時実行される。先ず、ステップS21では、アクセス検知・制御部14は、ファイル管理システム20上で、アクセス元プロセスP1がアクセス対象ファイルF1をopenし、かつ、アクセス対象ファイルF1のファイルデータへのアクセス未実施の状態を検知し、アクセスを一時的に停止する。そして、アクセス検知・制御部14は、アクセス元プロセスIDと、アクセス対象ファイルパスを制御部12へ送信する(以上、ステップS21)。
次に、ステップS22では、データ取得部15は、アクセス元プロセスIDを制御部12から受信し、アクセス元プロセスP1の実行ファイルパスを制御部12へ入力するとともに、アクセス対象ファイルF1のファイルパスのファイルデータを取得し、制御部12へ入力する。
次に、ステップS23では、ファイルデータ完全性判定部16は、記憶部11のアクセス対象ファイルリストL1にアクセス対象ファイルパスに対応する参照ダイジェスト値が定義されている場合、すなわち“データ固定ファイル”である場合には、アクセス対象ファイルF1のファイルデータのダイジェスト値を算出し、算出したダイジェスト値と参照ダイジェスト値とを比較する。そして、ファイルデータ完全性判定部16は、算出したダイジェスト値と参照ダイジェスト値とが一致するならば、アクセス対象ファイルF1の「ファイルデータ完全性V1」の判定結果をOKと判定し、一致しないならば、アクセス対象ファイルF1の「ファイルデータ完全性V1」の判定結果をNGと判定する。なお、ステップS23では、ファイルデータ完全性判定部16は、アクセス対象ファイルF1が“データ変動ファイル”である場合、アクセス対象ファイルF1のファイルパスに対応する参照ダイジェスト値が定義されておらず、「ファイルデータ完全性V1」の判定を行わないので、判定結果は存在せず、判定結果を“NA”とする(以上、ステップS23)。
次に、ステップS24では、アクセス元プロセス完全性判定部17は、「アクセス対象ファイルF1のプロセスACL_L2−2に、アクセス元プロセスP1の実行ファイルパスの記載があり、かつ、不完全プロセスリストL3にアクセス元プロセスP1の実行ファイルパスの記載がないこと」の真偽を判定する。アクセス元プロセス完全性判定部17は、「アクセス対象ファイルF1のプロセスACL_L2−2に、アクセス元プロセスP1の実行ファイルパスの記載があり、かつ、不完全プロセスリストL3にアクセス元プロセスP1の実行ファイルパスの記載がないこと」が真であれば、「アクセス元プロセス完全性V2」の判定結果をOKと判定する。一方、アクセス元プロセス完全性判定部17は、「アクセス対象ファイルF1のプロセスACL_L2−2に、アクセス元プロセスP1の実行ファイルパスの記載があり、かつ、不完全プロセスリストL3にアクセス元プロセスP1の実行ファイルパスの記載がないこと」が偽であれば、「アクセス元プロセス完全性V2」の判定結果をNGと判定する(以上、ステップS24)。
次に、ステップS25では、不完全プロセスリスト管理部18は、「アクセス対象ファイルF1の「ファイルデータ完全性V1」の判定結果NGであり、かつ、アクセス対象ファイルF1の「制御フラグ」が“記録モード”である」とき、アクセス対象ファイルF1の依存プロセスリストL2−3に記載されている依存プロセスの実行ファイルパスを、不完全プロセスリストL3に追加する。
次に、ステップS26では、アクセス制御判定部19は、ステップS23による「ファイルデータ完全性V1」およびステップS24による「アクセス元プロセス完全性V2」がともに判定結果がNGでないとき、「アクセス完全性V3」の判定結果をOKと判定する。また、アクセス制御判定部19は、ステップS23による「ファイルデータ完全性V1」およびステップS24による「アクセス元プロセス完全性V2」のいずれかの判定結果がNGのとき、「アクセス完全性V3」の判定結果をNGと判定する。そして、アクセス制御判定部19は、「アクセス完全性V3」が判定結果がOK、または、「制御フラグ」が“記録モード”のとき、「アクセス制御V4」を“許可”と判定する。また、アクセス制御判定部19は、「アクセス完全性V3」が判定結果NG、かつ、「制御フラグ」が“遮断モード”のとき、「アクセス制御V4」を“遮断”と判定する(以上、ステップS26)。
次に、ステップS27では、アクセス検知・制御部14は、「アクセス制御V4」が“許可”のとき、ステップS21のファイルアクセス検知で一時停止していたファイルアクセスを許可する。また、アクセス検知・制御部14は、「アクセス制御V4」が“遮断”のとき、ステップS21のファイルアクセス検知で一時停止していたファイルアクセスを遮断する(以上、ステップS27)。ステップS27が終了すると、アクセス制御装置10は、実施形態1のファイルアクセス制御処理を終了する。
以上の実施形態1によれば、ファイルシステム上のファイルに対するプログラムプロセスからのアクセスが適正であるか否かを判定する。そして、完全性を欠いたファイルに対するアクセス、アクセスを許可されていないプログラムプロセスからファイルへのアクセス、および、完全性を欠いたファイルに依存するプログラムプロセスからファイルへのアクセスは不適正と判定し、アクセスを遮断するか、または、不適正なアクセスが実行された記録を残す。
例えば、ファイルアクセスにおいて、アクセス元プロセスの完全性を判定することで、アクセス元プロセスがマルウェア等の不適切なプロセスである場合に、アクセス元プロセスによるファイルアクセスを遮断し、アクセス先ファイルの完全性が失われることを防止できる。さらに、アクセス先ファイルごとに記録モードか遮断モードかを定義し、不完全プロセスリストを用いることにより、アクセス元プロセスが不完全なプロセスであっても、アクセス元プロセスによるファイルアクセスを許可しつつ、記録モードにてファイルアクセスのログを記録する。よって、ファイル→プロセス→ファイルと伝播する完全性喪失の連鎖の記録をたどって、柔軟なファイルのアクセス制御ができる。
(実施形態1の変形例)
実施形態1の変形例では、不完全プロセスリストL3に代えて、依存プロセスリストL2−3にファイルパスが登録されている依存プロセスのうち、依存プロセスの完全性を喪失していない完全プロセスのリストを用いてもよい。または、不完全プロセスリストL3に代えて、依存プロセスリストL2−3にファイルパスが登録されている依存プロセスの全プロセスに完全および不完全のいずれかを示す情報を対応付けて記録したリストを用いてもよい。
[実施形態2]
実施形態1では、アクセス制御装置10は、記憶部11に、アクセス対象ファイルリストL1、ファイルパスL2−1、プロセスACL_L2−2、依存プロセスリストL2−3を含むリスト群L2、リスト群L2から生成される不完全プロセスリストL3を格納する。しかし、アクセス対象ファイルリストL1から「制御フラグ」を除外し、リスト群L2から依存プロセスリストL2−3および不完全プロセスリストL3を省略した形態で実施されてもよい。以下、この実施形態2について説明する。
(実施形態2のファイルアクセス制御装置および記憶部が記憶する情報)
図9は、実施形態2のアクセス制御装置の構成の一例を示す図である。図10は、実施形態2のアクセス対象ファイルリストと、プロセスACLの一例を示す図である。実施形態2のアクセス制御装置10Aは、実施形態1のアクセス制御装置10と比較して、記憶部11に代えて記憶部11A、アクセス元プロセス完全性判定部17に代えてアクセス元プロセス完全性判定部17A、アクセス制御判定部19に代えてアクセス制御判定部19Aを有する。また、実施形態2のアクセス制御装置10Aは、実施形態1のアクセス制御装置10と比較して、不完全プロセスリスト管理部18が省略されている。
また、実施形態2のアクセス制御装置10Aの記憶部11Aに格納されるアクセス対象ファイルリストL1Aは、実施形態2のアクセス対象ファイルリストL1と比較して、「制御フラグ」の項目が省略されている。また、実施形態2のアクセス制御装置10Aの記憶部11Aに格納されるリスト群L2Aは、実施形態1のリスト群L2と比較して、依存プロセスリストL2−3が省略されている。また、実施形態2では、アクセス制御装置10Aの記憶部11Aにおいて、不完全プロセスリストL3が省略されている。その他の点は、実施形態2のアクセス制御装置10Aは、実施形態1のアクセス制御装置10と同様である。
アクセス元プロセス完全性判定部17Aは、「アクセス対象ファイルF1のプロセスACL_L2−2に、アクセス元プロセスP1の実行ファイルパスの記載があること」の真偽を確認する。そして、アクセス元プロセス完全性判定部17Aは、「アクセス対象ファイルF1のプロセスACL_L2−2に、アクセス元プロセスP1の実行ファイルパスの記載があること」が真であれば、「アクセス元プロセス完全性V2」の判定結果をOKと判定する。
一方、アクセス元プロセス完全性判定部17Aは、「アクセス対象ファイルF1のプロセスACL_L2−2に、アクセス元プロセスP1の実行ファイルパスの記載があること」が偽であれば、「アクセス元プロセス完全性V2」の判定結果をNGと判定する。
すなわち、実施形態2では、「アクセス元プロセス完全性V2」の判定の際、「不完全プロセスリストL3にアクセス元プロセスP1の実行ファイルパスの記載がないこと」を判定条件に含めない。これは、実施形態1において「アクセス元プロセス完全性V2」の判定の際に参照する不完全プロセスリストL3が、「ファイルデータ完全性V1」を有さないファイルを実行した“依存プロセスの完全性にリスク”が存在する点を考慮するためのリストであり、実施形態2では、このリスクが再帰的に伝播することを考慮しないためである。なお、実施形態2において、アクセス元プロセスの依存対象ファイルを、アクセス対象ファイルリストL1に記載することによって、完全性にリスクのあるアクセス元プロセスが実行されることを遮断または記録することができる。すなわち、許可プロセスの依存対象ファイルがアクセス先ファイルであるファイルアクセスおいて、依存対象ファイルの改ざんを判定し、判定の結果に応じてこのファイルアクセスを遮断または記録することによって、依存対象ファイルの依存プロセスがアクセス元プロセスであるファイルアクセスにおける依存対象ファイルの改ざんの影響を遮断または記録することができる。なお、許可プロセスの依存対象ファイルがアクセス先ファイルであるファイルアクセスには、例えば、許可プロセスの実行ファイルに対するオペレーティングシステムのアクセス、許可プロセスの設定ファイルに対する許可プロセス自体のアクセスがある。
アクセス制御判定部19Aは、ファイルデータ完全性判定部16による「ファイルデータ完全性V1」の判定結果、および、アクセス元プロセス完全性判定部17Aによる「アクセス元プロセス完全性V2」の判定結果がともにNGでない場合、「アクセス完全性V3」の判定結果をOKと判定する。また、アクセス制御判定部19Aは、ファイルデータ完全性判定部16による「ファイルデータ完全性V1」の判定結果、および、アクセス元プロセス完全性判定部17Aによる「アクセス元プロセス完全性V2」の判定結果のいずれかがNGのとき、「アクセス完全性V3」の判定結果をNGと判定する。
そして、アクセス制御判定部19Aは、「アクセス完全性V3」の判定結果がOKのとき、「アクセス制御V4」は“許可”と判定する。また、アクセス制御判定部19Aは、「アクセス完全性V3」の判定結果NGのとき、「アクセス制御V4」は“遮断”と判定する。
(実施形態2のファイルアクセス制御処理)
図11は、実施形態2のファイルアクセス制御処理の一例を示すフローチャートである。図11において、ステップS21〜ステップS23は、実施形態1と同様である。ステップS23に続いてステップS24’では、アクセス元プロセス完全性判定部17Aは、「アクセス対象ファイルのプロセスACL_L2−2に、アクセス元プロセスP1の実行ファイルパスの記載があること」の真偽を判定する。アクセス元プロセス完全性判定部17Aは、「アクセス対象ファイルのプロセスACL_L2−2に、アクセス元プロセスP1の実行ファイルパスの記載があること」が真であれば、「アクセス元プロセス完全性V2」の判定結果をOKと判定する。一方、アクセス元プロセス完全性判定部17Aは、「アクセス対象ファイルのプロセスACL_L2−2に、アクセス元プロセスP1の実行ファイルパスの記載があること」が偽であれば「アクセス元プロセス完全性V2」の判定結果をNGと判定する(以上、ステップS24’)。
次に、ステップS26’では、アクセス制御判定部19Aは、ステップS23によるアクセス対象ファイルF1の「ファイルデータ完全性V1」およびステップS24’による「アクセス元プロセス完全性V2」がともに判定結果がNGでないとき、「アクセス完全性V3」の判定結果をOKと判定する。また、アクセス制御判定部19Aは、ステップS23による「ファイルデータ完全性V1」およびステップS24’による「アクセス元プロセス完全性V2」のいずれかの判定結果がNGのとき、「アクセス完全性V3」の判定結果をNGと判定する。そして、アクセス制御判定部19Aは、「アクセス完全性V3」が判定結果がOKのとき、「アクセス制御V4」を“許可”と判定する。また、アクセス制御判定部19Aは、「アクセス完全性V3」の判定結果がNGのとき、「アクセス制御V4」を“遮断”と判定する(以上、ステップS26’)。
次に、ステップS27’では、アクセス検知・制御部14は、「アクセス制御V4」が“許可”のとき、ファイルアクセス検知で一時停止していたファイルアクセスを許可する。一方、アクセス検知・制御部14は、「アクセス制御V4」が“遮断”のとき、ファイルアクセス検知で一時停止していたファイルアクセスを遮断する(以上、ステップS27’)。ステップS27’が終了すると、アクセス制御装置10Aは、実施形態2のファイルアクセス制御処理を終了する。
以上の実施形態2によれば、依存プロセスリストL2−3および不完全プロセスリストL3を用いず、完全性を欠いたファイルに対するアクセス、および、アクセスを許可されていないプログラムプロセスからファイルへのアクセスは不適正と判定し、アクセスを遮断するか、または、不適正なアクセスが実行された記録を残すことで、簡易な構成および処理で、ファイルシステム上のファイルに対するプログラムプロセスからのアクセスが適正であるか否かを判定できる。
(実施形態2の変形例)
実施形態2のアクセス制御装置10Aは、「制御フラグ」を導入せず、「アクセス完全性V3」の判定結果がNGのとき、常に“遮断モード”で動作するが、これに限られず、常に“記録モード”で動作するとしてもよい。
(アクセス制御装置の装置構成について)
図4および図9に示すアクセス制御装置10、10Aの各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、アクセス制御装置10、10Aの機能の分散および統合の具体的形態は図示のものに限られず、全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散または統合して構成することができる。例えば、アクセス検知・制御部14は、アクセス検知部と、アクセス制御部とに分散されてもよい。
また、実施形態1および2において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。もしくは、実施形態1および2において説明した各処理のうち、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記および図示の処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて適宜変更することができる。
(プログラムについて)
図12は、プログラムが実行されることにより、アクセス制御装置が実現されるコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。コンピュータ1000において、これらの各部はバス1080によって接続される。
メモリ1010は、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1031に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1041に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1041に挿入される。シリアルポートインタフェース1050は、例えばマウス1051、キーボード1052に接続される。ビデオアダプタ1060は、例えばディスプレイ1061に接続される。
ハードディスクドライブ1031は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、アクセス制御装置10の各処理を規定するプログラムは、コンピュータ1000によって実行される指令が記述されたプログラムモジュール1093として、例えばハードディスクドライブ1031に記憶される。例えば、アクセス制御装置10における機能構成と同様の情報処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1031に記憶される。
また、実施形態1および2での処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1031に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1041等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093やプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093やプログラムデータ1094は、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
以上の実施形態1および2は、本願が開示する技術に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
F ファイル
F1 アクセス対象ファイル
P1 アクセス元プロセス
L1、L1A アクセス対象ファイルリスト
L2、L2A リスト群
L2−1 ファイルパス
L2−2 プロセスACL
L2−3 依存プロセスリスト
L3 不完全プロセスリスト
10、10A アクセス制御装置
11、11A 記憶部
12 制御部
13 入出力部
14 アクセス検知・制御部
15 データ取得部
16 ファイルデータ完全性判定部
17、17A アクセス元プロセス完全性判定部
18 不完全プロセスリスト管理部
19、19A アクセス制御判定部
20 ファイル管理システム
1000 コンピュータ
1010 メモリ
1030 ハードディスクドライブインタフェース
1031 ハードディスクドライブ
1040 ディスクドライブインタフェース
1041 ディスクドライブ
1050 シリアルポートインタフェース
1051 マウス
1052 キーボード
1060 ビデオアダプタ
1061 ディスプレイ
1070 ネットワークインタフェース
1080 バス
1092 アプリケーションプログラム
1093 プログラムモジュール
1094 プログラムデータ

Claims (8)

  1. ファイルへのアクセスを許可されている許可プロセスの識別情報を該ファイルごとに記憶し、ファイルに依存する依存プロセスの識別情報を該ファイルごとに記憶するとともに、該依存プロセスのうち該ファイルが改ざんされていると判定された不完全プロセスの識別情報を記憶する記憶部と、
    ファイルに対するアクセス元プロセスのアクセスを検知する検知部と、
    ファイルのファイルデータに基づいて、該ファイルが改ざんされているか否かを判定するファイル判定部と、
    前記検知部によりファイルに対するアクセスが検知されたアクセス元プロセスの識別情報が前記許可プロセスの識別情報に含まれているか否かを判定し、前記アクセス元プロセスの識別情報が前記不完全プロセスの識別情報に含まれているか否かを判定するプロセス判定部と、
    前記ファイル判定部により、前記アクセス元プロセスがアクセスしようとしているファイルが改ざんされていないと判定され、かつ、前記アクセス元プロセスの識別情報が前記許可プロセスの識別情報に含まれていると判定され、かつ、前記アクセス元プロセスの識別情報が前記不完全プロセスの識別情報に含まれていないと判定された場合には、該ファイルに対する前記アクセス元プロセスのアクセスを安全と判定し、該ファイルが改ざんされていると判定された、または、前記アクセス元プロセスの識別情報が前記許可プロセスの識別情報に含まれていないと判定された、または、前記アクセス元プロセスの識別情報が前記不完全プロセスの識別情報に含まれていると判定された場合には、該ファイルに対する前記アクセス元プロセスのアクセスを危険と判定するアクセス制御判定部と
    を備えたことを特徴とするアクセス制御装置。
  2. ファイルへのアクセスを許可されている許可プロセスの識別情報を該ファイルごとに記憶し、遮断モードおよび記録モードのいずれかのモードを示す制御フラグを前記ファイルの識別情報それぞれに対応付けて記憶する記憶部と、
    ファイルに対するアクセス元プロセスのアクセスを検知し、アクセス先ファイルに対するアクセスを検知したアクセス元プロセスのアクセスを一時停止させる検知部と、
    ファイルのファイルデータに基づいて、該ファイルが改ざんされているか否かを判定するファイル判定部と、
    前記検知部によりファイルに対するアクセスが検知されたアクセス元プロセスの識別情報が前記許可プロセスの識別情報に含まれているか否かを判定するプロセス判定部と、
    前記ファイル判定部により、前記アクセス元プロセスがアクセスしようとしているファイルが改ざんされていないと判定され、かつ、前記アクセス元プロセスの識別情報が前記許可プロセスの識別情報に含まれていると判定された場合には、該ファイルに対する前記アクセス元プロセスのアクセスを安全と判定し、該ファイルが改ざんされていると判定された、または、前記アクセス元プロセスの識別情報が前記許可プロセスの識別情報に含まれていないと判定された場合には、該ファイルに対する前記アクセス元プロセスのアクセスを危険と判定するアクセス制御判定部と、
    前記アクセス制御判定部により、前記アクセス先ファイルに対する前記アクセス元プロセスのアクセスが前記危険と判定された際、前記アクセス先ファイルの識別情報に対応する前記制御フラグが前記遮断モードを示す場合には前記一時停止を解除せず該アクセスを遮断し、前記制御フラグが前記記録モードを示す場合には前記一時停止を解除するアクセス制御部と
    を備えたことを特徴とするアクセス制御装置。
  3. さらに、
    前記記憶部は、前記アクセス元プロセスが依存する依存対象ファイルの識別情報を記憶し、
    前記ファイル判定部は、前記アクセス元プロセスが依存する依存対象ファイルが改ざんされているか否かを判定する
    ことを特徴とする請求項1または2に記載のアクセス制御装置。
  4. さらに、
    前記検知部は、アクセス先ファイルに対するアクセスを検知したアクセス元プロセスのアクセスを一時停止させ、
    前記アクセス制御判定部により、前記安全とされた前記アクセス元プロセスのアクセスの一時停止を解除し、前記危険とされた前記アクセス元プロセスのアクセスの一時停止を解除せず、該アクセスを遮断するアクセス制御部
    を備えたことを特徴とする請求項1〜3のいずれか1項に記載のアクセス制御装置。
  5. さらに、
    前記ファイル判定部および前記プロセス判定部による判定結果を記録する
    ことを特徴とする請求項1〜4のいずれか1項に記載のアクセス制御装置。
  6. アクセス制御装置が実行するアクセス制御方法であって、
    ファイルに対するアクセス元プロセスのアクセスを検知する検知ステップと、
    ファイルのファイルデータに基づいて、該ファイルが改ざんされているか否かを判定するファイル判定ステップと、
    前記検知ステップによりファイルに対するアクセスが検知されたアクセス元プロセスの識別情報が、ファイルへのアクセスを許可されている許可プロセスの識別情報を該ファイルごとに記憶部に記憶されている前記許可プロセスの識別情報に含まれているか否かを判定し、ファイルに依存する依存プロセスの識別情報を該ファイルごとに前記記憶部に記憶されるとともに、該依存プロセスのうち前記ファイル判定ステップにより該ファイルが改ざんされていると判定されて前記記憶部に記憶された不完全プロセスの識別情報に、前記アクセス元プロセスの識別情報が含まれているか否かを判定するプロセス判定ステップと、
    前記ファイル判定ステップにより、前記アクセス元プロセスがアクセスしようとしているファイルが改ざんされていないと判定され、かつ、前記アクセス元プロセスの識別情報が前記許可プロセスの識別情報に含まれていると判定され、かつ、前記アクセス元プロセスの識別情報が前記不完全プロセスの識別情報に含まれていないと判定された場合には、該ファイルに対する前記アクセス元プロセスのアクセスを安全と判定し、該ファイルが改ざんされていると判定された、または、前記アクセス元プロセスの識別情報が前記許可プロセスの識別情報に含まれていないと判定された、または、前記アクセス元プロセスの識別情報が前記不完全プロセスの識別情報に含まれていると判定された場合には、該ファイルに対する前記アクセス元プロセスのアクセスを危険と判定するアクセス制御判定ステップと
    を含んだことを特徴とするアクセス制御方法。
  7. アクセス制御装置が実行するアクセス制御方法であって、
    ファイルに対するアクセス元プロセスのアクセスを検知し、アクセス先ファイルに対するアクセスを検知したアクセス元プロセスのアクセスを一時停止させる検知ステップと、
    ファイルのファイルデータに基づいて、該ファイルが改ざんされているか否かを判定するファイル判定ステップと、
    前記検知ステップによりファイルに対するアクセスが検知されたアクセス元プロセスの識別情報が、ファイルへのアクセスを許可されている許可プロセスの識別情報を該ファイルごとに記憶部に記憶されている前記許可プロセスの識別情報に含まれているか否かを判定するプロセス判定ステップと、
    前記ファイル判定ステップにより、前記アクセス元プロセスがアクセスしようとしているファイルが改ざんされていないと判定され、かつ、前記アクセス元プロセスの識別情報が前記許可プロセスの識別情報に含まれていると判定された場合には、該ファイルに対する前記アクセス元プロセスのアクセスを安全と判定し、該ファイルが改ざんされていると判定された、または、前記アクセス元プロセスの識別情報が前記許可プロセスの識別情報に含まれていないと判定された場合には、該ファイルに対する前記アクセス元プロセスのアクセスを危険と判定するアクセス制御判定ステップと、
    前記アクセス制御判定ステップにより、前記アクセス先ファイルに対する前記アクセス元プロセスのアクセスが前記危険と判定された際、前記ファイルの識別情報それぞれに対応付けて前記記憶部に記憶されている遮断モードおよび記録モードのいずれかのモードを示す制御フラグを参照し、前記アクセス先ファイルの識別情報に対応する前記制御フラグが前記遮断モードを示す場合には前記一時停止を解除せず該アクセスを遮断し、前記制御フラグが前記記録モードを示す場合には前記一時停止を解除するアクセス制御ステップと
    を含んだことを特徴とするアクセス制御方法。
  8. 請求項1〜のいずれか1項に記載のアクセス制御装置としてコンピュータを機能させるためのアクセス制御プログラム。
JP2017126639A 2017-06-28 2017-06-28 アクセス制御装置、アクセス制御方法およびアクセス制御プログラム Active JP6787841B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017126639A JP6787841B2 (ja) 2017-06-28 2017-06-28 アクセス制御装置、アクセス制御方法およびアクセス制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017126639A JP6787841B2 (ja) 2017-06-28 2017-06-28 アクセス制御装置、アクセス制御方法およびアクセス制御プログラム

Publications (2)

Publication Number Publication Date
JP2019008732A JP2019008732A (ja) 2019-01-17
JP6787841B2 true JP6787841B2 (ja) 2020-11-18

Family

ID=65027001

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017126639A Active JP6787841B2 (ja) 2017-06-28 2017-06-28 アクセス制御装置、アクセス制御方法およびアクセス制御プログラム

Country Status (1)

Country Link
JP (1) JP6787841B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116685974A (zh) 2021-01-13 2023-09-01 日本电信电话株式会社 篡改检测装置、篡改检测方法及篡改检测程序
JPWO2022153410A1 (ja) 2021-01-13 2022-07-21

Also Published As

Publication number Publication date
JP2019008732A (ja) 2019-01-17

Similar Documents

Publication Publication Date Title
KR102307534B1 (ko) 다수 소프트웨어 개체들에 걸쳐서 악성 행동을 트래킹하기 위한 시스템들 및 방법들
US8042186B1 (en) System and method for detection of complex malware
CN102651061B (zh) 用于检测复杂恶意软件的系统和方法
JP4936294B2 (ja) マルウェアに対処する方法及び装置
US11675905B2 (en) System and method for validating in-memory integrity of executable files to identify malicious activity
US9104860B2 (en) Systems, methods and media for managing process image hijacks
CN107330328B (zh) 防御病毒攻击的方法、装置及服务器
CN110188547B (zh) 一种可信加密系统及方法
JP6000465B2 (ja) プロセス検査装置、プロセス検査プログラムおよびプロセス検査方法
AU2021319159B2 (en) Advanced ransomware detection
EP2492833A1 (en) Method and apparatus for detecting malicious software
TWI607338B (zh) 儲存裝置及其資料保護方法與資料保護系統
JP6787841B2 (ja) アクセス制御装置、アクセス制御方法およびアクセス制御プログラム
CN106997435B (zh) 一种操作系统安全防控的方法、装置及系统
US9967263B2 (en) File security management apparatus and management method for system protection
CN110348180B (zh) 一种应用程序启动控制方法和装置
KR102463814B1 (ko) 서버 모니터링 방법 및 장치
KR102017016B1 (ko) 악성프로그램 처리장치 및 처리방법
CN112800416A (zh) 一种用于调用链的安全防护系统及方法
JP5126495B2 (ja) 安全度評価と連動するセキュリティの方針設定装置、そのプログラムおよびその方法
JP7119480B2 (ja) アプリケーション実行権限管理装置、方法およびプログラム
WO2009048158A1 (ja) ファイルチェック装置、ファイルチェックプログラムおよびファイルチェック方法
KR20090080469A (ko) 프로그램의 설치 방지 방법 및 장치
RU2595510C1 (ru) Способ исключения процессов из антивирусной проверки на основании данных о файле
CN116186700A (zh) 基于凭据行为识别恶意软件的方法、系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190522

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200317

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200518

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201027

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201029

R150 Certificate of patent or registration of utility model

Ref document number: 6787841

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150