JP2005056007A - 入力データ制限プログラムおよび入力データ制限方法 - Google Patents

入力データ制限プログラムおよび入力データ制限方法 Download PDF

Info

Publication number
JP2005056007A
JP2005056007A JP2003206627A JP2003206627A JP2005056007A JP 2005056007 A JP2005056007 A JP 2005056007A JP 2003206627 A JP2003206627 A JP 2003206627A JP 2003206627 A JP2003206627 A JP 2003206627A JP 2005056007 A JP2005056007 A JP 2005056007A
Authority
JP
Japan
Prior art keywords
client
restriction
input
degree
structured document
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.)
Granted
Application number
JP2003206627A
Other languages
English (en)
Other versions
JP4322059B2 (ja
Inventor
Masaru Uchida
勝 内田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2003206627A priority Critical patent/JP4322059B2/ja
Priority to US10/864,536 priority patent/US7949940B2/en
Publication of JP2005056007A publication Critical patent/JP2005056007A/ja
Application granted granted Critical
Publication of JP4322059B2 publication Critical patent/JP4322059B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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

Abstract

【課題】自由度の高い汎用的なフォーマットを持つ構造化文書のうち、不正な構造化文書の入力を拒否することができるようにする。
【解決手段】入力データ制限装置1は、構造化文書2aが入力されると、入力された構造化文書2aの構造を自由度制限条件1aと比較する(ステップS1)。入力された構造化文書2aが自由度制限条件1aを満たしていない場合、入力データ制限装置1は、入力された構造化文書の送信元であるクライアント2に関連付けてエラー情報1bを記録する(ステップS2)。そして、コンピュータは、クライアント2に関連付けられたエラー情報1bが所定の条件を満たした場合、以後のクライアント2からの構造化文書2bの入力を拒否する(ステップS3)。入力データ制限装置1で入力が拒否されず、自由度制限を満たした構造化文書は、構造化文書処理装置3に入力され、解析される(ステップS4)。
【選択図】 図1

Description

【0001】
【発明の属する技術分野】
本発明は入力される構造化文書の受け取りの許否を判定する入力データ制限プログラムおよび入力データ制限方法に関し、特に自由度の高い構造化文書の受け取りの許否を判定する入力データ制限プログラムおよび入力データ制限方法に関する。
【0002】
【従来の技術】
インターネット等を介した情報交換では、構造化文書によって情報交換する場合がある。構造化文書を用いれば、その構造化文書を受け取ったときにその構造を解析することができ、文書内の個々の要素に対する処理が容易となる。たとえば、所定の項目内の文字列をデータベースに登録する等の処理が容易である。
【0003】
構造化文書には、自由度の高い汎用的なフォーマットを持つものがある。自由度の高い汎用的なフォーマットを持つ構造化文書は、データ作成の容易性などの理由で処理システムが受け付けることのできるデータ形式として採用されることが多い。特に、一般的に使用されているSGML(Standard Generalized Markup Language)、HTML(Hyper Text Markup Language)、XML(eXtensible Markup Language)などにおいては、クライアントにとってはデータを作成しやすいという利点がある。また、処理システムの側でも一般的に流通している解析モジュールを利用することでデータ解析が容易となる利点がある。
【0004】
ところで、近年のインターネットの発達により、インターネット経由で自由度の高い汎用的なフォーマットを持つ入力データを受け付けることのできるシステムが増加している。特にXMLにおいてその傾向が顕著である。たとえば、セキュリティ処理が施された電子文書をネットワーク経由で送受信する場合、その電子文書をXMLで作成するシステムも提案されている(例えば、特許文献1参照)。
【0005】
【特許文献1】
特開2003−91649号公報
【0006】
【発明が解決しようとする課題】
しかし、インターネットという環境においては、必ずしもクライアントが正当な入力データを送信してくるとは限らない。そのため、XMLを用いて自由度の高いデータの送受信環境を構築すると、悪意のある第三者からの攻撃に対する防御が弱くなってしまう。たとえば、悪意のある第三者が、自由度の高さを逆手に取った不正な構造化文書を送信することで、サーバ側の入力データ処理プログラムの負荷を増大させるケースが考えられる。また、自由度が高いほどセキュリティホールが発生する可能性が高まる。そのセキュリティホールが悪意のある第三者に狙われると、最悪の場合、システムが乗っ取られてしまう。
【0007】
これらのケースでは、単に定められたフォーマットに従っていることをデータ解析によって確認するだけでは不十分であり、自由度を制限して悪意を持つクライアントの攻撃を回避するような仕組みが必要となる。
【0008】
本発明はこのような点に鑑みてなされたものであり、自由度の高い汎用的なフォーマットを持つ構造化文書のうち不正な構造化文書の入力を拒否することができる入力データ制限プログラムおよび入力データ制限方法を提供することを目的とする。
【0009】
【課題を解決するための手段】
本発明では上記課題を解決するために、図1に示すような入力データ制限プログラムが提供される。本発明に係る入力データ制限プログラムは、入力される構造化文書の受け取りの許否を判定する処理をコンピュータに実行させるためのものである。この入力データ制限プログラムに従ってコンピュータが以下の処理を実行する。
【0010】
コンピュータは、文書構造上の許容範囲を示す自由度制限条件1aが予め定義されており、構造化文書2aが入力されると、入力された構造化文書2aの構造を自由度制限条件1aと比較する(ステップS1)。入力された構造化文書2aが自由度制限条件を満たしていない場合、コンピュータは、入力された構造化文書の送信元であるクライアント2に関連付けてエラー情報1bを記録する(ステップS2)。そして、コンピュータは、クライアント2に関連付けられたエラー情報1bが所定の条件を満たした場合、以後のクライアント2からの構造化文書2bの入力を拒否する(ステップS3)。
【0011】
このような入力データ制限プログラムを実行するコンピュータによれば、クライアント2から送られた構造化文書が自由度制限条件1aを満たしていなければエラー情報1bが格納される。そのエラー情報1bが所定の条件を満たした場合、以後のクライアント2からの構造化文書2bの入力が拒否される。
【0012】
また、上記課題を解決するために、入力される構造化文書の受け取りの許否を判定する入力データ制限方法において、文書構造上の許容範囲を示す自由度制限条件が予め定義されており、構造化文書が入力されると、入力された構造化文書の構造を前記自由度制限条件と比較し、前記入力された構造化文書が前記自由度制限条件を満たしていない場合、前記入力された構造化文書の送信元であるクライアントに関連付けてエラー情報を記録し、前記クライアントに関連付けられた前記エラー情報が所定の条件を満たした場合、以後の前記クライアントからの構造化文書の入力を拒否する、ことを特徴とする入力データ制限方法が提供される。
【0013】
このような入力データ制限方法によれば、クライアントから送られた構造化文書が自由度制限条件を満たしていなければエラー情報が格納される。エラー情報が所定の条件を満たすと、以後のクライアントからの構造化文書の入力が拒否される。
【0014】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
まず、実施の形態に適用される発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。なお、本発明に係る入力データ制限プログラムを実行するコンピュータを入力データ制限装置とする。
【0015】
図1は、実施の形態に適用される発明の概念図である。入力データ制限装置1は、クライアント2と構造化文書処理装置3との間に配置されている。クライアント2は、構造化文書2a,2b,・・・を構造化文書処理装置3へ入力するためのコンピュータである。構造化文書処理装置3は、入力された構造化文書の文書構造を解析し、所定の処理を行う(たとえば、所定の項目内の情報をデータベースへ登録する)。
【0016】
入力データ制限装置1は、クライアント2から構造化文書処理装置3へ入力される構造化文書2a,2b,・・・の自由度を制限し、その制限に違反する構造化文書を、構造化文書処理装置3への入力前に破棄する。そのために、入力データ制限装置1には、予め文書構造上の許容範囲を示す自由度制限条件1aが定義されている。そして、入力データ制限装置1は、構造化文書2a,2b,・・・が入力された際に以下の処理を行う。
【0017】
入力データ制限装置1は、構造化文書2aが入力されると、入力された構造化文書2aの構造を自由度制限条件1aと比較する(ステップS1)。入力された構造化文書2aが自由度制限条件1aを満たしていない場合、入力データ制限装置1は、入力された構造化文書の送信元であるクライアント2に関連付けてエラー情報1bを記録する(ステップS2)。そして、コンピュータは、クライアント2に関連付けられたエラー情報1bが所定の条件を満たした場合、以後のクライアント2からの構造化文書2bの入力を拒否する(ステップS3)。入力データ制限装置1で入力が拒否されず、自由度制限条件1aを満たした構造化文書は、構造化文書処理装置3に入力され、解析される(ステップS4)。
【0018】
このように構造化文書の自由度を制限する機能と、過去のエラー情報1bから接続の許否を判断する機能とを有する入力データ制限装置1を設けることで、クライアント2から構造化文書が送信されると、過去のエラー情報1bから接続を受け入れるか否かの判断が行われる。ここで、接続を拒否すると判断した場合には、構造化文書処理装置3に対して構造化文書は渡されない。接続を受け入れると判断した場合、構造化文書があらかじめ指定された自由度制限条件1aを超えるものでないかどうか検証される。自由度制限条件1aを満たしていなければ、構造化文書処理装置3に対して構造化文書は渡されない。このとき、エラー情報1bが記録される。正当であると判断した場合は、その構造化文書が構造化文書処理装置3へと転送される。
【0019】
このようにして攻撃者によりデータフォーマットの自由度を悪用した入力データが送信されてきた場合に、構造化文書処理装置3でのバッファオーバーフローなどの予期せぬエラーが発生することを防止できる。また、処理の負担が大きい構造化文書処理装置3にデータが渡る前にエラーを検出できる。さらに、攻撃者による連続して悪意のある入力データを送信するという攻撃を防止することができる。
【0020】
なお、自由度制限条件1aには、構造化文書のデータ構造上の様々な制限内容が設定される。制限内容は、フォーマットの自由度を持つ項目について、その長さまたは出現数などが超えてはならない閾値などが定義されている。構造化文書がXML文書の場合、例えば以下のような制限内容(括弧内に対象となる項目名を示す)を自由度制限の対象とすることができる。
・XML文書のサイズ
・連続する空白文字の長さ
・名前の長さ(要素名、属性名、処理命令のターゲット名、実体名、記法名)
・値の長さ(コメントの内容、処理命令の内容、連続する文字データおよびCDATAセクションの内容、属性値、要素型宣言内の要素内容モデル、属性リスト宣言内の#FIXEDキーワードで宣言されたデフォルト値、実体宣言内の置換テキスト、システム識別子、公開識別子、DTD(Document Type Definition)宣言内のキーワードがIGNOREである条件付セクションの内容の長さ)
・出現数(要素が持つ属性の数、要素が持つ子ノードの数、要素の入れ子の深さ、DTD宣言、パラメタ実体参照)
すなわち、XMLの仕様では上記の項目には制限がない。よって既存のXMLパーザでは上記の項目はエラーとして検出できない。そのため、不必要な長さまたは出現数の場合でも処理を続けてしまう。自由度制限モジュールによって不必要な長さまたは出現数を持つXML文書をエラーとすることで、解析モジュールにXML文書が入力される前にエラーとして処理を中止することができる。
【0021】
また、そのようなデータを送信してくるクライアントは悪意を持っているとみなすこともできる。その場合はデータの受け付け自体を拒否するようにすることで、攻撃が及ぶ範囲を限定することが可能となる。
【0022】
そこで、構造化文書がXML文書の場合を例に採り、本発明の実施の形態を以下に説明する。
[第1の実施の形態]
まず、第1の実施の形態について説明する。第1の実施の形態では、クライアントから送信されたXML文書によるエラー発生回数が所定回数以上になると、以後、そのクライアントからの接続を制限するようにしたものである。
【0023】
図2は、本発明の実施の形態におけるシステム構成例を示す図である。第1の実施の形態では、クライアント21と公開サーバ100とがネットワーク10を介して接続されている。ネットワーク10は、たとえばインターネットである。また、公開サーバ100には、XML処理サーバ200が接続されている。
【0024】
クライアント21は、ユーザが使用するコンピュータである。クライアント21は、ユーザからの操作入力等に応答して、XML文書をネットワーク10経由で公開サーバ100に送信する。公開サーバ100は、クライアント21から送られたXML文書の入力の許否を判断し、受け取りを許可したXML文書のみをXML処理サーバ200に渡す。XML処理サーバ200は、渡されたXML文書の文書構造を解析し、所定の処理を実行する。
【0025】
図3は、本発明の実施の形態に用いる公開サーバのハードウェア構成例を示す図である。公開サーバ100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス108を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、および通信インタフェース106が接続されている。
【0026】
RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。HDD103には、OSやアプリケーションプログラムが格納される。
【0027】
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号を、バス108を介してCPU101に送信する。
【0028】
通信インタフェース106は、XML処理サーバ200に接続されており、XML処理サーバ200との間でデータの送受信を行う。
通信インタフェース107は、ネットワーク10に接続されている。通信インタフェース107は、ネットワーク10を介して、他のコンピュータとの間でデータの送受信を行う。
【0029】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図3には、公開サーバ100のハードウェア構成例を示したが、クライアント21やXML処理サーバ200も同様のハードウェアで実現することができる。
【0030】
図4は、第1の実施の形態の構成を示すブロック図である。図4の例では、クライアント21から複数のXML文書31〜33が公開サーバ100に送信されるものとする。なお、XML文書31のデータ容量は1MB(メガバイト)、XML文書32のデータ容量は500MB、XML文書33のデータ容量は1MBである。また、クライアント21のIPアドレスは、「10.35.86.66」であるものとする。
【0031】
公開サーバ100は、所定のプログラムに基づいて、所定の処理を実行する。公開サーバ100が有するプログラムは、複数のモジュールで構成される。各モジュールに基づいて、公開サーバ100には、接続制限部110、自由度制限部120、およびエラー情報管理部130が構築される。
【0032】
接続制限部110は、過去のエラー情報を基に入力データを受け入れるか否かの判断を行う。たとえば、過去に自由度制限部120により発生したエラーの数が3回以上発生した後は、入力データを受け付けないものとする。接続制限部110は、接続制限モジュールを公開サーバ100が実行することで実現する機能である。具体的には、接続制限部110は、クライアント21からXML文書31〜33を受け取ると、クライアント21のIPアドレス「10.35.86.66」がエラー情報管理部130に登録されているか否かを判断する。クライアント21のIPアドレスがエラー情報管理部130に登録されていれば、接続制限部110は、クライアント21からのアクセスを拒否する。すなわち、内容を解析することなくXML文書が破棄される。
【0033】
自由度制限部120は、予め定義されている自由度制限情報に基づいて、受付可能なXML文書を制限する。自由度制限部120は、自由度制限モジュールを公開サーバ100が実行することで実現する機能である。具体的には、自由度制限情報として、文書サイズの制限内容が定義されている。自由度制限部120は、自由度制限情報に定義されている各制限内容を、受信したXML文書31〜33が満たしているか否か(制限内であるか否か)を判断する。この例では、文書サイズが10MB未満であることが、制限内容として定義されているものとする。この場合、10MB未満のデータ容量のXML文書は、自由度制限を満たしている。10MB以上のデータ容量のXML文書は、自由度制限を満たしていない。
【0034】
制限内容は、複数設定することもできる。その場合、全ての制限内容を満たすXML文書は、自由度制限を満たす。少なくとも1つの制限内容を満たさないXML文書は、自由度制限を満たさない。
【0035】
自由度制限部120は、該当するXML文書をXML処理サーバ200に渡す。少なくとも1つの制限内容を満たしていない場合、自由度制限部120は、エラー通知をエラー情報管理部130に対して行う。また、自由度制限部120は、エラー通知をクライアント21に対しても行う。
【0036】
エラー情報管理部130は、クライアント21から送られたXML文書によるエラー発生回数を管理する。エラー情報管理部130は、エラー管理モジュールを公開サーバ100が実行することで実現する機能である。具体的には、エラー情報管理部130は、クライアント21から送られたXML文書によるエラー回数を計数するカウンタ131を有している。そして、エラー情報管理部130は、エラー通知を受け取ると、カウンタ131のエラー回数をカウントアップする。
【0037】
XML処理サーバ200は、解析部210を有している。XML処理サーバ200では、公開サーバ100から送られたXML文書31〜33が解析部210で受け取られる。
【0038】
解析部210は、XMLの仕様に従い、受け取ったXML文書の文書構造を解析する。解析部210は、解析モジュールをXML処理サーバ200が実行することで実現する機能である。具体的には、解析部210は、自由度制限部120から受け取ったXML文書のデータ構造を、文書内のタグ等に基づいて解析する。そして、解析部210は、所定のタグに設定されたデータをデータベースに登録する等の所定の処理を実行する。
【0039】
以上のような構成のXML処理サーバ200によって、ネットワーク10を介したXML文書の取得および処理を安全に行うことができる。
図5は、XMLサーバの処理手順を示すフローチャートである。以下、図5に示す処理をステップ番号に沿って説明する。この処理は、クライアント21から公開サーバ100へXML文書が送られたときに実行される。
【0040】
[ステップS11]公開サーバ100では、接続制限部110がクライアント21からのXML文書を受信する。
[ステップS12]接続制限部110は、エラー情報管理部130が保持しているカウンタ131を参照することで、クライアント21から送られたXML文書に基づく過去のエラー発生回数を調べる。
【0041】
[ステップS13]接続制限部110は、クライアント21に関するエラー回数が3回未満か否かを判断する。3回未満であれば、XML文書が接続制限部110から自由度制限部120に渡され、処理がステップS14に進められる。3回以上であれば、処理がステップS19に進められる。
【0042】
[ステップS14]自由度制限部120は、XML文書のサイズを調べる。XML文書のサイズは、ヘッダ情報等を解析することで判断できる。
[ステップS15]自由度制限部120は、XML文書のサイズが、10MB未満か否かを判断する。たとえば、XML文書31が送られた場合、10MB未満であると判断される。また、XML文書32が送られた場合、10MB以上であると判断される。10MB未満の場合、自由度制限部120から解析部210へXML文書が渡され、処理がステップS16に進められる。10MB以上の場合、処理がステップS18に進められる。
【0043】
[ステップS16]自由度制限部120は、XML処理サーバ200にXML文書を転送する。これにより、XML処理サーバ200内の解析部210がXML文書を解析し、XML文書の内容に応じた処理を実行する。
【0044】
[ステップS17]解析部210は、クライアント21に対して処理結果を返す。その後、処理が終了する。
[ステップS18]自由度制限部120は、エラー情報管理部130にエラーを通知する。すると、エラー情報管理部130は、エラー回数を示すカウンタ131の値をカウントアップする。
【0045】
[ステップS19]接続制限部110または自由度制限部120が、エラーの発生をクライアントに通知する。具体的には、ステップS13で過去のエラー回数が3回以上と判断された場合、接続制限部110によってエラー通知が行われる。また、ステップS15で文書サイズが10MB以上と判断されたときは、自由度制限部120によってエラー通知が行われる。その後、処理が終了する。
【0046】
以上のようにして、文書サイズが大きすぎる(10MB以上)XML文書は、XML処理サーバ200で受付可能なフォーマットであったとしても公開サーバ100で破棄される。しかも、エラー回数が所定値(3回)以上になると文書サイズに関係なくクライアント21から送られたXML文書が破棄される。
【0047】
たとえば、クライアント21から過去に送られたXML文書によりエラーが2回発生し、その後、XML文書31(文書サイズが1MB)、XML文書32(文書サイズが500MB)、XML文書33(文書サイズが1MB)の順でクライアント21から公開サーバ100にデータ入力が行われた場合を考える。
【0048】
まず、クライアント21から公開サーバ100に対し、1MBのサイズを持つXML文書31が入力される。すると、接続制限部110は過去のエラー回数を調べる。この時点ではまだエラー回数は2回であり、エラーが3回未満のため、接続制限部110はXML文書31の受け入れを許可する。
【0049】
次に、自由度制限部120がXML文書31のサイズ(データ容量)をチェックする。サイズは1MBであり制限値の10MBの範囲内であるため、XML文書31が解析部210に渡され、解析部210によりXML文書31が解析される。そして、解析部210は、解析結果に応じて処理を行い、クライアント21に結果を返却する。
【0050】
次に、クライアント21から公開サーバ100に対し、500MBのサイズを持つXML文書32が入力される。すると、まず接続制限部110が過去のエラー回数を調べる。この時点ではまだエラー回数は2回であり、エラーが3回未満である。そのため、接続制限部110はXML文書32の受け入れを許可する。
【0051】
次に、自由度制限部120は、XML文書32のサイズをチェックする。サイズは500MBと制限値の10MBを超えているため、自由度制限部120は、XML文書32を破棄し、エラー情報管理部130にエラーの発生を通知する。すると、エラー情報管理部130において、クライアント21に対応するエラー回数がカウントアップされる。このとき、クライアント21に対してもエラーが返される。
【0052】
続けてクライアント21が、XML文書33を入力しようとした場合、接続制限部110は、クライアント21の過去のエラー回数を調べる。結果として過去に3回のエラーが発生しているため、接続制限部110は入力データの受け入れを拒否し、クライアント21にエラーを通知する。
【0053】
このように、XML文書のデータサイズが所定値以上の場合に、そのXML文書を受け取らないようにしたことで、不当に大きなサイズのXML文書がXML処理サーバ200に入力されずにすむ。これにより、第三者からのXML処理サーバ200への攻撃を防ぐことができる。
【0054】
すなわち、全てのXML文書が解析部210に渡されると、どのようなサイズのXML文書が入力されても、それを解析部210が解析しようとする。そのため、不当に大きなサイズのXML文書が入力された場合には、XML処理サーバ200にかかる負荷が過大となり、他の正常な入力データの処理に影響が及ぶ場合がある。本実施の形態に示すように、サイズが所定値以上のXML文書の入力を排除することで、データサイズが大きいXML文書が公開サーバ100に送りつけられても、XML処理サーバ200の処理に影響を及ぼさずにすむ。
【0055】
[第2の実施の形態]
次に、第2の実施の形態について説明する。第2の実施の形態は、IPアドレスによってクライアント毎にエラーを集計し、クライアントの接続制限を行うものである。
【0056】
図6は、第2の実施の形態の構成を示すブロック図である。なお、第2の実施の形態では、ネットワーク10とXML処理サーバ200については第1の実施の形態の同名の装置と同じ機能を有する。そこで、これらの構成要素には、図4に示した第1の実施の形態と同じ符号を付し、詳細な説明を省略する。
【0057】
第2の実施の形態では、ネットワーク10に複数のクライアント41,42,43,・・・が接続されている。クライアント41のIPアドレスは「10.35.86.61」であり、クライアント42のIPアドレスは「10.35.86.62」であり、クライアント43のIPアドレスは「10.35.86.63」である。クライアント41,42,43,・・・からは、XML文書51,52,53,・・・がネットワーク10を介して公開サーバ300に送られる。
【0058】
公開サーバ300は、クライアント識別部310、接続制限部320、自由度制限部330、およびエラー情報管理部340を有している。これらの要素の機能は、プログラムモジュールをコンピュータで実行することにより実現される。
【0059】
クライアント識別部310は、クライアント41,42,43,・・・からXML文書51,52,53,・・・転送のための接続要求を受け取ったとき、送信元のクライアントをIPアドレスによって識別する。そして、クライアント識別部310は、抽出したIPアドレスとXML文書とを接続制限部320に渡す。
【0060】
接続制限部320は、エラーログ341にIPアドレスが記録されているクライアントからの接続は受け付けないように、クライアントの接続制限を行う。具体的には、接続制限部320は、クライアント識別部310からIPアドレスを受け取ると、エラー情報管理部340が管理しているエラーログ341を参照し、受け取ったIPアドレスの有無を判断する。クライアント識別部310から受け取ったIPアドレスがエラーログ341に登録されていれば、接続制限部320は、エラーを発生させ、クライアントからのXML文書の受け取りを拒否する。クライアント識別部310から受け取ったIPアドレスがエラーログ341に登録されていなければ、接続制限部320はXML文書の受け取りを許可し、クライアント識別部310から受け取ったIPアドレスを自由度制限部330に渡す。
【0061】
自由度制限部330は制限内容テーブル331を有している。制限内容テーブル331には、XML文書の自由度の制限内容が登録されている。自由度制限部330は、接続制限部320で受け取りが許可されたXML文書をクライアントから受信する。そして、自由度制限部330は、受け取ったXML文書が制限内容テーブル331に登録された制限内容の少なくとも1つに違反した場合、エラーを発生させそのXML文書を破棄する。自由度制限部330は、エラーが発生した場合、接続制限部320から受け取ったIPアドレスとエラー内容とをエラー情報管理部340に渡す。また、自由度制限部330は、受け取ったXML文書が制限内容テーブル331に登録された制限内容の全てに適合していた場合、そのXML文書をXML処理サーバ200の解析部210に対して送信する。
【0062】
エラー情報管理部340は、エラーを発生させたクライアントのIPアドレスとエラー内容とを、エラーログ341に登録し、管理する。具体的には、エラー情報管理部340は、自由度制限部330からIPアドレスとエラー内容とを受け取ると、それらの情報をエラーログ341に登録する。また、エラー情報管理部340は、接続制限部320からの要求に応じて、エラーログ341の内容を接続制限部320に渡す。
【0063】
図7は、制限内容テーブルのデータ構造例を示す図である。制限内容テーブル331には、項目と正当である範囲との欄が設けられている。各欄の横方向に並べられた情報同士が互いに関連づけられてレコードを構成しており、各レコードが制限内容を示している。
【0064】
項目の欄には、制限内容の判断対象となる項目が示されている。正当である範囲の欄には、判断対象となる項目毎の正当である範囲が設定されている。XML文書内の該当項目の内容が、正当である範囲を外れていた場合、そのXML文書は受け取り制限対象として破棄される。
【0065】
図7の例では、文書サイズが正当である範囲は、1MB以下である。連続する空白文字の数が正当である範囲は、100文字以下である。コメントの長さが正当である範囲は、200文字以下である。処理命令のターゲット名の長さが正当である範囲は、100文字以下である。処理命令の長さが正当である範囲は、200文字以下である。要素名の長さが正当である範囲は、100文字以下である。要素が持つ属性の数が正当である範囲は、50個以下である。属性名の長さが正当である範囲は、100文字以下である。属性値の長さが正当である範囲は、100文字以下である。連続する文字データおよびCDATAセクションの内容の長さが正当である範囲は、10000文字以下である。要素が持つ子ノードの数が正当である範囲は、100個以下である。要素の入れ子の深さが正当である範囲は、10階層以下である。DTD宣言が正当である範囲は、DTD宣言が無いことである。
【0066】
図8は、XML文書の判断対象項目の例を示す図である。XML文書50は、タグによって項目が定義されている。図8には、DTD宣言50a、不当に長い要素名50b、不当に長い属性値50c、不当に長い空白文字50d、および不当に大きいXML文書50eの例が示されている。このようなXML文書50は、制限内容テーブル331に定義されている制限に違反し、自由度制限部330によってXML処理サーバ200への転送を拒否される。
【0067】
図9は、エラーログのデータ構造例を示す図である。エラーログ341には、クライアントIPアドレスとエラー内容の欄が設けられている。各欄の横方向に並べられた情報同士が互いに関連づけられてレコードを構成しており、各レコードがエラー情報を示している。クライアントIPアドレスの欄には、エラーを生じさせたXML文書の送信元のクライアントのIPアドレスが登録されている。エラー内容の欄には、クライアントIPアドレスに対応付けて、そのクライアントが送信したXML文書によって生じたエラーの内容が登録されている。
【0068】
図9の例では、IPアドレス「10.124.50.101」のエラー内容は、「要素名長不当」である。IPアドレス「10.74.173.120」のエラー内容は、「属性名長不当」である。IPアドレス「10.31.221.51」のエラー内容は、「コメント長不当」である。IPアドレス「10.35.86.66」のエラー内容は、「文書サイズ不当」である。
【0069】
以上のような構成のシステムにおいて、以下のような処理が行われる。
図10は、第2の実施の形態の処理手順を示すフローチャートである。以下、図10に示す処理をフローチャートに沿って説明する。
【0070】
[ステップS21]公開サーバ300のクライアント識別部310は、クライアントからのXML文書転送のための接続要求を受け付ける。
[ステップS22]クライアント識別部310は、クライアントのIPアドレスを取得する。クライアント識別部310は、IPアドレスを接続制限部320に渡す。
【0071】
[ステップS23]接続制限部320は、エラー情報管理部340からエラーログ341の内容を取得し、クライアント識別部310から受け取ったIPアドレスがエラーログ341に記録されている否かを調査する。
【0072】
[ステップS24]接続制限部320は、エラーログ341に該当するIPアドレスが登録されていない場合、過去にエラーが発生していないものと判断し、処理をステップS25に進める。この際、接続制限部320は、IPアドレスを自由度制限部330に渡す。また、接続制限部320は、エラーログ341に該当するIPアドレスが登録されていた場合、過去にエラーが有ったものと判断し、処理をステップS30に進める。
【0073】
[ステップS25]自由度制限部330は、クライアントからXML文書を受け取り、そのXML文書が制限内容テーブル331に登録されている各制限内容を満たしているか否かを調査する。
【0074】
[ステップS26]自由度制限部330は、受け取ったXML文書に、制限内容を超えた項目があるか否かを判断する。制限内容を超えた項目がない場合、処理がステップS27に進められる。制限内容を超えた項目が少なくとも1つある場合、処理がステップS29に進められる。
【0075】
[ステップS27]自由度制限部330は、XML文書をXML処理サーバ200に転送する。これにより、XML文書が解析部210に渡され、解析されると共に所定の処理が行われる。
【0076】
[ステップS28]自由度制限部330は、解析部210から処理結果を受け取り、その処理結果をクライアントに返す。その後、処理が終了する。
[ステップS29]自由度制限部330は、自由度に関する制限内容の違反が見つかると、エラー情報管理部340に対してIPアドレスを渡すとともに、エラーの発生を通知する。すると、エラー情報管理部340が、エラー情報をエラーログ341に記録する。また、エラー情報管理部340は、エラーの発生を接続制限部320に通知する。
【0077】
[ステップS30]接続制限部320または自由度制限部330が、エラーの発生をクライアントに通知する。具体的には、ステップS24で過去のエラー有りと判断された場合、接続制限部320によってエラー通知が行われる。また、ステップS26で自由度の制限を越えていると判断されたときは、自由度制限部330によってエラー通知が行われる。その後、処理が終了する。
【0078】
これにより、クライアントに公開された公開サーバ300が接続を受け付け、一度エラーが発生した場合は、その後、同じクライアントからXML処理サーバ200へのXML文書の入力を禁止することができる。
【0079】
ここで、クライアント41,43が送信するXML文書51,53は正当な内容であり、クライアント42が送信するXML文書52は、不当に名前の長い要素(要素名の長さが100文字を超える)を含んでいるものとする。また、図9に示すように、クライアント41,42のIPアドレスはエラーログ341に登録されていないが、クライアント43のIPアドレスはエラーログ341に登録されているものとする。この場合の各XML文書51,52,53に関する公開サーバ300の処理を具体的に説明する。
【0080】
はじめに、クライアント41からのXML文書51送信時の処理について説明する。まず、クライアント41がネットワーク10を通じて公開サーバ300に接続を要求する。すると、クライアント識別部310はクライアントのIPアドレスを取得する。そのIPアドレスに基づいて、接続制限部320がエラーログ341を調査する。エラーログ341にはクライアント41のIPアドレスは記録されていないため、接続制限部320はクライアント41の接続を許可する。
【0081】
自由度制限部330はクライアント41より送信されたXML文書51を受け取り、自由度の制限値を超えていないか検証を行う。XML文書51は自由度制限の正当な範囲内であり、エラーは検出されない。そこで、自由度制限部330は、XML文書51をXML処理サーバ200へ転送する。すると、XML文書51が解析部210で解析される。XML文書51は解析部210によりエラーは検出されないため、結果を成功として、公開サーバ300に返却する。さらに公開サーバ300はクライアント41に成功という結果を返却する。たとえば、公開サーバ300の自由度制限部330が解析部210からの結果を受け取り、クライアント41に転送する。
【0082】
次に、クライアント42からのXML文書52送信時の処理について説明する。クライアント42がネットワーク10を通じて公開サーバ300に接続を要求する。すると、クライアント識別部310はクライアント42のIPアドレスを取得する。そのIPアドレスに基づいて、接続制限部320がエラーログ341を調査する。エラーログ341にはクライアント42のIPアドレスは記録されていないため、接続制限部320はクライアント42の接続を許可する。
【0083】
自由度制限部330はクライアント42より送信されたXML文書52を受け取り、自由度の制限値を超えていないか検証を行う。自由度制限部330によりXML文書52は不当な要素名の長さを持つことが検出されると、自由度制限部330はエラー情報管理部340にクライアント42のIPアドレスおよびエラー種別を通知する。エラー情報管理部340は、通知された内容をエラーログ341に記録する。また、エラー情報管理部340は、クライアント42にエラーとなった旨の結果を返却する。
【0084】
次に、クライアント43からのXML文書53送信時の処理について説明する。クライアント43がネットワーク10を通じて公開サーバ300に接続を要求する。すると、クライアント識別部310はクライアント43のIPアドレスを取得する。そのIPアドレスに基づいて、接続制限部320がエラーログ341を調査する。この場合、エラーログ341にクライアント43のIPアドレスが記録されているため、接続制限部320はクライアント43の接続を拒否し、クライアント43にエラーとなった旨の結果を返却する。
【0085】
このように、IPアドレスがエラーログ341に登録されると、そのIPアドレスのクライアントからのXML文書のXML処理サーバ200への入力は、公開サーバ300で拒否される。しかも、XML文書内の項目毎に、自由度の制限内容が設定されているため、不正な内容を含むXML文書を故意にXML処理サーバ200に送りつける行為を発見し、そのXML文書を破棄することができる。
【0086】
[第3の実施の形態]
次に第3の実施の形態について説明する。第3の実施の形態は、各エラーに攻撃性を表す数値を設定し、それをエラー情報に記録するようにしたものである。クライアントごとに攻撃性を表す数値の累計をとり、それがある閾値を超えた場合にそのクライアントの接続を拒否するようにする。これにより、さらに柔軟なアクセス制御を行うことができる。基本的な動作の流れは第2の実施の形態と同様であるが、エラーの記録方法およびクライアントの接続可否の判断に違いがある。
【0087】
図11は、第3の実施の形態の機能を示すブロック図である。第3の実施の形態では、クライアント60からネットワーク10を介して、XML文書61〜63が公開サーバ400送信される。クライアント60のIPアドレスは「10.35.86.66」である。なお、図11では、クライアントが1台しか示されていないが、図6に示す第2の実施の形態と同様に複数台接続できる。
【0088】
公開サーバ400は、クライアント識別部410、接続制限部420、自由度制限部430、およびエラー情報管理部440を有している。これらの要素の機能は、プログラムモジュールをコンピュータで実行することにより実現される。
【0089】
クライアント識別部410は、クライアント60からXML文書61,62,63,・・・転送のための接続要求を受け取ったとき、送信元のクライアントをIPアドレスによって識別する。そして、クライアント識別部410は、抽出したIPアドレスとXML文書とを接続制限部420に渡す。
【0090】
接続制限部420は、エラー情報管理部440内の攻撃性合計値テーブル442において、攻撃性を表す数値の合計が所定値(本実施の形態では10)以上であるクライアントからの接続は受け付けないように、クライアントの接続制限を行う。
【0091】
具体的には、接続制限部420は、クライアント識別部410からIPアドレスを受け取ると、エラー情報管理部440が管理している攻撃性合計値テーブル442を参照し、受け取ったIPアドレスを検索する。クライアント識別部410から受け取ったIPアドレスが検出された場合、そのIPアドレスに対応するクライアントの攻撃性を示す数値の合計値を参照する。合計値が10以上であれば、接続制限部420はエラーを発生させ、XML文書の受け取りを拒否する。クライアント識別部410から受け取ったIPアドレスが攻撃性合計値テーブル442に登録されていないか、もしくは、攻撃性の合計値が10未満の場合、接続制限部420はXML文書の受け取りを許可し、クライアント識別部410から受け取ったIPアドレスを自由度制限部430に渡す。
【0092】
自由度制限部430は制限内容テーブル431を有している。制限内容テーブル431には、XML文書の自由度の制限内容が登録されている。自由度制限部430は、接続制限部420から接続を許可したクライアントのIPアドレスを受け取ると、該当するクライアントからXML文書を受信する。そして、自由度制限部430は、受け取ったXML文書が制限内容テーブル431に登録された制限内容の少なくとも1つに違反した場合、エラーを発生させそのXML文書を破棄する。自由度制限部430は、エラーが発生した場合、接続制限部420から受け取ったIPアドレス、エラー内容および攻撃性を表す数値をエラー情報管理部440に渡す。また、自由度制限部430は、受け取ったXML文書が制限内容テーブル431に登録された制限内容の全てに適合していた場合、そのXML文書をXML処理サーバ200aの解析部220に対して送信する。
【0093】
エラー情報管理部440は、エラーを発生させたクライアントのIPアドレス、エラー内容および攻撃性を表す数値をエラーログ441に登録し、管理する。また、エラー情報管理部440は、攻撃性を表す通知をクライアント毎に合計し、攻撃性合計値テーブル442で管理する。具体的には、エラー情報管理部440は、自由度制限部430からIPアドレス、エラー内容、および攻撃性を表す数値を受け取ると、それらの情報をエラーログ441に登録する。このとき、エラー情報管理部440は、攻撃性合計値テーブル442の内容の更新も行う。また、エラー情報管理部440は、接続制限部420からの要求に応じて、攻撃性合計値テーブル442の内容を接続制限部420に渡す。
【0094】
XML処理サーバ200aは、XML文書の解析、およびXML文書の内容に対する所定の処理を実行するコンピュータである。XML処理サーバ200aは解析部220を有しており、解析部220がXML文書の解析を行う。なお、解析部220は、XML文書を解析した際に、文書構造上のエラーが発生すると、そのXML文書の送信元のIPアドレス、エラー内容および攻撃性を表す数値を公開サーバ400のエラー情報管理部440に通知する。
【0095】
図12は、第3の実施の形態に係る制限内容テーブルのデータ構造例を示す図である。制限内容テーブル431には、項目、正当である範囲、および攻撃性を表す数値の欄が設けられている。各欄の横方向に並べられた情報同士が互いに関連づけられてレコードを構成しており、各レコードが制限内容を示している。
【0096】
項目の欄には、制限内容の判断対象となる項目が示されている。正当である範囲の欄には、判断対象となる項目毎の正当である範囲が設定されている。攻撃性を表す数値の欄には、XML文書が制限内容に違反したときのそのXML文書がXML処理サーバ200aに対する攻撃と見なしたときの影響の度合い(攻撃性)を表す数値が設定されている。
【0097】
図12の例では、文書サイズが正当である範囲は1MB以下であり、攻撃性を表す数値は5である。連続する空白文字の数が正当である範囲は100文字以下であり、攻撃性を表す数値は5である。コメントの長さが正当である範囲は200文字以下であり、攻撃性を表す数値は3である。処理命令のターゲット名の長さが正当である範囲は100文字以下であり、攻撃性を表す数値は3である。処理命令の長さが正当である範囲は200文字以下であり、攻撃性を表す数値は3である。要素名の長さが正当である範囲は100文字以下であり、攻撃性を表す数値は3である。要素が持つ属性の数が正当である範囲は50個以下であり、攻撃性を表す数値は3である。属性名の長さが正当である範囲は100文字以下であり、攻撃性を表す数値は3である。属性値の長さが正当である範囲は100文字以下であり、攻撃性を表す数値は3である。連続する文字データおよびCDATAセクションの内容の長さが正当である範囲は10000文字以下であり、攻撃性を表す数値は3である。要素が持つ子ノードの数が正当である範囲は100個以下であり、攻撃性を表す数値は3である。要素の入れ子の深さが正当である範囲は10階層以下であり、攻撃性を表す数値は3である。属性値が正当である範囲は、XML処理サーバ200aが受け付けるフォーマットに従うことであり、攻撃性を表す数値は1である。要素内のテキスト値が正当である範囲は、XML処理サーバ200aが受け付けるフォーマットに従うことであり、攻撃性を表す数値は1である。
【0098】
図13は、第3の実施の形態におけるエラーログのデータ構造例を示す図である。エラーログ441には、クライアントIPアドレス、エラー内容、および攻撃性を表す数値の欄が設けられている。各欄の横方向に並べられた情報同士が互いに関連づけられてレコードを構成しており、各レコードがエラー情報を示している。クライアントIPアドレスの欄には、エラーを生じさせたXML文書の送信元のクライアントのIPアドレスが登録されている。エラー内容の欄には、クライアントIPアドレスに対応付けて、そのクライアントが送信したXML文書によって生じたエラーの内容が登録されている。攻撃性を表す数値の欄には、発生したエラーによって該当するクライアントに加算すべき攻撃性を表す数値が設定されている。
【0099】
たとえば、IPアドレス「10.35.86.66」のエラー内容は「要素名長不当」であり、攻撃性を表す数値が「3」である。なお、同じIPアドレス「10.35.86.66」の「コメント長不当」というエラーも発生しており、このエラーの攻撃性を表す数値は「3」である。
【0100】
図14は、攻撃性合計値テーブルのデータ構造例を示す図である。攻撃性合計値テーブル442には、クライアントIPアドレスと、攻撃性を表す数値の合計との欄が設けられている。クライアントIPアドレスの欄には、エラーを発生させたXML文書の送信元であるクライアントのIPアドレスが設定される。攻撃性を表す数値の合計は、対応するクライアントから送られたXML文書によって発生した全てのエラーに関する攻撃性を表す数値の合計が設定される。
【0101】
たとえば、図13のエラーログ441を参照すると、IPアドレス「10.35.86.66」のクライアント60から送られたXML文書により2つのエラー(要素名長不当、コメント長不当)が発生している。従って、攻撃性合計値テーブル442では、IPアドレス「10.35.86.66」のクライアント60に関し、要素名長不当に関する攻撃性を表す数値「3」とコメント長不当に関する攻撃性を表す数値「3」とが合計され、攻撃性を表す数値の合計として「6」が設定されている。
【0102】
次に、第3の実施の形態に係る公開サーバ400で行われる処理を詳細に説明する。
図15は、第3の実施の形態の処理手順を示すフローチャートである。以下、図15に示す処理をフローチャートに沿って説明する。
【0103】
[ステップS41]公開サーバ400のクライアント識別部410は、クライアントからのXML文書転送のための接続要求を受け付ける。
[ステップS42]クライアント識別部410は、クライアントのIPアドレスを取得する。クライアント識別部410は、IPアドレスを接続制限部420に渡す。
【0104】
[ステップS43]接続制限部420は、エラー情報管理部440から攻撃性合計値テーブル442の内容を取得し、クライアント識別部410から受け取ったIPアドレスの攻撃性を表す数値の合計を調査する。
【0105】
[ステップS44]接続制限部420は、ステップS43で調査した攻撃性を表す数値の合計が10未満であるか否かを判断する。10未満であれば処理がステップS45に進められる。この際、接続制限部420は、IPアドレスを自由度制限部430に渡す。また、合計が10以上であれば処理がステップS52に進められる。
【0106】
[ステップS45]自由度制限部430は、クライアントからXML文書を受け取り、そのXML文書が制限内容テーブル431に登録されている各制限内容を満たしているか否かを調査する。
【0107】
[ステップS46]自由度制限部430は、受け取ったXML文書に、制限内容を超えた項目があるか否かを判断する。制限内容を超えた項目がない場合、処理がステップS47に進められる。制限内容を超えた項目が少なくとも1つある場合、処理がステップS49に進められる。
【0108】
[ステップS47]自由度制限部430は、XML文書をXML処理サーバ200aに転送する。これにより、XML文書が解析部220に渡され、解析されると共に所定の処理が行われる。このとき、解析部220においてエラーが発生すると、そのエラーが公開サーバ400に返される。
【0109】
[ステップS48]自由度制限部430は、解析部220からの処理結果を受け取り、その処理結果がエラー応答か否かを判断する。エラー応答の場合、処理がステップS50に進められる。エラー応答で無い場合、処理がステップS49に進められる。
【0110】
[ステップS49]自由度制限部430は、処理結果をクライアントに返す。その後、処理が終了する。
[ステップS50]自由度制限部430は、自由度に関する制限内容の違反、または解析部220によるエラーが見つかると、エラー情報管理部440に対して、XML文書の送信元であるクライアントのIPアドレスを渡すとともに、エラー内容およびの攻撃性を表す数値を通知する。すると、エラー情報管理部440が、受け取った情報をエラー情報として、エラーログ441に記録する。
【0111】
[ステップS51]エラー情報管理部440は、エラーログ441に新たに登録されたエラー情報に基づいて、攻撃性合計値テーブル442における攻撃性を表す数値の合計を更新する。
【0112】
[ステップS52]接続制限部420または自由度制限部430が、エラーの発生をクライアントに通知する。具体的には、ステップS44で攻撃性を表す数値の合計が10以上と判断された場合、接続制限部420によってエラー通知が行われる。また、ステップS46で自由度の制限を越えていると判断されたとき、またはステップS48においてエラー応答があったときは、自由度制限部430によってエラー通知が行われる。その後、処理が終了する。
【0113】
このようにして、エラーの攻撃性を表す数値が10以上となったクライアントに対しては、以後の接続を拒否することができる。
ここで、クライアント60は、XML文書61、XML文書62、XML文書63を連続して公開サーバ400に送信するものとする。XML文書61は自由度制限部430でエラーとなる(自由度制限違反)ものとする。XML文書62は、解析部220でエラーとなるものとする。XML文書63は正当な入力データとする。また、クライアント60からのXML文書61〜63送信前のエラーログ441と攻撃性合計値テーブル442との状態は、それぞれ図13,図14に示す通りとする。
【0114】
まず、クライアント60がXML文書61を送信する場合、クライアント60がネットワーク10を通じて公開サーバ400に対して接続要求を出す。すると、クライアント識別部410はクライアントのIPアドレスを取得する。次に、接続制限部420は、攻撃性合計値テーブル442を解析し、クライアント60の攻撃性を表す数値の合計を取得する。この時点では合計値が10未満であるため、接続制限部420はクライアント60の接続を許可する。
【0115】
自由度制限部430はXML文書61を受け取り、自由度の制限を超えていないか検証を行う。エラーが検出されるので、自由度制限部430は、クライアント60のIPアドレス、エラー内容および攻撃性を表す数値「3」からなるエラー情報をエラー情報管理部440を渡す。エラー情報管理部440は、受け取ったエラー情報をエラーログ441に記録すると共に、攻撃性合計値テーブル442を更新する。また、自由度制限部430は、クライアント60にエラーを通知する。
【0116】
続けてクライアント60がXML文書62を送信しようとした場合、クライアント60がネットワーク10を通じて公開サーバ400に対して接続要求を出す。すると、クライアント識別部410はクライアントのIPアドレスを取得する。接続制限部420は、攻撃性合計値テーブル442を解析し、クライアント60の攻撃性を表す数値の合計を取得する。この時点では合計値が10未満であるため、接続制限部420はクライアント60の接続を許可する。
【0117】
自由度制限部430はXML文書62を受け取り、自由度の制限を超えていないか検証を行う。エラーは検出されないので、公開サーバ400からXML処理サーバ200aへとXML文書62が転送される。解析部220はXML文書62を解析する。すると、エラーが検出されるので、解析部220はクライアントのIPアドレス、エラー内容を自由度制限部430に返す。自由度制限部430は、攻撃性合計値テーブル442からエラー内容に応じた攻撃性を表す数値「1」を求め、クライアントのIPアドレス、エラー内容、および攻撃性を表す数値の組をエラー情報としてエラー情報管理部440に渡す。エラー情報管理部440は、受け取ったエラー情報をエラーログ441に記録すると共に、攻撃性合計値テーブル442を更新する。また、自由度制限部430は、クライアント60にエラーを通知する。
【0118】
2つのXML文書61,62が送信されたことで、エラーログ441と攻撃性合計値テーブル442の内容が更新される。
図16は、更新後のエラーログの例を示す図である。エラーログ441は、図13に示した状態に対して、クライアントIPアドレス「10.35.86.66」のエラー情報として要素名長不当(攻撃性を表す数値「3」)と属性値不当(攻撃性を表す数値「1」)とのエラー内容が登録されている。
【0119】
図17は、更新後の攻撃性合計値テーブルの例を示す図である。攻撃性合計値テーブル442は、クライアントIPアドレス「10.35.86.66」の攻撃性を表す数値の合計が「6」(図14の状態)から「10」に更新されている。
【0120】
このような状態で、クライアント60がXML文書63を送信しようとした場合、クライアント60がネットワーク10を通じて公開サーバ400に対して接続要求を出す。すると、クライアント識別部410はクライアントのIPアドレスを取得する。接続制限部420は攻撃性合計値テーブル442を解析し、クライアント60の攻撃性を表す数値の合計を取得する。合計値が10以上であるため、接続制限部420はクライアント60の接続を拒否し、エラーを返却する。
【0121】
このように、エラー発生時の攻撃性を表す数値を記録し、それに応じてクライアントの接続を制限することによって、不当なアクセスを繰り返すクライアントの攻撃を回避することが可能となる。
【0122】
なお、第3の実施の形態の変形例として、クライアントごとの過去のエラー情報から攻撃度数値を累計し、その累計した値に応じて各クライアントの処理の優先度を決定するような優先度決定部を追加することもできる。
【0123】
また、第3の実施の形態の他の変形例として、あらかじめ用意された特別なIPアドレスを持つクライアントに対しては、自由度制限モジュールが設定する制限を緩和するようなシステムも可能である。例えば、そのシステムを利用する契約を結んでいるクライアントは信用度が高いため、自由度制限モジュールによる検閲を軽度のものにしておき、その他の不特定なクライアントについては攻撃者が含まれる可能性もあるため、高度な制限を設定するようにすることもできる。
【0124】
さらに、第3の実施の形態のようにIPアドレスでクライアントを識別する方法では、IPアドレスのなりすましについて対処ができない。この回避のために、クライアントの認証を行うモジュールを追加することでさらなる安全性の確保が可能となる。例えば、ユーザ名とパスワードによる認証を行うクライアント認証モジュールを追加する方法がある。クライアント認証モジュールの認証機構をさらに高度にすることで、さらに頑健なシステムの構築が可能である。
【0125】
また、第3の実施の形態では、XML処理サーバ200aの解析部220で発生したエラーを自由度制限部430に通知して、そのエラーに応じた攻撃性を表す数値を取得しているが、解析部220にエラー内容に応じた攻撃性を表す数値を定義しておくこともできる。すなわち、図12示す制限内容テーブル431と同様の制限内容テーブルを解析部220内に設ける。解析部220内の制限内容テーブルには、少なくとも解析部220で発生するエラーに関する項目、正当である範囲、正当性を表す数値が設定されていればよい。
【0126】
ここで、エラー情報と攻撃性を表す数値の関係について説明する。通常、正規のクライアントを操作する善意のユーザは、出力するXML文書が正しいことを十分に検証してから運用を始める。よって、基本的にエラーの発生は少なく、またサーバが要求するXMLのフォーマットと大きく相違のあるXMLデータを送信してくるケースはさらに少ないと考えられる。
【0127】
ここで、クライアントから送信されたXMLデータがエラーとなるケースを以下に示し、これらのケースについて、攻撃性を表す数値をどのように設定すべきかを述べる。
第1のケース:自由度の制限を超えた場合
第2のケース:XMLが整形式でない場合
第3のケース:XMLが妥当でない場合(DTD、XMLSchemaなどの検証でエラー)第4のケース:データに意味的な誤りがある場合
第1のケースは、自由度制限部に指定されている、自由度の制限値を超えた場合に起こる。正規のクライアントであれば、たとえXML文書作成プログラムに誤りがあっても、この制限値を超えるケースは非常に低い。よって、第1のケースでエラーが検出された場合は、クライアントは意図的にそのようなXML文書を送信しており、攻撃の意図があると考えられる。よって、このケースでは攻撃性を表す数値は高く設定すべきである。また、データサイズの大きさなどといった危険性の高いエラーでは、さらに数値を高くするというように設定してもよい。
【0128】
第2のケースも、正規のクライアントではまず起きないエラーである。XML文書の生成は通常プログラムにより行われる。そのため、整形式でないXML文書が出力される可能性は低く、またそれがクライアント側のテストで検出できないケースはさらに少ないと考えられる。よって、第2のケースでも攻撃性を表す数値は高くすべきである。
【0129】
第3のケースは、XMLパーザによる妥当性検証によるエラーで、第4のケースはXMLの解析が完了したあとで、それを利用するプログラムがデータの意味的な誤りを検出した場合に起こるエラーである。この2つのケースは正規のクライアントが誤っているXML文書を送っている可能性が高い。よって、このケースでは、第1、第2のケースよりも攻撃性の数値は低く設定してもよいと考えられる。ただし正規のクライアントでもエラーのあるデータを連続して送られると結果的に攻撃していることと同じになり、また攻撃を意図したクライアントがこのようなデータを送る可能性もある。そのため、低すぎない数値に設定するべきである。
【0130】
ところで、上記の説明では公開サーバとXML処理サーバを別の装置として説明したが、XML処理サーバ内に公開サーバの機能を設けることもできる。
また、上記の各実施の形態では、クライアント識別部、接続制限部、自由度制限部が公開サーバ内に1つずつ設けられているが、各要素が2つ以上存在していてもよい。
【0131】
また、構造化文書としてXML文書を対象としたときの実施の形態について説明したが、XHTML等の他の構造化文書に対しても適用可能である。
また、上記の実施の形態に示す処理機能は、コンピュータによって実現することができる。その場合、公開サーバが有すべき機能の処理内容を記述した入力データ制限プログラムが提供される。その入力データ制限プログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述した入力データ制限プログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto−Optical disc)などがある。
【0132】
入力データ制限プログラムを流通させる場合には、たとえば、その入力データ制限プログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、入力データ制限プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにその入力データ制限プログラムを転送することもできる。
【0133】
入力データ制限プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録された入力データ制限プログラムもしくはサーバコンピュータから転送された入力データ制限プログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置から入力データ制限プログラムを読み取り、入力データ制限プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接入力データ制限プログラムを読み取り、その入力データ制限プログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータから入力データ制限プログラムが転送される毎に、逐次、受け取った入力データ制限プログラムに従った処理を実行することもできる。
【0134】
(付記1) 入力される構造化文書の受け取りの許否を判定する入力データ制限プログラムにおいて、
コンピュータに、
文書構造上の許容範囲を示す自由度制限条件が予め定義されており、構造化文書が入力されると、入力された構造化文書の構造を前記自由度制限条件と比較し、
前記入力された構造化文書が前記自由度制限条件を満たしていない場合、前記入力された構造化文書の送信元であるクライアントに関連付けてエラー情報を記録し、
前記クライアントに関連付けられた前記エラー情報が所定の条件を満たした場合、以後の前記クライアントからの構造化文書の入力を拒否する、
処理を実行させることを特徴とする入力データ制限プログラム。
【0135】
(付記2) 前記クライアントから送られた構造化文書によるエラーの発生回数が所定回数以上になった場合、以後の前記クライアントからの構造化文書の入力を拒否する、
処理を実行させることを特徴とする付記1記載の入力データ制限プログラム。
【0136】
(付記3) 前記自由度制限条件には、制限内容毎に攻撃性を表す数値が定義されており、前記構造化文書が前記自由度制限条件を満たしていない場合、違反している制限内容に応じた攻撃性を表す数値を含む前記エラー情報を記録し、
前記クライアントに関連付けられた前記エラー情報に含まれる攻撃性を表す数値の合計が所定値以上になった場合、以後の前記クライアントからの構造化文書の入力を拒否する、
処理を実行させることを特徴とする付記1記載の入力データ制限プログラム。
【0137】
(付記4) 前記入力された構造化文書の構造が前記自由度制限条件を満たしていない場合、前記入力された構造化文書を破棄する、
処理を実行させることを特徴とする付記1記載の入力データ制限プログラム。
【0138】
(付記5) 入力される構造化文書の受け取りの許否を判定する入力データ制限方法において、
文書構造上の許容範囲を示す自由度制限条件が予め定義されており、構造化文書が入力されると、入力された構造化文書の構造を前記自由度制限条件と比較し、
前記入力された構造化文書が前記自由度制限条件を満たしていない場合、前記入力された構造化文書の送信元であるクライアントに関連付けてエラー情報を記録し、
前記クライアントに関連付けられた前記エラー情報が所定の条件を満たした場合、以後の前記クライアントからの構造化文書の入力を拒否する、
ことを特徴とする入力データ制限方法。
【0139】
(付記6) 入力される構造化文書の受け取りの許否を判定する入力データ制限装置において、
文書構造上の許容範囲を示す自由度制限条件が予め定義されており、構造化文書が入力されると、入力された構造化文書の構造を前記自由度制限条件と比較する自由度制限判断手段と、
前記入力された構造化文書が前記自由度制限条件を満たしていない場合、前記入力された構造化文書の送信元であるクライアントに関連付けてエラー情報を記録するエラー情報記録手段と、
前記クライアントに関連付けられた前記エラー情報が所定の条件を満たした場合、以後の前記クライアントからの構造化文書の入力を拒否する入力拒否手段と、
を有することを特徴とする入力データ制限装置。
【0140】
(付記7) 入力される構造化文書の受け取りの許否を判定する入力データ制限プログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記コンピュータに、
文書構造上の許容範囲を示す自由度制限条件が予め定義されており、構造化文書が入力されると、入力された構造化文書の構造を前記自由度制限条件と比較し、
前記入力された構造化文書が前記自由度制限条件を満たしていない場合、前記入力された構造化文書の送信元であるクライアントに関連付けてエラー情報を記録し、
前記クライアントに関連付けられた前記エラー情報が所定の条件を満たした場合、以後の前記クライアントからの構造化文書の入力を拒否する、
処理を実行させることを特徴とする入力データ制限プログラムを記録したコンピュータ読み取り可能な記録媒体。
【0141】
【発明の効果】
以上説明したように本発明では、クライアントから送られた構造化文書が自由度制限条件を満たしていなければエラー情報を格納し、そのエラー情報が所定の条件を満たすと、以後のクライアントからの構造化文書の入力を拒否するようにした。そのため、フォーマット上の自由度の高い構造化文書に対して、その自由度を容易に制限することができる。その結果、自由度の高さを逆手に取った不正な構造化文書の入力を拒否することができ、構造化文書の解析等の処理機能の安全性を確保することができる。
【図面の簡単な説明】
【図1】実施の形態に適用される発明の概念図である。
【図2】本発明の実施の形態におけるシステム構成例を示す図である。
【図3】本発明の実施の形態に用いるコンピュータのハードウェア構成例を示す図である。
【図4】第1の実施の形態の構成を示すブロック図である。
【図5】XMLサーバの処理手順を示すフローチャートである。
【図6】第2の実施の形態の構成を示すブロック図である。
【図7】制限内容テーブルのデータ構造例を示す図である。
【図8】XML文書の判断対象項目の例を示す図である。
【図9】エラーログのデータ構造例を示す図である。
【図10】第2の実施の形態の処理手順を示すフローチャートである。
【図11】第3の実施の形態の機能を示すブロック図である。
【図12】第3の実施の形態に係る制限内容テーブルのデータ構造例を示す図である。
【図13】第3の実施の形態におけるエラーログのデータ構造例を示す図である。
【図14】攻撃性合計値テーブルのデータ構造例を示す図である。
【図15】第3の実施の形態の処理手順を示すフローチャートである。
【図16】更新後のエラーログの例を示す図である。
【図17】更新後の攻撃性合計値テーブルの例を示す図である。
【符号の説明】
1 入力データ制限装置
1a 自由度制限条件
1b エラー情報
2 クライアント
3 構造化文書処理装置
100 公開サーバ
110 接続制限部
120 自由度制限部
130 エラー情報管理部
200 XML処理サーバ
210 解析部

Claims (5)

  1. 入力される構造化文書の受け取りの許否を判定する入力データ制限プログラムにおいて、
    コンピュータに、
    文書構造上の許容範囲を示す自由度制限条件が予め定義されており、構造化文書が入力されると、入力された構造化文書の構造を前記自由度制限条件と比較し、
    前記入力された構造化文書が前記自由度制限条件を満たしていない場合、前記入力された構造化文書の送信元であるクライアントに関連付けてエラー情報を記録し、
    前記クライアントに関連付けられた前記エラー情報が所定の条件を満たした場合、以後の前記クライアントからの構造化文書の入力を拒否する、
    処理を実行させることを特徴とする入力データ制限プログラム。
  2. 前記クライアントから送られた構造化文書によるエラーの発生回数が所定回数以上になった場合、以後の前記クライアントからの構造化文書の入力を拒否する、
    処理を実行させることを特徴とする請求項1記載の入力データ制限プログラム。
  3. 前記自由度制限条件には、制限内容毎に攻撃性を表す数値が定義されており、前記構造化文書が前記自由度制限条件を満たしていない場合、違反している制限内容に応じた攻撃性を表す数値を含む前記エラー情報を記録し、
    前記クライアントに関連付けられた前記エラー情報に含まれる攻撃性を表す数値の合計が所定値以上になった場合、以後の前記クライアントからの構造化文書の入力を拒否する、
    処理を実行させることを特徴とする請求項1記載の入力データ制限プログラム。
  4. 前記入力された構造化文書の構造が前記自由度制限条件を満たしていない場合、前記入力された構造化文書を破棄する、
    処理を実行させることを特徴とする請求項1記載の入力データ制限プログラム。
  5. 入力される構造化文書の受け取りの許否を判定する入力データ制限方法において、
    文書構造上の許容範囲を示す自由度制限条件が予め定義されており、構造化文書が入力されると、入力された構造化文書の構造を前記自由度制限条件と比較し、
    前記入力された構造化文書が前記自由度制限条件を満たしていない場合、前記入力された構造化文書の送信元であるクライアントに関連付けてエラー情報を記録し、
    前記クライアントに関連付けられた前記エラー情報が所定の条件を満たした場合、以後の前記クライアントからの構造化文書の入力を拒否する、
    ことを特徴とする入力データ制限方法。
JP2003206627A 2003-08-08 2003-08-08 入力データ制限プログラムおよび入力データ制限方法 Expired - Fee Related JP4322059B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003206627A JP4322059B2 (ja) 2003-08-08 2003-08-08 入力データ制限プログラムおよび入力データ制限方法
US10/864,536 US7949940B2 (en) 2003-08-08 2004-06-09 Program and method for restricting data entry

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003206627A JP4322059B2 (ja) 2003-08-08 2003-08-08 入力データ制限プログラムおよび入力データ制限方法

Publications (2)

Publication Number Publication Date
JP2005056007A true JP2005056007A (ja) 2005-03-03
JP4322059B2 JP4322059B2 (ja) 2009-08-26

Family

ID=34113722

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003206627A Expired - Fee Related JP4322059B2 (ja) 2003-08-08 2003-08-08 入力データ制限プログラムおよび入力データ制限方法

Country Status (2)

Country Link
US (1) US7949940B2 (ja)
JP (1) JP4322059B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008538638A (ja) * 2005-04-21 2008-10-30 マイクロソフト コーポレーション ウェブサービスを提供するコンピュータをマルウェアから保護する方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7461337B2 (en) * 2003-03-12 2008-12-02 International Business Machines Corporation Exception markup documents
KR100564767B1 (ko) * 2003-12-26 2006-03-27 한국전자통신연구원 Xml처리 장치 및 이를 적용한 시스템의 xml 처리 방법
US7512592B2 (en) * 2004-07-02 2009-03-31 Tarari, Inc. System and method of XML query processing
US7562293B2 (en) * 2005-05-27 2009-07-14 International Business Machines Corporation Method and apparatus for processing a parseable document

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10143420A (ja) * 1996-11-08 1998-05-29 Toshiba Corp ネットワークシステム
JP2002016633A (ja) * 2000-06-30 2002-01-18 Ntt Communications Kk 通信状態制御方法および通信状態制御システム
JP2002269040A (ja) * 2001-03-12 2002-09-20 Fujitsu Ltd 不正クライアント判別装置
JP2002342279A (ja) * 2001-03-13 2002-11-29 Fujitsu Ltd フィルタリング装置、フィルタリング方法およびこの方法をコンピュータに実行させるプログラム
JP2002342143A (ja) * 2001-05-21 2002-11-29 Nippon Telegr & Teleph Corp <Ntt> アクセス制御システム及びその処理プログラムと記録媒体

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6643818B1 (en) * 1999-11-19 2003-11-04 International Business Machines Corporation Storing and using the history of data transmission errors to assure data integrity
US6633855B1 (en) * 2000-01-06 2003-10-14 International Business Machines Corporation Method, system, and program for filtering content using neural networks
US6604099B1 (en) * 2000-03-20 2003-08-05 International Business Machines Corporation Majority schema in semi-structured data
US6772196B1 (en) * 2000-07-27 2004-08-03 Propel Software Corp. Electronic mail filtering system and methods
US20040078326A1 (en) * 2000-11-06 2004-04-22 Strydom Johan Lamprecht Theron Data processing system
US20020099735A1 (en) * 2001-01-19 2002-07-25 Schroeder Jonathan E. System and method for conducting electronic commerce
US20020116629A1 (en) * 2001-02-16 2002-08-22 International Business Machines Corporation Apparatus and methods for active avoidance of objectionable content
US20030101268A1 (en) * 2001-05-18 2003-05-29 Davidson David Scott High-level extensible markup language (XML) structure and communication process
DE10138710A1 (de) * 2001-08-07 2003-02-20 Siemens Ag Erweiterung des OPC-Protokolls
JP4007781B2 (ja) 2001-09-19 2007-11-14 富士通株式会社 電子文書送信プログラム、電子文書受信プログラム、電子文書送信方法、電子文書受信方法、電子文書送信装置および電子文書受信装置
US7490128B1 (en) * 2002-09-09 2009-02-10 Engate Technology Corporation Unsolicited message rejecting communications processor
US20040158630A1 (en) * 2003-02-12 2004-08-12 Chang Tsung-Yen Dean Monitoring and controlling network activity in real-time
US20040224297A1 (en) * 2003-05-09 2004-11-11 Marc Schwarzschild System and method for providing partial credit in an automatically graded test system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10143420A (ja) * 1996-11-08 1998-05-29 Toshiba Corp ネットワークシステム
JP2002016633A (ja) * 2000-06-30 2002-01-18 Ntt Communications Kk 通信状態制御方法および通信状態制御システム
JP2002269040A (ja) * 2001-03-12 2002-09-20 Fujitsu Ltd 不正クライアント判別装置
JP2002342279A (ja) * 2001-03-13 2002-11-29 Fujitsu Ltd フィルタリング装置、フィルタリング方法およびこの方法をコンピュータに実行させるプログラム
JP2002342143A (ja) * 2001-05-21 2002-11-29 Nippon Telegr & Teleph Corp <Ntt> アクセス制御システム及びその処理プログラムと記録媒体

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
篠原 一郎 ICHIRO SHINOHARA: "さわって学ぶXML入門 第4回 DTDを使ってXML文書を検証する", 日経オープンシステム 第100号 NIKKEI OPEN SYSTEMS, JPN6009010200, 15 July 2001 (2001-07-15), JP, pages 198 - 205, ISSN: 0001266621 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008538638A (ja) * 2005-04-21 2008-10-30 マイクロソフト コーポレーション ウェブサービスを提供するコンピュータをマルウェアから保護する方法
JP4880674B2 (ja) * 2005-04-21 2012-02-22 マイクロソフト コーポレーション ウェブサービスを提供するコンピュータをマルウェアから保護する方法

Also Published As

Publication number Publication date
US7949940B2 (en) 2011-05-24
US20050034032A1 (en) 2005-02-10
JP4322059B2 (ja) 2009-08-26

Similar Documents

Publication Publication Date Title
US7614002B2 (en) Method and system for protecting internet users&#39; privacy by evaluating web site platform for privacy preferences policy
US8806440B2 (en) Integrated software development system, method for validation, computer arrangement and computer program product
US8640231B2 (en) Client side attack resistant phishing detection
US8695084B2 (en) Inferencing data types of message components
EP2558973B1 (en) Streaming insertion of tokens into content to protect against csrf
US8051484B2 (en) Method and security system for indentifying and blocking web attacks by enforcing read-only parameters
JP4911018B2 (ja) フィルタリング装置、フィルタリング方法およびこの方法をコンピュータに実行させるプログラム
US7805513B2 (en) Access control list checking
US7542957B2 (en) Rich Web application input validation
US8458783B2 (en) Using application gateways to protect unauthorized transmission of confidential data via web applications
US20100332837A1 (en) Web application security filtering
WO2005069823A2 (en) Centralized transactional security audit for enterprise systems
JP2009501392A (ja) Htmlブラウザおよび拡張機能の既知の脆弱性からの免疫付与
Patel et al. A novel methodology towards a trusted environment in mashup web applications
US20040030788A1 (en) Computer message validation system
CN110362992A (zh) 在基于云端环境中阻挡或侦测计算机攻击的方法和设备
US20050268333A1 (en) Method and apparatus for providing security to web services
US7974956B2 (en) Authenticating a site while protecting against security holes by handling common web server configurations
JP2008015733A (ja) ログ管理計算機
Gupta et al. A survey and classification of XML based attacks on web applications
JP4322059B2 (ja) 入力データ制限プログラムおよび入力データ制限方法
Modak et al. Vulnerability of Cloud: Analysis of XML Signature Wrapping Attack and Countermeasures
JP3923268B2 (ja) 不正クライアント判別装置
Jamaluddin et al. Biologically inspired security as a service for service-oriented middleware
Aljamea et al. Effective Solutions for Most Common Vulnerabilities in Web Applications

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090310

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090511

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090602

R150 Certificate of patent or registration of utility model

Ref document number: 4322059

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120612

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120612

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130612

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130612

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees