JP3821107B2 - CGI buffer overflow vulnerability verification apparatus and method, and program - Google Patents

CGI buffer overflow vulnerability verification apparatus and method, and program Download PDF

Info

Publication number
JP3821107B2
JP3821107B2 JP2003091838A JP2003091838A JP3821107B2 JP 3821107 B2 JP3821107 B2 JP 3821107B2 JP 2003091838 A JP2003091838 A JP 2003091838A JP 2003091838 A JP2003091838 A JP 2003091838A JP 3821107 B2 JP3821107 B2 JP 3821107B2
Authority
JP
Japan
Prior art keywords
data
server
verification
input
storage device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2003091838A
Other languages
Japanese (ja)
Other versions
JP2004302584A (en
Inventor
哲司 谷川
昌 杉浦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2003091838A priority Critical patent/JP3821107B2/en
Publication of JP2004302584A publication Critical patent/JP2004302584A/en
Application granted granted Critical
Publication of JP3821107B2 publication Critical patent/JP3821107B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、ネットワーク上のサーバに対する攻撃の検証技術に関し、特に、CGIプログラムの検証等に適用して好適とされる、装置及び方法並びにプログラムに関する。
【0002】
【従来の技術】
CGI(Common Gateway Interface)は、WEBクライアント(ブラウザ)からの要求を受け付けたWEBサーバが対応するプログラムを起動し、プログラムの実行結果をHTML(Hyper Text Markup Language)でWEBブラウザに返す仕組であり、CGIで動作するプログラム(WEBクライアントからの指示に応じてWEBサーバ側で動作するプログラム)をCGIプログラムという。CGIプログラムは、スクリプ言語Perl(Practical Report Extraction Language)等や、開発言語C等を用いて作成される。次に、バッファオーバフロー脆弱性について概説する。インターネットに常時接続されているWEBサーバは、不正アクセス、サービス不能攻撃等、多くの攻撃を受ける。例えば、WEBブラウザで不正なURLによる要求(例えば特段に長い文字数や特殊コードを含むURL)によってバッファオーバーフローが発生し、サーバ機能を停止する場合がある。ここで、バッファオーバーフローとは、サーバにアクセスしたユーザが本来の文字数(桁数)を越えた長い文字列等を入力した場合、バッファ(メモリ)内で溢れを生じ、誤動作することをいう。バッファオーバフロー脆弱性は、文字数の制限が行われていない各種サーバについて存在し得る。そして、この脆弱性を利用した攻撃により、システム破壊、権限の奪取、あるいはデータ漏洩等の発生の可能性もある。
【0003】
上記脆弱性に対するセキュリティ対策として、CGIプログラムの入力データ処理のバッファオーバフロー脆弱性の検証は、一般に、下記の3つの方法で行われている。
【0004】
第1の方法は、CGIプログラムのソースコードを人手にて机上チェックを行い、バッファオーバフロー脆弱性の検証を行う、というものである。
【0005】
第2の方法は、CGIプログラムのソースコードをバッファオーバフロー脆弱性検出プログラムによって検証を行う、というものである。
【0006】
第3の方法は、検証するCGIプログラムをWEBサーバに搭載し、CGIプログラムの入力データ仕様に規定されている文字数より長いか、あるいは、規定されていない文字コードをWEBサーバに接続されたクライアントから人手あるいは検証用プログラムで送出して検証を行う、というものである。
【0007】
なお、従来の脆弱性検査システムとして、ネットワークの脆弱性を検査するための検査プランを作成する脆弱性検査計画用計算機と、作成した検査プランにしたがって検査対象に対して攻撃を加え、攻撃に対して検査対象がとった挙動をもとに検査結果を作成する脆弱性検査用計算機と、を備えたシステムが知られている(例えば特許文献1参照)。この脆弱性検査システムは、脆弱性検査の検査項目を格納した脆弱性情報データベース(脆弱性のソースコードと攻撃のソースコードを含む)と、脆弱性検査を実行するための検査ツールを格納した脆弱性検査ツールデータベースと、セキュリティポリシーをもとに脆弱性情報データベースから検査項目を絞り込む絞込み手段とを備え、該絞込み手段で絞り込まれた検査項目をもとに、脆弱性検査ツールデータベースから検査ツールを検索し、検査プランを作成する構成とされる。
【0008】
またCGIによる攻撃によるバッファオーバフローの検出に対する対抗処理として攻撃元ホストのシャットダウンとターゲットがソースによって侵入された旨のアラートを発する監視部を備えた構成も知られている(例えば特許文献2参照)。
【0009】
そして、端末と公開用WEBサーバとの間にWEBサイト作成支援システムを配置し、端末からの遠隔操作によりWEBデータを管理編集し、WEBデータを含む利用者ごとのデータを階層的ディレクトリ構造に基づいて格納するとともに、プレビューを提供し、WEBデータをインターネットを経て所定の公開用WEBサーバに転送する構成としたシステムも知られている(例えば特許文献3参照)。
【0010】
また、入力引数の値等を記憶するものとして、システムのテストにおいて関数が呼ばれる度に、該関数の属するモジュールの名称、関数の名称、入力引数の値、出力引数の値、リターン値をトレース情報として記憶し、テストを実行したモジュール毎の作成日付を記憶し、システムがバージョンアップしたとき、同じテストを再実行し、トレース情報とモジュール毎の作成日付を、前回のテスト時の結果と比較することで、デグレーション箇所を予測するテスト方法も知られている(例えば特許文献4参照)
【0011】
【特許文献1】
特開2002−229946号公報(第3−第4頁、第1図)
【特許文献2】
特開2002−342276号公報(第6頁、第10図)
【特許文献3】
特開2002−197019号公報(第5頁、第1図)
【特許文献4】
特開平10−320234号公報(第2−3頁、第1図)
【0012】
【発明が解決しようとする課題】
ところで、上記した従来の第1乃至第3の方法は、検証するCGIプログラムをWEBサーバに搭載しての検証に、時間と工数を要する、という問題点を有している。このため、CGIプログラムの生産性を向上させることが困難である。
【0013】
その理由は、上記した従来の第1乃至第3の方法により、検証するCGIプログラムをWEBサーバに搭載しての検証を行うには、CGIプログラムの入力データ仕様を理解した上で、WEBサーバに接続されたクライアントから、人手により、あるいは検証用プログラムを作成して、検証を行う必要がある、ためである。
【0014】
したがって、本発明の主たる目的は、CGIバッファオーバフロー等の脆弱性の検証の作業効率の向上に好適とされる検証装置と方法並びにプログラムを提供することにある。
【0015】
【課題を解決するための手段】
前記目的を達成する本発明の1つのアスペクトに係る検証装置は、通信ネットワークを介して接続するクライアント端末及びサーバと通信接続する手段と、記憶装置と、を備え、前記サーバの所定の脆弱性の検証を行うにあたり、第1のモード(通常モード又は正常動作検証モード)では、前記クライアント端末から前記サーバあてに送信されるデータを受け取り、前記データを、前記サーバに送信するとともに、前記記憶装置に格納するように制御し、前記記憶装置に格納されたデータに関連付けて作成された脆弱性検証用のデータを前記記憶装置に格納する制御を行い、第2のモード(脆弱性検証用モード)では、前記記憶装置に記憶されている脆弱性検証用のデータを参照して生成したデータを前記サーバに送信する制御を行う。本発明に係る検証装置において、前記第2のモードに設定されているとき、前記クライアント端末から前記サーバあてのデータを受け取り、前記受け取ったデータと前記記憶装置に記憶されているデータとを比較照合し、所定の情報が一致する場合、前記受け取ったデータを、前記受け取ったデータに対応する前記脆弱性検証用のデータの内容に変更し、変更したデータを、前記サーバに送信する。
【0016】
本発明は、別のアスペクトにおいて、ネットワークを介して接続するクライアント端末とサーバ間に配され、前記クライアント端末及び前記サーバと通信接続する手段を備えた検証装置が、通常モードのときは、前記クライアント端末から前記サーバに送出されるデータを受信し、受信したデータを前記サーバへ送出するとともに、受信したデータを、記憶装置に蓄積するように制御する手段と、前記記憶装置に記憶されているデータを、前記検証装置の操作端末に表示し、前記操作端末から入力された脆弱性検証用のデータを前記記憶装置に格納するように制御する手段を備えている。さらに、この検証装置は、前記操作端末から脆弱性検証モードが指示された場合、脆弱性検証モードに設定され、前記クライアント端末から送出されるデータを受信して、受信データの解析を行い、受信データの内容と前記記憶装置に蓄積されたデータとの比較を行い、比較の結果、所定の情報が一致した場合には、前記受信データの内容を、脆弱性検証用として前記記憶装置に記憶されている内容に変更し、変更したデータを、前記サーバへ送出するように制御する手段と、を備えている。
【0017】
本発明によれば、前記検証装置の操作端末から、通常モードと脆弱性検証モードの切り替えが自在とされている。本発明によれば、前記検証装置は、通常モード時には、前記クライアント端末から、前記サーバに送出されるデータを、そのまま前記サーバへ送出する。
【0018】
本発明によれば、後述する実施形態のとおり、前記サーバがWEBサーバであり、前記クライアント端末がWEBブラウザが実装された端末であり、前記脆弱性検証用のデータは、前記WEBサーバに搭載されるCGI(Common Gateway Interface)プログラムのバッファオーバフロー脆弱性検証用のデータとしてもよい。
【0019】
本発明によれば、前記通常モードのとき、前記クライアント端末から前記サーバへの要求データを受け取り、前記要求データに含まれる検索対象のCGIの名称及びCGIへ引き渡す引数名称とデータが、前記記憶装置に格納される構成としてもよい。
【0020】
本発明によれば、受信データに含まれるCGIの名称とデータの名称と、前記記憶装置に蓄積されたデータのCGIの名称とデータの名称とが一致するか否かの比較を行い、一致した場合、データの内容を前記記憶装置に記憶されているバッファオーバフロー脆弱性検証用のデータに置き換えて前記サーバに送信する制御を行うように制御する、構成としてもよい。
【0021】
また、本発明は、別のアスペクトにおいて、WEBクライアントとの入出力を行うクライアントデータ入出力手段と、WEBサーバとの入出力を行うサーバデータ入出力手段と、クライアントデータ入出力手段及びサーバデータ入出力手段からのデータを処理するデータ処理手段と、データ処理手段が入出力データを蓄積・参照するデータベースと、データ処理手段の処理方法の制御とデータベースのデータを変更する制御手段を有する。
【0022】
上記目的を達成する本発明の1つのアスペクトに係る方法は、通信ネットワークを介して接続するクライアント端末及びサーバと通信接続する検証装置が、前記サーバの所定の脆弱性の検証を行うにあたり、第1のモードでは、前記クライアント端末から前記サーバあてに送信されるデータを前記検証装置が受け取り、前記検証装置は、前記データを、前記サーバに送信するとともに、前記記憶装置に格納するように制御するステップと、前記検証装置は、前記記憶装置に格納されたデータに関連付けて操作者により作成された脆弱性検証用のデータを、前記記憶装置に記憶するステップと、第2のモードでは、前記検証装置は、前記記憶装置に記憶されている脆弱性検証用のデータを参照してデータを生成し、前記生成したデータを前記サーバに送信するステップと、を含む。本発明に係る方法において、前記第2のモードに設定されているとき、前記クライアント端末から前記サーバあてのデータを受け取り、前記受け取ったデータと前記記憶装置に記憶されているデータとを比較するステップと、前記比較の結果、所定の情報が一致する場合、前記受け取ったデータを、前記受け取ったデータに対応する前記脆弱性検証用のデータの内容に変更し、変更したデータを、前記サーバに送信するステップを含む。
【0023】
上記目的を達成する本発明の1つのアスペクトに係るコンピュータ・プログラムは、通信ネットワークを介して接続するクライアント端末及びサーバと通信接続し、前記サーバの所定の脆弱性の検証を行う検証装置を構成するコンピュータに、第1のモードでは、前記クライアント端末から前記サーバあてに送信されるデータを受け取り、前記データを、前記サーバに送信するとともに、前記記憶装置に格納するように制御する処理と、前記記憶装置に格納されたデータに関連付けて作成された脆弱性検証用のデータを前記記憶装置に記憶する処理と、を実行させ、第2のモードでは、前記記憶装置に記憶されている脆弱性検証用のデータを参照して生成したデータを、前記サーバに送信する処理を実行させるプログラムよりなる。本発明に係るプログラムにおいて、前記第2のモードに設定されているとき、前記クライアント端末から前記サーバあてのデータを受け取り、前記受け取ったデータと前記記憶装置に記憶されているデータとを比較する処理と、前記比較の結果、所定の情報が一致する場合、前記受け取ったデータを、前記受け取ったデータに対応する前記脆弱性検証用のデータの内容に変更し、変更したデータを、前記サーバに送信する処理とを含むように構成してもよい。
【0024】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して詳細に説明する。本発明に係る検証方法の一実施形態は、IP(Internet Protocol)網等の通信ネットワークを介して接続するクライアント端末(7)とサーバ(8)間に、クライアント端末(7)及びサーバ(8)と通信接続する検証装置(1)を配置したものであり、以下の工程(ステップ)を含む。
【0025】
ステップ1:通常モード(正常動作の検証モード)のときは、検証装置(1)は、クライアント端末(7)からサーバ(8)に送出されるデータを受信し、受信したデータをサーバ(8)へそのまま送出するとともに、受信した所定のデータ(例えばCGIとの交信・要求の場合、CGI名称、引数(データ)名称、値(データ))を、記憶装置(5)に蓄積するように制御する。記憶装置(5)には、データベースを構成してもよい。この場合、データベース・システムは、SQL等任意の既存のデータベース・システムを用いることができる。
【0026】
ステップ2:つづいて、検証装置(1)は、記憶装置(5)に記憶されているデータを、検証装置(1)に接続する端末(10)に表示する。検証装置(1)は、端末(10)から入力された脆弱性検証用のデータを、記憶装置(5)に格納する。このステップで用いられる端末(10)は、検証装置(1)と接続し表示、操作・入力が行えるものであれば、リモート端末であってもよいことは勿論である。
【0027】
ステップ3:検証装置(1)は、端末(10)から、脆弱性検証モードの設定の指示が入力された場合、クライアント端末(7)から送出されるデータを受信して、受信データの解析を行い、受信データの内容と、記憶装置(5)に蓄積されたデータとの比較を行う。なお、検証装置(1)に接続する端末(10)から、通常モードと脆弱性検証モードとは、切替自在に設定される。
【0028】
ステップ4:検証装置(1)で、比較の結果、所定の情報(例えばCGI名称、データ名称等)が一致した場合には、受信データの内容を、脆弱性検証用データとして記憶装置(5)に記憶されている内容に変更し、変更したデータを、サーバ(8)へ送出する。これにより、サーバ(8)のCGIバッファオーバフロー脆弱性等、所定の脆弱性の検証が行われる。
【0029】
上記各ステップは、検証装置(1)を構成するコンピュータで実行されるプログラムにより、その処理・機能が実現される。
【0030】
図1は、本発明の一実施形態の装置構成を示すブロック図である。図1を参照すると、本発明の一実施形態をなすCGIバッファオーバフロー脆弱性検証装置1は、WEBクライアント7とデータの入出力を行うクライアントデータ入出力部2と、WEBサーバ8とデータの入出力を行うサーバデータ入出力部3と、クライアントデータ入出力部2及びサーバデータ入出力部3からのデータを変更してクライアントデータ入出力部2及びサーバデータ入出力部3に受け渡すデータ処理部4と、データ処理部4がデータを蓄積・参照するデータベース5と、データ処理部4の動作を制御する制御部6と、を備えている。CGIバッファオーバフロー脆弱性検証装置1の制御部6には、制御部6を操作するための操作端末10が接続されている。また、CGIバッファオーバフロー脆弱性検証装置1のクライアントデータ入出力部2には、WEBクライアント7が、サーバデータ入出力部3にはWEBサーバ8がそれぞれ接続されている。さらに、WEBサーバ8には、バッファオーバフロー脆弱性を検証されるCGIプログラム(CGIスクリプト)9が搭載されている。
【0031】
図2は、本実施形態の動作を説明するための流れ図である。図1及び図2を参照して、本実施の形態の動作について詳細に説明する。
【0032】
まず、操作端末10から通常モードが指示された場合(図2のステップS1)、制御部6は、データ処理部4に対して、トランスペアレント(透過的)な処理を、データ処理部4に指示する。この通常モードにおいて、WEBクライアント7から送出されるデータは、クライアントデータ入出力部2で受信され、データ処理部4を経由し、サーバデータ入出力部3から、WEBサーバ8へ送出される。この際、データ処理部4では、データの変更は行われない。また、データ処理部4は、クライアントデータ入出力部2で受信されるデータを、データベース5に蓄積する(図2のステップS2)。
【0033】
より具体的には、CGIとの交信にGETメソッドを使用してデータを引き渡す場合、WEBクライアント7から、例えば、
”GET cgi?data1=abc&data2=123”
なるデータ(要求)が、WEBサーバ8へ送られるものとする。この場合、CGIバッファオーバフロー脆弱性検証装置1では、当該データを受信するが、データ処理部4では、当該データの変更を行わずに、そのまま、サーバデータ入出力部3へ送り、サーバデータ入出力部3は、データ処理部4から転送された当該データをWEBサーバ8へ送出する。なお、GETメソッドでは、送信データ(String)を「&」で連結し、CGIを指定するURLの末尾に「?」を加え、その後、データが追加される。
【0034】
また、データ処理部4は、当該データのCGI名称とデータ名及び内容を、データベース5に蓄積する。
【0035】
この例では、
CGI名称として、”cgi”、
データ名称(引数名称)として、”data1”、その内容(値)として、”abc”、
データ名称(引数名称)として”data2”、その内容(値)として”123”、が、データベース5に蓄積される。
【0036】
次に、制御部6は、データベース5に蓄積されているデータを、操作端末10に表示する。
【0037】
そして、個別に、操作端末10から、操作者によって入力されたバッファオーバフロー脆弱性検証データ内容を受け、入力されたバッファオーバフロー脆弱性検証データの内容は、制御部6を介して、データベース5に格納される(ステップS3)。
【0038】
次に、操作端末10から、CGIバッファオーバフロー脆弱性検証モードが指示された場合(図2のステップS4のYES)、CGIバッファオーバフロー脆弱性検証モードに設定され、制御部6は、データ処理部4に対して、データの変更処理を指示する。
【0039】
CGIバッファオーバフロー脆弱性検証モードにおいて、WEBクライアント7から送出されるデータは、クライアントデータ入出力部2で受信され、データ処理部4を経由し、サーバデータ入出力部3からWEBサーバ8へ送出される。このとき、データ処理部4では、受信データの解析を行い、データ内部のCGI名称とデータ名及び内容を抽出し、データベース5を参照する。データ処理部4では、データベース5に蓄積されたデータとの比較を行う(図2のステップS5)。
【0040】
比較の結果、受信データのCGI名称及びデータ名がデータベース5の蓄積データと一致した場合には(図2のステップS6のYES)、受信データを、バッファオーバフロー脆弱性検証用として登録されている内容に変更し(図2のステップS7)、変更した内容をサーバデータ入出力部3へ送る。そして、サーバデータ入出力部3は、データ処理部4で変更された内容を、WEBサーバ8へデータを送出する(図2のステップS8)。受信データのCGI名称及びデータ名がデータベース5の蓄積データと一致しない場合には、受信データをそのままWEBサーバ8へ送信する。
【0041】
より具体的には、WEBクライアント7から、例えば、
”GET cgi?data1=abc&data2=123”
なるデータが送られた場合、CGIバッファオーバフロー脆弱性検証装置1のデータ処理部4は、CGI名称を”cgi”、データ名称として”data1”、及びデータ名称”data2”を検索キーとして、データベース5を参照する。
【0042】
CGI名称及びデータ名称が一致し、且つ、バッファオーバフロー脆弱性検証データ内容がデータベース5に登録されている場合には、対応するデータ内容を、データベース5に登録されているバッファオーバフロー脆弱性検証データ内容に置き換えて、サーバデータ入出力部3へ送る。サーバデータ入出力部3は、バッファオーバフロー脆弱性検証データ内容を、WEBサーバ8へ送出する。
【0043】
データ名”data1”に対するバッファオーバフロー脆弱性検証データ内容が、”abcFFFFFFFFFFFFFFFF”であった場合、WEBサーバ8にはデータ、
”GET cgi?data1=abcFFFFFFFFFFFFFFFF&data2=123”
が送出される。
【0044】
これにより、WEBサーバ8の図示されないCGIプログラムのバッファオーバフロー脆弱性のチェックが行われる。
【0045】
データの文字数を長くする例のほか、特殊コードを挿入するようにして検証用データを生成してもよいことは勿論である。以上本発明を上記実施例に即して説明したが、本発明は、WEBサーバに搭載されるCGIプログラムのバッファオーバフロー脆弱性にのみ限定されるものでなく、IMAP4プロトコルを用いて受信メールを管理するメールサーバ等のバッファオーバフロー脆弱性のほか、各種サーバの脆弱性、セキュリティホールの自動検証に適用可能であることは、勿論である。
【0046】
【発明の効果】
以上説明したように、本発明によれば、CGIプログラムの生産性を向上することができる、という効果を奏する。
【0047】
その理由は、本発明においては、検証するCGIプログラムをWEBサーバに搭載しての検証時に、正常な動作を検証している時に、バッファオーバフロー脆弱性を検証するためのデータを採取しておき、担当者が端末からバッファオーバフロー脆弱性検証モードの指示と、バッファオーバフロー脆弱性検証データを指定するだけで、バッファオーバフロー脆弱性の検証が行われるためである。
【0048】
このため、本発明によれば、CGIプログラムの入力データ仕様を詳細に理解することは不要とされ、また、WEBサーバに接続されたクライアント端末から人手あるいは検証用プログラムを作成して、検証を行うことが不要とされ、作業工数を削減することができる。
【図面の簡単な説明】
【図1】本発明の一実施形態の構成を示す図である。
【図2】本発明の一実施形態の動作を説明するための流れ図である。
【符号の説明】
1 CGIバッファオーバフロー脆弱性検証装置
2 クライアントデータ入出力部
3 サーバデータ入出力部
4 データ処理部
5 データベース
6 制御部
7 WEBクライアント
8 WEBサーバ
9 CGIプログラム
10 操作端末
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an attack verification technique for a server on a network, and more particularly to an apparatus, a method, and a program that are preferably applied to verification of a CGI program.
[0002]
[Prior art]
CGI (Common Gateway Interface) is a mechanism in which a WEB server that accepts a request from a WEB client (browser) starts a corresponding program and returns the execution result of the program to the WEB browser in HTML (Hyper Text Markup Language). A program operating on the CGI (a program operating on the WEB server side in response to an instruction from the WEB client) is referred to as a CGI program. The CGI program is created using a script language Perl (Practical Report Extraction Language) or the like, or a development language C or the like. Next, the buffer overflow vulnerability will be outlined. WEB servers that are always connected to the Internet are subject to many attacks such as unauthorized access and denial of service attacks. For example, a buffer overflow may occur due to a request with an invalid URL (for example, a URL including a particularly long number of characters or a special code) in the WEB browser, and the server function may be stopped. Here, the buffer overflow means that when a user who accesses the server inputs a long character string exceeding the original number of characters (number of digits), the buffer (memory) overflows and malfunctions. Buffer overflow vulnerabilities can exist for various servers that do not have character limits. An attack using this vulnerability may cause system destruction, privilege deprivation, or data leakage.
[0003]
As a security measure against the above-mentioned vulnerability, verification of a buffer overflow vulnerability in input data processing of a CGI program is generally performed by the following three methods.
[0004]
The first method is to manually check the source code of the CGI program and verify the buffer overflow vulnerability.
[0005]
The second method is to verify the source code of the CGI program by a buffer overflow vulnerability detection program.
[0006]
In the third method, a CGI program to be verified is mounted on a WEB server, and the number of characters specified in the input data specification of the CGI program is longer than that specified, or an unspecified character code is received from a client connected to the WEB server. The verification is performed by sending it manually or by a verification program.
[0007]
In addition, as a conventional vulnerability inspection system, a vulnerability inspection plan computer that creates an inspection plan for inspecting network vulnerabilities and an inspection target are added according to the created inspection plan. There is known a system including a vulnerability check computer that creates a check result based on a behavior taken by a check target (see, for example, Patent Document 1). This vulnerability inspection system is a vulnerability information database (including vulnerability source code and attack source code) that stores inspection items for vulnerability inspection, and a vulnerability that stores inspection tools for performing vulnerability inspections. Security inspection tool database and means for narrowing down inspection items from the vulnerability information database based on the security policy. Based on the inspection items narrowed down by the narrowing down means, the inspection tool is extracted from the vulnerability inspection tool database. It is configured to search and create an inspection plan.
[0008]
Further, as a countermeasure process against detection of a buffer overflow due to an attack by CGI, a configuration including a monitoring unit that shuts down an attack source host and issues an alert that a target has been invaded by a source is also known (see, for example, Patent Document 2).
[0009]
Then, a WEB site creation support system is arranged between the terminal and the public WEB server, the WEB data is managed and edited by remote operation from the terminal, and the data for each user including the WEB data is based on the hierarchical directory structure. In addition, a system is also known in which a preview is provided and WEB data is transferred to a predetermined public WEB server via the Internet (see, for example, Patent Document 3).
[0010]
Also, as a function for storing input argument values, etc., every time a function is called in a system test, the name of the module to which the function belongs, the name of the function, the value of the input argument, the value of the output argument, the return value are trace information Is stored, and the creation date for each module that executed the test is memorized. When the system is upgraded, the same test is re-executed, and the trace information and the creation date for each module are compared with the results of the previous test Thus, a test method for predicting a degration location is also known (see, for example, Patent Document 4).
[0011]
[Patent Document 1]
Japanese Patent Application Laid-Open No. 2002-229946 (page 3-4, FIG. 1)
[Patent Document 2]
Japanese Patent Laid-Open No. 2002-342276 (page 6, FIG. 10)
[Patent Document 3]
Japanese Patent Laid-Open No. 2002-197019 (page 5, FIG. 1)
[Patent Document 4]
JP 10-320234 A (page 2-3, FIG. 1)
[0012]
[Problems to be solved by the invention]
By the way, the above-described conventional first to third methods have a problem that time and man-hours are required for verification by mounting the CGI program to be verified on the WEB server. For this reason, it is difficult to improve the productivity of the CGI program.
[0013]
The reason for this is that in order to perform verification by mounting the CGI program to be verified on the WEB server by the above-described conventional first to third methods, the input data specification of the CGI program is understood, and then the WEB server This is because it is necessary to perform verification by manually or by creating a verification program from the connected client.
[0014]
Therefore, a main object of the present invention is to provide a verification apparatus, method, and program suitable for improving the work efficiency of verification of vulnerability such as CGI buffer overflow.
[0015]
[Means for Solving the Problems]
A verification apparatus according to one aspect of the present invention that achieves the above object includes a client terminal and a server that are connected via a communication network, a communication connection means, and a storage device, and a predetermined vulnerability of the server. In performing the verification, in the first mode (normal mode or normal operation verification mode), data transmitted from the client terminal to the server is received, and the data is transmitted to the server and stored in the storage device. In the second mode (vulnerability verification mode), control is performed so that vulnerability verification data created in association with data stored in the storage device is stored in the storage device. Then, control is performed to transmit data generated by referring to vulnerability verification data stored in the storage device to the server. In the verification device according to the present invention, when the second mode is set, the data addressed to the server is received from the client terminal, and the received data is compared with the data stored in the storage device If the predetermined information matches, the received data is changed to the content of the vulnerability verification data corresponding to the received data, and the changed data is transmitted to the server.
[0016]
In another aspect, the present invention is arranged between a client terminal connected via a network and a server, and when the verification device including means for communication connection with the client terminal and the server is in a normal mode, the client Means for receiving data sent from the terminal to the server, sending the received data to the server, and controlling the received data to be stored in the storage device; and data stored in the storage device Is displayed on the operation terminal of the verification device, and is provided with a means for controlling the vulnerability verification data input from the operation terminal to be stored in the storage device. Further, when the vulnerability verification mode is instructed from the operation terminal, the verification device is set to the vulnerability verification mode, receives data transmitted from the client terminal, analyzes received data, and receives The content of the data is compared with the data stored in the storage device, and when the predetermined information matches as a result of the comparison, the content of the received data is stored in the storage device for vulnerability verification. And a means for controlling the changed data to be sent to the server.
[0017]
According to the present invention, the normal mode and the vulnerability verification mode can be freely switched from the operation terminal of the verification device. According to the present invention, in the normal mode, the verification device sends the data sent from the client terminal to the server as it is to the server.
[0018]
According to the present invention, as in the embodiment described later, the server is a WEB server, the client terminal is a terminal on which a WEB browser is mounted, and the vulnerability verification data is mounted on the WEB server. Data for verifying buffer overflow vulnerability in CGI (Common Gateway Interface) programs.
[0019]
According to the present invention, in the normal mode, the request data from the client terminal to the server is received, and the name of the search target CGI and the argument name and data to be transferred to the CGI are included in the storage device. It is good also as a structure stored in.
[0020]
According to the present invention, the name of the CGI and the name of the data included in the received data are compared with the name of the data and the CGI name of the data stored in the storage device. In this case, a configuration may be adopted in which control is performed so that the content of data is replaced with data for verifying buffer overflow vulnerability stored in the storage device and transmitted to the server.
[0021]
In another aspect, the present invention provides client data input / output means for inputting / outputting with a WEB client, server data input / output means for inputting / outputting with a WEB server, client data input / output means, and server data input / output means. Data processing means for processing data from the output means, a database in which the data processing means accumulates / references input / output data, control of the processing method of the data processing means, and control means for changing data in the database.
[0022]
The method according to one aspect of the present invention that achieves the above object is the first aspect in which a verification apparatus that communicates with a client terminal and a server that are connected via a communication network verifies a predetermined vulnerability of the server. In the mode, the verification device receives data transmitted from the client terminal to the server, and the verification device controls the data to be transmitted to the server and stored in the storage device. The verification device stores the vulnerability verification data created by the operator in association with the data stored in the storage device in the storage device; and in the second mode, the verification device Generates data by referring to the vulnerability verification data stored in the storage device, and generates the generated data as the support. And transmitting to the server, the. In the method according to the present invention, when the second mode is set, receiving the data addressed to the server from the client terminal and comparing the received data with the data stored in the storage device When the predetermined information matches as a result of the comparison, the received data is changed to the content of the vulnerability verification data corresponding to the received data, and the changed data is transmitted to the server Including the steps of:
[0023]
A computer program according to one aspect of the present invention that achieves the above object constitutes a verification apparatus that performs communication connection with a client terminal and a server connected via a communication network, and performs verification of a predetermined vulnerability of the server. In the first mode, the computer receives data transmitted from the client terminal to the server, transmits the data to the server, and controls to store the data in the storage device; Processing for storing vulnerability verification data created in association with data stored in the device in the storage device, and in the second mode, for vulnerability verification stored in the storage device. The program includes a program for executing processing for transmitting data generated by referring to the data to the server. In the program according to the present invention, when the second mode is set, processing for receiving data addressed to the server from the client terminal and comparing the received data with data stored in the storage device When the predetermined information matches as a result of the comparison, the received data is changed to the content of the vulnerability verification data corresponding to the received data, and the changed data is transmitted to the server And processing to include.
[0024]
DETAILED DESCRIPTION OF THE INVENTION
Next, embodiments of the present invention will be described in detail with reference to the drawings. One embodiment of the verification method according to the present invention is a client terminal (7) and a server (8) between a client terminal (7) and a server (8) connected via a communication network such as an IP (Internet Protocol) network. The verification apparatus (1) for communication connection is arranged, and includes the following steps (steps).
[0025]
Step 1: In the normal mode (normal operation verification mode), the verification device (1) receives data sent from the client terminal (7) to the server (8), and the received data is sent to the server (8). And control to store the received predetermined data (for example, in the case of communication / request with CGI, CGI name, argument (data) name, value (data)) in the storage device (5). . A database may be configured in the storage device (5). In this case, any existing database system such as SQL can be used as the database system.
[0026]
Step 2: Subsequently, the verification device (1) displays the data stored in the storage device (5) on the terminal (10) connected to the verification device (1). The verification device (1) stores vulnerability verification data input from the terminal (10) in the storage device (5). Of course, the terminal (10) used in this step may be a remote terminal as long as it is connected to the verification device (1) and can be displayed, operated and input.
[0027]
Step 3: The verification device (1) receives the data transmitted from the client terminal (7) when the instruction for setting the vulnerability verification mode is input from the terminal (10), and analyzes the received data. And compare the content of the received data with the data stored in the storage device (5). The normal mode and the vulnerability verification mode are set to be switchable from the terminal (10) connected to the verification device (1).
[0028]
Step 4: In the verification device (1), when predetermined information (for example, CGI name, data name, etc.) matches as a result of the comparison, the content of the received data is stored as vulnerability verification data in the storage device (5). The contents are changed to the contents stored in, and the changed data is sent to the server (8). As a result, verification of predetermined vulnerabilities such as the CGI buffer overflow vulnerability of the server (8) is performed.
[0029]
The processing and functions of the above steps are realized by a program executed by a computer constituting the verification device (1).
[0030]
FIG. 1 is a block diagram showing an apparatus configuration according to an embodiment of the present invention. Referring to FIG. 1, a CGI buffer overflow vulnerability verification apparatus 1 according to an embodiment of the present invention includes a client data input / output unit 2 for inputting / outputting data to / from a WEB client 7, and an input / output of data to / from a WEB server 8. Server data input / output unit 3 for performing data processing, and a data processing unit 4 for changing data from the client data input / output unit 2 and the server data input / output unit 3 and delivering them to the client data input / output unit 2 and the server data input / output unit And a database 5 in which the data processing unit 4 stores and references data, and a control unit 6 that controls the operation of the data processing unit 4. An operation terminal 10 for operating the control unit 6 is connected to the control unit 6 of the CGI buffer overflow vulnerability verification apparatus 1. The client data input / output unit 2 of the CGI buffer overflow vulnerability verification apparatus 1 is connected to the WEB client 7 and the server data input / output unit 3 is connected to the WEB server 8. Further, the WEB server 8 is equipped with a CGI program (CGI script) 9 for verifying the buffer overflow vulnerability.
[0031]
FIG. 2 is a flowchart for explaining the operation of the present embodiment. The operation of the present embodiment will be described in detail with reference to FIGS.
[0032]
First, when the normal mode is instructed from the operation terminal 10 (step S1 in FIG. 2), the control unit 6 instructs the data processing unit 4 to perform transparent processing on the data processing unit 4. . In this normal mode, data sent from the WEB client 7 is received by the client data input / output unit 2 and sent from the server data input / output unit 3 to the WEB server 8 via the data processing unit 4. At this time, the data processor 4 does not change the data. Further, the data processing unit 4 accumulates data received by the client data input / output unit 2 in the database 5 (step S2 in FIG. 2).
[0033]
More specifically, when transferring data using the GET method for communication with the CGI, from the WEB client 7, for example,
“GET cgi? Data1 = abc & data2 = 123”
It is assumed that the following data (request) is sent to the WEB server 8. In this case, the CGI buffer overflow vulnerability verification apparatus 1 receives the data, but the data processing unit 4 sends the data to the server data input / output unit 3 as it is without changing the data. The unit 3 sends the data transferred from the data processing unit 4 to the WEB server 8. In the GET method, transmission data (String) is concatenated with “&”, “?” Is added to the end of the URL specifying CGI, and then the data is added.
[0034]
In addition, the data processing unit 4 stores the CGI name, data name, and content of the data in the database 5.
[0035]
In this example,
As the CGI name, “cgi”,
“Data1” as the data name (argument name), “abc” as the content (value),
“Data2” as the data name (argument name) and “123” as the content (value) are stored in the database 5.
[0036]
Next, the control unit 6 displays the data stored in the database 5 on the operation terminal 10.
[0037]
The contents of the buffer overflow vulnerability verification data input by the operator are individually received from the operation terminal 10, and the contents of the input buffer overflow vulnerability verification data are stored in the database 5 via the control unit 6. (Step S3).
[0038]
Next, when the CGI buffer overflow vulnerability verification mode is instructed from the operation terminal 10 (YES in step S4 in FIG. 2), the CGI buffer overflow vulnerability verification mode is set, and the control unit 6 performs the data processing unit 4 Is instructed to change the data.
[0039]
In the CGI buffer overflow vulnerability verification mode, data sent from the WEB client 7 is received by the client data input / output unit 2 and sent from the server data input / output unit 3 to the WEB server 8 via the data processing unit 4. The At this time, the data processing unit 4 analyzes the received data, extracts the CGI name, data name, and contents in the data, and refers to the database 5. The data processing unit 4 compares the data stored in the database 5 (step S5 in FIG. 2).
[0040]
As a result of the comparison, if the CGI name and data name of the received data match the stored data in the database 5 (YES in step S6 in FIG. 2), the received data is registered for buffer overflow vulnerability verification. (Step S7 in FIG. 2), and the changed content is sent to the server data input / output unit 3. Then, the server data input / output unit 3 sends the data changed by the data processing unit 4 to the WEB server 8 (step S8 in FIG. 2). If the CGI name and data name of the received data do not match the stored data in the database 5, the received data is transmitted as it is to the WEB server 8.
[0041]
More specifically, from the WEB client 7, for example,
“GET cgi? Data1 = abc & data2 = 123”
The data processing unit 4 of the CGI buffer overflow vulnerability verification apparatus 1 uses the CGI name as “cgi”, the data name as “data1”, and the data name as “data2” as search keys. Refer to
[0042]
When the CGI name and the data name match and the buffer overflow vulnerability verification data content is registered in the database 5, the corresponding data content is stored as the buffer overflow vulnerability verification data content registered in the database 5. To the server data input / output unit 3. The server data input / output unit 3 sends the contents of buffer overflow vulnerability verification data to the WEB server 8.
[0043]
If the buffer overflow vulnerability verification data content for the data name “data1” is “abcFFFFFFFFFFFFFFFF”, the WEB server 8 receives data,
“GET cgi? Data1 = abcFFFFFFFFFFFFFFFF & data2 = 123”
Is sent out.
[0044]
Thereby, the buffer overflow vulnerability of the CGI program (not shown) of the WEB server 8 is checked.
[0045]
In addition to an example in which the number of characters in the data is increased, it goes without saying that the verification data may be generated by inserting a special code. Although the present invention has been described with reference to the above embodiment, the present invention is not limited only to the buffer overflow vulnerability of the CGI program installed in the WEB server, and the received mail is managed using the IMAP4 protocol. Of course, it can be applied to various server vulnerabilities and security hole automatic verification in addition to buffer overflow vulnerabilities such as mail servers.
[0046]
【The invention's effect】
As described above, according to the present invention, there is an effect that the productivity of the CGI program can be improved.
[0047]
The reason for this is that in the present invention, when verifying normal operation when the CGI program to be verified is installed on the WEB server, data for verifying the buffer overflow vulnerability is collected. This is because the buffer overflow vulnerability is verified simply by the person in charge specifying the buffer overflow vulnerability verification mode instruction and the buffer overflow vulnerability verification data from the terminal.
[0048]
Therefore, according to the present invention, it is not necessary to understand the input data specification of the CGI program in detail, and verification is performed by creating a manual or verification program from a client terminal connected to the WEB server. This makes it unnecessary to reduce the work man-hours.
[Brief description of the drawings]
FIG. 1 is a diagram showing a configuration of an embodiment of the present invention.
FIG. 2 is a flowchart for explaining the operation of the embodiment of the present invention.
[Explanation of symbols]
1 CGI buffer overflow vulnerability verification device 2 Client data input / output unit 3 Server data input / output unit 4 Data processing unit 5 Database 6 Control unit 7 WEB client 8 WEB server 9 CGI program 10 Operation terminal

Claims (27)

通信ネットワークを介して接続するクライアント端末及びサーバと通信接続する手段と、
記憶装置と、
を備え、
前記サーバの所定の脆弱性の検証を行うにあたり、
第1のモードでは、前記クライアント端末から前記サーバあてに送信されるデータを受け取り、前記データを、前記サーバに送信するとともに、前記記憶装置に格納するように制御する手段と、
前記記憶装置に格納されたデータに関連付けて作成された脆弱性検証用のデータを前記記憶装置に記憶する手段と、
第2のモードでは、前記記憶装置に記憶されている脆弱性検証用のデータを参照して生成したデータを前記サーバに送信する手段と、
を備えている、ことを特徴とする検証装置。
Means for communication connection with a client terminal and a server connected via a communication network;
A storage device;
With
In verifying the predetermined vulnerability of the server,
In a first mode, means for receiving data transmitted from the client terminal to the server, transmitting the data to the server, and controlling to store the data in the storage device;
Means for storing vulnerability verification data created in association with data stored in the storage device in the storage device;
In the second mode, means for transmitting data generated by referring to the vulnerability verification data stored in the storage device to the server;
The verification apparatus characterized by comprising.
前記第2のモードに設定されているとき、前記クライアント端末から前記サーバあてのデータを受け取り、前記受け取ったデータと前記記憶装置に記憶されているデータとを比較照合し、所定の情報が一致する場合、前記受け取ったデータを、前記受け取ったデータに対応する前記脆弱性検証用のデータの内容に変更し、変更したデータを、前記サーバに送信する手段を備えている、ことを特徴とする請求項1記載の検証装置。When the second mode is set, the data addressed to the server is received from the client terminal, the received data is compared with the data stored in the storage device, and predetermined information matches. In this case, there is provided means for changing the received data to the content of the vulnerability verification data corresponding to the received data, and transmitting the changed data to the server. Item 2. The verification device according to item 1. 通信ネットワークを介して接続するクライアント端末とサーバ間に配される検証装置であって、
前記クライアント端末及び前記サーバとそれぞれ通信接続する手段と、
記憶装置と、
操作端末と、
を備え、
第1のモードのときに、前記クライアント端末から前記サーバに送出されるデータを受信し、受信したデータを前記サーバへ送出するとともに、受信した所定のデータを前記記憶装置に蓄積するように制御する手段と、
前記記憶装置に記憶されているデータを、前記操作端末に表示し、前記操作端末から入力された脆弱性検証用のデータを受け取り、前記記憶装置に格納するように制御する手段と、
を有し、
第2のモードのときに、前記クライアント端末から送出されるデータを受信した際、前記受信データの内容と、前記記憶装置に蓄積されているデータとの比較を行い、比較の結果、所定の情報が一致する場合には、前記受信データの内容を、脆弱性検証用のデータとして前記記憶装置に記憶されている内容に変更し、変更したデータを、前記サーバへ送出するように制御する手段と、
を含む、ことを特徴とする検証装置。
A verification device arranged between a client terminal and a server connected via a communication network,
Means for communication connection with the client terminal and the server, respectively;
A storage device;
An operation terminal;
With
In the first mode, control is performed to receive data sent from the client terminal to the server, send the received data to the server, and store the received predetermined data in the storage device Means,
Means for displaying data stored in the storage device on the operation terminal, receiving vulnerability verification data input from the operation terminal, and storing the data in the storage device;
Have
When the data sent from the client terminal is received in the second mode, the content of the received data is compared with the data stored in the storage device. Means for changing the content of the received data to the content stored in the storage device as vulnerability verification data, and sending the changed data to the server; ,
The verification apparatus characterized by including.
前記操作端末から、前記第1のモードと前記第2のモードの設定が、切替自在とされている、ことを特徴とする請求項3記載の検証装置。4. The verification apparatus according to claim 3, wherein the setting of the first mode and the second mode is freely switchable from the operation terminal. 前記第1のモードのときには、前記クライアント端末から前記サーバに送出されるデータをトランスペアレントに前記サーバへ送出する手段を備えている、ことを特徴とする請求項3記載の検証装置。4. The verification apparatus according to claim 3, further comprising means for transparently transmitting data transmitted from the client terminal to the server in the first mode. 前記サーバは、WEBサーバであり、
前記クライアント端末は、WEBブラウザが実装された端末であり、
前記脆弱性検証用のデータは、前記WEBサーバに搭載されるCGI(Common Gateway Interface)プログラムのバッファオーバフロー脆弱性検証用のデータである、ことを特徴とする請求項3記載の検証装置。
The server is a WEB server;
The client terminal is a terminal equipped with a WEB browser,
4. The verification apparatus according to claim 3, wherein the vulnerability verification data is buffer overflow vulnerability verification data of a CGI (Common Gateway Interface) program installed in the WEB server.
前記第1のモードのとき、前記クライアント端末から前記サーバへの要求を受け取り、前記要求に含まれる、CGIの名称及びCGIへ引き渡す引数名称と値を抽出し、前記記憶装置に格納する手段を備えている、ことを特徴とする請求項6記載の検証装置。Means for receiving a request from the client terminal to the server in the first mode, extracting a CGI name and an argument name and value to be transferred to the CGI, and storing them in the storage device; The verification apparatus according to claim 6, wherein: 前記第2のモードのときに、前記受信データに含まれるCGIの名称と引数の名称と、前記記憶装置に蓄積されたデータのCGIの名称と引数の名称とが一致するか否かの比較を行い、一致した場合、受信データに含まれる引数データの内容を前記記憶装置に記憶されているバッファオーバフロー脆弱性検証用のデータに置き換えて、前記サーバに送信する制御を行う手段を備えている、ことを特徴とする請求項7記載の検証装置。In the second mode, the CGI name and the argument name included in the received data are compared with the name of the argument and the CGI name of the data stored in the storage device. Performing a control to replace the content of the argument data included in the received data with the data for verifying the buffer overflow vulnerability stored in the storage device and to transmit the data to the server when they match. The verification device according to claim 7. 通信ネットワークを介して接続するクライアント端末及びサーバと通信接続する検証装置が、前記サーバの所定の脆弱性の検証を行うにあたり、
第1のモードでは、前記クライアント端末から前記サーバあてに送信されるデータを前記検証装置が受け取り、前記検証装置は、前記データを、前記サーバに送信するとともに、前記記憶装置に格納するように制御するステップと、
前記検証装置は、前記記憶装置に格納されたデータに関連付けて操作者により作成された脆弱性検証用のデータを、前記記憶装置に記憶するステップと、
第2のモードでは、前記検証装置は、前記記憶装置に記憶されている脆弱性検証用のデータを参照してデータを生成し、前記生成したデータを前記サーバに送信するステップと、
を含む、ことを特徴とする検証方法。
When a verification device that communicates with a client terminal and a server that are connected via a communication network performs verification of a predetermined vulnerability of the server,
In the first mode, the verification device receives data transmitted from the client terminal to the server, and the verification device controls the data to be transmitted to the server and stored in the storage device. And steps to
The verification device stores vulnerability verification data created by an operator in association with data stored in the storage device in the storage device;
In the second mode, the verification device generates data by referring to vulnerability verification data stored in the storage device, and transmits the generated data to the server;
The verification method characterized by including.
前記第2のモードに設定されているとき、前記クライアント端末から前記サーバあてのデータを受け取り、前記受け取ったデータと前記記憶装置に記憶されているデータとを比較するステップと、
前記比較の結果、所定の情報が一致する場合、前記受け取ったデータを、前記受け取ったデータに対応する前記脆弱性検証用のデータの内容に変更し、変更したデータを、前記サーバに送信するステップと、
を含む、ことを特徴とする請求項9記載の検証方法。
Receiving the data addressed to the server from the client terminal when the second mode is set, and comparing the received data with the data stored in the storage device;
As a result of the comparison, when predetermined information matches, the received data is changed to the content of the vulnerability verification data corresponding to the received data, and the changed data is transmitted to the server When,
The verification method according to claim 9, further comprising:
通信ネットワークを介して接続するクライアント端末とサーバ間に、前記クライアント端末及び前記サーバと通信接続する検証装置を配置し、
第1のモードのときに、
前記検証装置が、前記クライアント端末から前記サーバに送出されるデータを受信し、受信したデータを前記サーバへ送出するとともに、受信した所定のデータを記憶装置に蓄積するように制御するステップと、
前記検証装置が、前記記憶装置に記憶されているデータを、前記検証装置に接続される操作端末に表示するとともに、前記操作端末から入力された脆弱性検証用のデータを受け取り、前記記憶装置に格納するステップと、
を有し、
第2のモードのときに、
前記検証装置が、前記クライアント端末から送出されるデータを受信した際、前記受信データの内容と、前記記憶装置に蓄積されているデータとの比較を行うステップと、
前記検証装置は、前記比較の結果、所定の情報が一致する場合、前記受信データの内容を、脆弱性検証用のデータとして、前記記憶装置に記憶されている内容に変更し、変更したデータを、前記サーバへ送出するステップと、
を含む、ことを特徴とする検証方法。
A verification device that communicates and connects with the client terminal and the server is disposed between the client terminal and the server that are connected via a communication network
In the first mode,
Controlling the verification device to receive data sent from the client terminal to the server, send the received data to the server, and store the received predetermined data in a storage device;
The verification device displays data stored in the storage device on an operation terminal connected to the verification device, receives data for vulnerability verification input from the operation terminal, and stores the data in the storage device Storing, and
Have
In the second mode,
When the verification device receives data sent from the client terminal, the content of the received data is compared with the data stored in the storage device;
When the predetermined information matches as a result of the comparison, the verification device changes the content of the received data to the content stored in the storage device as vulnerability verification data, and the changed data Sending to the server;
The verification method characterized by including.
前記検証装置に接続される前記操作端末から、前記第1のモードと前記第2のモードの設定が、切り替えが自在とされている、ことを特徴とする請求項11記載の検証方法。12. The verification method according to claim 11, wherein the setting of the first mode and the second mode can be freely switched from the operation terminal connected to the verification device. 前記検証装置は、第1のモードのときには、前記クライアント端末から前記サーバに送出されるデータをトランスペアレントに前記サーバへ送出する、ことを特徴とする請求項11記載の検証方法。12. The verification method according to claim 11, wherein, in the first mode, the verification device transparently transmits data transmitted from the client terminal to the server. 前記サーバは、WEBサーバであり、
前記クライアント端末は、WEBブラウザが実装された端末であり、
前記脆弱性検証用のデータは、前記WEBサーバに搭載されるCGI(Common Gateway Interface)プログラムのバッファオーバフロー脆弱性検証用のデータである、ことを特徴とする請求項11記載の検証方法。
The server is a WEB server;
The client terminal is a terminal equipped with a WEB browser,
12. The verification method according to claim 11, wherein the vulnerability verification data is data for buffer overflow vulnerability verification of a CGI (Common Gateway Interface) program installed in the WEB server.
前記第1のモードのとき、前記検証装置は、前記クライアント端末から前記サーバへの要求データを受け取り、前記要求に含まれる検索対象のCGIの名称及びCGIへ引き渡す引数名称とデータを、前記記憶装置に格納する、ことを特徴とする請求項14記載の検証方法。In the first mode, the verification device receives request data from the client terminal to the server, and stores the name of the search target CGI and the argument name and data to be transferred to the CGI included in the request. 15. The verification method according to claim 14, wherein the verification method is stored. 前記第2のモードのときに、前記受信データに含まれるCGIの名称と引数の名称と、前記記憶装置に蓄積されている、CGIの名称と引数の名称とが一致するか否かの比較を行い、一致した場合、前記受信データの引数データの内容を、前記記憶装置に記憶されているバッファオーバフロー脆弱性検証用のデータに置き換えて、前記サーバに送信するステップを含む、ことを特徴とする請求項15記載の検証方法。In the second mode, a comparison is made as to whether or not the CGI name and argument name included in the received data match the CGI name and argument name stored in the storage device. And when it matches, the content of the argument data of the received data is replaced with data for verifying buffer overflow vulnerability stored in the storage device, and transmitted to the server. The verification method according to claim 15. 通信ネットワークを介して接続するクライアント端末及びサーバと通信接続し、前記サーバの所定の脆弱性の検証を行う検証装置を構成するコンピュータに、
第1のモードでは、前記クライアント端末から前記サーバあてに送信されるデータを受け取り、前記データを、前記サーバに送信するとともに、前記記憶装置に格納するように制御する処理と、
前記記憶装置に格納されたデータに関連付けて作成された脆弱性検証用のデータを前記記憶装置に記憶する処理と、
第2のモードでは、前記記憶装置に記憶されている脆弱性検証用のデータを参照して生成したデータを、前記サーバに送信する処理と、
を実行させるプログラム。
A computer that constitutes a verification apparatus that performs communication connection with a client terminal and a server that are connected via a communication network and performs verification of a predetermined vulnerability of the server,
In the first mode, a process of receiving data transmitted from the client terminal to the server, transmitting the data to the server, and controlling to store the data in the storage device;
Processing for storing vulnerability verification data created in association with data stored in the storage device in the storage device;
In the second mode, processing for transmitting data generated by referring to the vulnerability verification data stored in the storage device to the server;
A program that executes
請求項17記載のプログラムにおいて、
前記第2のモードに設定されているとき、前記クライアント端末から前記サーバあてのデータを受け取り、前記受け取ったデータと前記記憶装置に記憶されているデータとを比較する処理と、
前記比較の結果、所定の情報が一致する場合、前記受け取ったデータを、前記受け取ったデータに対応する前記脆弱性検証用のデータの内容に変更し、変更したデータを、前記サーバに送信する処理を、前記コンピュータに実行させるプログラム。
The program according to claim 17,
A process of receiving data addressed to the server from the client terminal when the second mode is set, and comparing the received data with data stored in the storage device;
As a result of the comparison, when predetermined information matches, the received data is changed to the content of the vulnerability verification data corresponding to the received data, and the changed data is transmitted to the server For causing the computer to execute the program.
通信ネットワークを介して接続するクライアント端末とサーバ間に設けられ、前記クライアント端末及び前記サーバと通信接続する検証装置を構成するコンピュータに、
第1のモードのときに、
前記クライアント端末から前記サーバに送出されるデータを受信し、受信したデータを前記サーバへ送出するとともに、受信した所定のデータを、記憶装置に蓄積するように制御する処理と、
前記記憶装置に記憶されているデータを、前記検証装置の端末に表示し、前記端末から入力された脆弱性検証用のデータを前記記憶装置に格納する処理と、
を実行させ、
第2のモードのときに、
前記クライアント端末から送出されるデータを受信して、受信データの解析を行い、データの内容と、前記記憶装置に蓄積されたデータとの比較を行う処理と、
前記比較の結果、一致した場合には、前記受信データの内容を、脆弱性検証用のデータとして前記記憶装置に記憶されている内容に変更し、変更したデータを、前記サーバへ送出する処理と、
を前記コンピュータに実行させるプログラム。
A computer that is provided between a client terminal and a server that are connected via a communication network and that constitutes a verification device that is connected to the client terminal and the server,
In the first mode,
Processing for receiving data sent from the client terminal to the server, sending the received data to the server, and controlling the received predetermined data to be stored in a storage device;
Processing for displaying data stored in the storage device on a terminal of the verification device and storing vulnerability verification data input from the terminal in the storage device;
And execute
In the second mode,
Processing to receive data sent from the client terminal, analyze the received data, and compare the content of the data with the data stored in the storage device;
If the result of the comparison is a match, the content of the received data is changed to the content stored in the storage device as vulnerability verification data, and the changed data is sent to the server ,
A program for causing the computer to execute.
前記サーバは、WEBサーバであり、
前記クライアント端末は、WEBブラウザが実装された端末であり、
前記脆弱性検証用のデータは、前記WEBサーバに搭載されるCGI(Common Gateway Interface)プログラムのバッファオーバフロー脆弱性検証用のデータである、ことを特徴とする請求項19記載のプログラム。
The server is a WEB server;
The client terminal is a terminal equipped with a WEB browser,
20. The program according to claim 19, wherein the vulnerability verification data is buffer overflow vulnerability verification data of a CGI (Common Gateway Interface) program installed in the WEB server.
請求項20記載のプログラムにおいて、
前記第1のモードのとき、前記検証装置は、前記クライアント端末から前記サーバへの要求データを受け取り、前記要求に含まれる検索対象のCGIの名称及びCGIへ引き渡す引数名称とデータを、前記記憶装置に格納する処理を、前記コンピュータに実行させるプログラム。
The program according to claim 20, wherein
In the first mode, the verification device receives request data from the client terminal to the server, and stores the name of the search target CGI and the argument name and data to be transferred to the CGI included in the request. The program which makes the said computer perform the process stored in this.
請求項21記載のプログラムにおいて、
前記第2のモードのときに、前記受信データに含まれるCGIの名称と引数の名称と、前記記憶装置に蓄積されたデータのCGIの名称と引数の名称とが一致するか否かの比較を行い、一致した場合、受信データの引数データの内容を前記記憶装置に記憶されているバッファオーバフロー脆弱性検証用のデータに置き換えて、前記サーバに送信する処理を、前記コンピュータに実行させるプログラム。
The program according to claim 21, wherein
In the second mode, the CGI name and the argument name included in the received data are compared with the name of the argument and the CGI name of the data stored in the storage device. A program for causing the computer to execute processing for replacing the content of the argument data of the received data with the data for verifying buffer overflow vulnerability stored in the storage device and transmitting to the server if they match.
WEBクライアントとの入出力を行うクライアントデータ入出力手段と、
WEBサーバとの入出力を行うサーバデータ入出力手段と、
前記クライアントデータ入出力手段と前記サーバデータ入出力手段との間でデータ授受し、前記データを処理するデータ処理手段と、
前記データ処理手段によりアクセスされ、データを蓄積するデータベースと、
前記データ処理手段における処理を制御する制御手段と、
を有し、
検証対象のCGIプログラムが、前記WEBサーバに搭載され、
前記データベースは、CGIバッファオーバフロー脆弱性検証用のデータを記憶し、
前記データ処理手段は、前記WEBクライアントから前記WEBサーバへのデータを、前記クライアントデータ入出力手段を介して受け取った際に、受け取ったデータを、前記データベースに蓄積されている、前記受け取ったデータに対応するCGIバッファオーバフロー脆弱性検証用のデータの内容に変更し、変更したデータを、前記サーバデータ入出力手段を介して前記WEBサーバへ送出するように制御する、ことを特徴とするCGIバッファオーバフロー脆弱性検証装置。
Client data input / output means for performing input / output with a WEB client;
Server data input / output means for performing input / output with a WEB server;
Data processing means for exchanging data between the client data input / output means and the server data input / output means and processing the data;
A database that is accessed by the data processing means and stores data;
Control means for controlling processing in the data processing means;
Have
A CGI program to be verified is mounted on the WEB server,
The database stores data for CGI buffer overflow vulnerability verification;
When the data processing means receives data from the WEB client to the WEB server via the client data input / output means, the received data is stored in the database as the received data. The CGI buffer overflow is changed to the content of the data for verifying the vulnerability, and the changed data is controlled to be sent to the WEB server via the server data input / output means. Vulnerability verification device.
WEBクライアントとの入出力を行うクライアントデータ入出力手段と、
WEBサーバとの入出力を行うサーバデータ入出力手段と、
前記クライアントデータ入出力手段及び前記サーバデータ入出力手段からのデータを、トランスペアレントに、前記クライアントデータ入出力手段及び前記サーバデータ入出力手段に受け渡し、前記データをデータベースに蓄積するデータ処理手段と、
前記データ処理手段が入出力データを蓄積するデータベースと、
前記データ処理手段にトランスペアレントな処理と、入出力データの前記データベースへの蓄積の動作指示を行う制御手段と、
を有し、
検証対象のCGIプログラムが前記WEBサーバに搭載され、
前記データ処理手段は、
前記制御手段からの動作指示に基づき、前記WEBクライアントから前記WEBサーバへ送出される入出力データを前記クライアントデータ入出力手段を介して受け取り、前記サーバデータ入出力手段から前記WEBサーバへ送出するとともに、前記入出力データを前記データベースに蓄積し、
前記データベースは、前記データベースに蓄積された入出力データに対応して作成されたデータを、前記CGIバッファオーバフロー脆弱性検証用のデータとして記憶し、
前記データ処理手段は、CGIバッファオーバフロー脆弱性検証モードにおいて、前記WEBクライアントから前記WEBサーバへのデータを前記クライアントデータ入出力手段を介して受け取った際に、受け取ったデータを、前記データベースに蓄積されている、前記受け取ったデータに対応するCGIバッファオーバフロー脆弱性検証用のデータの内容に変更し、変更したデータを、前記サーバデータ入出力手段を介して前記WEBサーバへ送出するように制御する、ことを特徴とするCGIバッファオーバフロー脆弱性検証装置。
Client data input / output means for performing input / output with a WEB client;
Server data input / output means for performing input / output with a WEB server;
Data processing means for transparently transferring data from the client data input / output means and the server data input / output means to the client data input / output means and the server data input / output means, and storing the data in a database;
A database in which the data processing means stores input / output data;
Processing means transparent to the data processing means, and control means for instructing the operation of storing input / output data in the database;
Have
The CGI program to be verified is mounted on the WEB server,
The data processing means includes
Based on an operation instruction from the control means, input / output data sent from the WEB client to the WEB server is received via the client data input / output means, and sent from the server data input / output means to the WEB server. , Storing the input / output data in the database;
The database stores data created corresponding to input / output data accumulated in the database as data for verifying the CGI buffer overflow vulnerability,
When the data processing means receives data from the WEB client to the WEB server via the client data input / output means in the CGI buffer overflow vulnerability verification mode, the received data is stored in the database. Changing the contents of the data to CGI buffer overflow vulnerability verification data corresponding to the received data, and controlling the changed data to be sent to the WEB server via the server data input / output means. The CGI buffer overflow vulnerability verification apparatus characterized by the above-mentioned.
WEBクライアントとの入出力を行うクライアントデータ入出力手段と、
WEBサーバとの入出力を行うサーバデータ入出力手段と、
前記クライアントデータ入出力手段及び前記サーバデータ入出力手段からのデータを、データベースを参照して、入出力データを変更して、前記クライアントデータ入出力手段及び前記サーバデータ入出力手段に受け渡すデータ処理手段と、
前記データ処理手段が入出力データを蓄積する前記データベースと、
前記データ処理手段に入出力データの変更の動作指示を行う制御手段と、
を有し、
検証対象のCGIプログラムが前記WEBサーバに搭載され、
前記制御手段からの入出力データの変更の動作指示を受けた前記データ処理手段は、前記WEBクライアントから前記WEBサーバへのデータを前記クライアントデータ入出力手段を介して受け取った際に、前記データベースを参照して、前記受け取ったデータを変更し、変更したデータを、前記サーバデータ入出力手段を介して前記WEBサーバへ送出するように制御する、ことを特徴とするCGIバッファオーバフロー脆弱性検証装置。
Client data input / output means for performing input / output with a WEB client;
Server data input / output means for performing input / output with a WEB server;
Data processing for transferring data from the client data input / output means and the server data input / output means to the client data input / output means and the server data input / output means by referring to a database and changing the input / output data Means,
The database in which the data processing means stores input / output data;
Control means for instructing the data processing means to change the input / output data;
Have
The CGI program to be verified is mounted on the WEB server,
The data processing means that has received the operation instruction for changing the input / output data from the control means receives the data from the WEB client to the WEB server via the client data input / output means. The CGI buffer overflow vulnerability verification apparatus, wherein the received data is changed, and the changed data is controlled to be transmitted to the WEB server via the server data input / output means.
前記データ処理手段は、通常モードのときは、前記WEBクライアントから前記WEBサーバへ送出されるデータを前記クライアントデータ入出力手段を介して受け取り、前記サーバデータ入出力手段から前記WEBサーバへ送出するとともに、前記データを前記データベースに蓄積し、
前記データベースは、前記データベースに蓄積されたデータに対応して作成されたデータを、前記CGIバッファオーバフロー脆弱性検証用のデータとして記憶する、ことを特徴とする請求項23又は25記載のCGIバッファオーバフロー脆弱性検証装置。
In the normal mode, the data processing means receives data sent from the WEB client to the WEB server via the client data input / output means, and sends the data from the server data input / output means to the WEB server. Storing the data in the database;
26. The CGI buffer overflow according to claim 23, wherein the database stores data created corresponding to data accumulated in the database as data for verifying the CGI buffer overflow vulnerability. Vulnerability verification device.
WEBクライアントとの入出力を行うクライアントデータ入出力手段と、
WEBサーバとの入出力を行うサーバデータ入出力手段と、
クライアントデータ入出力手段及びサーバデータ入出力手段からのデータをトランスペアレントに、前記クライアントデータ入出力手段及び前記サーバデータ入出力手段に受け渡しながら、入出力データをデータベースに蓄積するデータ処理手段と、
前記データ処理手段が入出力データを蓄積する前記データベースと、
前記データベースに蓄積されたデータに対してバッファオーバフロー脆弱性検証を行うための変更を加える制御手段と、
を有し、
検証対象のCGIプログラムが前記WEBサーバに搭載され、
前記データ処理手段は、通常モードのときは、前記WEBクライアントから前記WEBサーバへ送出されるデータを前記クライアントデータ入出力手段を介して受け取り、前記サーバデータ入出力手段から前記WEBサーバへ送出するとともに、前記データを前記データベースに蓄積し、
前記制御手段は、前記データベースに蓄積されたデータを変更したデータを、前記CGIバッファオーバフロー脆弱性検証用のデータとして記憶し、
前記データ処理手段は、CGIバッファオーバフロー脆弱性検証用モードのとき、前記WEBクライアントから前記WEBサーバへのデータを前記クライアントデータ入出力手段を介して受け取った際に、前記受け取ったデータを、前記データベースに蓄積されている、前記受け取ったデータに対応する、CGIバッファオーバフロー脆弱性検証用のデータの内容に変更し、変更したデータを、前記WEBサーバへ送出するように制御する、ことを特徴とするCGIバッファオーバフロー脆弱性検証装置。
Client data input / output means for performing input / output with a WEB client;
Server data input / output means for performing input / output with a WEB server;
Data processing means for storing input / output data in a database while transparently passing data from the client data input / output means and server data input / output means to the client data input / output means and the server data input / output means;
The database in which the data processing means stores input / output data;
Control means for making a change to perform buffer overflow vulnerability verification on the data stored in the database;
Have
The CGI program to be verified is mounted on the WEB server,
In the normal mode, the data processing means receives data sent from the WEB client to the WEB server via the client data input / output means, and sends the data from the server data input / output means to the WEB server. Storing the data in the database;
The control means stores data obtained by changing data accumulated in the database as data for verifying the CGI buffer overflow vulnerability,
When the data processing means receives data from the WEB client to the WEB server via the client data input / output means in the CGI buffer overflow vulnerability verification mode, the data processing means Is changed to the content of CGI buffer overflow vulnerability verification data corresponding to the received data, and the changed data is controlled to be sent to the WEB server. CGI buffer overflow vulnerability verification device.
JP2003091838A 2003-03-28 2003-03-28 CGI buffer overflow vulnerability verification apparatus and method, and program Expired - Lifetime JP3821107B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003091838A JP3821107B2 (en) 2003-03-28 2003-03-28 CGI buffer overflow vulnerability verification apparatus and method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003091838A JP3821107B2 (en) 2003-03-28 2003-03-28 CGI buffer overflow vulnerability verification apparatus and method, and program

Publications (2)

Publication Number Publication Date
JP2004302584A JP2004302584A (en) 2004-10-28
JP3821107B2 true JP3821107B2 (en) 2006-09-13

Family

ID=33405103

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003091838A Expired - Lifetime JP3821107B2 (en) 2003-03-28 2003-03-28 CGI buffer overflow vulnerability verification apparatus and method, and program

Country Status (1)

Country Link
JP (1) JP3821107B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080120420A1 (en) * 2006-11-17 2008-05-22 Caleb Sima Characterization of web application inputs
US8656495B2 (en) * 2006-11-17 2014-02-18 Hewlett-Packard Development Company, L.P. Web application assessment based on intelligent generation of attack strings

Also Published As

Publication number Publication date
JP2004302584A (en) 2004-10-28

Similar Documents

Publication Publication Date Title
CA2930805C (en) Intercepting and supervising calls to transformed operations and objects
US8893282B2 (en) System for detecting vulnerabilities in applications using client-side application interfaces
CN101572608B (en) Method and device for acquiring once-login parameters
US20080021696A1 (en) System and method of providing a fast path link for an identified set of data
US8285778B2 (en) Protecting web application data
CN104954386B (en) A kind of network anti-hijacking method and device
US20080072053A1 (en) Web-based authentication system and method
US20090055443A1 (en) Recording a Log of Operations
US20060272008A1 (en) Method and security system for indentifying and blocking web attacks by enforcing read-only parameters
WO2002048824A2 (en) System for completing forms on the internet
WO2017053587A1 (en) Algorithm hardening in background context and external from the browser to prevent malicious intervention with the browser
CN111930723A (en) Scientific and technological achievement data fusion method based on big data
CN101090319A (en) Computer readable recording medium storing control program, communication system and computer data signal embedded in carrier wave
CN113868659B (en) Vulnerability detection method and system
CN107682361A (en) Website vulnerability scan method, device, computer equipment and storage medium
CN112838951B (en) Operation and maintenance method, device and system of terminal equipment and storage medium
WO2004043042A1 (en) Methods and systems for routing requests at a network switch
CN102065573A (en) WAP gateway agent service data processing method and server
JP2008015733A (en) Log management computer
CN113868669A (en) Vulnerability detection method and system
CN111801652A (en) Recording and recreating interface navigation processes
JP3821107B2 (en) CGI buffer overflow vulnerability verification apparatus and method, and program
JP4052007B2 (en) Web site safety authentication system, method and program
JP2016071398A (en) Test execution device, test execution method, and computer program
JP2007079988A (en) Www browser, html page sharing system and html page sharing method

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060512

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060612

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100630

Year of fee payment: 4