(57)【要約】【課題】  アプリケーションの脆弱性を攻撃されても、逆方向へのファイルデータ転送が不可能な一方向性を確保したファイル転送を実現する。【解決手段】  ファイル転送元からのファイルを受信するファイル受信プロセス、そのファイル受信プロセスから中継プロセス、ファイル転送先へファイルを送信するファイル送信プロセスの間のファイルデータの受け渡しを行う場合に、ファイルデータの受け渡しの一方向性が確保されるような権限を設定する。【選択図】  図１
2007219975.tif 000002
【特許請求の範囲】
【請求項１】
転送元から受信したファイルを転送先への一方向性を確保して転送するファイル転送方法であって、
ファイル受信プロセスが、当該ファイル受信プロセスに通信権限が設定されたインタフェースを介して転送元から送信されたファイルを受信し、受信用記憶手段に一時記憶した後、当該ファイル受信プロセスに通信権限が設定された中継プロセスに対して、データを伴わない受信通知を送信する第１のステップと、
前記受信通知を受信した前記中継プロセスが、当該中継プロセスに読み込み権限が設定された前記受信用記憶手段から一時記憶されたファイルを読み込み、当該中継プロセスに書き込み権限が設定された送信用記憶手段に一時記憶させた後、当該中継プロセスに起動権限が設定されたファイル送信プロセスを起動する第２のステップと、
起動された前記ファイル送信プロセスが、当該ファイル送信プロセスにファイル読み込み権限が設定された前記送信用記憶手段からファイルを読み込み、当該ファイル送信プロセスに通信権限が設定されたインタフェースを介して前記送信用記憶手段から読み込んだファイルを転送先に転送する第３のステップと
を備えることを特徴とするファイル転送方法。
【請求項２】
前記第２のステップにおいて、前記中継プロセスが当該中継プロセスに読み込み権限が設定されたチェックルールテーブルからチェックルールを読み込み、前記受信用記憶手段から読み込んだファイルのデータを所定のチェック規則に従ってチェックし、チェック規則に抵触しない場合のみ前記ファイル送信プロセスを起動することを特徴とする請求項１に記載のファイル転送方法。
【請求項３】
転送元から受信したファイルを転送先への一方向性を確保して転送するファイル転送システムであって、
通信権限が設定されたインタフェースを介して転送元から送信されたファイルを受信し、受信用記憶手段に一時記憶した後、通信権限が設定された中継手段に対して、データを伴わない受信通知を送信するファイル受信手段と、
前記受信通知を受信したことにより、読み込み権限が設定された前記受信用記憶手段から一時記憶されたファイルを読み込み、書き込み権限が設定された送信用記憶手段に一時記憶させた後、起動権限が設定されたファイル送信手段を起動する中継手段と、
前記中継手段に起動されたことにより、読み込み権限が設定された前記送信用記憶手段からファイルを読み込み、通信権限が設定されたインタフェースを介して前記送信用記憶手段から読み込んだファイルを転送先に転送するファイル送信手段と
を備えることを特徴とするファイル転送システム。
【請求項４】
前記中継手段が、当該中継手段に読み込み権限が設定されたチェックルールテーブルからチェックルールを読み込み、前記受信用記憶手段から読み込んだファイルのデータを所定のチェック規則に従ってチェックし、チェック規則に抵触しない場合のみ前記ファイル送信手段を起動することを特徴とする請求項１に記載のファイル転送システム。
【請求項５】
コンピュータを、転送元から受信したファイルを転送先へ転送するファイル転送手段として機能させるプログラムであって、
コンピュータを、
通信権限が設定されたインタフェースを介して転送元から送信されたファイルを受信し、受信用記憶手段に一時記憶した後、通信権限が設定された中継手段に対して、データを伴わない受信通知を送信するファイル受信手段と、
前記受信通知を受信したことにより、読み込み権限が設定された前記受信用記憶手段から一時記憶されたファイルを読み込み、書き込み権限が設定された送信用記憶手段に一時記憶させた後、起動権限が設定されたファイル送信手段を起動する中継手段と、
前記中継手段に起動されたことにより、読み込み権限が設定された前記送信用記憶手段からファイルを読み込み、通信権限が設定されたインタフェースを介して前記送信用記憶手段から読み込んだファイルを転送先に転送するファイル送信手段と
して機能させることを特徴とするファイル転送プログラム。
【請求項６】
前記中継手段を、当該中継手段に読み込み権限が設定されたチェックルールテーブルからチェックルールを読み込み、前記受信用記憶手段から読み込んだファイルのデータを所定のチェック規則に従ってチェックし、チェック規則に抵触しない場合のみ前記ファイル送信手段を起動する手段として機能させることを特徴とする請求項５に記載のファイル転送プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションの脆弱性を攻撃されても逆方向へのファイル転送を抑止し、一方向性を確保したファイル転送を実現するファイル転送方法及びシステム並びにプログラムに関する。
【背景技術】
【０００２】
情報漏洩問題などに対し、高セキュリティ環境が望まれている分野では、セキュリティレベルの異なるネットワークを物理的に分離している。これはエアギャップとも呼ばれるが、物理的にネットワークを分離することにより情報漏洩問題などを防ぐことができる。
また、ＶＰＮなどの技術を用いて論理的に分離したネットワークを利用する場合もある。これは、前記のエアギャップよりセキュリティは下がるものの、情報漏洩問題を解決することが出来る。
このように、セキュリティレベルの異なるネットワークを複数利用する場合、利便性のために、一方向性を確保したファイル転送機能が望まれる場合がある。例えば、機密データを扱う機関に意おいて、当該機関からネットワークをかいして外部のＷｅｂサイト等にアクセスし、そのＷｅｂサイトから情報をファイル転送によって収集するという処理は許可するが、外部から当該機関にアクセスし、当該機関が保持する機密データをファイル転送するという処理は許さないというケースである。
【０００３】
従来において、ファイル転送を行なう技術として、RFC 959(非特許文献1)で規程されたFTP(File Transfer Protocol)を実装したFTPサーバやFTPクライアントが知られている。また、各種アプリケーションの内部でも、独自にファイル転送機能を実現しているものもある。これらは、ファイル送信プログラムとファイル受信プログラムが、TCP(及びUDP)通信を利用して、独自のプロトコルでファイル転送を実現している。一方向のファイル転送は、これらの一部だけを実装すれば、実現可能である。
一方、通信データ内容をチェックし、異なるネットワークに転送する技術としては、アプリケーションゲートウェイがある。最も一般的なものは、Webプロキシと呼ばれるもので、通信先を限定したり、コンテンツフィルタリングを行ったりするものである。
そこで、FTPサーバやクライアントなどの従来技術を用いて、ファイル送信専用アプリケーションやファイル受信専用アプリケーションを実現し、アプリケーションゲートウェイなどの従来技術を用いてファイル転送用アプリケーションを実現し、このファイル転送用アプリケーションを中間に配置することにより、一方向のファイル転送やチェック機能を実現できる。
【０００４】
しかしながら、TCP通信は双方向データ通信のプロトコルであるため、送信専用あるいは受信専用、または転送用のアプリケーションそれ自体に脆弱性が存在した場合、これらのアプリケーションの脆弱性を攻撃し、逆方向のデータ通信を確立する攻撃コードを実行させることが可能である。したがって、さらに逆方向のファイルデータ転送を実現する攻撃コードを実行させれば、逆方向のファイル転送が実現できてしまう。また、チェックの回避も行われてしまう可能性がある。
そこで、MAC(強制アクセス制御)機構と、最小特権機構を持つOS、いわゆるセキュアOS(非特許文献2、3)を利用することが考えられる。すなわち、現在のセキュリティ技術において、DAC(任意アクセス制御)しか持たないOS（オペレーティングシステム）では、アプリケーションの脆弱性により、root特権(管理者権限)を不正に奪取し利用された場合、リソースに無制限にアクセスすることが可能になり、問題であるとされている。また、アプリケーションの脆弱性を完全に排除することは不可能とされている。
セキュアOSでは、MAC機構によりroot権限を持つユーザやプロセスでも回避不可能なアクセス制御を実現し、非常に細かいアクセス制御設定が可能な最小特権機構を用いて、アクセス制御設定を施す。これにより、各ユーザやプロセスが必要最小限の権限を持ち、仮にroot特権を奪取されても、セキュアOSで設定された権限を逸脱できないため、被害を最小限に抑えられる。
【０００５】
【非特許文献１】Request for Comments: 959  FILE TRANSFER PROTOCOL (FTP)  1140406424820_0.txt number=959
【非特許文献２】個人情報保護法から見るセキュアOSの必要性  第２回：「セキュアOSとは」   http://www.thinkit.co.jp/free/compare/7/2/1.html
【非特許文献３】「セキュアOS SELinux入門」第1回  セキュアOSが必要な理由   http://itpro.nikkeibp.co.jp/members/ITPro/oss/20040422/1/
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、セキュアOSでは、必要最小限のアクセス権限を与えることでセキュリティを高めるが、必要な権限は与えざるえない。すなわち、各々のアプリケーション間は、主にTCP通信を利用することになるので、ファイル転送アプリケーションにもTCP通信を行なう権限を与えざるを得ない。
しかし、TCP通信を行なう権限を与えてしまうと、TCP通信は双方向データ通信のプロトコルであるため、前述の場合と同様に、アプリケーションの脆弱性を攻撃し、逆方向のデータ通信路を確立する攻撃コードを実行させた後、さらに逆方向のファイルデータ転送を実現する攻撃コードを実行させることにより、逆方向のファイル転送を許してしまうという事態が生じ、転送データのチェックの回避も行われてしまう可能性がある。
【０００７】
本発明の目的は、ファイル転送アプリケーションの脆弱性を攻撃されても、逆方向へのファイルデータ転送が不可能な、一方向性を確保したファイル転送を実現できるファイル転送方法及びシステム並びにプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明に係る一方向性を確保したファイル転送方法は、転送元から受信したファイルを転送先への一方向性を確保して転送するファイル転送方法であって、
ファイル受信プロセスが、当該ファイル受信プロセスに通信権限が設定されたインタフェースを介して転送元から送信されたファイルを受信し、受信用記憶手段に一時記憶した後、当該ファイル受信プロセスに通信権限が設定された中継プロセスに対して、データを伴わない受信通知を送信する第１のステップと、
前記受信通知を受信した前記中継プロセスが、当該中継プロセスに読み込み権限が設定された前記受信用記憶手段から一時記憶されたファイルを読み込み、当該中継プロセスに書き込み権限が設定された送信用記憶手段に一時記憶させた後、当該中継プロセスに起動権限が設定されたファイル送信プロセスを起動する第２のステップと、
起動された前記ファイル送信プロセスが、当該ファイル送信プロセスにファイル読み込み権限が設定された前記送信用記憶手段からファイルを読み込み、当該ファイル送信プロセスに通信権限が設定されたインタフェースを介して前記送信用記憶手段から読み込んだファイルを転送先に転送する第３のステップとを備えることを特徴とする。
また、前記第２のステップにおいて、前記中継プロセスが当該中継プロセスに読み込み権限が設定されたチェックルールテーブルからチェックルールを読み込み、前記受信用記憶手段から読み込んだファイルのデータを所定のチェック規則に従ってチェックし、チェック規則に抵触しない場合のみ前記ファイル送信プロセスを起動することを特徴とする。
【０００９】
本発明に係るファイル転送システムは、転送元から受信したファイルを転送先への一方向性を確保して転送するファイル転送システムであって、
通信権限が設定されたインタフェースを介して転送元から送信されたファイルを受信し、受信用記憶手段に一時記憶した後、通信権限が設定された中継手段に対して、データを伴わない受信通知を送信するファイル受信手段と、
前記受信通知を受信したことにより、読み込み権限が設定された前記受信用記憶手段から一時記憶されたファイルを読み込み、書き込み権限が設定された送信用記憶手段に一時記憶させた後、起動権限が設定されたファイル送信手段を起動する中継手段と、
前記中継手段に起動されたことにより、読み込み権限が設定された前記送信用記憶手段からファイルを読み込み、通信権限が設定されたインタフェースを介して前記送信用記憶手段から読み込んだファイルを転送先に転送するファイル送信手段と
を備えることを特徴とする。
また、前記中継手段が、当該中継手段に読み込み権限が設定されたチェックルールテーブルからチェックルールを読み込み、前記受信用記憶手段から読み込んだファイルのデータを所定のチェック規則に従ってチェックし、チェック規則に抵触しない場合のみ前記ファイル送信手段を起動することを特徴とする。
【００１０】
本発明に係るファイル転送プログラムは、コンピュータを、転送元から受信したファイルを転送先へ転送するファイル転送手段として機能させるプログラムであって、
コンピュータを、
通信権限が設定されたインタフェースを介して転送元から送信されたファイルを受信し、受信用記憶手段に一時記憶した後、通信権限が設定された中継手段に対して、データを伴わない受信通知を送信するファイル受信手段と、
前記受信通知を受信したことにより、読み込み権限が設定された前記受信用記憶手段から一時記憶されたファイルを読み込み、書き込み権限が設定された送信用記憶手段に一時記憶させた後、起動権限が設定されたファイル送信手段を起動する中継手段と、
前記中継手段に起動されたことにより、読み込み権限が設定された前記送信用記憶手段からファイルを読み込み、通信権限が設定されたインタフェースを介して前記送信用記憶手段から読み込んだファイルを転送先に転送するファイル送信手段と
して機能させることを特徴とする。
また、前記中継手段を、当該中継手段に読み込み権限が設定されたチェックルールテーブルからチェックルールを読み込み、前記受信用記憶手段から読み込んだファイルのデータを所定のチェック規則に従ってチェックし、チェック規則に抵触しない場合のみ前記ファイル送信手段を起動する手段として機能させることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、ファイル転送アプリケーションの脆弱性を攻撃されても、逆方向へのファイルデータ転送が不可能な、一方向性を確保したファイル転送を実現できる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明を実施する場合の一形態を図面を参照して具体的に説明する。なお、以下に説明する実施形態では、Linuxを前提としているが、同様の機能がある他のOSでも同様である。また、本発明はセキュアOSも設定方法も含まれているが、説明の都合上、セキュアOSの設定方法については後で説明する。
図１は、本発明の実施形態を示すシステム構成図である。
本実施形態のファイル転送システムは、ネットワークＡ１０１、ネットワークＢ１０２、クライアントＡ１１０、クライアントＢ１２０、ファイル転送サーバ１３０で構成される。
ネットワークＡ１０１とＢ１０２は、物理的もしくは論理的に分離したネットワークである。本例では、ネットワークＡ１０１はファイルデータを送信する側のネットワークであり、ネットワークＢ１０２はファイルデータ受信する側のネットワークである。
クライアントＡ１１０は、ネットワークＡ１０１に接続されており、ファイル送信専用プログラム１１１が実装されている。ファイル送信専用プログラム１１１は、クライアントＡ１１０の操作に応じて、後述するセキュリティゲートアプリケーション１４０中のファイル受信プロセス１４１と通信を行い、ファイルデータを送るプログラムである。
【００１３】
クライアントＢ１２０は、ネットワークＢ１０２に接続されており、ファイル受信専用プログラム１２１が実装されている。ファイルデータ受信専用プログラム１２１は、後述するセキュリティゲートアプリケーション１４０中のファイル送信プロセス１４３と通信を行い、ファイル送信プロセス１４３から送られてくるファイルデータを受信するプログラムである。
ファイル転送サーバ１３０は、ネットワークＡ１０１、ネットワークＢ１０２の両方に接続されており、セキュリティゲートアプリケーション１４０が実装されている。
セキュリティゲートアプリケーション１４０は、ファイル送信専用プログラム１１１とファイル受信専用プログラム１２１の間のファイルデータの通信を仲介し、異なるネットワーク間でのファイルデータ転送を実現するものである。
セキュリティゲートアプリケーション１４０は、ファイル受信プロセス１４１、チェックプロセス１４２、ファイル送信プロセス１４３の３つのプロセスと、受信用ディレクトリ１４４、送信用ディレクトリ１４５の２つのディレクトリ、チェックルールテーブル１４６から構成されている。
【００１４】
図２は、セキュリティゲートアプリケーション１４０が、ファイル送信専用プログラム１１１からファイルデータを受けた際の、全体の処理概要を示すフローチャートである。
簡単に説明すると、まず、ファイル受信プロセス１４１がファイルデータ受信処理を行い（ステップ２０１）、チェックプロセス１４２が受け取ったファイルデータの通信先やコンテンツなどのチェック行い（ステップ２０２）、チェックが通ればファイル送信プロセス１４３がファイルデータ送信を行なう（ステップ２０３）。ステップ２０２で、チェックが通らなければ終了する。
【００１５】
次に、通信されるファイルデータの例を図３を用いて説明する。
ファイルデータ３００は、ファイル名３０１、ファイル属性３０２、実ファイル内容３０３で構成されている。ファイル名３０１は、送受信されるファイル名そのものである。ファイル属性３０２は、ファイルサイズやハッシュ値、通信先など、ファイルデータ送受信やチェックに利用するデータである。本実施形態では、特に触れないが、ファイルに関連するあらゆるデータを入れてチェックプロセスなどで利用しても良い。実ファイル内容３０３は、送受信されるファイル内容のデータそのものである。
ファイル送信専用プログラム１１１は、送信するファイルから、ファイルデータ３００を作成し、ファイル受信プロセス１４１に送る。ファイルデータ受信専用プログラム１２１は、ファイルデータ３００を受信し、実際のファイルに直す。
【００１６】
次に、セキュリティゲートアプリケーション１４０の処理の詳細を説明する。
図４は、ファイルデータ受信処理（図２のステップ２０１）の処理を行なうファイル受信プロセス１４１の処理を示すフローチャートである。
ファイル受信プロセス１４１は、まずファイルデータを受信し、受信用ディレクトリ１４４に書き出す（ステップ４０１）。このときのファイル名は特定の名前、もしくはファイル受信プロセス１４１のプロセスＩＤなど、チェックプロセス１４２に予め与えられる、もしくは、特定できる名前を利用する。本実施形態では、ファイル受信プロセス１４１のプロセスＩＤを用いることとする。
次に、ファイル受信プロセス１４１は、チェックプロセス１４２に、一方向でデータを伴わない、かつセキュアＯＳで制御可能な方法で、ファイルが受信されたことをチェックプロセス１４２に通知する（ステップ４０２）。この具体的な方法の例として挙げられるのは、Linuxのシグナルを利用することである。
ここで、Linuxのシグナルの概念を簡単に説明する。Linuxでは、プロセスは他のプロセスに対して、シグナルと呼ばれる一方向の通知を行なうことができる。シグナルには、シグナル番号によって、その通知に意味を持たせることができる。シグナルを受け取ったプロセスは、シグナル番号と通知元プロセスIDを識別可能である。ただし、シグナルでは送信元のプロセスがデータを付加することはできない。また、シグナルの送受信は、SELinuxなどのセキュアOSで制御可能である。
【００１７】
本実施例では、Linuxを利用して説明するが、その他のOSでは、それぞれのOSで用意された同等の機能を利用するものとする。以下では、単にシグナルを送ると記述する。
ステップ４０２の後、ファイル受信プロセス１４１は、チェックプロセス１４２からのシグナルを待つ（ステップ４０３）。チェックプロセス１４２からシグナルを受信したら、そのシグナルがファイルデータ送信済みの意味を持つシグナルであるかを識別する（ステップ４０４）。
ステップ４０４で、送信済みを示すシグナルであれば、受信プロセス１４１は、それをクライアントＡ１１０のファイル送信専用プログラム１１１に伝える通信を行なう送信済み処理を行なう。
送信されなかったという意味のシグナルであれば、それをファイル送信専用プログラム１１１に伝える通信を行なう送信不可処理を行なう。
本実施形態では、詳細に記述しないが、ファイル送信専用プログラム１１１に、ユーザに送信できたかどうかを告知する処理を入れ、受信プロセス１４１が、その告知に利用する情報を作成し通信を行なっても良い。
【００１８】
図５は、ファイルデータ内容のチェック処理（図２のステップ２０２）を行なうチェックプロセス１４２が、受信プロセス１４１からシグナルを受信した（図４のステップ４０２）後の処理を示すフローチャートである。
ファイルチェックプロセス１４２は、受信したシグナルの送信元のプロセスＩＤを保持する（ステップ５０１）。この保持したプロセスＩＤは、受信プロセス１４１のプロセスＩＤであり、また、ステップ４０１で説明したように、受信したファイルデータ３００を受信ディレクトリ１４４上に書き出した際のファイル名でもある。
次に、チェックプロセス１４２は、チェックルールテーブル１４６からチェックルールを読み込んで、受信ディレクトリ１４４上のファイルデータをチェックする（ステップ５０２）。ファイルデータは、ステップ５０１で保持したプロセスＩＤからファイル名が分かるので、一意に識別できる。
ステップ５０２のチェックに関しては、本実施形態では詳細に記述しないが、ファイルデータ３００に対し、ファイルデータ内に含まれるコードの実行を伴わないチェックであれば、既存のあらゆるチェック技術を利用できる。例えば、ファイル名３０１から、ファイル識別子を取り出してチェックを行なうなことや、実ファイル内容３０３におけるパターンマッチなどである。
ファイル識別子を用いたチェックの場合のチェックルールの例を図６に示す。
【００１９】
図６の６０１は、拒否するファイル識別子を列挙したチェックルールの例である。６０２は、許可するファイル識別子を列挙したルール１４６の例である。
次に、チェックプロセス１４２は、チェックが通ったかどうかを判別する（ステップ５０３）。もし、チェックが通らなければ、送信されなかったことを意味するシグナルを、先ほど保持したプロセスＩＤを用いて、受信プロセス１４１に送り、チェックしたファイルデータを削除する（ステップ５０４）。
ステップ５０３でチェックが通った場合は、チェックしたファイルデータを受信用ディレクトリ１４４から、送信用ディレクトリ１４５に移動する（ステップ５０５）。この移動では、ファイル名は変更せずに、ファイルが存在するディレクトリのみを変える。
次に、チェックプロセス１４２は、送信用ディレクトリ１４５上のファイルデータのパスを、引数に指定して、ファイル送信プロセス１４３を起動する（ステップ５０６）。
最後に、チェックプロセス１４２は、送信したことを意味するシグナルを受信プロセス１４１に送る（ステップ５０７）。
【００２０】
図７は、ファイルデータ送信（図２のステップ２０３）を行なうファイル送信プロセス１４３が、チェックプロセス１４２から起動された（図５のステップ５０６）後の処理を示すフローチャートである。
ファイル送信プロセス１４３は、まず、ステップ５０６で渡された引数のパスが示すファイルデータを、クライアントＢ１２０のファイルデータ受信専用プログラム１２１に送信する（ステップ７０１）。その後、ファイル送信プロセス１４３は、送信したファイルデータを削除する（ステップ７０２）。
以上により、チェック機能を備えた一方向のファイルデータ転送が終了する。
【００２１】
次に、セキュアOSの設定方法について説明する。
本実施形態ではSELinuxを前提とするが、他の同等の機能を持つセキュアOSでも良い。
SELinuxでは、起動のタイミングでプロセスにドメインと呼ばれるラベルを付与することができる。また、ディレクトリやファイルにタイプと呼ばれるラベルを付与することができる。また、ディレクトリ上に作られたファイルに対して、ファイル作成時に、ディレクトリと同じタイプを付与する設定もできる。
ドメインとタイプの間では、ファイルやディレクトリに対しては「読み込み、書き込み、実行」だけでなく、「削除」などの権限を設定することができる。ファイルやディレクトリ以外でも、ネットワークインタフェースに対して、通信の権限を与えることもできる。ドメイン間では、プロセス間通信やシグナル通信についても設定することができる。SELinuxにおいては、設定された権限以外の動作は行なえない。
【００２２】
そこで本実施形態では、各々のプロセスや、ファイルなどのリソースに適切なドメイン及びタイプを付与する。例えば、本実施形態で説明してきたプロセスやリソースに対しては、図８のようなドメインと、図９のようなタイプを予め付与しておく。
すなわち、ファイル受信プロセス１４１には、ドメインとして「recv_t」、タイプとして受信用ディレクトリ及び受信用ディレクトリ上のファイルを示す「recv_data_t」を付与し、チェックプロセス１４２にはドメインとして「check_t」、タイプとしてチェックルールテーブル１４６のチェックルールを示す「check_rule_t」を付与し、ファイル送信プロセス１４３にはドメインとして「send_t」、タイプとして送信用ディレクトリ及び送信用ディレクトリ上のファイルを示す「send_data_t」を付与しておく。さらに、ネットワークＡ１０１に接続されたインタフェースにはタイプとして「ifnet1_t」を付与し、ネットワークＢ１０２に接続されたインタフェースにはタイプとして「ifnet2_t」を付与しておく。
そして、必要最小限のアクセス権限を設定する。例えば、本実施形態で説明してきたプロセスやリソースに対しては、図１０の権限設定テーブル１０００に示したような権限設定を行なう。
【００２３】
図１０において、１００１はファイル受信プロセス１４１に設定したアクセス権限を示すものであり、アクセス先としてネットワークＡ１０１に接続されたインタフェースに付与したタイプ「ifnet1_t」が設定され、アクセス元であるファイル受信プロセス１４１からアクセス先であるネットワークＡ１０１に接続されたインタフェースに対して、ＴＣＰ及びＵＤＰなどの通信権限が設定されている。
１００２はファイル受信プロセス１４１に設定したアクセス権限を示すものであり、アクセス先として受信用ディレクトリ１４４及び受信用ディレクトリ１４４上のファイルに付与したタイプ「recv_data_t」が設定され、アクセス元であるファイル受信プロセス１４１からアクセス先である受信用ディレクトリ１４４及び受信用ディレクトリ１４４上のファイルに対して、ファイル作成、ファイルの書き込み権限が設定されている。
１００３はファイル受信プロセス１４１に設定したアクセス権限を示すものであり、アクセス先としてチェックプロセス１４２に付与したタイプ「check_t」が設定され、アクセス元であるファイル受信プロセス１４１からアクセス先であるチェックプロセス１４２に対して、ファイルを受信したことを示すシグナルを送信する権限が設定されている。
【００２４】
１００４はチェックプロセス１４２に設定したアクセス権限を示すものであり、アクセス先としてチェックテーブル１４６のチェックルールに付与したタイプ「check_rule_t」が設定され、アクセス元であるチェックプロセス１４２からアクセス先であるチェックルールに対して、ファイル読み込み（ルール読み込み）を許可する権限が設定されている。
１００５はチェックプロセス１４２に設定したアクセス権限を示すものであり、アクセス先として受信用ディレクトリ１４４及び受信用ディレクトリ１４４上のファイルに付与したタイプ「recv_data_t」が設定され、アクセス元であるチェックプロセス１４２からアクセス先である受信用ディレクトリ１４４及び受信用ディレクトリ１４４上のファイルに対して、ファイル読み込み、ファイル削除を行なう権限が設定されている。
１００６はチェックプロセス１４２に設定したアクセス権限を示すものであり、アクセス先として送信用ディレクトリ１４５及び送信用ディレクトリ１４５上のファイルに付与したタイプ「send_data_t」が設定され、アクセス元であるチェックプロセス１４２からアクセス先である送信用ディレクトリ１４５及び送信用ディレクトリ１４５上のファイルに対して、ファイル生成、ファイル書き込みを行なう権限が設定されている。
１００７はチェックプロセス１４２に設定したアクセス権限を示すものであり、アクセス先としてファイル送信プロセス１４３に付与したタイプ「send_t」が設定され、アクセス元であるチェックプロセス１４２からアクセス先であるファイル送信プロセス１４３に対して、当該プロセス１４３の起動を行なう権限が設定されている。
１００８はチェックプロセス１４２に設定したアクセス権限を示すものであり、アクセス先としてファイル受信プロセス１４１に付与したタイプ「recv_t」が設定され、アクセス元であるチェックプロセス１４２からアクセス先であるファイル受信プロセス１４１に対して、ファイルを送信したことを示すシグナルの送信、ファイルを送信しなかったことを示すシグナルの送信を行なう権限が設定されている。
【００２５】
１００９はファイル送信プロセス１４３に設定したアクセス権限を示すものであり、アクセス先として送信用ディレクトリ１４５及び送信用ディレクトリ１４５上のファイルに付与したタイプ「send_data_t」が設定され、アクセス元であるファイル送信プロセス１４３からアクセス先である送信用ディレクトリ１４５及び送信用ディレクトリ１４５上のファイルに対して、ファイル読み込み、ファイル削除を行なう権限が設定されている。
１０１０はファイル送信プロセス１４３に設定したアクセス権限を示すものであり、アクセス先としてネットワークＢ１０２のインタフェースに付与したタイプ「ifnet_2」が設定され、アクセス元であるファイル送信プロセス１４３からアクセス先であるネットワークＢ１０２のインタフェースに対して、ＴＣＰ及びＵＤＰなどの通信権限が設定されている。
【００２６】
１００１により、ファイル受信プロセス１４１は、ネットワークＡ１０１に接続したインタフェースでクライアント１１０上のファイル送信専用アプリケーション１１１と通信できる。ネットワーク１０１に接続したインタフェースでの通信権限は、他のプロセスには与えていない。そのため、他のプロセスは、ネットワークＡ１０１への通信ができない。
１００２により、ファイル受信プロセス１４１は、受信用ディレクトリ１４４にファイルデータ３００のファイルを書き出すことができる。受信用ディレクトリ１４４へのファイルを書き出す権限は、他のプロセスに与えていない。そのため、他のプロセスは、受信用ディレクトリ１４４へファイルを書き出すことができない。
１００３により、ファイル受信プロセス１４１は、チェックプロセス１４２にファイル受信を知らせるシグナルを送ることができる。ファイル受信を知らせるシグナルを送る権限は、他のプロセスに与えていない。そのため、他のプロセスは、チェックプロセス１４２にシグナルを送ることはできない。
１００４により、チェックプロセス１４２は、チェックルールテーブル１４６のチェックルールを読み出すことができる。しかし、書き出しは許されていないため、チェックルールテーブル１４６のチェックルールを変更することができない。このため、チェックルールテーブル１４６を改ざんして、チェックを回避することができない。また、他のプロセスにチェックルールテーブル１４６へのアクセス権限を与えていないので、当然改ざんすることはできない。
１００５により、チェックプロセス１４２は、受信用ディレクトリ１４４上のファイルデータ３００のファイルを読んで削除することができる。また、１００６により、チェックプロセス１４２は、送信用ディレクトリ１４５上のファイルデータ３００をファイルとして書き出すことが出来る。１００５及び１００６とあわせて、受信用ディレクトリ１４４から送信用ディレクトリ１４５へ、ファイルデータ３００を移動することができる。また、他のプロセスには、これら権限を与えていないので、ファイルデータ３００の移動や、送信用ディレクトリ１４５上への書き込みを行なうことはできない。また、チェックプロセス１４２自身も、送信用ディレクトリ１４４から受信用ディレクトリ１４４という逆方向のファイルデータ３００の移動はできない。
１００７により、チェックプロセス１４２は、ファイル送信プロセス１４３を起動することができる。他のプロセスに権限を与えていないので、チェックプロセス１４２を回避してファイル送信プロセス１４３を起動することはできない。
１００８により、チェックプロセス１４２は、ファイル受信プロセス１４１にファイル送信したこと、もしくはしなかったことを知らせるシグナルを送ることができる。これらのシグナルを送る権限は、他のプロセスに与えていない。そのため、他のプロセスは、ファイル受信プロセス１４１にシグナルを送ることはできない。
【００２７】
１００９により、ファイル送信プロセス１４３は、送信用ディレクトリ１４４上のファイルデータ３００のファイルを読み込んで削除することができる。ファイル送信プロセス１４３に、受信用ディレクトリ１４４へのファイルを書き出す権限を与えていないので、受信用ディレクトリ１４４へのファイルを書き出すことができない。
１０１０により、ファイル送信プロセス１４３は、ネットワークＢ１０２に接続したインタフェースで、クライアント１２０上のファイル受信専用アプリケーション１２１と通信できる。ネットワークＢ１０２に接続したインタフェースでの通信権限は、他のプロセスには権限を与えていない。そのため、他のプロセスは、ネットワークＢ１０２への通信ができない。
【００２８】
本実施形態のシステムでは、実際に外部とのデータ通信を行なう、ファイル受信プロセス１４１及びファイル送信プロセス１４３について、脆弱性を攻撃される可能性がある。
しかし、上記のようなセキュアＯＳの設定を行なうことにより、チェックを回避したファイルデータ転送や逆方向のファイルデータ通信は行なうことができなくなる。
チェックプロセス１４２は、ファイル受信プロセス１４１とのシグナルによる通信を行なうが、データを伴わない一方向の通信であるため、脆弱性攻撃を行なうことは論理的に不可能である。また、ファイルデータ３００のチェックは、ファイルの実行を伴わないチェックに限定することで、攻撃されることは無い。
また、既存技術であるため詳細は記述しないが、セキュアＯＳを適用すること自体で、ファイル転送サーバ１３０の上記プロセスなど以外の脆弱性への攻撃も防ぐ。
以上により、一方向性を確保し、チェック機構を備えたファイルデータ転送が実現できる。
【００２９】
なお、上記実施形態においては、ファイル内容のチェック機能を設けているが、ファイル内容のチェック機能については付加機能として適宜に付加するように構成することができる。
チェック機能を削除する場合には、チェックプロセス１４２はファイル受信プロセス１４１とファイル送信プロセス１４３との間でシグナルの受け渡し及びファイルデータの受渡しのみの中継プロセスとして動作する。
【図面の簡単な説明】
【００３０】
【図１】本発明の実施の形態を示すシステム構成図である。
【図２】システム全体の処理の概要を示すフローチャートである。
【図３】ファイルデータの構成例を示す図である。
【図４】ファイル受信プロセスの処理を示すフローチャートである。
【図５】チェックプロセスの処理を示すフローチャートである。
【図６】チェックルールの例を示す図である。
【図７】ファイル送信プロセスの処理を示すフローチャートである。
【図８】セキュアOS(SELinux)のドメインの設定例を示す図である。
【図９】セキュアOS(SELinux)のタイプの設定例を示す図である。
【図１０】セキュアOS(SELinux)の権限設定例を示す図である。
【符号の説明】
【００３１】
１０１…ネットワークＡ、１０２…ネットワークＢ、１１０…クライアントＡ、１１１…ファイル送信専用アプリケーション、１２０…クライアントＢ、１２１…ファイル受信専用アプリケーション、１３０…ファイル転送サーバ、１４０…セキュリティゲートアプリケーション、１４１…ファイル受信プロセス、１４２…チェックプロセス、１４３…ファイル送信プロセス、１４４…受信用ディレクトリ、１４５…送信用ディレクトリ１４６…チェックルールテーブル。
【図１】
2007219975.tif 000003
【図２】
2007219975.tif 000004
【図３】
2007219975.tif 000005
【図４】
2007219975.tif 000006
【図５】
2007219975.tif 000007
【図６】
2007219975.tif 000008
【図７】
2007219975.tif 000009
【図８】
2007219975.tif 000010
【図９】
2007219975.tif 000011
【図１０】
2007219975.tif 000012