JP5591883B2 - 情報処理装置、プログラム - Google Patents

情報処理装置、プログラム Download PDF

Info

Publication number
JP5591883B2
JP5591883B2 JP2012163059A JP2012163059A JP5591883B2 JP 5591883 B2 JP5591883 B2 JP 5591883B2 JP 2012163059 A JP2012163059 A JP 2012163059A JP 2012163059 A JP2012163059 A JP 2012163059A JP 5591883 B2 JP5591883 B2 JP 5591883B2
Authority
JP
Japan
Prior art keywords
unit
execution
system call
request
information
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.)
Expired - Fee Related
Application number
JP2012163059A
Other languages
English (en)
Other versions
JP2014021930A (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 JP2012163059A priority Critical patent/JP5591883B2/ja
Priority to US13/946,054 priority patent/US20140026183A1/en
Publication of JP2014021930A publication Critical patent/JP2014021930A/ja
Application granted granted Critical
Publication of JP5591883B2 publication Critical patent/JP5591883B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30134Register stacks; shift registers
    • 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/461Saving or restoring of program or task context
    • G06F9/462Saving or restoring of program or task context with multiple register sets

Description

本発明の実施形態は、情報処理装置、プログラムに関する。
近年情報端末を利用する環境に応じて、情報端末の機能を制限することが要求されているが、その要求条件は利用する環境のセキュリティポリシーによって異なることが多く、柔軟に制限内容を変更できる必要がある。
米国特許出願公開第2004/0003137号明細書
しかしながら、カーネルにおいてシステムコールの実行許可又は不許可を判定するような設計の場合、システムコールの実行条件を様々な状況に対して詳細に対応できるように設定しようとすると、カーネル自体のソースコードを変更する必要があり、労力やメンテナンス性の観点から課題が残っていた。特に上述のように柔軟にセキュリティ制御の内容を変更したい場合には、カーネル自体のソースコードの変更を頻繁に行う必要が出てくるため、従来のカーネルのみでの実現ではコスト上の課題がある。
上述した課題を解決し、目的を達成するために、本発明の実施形態は、カーネル部と、前記システムコールの実行の許可又は不許可を決定する管理部と、を備える情報処理装置である。前記カーネル部は、アプリケーションからの前記システムコールの実行要求があった場合に、前記システムコールの識別情報と実行内容とが対応づけられた情報を含むシステムコール情報を記憶する要求記憶部と、前記システムコールの識別情報を前記管理部に対して通知する実行要求通知部と、前記管理部からの前記システムコールの実行のの許可又は不許可、及び実行保留を表す情報を取得する第2取得部と、前記実行の許可、又は不許可を表す情報を前記第2取得部が取得するまで前記システムコールの実行を保留する保留部と、前記システムコールを実行するシステムコール実行部と、を備える。
前記管理部は、前記実行要求通知部から通知された前記システムコールの識別情報に基づいて実行内容を前記要求記憶部から取得する第1取得部と、取得した前記実行内容を、所定の判定ルールに従って実行できるか否かを決定する実行判定部と、前記実行の許可又は不許可を前記カーネル部に送信する判定結果通知部と、を備える。そして、前記要求記憶部は、受信した前記実行の許可又は不許可に関する情報を、記憶された前記システムコールの識別情報と対応づけて記憶し、前記保留部は、前記第2取得部が取得した、前記要求記憶部に記憶された前記実行の許可又は不許可、及び実行保留に関する情報から、前記システムコールの実行の保留を解除するか否かを決定する。
本実施形態の情報処理装置の構成を示す図。 本実施形態の要求記憶部に記憶された実行要求のデータ例を示す図。 本実施形態のデフォルト動作を規定したデータの一例を示す図。 本実施形態のシステムコールの実行判定にかかる処理フロー図。 本実施形態の管理アプリケーションの登録にかかる処理フロー図。 本実施形態のシステムコールの実行を保留するまでの処理フロー図。 本実施形態のシステムコールの実行判定にかかる処理フロー図。 本実施形態のシステムコールの保留の解除にかかる処理フロー図。 本実施形態の管理アプリケーションの登録削除にかかる処理フロー図。
以下に、本発明にかかる情報処理装置を具体化した実施形態を図面に基づいて詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。
図1は、本実施形態の情報処理装置1の機能構成を示すブロック図である。図1に示されるように、情報処理装置1は、カーネル部10、管理アプリケーション30(管理部)、及びユーザアプリケーション40を備えている。カーネル部10は、デバイスやメモリ、プロセスの管理や、システムコールを受けて所定の機能をアプリケーションに対して提供する。管理アプリケーション30は、カーネル部10に対して要求されたシステムコールの実行の許可又は不許可を判定して、結果をカーネル部10に対して通知する。カーネル部10は、管理アプリケーション30による判定結果に基づいて、システムコールに対する処理を行う。ユーザアプリケーション40は、管理アプリケーション30以外のアプリケーションを総称するものである。
カーネル部10は、システムコール検出部11、要求記憶部12、要求通知部13、管理アプリ登録部14、保留部15、第2取得部16、システムコール実行部17、認証部18、デフォルト実行部19、タイムアウト検出部21、及びエラー通知部20を備えている。システムコール検出部11は、ユーザアプリケーション40のシステムコール発行部41からカーネル部10に対して要求されたシステムコールを検出する。システムコール検出部11は、検出したシステムコール情報を要求記憶部12と要求通知部13に送信する。
要求記憶部12は、検出されたシステムコール情報を記憶する。図2は要求記憶部12に記憶されたシステムコール情報のデータの形式の一例を示す図である。図2に示されるように、システムコール情報とは、システムコールの識別情報であるIDと実行内容とが対応づけられた情報を少なくとも含む情報をいう。例えば、検出されたシステムコールの識別情報であるIDや、readやwriteといった実行要求内容、要求元のプロセスの識別情報、管理アプリケーション30からの実行許可又は不許可の判定情報、要求記憶部12に記憶された日時、及び再送回数の項目が対応づけられた情報である。このように、システムコールの識別情報であるIDと実行内容とが対応づけられた情報以外の情報とが更に対応づけられていてもよい。実行許可又は不許可の情報は、システムコール検出部11から送信された時点では、「未通知」が記憶され、その後管理アプリケーション30からの実行許可又は不許可の通知を受けて更新される。また、再送回数とは、要求通知部13からシステムコール情報を管理アプリケーション30に送信した際に、所定の時間内に実行許可又は不許可の判定結果が返ってこずタイムアウトした場合などに再送処理がなされ、再送処理ごとに1ずつインクリメントされる。なお、再送処理がされた際に、登録日時も更新される。
要求通知部13は、管理アプリケーション30に対してシステムコールの識別情報を通知する。通知は、管理アプリ登録部14に記憶されている管理アプリケーション30を指定して行われる。管理アプリ登録部14は、例えば、管理アプリケーション30の起動時にカーネル部10に対して登録を要求する通知を受付け、認証部18によって、システムコール情報を通知する先のアプリケーションとして正しいものか認証した後に、管理アプリケーション30のプロセスの識別情報を登録する。認証には、管理アプリケーションの固有の情報が用いられ、例えばファイル名やファイルのハッシュ、実行ファイルのオーナー名、署名情報などである。これらの認証用の情報は予めカーネル部10にも記憶されており、管理アプリケーション30から通知された認証情報と、記憶された情報とが一致する場合に、管理アプリ登録部14は、管理アプリケーション30のプロセスの識別情報を登録する。なお、認証部18は必須の構成ではなく、問い合わせのあった管理アプリケーション30を登録するようにしてもよい。
保留部15は、システムコール情報が転送されてきた際に、システムコール実行部17によるシステムコールの実行を、管理アプリケーション30から実行許可又は不許可の通知があるまで保留する。実行の保留は、例えばコンテキストスイッチなどにより実現され、保留前のレジスタや、オペレーティングシステム固有の情報を保存しておく。第2取得部16は、要求記憶部12に管理アプリケーション30から通知されて記憶された実行許可又は不許可の情報を取得し、システムコールの実行許可又は不許可を判定する。保留部15は、第2取得部16が実行が許可されている、又は実行が許可されていないと判定した場合、すなわち実行許可又は不許可の通知が行われた場合に、システムコールの実行保留を解除する。第2取得部16は所定の時間以上、実行許可又は不許可に関する情報の通知がないかどうか判定するために、タイムアウト検出部21を呼び出す機能を有しても良い。
システムコール実行部17は、保留部15によって保留を解除されたシステムコールを実行する。システムコール実行部17はシステムコールの実行によって得られた結果をユーザアプリケーション40に通知する。また、デフォルト実行部19は、管理アプリケーション30が登録されていない場合にシステムコールが検出された場合に、予め登録されたデフォルト動作を実行する。図3は、実行要求内容ごとのデフォルト動作を規定したデータの一例である。例えば、実行内容がread(file1)の場合は、デフォルト動作は「許可」であるため、そのシステムコールは実行される。なお、「許可」される実行要求の一例としては、システムコールを実行してもセキュリティ上障害が発生しないような内容の場合などである。
タイムアウト検出部21は、登録日時欄の情報から前回管理アプリケーション30へとシステムコールの判定要求を通知してから所定の時間が経過しているか否かを判定する。所定の時間が経過している場合、タイムアウト検出部21は、要求通知部13を介して管理アプリケーション30にシステムコールの判定要求を再送する。また、タイムアウト検出部21は、要求通知部13による判定要求の再送回数が予め定めた再送限度回数を越えた場合にデフォルト実行部19を呼び出す。なお、タイムアウト検出部21は必須の構成ではない。
エラー通知部20は、システムコールの実行が管理アプリケーション30により実行不許可と判定された場合など、何らかの理由によりできないと判定された場合に、その旨をユーザアプリケーション40へと通知する。
管理アプリケーション30は、要求受信部31、第1取得部32、実行判定部33、判定結果通知部34、及び起動通知部35を備えている。要求受信部31は、カーネル部10から通知されたシステムコールの識別情報を受信し、第1取得部32へと転送する。第1取得部32は、要求記憶部12を参照し、システムコールの識別情報を用いて該当するシステムコールの要求内容を取得する。取得されたシステムコールの要求内容は、実行判定部33により実行の許可又は不許可が判定される。実行の許可又は不許可の判定にあたっては、管理アプリケーション30内に、判定ルールを規定した記憶部を設けてもよいし、ネットワークを通じて別の装置から取得するようにしてもよい。判定結果通知部34は、実行判定部33で判定したシステムコールの実行許可又は不許可の判定結果をシステムコールの識別情報とともに要求記憶部12へと通知する。要求記憶部12は、通知されたシステムコールの識別情報と実行許可又は不許可の判定結果で実行許可又は不許可の情報を更新する。
次いで、本実施形態のシステムコールの処理の流れを図4を用いて説明する。図4に示されるように、まず管理アプリケーション30は、起動時にカーネル部10の管理アプリ登録部14にオープン要求、すなわちアプリの登録要求を送信する(ステップS101)。管理アプリ登録部14は、登録の結果を管理アプリケーション30へと返信する(ステップS102)。
また、ユーザアプリケーション40は、システムコール発行部41からシステムコールをカーネル部10に向けて発行する(ステップS103)。カーネル部10の要求通知部13は、実行許可又は不許可の判定を管理アプリケーション30に対し、システムコールの識別情報を指定して送信する(ステップS104)。管理アプリケーション30の第1取得部32は、識別情報を指定して、システムコールの内容をカーネル部10の要求記憶部12に対して取得要求する(ステップS105)。カーネル部10の要求記憶部12は、指定された識別情報で特定されるシステムコール実行要求内容と、要求元のプロセス名を管理アプリケーション30へと返信する(ステップS106)。そして、管理アプリケーション30は、判定結果を返信し、カーネル部10の要求記憶部12の該当するシステムコールの実行要求の情報を更新する(ステップS107)。カーネル部10は、システムコールの実行結果、もしくは実行失敗した場合のエラー通知をユーザアプリケーション40へと通知する(ステップS108)。最後に、管理アプリケーション30は、カーネル部10に対して、ダウン時などに管理アプリ登録部14のクローズ要求、すなわちアプリの登録からの削除要求を送信する(ステップS109)。
次に、図5を参照して管理アプリケーションの登録にかかる処理を詳細に説明する。図5に示されるように、起動通知部35は管理アプリケーションのオープン要求をカーネル部10に送信する(ステップS201)。管理アプリ登録部14は、オープン要求を検知すると(ステップS202)、管理アプリケーションのプロセス固有情報、すなわち管理アプリケーションのファイル名や、ファイルのハッシュなどの情報を取得する(ステップS203)。
そして、認証部18は、カーネル部10に予め記憶されている想定情報と、管理アプリケーション30から取得したプロセス固有情報とが一致するか否かを判定する(ステップS204)。一致する場合(ステップS204:Yes)、管理アプリ登録部14は、管理アプリケーション30を登録して処理を終了する(ステップS205)。一方、一致しない場合(ステップS204:No)、管理アプリ登録部14は、管理アプリケーション30に対して登録できなかった旨のエラー通知を行う(ステップS206)。なお、ステップS203からステップS204およびステップS206の処理は必須ではない。
次いで、図6を参照し、システムコールの検出からシステムコールの実行保留にかかるまでの処理の流れを説明する。本処理はカーネル部10内において行われる。図6に示されるように、システムコール発行部41からシステムコールが発行されると(ステップS301)、カーネル部10のシステムコール検出部11においてシステムコールが検出される(ステップS302)。次いで、システムコール検出部11は、システムコールが実行の許可又は不許可を管理アプリケーション30へ問い合わせする対象の処理であるか否かを判別する(ステップS303)。実行許可又は不許可を問い合わせする対象であるか否かは、システムコールの内容によって予め決めることができ、例えばWi−Fiの接続要求の場合は問い合わせを除外するなどの設定が可能である。なお、ステップS303の処理は必須ではない。
管理アプリケーション30への問い合わせを行う対象の処理であると判定された場合(ステップS303:Yes)、次いでシステムコールの要求元が管理アプリケーション30であるか否かが判定される(ステップS304)。すなわち、要求元が管理アプリケーション30である場合は、当然に管理アプリケーション30に実行の許可又は不許可を問い合わせする必要がないため、問い合わせ対象から除外される。実行の許可又は不許可の問い合わせ対象でない場合(ステップS303:No)、又は要求元が管理アプリケーション30である場合(ステップS304:Yes)、システムコール実行部17は、システムコールを実行して処理を終了する(ステップS312)。
一方、要求元が管理アプリケーション30でない場合(ステップS304:No)、管理アプリ登録部14は、管理アプリケーション30が登録済みであるか否かを判定する(ステップS305)。管理アプリケーション30が登録済みであると判定された場合(ステップS305:Yes)、要求記憶部12は、システムコールの実行要求のデータを登録する(ステップS306)。登録内容は、システムコールの識別情報、実行要求内容、要求元、登録日時である。また、実行の許可又は不許可の情報は、「未送信」となる。次いで、要求通知部13は、システムコールの識別情報を指定して管理アプリケーション30に判定要求を行う(ステップS307)。そして、保留部15は、システムコールの実行保留をして、処理を終了する(ステップS308)。なお、ステップS304の処理は必須ではない。
一方、管理アプリケーション30が登録済みでないと判定された場合(ステップS305:No)、デフォルト実行部19はデフォルト動作を取得する(ステップS309)。そして、デフォルト実行部19は取得したデフォルト動作からシステムコールの要求内容の実行が許可されているか否かを判定する(ステップS310)。実行が許可されている場合(ステップS310:Yes)、デフォルト実行部19は、システムコールの実行要求を実行して処理を終了する(ステップS312)。一方、実行が許可されていない場合(ステップS301:No)、エラー通知部20は、ユーザアプリケーション40に対してエラー通知を行う(ステップS311)。
次いで、図7を参照して、管理アプリケーション30におけるシステムコールの実行が許可又は不許可の判定にかかる処理について詳細に説明する。要求受信部31が、カーネル部10からのシステムコールの実行判定要求を受信すると(ステップS401)、第1取得部32は、受信したシステムコールの識別情報をキーとして、要求記憶部12に該当する実行要求の内容を問い合わせる(ステップS402)。次いで、要求記憶部12は、問い合わせのあった識別情報が正しいIDであるか否か、すなわち要求記憶部12に記憶されているかを判定する(ステップS403)。問い合わせのあった識別情報が正しいIDであると判定された場合(ステップS403:Yes)、次いで要求記憶部12は、問い合わせのあった管理アプリケーション30が登録されたアプリケーションであるかを判定する(ステップS404)。問い合わせのあった識別情報が正しいIDでないと判定された場合(ステップS403:No)、又は問い合わせのあった管理アプリケーション30が登録されたアプリケーションでなかったと判定された場合(ステップS404:No)、要求記憶部12は管理アプリケーション30に対してエラー通知をして処理を終了する(ステップS411)。
一方、問い合わせのあった管理アプリケーション30が登録されたアプリケーションであると判定された場合(ステップS404:Yes)、要求記憶部12は、実行要求の内容を第1取得部32へと送信する(ステップS405)。実行判定部33は、問い合わせた実行要求の情報を元に、実行の許可又は不許可を判定し(ステップS406)、判定結果通知部34は実行許可又は不許可の通知を要求記憶部12に行う(ステップS407)。
要求記憶部12は、通知のあった管理アプリケーション30の識別情報が正しいIDであるか否か、すなわち要求記憶部12に記憶されているかを判定する(ステップS408)。通知のあった識別情報が正しいIDであると判定された場合、次いで要求記憶部12は、通知のあった管理アプリケーション30が登録されたアプリケーションであるかを判定する(ステップS409)。通知のあった識別情報が正しいIDでないと判定された場合(ステップS408:No)、又は通知のあった管理アプリケーション30が登録されたアプリケーションでなかったと判定された場合(ステップS409:No)、要求記憶部12は管理アプリケーション30に対してエラー通知をして処理を終了する(ステップS411)。
通知のあった管理アプリケーション30が登録されたアプリケーションであると判定された場合(ステップS409:Yes)、要求記憶部12は、通知された実行の許可又は不許可についての情報に基づき、該当する実行要求の情報を更新し、処理を終了する(ステップS410)。
次に、図8を参照し、システムコールの保留の解除にかかる処理の流れについて説明する。図8に示されるように、本処理はプロセス切替要求が検出されるごとに開始される(ステップS501)。プロセス切替要求は、明示的に切替命令が出されることで行われることもあるし、タイマー割り込みにより定期的に呼び出されて行われることもある。第2取得部16は、要求記憶部12から切り替えられたプロセスの識別情報に要求元のプロセス名が一致するシステムコールの情報を取得する(ステップS502)。そして、第2取得部16は、切替された現在のプロセスのシステムコールの実行が保留中であるか否か、すなわち現在のプロセスの識別情報と一致する要求元のプロセス名が要求記憶部12に記憶されているか否かを判定する(ステップS503)。切替された現在のプロセスのシステムコールの実行が保留中でないと判定された場合(ステップS503:No)、処理を終了する。
一方、切替された現在のプロセスのシステムコールの実行が保留中であると判定された場合(ステップS503:Yes)、第2取得部16は、要求記憶部12の該当するプロセスの実行許可又は不許可の通知の情報を取得する(ステップS504)。次いで、第2取得部16は、取得した許可又は不許可の通知欄の情報が「通知済(実行不許可)」であるか否かを判定する(ステップS505)。取得した許可又は不許可の通知欄の情報が「通知済(実行不許可)」であると判定された場合(ステップS505:Yes)、保留部15はシステムコールの保留を解除し、エラー通知部20は、要求元のユーザアプリケーション40に対してエラー通知を行い(ステップS516)、次いで、要求記憶部12は、該当する実行要求のデータを削除して処理を終了する(ステップS515)。
一方、取得した許可又は不許可の通知欄の情報が「通知済(実行不許可)」でないと判定された場合(ステップS505:No)、取得した許可又は不許可の通知欄の情報が「通知済(実行許可)」であるか否かを判定する(ステップS506)。取得した許可又は不許可の通知欄の情報が「通知済(実行許可)」であると判定された場合(ステップS506:Yes)、保留部15はシステムコールの保留を解除し、システムコール実行部17がシステムコールを実行する(ステップS514)。次いで、要求記憶部12は、該当する実行要求のデータを削除して処理を終了する(ステップS515)。
取得した許可又は不許可の通知欄の情報が「通知済(実行可)」でないと判定された場合(ステップS506:No)、第2取得部16は、管理アプリケーション30のプロセスが有効に存在しているか否かを判定する(ステップS507)。管理アプリケーション30のプロセス情報は、要求記憶部12に記憶されていてもよいし、他の記憶部に記憶されていてもよい。管理アプリケーション30のプロセスが有効でないと判定された場合(ステップS507:No)、デフォルト実行部19は、デフォルト動作を取得し(ステップS512)、取得したデフォルト動作から、切替えられたプロセスの実行要求が許可か、不許可かいずれであるかを判定する(ステップS513)。不許可であると判定された場合(ステップS513:No)、エラー通知部20は、要求元のユーザアプリケーション40に対してエラー通知を行い(ステップS516)、次いで、要求記憶部12は、該当する実行要求のデータを削除して処理を終了する(ステップS515)。一方、許可であると判定された場合(ステップS513:Yes)、保留部15はシステムコールの保留を解除し、システムコール実行部17がシステムコールを実行する(ステップS514)。次いで、要求記憶部12は、該当する実行要求のデータを削除して処理を終了する(ステップS515)。
一方、管理アプリケーション30のプロセスが有効に存在していると判定された場合(ステップS507:Yes)、タイムアウト検出部21は、登録日時欄の情報から前回管理アプリケーション30へとシステムコールの判定要求を通知してから所定の時間が経過しているか否かを判定する(ステップS508)。所定の時間が経過していないと判定された場合(ステップS508:No)、処理は終了する。
一方、所定の時間が経過していると判定された場合(ステップS508:Yes)、タイムアウト検出部21は、該当するプロセスの再送回数が予め定められた再送限度回数より大きいか否かを判定する(ステップS509)。再送限度回数より大きいと判定された場合(ステップS509:Yes)、すなわち管理アプリケーション30側における実行許可又は不許可の判定にかかる処理が何らかの原因で出来なくなっていることが考えられるため、ステップS513からのデフォルト実行部19による処理に移行する。
再送限度回数未満であると判定された場合(ステップS509:No)、要求通知部13は、システムコールの実行許可又は不許可の判定要求を管理アプリケーション30へと再送する(ステップS510)。また、要求記憶部12は、再送回数の値を1インクリメントするとともに登録日時の情報を現在時刻に更新する(ステップS511)。
次に、システムコール実行後の管理アプリケーション30のクローズにかかる処理を図9を参照して説明する。図9に示されるように、管理アプリケーション30は、管理アプリ登録部14に対してクローズ要求を送信する(ステップS601)。管理アプリ登録部14は、クローズ要求を検出すると(ステップS602)、管理アプリケーション30のプロセス情報を認証部18から削除する(ステップS603)。
以上に示した本実施形態の情報処理装置1においては、カーネル部10と、システムコールの実行判定を行う管理アプリケーション30とを別に設ける構成としたため、それぞれのプログラムを個別に設計することができ、設計の自由度を高めることができる。また、管理アプリケーション30は、起動時にそのプロセス情報が認証した後にカーネル部10に登録され、カーネル部10においては登録済みのプロセスの管理アプリケーション30の実行許可又は不許可の判定結果のみを正常な情報として扱うようにしたため、異なるアプリケーション間の通信プロトコルを悪用して、不正な処理を行うことを防ぐことができる。
また、管理アプリケーションのプロセス情報が登録されていない場合に、予めデフォルトで許可するシステムコールの実行要求の内容を定義することで、処理の自由度を高めることができる。さらには、システムコールの実行要求に対する判定のルールを、ネットワークを通じて外部のサーバなどと通信して更新するようにすれば、アップデートが容易になり保守コストを抑えることができるようになる。
なお、上記の各実施の形態の情報処理装置におけるカーネル部、及び管理アプリケーションの機能はプログラムとして提供してもよい。その場合、プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
また、プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、プログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
また、プログラムを、ROM等に予め組み込んで提供するように構成してもよい。
ただし、生成部、及び転送指示部をプログラムとして提供した場合、実際のハードウェアとしてはCPU(プロセッサ)とは異なる電子回路やプロセッサによって記憶媒体からプログラムを読み出して実行することにより各部が主記憶部上にロードされ、生成部、及び転送指示部が主記憶部上に生成されるようになっている。
ここで、上述の実施形態に係る発明の利用場面について以下に説明する。情報処理装置に搭載されるソフトウェアは、基盤となるオペレーティングシステムと、その上で動作する各種のアプリケーションプログラムから構成される。情報処理装置に記憶されたデータは、オペレーティングシステムがファイルとして管理する。アプリケーションプログラムがメモリやHDD上のデータをアクセス(読み出し(read)、および、書き込み(write)など)するときは、オペレーティングシステムに対してファイルの操作(ファイルの作成、書き込み、読み出し、および、削除など)を依頼するシステムコールを発行する。オペレーティングシステムの中でファイルの管理をする部分を、ファイルシステムと呼ぶ場合もある。
一方、タブレットやスマートフォンなどのモバイルで利用する情報端末が増加するにしたがって、端末内のソフトウェアは、従来のように単一のサプライヤーから提供され、事前にインストールされたものから、アプリケーションを追加でインストールし、ユーザーが自由にカスタマイズをすることができるように変化してきている。システムコールなどのイベント発生に対する実行を許可するか否かを行う制御は、カーネルといわれる部分に集約されていたが、Android(登録商標)などのサードパーティー用のオペレーション開発環境が整っていくに従って、イベント処理にかかる構成が、機能ごとに独立した別の組織により制作、及び流通されるようになってきている。
特に、タブレットやスマートフォンなどのモバイル端末をビジネス用途で利用しようとした場合、各企業のポリシーごとに端末の機能を制限する事が求められる。たとえば、ある企業ではタブレットに格納した情報の漏洩を防止するため、端末と外付けのUSBメモリやSDカードなどの外部ストレージ機器の接続を禁止する事が求められる。また、別の企業では外部ストレージ機器の接続は許可するが端末とBluetooth(登録商標)機器の接続を禁止する事が求められるなど、その要求条件は各企業のセキュリティポリシーによって異なることが多く、柔軟に制限内容を変更できる必要がある。このような状況で、柔軟にセキュリティ制御の内容を変更したい場合には、カーネル自体のソースコードの変更を頻繁に行う必要が出てくるため、従来のカーネルのみでの実現ではコスト上の課題があるが、本実施の形態に係る発明はこの課題を解決することができる。
以上に、本発明の実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 情報処理装置
10 カーネル部
11 システムコール検出部
12 要求記憶部
13 要求通知部
14 管理アプリ登録部
15 保留部
16 第2取得部
17 システムコール実行部
18 認証部
19 デフォルト実行部
20 エラー通知部
21 タイムアウト検出部
30 管理アプリケーション
31 要求受信部
32 第1取得部
33 実行判定部
34 判定結果通知部
35 起動通知部
40 ユーザアプリケーション
41 システムコール発行部

Claims (6)

  1. カーネル部と、
    前記システムコールの実行の可否を決定する管理部と、を備え、
    前記カーネル部は、
    アプリケーションからの前記システムコールの実行要求があった場合に、前記システムコールの識別情報と実行内容とが対応づけられた情報を含むシステムコール情報を記憶する要求記憶部と、
    前記システムコールの識別情報を前記管理部に対して通知する要求通知部と、
    前記システムコールの実行の可否、及び実行保留を表す情報を前記管理部から取得する第2取得部と、
    前記実行が許可、又は不許可である旨を表す情報を前記第2取得部が取得するまで前記システムコールの実行を保留する保留部と、
    前記システムコールを実行するシステムコール実行部と、
    を備え、
    前記管理部は、
    前記要求通知部から通知された前記システムコールの識別情報に基づいて前記実行内容を前記要求記憶部から取得する第1取得部と、
    取得した前記実行内容を、所定の判定ルールに従って実行できるか否かを決定する実行判定部と、
    前記実行の可否を前記カーネル部に送信する判定結果通知部と、
    を備え、
    前記要求記憶部は、受信した前記実行の可否を表す情報を、記憶された前記システムコールの識別情報と対応づけて記憶し、
    前記保留部は、前記第2取得部が取得した、前記要求記憶部に記憶された前記実行の可否、及び実行保留を表す情報から、前記システムコールの実行の保留を解除するか否かを決定し、
    前記システムコール実行部は、前記システムコールの実行の保留が解除された場合に、解除された前記システムコールを実行する
    ことを特徴とする情報処理装置。
  2. 前記情報処理装置の起動時に前記管理部を認証する認証部と、
    認証した前記管理部の識別情報を登録する登録部と、
    を更に備えることを特徴とする請求項1に記載の情報処理装置。
  3. 前記カーネル部は、
    前記実行が許可もしくは不許可である旨を表す情報が所定の時間前記管理部から通知されていないことを検知し、再送回数が所定の回数以下の場合には前記要求通知部に再度前記実行要求を再送させるタイムアウト検出部と、
    前記再送回数が、前記所定の回数を超えた場合、又は登録された前記管理部が存在しない場合に、予め定めたデフォルト動作を取得し、前記デフォルト動作に基づいて前記システムコールを実行するデフォルト実行部と、
    を更に備えることを特徴とする請求項1に記載の情報処理装置。
  4. 前記カーネル部は、
    前記管理部の動作状況を確認し、前記動作状況が異常状態の場合には、予め定めたデフォルト動作を取得し、前記デフォルト動作に基づいて前記システムコールを実行するデフォルト実行部、
    を更に備えることを特徴とする請求項1に記載の情報処理装置。
  5. 前記システムコール実行部は、前記管理部からの前記システムコールに対しては、前記管理部における実行の可否の判定を行うことなく、前記システムコールを実行する
    ことを特徴とする請求項1に記載の情報処理装置。
  6. 要求記憶部を備えるコンピュータを、
    カーネル部と、
    前記システムコールの実行の可否を決定する管理部と、として機能させるためのプログラムであって、
    カーネル部は、
    アプリケーションからの前記システムコールの実行要求があった場合に、前記システムコールの識別情報と実行内容とが対応づけられた情報を含むシステムコール情報を記憶する要求記憶部と、
    前記システムコールの識別情報を前記管理部に対して通知する要求通知部と、
    前記システムコールの実行の可否、及び実行保留を表す情報を前記管理部から取得する第2取得部と、
    前記実行が許可、又は不許可である旨を表す情報を前記第2取得部が取得するまで前記システムコールの実行を保留する保留部と、
    前記システムコールを実行するシステムコール実行部と、
    を備え、
    前記管理部は、
    前記要求通知部から通知された前記システムコールの識別情報に基づいて前記実行内容を前記要求記憶部から取得する第1取得部と、
    取得した前記実行内容を、所定の判定ルールに従って実行できるか否かを決定する実行判定部と、
    前記実行の許可又は不許可を前記カーネル部に送信する判定結果通知部と、
    を備え、
    前記要求記憶部は、受信した前記実行の許可又は不許可を表す情報を、記憶された前記システムコールの識別情報と対応づけて記憶し、
    前記保留部は、前記第2取得部が取得した、前記要求記憶部に記憶された前記実行の許可又は不許可、及び実行保留を表す情報から、前記システムコールの実行の保留を解除するか否かを決定し、
    前記システムコール実行部は、前記システムコールの実行の保留が解除された場合に、解除された前記システムコールを実行する
    プログラム。
JP2012163059A 2012-07-23 2012-07-23 情報処理装置、プログラム Expired - Fee Related JP5591883B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012163059A JP5591883B2 (ja) 2012-07-23 2012-07-23 情報処理装置、プログラム
US13/946,054 US20140026183A1 (en) 2012-07-23 2013-07-19 Information processing device and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012163059A JP5591883B2 (ja) 2012-07-23 2012-07-23 情報処理装置、プログラム

Publications (2)

Publication Number Publication Date
JP2014021930A JP2014021930A (ja) 2014-02-03
JP5591883B2 true JP5591883B2 (ja) 2014-09-17

Family

ID=49947687

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012163059A Expired - Fee Related JP5591883B2 (ja) 2012-07-23 2012-07-23 情報処理装置、プログラム

Country Status (2)

Country Link
US (1) US20140026183A1 (ja)
JP (1) JP5591883B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170149826A1 (en) * 2014-12-22 2017-05-25 Appdome Ltd. System For Data Protection In An Emplyee Private Mobile Devices
JP6459637B2 (ja) * 2015-03-02 2019-01-30 日本電気株式会社 情報処理装置、情報処理方法及びプログラム
JP6462521B2 (ja) * 2015-07-31 2019-01-30 株式会社日立超エル・エス・アイ・システムズ 通常部の故障が安全部へ伝播することを防止するapi及びその処理部
JP7446544B1 (ja) 2023-07-05 2024-03-08 三菱電機株式会社 情報処理装置、および、情報処理方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100545828C (zh) * 1993-07-30 2009-09-30 佳能株式会社 控制连接到网络的网络设备的控制设备及其控制方法
US7136645B2 (en) * 1998-10-09 2006-11-14 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US7690023B2 (en) * 2001-12-13 2010-03-30 Japan Science And Technology Agency Software safety execution system
US7383587B2 (en) * 2002-11-18 2008-06-03 Arm Limited Exception handling control in a secure processing system
US7634807B2 (en) * 2003-08-08 2009-12-15 Nokia Corporation System and method to establish and maintain conditional trust by stating signal of distrust
EP2194456A1 (en) * 2008-12-05 2010-06-09 NTT DoCoMo, Inc. Method and apparatus for performing a file operation
GB2482701C (en) * 2010-08-11 2018-12-26 Advanced Risc Mach Ltd Illegal mode change handling

Also Published As

Publication number Publication date
US20140026183A1 (en) 2014-01-23
JP2014021930A (ja) 2014-02-03

Similar Documents

Publication Publication Date Title
JP6412140B2 (ja) リモートリソースへのアクセスを確実に許可すること
JP5591883B2 (ja) 情報処理装置、プログラム
JP5631940B2 (ja) 情報処理装置、方法、プログラム
JP6613653B2 (ja) 中継装置、通信制御方法、及び通信制御システム
JP6433141B2 (ja) 画像形成システム及び情報処理方法
US20070061867A1 (en) Information processing apparatus, method and computer product for controlling activation of application
JP2008065459A (ja) 情報処理装置、周辺装置、およびプログラム
JP2008250930A (ja) データ利用制限システム、ユーザ情報管理装置、データ利用判定装置及び移動機並びにデータ利用制限方法
US20140156952A1 (en) Information processing apparatus, information processing method, and computer readable medium
CN106982428B (zh) 一种安全配置方法,安全控制装置及安全配置装置
US20160006742A1 (en) Information processing apparatus and control method thereof
US20150154510A1 (en) Electronic device
JP2014002518A (ja) 携帯端末、プログラム、及び制御方法。
JP2022535658A (ja) ユーザデバイスの遠隔管理
JP5843552B2 (ja) 情報フロー制御プログラム
JP6522906B2 (ja) 情報処理システム、画像形成装置、設定状態管理方法及び設定状態管理プログラム
JP2015106236A (ja) 情報処理装置及びユーザ認証方法
JP6091854B2 (ja) 情報処理装置および制御方法
JP2015162235A (ja) 認証システム
JP2015225475A (ja) アクセス管理システム及びプログラム
JP5770329B2 (ja) 端末認証システム、端末認証方法、サーバ、及び、プログラム
JP6084916B2 (ja) データ送出制限方法、データ送出制限装置及びデータ送出制限プログラム
JP2010102410A (ja) 入退場管理装置及び情報通信端末
JP6039998B2 (ja) 情報処理装置、情報処理方法
JP5799638B2 (ja) 情報処理端末装置及び該端末装置に用いられる情報処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140625

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140730

LAPS Cancellation because of no payment of annual fees