JP6355657B2 - 処理実行装置、処理実行方法及び制御プログラム - Google Patents

処理実行装置、処理実行方法及び制御プログラム Download PDF

Info

Publication number
JP6355657B2
JP6355657B2 JP2016001092A JP2016001092A JP6355657B2 JP 6355657 B2 JP6355657 B2 JP 6355657B2 JP 2016001092 A JP2016001092 A JP 2016001092A JP 2016001092 A JP2016001092 A JP 2016001092A JP 6355657 B2 JP6355657 B2 JP 6355657B2
Authority
JP
Japan
Prior art keywords
program
file
execution
authority
processing
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
JP2016001092A
Other languages
English (en)
Other versions
JP2017123011A (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2016001092A priority Critical patent/JP6355657B2/ja
Publication of JP2017123011A publication Critical patent/JP2017123011A/ja
Application granted granted Critical
Publication of JP6355657B2 publication Critical patent/JP6355657B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、処理実行装置、処理実行方法及び制御プログラムに関するものである。
工場やプラント等の機器を監視、制御する計算機システムは、一般にはインターネットに接続せず、閉じたネットワーク構成下で利用される。そのため、一般のPC(Personal Computer)で利用される、インターネットに接続して最新のウィルスパターンファイルをダウンロードして利用するウィルス対策ソフトウェアを利用することは難しい。しかし、閉じたネットワークであっても、外部から持ち込まれたPCや記録媒体を介してコンピュータウィルスが入り込む危険性がある。
特許文献1には、プログラムの不正な改竄を防止しつつプログラムの正当な更新を可能にする技術が記載されている。この技術では、プログラムを実行してよいかどうか判定する際に、プログラムのハッシュ値がホワイトリストにあるかどうか、また、ホワイトリストにない場合は親プロセスのハッシュ値がホワイトリストにあるかどうかを確認している。
特開2010−238168号公報
従来の技術では、正当なプログラムにより動的に作成されたプログラムを起動する場合、対象のプログラムはホワイトリストに登録されていないため実行することはできない。ただし、親プロセスがホワイトリストに登録されている場合、そのプロセスから起動されたホワイトリスト未登録プログラムは実行可能となる。
UNIX(登録商標) OS(Operating System)のシェルコマンドで実行するスクリプトプログラムから起動するホワイトリスト未登録プログラムの親プロセスは、スクリプトプログラムではなくシェルとなる。しかし、シェルをホワイトリストに登録し、そこから起動されるホワイトリスト未登録子プロセスも実行可能にすると、侵入者がシェルコマンドから起動したマルウェアの実行を阻止できない。
本発明は、処理の対象によって処理の実行可否を決めている場合であっても、特別な権限を与えたプログラムを実行しているプロセスから要求される処理については、処理の対象に関わらず、処理の実行を許可できるようにすることを目的とする。
本発明の一態様に係る処理実行装置は、
プロセスから要求された処理を実行する実行部と、
前記処理の対象が条件を満たしていれば、前記実行部に前記処理を実行させ、前記処理の対象が前記条件を満たしていなくても、前記処理の要求元のプロセスが、他のプログラムのファイルを参照して前記他のプログラムを実行しているプログラムに該当する場合は、前記処理の権限が付与されたプログラムを示す権限情報をメモリから読み取って、前記他のプログラムに前記処理の権限が付与されていれば、前記実行部に前記処理を実行させる制御部とを備える。
本発明では、処理の権限が付与されたプログラムを示す権限情報を管理している。このため、本発明によれば、特別な権限を与えたプログラムを実行しているプロセスから要求される処理については、処理の対象に関わらず、処理の実行を許可できるようになる。
実施の形態1に係る処理実行装置の構成を示すブロック図。 実施の形態1に係る処理実行装置の動作を示すフローチャート。 実施の形態1に係る処理実行装置の動作を示すフローチャート。 実施の形態2に係る処理実行装置の構成を示すブロック図。 実施の形態2に係る処理実行装置の動作を示すフローチャート。 実施の形態2に係る処理実行装置の動作を示すフローチャート。 実施の形態3に係る処理実行装置の構成を示すブロック図。 実施の形態3に係る処理実行装置の動作を示すフローチャート。 実施の形態3に係る処理実行装置の動作を示すフローチャート。
以下、本発明の実施の形態について、図を用いて説明する。なお、各図中、同一又は相当する部分には、同一符号を付している。実施の形態の説明において、同一又は相当する部分については、その説明を適宜省略又は簡略化する。
実施の形態1.
本実施の形態に係る装置は、プログラムのリストを基に実行可否の判別を行い、リストに掲載されていないプログラムについては、起動元プログラムが参照するファイルに付与された権限を基に実行可否を判断する。なお、1つ1つのファイルは、ファイルID(IDentifier)によって識別される。
以下では、本実施の形態に係る装置の構成、本実施の形態に係る装置の動作、本実施の形態の効果を順番に説明する。
***構成の説明***
図1を参照して、本実施の形態に係る装置である処理実行装置100の構成を説明する。
処理実行装置100は、コンピュータである。処理実行装置100は、プロセッサ101、ネットワークコントローラ102、入力デバイス103、表示デバイス104、メモリ105、補助記憶装置106といったハードウェアを備える。プロセッサ101は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
処理実行装置100は、機能部として、実行部110と、制御部120とを備える。実行部110と、制御部120とのそれぞれの機能は、ソフトウェアにより実現される。
プロセッサ101は、プロセッシングを行うIC(Integrated Circuit)である。プロセッサ101は、具体的には、CPU(Central Processing Unit)である。
ネットワークコントローラ102は、データを受信するレシーバ及びデータを送信するトランスミッタを含む。ネットワークコントローラ102は、具体的には、通信チップ又はNIC(Network Interface Card)である。
入力デバイス103は、具体的には、マウス、キーボード、又は、タッチパネルである。
表示デバイス104は、具体的には、LCD(Liquid Crystal Display)である。
メモリ105は、具体的には、RAM(Random Access Memory)である。
補助記憶装置106は、具体的には、ROM(Read Only Memory)、フラッシュメモリ、又は、HDD(Hard Disk Drive)である。
補助記憶装置106には、実行部110、制御部120といった「部」の機能を実現するプログラムが記憶されている。プログラムは、メモリ105にロードされ、プロセッサ101によって実行される。本実施の形態において、実行部110の機能を実現するプログラムは、OSである。制御部120の機能を実現するプログラムは、OS上で実行されてもよいし、OSに統合されてもよい。
補助記憶装置106には、「部」の機能を実現するプログラムのほかにも、複数のプログラム131と、複数のライブラリ132と、少なくとも1つのスクリプトプログラム140とが記憶されている。プログラム131は、ライブラリ132とともにメモリ105にロードされ、ライブラリ132と結合され、プロセッサ101によって実行される。ライブラリ132と結合されたプログラム131は、プロセス130としてOSにより管理される。スクリプトプログラム140は、プログラム131の1つであるシェルにより実行される。
補助記憶装置106には、さらに、ホワイトリスト124と、実行特権プログラムのファイルID125と、シェルのファイルID126と、シェルのファイルディスクリプタ127とが記憶されている。ホワイトリスト124には、実行を許可するプログラム131のファイルIDを登録する。具体的には、実行を許可するプログラム131をOSが補助記憶装置106上でファイルとして管理するためのユニークな番号等を登録しておく。実行特権プログラムのファイルID125も、特別な権限が与えられたプログラムをOSが補助記憶装置106上でファイルとして管理するための識別子である。具体的には、プログラム131のファイルIDや、スクリプトプログラム140のファイルIDである。本実施の形態において、実行特権プログラムのファイルID125は、処理の権限としてプログラムの起動処理の権限が付与されたプログラムを示す権限情報129である。シェルのファイルID126は、シェルのファイルの識別子である。シェルのファイルディスクリプタ127は、シェルがスクリプトプログラム140を読み込むときに使用するファイルの記述子である。具体的には、シェルがオープンしている入力ファイルを識別するための番号である。
実行部110は、プロセス130から要求されてプログラム起動処理111を実行する。
制御部120は、起動可否判断処理121を実行する。制御部120は、起動可否判断処理121において、ホワイトリスト124、実行特権プログラムのファイルID125、シェルのファイルID126、シェルのファイルディスクリプタ127といったデータを参照する。制御部120が参照するデータは、メモリ105にあれば、メモリ105から読み取られ、メモリ105になければ、補助記憶装置106からメモリ105に転送されてから読み取られる。
処理実行装置100は、1つのプロセッサ101のみを備えていてもよいし、複数のプロセッサ101を備えていてもよい。複数のプロセッサ101が「部」の機能を実現するプログラムを連携して実行してもよい。
「部」の処理の結果を示す情報、データ、信号値、及び、変数値は、補助記憶装置106、メモリ105、又は、プロセッサ101内のレジスタ又はキャッシュメモリに記憶される。
「部」の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD(Digital Versatile Disc)等の可搬記録媒体に記憶されてもよい。
***動作の説明***
図2及び図3を参照して、処理実行装置100の動作を説明する。処理実行装置100の動作は、本実施の形態に係る処理実行方法に相当する。
図2は、実行部110により実行されるプログラム起動処理111の流れを示すフローチャートである。
ステップS11において、プログラム起動処理111は、起動可否判断処理121を呼び出す。その結果、ステップS12で起動許可と判定されると、ステップS13において、プログラム起動処理111は、プログラム131の起動処理を実行する。具体的には、プログラム起動処理111は、プログラム131を補助記憶装置106からメモリ105に読み出して起動する。ステップS12で起動不可であると判定されると、ステップS14において、プログラム起動処理111は、エラーを返す。なお、ステップS12での許可は、起動可否判断処理121としての許可であり、OSが確認する実行権やアクセス権の処理はステップS13の処理に含むものとする。
図3は、制御部120により実行される起動可否判断処理121の流れを示すフローチャートである。起動可否判断処理121の流れは、本実施の形態に係る制御プログラムの処理手順に相当する。
ステップS21において、起動可否判断処理121は、起動しようとしたプログラム131がホワイトリスト124に登録済であるかどうかを確認する。登録済プログラムであれば、ステップS28において、起動可否判断処理121は、プログラム131の起動許可を与える。登録済プログラムでない場合は、ステップS22において、起動可否判断処理121は、親のプロセス130が存在するかを確認する。ここで、親のプロセス130とは、プログラム131を起動しようとしているプロセス130のことである。親のプロセス130が存在しない場合は、ステップS27において、起動可否判断処理121は、プログラム131を起動不可とする。ステップS22で親のプロセス130が存在する場合は、ステップS23において、起動可否判断処理121は、親のプロセス130のプログラム131のファイルIDが実行特権プログラムのファイルID125に合致するかどうかを確認する。実行特権プログラムのファイルID125に合致する場合は、ステップS28において、起動可否判断処理121は、プログラム131の起動許可を与える。ステップS23で実行特権プログラムのファイルID125に合致しない場合は、ステップS24において、起動可否判断処理121は、親のプロセス130がシェルであるかどうかを、シェルのファイルID126を用いて確認する。シェルでなければ、ステップS26において、起動可否判断処理121は、さらに親のプロセス130を遡って確認を行う。ステップS24で親のプロセス130がシェルであれば、ステップS25において、起動可否判断処理121は、シェルのファイルディスクリプタ127に結び付けられたスクリプトプログラム140のファイルIDが実行特権プログラムのファイルID125に一致するかどうかを確認する。一致した場合は、ステップS28において、起動可否判断処理121は、プログラム131の起動許可を与える。ステップS25で一致しない場合は、ステップS26において、起動可否判断処理121は、親のプロセス130を遡って確認を行う。
ここで、起動可否判断処理121を、制御部120の動作として説明する。
制御部120は、ステップS21において、起動処理の対象となるプログラム131が条件を満たしているかどうかを確認する。本実施の形態では、起動処理により起動されるプログラム131がメモリ105に記憶されたホワイトリスト124に登録されている場合に、条件が満たされることになる。よって、制御部120は、起動処理の対象となるプログラム131のファイルIDをキーとして、メモリ105に記憶されたホワイトリスト124を検索する。キーと一致するファイルIDがホワイトリスト124に含まれていれば、起動処理の対象が条件を満たしていることになる。
起動処理の対象が条件を満たしていれば、制御部120は、ステップS28において、実行部110に起動処理を実行させる。具体的には、制御部120は、起動処理の実行を許可することを示すデータをメモリ105、又は、プロセッサ101のレジスタに格納する。実行部110は、このデータを参照して起動処理を実行する。
起動処理の対象が条件を満たしていなくても、制御部120は、ステップS22及びステップS23において、起動処理の要求元のプロセス130、即ち、親のプロセス130が存在するかどうか、もし存在していれば親のプロセス130に起動処理の権限が付与されているかどうかを確認する。親のプロセス130が存在するかどうかを確認する方法については、特許文献1と同様の方法を用いることができる。親のプロセス130に起動処理の権限が付与されているかどうかを確認する際には、制御部120は、権限情報129をメモリ105から読み取って、権限情報129を参照する。権限情報129は、本実施の形態では、起動処理の権限が付与されたプログラムのファイルを識別するファイルID125である。よって、制御部120は、親のプロセス130として動作しているプログラム131のファイルIDと、権限情報129であるファイルID125とを比較する。両者が一致していれば、親のプロセス130に起動処理の権限が付与されていることになる。
親のプロセス130に起動処理の権限が付与されていれば、制御部120は、ステップS28において、実行部110に起動処理を実行させる。その結果、制御部120は、ステップS13において、親のプロセス130から要求された処理を実行することになる。この処理は、処理の対象としてプログラム131を起動する処理である。
親のプロセス130に起動処理の権限が付与されていなくても、制御部120は、ステップS24において、親のプロセス130が、他のプログラムのファイルを参照して当該他のプログラムを実行しているプログラム131に該当するかどうかを確認する。そして、もし該当していれば、制御部120は、ステップS25において、当該他のプログラムに起動処理の権限が付与されているかどうかを確認する。本実施の形態では、親のプロセス130が、他のプログラムとしてスクリプトプログラム140を実行しているシェルであれば、他のプログラムのファイルを参照して当該他のプログラムを実行しているプログラム131に該当することになる。よって、制御部120は、親のプロセス130がシェルであるかどうかを確認する。具体的には、制御部120は、親のプロセス130として動作しているプログラム131のファイルIDとメモリ105に記憶されたシェルのファイルID126とを比較する。両者が一致していれば、親のプロセス130がシェルであることになる。親のプロセス130がシェルである場合、制御部120は、シェルが参照するファイルを示すファイルディスクリプタ127と権限情報129とをメモリ105から読み取って、ファイルディスクリプタ127と権限情報129とを参照する。ファイルディスクリプタ127は、ファイルID等を含むファイル情報へのインデックスである。また、前述したように、権限情報129は、本実施の形態では、起動処理の権限が付与されたプログラムのファイルを識別するファイルID125である。よって、制御部120は、ファイルディスクリプタ127で示されるスクリプトプログラム140のファイルIDと、権限情報129であるファイルID125とを比較する。両者が一致していれば、スクリプトプログラム140に起動処理の権限が付与されていることになる。
スクリプトプログラム140に起動処理の権限が付与されていれば、制御部120は、ステップS28において、実行部110に起動処理を実行させる。その結果、制御部120は、ステップS13において、親のプロセス130から要求された処理を実行することになる。前述したように、この処理は、処理の対象としてプログラム131を起動する処理である。
親のプロセス130がシェルでないか、シェルであってもスクリプトプログラム140に起動処理の権限が付与されていなければ、制御部120は、ステップS26を経て、親のプロセス130の先祖について、ステップS24及びステップS25を含む同様の処理を行う。ここで、あるプロセス130に対して、そのプロセス130を子とするプロセス130を先代とすると、親のプロセス130から先代、先々代と順番に初代まで遡ったとき、親のプロセス130の先代から初代までのそれぞれのプロセス130が、親のプロセス130の先祖に該当する。よって、制御部120は、親のプロセス130と、その先祖のプロセス130とのいずれかに起動処理の権限が付与されていれば、ステップS28において、実行部110に起動処理を実行させる。
以上のように、本実施の形態では、親のプロセス130が実行特権プログラムであるかどうかの確認に加え、親のプロセス130がシェルの場合は、処理しているスクリプトプログラム140に特権が与えられているかどうかを確認する。これにより、シェルに特権を与えずにスクリプトプログラム140に特権を与え、ホワイトリスト124に登録されていないプログラム131を起動することができる。具体的には、スクリプトプログラム140の中でプログラム131のソースコードをコンパイルし、生成された未登録のプログラム131をスクリプトプログラム140から起動することができる。しかし、シェルには特権を与えていないため、侵入者が不正にログインして実行しているシェルコマンド上でコンパイルした不正プログラムを実行することはできない。
***実施の形態の効果の説明***
本実施の形態では、処理実行装置100が、特別にプログラム131の起動処理の権限が付与されたプログラムを示す権限情報129を管理している。このため、本実施の形態によれば、処理実行装置100が、特別な権限を与えたプログラムを実行しているプロセス130から要求される処理については、起動処理の対象がどのプログラム131であるかに関わらず、プログラム131の起動処理の実行を許可できるようになる。
***他の構成***
本実施の形態では、「部」の機能がソフトウェアにより実現されるが、変形例として、「部」の機能がソフトウェアとハードウェアとの組み合わせにより実現されてもよい。即ち、「部」の一部の機能が専用の電子回路により実現され、残りの機能がソフトウェアにより実現されてもよい。専用の電子回路としては、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、又は、FPGA(Field−Programmable Gate Array)を用いることができる。
プロセッサ101、メモリ105、及び、専用の電子回路を、総称して「プロセッシングサーキットリ」という。つまり、「部」の機能は、プロセッシングサーキットリにより実現される。
「部」を「工程」又は「手順」又は「処理」に読み替えてもよい。また、「部」の機能をファームウェアにより実現してもよい。
実施の形態2.
本実施の形態に係る装置は、ライブラリのリストを基にロード可否の判別を行い、リストに掲載されていないライブラリについては、ライブラリをロードするプログラムの起動元プログラムが参照するファイルに付与された権限を基にロード可否を判断する。
以下では、本実施の形態に係る装置の構成、本実施の形態に係る装置の動作、本実施の形態の効果を順番に説明する。主に実施の形態1との差異を説明する。
***構成の説明***
図4を参照して、本実施の形態に係る装置である処理実行装置100の構成を説明する。
処理実行装置100は、実施の形態1と同じように、コンピュータである。
処理実行装置100は、実施の形態1と同じように、機能部として、実行部110と、制御部120とを備える。実行部110と、制御部120とのそれぞれの機能は、ソフトウェアにより実現される。
補助記憶装置106には、ホワイトリスト124と、実行特権プログラムのファイルID125と、シェルのファイルID126と、シェルのファイルディスクリプタ127とが記憶されている。ホワイトリスト124には、ロードを許可するライブラリ132のファイルIDを登録する。具体的には、ロードを許可するライブラリ132をOSが補助記憶装置106上でファイルとして管理するためのユニークな番号等を登録しておく。実行特権プログラムのファイルID125も、特別な権限が与えられたプログラム131をOSが補助記憶装置106上でファイルとして管理するための識別子である。具体的には、プログラム131のファイルIDや、スクリプトプログラム140のファイルIDである。本実施の形態において、実行特権プログラムのファイルID125は、処理の権限としてライブラリ132のロード処理の権限が付与されたプログラムを示す権限情報129である。シェルのファイルID126、及び、シェルのファイルディスクリプタ127については、実施の形態1のものと同じである。
本実施の形態では、実行部110が、ライブラリロード処理112を実行する。
また、本実施の形態では、制御部120が、ライブラリロード可否判断処理122を実行する。制御部120は、ライブラリロード可否判断処理122において、ホワイトリスト124、実行特権プログラムのファイルID125、シェルのファイルID126、シェルのファイルディスクリプタ127といったデータを参照する。
***動作の説明***
図5及び図6を参照して、処理実行装置100の動作を説明する。処理実行装置100の動作は、本実施の形態に係る処理実行方法に相当する。
図5は、実行部110により実行されるライブラリロード処理112の流れを示すフローチャートである。
ステップS31において、ライブラリロード処理112は、ライブラリロード可否判断処理122を呼び出す。その結果、ステップS32でロード許可と判定されると、ステップS33において、ライブラリロード処理112は、ライブラリ132のロード処理を実行する。具体的には、ライブラリロード処理112は、ライブラリ132を補助記憶装置106からメモリ105にロードする。ステップS32でロード不可であると判定されると、ステップS34において、ライブラリロード処理112は、エラーを返す。なお、ステップS32での許可は、ライブラリロード可否判断処理122としての許可であり、OSが確認する実行権やアクセス権の処理はステップS33の処理に含むものとする。
図6は、制御部120により実行されるライブラリロード可否判断処理122の流れを示すフローチャートである。ライブラリロード可否判断処理122の流れは、本実施の形態に係る制御プログラムの処理手順に相当する。
ステップS41において、ライブラリロード可否判断処理122は、ロードしようとしたライブラリ132がホワイトリスト124に登録済であるかどうかを確認する。登録済ライブラリであれば、ステップS48において、ライブラリロード可否判断処理122は、ライブラリ132のロード許可を与える。登録済ライブラリでない場合は、ステップS42において、ライブラリロード可否判断処理122は、親のプロセス130が存在するかを確認する。ここで、親のプロセス130とは、ライブラリ132をロードしようとしているプロセス130のことである。親のプロセス130が存在しない場合は、ステップS47において、ライブラリロード可否判断処理122は、ライブラリ132をロード不可とする。ステップS42で親のプロセス130が存在する場合は、ステップS43において、ライブラリロード可否判断処理122は、親のプロセス130のプログラム131のファイルIDが実行特権プログラムのファイルID125に合致するかどうかを確認する。実行特権プログラムのファイルID125に合致する場合は、ステップS48において、ライブラリロード可否判断処理122は、ライブラリ132のロード許可を与える。ステップS43で実行特権プログラムのファイルID125に合致しない場合は、ステップS44において、ライブラリロード可否判断処理122は、親のプロセス130がシェルであるかどうかを、シェルのファイルID126を用いて確認する。シェルでなければ、ステップS46において、ライブラリロード可否判断処理122は、さらに親のプロセス130を遡って確認を行う。ステップS44で親のプロセス130がシェルであれば、ステップS45において、ライブラリロード可否判断処理122は、シェルのファイルディスクリプタ127に結び付けられたスクリプトプログラム140のファイルIDが実行特権プログラムのファイルID125に一致するかどうかを確認する。一致した場合は、ステップS48において、ライブラリロード可否判断処理122は、ライブラリ132のロード許可を与える。ステップS45で一致しない場合は、ステップS46において、ライブラリロード可否判断処理122は、親のプロセス130を遡って確認を行う。
ここで、ライブラリロード可否判断処理122を、制御部120の動作として説明する。
制御部120は、ステップS41において、ロード処理の対象となるライブラリ132が条件を満たしているかどうかを確認する。本実施の形態では、ロード処理によりロードされるライブラリ132がメモリ105に記憶されたホワイトリスト124に登録されている場合に、条件が満たされることになる。よって、制御部120は、ロード処理の対象となるライブラリ132のファイルIDをキーとして、メモリ105に記憶されたホワイトリスト124を検索する。キーと一致するファイルIDがホワイトリスト124に含まれていれば、ロード処理の対象が条件を満たしていることになる。
上記のように、本実施の形態では、プロセス130から要求される処理が、処理の対象としてプログラム131を起動する処理から、処理の対象としてライブラリ132をロードする処理に変わっているだけで、ステップS41の動作は、実施の形態1におけるステップS21の動作とほぼ同じである。ステップS42以降の動作についても、実施の形態1におけるステップS22以降の動作とほぼ同じであるため、説明を省略する。
以上のように、本実施の形態では、実施の形態1と同様に、シェルに特権を与えずにスクリプトプログラム140に特権を与え、ホワイトリスト124に登録されていないライブラリ132をロードすることができる。
***実施の形態の効果の説明***
本実施の形態では、処理実行装置100が、特別にライブラリ132のロード処理の権限が付与されたプログラムを示す権限情報129を管理している。このため、本実施の形態によれば、処理実行装置100が、特別な権限を与えたプログラムを実行しているプロセス130から要求される処理については、ロード処理の対象がどのライブラリ132であるかに関わらず、ライブラリ132のロード処理の実行を許可できるようになる。
***他の構成***
本実施の形態では、実施の形態1と同じように、「部」の機能がソフトウェアにより実現されるが、実施の形態1の変形例と同じように、「部」の機能がソフトウェアとハードウェアとの組み合わせにより実現されてもよい。
実施の形態3.
本実施の形態に係る装置は、ファイルのリストを基に更新可否の判別を行い、リストに掲載されているファイルについては、更新を実行するプログラムの起動元プログラムが参照するファイルに付与された権限を基に更新可否を判断する。
以下では、本実施の形態に係る装置の構成、本実施の形態に係る装置の動作、本実施の形態の効果を順番に説明する。主に実施の形態1との差異を説明する。
***構成の説明***
図7を参照して、本実施の形態に係る装置である処理実行装置100の構成を説明する。
処理実行装置100は、実施の形態1と同じように、コンピュータである。
処理実行装置100は、実施の形態1と同じように、機能部として、実行部110と、制御部120とを備える。実行部110と、制御部120とのそれぞれの機能は、ソフトウェアにより実現される。
補助記憶装置106には、ホワイトリスト124と、書き込み特権プログラムのファイルID128と、シェルのファイルID126と、シェルのファイルディスクリプタ127とが記憶されている。ホワイトリスト124には、更新を許可するファイルのファイルIDを登録する。具体的には、更新を許可するプログラム131をOSが補助記憶装置106上でファイルとして管理するためのユニークな番号等を登録しておく。書き込み特権プログラムのファイルID128も、特別な権限が与えられたプログラム131をOSが補助記憶装置106上でファイルとして管理するための識別子である。具体的には、プログラム131のファイルIDや、スクリプトプログラム140のファイルIDである。本実施の形態において、書き込み特権プログラムのファイルID128は、処理の権限として書き込みモードでのファイルのオープン処理の権限が付与されたプログラムを示す権限情報129である。シェルのファイルID126、及び、シェルのファイルディスクリプタ127については、実施の形態1のものと同じである。
本実施の形態では、実行部110が、ファイルオープン処理113を実行する。
また、本実施の形態では、制御部120が、ファイルオープン可否判断処理123を実行する。制御部120は、ファイルオープン可否判断処理123において、ホワイトリスト124、書き込み特権プログラムのファイルID128、シェルのファイルID126、シェルのファイルディスクリプタ127といったデータを参照する。
***動作の説明***
図8及び図9を参照して、処理実行装置100の動作を説明する。処理実行装置100の動作は、本実施の形態に係る処理実行方法に相当する。
図8は、実行部110により実行されるファイルオープン処理113の流れを示すフローチャートである。なお、ファイルオープン処理113の対象となるファイルは、データファイルでもよいが、本実施の形態では、プログラム131の改竄の防止や保守時のプログラム131の更新を想定し、プログラム131のファイルであるとする。
ステップS51において、ファイルオープン処理113は、ファイルオープン可否判断処理123を呼び出す。その結果、ステップS52でオープン許可と判定されると、ステップS53において、ファイルオープン処理113は、ファイルのオープン処理を実行する。具体的には、ファイルオープン処理113は、補助記憶装置106上のプログラム131のファイルを開く。ファイルが開かれると、メモリ105を介してファイルからのデータの読み込みとファイルへのデータの書き込みとの少なくともいずれかが可能となる。ステップS52でオープン不可であると判定されると、ステップS54において、ファイルオープン処理113は、エラーを返す。なお、ステップS52での許可は、ファイルオープン可否判断処理123としての許可であり、OSが確認する実行権やアクセス権の処理はステップS53の処理に含むものとする。
図9は、制御部120により実行されるファイルオープン可否判断処理123の流れを示すフローチャートである。ファイルオープン可否判断処理123の流れは、本実施の形態に係る制御プログラムの処理手順に相当する。
ステップS61において、ファイルオープン可否判断処理123は、ファイルを書き込みモードでオープンしようとしているかどうかを確認する。書き込みモードでなければ、ステップS69において、ファイルオープン可否判断処理123は、ファイルのオープン許可を与える。ステップS61で書き込みモードであった場合は、ステップS62において、ファイルオープン可否判断処理123は、オープンしようとしたプログラム131のファイルがホワイトリスト124に登録済であるかどうかを確認する。未登録プログラムであれば、ステップS69において、ファイルオープン可否判断処理123は、ファイルのオープン許可を与える。登録済プログラムの場合は、ステップS63において、ファイルオープン可否判断処理123は、親のプロセス130が存在するかを確認する。ここで、親のプロセス130とは、ファイルを書き込みモードでオープンしようとしているプロセス130のことである。親のプロセス130が存在しない場合は、ステップS68において、ファイルオープン可否判断処理123は、ファイルをオープン不可とする。ステップS63で親のプロセス130が存在する場合は、ステップS64において、ファイルオープン可否判断処理123は、親のプロセス130のプログラム131のファイルIDが書き込み特権プログラムのファイルID128に合致するかどうかを確認する。書き込み特権プログラムのファイルID128に合致する場合は、ステップS69において、ファイルオープン可否判断処理123は、プログラム131のファイルのオープン許可を与える。ステップS64で書き込み特権プログラムのファイルID128に合致しない場合は、ステップS65において、ファイルオープン可否判断処理123は、親のプロセス130がシェルであるかどうかを、シェルのファイルID126を用いて確認する。シェルでなければ、ステップS67において、ファイルオープン可否判断処理123は、さらに親のプロセス130を遡って確認を行う。ステップS65で親のプロセス130がシェルであれば、ステップS66において、ファイルオープン可否判断処理123は、シェルのファイルディスクリプタ127に結び付けられたスクリプトプログラム140のファイルIDが書き込み特権プログラムのファイルID128に一致するかどうかを確認する。一致した場合は、ステップS69において、ファイルオープン可否判断処理123は、プログラム131のファイルのオープン許可を与える。ステップS66で一致しない場合は、ステップS67において、ファイルオープン可否判断処理123は、親のプロセス130を遡って確認を行う。
ここで、ファイルオープン可否判断処理123を、制御部120の動作として説明する。
制御部120は、ステップS62において、書き込みモードでのオープン処理の対象となるファイルが条件を満たしているかどうかを確認する。本実施の形態では、オープン処理によりオープンされるファイルがメモリ105に記憶されたホワイトリスト124に登録されていない場合に、条件が満たされることになる。よって、制御部120は、オープン処理の対象となるファイルのファイルIDをキーとして、メモリ105に記憶されたホワイトリスト124を検索する。キーと一致するファイルIDがホワイトリスト124に含まれていなければ、オープン処理の対象が条件を満たしていることになる。
上記のように、本実施の形態では、プロセス130から要求される処理が、処理の対象としてプログラム131を起動する処理から、処理の対象としてファイルを書き込みモードでオープンする処理に変わっているだけで、ステップS62の動作は、実施の形態1におけるステップS21の動作とほぼ同じである。ステップS63以降の動作についても、実施の形態1におけるステップS22以降の動作とほぼ同じであるため、説明を省略する。
以上のように、本実施の形態では、ファイルを書き込みモードでオープンするとき、対象のファイルがホワイトリスト124に登録されているものである場合は、通常の場合は拒絶するため、プログラム131の改竄を防止することができる。ホワイトリスト124を補助記憶装置106上にファイルとして保存しておく場合は、そのファイル自体をホワイトリスト124に登録しておくことで、ホワイトリスト124の改竄を防止することもできる。変更させたくない設定ファイル、認証や署名に用いる鍵ファイル等もホワイトリスト124に登録しておくことで改竄を防止することができる。また、プログラム131の保守のためにホワイトリスト124に登録済のファイルを更新する場合、更新用のスクリプトプログラム140を書き込み特権プログラムとすることにより、通常は書き込みができない登録済のファイルを更新することができる。なお、スクリプトプログラム140の中では、一般に用いられる方法で、署名による更新プログラムの正当性を確認することが望ましい。
***実施の形態の効果の説明***
本実施の形態では、処理実行装置100が、特別に書き込みモードでのファイルのオープン処理の権限が付与されたプログラムを示す権限情報129を管理している。このため、本実施の形態によれば、処理実行装置100が、特別な権限を与えたプログラムを実行しているプロセス130から要求される処理については、オープン処理の対象がどのファイルであるかに関わらず、書き込みモードでのファイルのオープン処理の実行を許可できるようになる。
また、本実施の形態では、処理実行装置100が、ハッシュ値による改竄のチェックを行わないので、プログラム131等を更新したときのハッシュ値の更新が不要となる。
***他の構成***
本実施の形態では、実施の形態1と同じように、「部」の機能がソフトウェアにより実現されるが、実施の形態1の変形例と同じように、「部」の機能がソフトウェアとハードウェアとの組み合わせにより実現されてもよい。
以上、本発明の実施の形態について説明したが、これらの実施の形態のうち、いくつかを組み合わせて実施しても構わない。或いは、これらの実施の形態のうち、いずれか1つ又はいくつかを部分的に実施しても構わない。具体的には、これらの実施の形態の説明において「部」として説明するもののうち、いずれか1つのみを採用してもよいし、いくつかの任意の組み合わせを採用してもよい。なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
100 処理実行装置、101 プロセッサ、102 ネットワークコントローラ、103 入力デバイス、104 表示デバイス、105 メモリ、106 補助記憶装置、110 実行部、111 プログラム起動処理、112 ライブラリロード処理、113 ファイルオープン処理、120 制御部、121 起動可否判断処理、122 ライブラリロード可否判断処理、123 ファイルオープン可否判断処理、124 ホワイトリスト、125 ファイルID、126 ファイルID、127 ファイルディスクリプタ、128 ファイルID、129 権限情報、130 プロセス、131 プログラム、132 ライブラリ、140 スクリプトプログラム。

Claims (9)

  1. プロセスから要求された処理を実行する実行部と、
    前記処理の対象が条件を満たしていれば、前記実行部に前記処理を実行させ、前記処理の対象が前記条件を満たしていなくても、前記処理の要求元のプロセスが、他のプログラムのファイルを参照して前記他のプログラムを実行しているプログラムに該当する場合は、前記処理の権限が付与されたプログラムを示す権限情報をメモリから読み取って、前記他のプログラムに前記処理の権限が付与されていれば、前記実行部に前記処理を実行させる制御部と
    を備える処理実行装置。
  2. 前記処理の要求元のプロセスは、前記他のプログラムとしてスクリプトプログラムを実行しているシェルであれば、前記他のプログラムのファイルを参照して前記他のプログラムを実行しているプログラムに該当する請求項1に記載の処理実行装置。
  3. 前記権限情報は、前記処理の権限が付与されたプログラムのファイルを識別するファイルIDであり、
    前記制御部は、前記処理の対象が前記条件を満たしていなくても、前記処理の要求元のプロセスが前記シェルである場合は、前記シェルが参照するファイルを示すファイルディスクリプタと前記権限情報とを参照し、前記ファイルディスクリプタで示されるファイルと前記権限情報で識別されるファイルとが一致していれば、前記実行部に前記処理を実行させる請求項2に記載の処理実行装置。
  4. 前記制御部は、前記処理の対象が前記条件を満たしていなくても、前記処理の要求元のプロセスと前記処理の要求元のプロセスの先祖プロセスとのいずれかに前記処理の権限が付与されていれば、前記実行部に前記処理を実行させる請求項1から3のいずれか1項に記載の処理実行装置。
  5. 前記処理は、前記処理の対象としてプログラムを起動する処理であり、
    前記条件は、前記処理により起動されるプログラムが前記メモリに記憶されたホワイトリストに登録されている場合に満たされる請求項1から4のいずれか1項に記載の処理実行装置。
  6. 前記処理は、前記処理の対象としてライブラリをロードする処理であり、
    前記条件は、前記処理によりロードされるライブラリが前記メモリに記憶されたホワイトリストに登録されている場合に満たされる請求項1から4のいずれか1項に記載の処理実行装置。
  7. 前記処理は、前記処理の対象としてファイルを書き込みモードでオープンする処理であり、
    前記条件は、前記処理によりオープンされるファイルが前記メモリに記憶されたホワイトリストに登録されていない場合に満たされる請求項1から4のいずれか1項に記載の処理実行装置。
  8. コンピュータが、プロセスから要求された処理の対象が条件を満たしていれば、前記処理を実行し、
    前記コンピュータが、前記処理の対象が前記条件を満たしていなくても、前記処理の要求元のプロセスが、他のプログラムのファイルを参照して前記他のプログラムを実行しているプログラムに該当する場合は、前記処理の権限が付与されたプログラムを示す権限情報をメモリから読み取って、前記他のプログラムに前記処理の権限が付与されていれば、前記処理を実行する処理実行方法。
  9. コンピュータに、
    プロセスから要求された処理の対象が条件を満たしていれば、前記処理を実行させ、
    前記処理の対象が前記条件を満たしていなくても、前記処理の要求元のプロセスが、他のプログラムのファイルを参照して前記他のプログラムを実行しているプログラムに該当する場合は、前記処理の権限が付与されたプログラムを示す権限情報をメモリから読み取らせて、前記他のプログラムに前記処理の権限が付与されていれば、前記処理を実行させる制御プログラム。
JP2016001092A 2016-01-06 2016-01-06 処理実行装置、処理実行方法及び制御プログラム Active JP6355657B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016001092A JP6355657B2 (ja) 2016-01-06 2016-01-06 処理実行装置、処理実行方法及び制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016001092A JP6355657B2 (ja) 2016-01-06 2016-01-06 処理実行装置、処理実行方法及び制御プログラム

Publications (2)

Publication Number Publication Date
JP2017123011A JP2017123011A (ja) 2017-07-13
JP6355657B2 true JP6355657B2 (ja) 2018-07-11

Family

ID=59306598

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016001092A Active JP6355657B2 (ja) 2016-01-06 2016-01-06 処理実行装置、処理実行方法及び制御プログラム

Country Status (1)

Country Link
JP (1) JP6355657B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109766191A (zh) * 2019-01-17 2019-05-17 山东中孚安全技术有限公司 一种单机伪分布式文件检查方法及系统
CN112269644B (zh) * 2020-10-16 2022-07-08 苏州浪潮智能科技有限公司 一种子进程调用的验证方法、系统、设备及可读存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007316780A (ja) * 2006-05-24 2007-12-06 Nec Corp 計算機システム、計算機及びそれらに用いるファイル操作限定方法並びにそのプログラム
JP6307956B2 (ja) * 2014-03-14 2018-04-11 三菱電機株式会社 情報処理装置及び情報処理方法

Also Published As

Publication number Publication date
JP2017123011A (ja) 2017-07-13

Similar Documents

Publication Publication Date Title
US11113404B2 (en) Securing operating system configuration using hardware
CN101681407B (zh) 用于恶意软件检测的可信操作环境
CN107533608B (zh) 可信更新
JP6559223B2 (ja) デバイス・ポリシー・マネージャ
JP5992457B2 (ja) オペレーティングシステムのコンフィグレーション値の保護
JP5745061B2 (ja) 起動プロセスの際の対話型コンポーネントの使用の認証
KR101492757B1 (ko) 애플리케이션 사용 정책 시행
US9600661B2 (en) System and method to secure a computer system by selective control of write access to a data storage medium
CN101681406A (zh) 用于恶意软件检测的可信操作环境
JP6072091B2 (ja) アプリケーション・プログラム用の安全なアクセス方法および安全なアクセス装置
KR102076878B1 (ko) 안티 멀웨어 프로세스를 보호하는 기법
CN102279760A (zh) 利用初始保护组件来进行设备引导
JPWO2007040228A1 (ja) 情報処理装置、情報処理方法およびプログラム
US11550899B2 (en) Systems and methods for hardening security systems using live patching
US20090119772A1 (en) Secure file access
EP3583536B1 (en) Securely defining operating system composition without multiple authoring
US7890756B2 (en) Verification system and method for accessing resources in a computing environment
TW201901515A (zh) 阻擋非授權應用程式方法以及使用該方法的裝置
CN114651253A (zh) 用于策略强制实施的虚拟环境类型验证
US9009855B2 (en) Generating developer license to execute developer application
JP6355657B2 (ja) 処理実行装置、処理実行方法及び制御プログラム
KR101265887B1 (ko) 보호 컴퓨팅 환경을 제공하는 방법 및 장치 내에 보호 환경을 설정하는 방법
TWI802040B (zh) 基於檔案屬性特徵之應用程式控管方法
Beningo Secure Application Design
Bakir et al. Using Face ID, Touch ID, and Keychain Services to Secure Your Apps

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170822

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180418

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180612

R150 Certificate of patent or registration of utility model

Ref document number: 6355657

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250