JP3821107B2 - CGI buffer overflow vulnerability verification apparatus and method, and program - Google Patents
CGI buffer overflow vulnerability verification apparatus and method, and program Download PDFInfo
- 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
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 (
[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
[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
[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
[0034]
In addition, the
[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
[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
[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
[0039]
In the CGI buffer overflow vulnerability verification mode, data sent from the WEB client 7 is received by the client data input /
[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 /
[0041]
More specifically, from the WEB client 7, for example,
“GET cgi? Data1 = abc & data2 = 123”
The
[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 /
[0043]
If the buffer overflow vulnerability verification data content for the data name “data1” is “abcFFFFFFFFFFFFFFFF”, the
“GET cgi? Data1 = abcFFFFFFFFFFFFFFFF & data2 = 123”
Is sent out.
[0044]
Thereby, the buffer overflow vulnerability of the CGI program (not shown) of the
[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
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.
前記クライアント端末及び前記サーバとそれぞれ通信接続する手段と、
記憶装置と、
操作端末と、
を備え、
第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.
前記クライアント端末は、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のモードでは、前記クライアント端末から前記サーバあてに送信されるデータを前記検証装置が受け取り、前記検証装置は、前記データを、前記サーバに送信するとともに、前記記憶装置に格納するように制御するステップと、
前記検証装置は、前記記憶装置に格納されたデータに関連付けて操作者により作成された脆弱性検証用のデータを、前記記憶装置に記憶するステップと、
第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.
前記比較の結果、所定の情報が一致する場合、前記受け取ったデータを、前記受け取ったデータに対応する前記脆弱性検証用のデータの内容に変更し、変更したデータを、前記サーバに送信するステップと、
を含む、ことを特徴とする請求項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.
前記クライアント端末は、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のモードでは、前記クライアント端末から前記サーバあてに送信されるデータを受け取り、前記データを、前記サーバに送信するとともに、前記記憶装置に格納するように制御する処理と、
前記記憶装置に格納されたデータに関連付けて作成された脆弱性検証用のデータを前記記憶装置に記憶する処理と、
第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
前記第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サーバに搭載される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.
前記第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.
前記第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サーバとの入出力を行うサーバデータ入出力手段と、
前記クライアントデータ入出力手段と前記サーバデータ入出力手段との間でデータ授受し、前記データを処理するデータ処理手段と、
前記データ処理手段によりアクセスされ、データを蓄積するデータベースと、
前記データ処理手段における処理を制御する制御手段と、
を有し、
検証対象の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サーバとの入出力を行うサーバデータ入出力手段と、
前記クライアントデータ入出力手段及び前記サーバデータ入出力手段からのデータを、トランスペアレントに、前記クライアントデータ入出力手段及び前記サーバデータ入出力手段に受け渡し、前記データをデータベースに蓄積するデータ処理手段と、
前記データ処理手段が入出力データを蓄積するデータベースと、
前記データ処理手段にトランスペアレントな処理と、入出力データの前記データベースへの蓄積の動作指示を行う制御手段と、
を有し、
検証対象の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サーバとの入出力を行うサーバデータ入出力手段と、
前記クライアントデータ入出力手段及び前記サーバデータ入出力手段からのデータを、データベースを参照して、入出力データを変更して、前記クライアントデータ入出力手段及び前記サーバデータ入出力手段に受け渡すデータ処理手段と、
前記データ処理手段が入出力データを蓄積する前記データベースと、
前記データ処理手段に入出力データの変更の動作指示を行う制御手段と、
を有し、
検証対象の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.
前記データベースは、前記データベースに蓄積されたデータに対応して作成されたデータを、前記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サーバとの入出力を行うサーバデータ入出力手段と、
クライアントデータ入出力手段及びサーバデータ入出力手段からのデータをトランスペアレントに、前記クライアントデータ入出力手段及び前記サーバデータ入出力手段に受け渡しながら、入出力データをデータベースに蓄積するデータ処理手段と、
前記データ処理手段が入出力データを蓄積する前記データベースと、
前記データベースに蓄積されたデータに対してバッファオーバフロー脆弱性検証を行うための変更を加える制御手段と、
を有し、
検証対象の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.
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)
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 |
-
2003
- 2003-03-28 JP JP2003091838A patent/JP3821107B2/en not_active Expired - Lifetime
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 | |
CN103023710B (en) | A kind of safety test system and method | |
US20080021696A1 (en) | System and method of providing a fast path link for an identified set of data | |
US8285778B2 (en) | Protecting web application data | |
US20080072053A1 (en) | Web-based authentication system and method | |
CN111930723B (en) | Scientific and technological achievement data fusion method based on big data | |
US20070011742A1 (en) | Communication information monitoring apparatus | |
US20060272008A1 (en) | Method and security system for indentifying and blocking web attacks by enforcing read-only parameters | |
JP4652350B2 (en) | Reverse proxy server, its control method and program | |
WO2017053587A1 (en) | Algorithm hardening in background context and external from the browser to prevent malicious intervention with the browser | |
CN101572608A (en) | Method and device for acquiring once-login parameters | |
WO2002048824A2 (en) | System for completing forms on the internet | |
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 | |
US20180205705A1 (en) | Network request proxy system and method | |
CN112838951B (en) | Operation and maintenance method, device and system of terminal equipment and storage medium | |
CN107682361A (en) | Website vulnerability scan method, device, computer equipment and storage medium | |
CN112468511B (en) | File transmission method and device | |
EP1561327A1 (en) | Methods and systems for routing requests at a network switch | |
JP2010170453A (en) | Static web site construction method, static web site construction service providing method, dynamic/static conversion processor, and dynamic/static conversion processing program | |
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 |
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 |