特許第6598188号(P6598188)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社エヴリカの特許一覧

<>
  • 特許6598188-情報処理装置、方法およびプログラム 図000002
  • 特許6598188-情報処理装置、方法およびプログラム 図000003
  • 特許6598188-情報処理装置、方法およびプログラム 図000004
  • 特許6598188-情報処理装置、方法およびプログラム 図000005
  • 特許6598188-情報処理装置、方法およびプログラム 図000006
  • 特許6598188-情報処理装置、方法およびプログラム 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6598188
(24)【登録日】2019年10月11日
(45)【発行日】2019年10月30日
(54)【発明の名称】情報処理装置、方法およびプログラム
(51)【国際特許分類】
   H04L 12/70 20130101AFI20191021BHJP
   H04L 12/951 20130101ALI20191021BHJP
【FI】
   H04L12/70 100Z
   H04L12/951
【請求項の数】16
【全頁数】14
(21)【出願番号】特願2015-39596(P2015-39596)
(22)【出願日】2015年2月27日
(65)【公開番号】特開2016-163162(P2016-163162A)
(43)【公開日】2016年9月5日
【審査請求日】2018年1月30日
(73)【特許権者】
【識別番号】510068091
【氏名又は名称】株式会社エヴリカ
(74)【代理人】
【識別番号】100145838
【弁理士】
【氏名又は名称】畑添 隆人
(72)【発明者】
【氏名】山田 直樹
【審査官】 鈴木 肇
(56)【参考文献】
【文献】 特表2007−537617(JP,A)
【文献】 欧州特許出願公開第01122932(EP,A2)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/00
H04L 12/00−12/26
H04L 12/50−12/955
(57)【特許請求の範囲】
【請求項1】
ネットワークを流れる、ヘッダーとコンテンツを含むデータを、宛先に到達する前に取得するデータ取得手段と、
前記コンテンツを検査する検査手段と、
前記データ取得手段によって取得されたデータに含まれるヘッダーから、前記宛先に受信されるコンテンツを確定させないヘッダーを抽出する抽出手段と、
前記検査手段による検査が行われている間、前記データの少なくとも一部として、前記抽出手段によって抽出されたヘッダーを前記宛先に送信する検査中送信手段と、
前記検査手段によるコンテンツの検査が完了した後に、該コンテンツを含むデータのうち前記検査中送信手段によって送信済みの部分を除く前記データを、前記宛先に転送する転送手段と、
を備える情報処理装置。
【請求項2】
前記検査中送信手段は、前記宛先における前記データの受信待ち時間がタイムアウトしない間隔で、前記抽出手段によって抽出されたヘッダーを該宛先に送信する、
請求項1に記載の情報処理装置。
【請求項3】
前記データ取得手段によって取得されるコンテンツの検査に必要な検査時間を予測し、予測された検査時間に基づいて、前記検査中送信手段による送信回数を予測する送信回数予測手段を更に備え、
前記抽出手段は、前記データ取得手段によって取得されたデータに含まれるヘッダーから、前記宛先に受信されるコンテンツを確定させないヘッダーを、予測された前記送信回数に応じて決定された量抽出する、
請求項1又は2に記載の情報処理装置。
【請求項4】
前記検査手段は、該コンテンツが前記宛先への転送が許可されるコンテンツであるか否かを検査し、
前記転送手段は、前記検査手段による検査結果が、該コンテンツが前記宛先への転送が許可されるコンテンツであるという検査結果であった場合に、該コンテンツを含むデータのうち前記検査中送信手段によって送信済みの部分を除く前記データを、前記宛先に転送する、
請求項1から3の何れか一項に記載の情報処理装置。
【請求項5】
前記検査手段による検査結果が、該コンテンツが前記宛先への転送が許可されるコンテンツではないという検査結果であった場合に、前記転送手段による転送を中止する中止手段を更に備える、
請求項4に記載の情報処理装置。
【請求項6】
前記検査手段による検査結果が、該コンテンツが前記宛先への転送が許可されるコンテンツではないという検査結果であった場合に、該検査結果を該宛先に通知するための情報を、前記検査中送信手段によって送信済みの部分に続くデータの一部として該宛先に送信する、検査結果通知手段を更に備える、
請求項5に記載の情報処理装置。
【請求項7】
前記検査結果通知手段は、前記検査結果を前記宛先に通知するための情報を、前記検査中送信手段によって送信済みの部分に続くヘッダーおよびコンテンツの少なくとも何れかとして該宛先に送信する、
請求項6に記載の情報処理装置。
【請求項8】
前記検査中送信手段は、前記検査手段による検査が行われている間、前記データに含まれるヘッダーの少なくとも一部を前記宛先に送信する、
請求項1から7の何れか一項に記載の情報処理装置。
【請求項9】
ネットワークを流れる、ヘッダーとコンテンツを含むデータを、宛先に到達する前に取得するデータ取得手段と、
前記コンテンツを検査する検査手段と、
前記検査手段による検査が行われている間、前記データの少なくとも一部を前記宛先に送信する検査中送信手段と、
前記検査手段によるコンテンツの検査が完了した後に、該コンテンツを含むデータのうち前記検査中送信手段によって送信済みの部分を除く前記データを、前記宛先に転送する転送手段と、
前記宛先に受信されるコンテンツを確定させないヘッダーを生成するヘッダー生成手段と、を備え、
前記検査中送信手段は、ヘッダー生成手段によって生成されたヘッダーを更に送信する、
情報処理装置。
【請求項10】
送信元、宛先および要求コンテンツの種類の少なくとも何れかが所定の条件に合致するコンテンツ要求を検知するコンテンツ要求検知手段を更に備え、
前記データ取得手段は、前記コンテンツ要求検知手段によって検知されたコンテンツ要求に応じて送信されたコンテンツを含むデータを取得する、
請求項1から9の何れか一項に記載の情報処理装置。
【請求項11】
前記データは、複数のパケットに分割されて送信されており、
前記データ取得手段は、前記複数のパケットを組み立てることで前記データを取得する、
請求項1から10の何れか一項に記載の情報処理装置。
【請求項12】
前記データ取得手段は、前記データを、宛先に到達する前に取得し、該データに含まれるコンテンツの検査が完了するまで、該コンテンツの該宛先への転送を保留する、
請求項1から11の何れか一項に記載の情報処理装置。
【請求項13】
コンピューターが、
ネットワークを流れる、ヘッダーとコンテンツを含むデータを、宛先に到達する前に取得するデータ取得ステップと、
前記コンテンツを検査する検査ステップと、
前記データ取得ステップで取得されたデータに含まれるヘッダーから、前記宛先に受信されるコンテンツを確定させないヘッダーを抽出する抽出ステップと、
前記検査ステップにおける検査が行われている間、前記データの少なくとも一部として、前記抽出ステップで抽出されたヘッダーを前記宛先に送信する検査中送信ステップと、
前記検査ステップにおけるコンテンツの検査が完了した後に、該コンテンツを含むデータのうち前記検査中送信ステップで送信済みの部分を除く前記データを、前記宛先に転送する転送ステップと、
を実行する方法。
【請求項14】
コンピューターが、
ネットワークを流れる、ヘッダーとコンテンツを含むデータを、宛先に到達する前に取得するデータ取得ステップと、
前記コンテンツを検査する検査ステップと、
前記検査ステップにおける検査が行われている間、前記データの少なくとも一部を前記宛先に送信する検査中送信ステップと、
前記検査ステップにおけるコンテンツの検査が完了した後に、該コンテンツを含むデータのうち前記検査中送信ステップで送信済みの部分を除く前記データを、前記宛先に転送する転送ステップと、
前記宛先に受信されるコンテンツを確定させないヘッダーを生成するヘッダー生成ステップと、を実行し、
前記検査中送信ステップでは、ヘッダー生成ステップで生成されたヘッダーが更に送信される、
方法。
【請求項15】
コンピューターを、
ネットワークを流れる、ヘッダーとコンテンツを含むデータを、宛先に到達する前に取得するデータ取得手段と、
前記コンテンツを検査する検査手段と、
前記データ取得手段によって取得されたデータに含まれるヘッダーから、前記宛先に受信されるコンテンツを確定させないヘッダーを抽出する抽出手段と、
前記検査手段による検査が行われている間、前記データの少なくとも一部として、前記抽出手段によって抽出されたヘッダーを前記宛先に送信する検査中送信手段と、
前記検査手段によるコンテンツの検査が完了した後に、該コンテンツを含むデータのうち前記検査中送信手段によって送信済みの部分を除く前記データを、前記宛先に転送する転送手段と、
として機能させるプログラム。
【請求項16】
コンピューターを、
ネットワークを流れる、ヘッダーとコンテンツを含むデータを、宛先に到達する前に取得するデータ取得手段と、
前記コンテンツを検査する検査手段と、
前記検査手段による検査が行われている間、前記データの少なくとも一部を前記宛先に送信する検査中送信手段と、
前記検査手段によるコンテンツの検査が完了した後に、該コンテンツを含むデータのうち前記検査中送信手段によって送信済みの部分を除く前記データを、前記宛先に転送する転送手段と、
前記宛先に受信されるコンテンツを確定させないヘッダーを生成するヘッダー生成手段と、として機能させ、
前記検査中送信手段は、ヘッダー生成手段によって生成されたヘッダーを更に送信する、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ネットワーク上でデータを検査するための技術に関する。
【背景技術】
【0002】
従来、データパケットの境界で分割されたパターンを検索するためにコンピュータネットワーク上でデータパケットストリームを検査するための方法として、2つ以上のデータパケットがデータパケットストリームにおいて連続するか否かを判断し、連続するデータパケットからのペイロードを結合し、連続するデータパケットからの結合したペイロードを解析し、文字の組み合わせからなる複数のパターンを検索する方法、および、データパケットが所定時間以上システム中にあるときに、所定の判断基準に基づきデータパケットを出力データストリームに戻す方法、が提案されている(特許文献1を参照)。
【0003】
また、従来、インターネットへ接続する複数の加入者端末を収容するグループセンター局に接続されているゾーンセンター局内に、各加入者端末のユーザーID毎に、インターネットとの間で転送されるパケットデータを一時記憶する記憶装置と、記憶装置に記憶された複数のパケットデータをインターネット内のIPアドレスとネットワーク内の地域IPアドレスに対応させてファイルデータに組み立てて、組み立てたデータ内にコンピュータウイルスが存在するか否かを判定し、コンピュータウイルスが存在しないと判定したデータを加入者端末へ転送する機能とを備えるゲートウェイが提案されている(特許文献2を参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特表2009−510815号公報
【特許文献2】特開2001−256045号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来、ネットワーク上のデータを検査するために、データが宛先に到達する前にデータを取り込んで検査し、検査が終了した後に当該宛先に転送する技術がある。しかし、このような技術では、データを受信する端末において受信待ち時間がタイムアウトするおそれがある。
【0006】
本開示は、上記した問題に鑑み、ネットワーク上のデータを取得して検査する際に、データの宛先端末における受信待ち時間がタイムアウトすることを防止することを課題とする。
【課題を解決するための手段】
【0007】
本開示の一例は、ネットワークを流れる、ヘッダーとコンテンツを含むデータを、宛先に到達する前に取得するデータ取得手段と、前記コンテンツを検査する検査手段と、前記検査手段による検査が行われている間、前記データの少なくとも一部を前記宛先に送信する検査中送信手段と、前記検査手段によるコンテンツの検査が完了した後に、該コンテンツを含むデータのうち前記検査中送信手段によって送信済みの部分を除く前記データを、前記宛先に転送する転送手段と、を備える情報処理装置である。
【0008】
本開示は、情報処理装置、システム、コンピューターによって実行される方法またはコンピューターに実行させるプログラムとして把握することが可能である。また、本開示は、そのようなプログラムをコンピューターその他の装置、機械等が読み取り可能な記録媒体に記録したものとしても把握できる。ここで、コンピューター等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的または化学的作用によって蓄積し、コンピューター等から読み取ることができる記録媒体をいう。
【発明の効果】
【0009】
本開示によれば、ネットワーク上のデータを取得して検査する際に、データの宛先端末における受信待ち時間がタイムアウトすることを防止することが可能となる。
【図面の簡単な説明】
【0010】
図1】実施形態に係るシステムの構成を示す概略図である。
図2】実施形態に係る通信検査装置のハードウェア構成を示す図である。
図3】実施形態に係る通信検査装置の機能構成の概略を示す図である。
図4】実施形態に係るパケット処理の流れの概要を示すフローチャートである。
図5】実施形態に係るヘッダー送信処理の流れの概要を示すフローチャートである。
図6】実施形態において、パケット処理およびヘッダー送信処理を実行した場合のパケットの流れを示す図である。
【発明を実施するための形態】
【0011】
以下、本開示に係る情報処理装置、方法およびプログラムの実施の形態を、図面に基づいて説明する。但し、以下に説明する実施の形態は、実施形態を例示するものであって、本開示に係る情報処理装置、方法およびプログラムを以下に説明する具体的構成に限定するものではない。実施にあたっては、実施の態様に応じた具体的構成が適宜採用され、また、種々の改良や変形が行われてよい。
【0012】
本実施形態では、本開示に係る情報処理装置、方法およびプログラムを、通信検査装置において実施した場合の実施の形態について説明する。但し、本開示に係る情報処理装置、方法およびプログラムは、ネットワーク上のデータを検査するための技術について広く用いることが可能であり、本開示の適用対象は、本実施形態において示した例に限定されない。
【0013】
<システムの構成>
図1は、本実施形態に係るシステム1の構成を示す概略図である。本実施形態に係るシステム1は、複数の情報処理端末90(以下、「クライアント90」と称する)が接続されるネットワークセグメント2と、クライアント90に係る通信を中継するための通信検査装置20と、を備える。また、ネットワークセグメント2内のクライアント90は、インターネットや広域ネットワークを介して遠隔地において接続された各種のサーバーと、通信検査装置20を介して通信可能である。本実施形態において、通信検査装置20は、ネットワークセグメント2において、クライアント90とインターネットとの間に接続されることで、通過するパケットを取得する。そして、通信検査装置20は、取得したパケットのうち、検査対象でないパケット、および検査の結果転送してもよいと判定されたパケットを転送する。
【0014】
図2は、本実施形態に係る通信検査装置20のハードウェア構成を示す図である。通信検査装置20は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、EEPROM(Electrically Erasable and Programmable Read Only Memory)やHDD(Hard Disk Drive)等の記憶装置14、NIC(Network Interface Card)15等の通信ユニット、等を備えるコンピューターである。但し、通信検査装置20の具体的なハードウェア構成に関しては、実施の態様に応じて適宜省略や置換、追加が可能である。また、通信検査装置20は、単一の装置に限定されない。通信検査装置20は、所謂クラウドや分散コンピューティングの技術等を用いた、複数の装置によって実現されてよい。
【0015】
図3は、本実施形態に係る通信検査装置20の機能構成の概略を示す図である。通信検査装置20は、記憶装置14に記録されているプログラムが、RAM13に読み出され、CPU11によって実行されることで、コンテンツ要求検知部21、データ取得部22、送信回数予測部23、抽出部24、ヘッダー生成部25、検査部26、検査中送信部27、転送部28、中止部29および検査結果通知部30を備える情報処理装置として機能する。なお、本実施形態では、通信検査装置20の備える各機能は、汎用プロセッサであるCPU11によって実行されるが、これらの機能の一部または全部は、1または複数の専用プロセッサによって実行されてもよい。また、これらの機能の一部または全部は、クラウド技術等を用いて、遠隔値に設置された装置や、分散設置された複数の装置によって実行されてもよい。
【0016】
コンテンツ要求検知部21は、送信元、宛先および要求コンテンツの種類の少なくとも何れかが所定の条件に合致するコンテンツ要求(接続要求)を検知する。
【0017】
データ取得部22は、ネットワークに接続された端末によって送受信される通信に係る、ヘッダーとコンテンツを含むデータを、宛先に到達する前に取得する。なお、本実施形態において、通信検査装置20は、ネットワークセグメント2に接続されたクライアント90による通信の他、通信検査装置20を介する全ての通信を、検査の対象とすることが出来る。
【0018】
送信回数予測部23は、データ取得部22によって取得されるコンテンツの検査に必要な検査時間を予測し、予測された検査時間に基づいて、検査中送信部27による送信回数を予測する。
【0019】
抽出部24は、データ取得部22によって取得されたデータに含まれるヘッダーから、宛先に受信されるコンテンツを確定させないヘッダーを抽出する。
【0020】
ヘッダー生成部25は、宛先に受信されるコンテンツを確定させないヘッダーを生成する。
【0021】
検査部26は、データ取得部22によって取得されたコンテンツが、当該データに設定された宛先への転送が許可されるコンテンツであるか否かを、予め定められた検査項目に従って検査する。例えば、検査部26は、コンテンツにマルウェアが含まれているか否か、コンテンツに望ましくない表現が含まれているか否か、等を検査する。但し、本開示に係る検査において採用され得る具体的な検査項目や検査手法は、本実施形態における例示に限定されない。具体的な検査項目や検査手法には、既知の、または将来開発される様々な検査項目および検査手法が採用されてよい。
【0022】
検査中送信部27は、検査部26による検査が行われている間、宛先におけるデータの受信待ち時間がタイムアウトしない間隔で、データに含まれるヘッダーの少なくとも一部を当該データの宛先に送信する。なお、本実施形態では、タイムアウト防止のために送信されるデータとして、ヘッダーを送信することとしているが、タイムアウト防止のために送信されるデータは、クライアント90に受信される後続データの種類やサイズ等を確定させないものであればよく、ヘッダーに限定されない。
【0023】
転送部28は、検査部26によるコンテンツの検査が完了した後、検査結果が、該コンテンツが宛先への転送が許可されるコンテンツであるという検査結果であった場合に、該コンテンツを含むデータのうち検査中送信部27によって送信済みの部分を除くデータを、当該データの宛先に転送する。
【0024】
中止部29は、検査部26による検査結果が、当該コンテンツが当該データの宛先への転送が許可されるコンテンツではないという検査結果であった場合に、転送部28による転送を中止する。
【0025】
検査結果通知部30は、検査部26による検査結果が、当該コンテンツが当該データの宛先への転送が許可されるコンテンツではないという検査結果であった場合に、当該検査結果をデータの宛先に通知するための情報を、検査中送信部27によって送信済みの部分に続くデータの一部として、当該宛先に送信する。
【0026】
<処理の流れ>
次に、本実施形態に係るシステム1によって実行される処理の流れを、フローチャートを用いて説明する。なお、以下に説明するフローチャートに示された処理の具体的な内容および処理順序は、本開示を実施するための一例である。具体的な処理内容および処理順序は、本開示の実施の形態に応じて適宜選択されてよい。
【0027】
図4は、本実施形態に係るパケット処理の流れの概要を示すフローチャートである。本実施形態に係るパケット処理は、通信検査装置20によって、ネットワーク上を流れる接続要求パケット(例えば、TCPのSYNパケット)が受信されたことを契機として実行される。
【0028】
ステップS101では、接続要求が取り込まれる。コンテンツ要求検知部21は、受信されたパケットのヘッダーに設定されている送信元および宛先を参照して、取り込みの対象となるパケット(例えば、クライアント90からサーバーへの接続要求パケット)であるか否かを判定し、取り込みの対象となるパケットを取り込み、RAM12に記憶する(所謂フック処理)。取り込みの対象でないと判定されたパケットは、通信検査装置20に取り込まれることなく、宛先に転送される(図示は省略する)。取り込みの対象であるか否かは、パケットの送信元および宛先が、予め設定された送信元IPアドレスおよび宛先IPアドレスのリストに登録されているか否かを照合することによって判定される。この照合に用いられるリストは、ホワイトリストであってもブラックリストであってもよい。また、パケットが取り込みの対象であるか否かの判定には、本開示とは異なる手法が採用されてもよい。その後、処理はステップS102へ進む。
【0029】
ステップS102では、クライアント90の要求に係るコンテンツを検査対象とするか否かが判定される。コンテンツ要求検知部21は、ステップS101で取り込まれた接続要求に係るコネクションに属するパケットを受信し、当該パケットのリクエストラインおよびヘッダーを参照して、当該パケットが、検査部26による検査対象となる所定の種類のコンテンツを要求するパケットであるか否かを判定する。検査対象コンテンツを要求するパケットであるか否かは、パケットのリクエストラインおよびヘッダーが、予め設定された検査対象リストに登録されている情報と合致または近似するか否かを照合することによって判定される。
【0030】
例えば、HTTPパケットが、以下に示されたリクエストラインおよびヘッダーを有する場合、当該パケットは、検査対象のコンテンツを要求するものであると判定される。
GET / HTTP/1.1
Host: sample.site
Accept: */*
User-Agent: UserAgent 1.0
Accept-Language: ja
Accept-Encoding: gzip, deflate
Connection: keep-alive
パケットが検査対象コンテンツを要求するパケットではないと判定された場合、当該パケットによって要求されたコンテンツは検査対象とはならず、パケットは転送され(ステップS114)、本フローチャートに示された処理は終了する。一方、パケットが検査対象コンテンツを要求するパケットであると判定された場合、当該パケットによって要求されたコンテンツは、後述するステップS109における検査の対象として設定され、処理はステップS103へ進む。
【0031】
ステップS103およびステップS104では、接続要求およびコンテンツ要求が送信される。通信検査装置20は、ステップS101の接続要求に係るサーバーに接続し、ステップS102のコンテンツ要求に係るコンテンツを、当該サーバーに要求する。この際、通信検査装置20は、ステップS101およびステップS102で受信されたパケットをそのままサーバーに転送してもよいし、必要に応じて送信元IPアドレスをアドレス変換してからサーバーに送信してもよい。その後、処理はステップS105へ進む。
【0032】
ステップS105では、レスポンスステータスおよび/またはヘッダーを含むパケットが受信される。データ取得部22は、ステップS104で送信されたコンテンツ要求パケットへの応答パケットとしてサーバーから送信された、レスポンスステータスまたはヘッダーを含むデータを、クライアント90に到達する前に取得する。ここで、データが複数のパケットに分割されて送信されている場合には、データ取得部22は、複数のパケットを組み立てることで、レスポンスステータスまたはヘッダーを含むデータを取得する。また、通信検査装置20は、ヘッダーの内容を参照して、当該ヘッダーに続くコンテンツを、検査部26による検査対象とするか否かを判定する。この判定は、例えば、ヘッダーの内容から特定されたコンテンツの種類を、検査対象とする(または、検査対象としない)コンテンツの種類のリストと照合することで行われる。また、この判定は、ヘッダーの内容から特定されたコンテンツのサイズと、検査対象とするサイズの上限とを比較することによって行われてもよい。
【0033】
例えば、HTTPデータが、以下に示されたレスポンスステータスおよびヘッダーを有する場合、後続コンテンツが検査対象であると判定される。
HTTP/1.1 200 OK
Server: Apache
Date: xxxxxxxx GMT
Content-Type: application/octet-stream
Content-Length: 108
Connection: keep-alive
Cache-Control: max-age=0, no-cache
Pragma: no-cache
判定の結果、コンテンツを検査対象としないと判定された場合、当該パケットに係るコネクションは検査の対象外に設定され、本フローチャートに示された処理は終了する(図示は省略する)。一方、コンテンツを検査対象とする場合、処理はステップS106へ進む。
【0034】
ステップS106では、後述するヘッダー送信処理による送信回数が予測される。送信回数予測部23は、はじめに、ステップS105で受信されたパケットのヘッダーを参照してコンテンツのサイズを把握し、これを、検査部26による処理能力(例えば、所定時間あたりに検査可能なデータサイズ)で除算することで、コンテンツの検査に必要な検査時間を予測する。そして、送信回数予測部23は、予測された検査時間を、検査中送信部27による送信間隔で除算することで、送信回数を予測する。ここで、検査中送信部27による送信間隔には、コンテンツを受信するクライアント90において、コンテンツに係るパケット受信の待ち時間がタイムアウトしない間隔が予め設定される。その後、処理はステップS107へ進む。
【0035】
ステップS107では、検査中に送信可能なヘッダーの部分が抽出される。抽出部24は、ステップS105において受信されたヘッダーから、宛先に受信されるコンテンツを確定させないヘッダー部分を抽出する。換言すれば、抽出部24は、検査中送信部27によって送信済みの部分に続くデータの一部として、仮にサーバーから送信されたデータ以外のデータ(例えば、検査結果)が宛先に送信された場合に、該宛先による該データの処理に不都合(例えば、データサイズの矛盾や、コンテンツの種類の矛盾)が生じるヘッダー部分を除外することで、宛先に受信されるコンテンツを確定させないヘッダーを抽出する。
【0036】
例えば、ステップS105の説明において例示したヘッダーのうち、以下に示す部分は、コンテンツの種類およびサイズを限定するヘッダー部分であり、その後に送信可能なデータを限定してしまうヘッダー部分である。
Content-Type: application/octet-stream
Content-Length: 108
このため、抽出部24は、上記したヘッダー部分を除いた部分を、コンテンツを確定させないヘッダーとして抽出する。
【0037】
なお、本実施形態では、コンテンツの送受信にHTTP(Hypertext Transfer Protocol)が用いられる場合を例に挙げて説明しているが、本開示は、その他のプロトコルにも適用可能である。例えば、コンテンツの送受信に用いられるプロトコルがPOP3(Post Office Protocol Version 3)である場合には、ヘッダー中のFromフィールド、Toフィールド、CcフィールドおよびSubjectフィールド等が、コンテンツの種類およびサイズを限定するヘッダーであるため、抽出部24は、これらの部分を除くヘッダーを抽出する。
【0038】
また、抽出部24は、データ取得部22によって取得されたデータに含まれるヘッダーから、宛先に受信されるコンテンツを確定させないヘッダーを、ステップS106で予測された送信回数に応じて決定された量だけ抽出することとしてもよい。具体的には、抽出部24は、ステップS106で予測された送信回数に分けて送信可能な量、ヘッダー部分を抽出してもよい。なお、抽出可能なヘッダー部分の量が、送信回数分に満たない場合、抽出部24は、コンテンツを確定させないヘッダー部分を全て抽出する。その後、処理はステップS108へ進む。
【0039】
ステップS108からステップS110では、コンテンツが受信され、受信されたコンテンツが検査される。データ取得部22は、ステップS104で送信されたコンテンツ要求パケットへの応答パケットとしてサーバーから送信された、コンテンツを含むデータを取得する(ステップS108)。また、データ取得部22は、コンテンツを含むデータを、クライアント90に到達する前に取得し、当該データに含まれるコンテンツの検査が完了するまで、宛先クライアント90への転送を保留する。そして、データの転送が保留されている間に、検査部26は、取得されたコンテンツが、クライアント90への転送が許可されるコンテンツであるか否かを、予め定められた検査項目に従って検査する(ステップS109)。ここで、データが複数のパケットに分割されて送信されている場合には、検査部26は、複数のパケットの夫々がデータ取得部22によって取得される毎にパケットを組み立てながら、受信済みの部分について順次検査を行う。コンテンツ全体の検査が完了すると(ステップS110)、処理はステップS111へ進む。
【0040】
なお、ステップS108からステップS110におけるコンテンツの受信および検査が行われている間、通信検査装置20は、クライアント90における受信待ち時間のタイムアウトを防止するため、ヘッダー送信処理を実行する。ヘッダー送信処理の詳細については、図5を用いて説明する。
【0041】
ステップS111では、検査結果が判定される。ステップS108からステップS110における検査の結果、コンテンツが、クライアント90への転送が許可されるコンテンツであると判定された場合、処理はステップS112へ進む。一方、コンテンツが、クライアント90への転送が許可されないコンテンツであると判定された場合、処理はステップS113へ進む。
【0042】
ステップS112では、データが転送される。転送部28は、コンテンツを含むデータのうち、後述するヘッダー送信処理において検査中送信部27によって既に送信済みの部分を除くデータを、当該データの宛先であるクライアント90に転送(送信)する。その後、本フローチャートに示された処理は終了する。
【0043】
ステップS113では、データの転送が中止され、検査結果情報が通知される。中止部29は、検査部26による検査結果が、当該コンテンツが当該データの宛先への転送が許可されるコンテンツではないという検査結果であった場合に、転送部28による転送を中止する。このため、本実施形態に係るシステムによれば、望ましくないコンテンツが、クライアント90に対して送信されてしまうことを防止することが出来る。そして、検査結果通知部30は、当該検査結果をデータの宛先に通知するための情報を、検査中送信部27によって送信済みの部分に続くデータの一部(ヘッダーおよびコンテンツ等)として、当該宛先に送信する。具体的には、検査結果通知部30は、クライアント90が要求したコンテンツに、マルウェアや望ましくない表現等が含まれていることを、クライアント90のユーザーに通知するためのコンテンツ(例えば、Webページ)と、当該コンテンツに適したヘッダー(例えば、コンテンツの種類およびサイズを限定するヘッダー)とを生成し、クライアント90に対して送信する。その後、本フローチャートに示された処理は終了する。
【0044】
図5は、本実施形態に係るヘッダー送信処理の流れの概要を示すフローチャートである。本実施形態に係るヘッダー送信処理は、図4に示されたパケット処理において、ステップS108からステップS110に示されたコンテンツ検査が開始されたことを契機として実行される。
【0045】
ステップS201では、ヘッダーの一部が送信される。検査中送信部27は、データに含まれるヘッダーの少なくとも一部を、当該データの宛先であるクライアント90に送信する。なお、本実施形態では、タイムアウト防止のために送信されるデータとして、抽出部24によって抽出されたヘッダーの一部、または、ヘッダー生成部25によって生成されたヘッダーが用いられているが、タイムアウト防止のために送信されるデータは、クライアント90に受信される後続データの種類やサイズ等を確定させないものであればよく、ヘッダーに限定されない。その後、処理はステップS202へ進む。
【0046】
ステップS202では、検査が終了したか否かが判定される。検査中送信部27は、上述したパケット処理のステップS108からステップS110に示されたコンテンツ検査が終了したか否かを判定する。コンテンツ検査が終了していないと判定された場合、処理はステップS203へ進む。一方、コンテンツ検査が終了したと判定された場合、本フローチャートに示された処理は終了する。なお、本実施形態では、検査部26によるコンテンツ検査が終了したか否かを確認して、ヘッダー送信処理を継続するか否かを決定することとしているが、ヘッダー送信処理の継続/終了の判定は、検査開始から検査時間(ステップS106で算出)が経過したか否かに基づいて判定されてもよい。
【0047】
ステップS203およびステップS204では、未送信のヘッダーが無い場合に、タイムアウト防止用のヘッダーが生成される。ヘッダー生成部25は、ステップS107で抽出されたヘッダーが全てクライアント90に対して送信され、送信可能なヘッダーが尽きた場合(ステップS203のNO)、タイムアウト防止用のヘッダーを生成する(ステップS204)。ここで生成されるヘッダーは、ステップS107で抽出されたヘッダーと同様、宛先に受信されるコンテンツを確定させないヘッダーである。また、ヘッダー生成部25は、宛先に受信されるコンテンツを確定させないヘッダーとして、例えば、名称が「X−」から始まるオリジナルヘッダーを生成してよい。
【0048】
なお、本実施形態では、抽出されたヘッダーが尽きた場合に、ヘッダー生成部25にタイムアウト防止用のヘッダーを生成させ、検査中送信部27に送信させることとしているが、このような構成に代えて、検査中送信部27に、サーバーから受信されたデータ中のヘッダー以外の部分(例えば、コンテンツ中の、クライアント90に送信してよい部分)を少しずつ送信させる構成が採用されてもよい。
【0049】
ステップS205では、送信間隔の経過が待たれる。検査中送信部27は、予め設定された送信間隔の経過を待つ。上述の通り、送信間隔には、コンテンツを受信するクライアント90において、コンテンツに係るパケット受信の待ち時間がタイムアウトしない間隔が予め設定される。送信間隔が経過すると、処理はステップS201へ進み、ヘッダーの続きが一部送信される(ステップS201)。即ち、本実施形態に係るシステムによれば、検査中送信部27は、検査部26による検査が行われている間、宛先におけるデータの受信待ち時間がタイムアウトしない間隔で、データに含まれるヘッダーを一部ずつ当該データの宛先に送信する。
【0050】
図6は、本実施形態において、パケット処理およびヘッダー送信処理を実行した場合のパケットの流れを示す図である。本実施形態に係る情報処理装置、方法およびプログラムによれば、コンテンツ要求に応じてサーバーから送信されたデータを通信検査装置20が検査している間、データのうちコンテンツを確定させない部分(ヘッダー等)を分割してクライアント90に送信することで、コンテンツ検査中のタイムアウトを防止することが出来る。
【0051】
なお、受信待ち時間のタイムアウトを防止するための技術として、従来、空のパケットを一定時間毎に送信することで、TCP(Transmission Control Protocol)層等の下位層でのタイムアウトを防止する技術(例えば、TCPにおけるkeep-alive)が用いられることがあるが、これは、アプリケーション層でのタイムアウトを防止するものではなかった。本実施形態に示された情報処理装置、方法およびプログラムによれば、TCP層のような下位層におけるタイムアウトのみならず、アプリケーション層におけるタイムアウトも防止することが出来る。
【0052】
また、本実施形態に係る情報処理装置、方法およびプログラムによれば、クライアント90において受信待ち時間のタイムアウトを起こさせずに、コンテンツ全体の検査が終了するまでクライアント90にコンテンツを受信させないようにすることが出来る。更に、不適切なコンテンツが検出された場合には、専用のアプリケーション等を用いることなく、クライアント90のコンテンツ要求に対する応答データとして、ユーザーに通知することが出来る。
【符号の説明】
【0053】
1 システム
20 通信検査装置
90 クライアント
図1
図2
図3
図4
図5
図6