JP7399818B2 - 情報処理装置、情報処理方法、およびプログラム - Google Patents

情報処理装置、情報処理方法、およびプログラム Download PDF

Info

Publication number
JP7399818B2
JP7399818B2 JP2020135907A JP2020135907A JP7399818B2 JP 7399818 B2 JP7399818 B2 JP 7399818B2 JP 2020135907 A JP2020135907 A JP 2020135907A JP 2020135907 A JP2020135907 A JP 2020135907A JP 7399818 B2 JP7399818 B2 JP 7399818B2
Authority
JP
Japan
Prior art keywords
information
environment
software
list
name
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
JP2020135907A
Other languages
English (en)
Other versions
JP2022032285A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2020135907A priority Critical patent/JP7399818B2/ja
Priority to US17/249,340 priority patent/US11868814B2/en
Publication of JP2022032285A publication Critical patent/JP2022032285A/ja
Application granted granted Critical
Publication of JP7399818B2 publication Critical patent/JP7399818B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明の実施形態は、情報処理装置、情報処理方法、およびプログラムに関する。
仮想化技術の一つとして、ホスト環境内のリソースを共有する複数の仮想環境を作成する技術がある。当該技術では、例えば、実行ファイル、ライブラリなどといったアプリケーションの実行に必要なリソースが複数の仮想環境によって共有される。
仮想環境は、保持するリソースを、その名前で管理している場合がある。例えば、仮想環境は、アプリケーションの実行指示を受け付けると、当該アプリケーションに関するリソースに当該仮想環境で設定されている名前でアクセスして処理を行う。仮想環境は、ホスト環境とも、他の各仮想環境とも独立した名前空間を持つ。そのため、ホスト環境と仮想環境との間において、または、仮想環境同士間において、同一のリソースにアクセスする場合は、それぞれの名前空間内での名前、つまりパスを用いる必要がある。この特性は、特定の環境において特定の環境内のリソースを監視することには適しているが、特定の環境からその他の環境のリソースを監視することには適していない。例えば、被監視環境内において「/home/usr/app」という名前で管理されているリソースが、監視環境内においては「/virtual/contents/app」という名前で管理されている場合がある。この場合、監視環境内から被監視環境内のリソースを監視することは困難である。
特許第5437238号公報
本発明の一実施形態は、ホスト環境と、一つ以上の仮想環境と、を提供可能な情報処理装置であって、第1環境で起動されたソフトウェアを制御するため、第2環境において当該ソフトウェアの情報を取得する。
本発明の一実施形態である情報処理装置は、ホスト環境と、一つ以上の仮想環境と、のうちのいずれかにおいてソフトウェアの実行を検知し、検知された環境が第1環境であることを示す識別情報 と、第1環境の名前空間における当該ソフトウェアの名前を示す第1名前情報と、を取得する。識別情報 に基づき、第2環境の名前空間における第1環境の名前を示す第2名前情報を取得する。第2名前情報に基づき、第1名前情報を、第2環境の名前空間における当該ソフトウェアの名前を示す第3名前情報に変換する。第3名前情報に基づいてアクセス可能なリソースから当該ソフトウェアの情報を取得する。
第1の実施形態に関する情報処理装置の一例を示すブロック図。 環境情報リストの一例を示す図。 パスの変換を説明する図。 照合リストの一例を示す図。 事前登録リストの一例を示す図。 ソフトウェアの実行制御に関する処理の概略フローチャート。 仮想環境起動検知時の処理の概略フローチャート。 第1の実施形態における仮想環境作成検知時の処理の概略フローチャート。 第2の実施形態に関する情報処理装置の一例を示すブロック図。 仮想環境停止検知時の処理の概略フローチャート。 仮想環境削除検知時の処理の概略フローチャート。 第3の実施形態に関する情報処理装置の一例を示すブロック図。 第3の実施形態における仮想環境作成検知時の処理の概略フローチャート。 第4の実施形態に関する情報処理装置の一例を示すブロック図。 第4の実施形態における仮想環境作成検知時の処理の概略フローチャート。 本発明の一実施形態におけるハードウェア構成の一例を示すブロック図。
以下、図面を参照しながら、本発明の実施形態について説明する。
(第1の実施形態)
図1は、第1の実施形態に関する情報処理装置の一例を示すブロック図である。第1の実施形態に関する情報処理装置は、記憶部101と、ソフトウェア実行検知部102と、パス取得部(名前情報取得部)103と、第1パス変換部104と、第1ソフトウェア情報取得部105と、照合部106と、実行制御部107と、仮想環境起動検知部108と、環境情報リスト更新部109と、仮想環境作成検知部110と、第2パス変換部111と、第2ソフトウェア情報取得部112と、照合リスト更新部113と、を備える。
本実施形態の情報処理装置1は、一つ以上の仮想環境を提供可能な装置である。情報処理装置1によって作成された仮想環境では、ソフトウェアが実行可能である。ただし、情報処理装置1は、仮想環境で実行されるソフトウェアを検知し、検知されたソフトウェアを実行してもよいかどうかを確認する。実行してもよいことが確認された場合、ソフトウェアが実行される。このように仮想環境において実行されるソフトウェアに対して実行制御を行うことにより、仮想環境を保護する。
なお、仮想環境で実行されるソフトウェアだけでなく、ホスト環境で実行されるソフトウェアも検知し、当該ソフトウェアの実行を制御してもよい。また、実行の制御も、ホスト環境で行われてもよいし、仮想環境で行われてもよい。例えば、仮想環境Aと、仮想環境Bと、が作成されたときに、実行制御が、ホスト環境、仮想環境A、および仮想環境Bのいずれにおいても行われてよい。ただし、実行制御を行うためのソフトウェアのコスト、情報処理装置1の負荷等を考慮し、本実施形態での実行制御は、ホスト環境と、一つ以上の仮想環境と、のうちのいずれかにおいて統合的に行われるものとする。本説明では、ホスト環境と、一つ以上の仮想環境と、のうちのいずれかであって、実行制御が行われる環境を、監視環境と記載する。また、本説明では、ホスト環境と、一つ以上の仮想環境と、のうちのいずれかであって、検知されたソフトウェアが実行される環境を、実行環境と記載する。
さらに、本実施形態では、実行環境をより保護するために、ソフトウェアの実行ファイルなどが改ざんされていないかも確認する。検知されたソフトウェアが許可されるべきものであったとしても、その設定が改ざんされている場合が考えられ、改ざんされた設定では、当該ソフトウェアが安全とは限らないためである。
上記の確認のために、ソフトウェアに関する情報が保存されている照合リストが用いられる。例えば、照合リストが示す情報と、検知されたソフトウェアの検知時点における情報と、が一致している場合のみ、ソフトウェアの実行が許可されるといったホワイトリスト型の実行制御を行ってもよい。あるいは、照合リストが示す情報と、検知されたソフトウェアの検知時点における情報と、が一致しなかった場合、ソフトウェアの実行が許可されるといったブラックリスト型の実行制御が行われてもよい。情報処理装置1は、照合リストの使用用途を受け付けてもよい。
ソフトウェアの情報としては、例えば、ソフトウェアのinode番号、ハッシュ値など、同種のソフトウェアであっても個別の値を有するもの、設定などに応じて値が変わるものなどが想定される。なお、inode番号、ハッシュ値などの作成は、実行されるソフトウェア、仮想環境の管理ソフトウェアなどにおいて行われて、本実施形態の構成要素は作成しなくともよい。あるいは、照合リストを自動で作成するときは、第2ソフトウェア情報取得部112などが作成してもよい。ハッシュ値は、ソフトウェアの実行ファイルの内容などから、sha-256、sha512などの一般的なハッシュアルゴリズムを用いて作成されればよい。
検知されたソフトウェアの検知時点の情報は、検知時点において、当該ソフトウェアの実行ファイルなどのリソースから取得することができる。ゆえに、ソフトウェアのリソースにアクセスする必要があり、リソースの記憶されている場所を認識する必要がある。監視環境から見たリソースの記憶されている場所は、監視環境の名前空間におけるリソースの名前を示す情報から判明する。当該情報は、一般的にパスと称される。言い換えれば、監視環境から見たリソースの記憶されている場所は、監視環境におけるリソースのパスによって表される。リソースのパスは、例えば、監視環境においてソフトウェアAに対する実行命令がなされたときに、監視環境において別のソフトウェアBを実行し、ソフトウェアBによってソフトウェアAの情報を抽出することにより、取得できる。
しかし、監視環境と実行環境とが異なる場合、監視環境におけるソフトウェアAのリソースのパスを認識することは困難である。ソフトウェアBによって取得されるソフトウェアAのリソースのパスは、実行環境におけるパスだからである。監視環境から当該実行ファイルにアクセスするには、監視環境におけるパスが必要であり、実行環境におけるパスを用いてアクセスすることはできない。また、実行環境におけるパスを用いた場合、偶然にも、別のリソースに誤ってアクセスする恐れもある。
ゆえに、従来では、監視環境を実行環境と同じにする必要があった。つまり、検知したいソフトウェアが実行される環境において、実行制御を行う必要があった。具体的には、保護したい複数の仮想環境それぞれに、実行制御を行うソフトウェアをインストールする必要があった。しかし、仮想環境の数が増えるに従い、実行制御ソフトに対するコストが増大してしまう。また、各仮想環境のサイズも増大し、仮想環境の数が増えるに従い、情報処理装置1に求められるリソースも増大となる。
一方、本実施形態の情報処理装置1は、実行環境と監視環境が異なっていても、監視環境におけるソフトウェアのリソースのパス、言い換えれば、監視環境の名前空間におけるソフトウェアのリソースの名前、を取得する。これにより、監視環境から実行環境のリソースに対してアクセスすることができる。そして、一つの環境から多数の環境に対する実行制御が可能となる。
リソースとしては、実行ファイルの形式で保存されていて、検知対象のソフトウェアを起動させるプログラムが想定される。また、当該プログラムまたは起動したソフトウェアが参照するデータなどを含むファイルなども想定される。また、リソースは、ホスト環境と仮想環境とで共有されていることを想定する。つまり、監視環境および実行環境の両方からアクセスが可能であることを想定する。なお、以降、ソフトウェアのリソースのパスを単にソフトウェアのパスと記載する。
照合リストには、実行が許可または不許可とされるソフトウェアと、当該ソフトウェアに関する情報と、が少なくとも含まれる。例えば、前述のinode番号、ハッシュ値などが含まれており、リソースにアクセスすることによって得られた検知時点のそれらと比較される。なお、実行が許可されるソフトウェアとその情報が、実行環境ごとに異なっていてもよい。なお、照合リストへのソフトウェアの登録とは、照合リストにソフトウェアの情報を記録して更新することを意味する。
なお、本実施形態の情報処理装置1は、仮想環境の新規作成を検知して照合リストを更新し、既存のみならず新規の仮想環境に対しても、ソフトウェアの実行制御を行うことを可能とする。
情報処理装置1の内部構成の詳細について説明する。なお、図1に示した構成要素は、ソフトウェアの実行制御を行うためのものであり、他の構成要素は省略されている。例えば、仮想環境の作成部は省略されている。また、図1に示した情報処理装置1の各構成要素は、細分化されてもよいし、集約されてもよい。例えば、記憶部101は、保存されるファイルなどに応じて、分けられていてもよい。また、記憶部101以外の構成要素を演算部とみなしてもよい。また、各構成要素の処理結果は、次の処理が行われる構成要素に送られてもよいし、記憶部101に記憶され、次の処理が行われる構成要素は記憶部101にアクセスして処理結果を取得してもよい。
記憶部101は、情報処理装置1によって使用されるファイルなどを保存する。図1では、ソフトウェアの実行制御を行うためのファイルとして、環境情報リストと、照合リストと、事前登録リストと、が示されている。また、仮想環境を実現するためのファイル群を含むディレクトリである実行ディレクトリと、当該ファイル群のオリジナルのファイル群を含むディレクトリであるレイヤーディレクトリと、が示されている。これら以外のファイルは、省略されている。
ソフトウェア実行検知部102は、ソフトウェアの実行を検知する。当該検知は、様々な手段により実現が可能である。例えば、フックと呼ばれるOS(operating system)の仕組みを用いることにより、ソフトウェアの実行を検知することができる。フックを用いると、プログラム内のあらかじめ設定された箇所に任意の処理を挟むことができる。例えば、OSの一種であるlinux(登録商標)では、フックを用いて、ソフトウェアを呼び出すシステムコールの実行前に、あらかじめ登録された関数(プログラムとも言える)を実行することができる。これを利用して、ソフトウェアの実行に不可欠なシステムコールの少なくとも一つに対してフックをセットしておき、フックによって所定の処理が行われたときに、ソフトウェアの実行を検知したとしてもよい。また、フックによって検知されたソフトウェアの実行は保留されるため、不許可とすべきソフトウェアが実行され続けることを防ぐことができる。
また、ソフトウェア実行検知部102は、検知されたソフトウェアの情報を取得する。例えば、検知されたソフトウェアのパスを取得する。なお、取得されるパスは、実行環境におけるパスである。また、例えば、検知されたソフトウェアの実行環境を特定するための情報を取得する。当該情報としては、例えば、仮想環境のプロセスID(PID)がある。プロセスIDは、実行中のソフトウェアごとに割り当てられる個別のIDである。仮想環境もソフトウェアによって実現されるため、仮想環境に対してもプロセスIDは割り当てられる。
これらの情報は、例えば、ソフトウェアの検知手法と同様、フックを用いて取得することができる。例えば、前述のlinuxにおいては、フックにより、システムコールの実行前に処理を挟むだけでなく、システムコールが保持しているデータ、例えば、引数、内部の変数、ソフトウェアのパス、プロセスIDなども取得可能である。また、ソフトウェアのプロセスIDから、親プロセスID(PPID)を取得することも可能である。親プロセスIDとは、ソフトウェアを実行するために用いられた上位のソフトウェアのプロセスIDである。そして、親プロセスIDのさらに親プロセスIDも取得することができる。このようにして、検知されたソフトウェアの親プロセスIDを辿っていくことができる。実行環境が仮想環境である場合は、最終的に仮想環境のプロセスIDに辿り着く。ゆえに、仮想環境のプロセスIDは取得可能である。
パス取得部103は、仮想環境のプロセスIDなどといった実行環境を識別可能な識別情報を用いて、監視環境における実行環境当のパスを環境情報リストから取得する。なお、パス取得部103は、実行環境のパスだけでなく、環境情報リストに含まれる実行環境に関する情報を取得してよい。
図2は、環境情報リストの一例を示す図である。環境情報リストには、少なくとも、仮想環境のプロセスIDなどといった仮想環境の識別情報と、監視環境における仮想環境のパスと、が含まれており、これらの対応関係が分かるように記憶されている。図2の左側1番目の列は、仮想環境個別のIDを示す。仮想環境のIDも、仮想環境の識別するための情報に該当する。図2の例では、container1からcontainer5までの五つの仮想環境に関する情報が示されている。図2の左側3番目の列は、監視環境における仮想環境のパスを示す。なお、図2の例では、監視環境がホスト環境である場合を示している。
図2の左側2番目の項目の「プロセスID」は、仮想環境のプロセスIDを示す。パス取得部103は、図2のようなテーブルから、仮想環境のプロセスIDをキーとして、監視環境における仮想環境のパスを取得する。例えば、ソフトウェア実行検知部102から取得したプロセスIDが「357017」である場合、上からの1番目の行に「357017」のプロセスIDが含まれているため、「/virtual/container1/」が仮想環境のパスとして取得される。なお、同じ行に含まれている情報も取得されてよく、例えば、container1が仮想環境のIDとして取得されてもよい。このように、仮想環境のIDは、ソフトウェア実行検知部で取得されてもよいし、パス取得部で取得されてもよい。
なお、以降、各リストにおいて、対応付けられている情報の一群をデータセットと記載する。例えば、図2の太枠で囲われている一つの行が、一つのデータセットに相当する。
また、記憶部101が記憶している環境情報リストに、ソフトウェア実行検知部102によって検出された仮想環境のプロセスIDが存在しないときは、検出されたソフトウェアがホスト環境で実行されたと判断できる。ホスト環境のパスが環境情報リストに登録されていれば、検出されたソフトウェアがホスト環境で実行された場合でも、監視環境におけるパスを取得することができる。
なお、図2に示したようなテーブルに対する、情報の検索、登録、編集、削除といった処理は、一般的な方法でよく、特に限定されるものではない。以降において説明されるリストにおいても同様である。
第1パス変換部104は、監視環境における実行環境のパスを用いて、検知されたソフトウェアの実行環境におけるパスを、監視環境におけるパスに変換する。図3は、パスの変換を説明する図である。図3の例では、監視環境がホスト環境であり、実行環境がcontainer1であり、ホスト環境におけるcontainer1のパスが「/virtual/container1」であったとする。また、検知されたソフトウェアの実行環境におけるパスが「/bin/ls」であったとする。この例の場合、「/bin/ls」は、「/virtual/container1」のディレクトリ下におけるパスであるため、これらを組み合わせることにより、検知されたソフトウェアのホスト環境におけるパスが作成できる。すなわち、「/virtual/container1/bin/ls」が検知されたソフトウェアの監視環境におけるパスである。
第1ソフトウェア情報取得部105は、記憶部101にアクセスし、検知されたソフトウェアの監視環境におけるパスに存在するリソースから、検知されたソフトウェアの検知時点の情報を取得する。取得される情報は、照合リストを用いて照合される情報であり、予め定められている。例えば、inode番号、ハッシュ値、デバイス番号などでよい。なお、ソフトウェア実行検知部102、パス取得部103、第1パス変換部104などの他の構成要素によって取得済みの情報は、取得しなくともよい。
なお、検知されたソフトウェアの監視環境におけるパスに存在するファイルが他のパスに存在していることもあり得る。例えば、バックアップなどの目的で、当該ファイルがコピーされて特定のディレクトリに保存されている場合もあり得る。そのような場合に、コピーされたファイルにアクセスして情報を取得してもよい。また、その場合、第1パス変換部104が、検知されたソフトウェアの監視環境におけるパスを、さらにコピーの保存先ディレクトリに変換してもよい。すなわち、当該パスに基づいてアクセス可能なファイルから検知時点の情報を取得できればよい。コピーの保存先ディレクトリ下のファイルは、当該パスに基づいてアクセス可能なファイルに含まれる。
照合部106は、記憶部101に記憶されている照合リストにアクセスし、検知されたソフトウェアの検知時点の情報と、検知されたソフトウェアの照合リストに登録されている情報と、を照合し、相違の有無を調べる。
図4は、照合リストの一例を示す図である。本実施形態では、ソフトウェアの実行が許可されている環境のIDを示す値と、ソフトウェアのinode番号と、ソフトウェアのハッシュ値と、ソフトウェアのパスと、が対応付けられている形で保存されている。照合リストに登録される情報は、適宜に変えてよい。
例えば、検知されたソフトウェアの監視環境におけるパスが「/virtual/container3/bin/ls」であった場合、照合部106は、当該パスをキーとして、照合リスト内を検索し、当該パスを含むデータセットの検出を試みる。当該パスを含むデータセットが検出された場合は、検出されたデータセット内の各項目の値が、検知されたソフトウェアの検知時点の情報と、が一致するかを確認する。例えば、「/virtual/container3/bin/ls」を含むデータセットには、「883140」というinode番号と、「i9sf・・・・・safd」というハッシュ値が含まれている。これらの値が、検知されたソフトウェアの検知時点における値と、一致するかが確認される。当該パスを含むデータセットが検出されなかった場合は、検出されなかった旨が実行制御部107に通知される。
また、前述の通り、ホスト環境において実行されるソフトウェアに対して実行制御が行われてもよいため、仮想環境だけでなく、ホスト環境のID、パスなどが照合リストに含まれていてもよい。
なお、図4では、照合リストは一つのテーブルに複数の仮想環境の情報を含めているが、仮想環境ごとにテーブルを分けてもよい。あるいは、ソフトウェアごとに分けてもよい。また、照合リストが複数のファイルから構成されていて、各ファイルに割り当てられた仮想環境の情報が記録されていてもよい。その場合、照合部106は、一般的なデータ検索またはファイル検索の手法により、複数のテーブルまたはファイルから対応する仮想環境に係るテーブルまたはファイルを検出して、検出されたテーブルまたはファイルに対し照合処理を行えばよい。また、その他のリストも同様に、複数のテーブルまたはファイルに分かれていてもよい。
実行制御部107は、照合の結果に基づき、検知されたソフトウェアの実行を許可するか否かを決定する。例えば、照合リストをホワイトリストとして用いる場合は、照合の結果、情報に相違が一つでもあった場合は、ソフトウェアが改ざんされたと認定して、検知されたソフトウェアの実行を許可しないとしてもよい。なお、情報に相違があった場合でも、相違する情報によっては、検知されたソフトウェアの実行を許可するとしてもよい。また、ソフトウェアの実行者の権限などに応じて、制御内容が異なっていてもよい。また、照合リストをブラックリストとして用いる場合は、例えば、照合の結果、情報に相違がない場合に、検知されたソフトウェアの実行を許可しないとしてもよい。
検知されたソフトウェアの実行を許可する場合、検知されたソフトウェアの実行は保留されていたが、当該保留を解除してもよい。あるいは、検知されたソフトウェアの再実行を行ってもよい。例えば、前述の通り、一部のシステムコールの実行前にフックによる挟み処理によってソフトウェアの実行を保留した場合、挟み処理に特定の戻り値を返すことによって、保留を解除するといったことが行われてよい。ソフトウェアの実行を許可する場合は、保留を解除する戻り値を返し、ソフトウェアの実行を許可しない場合は、保留されたソフトウェアの停止を実行する戻り値を返すといったこともしてもよい。
このように実行制御部107は、検知されたソフトウェアがいずれの環境で実行されたとしても、検知されたソフトウェアの検知時点の情報に基づいて、実行を制御することができる。そのため、仮想環境ごとに実行制御部107が存在する必要はない。
上記のように、検知されたソフトウェアのパスを取得するために、環境情報リストを用いるが、仮想環境が作成または起動される度に、環境情報リストを自動的に更新してもよい。例えば、プロセスIDは、実行中のソフトウェアごとに割り当てられるが、停止すると消滅する。そして、ソフトウェアが再度実行されたときに、同じプロセスIDが割り当てられるわけではない。ゆえに、再起動後の仮想環境のプロセスIDは、環境情報リストに登録されているプロセスIDとは異なる。このように、仮想環境の起動の度に更新される情報もある。そのため、仮想環境の起動を検知して、自動的に環境情報リストが更新されることが好ましい。
仮想環境起動検知部108は、環境情報リストを自動的に更新するため、仮想環境の起動を検知して起動された仮想環境の情報を取得する。環境情報リスト更新部109は、当該情報に基づいて環境情報リストを更新する。こうして、ソフトウェア実行検知部102によるソフトウェアの検知の前に、環境情報リストが用意される。
また、仮想環境作成検知部110は、環境情報リストを自動的に更新するため、仮想環境の作成を検知して作成された仮想環境の情報を取得する。環境情報リスト更新部109は、当該情報に基づき、環境情報リストに作成された仮想環境のデータセットを追加する。
仮想環境作成検知部110によって取得される仮想環境の情報は、例えば、仮想環境のID、監視環境における仮想環境のパス、仮想環境にマウント予定のソフトウェア群が保管されているディレクトリ(マウント元)のパスなどがある。当該ディレクトリは、レイヤーディレクトリと称される。仮想環境は、仮想環境の実体となるディレクトリにレイヤーディレクトリをマウントすることにより実現される。
仮想環境のIDの取得方法の一例としては、仮想環境を管理する管理ソフトウェアを利用する方法がある。例えば、仮想環境のIDが名称に含まれたディレクトリ内に、仮想環境のソフトウェアに関するテキストファイルなどが含まれ、当該ファイルに当該ディレクトリのパス、仮想環境のIDなどが示されている場合も多々ある。仮想環境の実体のファイルパスの情報を用いることで、対応する仮想環境のIDが取得可能である。
例えば、container1というIDの仮想環境が作成されたときに、仮想環境作成検知部110は、container1というIDと、container1のパスと、を取得する。そして、環境情報リスト更新部109は、環境情報リストに、container1のIDおよびパスを含むデータセットを追加する。container1のデータセットが既に存在している場合は、上書きすればよい。また、container1の仮想環境が起動されたときに、仮想環境起動検知部108は、container1というIDと、container1のプロセスIDと、を取得する。そして、環境情報リスト更新部109は、環境情報リストから、container1を含むデータセットを検出して、仮想環境のプロセスIDなどといった当該データセット内の情報を更新する。仮想環境が初めて起動されたときは、当該仮想環境のプロセスIDは環境情報リスト内に記載されていないため、当該プロセスIDを追加し、仮想環境の起動が初めてでないときは、環境情報リスト内に記載されているプロセスIDを上書きすればよい。
仮想環境の作成を検知する手法としては、前述のフックを用いた方法が存在する。例えば、仮想環境の作成において、マウント用のディレクトリ(マウント先)を作成し、当該ディレクトリに対してレイヤーディレクトリ(マウント元)をマウントすることによって、監視環境とは独立してソフトウェアを実行させる手法があるが、このマウント処理を行うシステムコールにフックを用いた処理を挟み込むことにより、仮想環境の作成を検知してもよい。例えば、linuxでは、マウント元およびマウント先のパスが入力され、これらを引数としたmountシステムコールが実行されて、マウント処理が実行される。ゆえに、mountシステムコールに対して処理を挟むことにより、仮想環境の作成を検知しつつ、mountシステムコールに渡されるマウント先およびマウント元のパスを取得することができる。
また、仮想環境の管理を行う管理ソフトウェアが、仮想環境のパスと、仮想環境のIDと、を対応付けて管理している場合もある。その場合、当該管理ソフトウェアを介して、これらの情報が取得されてもよい。あるいは、当該管理ソフトウェアによって作成または更新されたファイルを監視し、当該ファイルが作成または更新されたときに、当該ファイルから仮想環境の情報を取得してもよい。例えば、当該ファイルを作成または更新するシステムコールをフック用いて検知し、当該システムコールによって作成されるディレクトリ名とパスを取得してもよい。また、実行される各システムコールに対して、当該システムコールが仮想環境の新規作成のためものかを確認してもよい。例えば、システムコールによって作成されたディレクトリのパスの一部に、所定の文字列が入っている場合に、当該システムコールが仮想環境の新規作成のためものであると判断してもよい。例えば、「/home/virtual_data/」というパスで表わされるディレクトリ下に、「/home/virtual_data/container1」というパスで表わされるディレクトリが作成された場合、「container1」というIDの仮想環境が作成されたと認識し、「/home/virtual_data/container1」の配下のファイルから、container1の情報を取得してもよい。
なお、仮想環境の作成以外にもマウント処理が起こり得る。ゆえに、マウント処理を検知した際に、マウント元であるレイヤーディレクトリのパスに関する情報が得られた場合に、当該マウント処理が仮想環境の新規作成に関わる処理と判断してもよい。
仮想環境の起動の検知も、仮想環境の作成の検知と同様に、仮想環境の起動時に所定のソフトウェアを実行して仮想環境起動検知部108に通知することにより、行われてもよい。また、仮想環境のプロセスIDは、ソフトウェアの実行検知のときと同様に取得することが可能である。仮想環境のIDは、例えば、仮想環境のプロセスが有する、マウントのステータスについての情報から取得することができる。例えば、仮想環境において実行されるソフトウェアの実行ファイル群を仮想環境のルートディレクトリにマウントして独立させることで仮想環境を作成する手法がある。当該手法では、実行中の仮想環境のプロセスは、マウント先のディレクトリ、マウントされるディレクトリなどといった、プロセスがマウントした対象の情報を有しており、マウント先の対象が仮想環境のIDが含まれていることもあるため、仮想環境のIDなどの所望の情報を取得することができる。
なお、仮想環境作成検知部110は、環境情報リストを更新しようとした際に環境情報リストが記憶部101に存在していなかったときは、環境情報リストを作成してもよい。その際、仮想環境作成検知部110は、ホスト環境のパスを、環境情報リストに登録してもよい。
一方、実行制御には照合リストが用いられるが、仮想環境ごとにソフトウェアの実行制御を行う際には、仮想環境の新規作成時に、新規作成された仮想環境において許可または不許可とされるソフトウェアの情報を登録する必要がある。仮想環境が頻繁に増減する場合、ユーザーが手動で照合リストを適宜更新するという運用は不便である。そのため、本実施形態では、照合リストへ登録させる情報を示すリストを用意しておき、仮想環境の新規作成を検知したときに、当該リストに基づいて照合リストの更新を行う。以降、当該リストを事前登録リストと記載する。事前登録リストを利用することにより、運用の負担を軽減する。ただし、事前登録リストを用いず、ユーザーが照合リストに登録すべき情報を情報処理装置1に入力し、照合リストが入力された情報を照合リストに登録してもよい。
図5は、事前登録リストの一例を示す図である。事前登録リストには、照合リストに登録する情報が登録されている。図5の例では、仮想環境におけるソフトウェアのパスと、ハッシュ値と、が保存されている。なお。事前登録リストの情報は、予め登録しておく必要があるが、これらの情報は仮想環境に依存しないため、事前登録リストへの登録は、ソフトウェアの追加、変更などの処理に対して1回行うだけで済む。なお、照合リストに登録されている情報全てが事前登録リストに登録されていなくともよい。事前にリストに登録されていないが照合リストに登録される情報は、情報処理装置1の構成要素によって取得される。
また、事前登録リストは、ホワイトリスト用とブラックリスト用に分かれていてもよい。ホワイトリスト用の事前登録リストには実行が許可されるソフトウェアの情報が含まれ、ブラックリスト用の事前登録リストには実行が停止(ブロック)されるソフトウェアの情報が含まれる。
なお、仮想環境ごとに許可または不許可とされるソフトウェアが異なる場合には、仮想環境のIDなど、仮想環境を区別するための情報が事前登録リストに含まれていてもよい。
第2パス変換部111は、事前登録リストが示す仮想環境におけるソフトウェアのパスを、仮想環境作成検知部110などによって取得された仮想環境のパスを用いて、監視環境におけるパスに変換する。当該変換は、第1パス変換部104の処理と同じでよい。例えば、仮想環境のパスが「/virtual/container1」であり、事前登録リストが示すソフトウェアのパスが「/bin/ls」だった場合、第2パス変換部111は、これらを組み合わせた「/virtual/container1/bin/ls」というパスを、監視環境における当該ソフトウェアのパスとして作成する。これにより、監視環境におけるソフトウェアのパスが、図4に示した照合リストのように登録できる。
第2ソフトウェア情報取得部112は、照合リストに登録する情報を収集して、収集された情報を照合リストに登録する。図4に示した例であれば、監視環境におけるソフトウェアのパスは第2パス変換部111を介して取得できる。また、当該ソフトウェアのハッシュ値は事前登録リストから取得できる。また、当該ソフトウェアの各仮想環境におけるinode番号は、第2ソフトウェア情報取得部112が、マウント元のレイヤーディレクトリにアクセスし、当該ソフトウェアのinode番号を取得すればよい。
なお、ソフトウェアの実行ファイルがマウントされるのは、厳密には、仮想環境の初回起動時である。そのため、仮想環境が初めて起動されるまで、仮想環境の実行ファイルにアクセスすることができない。例えば、監視環境におけるソフトウェアのパス「/virtual/container1/bin/ls」上に実行ファイルは、仮想環境の初回起動時まで存在しない。そのため、仮想環境の初回起動時までにinode番号を取得するときは、マウント元のレイヤーディレクトリにアクセスしてinode番号を取得する。
例えば、「/bin/ls」を用いて「/home/virtual/container1/bin/ls」というパスが作成されたことを通知された第2ソフトウェア情報取得部112は、事前登録リストから「/bin/ls」を検索して、それに対応したハッシュ値を取得する。また、第2ソフトウェア情報取得部112は、レイヤーディレクトリのファイルパスが「/home/virtual/layer1」であった場合、「/home/virtual/layer1」の配下にある「/bin/ls」のファイルを検索し、当該ファイルからinode番号を取得する。なお、レイヤーディレクトリが複数ある場合は、レイヤーディレクトリごとに、上記のようにして、inode番号を取得してもよい。そして、第2ソフトウェア情報取得部112は、「/home/virtual/container1/bin/ls」と、それに対応するハッシュ値と、それに対応するinode番号と、を対応付ける。
照合リスト更新部113は、第2ソフトウェア情報取得部112によって対応付けられた情報を、照合リストに登録する。なお、記憶部101に照合リストが存在しない場合は、照合リスト更新部113は、照合リストを作成してもよい。照合リスト内にデータが存在していた場合は、データセットを追加する。なお、照合リストに、同じ仮想環境の同じソフトウェアに係るデータセットが登録されてたいた場合は、当該データセットを上書きすればよい。
なお、前述の通り、照合リストが、複数のテーブルまたはファイルに分かれている場合は、照合リスト更新部113は、一般的なデータ検索またはファイル検索の手法により、複数のテーブルまたはファイルから対応する仮想環境に係るテーブルまたはファイルを検出して、検出されたテーブルまたはファイルに対し登録処理を行えばよい。
次に、情報処理装置1の各処理の流れについて説明する。図6は、ソフトウェアの実行制御に関する処理の概略フローチャートである。
まず、ソフトウェア実行検知部102は、フック等の機能を用いて、ソフトウェアの実行を検知し(S101)、ソフトウェアの実行を保留した上で、ソフトウェアの情報を取得する(S102)。例えば、ソフトウェアのプロセスID、仮想環境のプロセスID、ソフトウェアの実行環境のIDなどを取得する。
パス取得部103は、取得されたソフトウェアの情報に基づき、環境情報リストから、監視環境における実行環境のパスなど、環境情報リストに含まれる情報を取得する(S103)。第1パス変換部104は、監視環境における実行環境のパスを用いて、ソフトウェアの実行環境におけるパスを監視環境におけるパスに変換(S104)。なお、ソフトウェアの実行環境が監視環境であったときは、パスを変換しなくても、当該パスを用いてソフトウェアのファイルにアクセスできるため、S103およびS104の処理は省略されてよい。
第1ソフトウェア情報取得部105は、照合リストと照合するため、変換されたパス先にあるリソースからソフトウェアの検知時点の情報を取得する(S105)。なお、ソフトウェアのプロセスIDなどといった取得済みの情報は取得しなくともよい。また、リソースであるファイル自体をコピーして、当該コピーから情報を取得してもよい。
照合部106は、これまでの処理において取得された、ソフトウェアの検知時点の情報と、照合リストに登録されているソフトウェアの情報と、を照合する(S106)。実行制御部107は、照合結果に基づき、ソフトウェアの実行可否を決定して制御する(S107)。例えば、正当なソフトウェアと判断されたときは、保留されていたソフトウェアの実行が許可され、不正なソフトウェアと判断されたときは、ソフトウェアを停止してもよい。また、ソフトウェアを停止した際に、警告メッセージを出力するプログラムを実行してもよい。このようにして実行制御が行われて、本フローは終了する。
図7は、仮想環境起動検知時の処理の概略フローチャートである。仮想環境起動検知部108は、仮想環境の起動を検知し(S201)、仮想環境のIDおよびプロセスIDなどといった、起動された仮想環境の情報を取得する(S202)。例えば、仮想環境が起動する際に実行されるマウント処理に関するシステムコールを検知して、仮想環境が起動したとみなし、当該システムコールに含まれる引数から仮想環境の情報を取得してもよい。
環境情報リスト更新部109は、起動された仮想環境の情報を対応付けて、記憶部101の環境情報リストに登録する(S203)。前述のように、仮想環境の情報が仮想環境の作成時に既に登録されていたときは、プロセスIDなどの未登録の情報を追加する。これにより、起動された仮想環境の情報が最新のものに更新される。以上で本フローは終了する。
図8は、第1の実施形態における仮想環境作成検知時の処理の概略フローチャートである。仮想環境作成検知部110は、マウント処理を実行するためのシステムコールなどをフックすることにより、仮想環境作成を検知し(S301)、仮想環境のID、仮想環境のパス、レイヤーディレクトリなどといった、作成される仮想環境の情報を取得する(S302)。
環境情報リスト更新部109は、取得されたこれらの情報を一つのデータセットとして、記憶部101の環境情報リスト情報に登録する(S303)。同じ仮想環境のデータセットが既に存在する場合もあり得るが、その場合は、当該データセットは以前の古い情報と考え、多重のデータセットが存在すると不具合が生じるため、上書きする。
一方、第2パス変換部111は、作成された仮想環境におけるソフトウェアのパスを事前登録リストから取得から取得する(S304)。そして、仮想環境のパスを用いて、仮想環境におけるソフトウェアのパスを、監視環境におけるパスに変換する(S305)。
一方、第2ソフトウェア情報取得部112は、取得されたソフトウェアのレイヤーディレクトリにアクセスし、当該レイヤーディレクトリ内のリソースから、inode番号などといった当該ソフトウェアの初期状態(デフォルト)の情報を取得する(S306)。なお、複数のレイヤーディレクトリが存在する場合は、順番にアクセスし、所望の情報を全て取得できなかった場合に、次のレイヤーディレクトリに移ればよい。なお、ハッシュ値などの所望の情報が取得できなかったときは、それらの情報を、第2ソフトウェア情報取得部112がレイヤーディレクトリ内のリソースの情報に基づいて作成してもよい。また、第2ソフトウェア情報取得部112は、事前登録リストに記録されているソフトウェアと、ハッシュ値などといった当該ソフトウェアの情報と、を取得する(S307)。
照合リスト更新部113は、仮想環境のID、ソフトウェアの実行環境におけるパス、ハッシュ値、デフォルトの情報などといった、仮想環境およびソフトウェアの情報を照合リストに登録する(S308)。こうして、本フローは終了する。これにより、仮想環境が作成される度に、照合リストが自動的に当該仮想御環境における情報を含むようになる。
なお、上記では、ソフトウェア実行検知部102と仮想環境起動検知部108を分けて記述したが、仮想環境もソフトウェアの一種であることから、ソフトウェア実行検知部102が仮想環境起動検知部108を兼ねてもよい。その場合は、例えば、ソフトウェア実行検知部102は、仮想環境も含めたソフトウェアの検知を行い、検知されたソフトウェアの親プロセスが仮想環境を管理するソフトウェアかどうかを確認する。確認方法は仮想環境を管理するソフトウェアの情報(ソフトウェアの名前やプロセスのIDなど)を調査しておき、それらの情報と一致するかどうかで判定すればよい。一致した場合は、検知されたソフトウェアは、仮想環境を起動するためのソフトウェア(実行された仮想環境のプロセスとなるソフトウェア)であると判断し、上記の仮想環境起動検知時の処理を実行すればよい。一致しなかった場合は、ソフトウェアの実行制御に関する処理を実行すればよい。
以上のように、本実施形態の情報処理装置1は、検知されたソフトウェアの実行環境と、当該ソフトウェアの監視環境と、が異なっていたとしても、当該ソフトウェアの実行環境におけるパスを監視環境におけるパスに変換することができる。これにより、監視環境から当該ソフトウェアのリソースにアクセスすることができ、当該ソフトウェアの検知時点の情報を取得することができる。そして、当該ソフトウェアの検知時点の情報と、当該ソフトウェアの登録されている情報と、を比較することにより、ソフトウェアの改ざんを検知することができる。
(第2の実施形態)
図9は、第2の実施形態に関する情報処理装置1の一例を示すブロック図である。本実施形態では、仮想環境の停止を検知する仮想環境停止検知部114と、仮想環境の削除を検知する仮想環境削除検知部115と、をさらに備える。第1の実施形態と同様な点は、説明を省略する。
第1の実施形態では、環境情報リスト更新部109は、仮想環境の作成および起動時に環境情報リストを更新した。本実施形態では、仮想環境の停止と削除を検知したときにも、環境情報リストおよび照合リストの更新を行う。
プロセスIDの値は使いまわされるため、以前に仮想環境のプロセスIDとして用いられた値が、別のソフトウェアのプロセスIDとして割り当てられることもあり得る。例えば、検知されたソフトウェアの親プロセスのIDが、以前存在して現在は削除された仮想環境のプロセスIDであったことも考えられる。その場合、検知されたソフトウェアが、実際には削除されている仮想環境において実行されたと誤って判断される恐れもある。これにより、ソフトウェアの誤った実行制御が行われる恐れもある。そのため、仮想環境の停止および削除の際に、環境情報リストおよび照合リストの更新を行う。また、これにより、環境情報リストおよび照合リストの肥大化も防ぐことができる。
環境情報リスト更新部109は、環境情報リストにおける仮想環境停止検知部114によって停止が検知された仮想環境の情報を更新する。環境情報リスト更新部109は、停止した仮想環境の情報を仮想環境停止検知部114から取得して、環境情報リストの情報を取得した情報に置き換えてもよい。あるいは、環境情報リストの停止した仮想環境の情報を、停止したことを示す値に更新してもよい。あるいは、当該情報が使用可能であるかどうかを示す項目の値を使用不可であることを示す値に変更してもよい。
例えば、図2に示した環境情報リストでは、仮想環境が停止した際には、仮想環境のプロセスIDが更新される。停止した仮想環境のプロセスIDは削除されて空欄とされてもよいし、プロセスIDとして割り当てられることが決してない数値に置き換えられてもよい。例えば、「-1」といった無効な数値に置き換えられてもよい。
例えば、図2では示されていないが、仮想環境が起動状態か停止状態かを判断できる項目を環境情報リストに追加し、検知された仮想環境の状態に応じて当該項目の値を更新してもよい。また、パス取得部103は、環境情報リストを読み取る際に、当該項目の値を参照して、環境情報リストの各データセットが有効であるかを判断してもよい。
また、環境情報リスト更新部109は、環境情報リストにおける仮想環境削除検知部115によって削除が検知された仮想環境の情報を更新する。環境情報リスト更新部109は、環境情報リストの削除された仮想環境の情報を空欄にしてもよい。あるいは、当該仮想環境に係るデータセット全体を削除して、削除されたデータセットよりも下に存在するデータセットを上に詰めてもよい。あるいは、削除されたことを示す所定の情報に書き換えてもよい。あるいは、当該情報が使用可能であるかどうかを示す項目の値を使用不可であることを示す値に変更してもよい。
照合リスト更新部113は、環境情報リスト更新部109と同様、照合リストにおける停止または削除が検知された仮想環境の情報を更新してもよい。
仮想環境停止部は、仮想環境の停止を検知する。仮想環境削除検知部115は、仮想環境の削除を検知する。仮想環境の停止および削除は、仮想環境の起動および作成と同様、フックなどを用いて検知してもよい。例えば、仮想環境の管理ソフトウェアが、仮想環境が起動または作成されたときに、当該仮想環境の名前を一部に含む名前のディレクトリを作成し、当該仮想環境が停止または削除されたときに、当該ディレクトリを削除することがある。これを利用し、ディレクトリの削除に関するシステムコールを、フックを用いて検知して当該システムコールの情報を取得し、削除されるディレクトリのパスに基づいて仮想環境の停止および削除を検知してもよい。例えば、管理ソフトウェアが「/virtual/moving/」というディレクトリを管理しており、当該ディレクトリの配下に起動している仮想環境に係るディレクトリを作成する場合において、「/virtual/moving/container1」というディレクトリが削除されたときは、「container1」という仮想環境が停止されたとみなしてよい。あるいは、仮想環境の起動が検知されたときに作成されたディレクトリを当該仮想環と対応付けて記憶しておき、当該ディレクトリが削除されたときは、当該仮想環境が削除されたとみなしてよい。
また、停止された仮想環境は、消滅したプロセスIDから特定してもよい。あるいは、仮想環境の停止または削除において実行される処理の痕跡に基づいて特定してもよい。
図10は、仮想環境停止検知時の処理の概略フローチャートである。仮想環境の停止から、環境情報リストを更新するまでのフローの一例を説明する。仮想環境停止検知部114は、フックなどを用いて、仮想環境の停止を検知し(S401)、停止が検知された仮想環境の情報を取得する(S402)。環境情報リスト更新部109は、取得された仮想環境の情報に基づき、環境情報リストを更新する(S403)。なお、プロセスIDなど、仮想環境の停止によって変更される情報を仮想環境停止検知部114が認識しており、当該情報のみを取得して環境情報リスト更新部109に通知してもよいし、環境情報リスト更新部109が、当該情報を認識しており、仮想環境停止検知部114が取得した情報から必要な情報のみを更新してもよい。
図11は、仮想環境削除検知時の処理の概略フローチャートである。仮想環境停止削除部は、フックなどを用いて、仮想環境の削除に関する処理を検知して削除された仮想環境を特定する(S501)。環境情報リスト更新部109は、環境情報リスト内における、特定された仮想環境に関する情報を削除する(S502)。一方、照合リスト更新部113は、照合リスト内の特定された仮想環境の情報を削除する(S503)。こうして、環境情報リストおよび照合リストから、不要な情報が削除される。
(第3の実施形態)
図12は、第3の実施形態に関する情報処理装置1の一例を示すブロック図である。本実施形態では、これまでの実施形態対し、事前照合部(第2照合部)116をさらに備える。これまでの実施形態と同様な点は、説明を省略する。
事前照合部116は、レイヤーディレクトリのソフトウェアの情報と、事前登録リストの情報と、を照合する。すなわち、レイヤーディレクトリおよび事前登録リストのいずれか一方が改ざんされていないかを確認する。当該照合は、照合リストを用いた照合と区別するため、事前照合と記載する。
レイヤーディレクトリのパスが判明している場合は、事前照合の実行のタイミングは適宜に定めてよい。事前照合部116は、第2パス変換部111と同様、事前登録リストから、レイヤーディレクトリにおけるソフトウェアのパスを取得し、監視環境におけるレイヤーディレクトリのパスを用いて、監視環境におけるソフトウェアのパスを作成する。そして、当該パスを用いて、レイヤーディレクトリのソフトウェアの情報を取得してもよい。例えば、当該ソフトウェアの情報からハッシュ値を作成してもよい。つまり、レイヤーディレクトリ内のソフトウェアのハッシュ値を取得してもよい。レイヤーディレクトリのパスが不明な場合は、仮想環境起動検知部108によってレイヤーディレクトリのパスが取得された後に実行される。その場合、事前照合部116は、第2パス変換部111から、レイヤーディレクトリ内のソフトウェアのパスを取得すればよい。
なお、事前登録リストに登録されている全てのソフトウェアを対象とせず、指定されたソフトウェアだけに対して事前照合を行ってもよい。例えば、図5の例にいて、「/bin/ls」および「/bin/bash」のソフトウェアに対しては事前照合を行い、「/bin/cat」のソフトウェアに対しては事前照合を行わないということもあり得る。
なお、複数のレイヤーディレクトリが存在する場合、複数のレイヤーディレクトリ全てに対してアクセスし、レイヤーディレクトリごとの情報を取得してもよい。
第2ソフトウェア情報取得部112は、事前照合の結果に基づいて、取得する情報を変更する。例えば、照合リストをホワイトリストして用いる場合は、事前照合によって情報が一致しないとされたソフトウェアが照合リストに登録されるのを防ぐため、当該ソフトウェアの情報を取得しない。逆に、照合リストをブラックリストして用いる場合は、事前照合によって情報が一致しないとされたソフトウェアの情報を取得する。なお、事前照合部116によって既に取得された情報は、改めてレイヤーディレクトリのソフトウェアから取得する必要はない。このように、照合リスト更新部113によって照合リストに登録されるべき情報のみを取得すればよく、照合リスト更新部113は、第2ソフトウェア情報取得部112が取得した情報を、照合リストに登録すればよい。
なお、複数のレイヤーディレクトリのうち、事前登録リストと一致していない情報があったレイヤーディレクトリをマウント禁止としてもよい。全レイヤーディレクトリに対して検索処理を行ったとしても、該当するソフトウェアが発見できなかったときは、事前登録リストから次の検索対象のソフトウェアのファイルパスを取得し、再度、ハッシュ値の取得と照合処理に移る。前述の検索処理と照合処理を、事前登録リストの全てのソフトウェアに対して行い、各ソフトウェアの照合結果を取得し、照合が成功した事前登録リストのソフトウェアが判別できる情報にまとめる。
図13は、第3の実施形態における仮想環境作成検知時の処理の概略フローチャートでる。本フローチャートは、第1の実施形態のフローチャートと比べ、S305以降の処理が異なる。
事前照合部116は、S305の処理によって作成された仮想環境におけるパスを用いて、レイヤーディレクトリのソフトウェアの情報を取得して、事前登録リストの情報と比較し、使用可能または使用不可能なソフトウェアを選択する(S601)。そして、第2ソフトウェア情報取得部112が選択されたソフトウェアのデフォルトの情報をレイヤーディレクトリから取得する(S602)。また、第2ソフトウェア情報取得部112は、事前登録リストに登録されている情報のうち、選択されたソフトウェアの情報を取得する(S603)。照合リスト更新部113は、第2ソフトウェア情報取得部112によって取得された、仮想環境の情報、選択されたソフトウェアの情報などを照合リストに追加する(S604)。こうして、照合リストには、事前照合によって使用可能または使用不可能と判定されたソフトウェアの情報が登録される。
(第4の実施形態)
作成される仮想環境は同一とする必要はなく、様々な仮想環境が作成されてもよい。仮想環境は、前述の通り、レイヤーディレクトをマウントすることにより作成することができる。そのため、包含するレイヤーディレクトリがそれぞれ異なるイメージファイルを複数作成しておき、異なるイメージファイルを用いて様々な種類の仮想環境が作成可能である。
例えば、仮想環境において使用されるOSの種類ごとにイメージファイルを用意しておき、仮想環境の作成の際には、指定されたOSに対応するイメージファイルが選択されて、仮想環境が作成されてもよい。イメージファイルには、イメージファイルの固有のID(以下イメージIDと呼称する)が割り振られ、仮想環境を管理するソフトウェアなどによって管理されればよい。
本実施形態では、このように作成される仮想環境イメージファイルが異なる場合に、イメージファイルに関する情報を用いた処理を行う。例えば、ユーザーAによって作成される仮想環境container1はOSが異なる二種類の仮想環境が使用可能とする場合、仮想環境container1に対して、イメージファイルAおよびBを用いて作成を許可するが、イメージファイルCを用いた作成を許可しないといったことがあり得る。このような場合に、照合の際に、仮想環境のベースとなったイメージファイルが許可されているかを確認してもよい。また、イメージファイルごとに許可されるソフトウェアが異なる場合もあり得る。そのような場合、検知されたソフトウェアが、実行環境のベースとなったイメージファイルに基づいて実行制御されてもよい。
図14は、第4の実施形態に関する情報処理装置1の一例を示すブロック図である。本実施形態では、イメージファイル特定部117をさらに備える。これまでの実施形態と同様な点は、説明を省略する。
イメージファイル特定部117は、作成された仮想環境のIDに基づき、仮想環境の作成に用いられたイメージファイルのIDを取得する。例えば、仮想環境の管理ソフトウェアによって管理されているファイルにアクセスし、当該ファイルから、作成された仮想環境のIDをキーとして、仮想環境の作成に用いられたイメージファイルのID、レイヤーディレクトリのパスなどの情報を検索してもよい。
環境情報リスト更新部109は、イメージファイル特定部117によって特定されたイメージファイルのIDも、環境情報リストに登録してもよい。
また、事前登録リストには、仮想環境の作成に用いられてもよいイメージファイルまたは仮想環境の作成に用いられてはいけないイメージファイル登録されていてもよい。あるいは、イメージファイルごとに、許可されるソフトウェアまたは不許可とされるソフトウェアが指定されていてもよい。事前登録リストに基づいて更新された照合リストには、これらの情報が含まれる。なお、前述の通り、事前登録リストを用いず、これらの情報が情報処理装置1に入力され、照合リストがこれらの情報を登録してもよい。
パス取得部103は、前述の通り、環境情報リストに含まれる情報を取得するが、環境情報リストに特定されたイメージファイルのIDも含まれているため、仮想環境のイメージファイルのIDも取得可能である。
第1ソフトウェア情報取得部105は、検知されたソフトウェアの監視環境におけるパスに存在するリソースから、検知されたソフトウェアの検知時点の情報を取得する際に、イメージファイルに関する情報を取得してもよい。
照合部106は、実行環境のベースとなったイメージファイルのIDも用いて、照合を行ってもよい。前述の通り、照合リストには、イメージファイルのIDも含まれているので、イメージファイルのIDが一致しているかどうかも照合される。イメージファイルのIDが一致している場合に、実行制御部107によって、ソフトウェアの実行が許可または不許可とされる。
図15は、第4の実施形態における仮想環境作成検知時の処理の概略フローチャートである。本フローは、第1の実施形態のものと比べ、S701の処理が追加されている。また、イメージIDが登録されるため、第1の実施形態のフローのS303、S307、およびS308の処理が、本フローではS702、S703、およびS704の処理にそれぞれ変更されている。
S302の処理によって作成された仮想環境の情報が取得されており、イメージファイル特定部117は、その仮想環境の情報を用いて、仮想環境のベースとなったイメージファイルを特定する(S701)。特定されたイメージファイルの情報は、仮想環境のその他の情報とともに、環境情報リスト更新部109が、環境情報リストに登録する(S702)。
一方、第2ソフトウェア情報取得部は、これまでの実施形態同様、事前登録リストからソフトウェアの登録されている情報を取得するが、当該情報には、仮想環境の作成に用いられてよいイメージファイルも含まれる。また、照合リスト更新部も、仮想環境の情報、ソフトウェアの情報などとともに、仮想環境の作成に用いられてよいイメージファイルを示す情報を照合リストに追加する(S703)。こうして、環境情報リストに、仮想環境とイメージファイルとが対応付けられて記憶される。
ソフトウェアの実行制御においては、イメージファイルの情報が取得および照合される情報に含まれるが、処理の流れは、第1の実施形態と同様であるため、本実施形態のソフトウェアの実行制御に関する処理の概略フローチャートは省略する。少なくとも環境情報リストおよび照合リストにイメージファイルを示す情報が含まれているため、照合部106の照合において、イメージファイルが一致しているかは確認できる。これにより、作成に用いられたイメージファイルごとの実行制御が可能となる。
なお、上記の実施形態の少なくとも一部は、プロセッサ、メモリなどを実装しているIC(Integrated Circuit:集積回路)などの専用の電子回路(すなわちハードウェア)により実現されてもよい。また、上記の実施形態の少なくとも一部は、ソフトウェア(プログラム)を実行することにより、実現されてもよい。例えば、汎用のコンピュータ装置を基本ハードウェアとして用い、コンピュータ装置に搭載されたCPUなどのプロセッサにプログラムを実行させることにより、上記の実施形態の処理を実現することが可能である。
例えば、コンピュータが読み取り可能な記憶媒体に記憶された専用のソフトウェアをコンピュータが読み出すことにより、コンピュータを上記の実施形態の装置とすることができる。記憶媒体の種類は特に限定されるものではない。また、通信ネットワークを介してダウンロードされた専用のソフトウェアをコンピュータがインストールすることにより、コンピュータを上記の実施形態の装置とすることができる。こうして、ソフトウェアによる情報処理が、ハードウェア資源を用いて、具体的に実装される。
図16は、本発明の一実施形態におけるハードウェア構成の一例を示すブロック図である。情報処理装置1は、プロセッサ21と、主記憶装置22と、補助記憶装置23と、ネットワークインタフェース24と、デバイスインタフェース25と、を備え、これらがバス26を介して接続されたコンピュータ装置2として実現できる。記憶部101は、主記憶装置22または補助記憶装置23により実現可能であり、ソフトウェア実行検知部など記憶部111以外の構成要素は、プロセッサ21により実現可能である。
なお、図16のコンピュータ装置2は、各構成要素を一つ備えているが、同じ構成要素を複数備えていてもよい。また、図16は、1台のコンピュータ装置2が示されているが、ソフトウェアが複数のコンピュータ装置にインストールされて、当該複数のコンピュータ装置それぞれがソフトウェアの異なる一部の処理を実行してもよい。
プロセッサ21は、コンピュータの制御装置および演算装置を含む電子回路である。プロセッサ21は、コンピュータ装置2の内部構成の各装置などから入力されたデータやプログラムに基づいて演算処理を行い、演算結果や制御信号を各装置などに出力する。具体的には、プロセッサ21は、コンピュータ装置2のOS(オペレーティングシステム)や、アプリケーションなどを実行し、コンピュータ装置2を構成する各装置を制御する。プロセッサ21は、上記の処理を行うことができれば特に限られるものではない。
主記憶装置22は、プロセッサ21が実行する命令および各種データなどを記憶する記憶装置であり、主記憶装置22に記憶された情報がプロセッサ21により直接読み出される。補助記憶装置23は、主記憶装置22以外の記憶装置である。なお、これらの記憶装置は、電子情報を格納可能な任意の電子部品を意味するものとし、メモリでもストレージでもよい。また、メモリには、揮発性メモリと、不揮発性メモリがあるが、いずれでもよい。
ネットワークインタフェース24は、無線または有線により、通信ネットワーク3に接続するためのインタフェースである。ネットワークインタフェース24は、既存の通信規格に適合したものを用いればよい。ネットワークインタフェース24により、通信ネットワーク3を介して通信接続された外部装置4Aと情報のやり取りが行われてもよい。
デバイスインタフェース25は、外部装置4Bと直接接続するUSBなどのインタフェースである。外部装置4Bは、外部記憶媒体でもよいし、データベースなどのストレージ装置でもよい。
外部装置4Aおよび4Bは出力装置でもよい。出力装置は、例えば、画像を表示するための表示装置でもよいし、音声などを出力する装置などでもよい。例えば、LCD(Liquid Crystal Display)、CRT(Cathode Ray Tube)、PDP(Plasma Display Panel)、スピーカなどがあるが、これらに限られるものではない。
なお、外部装置4Aおよび4Bは入力装置でもよい。入力装置は、キーボード、マウス、タッチパネルなどのデバイスを備え、これらのデバイスにより入力された情報をコンピュータ装置2に与える。入力装置からの信号はプロセッサ21に出力される。
上記に、本発明の一実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、移行を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 情報処理装置
101 記憶部
102 ソフトウェア実行検知部
103 パス取得部
104 第1パス変換部
105 第1ソフトウェア情報取得部
106 照合部
107 実行制御部
108 仮想環境起動検知部
109 環境情報リスト更新部
110 仮想環境作成検知部
111 第2パス変換部
112 第2ソフトウェア情報取得部
113 照合リスト更新部113
114 仮想環境停止検知部
115 仮想環境削除検知部
116 事前照合部
117 イメージファイル特定部
2 コンピュータ装置
21 プロセッサ
22 主記憶装置
23 補助記憶装置
24 ネットワークインタフェース
25 デバイスインタフェース
26 バス
3 通信ネットワーク
4Aおよび4B 外部装置

Claims (16)

  1. ホスト環境と、一つ以上の仮想環境と、を提供可能な情報処理装置であって、
    前記ホスト環境と、前記一つ以上の仮想環境と、のうちのいずれかにおいて第1ソフトウェアの実行を検知し、前記第1ソフトウェアが検知された環境が第1環境であることを示す識別情報と、前記第1環境の名前空間における前記第1ソフトウェアの名前を示す第1名前情報と、を取得するソフトウェア実行検知部と、
    前記識別情報に基づき、前記第1環境とは別の第2環境の名前空間における前記第1環境の名前を示す第2名前情報を取得する名前情報取得部と、
    前記第2名前情報に基づき、前記第1名前情報を、前記第2環境の名前空間における前記第1ソフトウェアの名前を示す第3名前情報に変換する変換部と、
    前記第3名前情報に基づいてアクセス可能なリソースから前記第1ソフトウェアの情報を取得するソフトウェア情報取得部と、
    を備える情報処理装置。
  2. 取得された前記第1ソフトウェアの情報が、第1リストに登録されているものと、一致しているかを照合する第1照合部と、
    前記照合の結果に基づき、前記第1ソフトウェアの実行を制御する実行制御部と、
    をさらに備える請求項1に記載の情報処理装置。
  3. 前記名前情報取得部は、前記識別情報と前記第2名前情報とが対応付けられた第2リストに基づき、前記識別情報から前記第2名前情報を取得する
    請求項2に記載の情報処理装置。
  4. 前記第1環境が仮想環境であって、前記第1環境の作成を検知し、前記識別情報と、前記第2名前情報と、を取得する仮想環境作成検知部と、
    前記識別情報と、前記第2名前情報と、を対応付けて、前記第2リストに登録する第2リスト更新部と、
    をさらに備える請求項3に記載の情報処理装置。
  5. 前記第1環境が仮想環境であって、前記第1環境の起動を検知し、前記識別情報と、前記第1環境のプロセスIDと、を取得する仮想環境起動検知部と、
    前記第2リストの前記識別情報に関するデータセットに前記第1環境のプロセスIDを追加する第2リスト更新部と、
    をさらに備える請求項3に記載の情報処理装置。
  6. 前記第1環境の起動を検知し、前記識別情報と、前記第1環境のプロセスIDと、を取得する仮想環境作成検知部
    をさらに備え、
    前記第2リスト更新部は、前記第2リストの前記識別情報に関するデータセットに前記第1環境のプロセスIDを追加する
    請求項4に記載の情報処理装置。
  7. 前記第1環境が仮想環境であって、前記第1環境の作成を検知し、前記第1ソフトウェアのオリジナルファイルを格納するディレクトリの前記第2環境の名前空間における名前を示す第4名前情報を取得する仮想環境作成検知部と、
    前記第4名前情報に基づき、前記第1名前情報を、前記第2環境の名前空間における前記オリジナルファイルの名前を示す第5名前情報に変換する第2変換部と、
    前記第5名前情報に基づいて前記オリジナルファイルから前記第1ソフトウェアの情報を取得する第2ソフトウェア情報取得部と、
    前記オリジナルファイルから取得された第1ソフトウェアの情報を前記第1リストに登録する第1リスト更新部と
    をさらに備える請求項2または3に記載の情報処理装置。
  8. 前記仮想環境作成検知部が、前記第1ソフトウェアのオリジナルファイルを格納するディレクトリの前記第2環境の名前空間における名前を示す第4名前情報をさらに取得し、
    前記第4名前情報に基づき、前記第1名前情報を、前記第2環境の名前空間における前記オリジナルファイルの名前を示す第5名前情報に変換する第2変換部と、
    前記第5名前情報に基づいて前記オリジナルファイルから前記第1ソフトウェアの情報を取得する第2ソフトウェア情報取得部と、
    前記オリジナルファイルから取得された第1ソフトウェアの情報を前記第1リストに登録する第1リスト更新部と
    をさらに備える請求項4または6に記載の情報処理装置。
  9. 前記第1環境の停止を検知し、前記識別情報を取得する仮想環境停止検知部
    をさらに備え、
    前記第2リスト更新部が、前記第2リスト内の前記第1環境に関する情報を更新する
    請求項4、5、6、および8のいずれか一項に記載の情報処理装置。
  10. 前記第1環境の削除を検知し、前記識別情報を取得する仮想環境削除検知部
    をさらに備え、
    前記第2リスト更新部が、前記第1環境の削除が検知された場合に、前記第2リスト内の前記第1環境に関する情報を更新する
    請求項4、5、6、8、および9のいずれか一項に記載の情報処理装置。
  11. 前記第1リスト更新部が、前記第1環境の削除が検知された場合に、前記第1リスト内の前記第1環境に関する情報を更新する
    請求項8に直接または間接的に従属する請求項9または10に記載の情報処理装置。
  12. 前記第1環境の削除を検知し、前記識別情報を取得する仮想環境削除検知部
    をさらに備え、
    前記第1リスト更新部が、前記第1環境の削除が検知された場合に、前記第1リスト内の前記第1環境に関する情報を更新する
    請求項8、または、請求項8に従属する請求項9に記載の情報処理装置。
  13. 前記第1環境が仮想環境であって、前記第1環境の作成を検知し、前記第1ソフトウェアのオリジナルファイルを格納するディレクトリの前記第2環境の名前空間における名前を示す第4名前情報を取得する仮想環境作成検知部と、
    前記第4名前情報に基づき、前記第1名前情報を、前記第2環境の名前空間における前記オリジナルファイルの名前を示す第5名前情報に変換する第2変換部と、
    前記第5名前情報に基づいて前記オリジナルファイルの情報を取得し、取得された前記第1ソフトウェアの情報が第3リストに登録されたものと一致しているかを照合し、前記第1ソフトウェアの利用可否を決定する第2照合部と、
    前記第1ソフトウェアが利用可能と決定された場合に、前記第5名前情報に基づいて前記オリジナルファイルから前記第1ソフトウェアの情報を取得する第2ソフトウェア情報取得部と、
    前記第1ソフトウェアが利用可能と決定された場合に、前記オリジナルファイルから取得された第1ソフトウェアの情報を前記第1リストに登録する第1リスト更新部と
    をさらに備える請求項2または3に記載の情報処理装置。
  14. 前記第5名前情報に基づいて前記オリジナルファイルの情報を取得し、取得された前記第1ソフトウェアの情報が第3リストに登録されたものと一致しているかを照合し、前記第1ソフトウェアの利用可否を決定する第2照合部
    をさらに備え、
    前記第2ソフトウェア情報取得部は、前記第1ソフトウェアが利用可能と決定された場合に、前記第5名前情報に基づいて前記オリジナルファイルから前記第1ソフトウェアの情報を取得し、
    前記第1リスト更新部は、前記第1ソフトウェアが利用可能と決定された場合に、前記オリジナルファイルから取得された第1ソフトウェアの情報を前記第1リストに登録する
    請求項8、または、請求項8に従属する請求項9ないし12のいずれか一項に記載の情報処理装置。
  15. 前記第1環境が作成された場合に、前記第1環境に用いられたイメージファイルを特定するイメージ特定部
    をさらに備え、
    前記第2リスト更新部は、前記第2リスト内の前記第1環境に関する情報に、特定されたイメージファイルを示す情報を追加し、
    前記第1リストには、前記第1環境の作成に用いられてもよいイメージファイルまたはが前記第1環境の作成に用いられてはいけないイメージファイルが登録されており、
    前記実行制御部は、特定されたイメージファイルと、前記第1リストに登録されているイメージファイルと、の照合結果に基づいて、前記第1ソフトウェアの実行を制御する
    請求項4から6、8から12、および14のいずれか一項に記載の情報処理装置。
  16. 前記第1リストは、前記一つ以上の仮想環境それぞれに対応する複数のファイルから構成されており、
    前記第1照合部は、前記複数のファイルから前記第1環境に対応するファイルを検出して、前記照合を実行する
    請求項2ないし15のいずれか一項に記載の情報処理装置。
JP2020135907A 2020-08-11 2020-08-11 情報処理装置、情報処理方法、およびプログラム Active JP7399818B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020135907A JP7399818B2 (ja) 2020-08-11 2020-08-11 情報処理装置、情報処理方法、およびプログラム
US17/249,340 US11868814B2 (en) 2020-08-11 2021-02-26 Information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020135907A JP7399818B2 (ja) 2020-08-11 2020-08-11 情報処理装置、情報処理方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2022032285A JP2022032285A (ja) 2022-02-25
JP7399818B2 true JP7399818B2 (ja) 2023-12-18

Family

ID=80224203

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020135907A Active JP7399818B2 (ja) 2020-08-11 2020-08-11 情報処理装置、情報処理方法、およびプログラム

Country Status (2)

Country Link
US (1) US11868814B2 (ja)
JP (1) JP7399818B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7391802B2 (ja) 2020-09-11 2023-12-05 株式会社東芝 情報処理装置、情報処理方法及びコンピュータプログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011501852A (ja) 2007-10-18 2011-01-13 ジーイー・インテリジェント・プラットフォームズ・インコーポレイテッド オートメーションソフトウェアを変換する方法およびシステム
JP2011114834A (ja) 2009-11-30 2011-06-09 Mitsubishi Electric Corp 基地局装置およびスケジューリング方法
JP5437238B2 (ja) 2007-06-29 2014-03-12 マイクロソフト コーポレーション リソースにアクセスするための方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5437238B2 (ja) 2007-06-29 2014-03-12 マイクロソフト コーポレーション リソースにアクセスするための方法
JP2011501852A (ja) 2007-10-18 2011-01-13 ジーイー・インテリジェント・プラットフォームズ・インコーポレイテッド オートメーションソフトウェアを変換する方法およびシステム
JP2011114834A (ja) 2009-11-30 2011-06-09 Mitsubishi Electric Corp 基地局装置およびスケジューリング方法

Also Published As

Publication number Publication date
US20220050727A1 (en) 2022-02-17
JP2022032285A (ja) 2022-02-25
US11868814B2 (en) 2024-01-09

Similar Documents

Publication Publication Date Title
CN104008340B (zh) 病毒查杀方法及装置
KR101806499B1 (ko) 파일 관리 방법 및 이를 이용한 파일 관리 장치
US10402378B2 (en) Method and system for executing an executable file
US20100050257A1 (en) Confirmation method of api by the information at call-stack
US20130225148A1 (en) Terminal with module protection and module managing method
CN109358827B (zh) 控制应用串口打印的方法、***、设备及存储介质
US20130185602A1 (en) Heap dump occurrence detection
JP2007148805A (ja) 情報処理装置、情報処理方法およびプログラム
US20150294093A1 (en) Management system, information processing device, management server, control method therefor, and program
JP7399818B2 (ja) 情報処理装置、情報処理方法、およびプログラム
US20100162349A1 (en) Content protection device, content protection method, and computer readable medium
JP2008192126A (ja) 情報処理装置およびプログラム
US10915623B2 (en) Information processing apparatus, information processing method, and computer program product
US9569600B2 (en) Information processing apparatus with license information management
RU2628920C2 (ru) Способ обнаружения вредоносных сборок
JP4322763B2 (ja) 文書ファイルコピー移動監視システム、方法及びプログラム
JP7431776B2 (ja) 情報処理装置、情報処理方法、およびプログラム
JP7486368B2 (ja) 情報処理装置、情報処理装置の制御方法、情報処理システム及びプログラム
KR101331879B1 (ko) 명령어 관리 장치
US20230132909A1 (en) Image processing apparatus having usb host controller, control method therefor, and storage medium storing control program therefor
US20220398317A1 (en) Information processing apparatus, information processing method, and recording medium
US11385816B2 (en) Systems and methods for implementing improved links between paths of one or more file systems
CN117688551A (zh) 启动路径白名单更新方法、装置、电子设备及存储介质
CN118114234A (zh) 针对第三方驱动的数据库防护方法、存储介质及设备
JP2008234269A (ja) ファイル管理システム及び方法並びにプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220909

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: 20231107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231206

R151 Written notification of patent or utility model registration

Ref document number: 7399818

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151