(57)【要約】      （修正有）【課題】コンピュータの再起動やログオンなどを行うことなく、コンピュータのセキュリティモードを状況に応じた様々な内容に変更可能な情報漏洩防止装置、及び情報漏洩防止プログラムを提供する。【解決手段】情報漏洩防止装置１の切替条件記憶部３１は、切替条件毎に切替モードを記憶する。設定モード記憶部３２は、情報漏洩防止装置１に設定されたモードを記憶する。実行プログラム１１から特定種類のＡＰＩ４０の呼び出し処理が行われたとき、横取り処理部１２は、処理を横取りして切替条件を参照する。そして、実行プログラム１１が実行しようとする内容と一致する条件が存在する場合、対応する切替モードを取得する。モード切替部２０は、取得された切替モードを設定モード記憶部３２に記憶させることにより、情報漏洩防止装置１におけるセキュリティモードを設定する。【選択図】図１
2019079289.tif 000002
【特許請求の範囲】
【請求項１】
セキュリティのモードを変更することにより情報の漏洩を防止する情報漏洩防止装置であって、
前記モードを切り替える条件毎に対応するモードを記憶する切替条件記憶部と、
モードの切替により設定するモードを記憶する設定モード記憶部と、
アプリケーションプログラムから特定種類のアプリケーションプログラムインタフェースの呼び出し処理が行われたとき、前記呼び出し処理を横取りし、前記切替条件記憶部の切替条件を参照して、前記アプリケーションプログラムが実行しようとする内容と一致する条件が存在する場合、当該条件に対応するモードを取得する横取り処理部と、
前記横取り処理部から前記モードを取得して、前記設定モード記憶部に設定するモード切替部と、を備え、
前記横取り処理部は、アプリケーションプログラムから前記特定種類と同一又は異なる所定のアプリケーションプログラムインタフェースの呼び出し処理が行われたとき、前記呼び出し処理を横取りし、前記設定モード記憶部を参照して、当該モードに対応するモード内容にしたがって、前記アプリケーションプログラムインタフェースによる処理を許可又は禁止することによって、当該情報漏洩防止装置の内部における動作の制御、及び／又は、当該情報漏洩防止装置の外部に対する動作の制御を行う
ことを特徴とする情報漏洩防止装置。
【請求項２】
前記横取り処理部が、各種ＯＳにおけるＡＰＩフック、及び／又は、ＤＬＬインジェクションであることを特徴とする請求項１記載の情報漏洩防止装置。
【請求項３】
前記特定種類のアプリケーションプログラムインタフェースが、特定のファイルへのアクセス、特定のネットワークへのアクセス、又は、特定のファイルサーバへのアクセスを行うものである
ことを特徴とする請求項１又は２記載の情報漏洩防止装置。
【請求項４】
前記モード切替部が、ユーザにより入力されたモード切替指示情報、特定のアプリケーションプログラムを起動することを示す情報、又は、ユーザ認証に成功したことを示す情報の入力にもとづいて、モードの切替により設定するモードを前記設定モード記憶部に記憶させる
ことを特徴とする請求項１〜３のいずれかに記載の情報漏洩防止装置。
【請求項５】
前記横取り処理部として前記ＡＰＩフックが、前記アプリケーションプログラムごとに二以上備えられると共に、前記ＡＰＩフックにそれぞれ対応する二以上で別個のセキュリティ記憶部が備えられ、
前記セキュリティ記憶部にはセキュリティの内容が記憶され、
前記アプリケーションプログラムに対して使用される前記ＡＰＩフックが設定されており、
全ての前記ＡＰＩフックが順次実行されて、前記アプリケーションプログラムに対して使用される前記ＡＰＩフックのみが、対応する前記セキュリティ記憶部から前記セキュリティ内容を取得して、
当該ＡＰＩフックにより、前記セキュリティ内容にしたがって前記アプリケーションプログラムインタフェースによる処理が許可又は禁止される
ことを特徴とする請求項２〜４のいずれかに記載の情報漏洩防止装置。
【請求項６】
前記横取り処理部として前記ＤＬＬインジェクションが、前記アプリケーションプログラムごとに備えられると共に、二以上で別個のセキュリティ記憶部が備えられ、
前記セキュリティ記憶部にはセキュリティの内容が記憶され、
前記アプリケーションプログラムに対して使用されるセキュリティが設定されており、
前記ＤＬＬインジェクションが実行されて、前記アプリケーションプログラムに対応する前記セキュリティの内容を前記セキュリティ記憶部から取得して、
当該ＤＬＬインジェクションにより、前記セキュリティの内容にしたがって前記アプリケーションプログラムインタフェースによる処理が許可又は禁止される
ことを特徴とする請求項２〜５のいずれかに記載の情報漏洩防止装置。
【請求項７】
前記情報漏洩防止装置の内部における動作の制御が、当該情報漏洩防止装置における、ハードディスクドライブに対する書き込み禁止、デスクトップに対する書き込み禁止、及び／又は、特定のアプリケーションの起動禁止である
ことを特徴とする請求項１〜６のいずれかに記載の情報漏洩防止装置。
【請求項８】
前記情報漏洩防止装置の外部に対する動作の制御が、特定のネットワークへのアクセス禁止、特定のファイルサーバへのアクセス禁止、特定のデバイスへのアクセス禁止、及び／又は、特定の出力機器へのアクセス禁止である
ことを特徴とする請求項１〜７のいずれかに記載の情報漏洩防止装置。
【請求項９】
セキュリティのモードを変更することによりコンピュータからの情報の漏洩を防止するための情報漏洩防止プログラムであって、
前記モードを切り替える条件毎に対応するモードを記憶する切替条件記憶部と、モードの切替により設定するモードを記憶する設定モード記憶部とを備えたコンピュータに、
アプリケーションプログラムから特定種類のアプリケーションプログラムインタフェースの呼び出し処理が行われたとき、前記呼び出し処理を横取りさせ、前記切替条件記憶部の切替条件を参照させて、前記アプリケーションプログラムが実行しようとする内容と一致する条件が存在する場合、当該条件に対応するモードを取得させ、
前記設定モード記憶部に設定させ、
アプリケーションプログラムから前記特定種類と同一又は異なる所定のアプリケーションプログラムインタフェースの呼び出し処理が行われたとき、前記呼び出し処理を横取りさせ、前記設定モード記憶部を参照させて、当該モードに対応するモード内容にしたがって、前記アプリケーションプログラムインタフェースによる処理を許可又は禁止することによって、当該情報漏洩防止装置の内部における動作の制御、及び／又は、当該情報漏洩防止装置の外部に対する動作の制御を行わせる
ことを実行させるための情報漏洩防止プログラム。
【請求項１０】
ＡＰＩフックが、前記アプリケーションプログラムごとに二以上備えられると共に、セキュリティの内容を記憶する、前記ＡＰＩフックにそれぞれ対応する二以上で別個のセキュリティ記憶部をさらに備え、かつ前記アプリケーションプログラムに対して使用される前記ＡＰＩフックが設定されている前記コンピュータに、
全ての前記ＡＰＩフックを順次実行させて、前記アプリケーションプログラムに対して使用される前記ＡＰＩフックのみに、対応する前記セキュリティ記憶部から前記セキュリティの内容を取得させ、
当該ＡＰＩフックにより、前記セキュリティの内容にしたがって前記アプリケーションプログラムインタフェースによる処理を許可又は禁止させる
ことを実行させるための請求項９記載の情報漏洩防止プログラム。
【請求項１１】
ＤＬＬインジェクションが、前記アプリケーションプログラムごとに備えられると共に、セキュリティの内容を記憶する二以上で別個のセキュリティ記憶部をさらに備え、かつ前記アプリケーションプログラムに対して使用されるセキュリティが設定されている前記コンピュータに、
前記ＤＬＬインジェクションを実行させて、前記アプリケーションプログラムに対応する前記セキュリティの内容を前記セキュリティ記憶部から取得させ、
当該ＤＬＬインジェクションにより、前記セキュリティの内容にしたがって前記アプリケーションプログラムインタフェースによる処理を許可又は禁止させる
ことを実行させるための請求項９又は１０記載の情報漏洩防止プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータからの情報の漏洩防止技術に関する。
【背景技術】
【０００２】
コンピュータの振る舞いは，セキュリティの観点から制限される場合がある。例えば、外部メディア、ネットワーク、又は出力機器へのアクセス、実行できるプログラムの種類、ファイルが書き込み可能な場所等につき、制限される場合がある。このコンピュータの振る舞いを制限する基準を本明細書においてセキュリティポリシーと称し、セキュリティポリシーが適用されたコンピュータの状態をセキュリティモードと称する。
通常、セキュリティポリシーは、使用中のコンピュータにおいて一種類のみが適用され、異なるセキュリティポリシーを適用する場合には、使用中の状態を終了してログオンし直すことが一般的である。
【０００３】
【特許文献１】特開２００７−２８６９０５号公報
【特許文献２】特開２００５−１６６０５１号公報
【特許文献３】特開２０１１−３９９５３号公報
【特許文献４】特開２０１０−９７５５０号公報
【特許文献５】特開２０１１−１１３３６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、このようにコンピュータにログオンし直すことなく、ユーザの使用状況に応じてコンピュータのセキュリティポリシーを柔軟かつ即時に変更することができれば、利便性が高く、セキュリティの観点からもより好ましい。
例えば、ユーザがある特定のファイルやネットワーク、あるいはファイルサーバにアクセスしたタイミングで、コンピュータのセキュリティポリシーを状況に応じた様々な内容に変更することができれば大変有用である。
【０００５】
そこで、本発明者は鋭意研究して、特定種類のアプリケーションプログラムインタフェース（ＡＰＩ）が呼び出された時に、その呼び出し処理を横取りして、状況に応じたセキュリティポリシーにもとづきコンピュータの動作を制御することで、コンピュータのセキュリティモードを柔軟かつ即時に変更することを可能とすることに成功した。
【０００６】
このようなＡＰＩの呼び出し処理の横取りを利用する技術として、特許文献１にはアプリケーションからのファイルアクセスを横取りして、ユーザが意図しないファイルの転送が行われないようにすることが開示されている。また、特許文献２には、ＡＰＩフックを用いてコンピュータシステムにおけるプロセスの不正アクセスを防止することが開示されている。
しかしながら、これらいずれの文献にも、ＡＰＩの呼び出し処理を横取りすることによって、コンピュータのセキュリティモードを状況に応じた様々な内容に変更することについては記載されていない。
【０００７】
また、本発明者は、ＡＰＩフックを用いることによって、一定の場合に一時的に、周辺機器へのアクセス等を制限し、コンピュータを擬似的にシンクライアント化する技術（特許文献３）や、ＡＰＩによる処理対象のファイルがウイルスに感染しているか否かを検知することで、ウイルスの拡散を防止する技術（特許文献４）、ファイル名に特定の文字列が含まれているか否かを判定することで、そのファイルを暗号化又は復号化することを可能にする技術（特許文献５）を既に開発している。
しかしながら、これらはいずれもコンピュータのセキュリティモードを状況に応じた様々な内容に変更することを可能にするものではなかった。
【０００８】
さらに、本発明者は、ユーザがコンピュータを使用中の状態において、アプリケーションプログラム毎に異なるセキュリティポリシーを適用すると、より安全かつ便利にコンピュータを使用することができることに想到した。
具体的には、ブラウザはインターネットに接続できるが、その他のプログラムはインターネットに接続できないようにすれば、例えばウイルスソフトウェアが隠れて動作していても、インターネット経由でそのウイルスソフトウェアを使って情報を持ち出すことを防止でき、かつインターネットの閲覧はブラウザによってできるといった使用方法が可能となる。
【０００９】
そこで、本発明者は、さらに鋭意研究して、一台のコンピュータにおいて、アプリケーション毎に、異なる複数のセキュリティポリシーを同時に適用可能な情報漏洩防止装置を開発することに成功した。
このような情報漏洩防止装置について記載のある先行文献は見あたらなかった。
【００１０】
本発明は、上記の事情にかんがみなされたものであり、コンピュータの再起動やログオンなどを行うことなく、コンピュータのセキュリティモードを状況に応じた様々な内容に変更可能な情報漏洩防止装置、及び情報漏洩防止プログラムの提供を目的とする。
また、一台のコンピュータにおいて、アプリケーション毎に、異なる複数のセキュリティポリシーを同時に適用可能な情報漏洩防止装置、及び情報漏洩防止プログラムの提供を目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するため、本発明の情報漏洩防止装置は、セキュリティのモードを変更することにより情報の漏洩を防止する情報漏洩防止装置であって、前記モードを切り替える条件毎に対応するモードを記憶する切替条件記憶部と、モードの切替により設定するモードを記憶する設定モード記憶部と、アプリケーションプログラムから特定種類のアプリケーションプログラムインタフェースの呼び出し処理が行われたとき、前記呼び出し処理を横取りし、前記切替条件記憶部の切替条件を参照して、前記アプリケーションプログラムが実行しようとする内容と一致する条件が存在する場合、当該条件に対応するモードを取得する横取り処理部と、前記横取り処理部から前記モードを取得して、前記設定モード記憶部に設定するモード切替部とを備え、前記横取り処理部は、アプリケーションプログラムから前記特定種類と同一又は異なる所定のアプリケーションプログラムインタフェースの呼び出し処理が行われたとき、前記呼び出し処理を横取りし、前記設定モード記憶部を参照して、当該モードに対応するモード内容にしたがって、前記アプリケーションプログラムインタフェースによる処理を許可又は禁止することによって、当該情報漏洩防止装置の内部における動作の制御、及び／又は、当該情報漏洩防止装置の外部に対する動作の制御を行う構成としてある。
【００１２】
また、本発明の情報漏洩防止装置を、前記横取り処理部として前記ＡＰＩフックが、前記アプリケーションプログラムごとに二以上備えられると共に、前記ＡＰＩフックにそれぞれ対応する二以上で別個のセキュリティ記憶部が備えられ、前記セキュリティ記憶部にはセキュリティの内容が記憶され、前記アプリケーションプログラムに対して使用される前記ＡＰＩフックが設定されており、全ての前記ＡＰＩフックが順次実行されて、前記アプリケーションプログラムに対して使用される前記ＡＰＩフックのみが、対応する前記セキュリティ記憶部から前記セキュリティ内容を取得して、当該ＡＰＩフックにより、前記セキュリティ内容にしたがって前記アプリケーションプログラムインタフェースによる処理が許可又は禁止される構成とすることも好ましい。
【００１３】
また、本発明の情報漏洩防止装置を、前記横取り処理部として前記ＤＬＬインジェクションが、前記アプリケーションプログラムごとに備えられると共に、二以上で別個のセキュリティ記憶部が備えられ、前記セキュリティ記憶部にはセキュリティの内容が記憶され、前記アプリケーションプログラムに対して使用されるセキュリティが設定されており、前記ＤＬＬインジェクションが実行されて、前記アプリケーションプログラムに対応する前記セキュリティの内容を前記セキュリティ記憶部から取得して、当該ＤＬＬインジェクションにより、前記セキュリティの内容にしたがって前記アプリケーションプログラムインタフェースによる処理が許可又は禁止される構成とすることも好ましい。
【００１４】
また、本発明の情報漏洩防止プログラムは、セキュリティのモードを変更することによりコンピュータからの情報の漏洩を防止するための情報漏洩防止プログラムであって、前記モードを切り替える条件毎に対応するモードを記憶する切替条件記憶部と、モードの切替により設定するモードを記憶する設定モード記憶部とを備えたコンピュータに、アプリケーションプログラムから特定種類のアプリケーションプログラムインタフェースの呼び出し処理が行われたとき、前記呼び出し処理を横取りさせ、前記切替条件記憶部の切替条件を参照させて、前記アプリケーションプログラムが実行しようとする内容と一致する条件が存在する場合、当該条件に対応するモードを取得させ、前記設定モード記憶部に設定させ、アプリケーションプログラムから前記特定種類と同一又は異なる所定のアプリケーションプログラムインタフェースの呼び出し処理が行われたとき、前記呼び出し処理を横取りさせ、前記設定モード記憶部を参照させて、当該モードに対応するモード内容にしたがって、前記アプリケーションプログラムインタフェースによる処理を許可又は禁止することによって、当該情報漏洩防止装置の内部における動作の制御、及び／又は、当該情報漏洩防止装置の外部に対する動作の制御を行わせる構成としてある。
【００１５】
また、本発明の情報漏洩防止装置プログラムを、ＡＰＩフックが、前記アプリケーションプログラムごとに二以上備えられると共に、セキュリティの内容を記憶する、前記ＡＰＩフックにそれぞれ対応する二以上で別個のセキュリティ記憶部をさらに備え、かつ前記アプリケーションプログラムに対して使用される前記ＡＰＩフックが設定されている前記コンピュータに、全ての前記ＡＰＩフックを順次実行させて、前記アプリケーションプログラムに対して使用される前記ＡＰＩフックのみに、対応する前記セキュリティ記憶部から前記セキュリティの内容を取得させ、当該ＡＰＩフックにより、前記セキュリティの内容にしたがって前記アプリケーションプログラムインタフェースによる処理を許可又は禁止させる構成とすることも好ましい。
【００１６】
また、本発明の情報漏洩防止装置プログラムを、ＤＬＬインジェクションが、前記アプリケーションプログラムごとに備えられると共に、セキュリティの内容を記憶する二以上で別個のセキュリティ記憶部をさらに備え、かつ前記アプリケーションプログラムに対して使用されるセキュリティが設定されている前記コンピュータに、前記ＤＬＬインジェクションを実行させて、前記アプリケーションプログラムに対応する前記セキュリティの内容を前記セキュリティ記憶部から取得させ、当該ＤＬＬインジェクションにより、前記セキュリティの内容にしたがって前記アプリケーションプログラムインタフェースによる処理を許可又は禁止させる構成とすることも好ましい。
【発明の効果】
【００１７】
本発明によれば、コンピュータの再起動やログオンなどを行うことなく、コンピュータのセキュリティモードを状況に応じた様々な内容に変更することが可能となる。
また、一台のコンピュータにおいて、アプリケーション毎に、異なる複数のセキュリティポリシーを同時に適用することも可能となる。
【図面の簡単な説明】
【００１８】
【図１】本発明の第一実施形態の情報漏洩防止装置の構成を示すブロック図である。
【図２】本発明の第一実施形態の情報漏洩防止装置において使用されるデータの構成を示す図である。
【図３】本発明の第一実施形態の情報漏洩防止装置の処理手順（モード切替）を示すフローチャートである。
【図４】本発明の第一実施形態の情報漏洩防止装置の処理手順（設定モードの実行）を示すフローチャートである。
【図５】本発明の第二実施形態の情報漏洩防止装置の構成を示すブロック図である。
【図６】本発明の第二実施形態の情報漏洩防止装置において使用されるデータの構成を示す図である。
【図７】本発明の第二実施形態の情報漏洩防止装置の処理手順（実行プログラム毎のセキュリティ設定切替（１））を示すフローチャートである。
【図８】本発明の第二実施形態の情報漏洩防止装置の処理手順（実行プログラム毎のセキュリティ設定切替（２））を示すフローチャートである。
【図９】本発明の第三実施形態の情報漏洩防止装置の構成を示すブロック図である。
【図１０】本発明の第三実施形態の情報漏洩防止装置において使用されるデータの構成を示す図である。
【図１１】本発明の第三実施形態の情報漏洩防止装置の処理手順（実行プログラム毎のセキュリティ設定切替（３））を示すフローチャートである。
【図１２】本発明の第三実施形態の情報漏洩防止装置の処理手順（実行プログラム毎のセキュリティ設定切替（４））を示すフローチャートである。
【発明を実施するための形態】
【００１９】
以下、本発明の情報漏洩防止装置、及び情報漏洩防止プログラムの好ましい実施形態について、図面を参照しつつ説明する。
【００２０】
［第一実施形態］
まず、本発明の第一実施形態について、図１〜図４を参照して説明する。図１は、本実施形態の情報漏洩防止装置の構成を示すブロック図であり、図２は、本実施形態の情報漏洩防止装置において使用されるデータの構成を示す図である。また、図３は、本実施形態の情報漏洩防止装置の処理手順（モード切替）を示すフローチャートであり、図４は、本実施形態の情報漏洩防止装置の処理手順（設定モードの実行）を示すフローチャートである。
【００２１】
本実施形態の情報漏洩防止装置１は、ユーザにより使用されるパソコンやタブレットなどのコンピュータ（情報処理装置）である。また、情報漏洩防止装置１には、スマートフォンなどのコンピュータと同様の機能を有する装置も含まれる。情報漏洩防止装置１の具体的な用途は特に限定されないが、情報漏洩防止装置１は、企業や学校などにおいて好適に使用することが可能である。
【００２２】
情報漏洩防止装置１は、実行プログラム１１により使用されるメモリ領域１０、モード切替部２０、及び情報漏洩防止装置１において使用される各種データを記憶する共有メモリ３０を備えている。
また、情報漏洩防止装置１は、アプリケーションプログラムインタフェース（ＡＰＩ）４０、このＡＰＩ４０や実行プログラム１１を実行する環境、例えばオペレーティングシステム（ＯＳ）５０、記憶装置用ドライバ６０、プリンタ用ドライバ７０、ネットワーク用ドライバ８０を備えている。なお、情報漏洩防止装置１において、ドライバはこれらのもののみならず、その他各種ドライバを有する構成とすることができる。また、ドライバは、ＯＳ５０の内部に備える構成としてもよい。
【００２３】
実行プログラム１１は、アプリケーションプログラム（ＡＰ）であり、その種類や機能は特に限定されない。例えば、ブラウザプログラム、ワープロプログラム、電子メールプログラム、表計算プログラム、描画プログラム等、種々のアプリケーションプログラムを実行プログラム１１として用いることができる。
【００２４】
また、横取り処理部１２が、実行プログラム１１により使用されるメモリ領域１０に読み込まれて備えられている。この横取り処理部１２は、例えばＡＰＩフック（ＤＬＬ）やＤＬＬインジェクションにより構成することができる。
横取り処理部１２としてＡＰＩフックを用いる場合は、ＯＳの起動時に実行プログラム１１と共にメモリ領域１０に読み込まれて備えられる。
【００２５】
また、横取り処理部１２としてＤＬＬインジェクションを用いる場合は、実行プログラム１１の起動時にメモリ領域１０に読み込まれて備えられる。
横取り処理部１２は、実行プログラム１１によるＡＰＩ４０の呼び出し処理が行われると、ＡＰＩ４０の代わりに、共有メモリ３０に記憶された設定モードにもとづいて、様々な動作を実行することができる。また、ＡＰＩ４０の実行を許可することも、禁止することもできる。
【００２６】
横取り処理部１２には、切替検知部１２−１とモード実行部１２−２が備えられている。
切替検知部１２−１は、実行プログラム１１により呼び出された処理内容が、共有メモリ３０に記憶された切替条件と一致するか否かを判定する。そして、一致する場合、その切替条件に対応する切替モードをモード切替部２０へ出力する。
モード実行部１２−２は、共有メモリ３０に記憶された設定モードにもとづき動作を実行する。
【００２７】
モード切替部２０は、切替検知部１２−１から切替モードを入力すると、この切替モードを共有メモリ３０に設定モードとして記憶させる。
また、モード切替部２０は、ユーザにより入力されたモード切替指示情報、特定のアプリケーションプログラムを起動することを示す情報、又は、ユーザ認証に成功したことを示す情報の入力にもとづいて、特定の切替モードを共有メモリ３０に設定モードとして記憶させることもできる。
【００２８】
共有メモリ３０は、切替条件記憶部３１、設定モード記憶部３２、及びモード内容記憶部３３を備えている。
切替条件記憶部３１は、図２に示すように、切替条件毎に切替モードを記憶する。例えば、「機密ファイルＡへのアクセス」が行われた場合に、モード（１）に切り替えることや、「ネットワークＢへのアクセス」が行われた場合に、モード（２）に切り替えること等を記憶する。
なお、切替条件記憶部３１へのデータの設定をモード切替部２０により行わせるようにすることもできる。
【００２９】
設定モード記憶部３２は、情報漏洩防止装置１に設定されたモードを記憶する。例えば、設定モードとして、モード（１）を記憶する。
モード内容記憶部３３は、図２に示すように、モード毎にモード内容を記憶する。例えば、モード（１）として、「ハードディスク（ＨＤ）への書き込み：不可，インターネットへのアクセス：不可，印刷：不可，等」、モード（２）として、「ハードディスクへの書き込み：不可，インターネットへのアクセス：可，印刷：可，等」などを記憶する。
【００３０】
ここで、本実施形態の情報漏洩防止装置１において、切替条件記憶部３１、設定モード記憶部３２、及びモード内容記憶部３３を、共有メモリ３０として備えた理由は、以下の通りである。
すなわち、一般に、通常のパソコンにおいては、数十を超える実行プログラム１１が動作している。また、例えばサーバのようなコンピュータにおいては、数百を超える実行プログラム１１が動作している場合もある。そして、上記各記憶部は、これら全ての実行プログラム１１に対応する横取り処理部１２により使用される。したがって、これらの記憶部を横取り処理部１２毎に備える構成とすれば、実行プログラム１１の数だけそれぞれを備えることが必要になる。また、これらの記憶部の内容を変更しようとした場合、それら全ての記憶部を変更する必要が生じるため、その設定変更に時間がかかることが懸念される。
【００３１】
そこで、本実施形態では、切替条件記憶部３１、設定モード記憶部３２、及びモード内容記憶部３３を、共有メモリ３０として備えている。また、これにより記憶容量を節約できるという効果も得ることができる。
さらに、共有メモリ３０は、半導体メモリのような高速アクセス可能な記憶領域に構成することが好ましい。一方、プログラムの実行速度を重視しない場合、共有メモリ３０をハードディスクのようなすべてのプログラムから共有可能な記憶装置に実現することも可能である。
【００３２】
ＡＰＩ（アプリケーションプログラムインタフェース）４０は、実行プログラム１１によって呼び出し処理が行われる対象のＡＰＩである。すなわち、ＡＰＩ４０は、実行プログラム１１により本来呼び出されるはずのＡＰＩであるが、横取り処理部１２が処理を横取りし、設定モードの内容にしたがって、例えば、ＡＰＩの処理の実行が許可されたり、禁止されたりする。
【００３３】
ＡＰＩ４０の種類としては特に限定されないが、例えば、特定のファイルへのアクセス、特定のネットワークへのアクセス、又は、特定のファイルサーバへのアクセス等とすることができる。また、ハードディスクドライブに対する書き込み、デスクトップに対する書き込み、特定のアプリケーションの起動、特定のデバイスへのアクセス処理、特定の出力機器へのアクセス等とすることもできる。
【００３４】
オペレーティングシステム５０は、ＡＰＩ４０からの指示にしたがって、記憶装置用ドライバ６０、プリンタ用ドライバ７０、又はネットワーク用ドライバ８０等を制御して、それぞれ記憶装置２への書き込み処理や、プリンタ３への出力処理、又はネットワーク装置４へのアクセス処理を実行する。
このオペレーティングシステム５０としては特に限定されないが、例えばＷＩＮＤＯＷＳ（登録商標）やｍａｃＯＳ（登録商標）、Ｌｉｎｕｘ（登録商標）、ＳＯＬＡＲＩＳ（登録商標）、ＦＲＥＥＢＳＤ（登録商標）等の各種ＯＳを用いることができる。
【００３５】
次に、本実施形態の情報漏洩防止装置１によるモード切替の処理手順について、図３を参照して説明する。
まず、実行プログラム１１により特定種類のＡＰＩの呼び出し処理が行われる（ステップ１０）。例えば、実行プログラム１１が「機密ファイルＡを開く」という処理を行うために、対応するＡＰＩの呼び出しを行う。
【００３６】
横取り処理部１２は、上記ＡＰＩの呼び出し処理を横取りする（ステップ１１）。
また、横取り処理部１２は、切替検知部１２−１により切替条件記憶部３１を参照して（ステップ１２）、実行プログラム１１が行おうとした処理が、切替条件に一致するか否かを判定する（ステップ１３）。
【００３７】
ここで、切替検知部１２−１に、実行プログラム１１が開こうとしたファイルが「機密ファイルＡ」に該当するか否かの判断を、例えばファイル名、ファイルの拡張子、ファイルの保存されている場所（ディレクトリやサーバなどのアドレス）、ファイルの保存されているメディア（ＵＳＢメモリやＳＤカード等）、ファイルの内容等にもとづいて、行わせるようにすることができる。
【００３８】
実行プログラム１１が行おうとした処理が「機密ファイルＡを開く」の場合、切替条件記憶部３１に当該条件が存在しているため（ステップ１３のＹｅｓ）、切替検知部１２−１がこれに対応する切替モード（この場合、モード（１））を切替条件記憶部３１から取得して、モード切替部２０へ出力する。
そして、モード切替部２０が、入力した切替モードを設定モード記憶部３２に記憶させることにより、情報漏洩防止装置１におけるセキュリティモードを設定（変更）する（ステップ１４）。
【００３９】
次に、本実施形態の情報漏洩防止装置１による設定モードの実行の処理手順について、図４を参照して説明する。
まず、実行プログラム１１により特定種類のＡＰＩの呼び出し処理が行われる（ステップ２０）。そして、横取り処理部１２が、このＡＰＩの呼び出し処理を横取りする（ステップ２１）。
このとき、特定種類のＡＰＩは、モード切替条件の判定対象のものと同一のものを含んでいてもよく、異なるＡＰＩを横取りの対象としてもよい。ここでは、実行プログラム１１により、「ハードディスクへの書き込み」を行うＡＰＩが呼び出されたとする。
【００４０】
次に、横取り処理部１２が、モード実行部１２−２により設定モード記憶部３２から設定モードを取得する。また、モード実行部１２−２が取得した設定モードに対応するモード内容をモード内容記憶部３３から取得して、そのモード内容にしたがって、制御を実行する（ステップ２３）。
【００４１】
例えば、モード実行部１２−２は、設定モード記憶部３２から「モード（１）」を取得すると共に、モード内容記憶部３３からこれに対応するモード内容を取得する。図２の例では、モード（１）に対応するモード内容において、「ハードディスクへの書き込み：不可」というセキュリティポリシーが設定されている。
このため、横取り処理部１２は、ＡＰＩ４０を呼び出すことなく、当該処理を許可しないことを示す情報を、実行プログラム１１に返却する。これによって、実行プログラム１１による「ハードディスクへの書き込み」が行われないように制御される。
【００４２】
また、例えば、実行プログラム１１により、「インターネットへのアクセス」を行うＡＰＩが呼び出され、設定モード記憶部３２に「モード（２）」が設定されていたとする。
この場合、モード実行部１２−２は、設定モード記憶部３２から「モード（２）」を取得すると共に、モード内容記憶部３３からこれに対応するモード内容を取得する。図２の例では、モード（２）に対応するモード内容において、「インターネットへのアクセス：可」というセキュリティポリシーが設定されている。
このため、横取り処理部１２は、ＡＰＩ４０を呼び出して、その実行を許可する。これによって、実行プログラム１１による「インターネットへのアクセス」が行われるように制御される。
【００４３】
以上のように、本実施形態の情報漏洩防止装置１によれば、モード切替部２０、切替条件記憶部３１、設定モード記憶部３２、及びモード内容記憶部３３を備えると共に、様々なアプリケーションプログラムが使用するメモリ領域１０に横取り処理部１２を備えることによって、情報漏洩防止装置１を再起動やログオンなどを行うことなく、そのセキュリティモードを状況に応じた様々な内容に変更することが可能となっている。
【００４４】
［第二実施形態］
次に、本発明の第二実施形態について、図５〜図８を参照して説明する。図５は、本実施形態の情報漏洩防止装置の構成を示すブロック図であり、図６は、本実施形態の情報漏洩防止装置において使用されるデータの構成を示す図である。また、図７は、本実施形態の情報漏洩防止装置の処理手順（実行プログラム毎のセキュリティ設定切替（１））を示すフローチャートであり、図８は、本実施形態の情報漏洩防止装置の処理手順（実行プログラム毎のセキュリティ設定切替（２））を示すフローチャートである。
【００４５】
本実施形態の情報漏洩防止装置１−２は、第一実施形態の情報漏洩防止装置１の構成に加えて、アプリケーションプログラム毎に異なるセキュリティポリシーを適用可能な構成を備えている点で、第一実施形態と相違する。その他の点については、第一実施形態と同様のものとすることができる。
【００４６】
また、本実施形態の情報漏洩防止装置１−２を、第一実施形態における切替検知部１２−１、モード実行部１２−２、モード切替部２０、切替条件記憶部３１、設定モード記憶部３２、及びモード内容記憶部３３を有しないものとすることもできる。後述する第三実施形態についても同様である。
【００４７】
本実施形態の情報漏洩防止装置１−２は、実行プログラム１１ａにより使用されるメモリ領域１０ａ、実行プログラム１１ｂにより使用されるメモリ領域１０ｂ、及び情報漏洩防止装置１−２において使用される各種データを記憶する共有メモリ３０−２（図５では省略してその内部の記憶部のみを示している）を備えている。
【００４８】
実行プログラム１１ａにより使用されるメモリ領域１０ａ及び実行プログラム１１ｂにより使用されるメモリ領域１０ｂには、横取り処理部として、ＡＰＩフック（ＤＬＬ）１２１とＡＰＩフック（ＤＬＬ）１２２とが備えられており、これらは順次実行される。
また、実行プログラムにより使用される各メモリ領域に、より多くのＡＰＩフックを備えて、これらを順次実行させる構成とすることもできる。
さらに、本実施形態の情報漏洩防止装置１−２において、より多くの数の実行プログラムにより使用されるメモリ領域を備えることもできる。
【００４９】
また、共有メモリ３０−２には、使用横取り処理記憶部３４、セキュリティ１記憶部３５、及びセキュリティ２記憶部３６が備えられている。
使用横取り処理記憶部３４は、実行プログラム毎に、使用する横取り処理（ＡＰＩフック）を記憶する。例えば、実行プログラム１１ａ（ブラウザ）についてＡＰＩフック１２１を使用し、実行プログラム１１ｂ（ワープロ、その他）についてＡＰＩフック１２２を使用することを記憶する。
この使用横取り処理記憶部３４に記憶される使用する横取り処理の情報を変更することで、実行プログラム毎に適用するセキュリティポリシーを変更することができる。
【００５０】
セキュリティ１記憶部３５とセキュリティ２記憶部３６は、セキュリティポリシー毎のセキュリティ内容を記憶するものであり、それぞれＡＰＩフック１２１、ＡＰＩフック１２２によりアクセスされる。
例えば、セキュリティ１記憶部３５には、セキュリティ１として、「ハードディスク（ＨＤ）への書き込み：不可，インターネットへのアクセス：可，等」などのセキュリティポリシーを記憶させることができる。また、セキュリティ２記憶部３６には、セキュリティ２として、「ハードディスク（ＨＤ）への書き込み：可，インターネットへのアクセス：不可，等」などのセキュリティポリシーを記憶させることができる。
【００５１】
さらに、セキュリティ１記憶部３５やセキュリティ２記憶部３６において、「ファイルを暗号化した後にハードディスク（ＨＤ）への書き込み：可」や、「「ファイルを復号化した後にハードディスク（ＨＤ）からの読み込み：可」などのセキュリティポリシーを記憶させることもできる。また、これらのセキュリティポリシーにおいて、ハードディスクに替えて、メモリ領域やＵＳＢメモリなどその他の記憶装置への書き込みなどとすることもできる。
この場合、実行プログラムにより使用されるメモリ領域において、横取り処理部として、暗号化処理部と復号化処理部とをさらに備えて、ＡＰＩフック１２１やＡＰＩフック１２２によりこれらを実行させる構成とすることにより、ＡＰＩフック１２１やＡＰＩフック１２２を使用して、ファイルの暗号化処理や復号化処理を行うことが可能となる。なお、当該構成を、第三実施形態におけるＤＬＬインジェクションに適用することも可能である。
【００５２】
ＡＰＩフック１２１は、実行プログラム１１ａによる特定種類のＡＰＩ４０の呼び出し処理を横取りする。ＡＰＩフック１２１は、実行プログラム１１ａについて使用するＡＰＩフックについての情報を使用横取り処理記憶部３４から取得することができる。ＡＰＩフック１２１による、使用するＡＰＩフックについての情報の取得は、ＡＰＩフック１２１のメモリへの読み込み時に行わせることができる。また、実行プログラム１１ａから呼び出されたタイミングで行うこともできる。これは以下においても同様である。
例えば、使用横取り処理記憶部３４において、実行プログラム１１ａにＡＰＩフック１２１が対応付けられて記憶されている場合、ＡＰＩフック１２１に対応するセキュリティ１記憶部３５に記憶されているセキュリティ１の内容にもとづいて、実行プログラム１１ａの動作を制御する。
【００５３】
図６の例では、ＡＰＩフック１２１に対応するセキュリティ１の内容として、「ハードディスクへの書き込み：不可，インターネットへのアクセス：可」が記憶されている。このため、実行プログラム１１ａがハードディスクへの書き込みを行うためのＡＰＩを呼び出した場合、ＡＰＩフック１２１は、ＡＰＩ４０を呼び出すことなく、実行プログラム１１ａに当該ＡＰＩの呼び出しを許可しないことを示す情報を返却する。これによって、実行プログラム１１ａの動作を制御することができる。
【００５４】
次に、ＡＰＩフック１２１は、ＡＰＩフック１２２を実行させる。
ＡＰＩフック１２２は、実行プログラム１１ａについて使用するＡＰＩフックについての情報を使用横取り処理記憶部３４から取得することができる。なお、ＡＰＩフック１２２による、使用するＡＰＩフックについての情報の取得は、ＡＰＩフック１２２のメモリへの読み込み時に行わせることができる。また、実行プログラム１１ａから呼び出されたタイミングで行うこともできる。これは以下においても同様である。
図６の場合、上述の通り、使用横取り処理記憶部３４において、実行プログラム１１ａにＡＰＩフック１２１が対応付けられて記憶されているため、ＡＰＩフック１２２はそのまま何もせずに処理を終了する。
【００５５】
一方、実行プログラム１１ｂより使用されるメモリ領域１０ｂにおいて、ＡＰＩフック１２１は、実行プログラム１１ｂによる特定種類のＡＰＩ４０の呼び出し処理を横取りする。ＡＰＩフック１２１は、実行プログラム１１ｂについて使用するＡＰＩについての情報を使用横取り処理記憶部３４から取得することができる。
図６の例では、使用横取り処理記憶部３４において、実行プログラム１１ｂにＡＰＩフック１２２が対応付けられて記憶されているため、ＡＰＩフック１２１はそのまま何もせずに処理を終了して、ＡＰＩフック１２２を実行させる。
【００５６】
ＡＰＩフック１２２は、実行プログラム１１ｂについて使用するＡＰＩについての情報を使用横取り処理記憶部３４から取得することができる。この場合、使用横取り処理記憶部３４において、実行プログラム１１ｂにＡＰＩフック１２２が対応付けられて記憶されているため、ＡＰＩフック１２２に対応するセキュリティ２記憶部３６に記憶されているセキュリティ２の内容にもとづいて、実行プログラム１１ｂの動作を制御する。
【００５７】
図６の例では、ＡＰＩフック１２２に対応するセキュリティ内容として、「ハードディスクへの書き込み：可，インターネットへのアクセス：不可」が記憶されている。このため、実行プログラム１１ｂがハードディスクへの書き込みを行うためのＡＰＩを呼び出した場合、ＡＰＩフック１２２は、ＡＰＩ４０を呼び出して、その実行を許可することができる。これによって、実行プログラム１１ｂの動作を制御することができる。
【００５８】
本実施形態において、実行プログラム毎にＡＰＩフック１２１とＡＰＩフック１２２のどちらを使って制御するのかを、それぞれのＤＬＬが呼び出されるタイミングで（初期化時に）、使用横取り処理記憶部３４の情報にもとづき判断させることができる。
また、使用横取り処理記憶部３４の情報に変えて、例えば、実行しようとするファイルの保存場所や、ファイル名、実行ファイルに埋め込まれた情報にもとづいて、実行プログラム毎にＡＰＩフック１２１とＡＰＩフック１２２のどちらを使って制御するのか決定する構成とすることもできる。
さらに、実行プログラムが、既にＡＰＩフック１２１又はＡＰＩフック１２２で制御されている実行プログラムのチャイルドプロセスに相当するものである場合、親のプロセスと同じＡＰＩフックを選択させるようにすることも可能である。
【００５９】
次に、本実施形態の情報漏洩防止装置１−２による実行プログラム毎のセキュリティ設定切替（１）処理手順について、図７を参照して説明する。ここでは、実行プログラム１１ａが、ブラウザプログラム（ブラウザ）であるとする。
【００６０】
まず、ブラウザにより特定種類のＡＰＩ、例えば「インターネットへのアクセス」の呼び出し処理が行われる（ステップ３０）。そして、ＡＰＩフック１２１が、このＡＰＩの呼び出し処理を横取りする（ステップ３１）。
【００６１】
ブラウザに使用されるＡＰＩフックは、使用横取り処理記憶部３４に記憶されているように、ＡＰＩフック１２１である。
したがって、ＡＰＩフック１２１は、対応するセキュリティ１記憶部３５に記憶されているセキュリティ１の内容にしたがって、実行プログラム１１ａの動作を制御する（ステップ３２）。
【００６２】
このとき、ＡＰＩは「インターネットへのアクセス」であり、セキュリティ１記憶部３５にはセキュリティ１の内容として「インターネットへのアクセス：可」が記憶されているため、ＡＰＩフック１２１は、ＡＰＩ４０を呼び出して、その動作を許可する。
【００６３】
次に、ＡＰＩフック１２１は、ＡＰＩフック１２２を実行させる（ステップ３３）。
ブラウザに使用されるＡＰＩフックはＡＰＩフック１２１であるため、ＡＰＩフック１２２は、そのまま何もせずに動作を終了する。
【００６４】
一方、ブラウザによって、「ハードディスクへの書き込み」を行うためのＡＰＩが呼び出されたとする（ステップ３０）。ＡＰＩフック１２１が、このＡＰＩの呼び出し処理を横取りする（ステップ３１）。
【００６５】
ブラウザに使用されるＡＰＩフックはＡＰＩフック１２１であるため、ＡＰＩフック１２１は、対応するセキュリティ１記憶部３５に記憶されているセキュリティ１の内容にしたがって、実行プログラム１１ａの動作を制御する（ステップ３２）。
【００６６】
このとき、ＡＰＩは「ハードディスクへの書き込み」であり、セキュリティ１記憶部３５にはセキュリティ１の内容として「ハードディスクへの書き込み：不可」が記憶されているため、ＡＰＩフック１２１は、ＡＰＩ４０を呼び出すことなく、実行プログラム１１ａに処理を許可できないことを示す情報を返却する。
【００６７】
次に、ＡＰＩフック１２１は、ＡＰＩフック１２２を実行させる（ステップ３３）。
ブラウザに使用されるＡＰＩフックはＡＰＩフック１２１であるため、ＡＰＩフック１２２は、そのまま何もせずに処理を終了する。
【００６８】
次に、本実施形態の情報漏洩防止装置１−２による実行プログラム毎のセキュリティ設定切替（２）処理手順について、図８を参照して説明する。ここでは、実行プログラム１１ｂが、ブラウザ以外のアプリケーションプログラム、例えばワープロプログラム（ワープロ）であるとする。
【００６９】
まず、ワープロにより特定種類のＡＰＩ、例えばインターネットへのアクセスの呼び出し処理が行われる（ステップ４０）。そして、ＡＰＩフック１２１が、このＡＰＩの呼び出し処理を横取りする（ステップ４１）。
【００７０】
ワープロに使用されるＡＰＩフックは、使用横取り処理記憶部３４に記憶されているように、ＡＰＩフック１２２である。
したがって、ＡＰＩフック１２１は、何も処理を行うことなく、ＡＰＩフック１２２を実行させる（ステップ４２）。
【００７１】
ワープロに使用されるＡＰＩフックはＡＰＩフック１２２であるため、ＡＰＩフック１２２は、対応するセキュリティ２記憶部３６に記憶されているセキュリティ２の内容にしたがって、実行プログラム１１ｂの動作を制御する（ステップ４３）。
【００７２】
このとき、ＡＰＩは「インターネットへのアクセス」であり、セキュリティ２記憶部３６にはセキュリティ２の内容として「インターネットへのアクセス：不可」が記憶されているため、ＡＰＩフック１２２は、ＡＰＩ４０を呼び出すことなく、実行プログラム１１ｂに処理を許可できないことを示す情報を返却する。
【００７３】
一方、ワープロによって、「ハードディスクへの書き込み」を行うためのＡＰＩが呼び出されたとする（ステップ４０）。ＡＰＩフック１２１が、このＡＰＩの呼び出し処理を横取りする（ステップ４１）。
【００７４】
ワープロに使用されるＡＰＩフックはＡＰＩフック１２２であるため、ＡＰＩフック１２１は、何も処理を行うことなく、ＡＰＩフック１２２を実行させる（ステップ４２）。
【００７５】
ワープロに使用されるＡＰＩフックは、ＡＰＩフック１２２であるため、ＡＰＩフック１２２は対応するセキュリティ２記憶部３６に記憶されているセキュリティ２の内容にしたがって、実行プログラム１１ｂの動作を制御する（ステップ４３）。
【００７６】
このとき、ＡＰＩは「ハードディスクへの書き込み」であり、セキュリティ２記憶部３６にはセキュリティ２の内容として「ハードディスクへの書き込み：可」が記憶されているため、ＡＰＩフック１２２は、ＡＰＩ４０を呼び出して、その動作を許可する。
【００７７】
ここで、実行プログラム毎に、いずれのセキュリティポリシーを適用するかの設定（例えば、使用横取り処理記憶部３４への設定）は、様々な条件にもとづいて行うことができる。
例えば、ある特定の場所（ディレクトリ）の中にある実行ファイルを使用する実行プログラムだけに、セキュリティ２の内容を適用し（ＡＰＩフック１２２を使用）、その他の実行プログラムには、セキュリティ１の内容を適用する（ＡＰＩフック１２１）ことができる。
また、ある特定のプログラムから起動された子プロセスには、セキュリティ２の内容を適用することもできる。
【００７８】
さらに、ある特定のファイルにアクセスするプログラムはその特定のファイルにアクセスしたとたんに、セキュリティ２の内容を適用するといった設定にすることもできる。この場合、例えば特定のファイルが機密情報に分類されるファイルとして扱われているとすると、機密情報のファイルを開いたとたんに、その開いたプログラムにセキュリティ２の内容を適用するようにすることができる。
ここで、セキュリティ２の内容を、ファイルは開けるが保存できないとか、ネットワークへのアクセスを禁止するとか、印刷を禁止する、といった開いたファイルの情報を外部に漏洩できなくするようなものにしておくことによって、情報漏洩防止の内容を柔軟かつきめ細かに設定することが可能である。
【００７９】
以上のように、本実施形態の情報漏洩防止装置１−２によれば、実行プログラムにより使用されるメモリ領域において、ＡＰＩフックを順次実行させることにより、この実行プログラムに対応するＡＰＩフックが使用する共有メモリに記憶された情報にしたがって、その動作を制御することができる。
したがって、本実施形態の情報漏洩防止装置によれば、アプリケーションプログラム毎に異なるセキュリティポリシーを適用することが可能になっている。
【００８０】
これにより、例えば、ブラウザはインターネットアクセスできるが、ファイルをダウロードするなどの操作はできず、その他のプログラム、例えばワープロでは、ブラウザの表示を見ながら原稿を書いてファイルに保存することはできるが、その内容をネットで送信することはできない、といったセキュリティポリシーを適用することができる。このようにすれば、安全にインターネットに接続できると同時に、編集されたワープロのファイルが不用意にインターネットで流出する危険を回避することができるという優れた効果を得ることが可能となる。
【００８１】
なお、ＯＳによっては、各プログラム間で直接データを送受信する機能（プロセス間通信機能等）が備わっている場合があり、それを使ってワープロのデータをブラウザに送信し、ブラウザからワープロのデータを送信するといったことが可能である。しかし、これらの機能も各プログラムはＡＰＩを用いて実行するため、本実施形態におけるＡＰＩフック１２１及びＡＰＩフック１２２によって制御することが可能である。
【００８２】
［第三実施形態］
次に、本発明の第三実施形態について、図９〜図１２を参照して説明する。図９は、本実施形態の情報漏洩防止装置の構成を示すブロック図であり、図１０は、本実施形態の情報漏洩防止装置において使用されるデータの構成を示す図である。また、図１１は、本実施形態の情報漏洩防止装置の処理手順（実行プログラム毎のセキュリティ設定切替（３））を示すフローチャートであり、図１２は、本実施形態の情報漏洩防止装置の処理手順（実行プログラム毎のセキュリティ設定切替（４））を示すフローチャートである。
【００８３】
本実施形態の情報漏洩防止装置１−３は、第一実施形態の情報漏洩防止装置１の構成に加えて、アプリケーションプログラム毎に異なるセキュリティポリシーを適用可能な構成を備えている点で、第一実施形態と相違する。また、本実施形態の情報漏洩防止装置１−３は、ＡＰＩフックではなく、ＤＬＬインジェクションを用いることにより、アプリケーションプログラム毎に異なるセキュリティポリシーを適用可能な構成を実現している点で、第二実施形態と相違する。その他の点については、第一実施形態と同様のものとすることができる。
【００８４】
本実施形態の情報漏洩防止装置１−３は、実行プログラム１１ａ’により使用されるメモリ領域１０ａ’、実行プログラム１１ｂ’により使用されるメモリ領域１０ｂ’、及び情報漏洩防止装置１−３において使用される各種データを記憶する共有メモリ３０−３（図９では省略してその内部の記憶部のみを示している）を備えている。本実施形態の情報漏洩防止装置１−３においても、より多くの数の実行プログラムにより使用されるメモリ領域を備えることができる。
【００８５】
共有メモリ３０−３には、使用セキュリティ記憶部３７、セキュリティ１記憶部３５、及びセキュリティ２記憶部３６が備えられている。
使用セキュリティ記憶部３７は、実行プログラム毎に、使用するセキュリティを記憶する。例えば、実行プログラム１１ａ（ブラウザ）についてセキュリティ１を使用し、実行プログラム１１ｂ（ワープロ、その他）についてセキュリティ２を使用することを記憶する。
この使用セキュリティ記憶部３７に記憶される使用するセキュリティの情報を変更することで、実行プログラム毎に適用するセキュリティポリシーを変更することができる。
【００８６】
セキュリティ１記憶部３５とセキュリティ２記憶部３６は、セキュリティポリシー毎のセキュリティ内容を記憶するものであり、本実施形態ではＤＬＬインジェクション１３ａ’又はＤＬＬインジェクション１３ｂ’によりアクセスされる。
例えば、セキュリティ１記憶部３５には、セキュリティ１として、「ハードディスク（ＨＤ）への書き込み：不可，インターネットへのアクセス：可，等」のセキュリティポリシーを記憶させることができる。また、セキュリティ２記憶部３６には、セキュリティ２として、「ハードディスク（ＨＤ）への書き込み不可，インターネットへのアクセス：不可，等」のセキュリティポリシーを記憶させることができる。
【００８７】
横取り処理部として、実行プログラム１１ａ’により使用されるメモリ領域１０ａ’には、ＤＬＬインジェクション１３ａ’が備えられ、実行プログラム１１ｂ’により使用されるメモリ領域１０ｂ’には、ＤＬＬインジェクション１３ｂ’が備えられている。
【００８８】
なお、ＤＬＬインジェクションは、通常実行プログラムの起動時にＡＰＩの呼び出しを横取りするＤＬＬが読み込まれて、実行プログラムと共に実行される仕組みとなっている。このため、実行プログラムの起動時にどのＤＬＬを読み込むかを実行プログラムに選択させることにより、特定のＤＬＬインジェクションを実行プログラムの実行開始時に選択させることが可能となっている。
【００８９】
ＤＬＬインジェクション１３ａ’は、実行プログラム１１ａ’による特定種類のＡＰＩ４０の呼び出し処理を横取りする。ＤＬＬインジェクション１３ａ’は、実行プログラム１１ａ’について使用するセキュリティについての情報を使用セキュリティ記憶部３７から取得することができる。ＤＬＬインジェクション１３ａ’による、使用するセキュリティについての情報の取得は、ＤＬＬインジェクション１３ａ’のメモリへの読み込み時に行わせることができる。また、実行プログラム１１ａ’から呼び出されたタイミングで行うこともできる。これはＤＬＬインジェクション１３ｂ’についても同様である。
例えば、使用セキュリティ記憶部３７において、実行プログラム１１ａ’にセキュリティ１が対応付けられて記憶されている場合、セキュリティ１記憶部３５に記憶されているセキュリティ１の内容にもとづいて、実行プログラム１１ａ’の動作を制御する。
【００９０】
図１０の例では、セキュリティ１の内容として、「ハードディスクへの書き込み：不可，インターネットへのアクセス：可」がセキュリティ１記憶部３５に記憶されている。このため、実行プログラム１１ａ’がハードディスクへの書き込みを行うためのＡＰＩを呼び出した場合、ＤＬＬインジェクション１３ａ’は、ＡＰＩ４０を呼び出すことなく、実行プログラム１１ａ’に当該ＡＰＩの呼び出しを許可しないことを示す情報を返却する。これによって、実行プログラム１１ａ’の動作を制御することができる。
【００９１】
また、ＤＬＬインジェクション１３ｂ’は、実行プログラム１１ｂ’による特定種類のＡＰＩ４０の呼び出し処理を横取りする。使用セキュリティ記憶部３７において、実行プログラム１１ｂ’にセキュリティ２が対応付けられて記憶されている場合、セキュリティ２記憶部３６に記憶されているセキュリティ２の内容にもとづいて、実行プログラム１１ｂ’の動作を制御する。
【００９２】
図１０の例では、ＤＬＬインジェクション１３ｂ’に対応するセキュリティ２の内容として、「ハードディスクへの書き込み：可，インターネットへのアクセス：不可」がセキュリティ２記憶部３６に記憶されている。このため、実行プログラム１１ｂ’がハードディスクへの書き込みを行うためのＡＰＩを呼び出した場合、ＤＬＬインジェクション１３ｂ’は、ＡＰＩ４０を呼び出して、その実行を許可する。これによって、実行プログラム１１ｂ’の動作を制御することができる。
【００９３】
次に、本実施形態の情報漏洩防止装置１−３による実行プログラム毎のセキュリティ設定切替（３）処理手順について、図１１を参照して説明する。ここでは、実行プログラム１１ａ’が、ブラウザであるとする。
【００９４】
まず、ブラウザにより特定種類のＡＰＩ、例えばインターネットへのアクセスの呼び出し処理が行われる（ステップ５０）。そして、ＤＬＬインジェクション１３ａ’が、このＡＰＩの呼び出し処理を横取りする（ステップ５１）。
ブラウザに使用されるセキュリティは、使用セキュリティ記憶部３７に記憶されているように、セキュリティ１である。
したがって、ＤＬＬインジェクション１３ａ’は、セキュリティ１記憶部３５に記憶されているセキュリティ１の内容にしたがって、実行プログラム１１ａ’の動作を制御する（ステップ５２）。
【００９５】
このとき、ＡＰＩは「インターネットへのアクセス」であり、セキュリティ１記憶部３５にはセキュリティ１の内容として「インターネットへのアクセス：可」が記憶されているため、ＤＬＬインジェクション１３ａ’は、ＡＰＩ４０を呼び出して、その動作を許可する。
【００９６】
一方、ブラウザによって、ハードディスクへの書き込みを行うためのＡＰＩが呼び出されたとする（ステップ５０）。ＤＬＬインジェクション１３ａ’が、このＡＰＩの呼び出し処理を横取りする（ステップ５１）。
ブラウザに使用されるセキュリティは、セキュリティ１であるため、ＤＬＬインジェクション１３ａ’は、セキュリティ１記憶部３５に記憶されているセキュリティ１の内容にしたがって、実行プログラム１１ａ’の動作を制御する（ステップ５２）。
【００９７】
このとき、ＡＰＩは「ハードディスクへの書き込み」であり、セキュリティ１記憶部３５にはセキュリティ１の内容として「ハードディスクへの書き込み：不可」が記憶されているため、ＤＬＬインジェクション１３ａ’は、ＡＰＩ４０を呼び出すことなく、実行プログラム１１ａ’に処理を許可できないことを示す情報を返却する。
【００９８】
次に、本実施形態の情報漏洩防止装置１−３による実行プログラム毎のセキュリティ設定切替（４）処理手順について、図１２を参照して説明する。ここでは、実行プログラム１１ｂ’が、ブラウザ以外のアプリケーションプログラム、例えばワープロであるとする。
【００９９】
まず、ワープロにより特定種類のＡＰＩ、例えばインターネットへのアクセスの呼び出し処理が行われる（ステップ６０）。そして、ＤＬＬインジェクション１３ｂ’が、このＡＰＩの呼び出し処理を横取りする（ステップ６１）。
ワープロに使用されるセキュリティは、使用セキュリティ記憶部３７に記憶されているように、セキュリティ２である。
したがって、ＤＬＬインジェクション１３ｂ’は、セキュリティ２記憶部３６に記憶されているセキュリティ２の内容にしたがって、実行プログラム１１ｂ’の動作を制御する（ステップ６２）。
【０１００】
このとき、ＡＰＩは「インターネットへのアクセス」であり、セキュリティ２記憶部３６にはセキュリティ２の内容として「インターネットへのアクセス：不可」が記憶されているため、ＤＬＬインジェクション１３ｂ’は、ＡＰＩ４０を呼び出すことなく、実行プログラム１１ｂ’に処理を許可できないことを示す情報を返却する。
【０１０１】
一方、ワープロによって、ハードディスクへの書き込みを行うためのＡＰＩが呼び出されたとする（ステップ６０）。ＤＬＬインジェクション１３ｂ’が、このＡＰＩの呼び出し処理を横取りする（ステップ６１）。
ワープロに使用されるセキュリティは、セキュリティ２であるため、ＤＬＬインジェクション１３ｂ’は、セキュリティ２記憶部３６に記憶されているセキュリティ２の内容にしたがって、実行プログラム１１ｂ’の動作を制御する（ステップ６２）。
【０１０２】
このとき、ＡＰＩは「ハードディスクへの書き込み」であり、セキュリティ２記憶部３６にはセキュリティ２の内容として「ハードディスクへの書き込み：可」が記憶されているため、ＤＬＬインジェクション１３ｂ’は、ＡＰＩ４０を呼び出して、その動作を許可する。
【０１０３】
以上のように、本実施形態の情報漏洩防止装置１−３によれば、実行プログラムにより使用されるメモリ領域において、ＤＬＬインジェクションを実行させ、その実行プログラムに対応するセキュリティポリシーにしたがって、動作を制御することができ、アプリケーションプログラム毎に異なるセキュリティポリシーを適用することが可能になっている。
【０１０４】
また、上記各実施形態によれば、ＡＰＩフックやＤＬＬインジェクションのようなアプリケーションプログラムがＡＰＩを呼び出す部分に横取り処理部を構成することによって、ＯＳやＯＳ内部などのドライバに手を加えることなく、アプリケーションプログラム（実行プログラム）の動きを制御することが可能となっている。さらに、アプリケーションプログラムに手を加える必要もない。
仮に、ＯＳの内部やドライバに手を加えてアプリケーションプログラムの動きを制御する仕組みにすると、ＡＰＩフックやＤＬＬインジェクションのような仕組みが第三者によって設定された場合には、アプリケーションプログラムとＯＳとの間の情報のやり取りが傍受されたり、改ざんされたりする虞がある。
このため、アプリケーションプログラムがＡＰＩを呼び出す部分に横取り処理部を構成することは、セキュリティ上も好ましいと考えられる。
【０１０５】
また、上記各実施形態において、横取り処理部として、暗号化処理部と復号化処理部とをさらに備えた場合に関し、仮にこれらをＯＳ内部やドライバに備えて実現すると、アプリケーションプログラムとＯＳとの間には暗号化されていないデータがやり取りされることになる。これに対して、上記各実施形態によれば、アプリケーションプログラムによるＡＰＩの呼び出し直後に暗号化や復号化を行うことができるため、盗聴・傍受の危険性を軽減させることが可能となる。
【０１０６】
さらに、アプリケーションの動きを完全に制御するという観点からも、ＯＳの内部においてその仕組みを完全に構築するよりも、アプリケーションが直接呼び出すＡＰＩを横取りすることで、その動きを制御するほうが容易である。すなわち、アプリケーションの外部への呼び出しはすべてＡＰＩで行われているため、ＡＰＩの動きを制御することにより、例外なくアプリケーションの外部との呼び出しを制御することができるからである。
【０１０７】
上記の各実施形態の情報漏洩防止装置は、本発明の情報漏洩防止プログラムに制御されたコンピュータを用いて実現することができる。コンピュータのＣＰＵは、情報漏洩防止プログラムにもとづいてコンピュータの各構成要素に指令を送り、情報漏洩防止装置の動作に必要となる所定の処理、例えば、モード切替処理、設定モードの実行処理、実行プログラム毎のセキュリティ設定切替処理等を行わせる。このように、本発明の情報漏洩防止装置における各処理、動作は、プログラムとコンピュータとが協働した具体的手段により実現できるものである。
【０１０８】
プログラムは予めＲＯＭ，ＲＡＭ等の記録媒体に格納され、コンピュータに実装された記録媒体から当該コンピュータにプログラムを読み込ませて実行されるが、例えば通信回線を介してコンピュータに読み込ませることもできる。
また、プログラムを格納する記録媒体は、例えば半導体メモリ、磁気ディスク、光ディスク、その他任意のコンピュータで読取り可能な任意の記録手段により構成できる。
【０１０９】
以上説明したように、本発明の実施形態に係る情報漏洩防止装置、及び情報漏洩防止プログラムによれば、コンピュータの再起動やログオンなどを行うことなく、コンピュータのセキュリティモードを状況に応じた様々な内容に変更することが可能である。
また、一台のコンピュータにおいて、アプリケーション毎に、異なる複数のセキュリティポリシーを同時に適用することも可能となる。
【０１１０】
本発明は、以上の実施形態に限定されるものではなく、本発明の範囲内において、種々の変更実施が可能であることは言うまでもない。
例えば、第一から第三までの各実施形態を様々に組み合わせた構成とするなど適宜変更することが可能である。
【産業上の利用可能性】
【０１１１】
本発明は、例えば企業や学校等において、情報の漏洩を簡易に抑制可能したい場合などに好適に利用することが可能である。
【符号の説明】
【０１１２】
１，１−２，１−３  情報漏洩防止装置
１０，１０ａ，１０ｂ，１０ａ’，１０ｂ’  実行プログラム使用メモリ領域
１１，１１ａ，１１ｂ，１１ａ’，１１ｂ’  実行プログラム
１２  横取り処理部
１２−１  切替検知部
１２−２  モード実行部
１２１，１２２  ＡＰＩフック（ＤＬＬ）
１３ａ’，１３ｂ’  ＤＬＬインジェクション
２０  モード切替部
３０  共有メモリ
３１  切替条件記憶部
３２  設定モード記憶部
３３  モード内容記憶部
３４  使用横取り処理記憶部
３５  セキュリティ１記憶部
３６  セキュリティ２記憶部
３７  使用セキュリティ記憶部
４０  ＡＰＩ（本来呼び出されるもの）
５０  オペレーティングシステム
６０  記憶装置用ドライバ
７０  プリンタ用ドライバ
８０  ネットワーク用ドライバ
２  記憶装置
３  プリンタ
４  ネットワーク装置
【図１】
2019079289.tif 000003
【図２】
2019079289.tif 000004
【図３】
2019079289.tif 000005
【図４】
2019079289.tif 000006
【図５】
2019079289.tif 000007
【図６】
2019079289.tif 000008
【図７】
2019079289.tif 000009
【図８】
2019079289.tif 000010
【図９】
2019079289.tif 000011
【図１０】
2019079289.tif 000012
【図１１】
2019079289.tif 000013
【図１２】
2019079289.tif 000014