JPWO2019026172A1 - セキュリティ診断装置およびセキュリティ診断方法 - Google Patents

セキュリティ診断装置およびセキュリティ診断方法 Download PDF

Info

Publication number
JPWO2019026172A1
JPWO2019026172A1 JP2019533770A JP2019533770A JPWO2019026172A1 JP WO2019026172 A1 JPWO2019026172 A1 JP WO2019026172A1 JP 2019533770 A JP2019533770 A JP 2019533770A JP 2019533770 A JP2019533770 A JP 2019533770A JP WO2019026172 A1 JPWO2019026172 A1 JP WO2019026172A1
Authority
JP
Japan
Prior art keywords
account
parameter
http request
transition destination
destination url
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019533770A
Other languages
English (en)
Other versions
JP6636222B2 (ja
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2019026172A1 publication Critical patent/JPWO2019026172A1/ja
Application granted granted Critical
Publication of JP6636222B2 publication Critical patent/JP6636222B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)

Abstract

セキュリティ診断装置は、特権の第1のアカウントにより遷移先URLに送信したHTTPリクエストに含まれるパラメータのうち、特権の第2のアカウントにより遷移先URLに送信したHTTPリクエストに含まれるパラメータと値が同じである固定のパラメータを抽出する抽出部と、一般権のアカウントによる遷移先URLへのHTTPリクエストのパラメータに抽出部で抽出された固定のパラメータが含まれており、値が特権のアカウントの値と異なる場合、固定のパラメータに特権のアカウントの値を設定したHTTPリクエストを出力するリクエスト生成部と、一般権のアカウントによりHTTPリクエストを遷移先URLに送信し、HTTPレスポンスを受信するリクエスト送受信部と、HTTPレスポンスに基づいて遷移先URLの脆弱性を判定する判定部と、を備えたので、遷移先URLを事前に把握することなく権限管理の不備を診断できる。

Description

本発明は、権限管理の不備を診断するセキュリティ診断装置に関する。
インターネットに公開されているWebアプリケーションの脆弱性は日々発見されており、悪意のある攻撃者による攻撃は、警戒しなければならない脅威の一つである。Webアプリケーションの脆弱性の有無を確認する方法には、Webアプリケーション診断ツールやセキュリティ診断サービスがある。これらは、Webアプリケーションに対して疑似攻撃を実施することで、既知の脆弱性の有無を診断する。
Webアプリケーションの脆弱性の一つに、権限管理の不備がある。権限管理の不備とは、異なる権限を持つ2つのアカウントがあった場合、一方のアカウントでのみ遷移可能なページまたは有効な機能が、他方のアカウントでも遷移可能または実行可能なケースである。従来、診断の実施者が目視で遷移可能なページまたは有効な機能についてのアカウント間の差異を確認して、ツールに設定するまたは手動で疑似攻撃を実行することにより、権限管理の不備を診断することが行われている。しかしながら、人的コストが掛かかるため、人的コストを削減することが求められている。
特許文献1は、オブジェクトに対してアクセスを行った際の、権限要求APIの呼出と実際のアクセスAPIの呼出とをトレースすることで、想定されるアクセスAPIを作成し、実際のアクセスAPIの呼出と対応付けられているかを確認している。想定されるアクセスAPIに対して実際のアクセスAPIが対応付けられない場合、特許文献1は最小権限違反と判断している。
特開2010−176167号公報
しかしながら、特許文献1では、オブジェクトに対する権限の割当てが不明の場合には権限管理の不備があるかどうかを判断することができないという問題点があった。
本発明は上記のような問題点を解決するためになされたもので、Webアプリケーションの遷移先URLを事前に把握することなく権限管理の不備があるかどうかを診断することができるセキュリティ診断装置を得ることを目的としている。
特権の第1のアカウントにより遷移先URLに送信したHTTPリクエストに含まれるパラメータのうち、特権の第2のアカウントにより遷移先URLに送信したHTTPリクエストに含まれるパラメータと値が同じである固定のパラメータを抽出する抽出部と、一般権のアカウントによる遷移先URLへのHTTPリクエストのパラメータに抽出部で抽出された固定のパラメータが含まれており、値が特権のアカウントの値と異なる場合、固定のパラメータに特権のアカウントの値を設定したHTTPリクエストを出力するリクエスト生成部と、一般権のアカウントによりHTTPリクエストを遷移先URLに送信し、HTTPレスポンスを受信するリクエスト送受信部と、HTTPレスポンスに基づいて遷移先URLの脆弱性を判定する判定部と、を備えた。
本発明によれば、Webアプリケーションの遷移先URLを事前に把握することなく権限管理の不備があるかどうかを診断することができるセキュリティ診断装置を得ることができる。
実施の形態1に係るセキュリティ診断装置のハードウェア構成の一例を示すブロック図。 実施の形態1に係る診断装置の機能構成の一例を示すブロック図。 実施の形態1に係るアカウント情報テーブルの一例を示す図。 実施の形態1に係るログインパラメータテーブルの一例を示す図。 実施の形態1に係る対象URLテーブルの一例を示す図。 実施の形態1に係るHTTPリクエスト・レスポンステーブルの一例を示す図。 実施の形態1に係るパラメータテーブルの一例を示す図。 実施の形態1に係る固定パラメータテーブルの一例を示す図。 実施の形態1に係る診断結果テーブルの一例を示す図。 実施の形態1に係る結果詳細テーブルの一例を示す図。 実施の形態1に係る入力部、クローリング実施部および抽出部の処理の流れを示すフローチャート。 実施の形態1に係るHTTPリクエスト・レスポンステーブル441の一例を示す図。 実施の形態1に係るパラメータテーブル451の一例を示す図。 実施の形態1に係る比較部、リクエスト生成部、リクエスト送受信部、判定部及び出力部の処理の流れを示すフローチャート。 実施の形態1に係る図14のステップS201の比較部の処理の詳細を示すフローチャート。 実施の形態2に係るHTTPリクエスト・レスポンステーブルの一例を示す図。 実施の形態2に係るパラメータテーブルの一例を示す図。 実施の形態2に係る固定パラメータテーブルの一例を示す図。 実施の形態2に係る固定パラメータテーブルの一例を示す図。 実施の形態2に係るHTTPリクエスト・レスポンステーブルの一例を示す図。 実施の形態2に係る図14のステップS201の比較部の処理の詳細を示すフローチャート。 実施の形態2に係る診断結果テーブルの一例を示す図。 実施の形態2に係る結果詳細テーブルの一例を示す図。 実施の形態3に係る診断装置の機能構成の一例を含む全体のブロック図。 実施の形態3に係る入力部、クローリング実施部および抽出部の処理の流れを示すフローチャート。 実施の形態3に係る遷移データDBのパラメータテーブルの一例を示す図。 実施の形態3に係る比較部、リクエスト生成部、リクエスト送受信部、判定部及び出力部の処理の流れを示すフローチャート。 実施の形態4に係る診断対象抽出装置の機能構成の一例を含む全体のブロック図。 実施の形態4に係る診断実施装置の機能構成の一例を含む全体のブロック図。 実施の形態4に係る診断対象抽出装置の入力部、クローリング実施部および抽出部の処理の流れを示すフローチャート。 実施の形態4に係る診断実施装置の入力部、リクエスト生成部、リクエスト送受信部、判定部及び出力部の処理の流れを示すフローチャート。
以下この発明の実施の形態を、図を参照して説明する。なお、参照する図において同一もしくは相当する部分には同一の符号を付している。
実施の形態1.
はじめにハードウェア構成について説明する。
図1は、実施の形態1に係るセキュリティ診断装置(以下、診断装置と称す)200のハードウェア構成の一例を示すブロック図である。
診断装置200は、診断対象のWebアプリケーションとHTTPでの通信を行う通信インターフェース101、HTTPリクエストとHTTPレスポンスに対する演算処理を行うプロセッサ102、演算結果などを保持するメモリ103、ユーザからの入力を受け付ける入力インターフェース104、データを記憶するための補助記憶装置105、および画面に結果を表示する出力インターフェース106を備える。
プロセッサ102は、メモリに記憶されたプログラムを実行するCPU、システムLSI(Large Scale Integration)等の処理回路により、実現される。プロセッサ102は、複数の処理回路が連携して構成されてもよい。メモリ103は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)、SSD(Solid State Drive)で構成される。補助記憶装置105は、例えば、HDD(Hard Disk Drive)で構成される。
次に機能構成について説明する。
図2は、実施の形態1に係る診断装置200の機能構成の一例を含む全体のブロック図である。
Webアプリケーション203は、診断装置200からの指示に基づき、インターネット202を介してWebサーバ201にHTTPリクエストを送信する。Webアプリケーション203は、Webサーバ201からHTTPレスポンスを受信し、HTTPレスポンスの内容を診断装置200に出力する。診断装置200は、Webサーバ201からHTTPレスポンスを受信する場合もある。
診断装置200は、入力部301、クローリング実施部302、抽出部303、比較部304、リクエスト生成部305、リクエスト送受信部306、判定部307、出力部308、アカウント情報データベース(以下、アカウント情報DBと称す)309、遷移データデータベース(以下、遷移データDBと称す)310、固定パラメータデータベース(以下、固定パラメータDBと称す)311および結果データデータベース(以下、結果データDBと称す)312を備える。
入力部301、クローリング実施部302、抽出部303、比較部304、リクエスト生成部305、リクエスト送受信部306、判定部307および出力部308の各機能を実現するためのプログラム及びデータは、メモリ103に記憶される。また、アカウント情報DB309、遷移データDB310、固定パラメータDB311および結果データDB312はそれぞれ補助記憶装置105上に配置され、適宜メモリ103に展開される。
入力部301は、メモリ103に読み出され、プロセッサ102で実行される。入力部301は、入力インターフェース106を介して入力された値を補助記憶装置105へ保存する。入力部301は、入力された値を補助記憶装置105上のアカウント情報DB309と遷移データDB310へ出力する。入力部301には、診断対象の対象URLと、アカウント情報(ログイン情報、権限情報)が入力される。
アカウント情報DB309は、アカウント情報テーブル410およびログインパラメータテーブル420の2種類のテーブルを保持する。
図3は、実施の形態1に係るアカウント情報テーブルの一例を示す図である。
アカウント情報テーブル410は、Webアプリケーション203にログイン可能なアカウントのID、パスワード、アカウントに割り当てられた権限(アカウント権限)を保存するフィールドを持つテーブルである。アカウント権限は、特権と一般権の2種類がある。特権は、全ての操作が可能である管理者権限である。一般権は、一般ユーザが操作可能な範囲のみに操作範囲を制限した権限である。
アカウント情報テーブル410に保存するアカウントの数は各権限で2つ以上とする。同じ権限でアカウントの違いによるパラメータの差異をみるためである。
図4は、実施の形態1に係るログインパラメータテーブルの一例を示す図である。
ログインパラメータテーブル420は、ログイン時に必要なパラメータ名を保存するフィールドを持つテーブルである。
遷移データDB310は、対象URLテーブル430、HTTPリクエスト・レスポンステーブル440およびパラメータテーブル450の3種類のテーブルを保持する。
図5は、実施の形態1に係る対象URLテーブルの一例を示す図である。
対象URLテーブル430は、入力部301で入力された対象URLを保存するフィールドを持つテーブルである。
図6は、実施の形態1に係るHTTPリクエスト・レスポンステーブルの一例を示す図である。
HTTPリクエスト・レスポンステーブル440は、HTTPリクエストの送信先である遷移先URL、遷移先URLへのHTTPリクエストに対するレスポンスコード、遷移先URLへのHTTPリクエストに対するレスポンス内容、遷移先URLへのHTTPリクエストの送信元である遷移元URL、および遷移先URLへHTTPリクエストを送信したアカウントの権限を保存するフィールドを持つテーブルである。
図7は、実施の形態1に係るパラメータテーブル450の一例を示す図である。
パラメータテーブル450は、遷移先URL毎にHTTPリクエストのパラメータ名、パラメータの値、パラメータが記載されている位置を示す値(URLのクエリ部、ヘッダ部またはボディ部)を保存するフィールドを持つテーブルである。パラメータが記載されている位置を示す値は、HTTPリクエストのURL内のクエリ文字列の名前の部分、HTTPヘッダ部のヘッダ名、HTTPボディ部の変数名である。また、パラメータの値は、パラメータに付与された値の部分である。
図2の診断装置200の機能構成の説明に戻る。
クローリング実施部302は、メモリ103に読み出され、プロセッサ102で実行される。クローリング実施部302は、アカウント情報DB309と遷移データDB310を補助記憶装置105から読み出す。クローリング実施部302は、遷移データDB310に記憶された対象URLに対して、アカウント情報DB309に記憶された各アカウントでログインを行い、ログインしたアカウントで遷移可能なWebページに対してクローリングを行う。クローリング実施部302の指示により、Webアプリケーション203はHTTPリクエストを生成し、インターネット202を介してWebサーバ201にHTTPリクエストを送信する。Webアプリケーション203からHTTPレスポンスを受信すると、HTTPリクエストとそれに対するレスポンスをクローリング実施部302に出力する。クローリング実施部302は、クローリング時に発生するHTTPリクエストとそれに対するHTTPレスポンスを補助記憶装置105上の遷移データDB310に保存する。
クローリングとは、クローラーと呼ばれるプログラムが、与えられたURLにある全てのハイパーリンクを辿り、遷移先のページ情報を収集してインデックス化を行う技術である。また、クローリングの実行時にローカルプロキシを介することで、ローカルプロキシから発生したHTTPリクエストとHTTPレスポンスの全ての情報を取得することが可能である。
抽出部303は、メモリ103に読み出され、プロセッサ102で実行される。抽出部303は遷移データDB310を補助記憶装置105から読み出す。遷移データDB310に記憶されたレコードのうち、遷移先URLが同じであってアカウント権限が同じレコードについて、HTTPリクエストのパラメータの差異を補助記憶装置105上の固定パラメータDB311へ出力する。
固定パラメータDB311は、固定パラメータテーブル460を保持する。
図8は、実施の形態1に係る固定パラメータテーブル460の一例を示す図である。固定パラメータテーブル460は、遷移先URL毎にHTTPリクエストのパラメータ名を保存するフィールドと、パラメータが固定か変動かを示すフィールドを持つテーブルである。
比較部304は、メモリ103に読み出され、プロセッサ102で実行される。比較部304は、遷移データDB310を補助記憶装置105から読み出す。比較部304は、遷移データDB310に記憶された遷移先URLが同じレコードについてパラメータを比較し、異なる部分がある遷移先URLを診断対象URLとして結果データDB312に出力する。
リクエスト生成部305は、メモリ103に読み出され、プロセッサ102で実行される。リクエスト生成部305は、結果データDB312と遷移データDB310を補助記憶装置105から読み出す。リクエスト送受信部306は、メモリ103に読み出され、プロセッサ102で実行される。
リクエスト生成部305は、診断対象URLに対するHTTPリクエストの生成をリクエスト送受信部306に指示する。リクエスト送受信部306は、診断対象URLに対するHTTPリクエストの生成をWebアプリケーション203に指示する。リクエスト送受信部306は、Webアプリケーション203が生成したHTTPリクエストをリクエスト生成部305に出力する。リクエスト生成部305は、診断対象URLに対して一般権と特権と同じ操作が可能かを試行するため、Webアプリケーション203が生成したHTTPリクエストを試行用に書き換え、書き換えたHTTPリクエストをリクエスト送受信部306に出力する。リクエスト送受信部306は、インターネット202を介してリクエスト送受信部306から入力されたHTTPリクエストをWebサーバ201に送信する。リクエスト送受信部306は、インターネット202を介してWebサーバ201からHTTPリクエストに対するHTTPレスポンスを受信し、受信したHTTPレスポンスを判定部307に出力する。
判定部307は、メモリ103に読み出され、プロセッサ102で実行される。判定部307は、リクエスト送受信部306が受信したHTTPレスポンスと、遷移データDB310を補助記憶装置105から読み出す。判定部307は、HTTPレスポンスと遷移データDB310に保存された特権でのHTTPリクエストに対するHTTPレスポンスから脆弱性の有無を判定して、判定した結果を結果データDB312に出力する。
出力部308は、メモリ103に読み出され、プロセッサ102で実行される。出力部308は、補助記憶装置105に保存された結果データDB312を補助記憶装置105から読み出す。出力部308は、結果データDB312から読み出した判定結果を、出力インターフェース106に出力する。
結果データDB312は、診断結果テーブル470および結果詳細テーブル480の2種類のテーブルを保持する。
図9は、実施の形態1に係る診断結果テーブル470の一例を示す図である。
図10は、実施の形態1に係る結果詳細テーブル480の一例を示す図である。
診断結果テーブル470は、診断対象URL、判定部307の結果を保存するフィールドを持つテーブルである。結果詳細テーブル480は、脆弱性があると判定された診断対象URL、使用したパラメータ名を保存するフィールドを持つテーブルである。
次に動作について説明する。
図11は、実施の形態1に係る入力部301、クローリング実施部302および抽出部303の処理の流れを示すフローチャートである。図11のフローチャートにおいて、実線がフローの経路を示し、破線は各DBに対するデータ書込みと呼出しを示す。
図12は、実施の形態1に係るHTTPリクエスト・レスポンステーブル441の一例を示す図である。
図13は、実施の形態1に係るパラメータテーブル451の一例を示す図である。
ステップS104の処理が終了すると図12のHTTPリクエスト・レスポンステーブル441および図13のパラメータテーブル451が得られる。
入力インターフェース106を介してアカウント情報および対象URLが入力されると、入力部301は処理を開始する。
図11のステップS101において、入力部301は、入力されたアカウント情報をアカウント情報DB309のアカウント情報テーブル410とログインパラメータ420に保存する。アカウント情報には、Webアプリケーション203にログインする際に必要なアカウントIDおよびパスワードといったログイン情報とそのアカウントのアカウント権限とログインするために必要なパラメータのパラメータ名とが含まれる。
入力部301は、アカウントID、パスワードおよびアカウント権限を、アカウント情報テーブル410のアカウントID、パスワード、権限の項目に保存する。図3において、例えば、項番U01としてアカウントID「mng1」、パスワード「1234abc」および権限「特権」が保存されている。
入力部301は、パラメータ名をログインパラメータテーブル420に保存する。図4において、項番IDとしてパラメータ「accountid」、項番PWDとしてパラメータ「passwd」が保存されている。
また、入力部301は、入力された対象URLを遷移データDB310の対象URLテーブル430に保存する。図5において、対象URLテーブル430には、対象URL「http://xxx.com」が保存されている。処理はステップS102に進む。
ステップS102において、クローリング実施部302は、アカウント情報DB309に保存されたアカウント情報テーブル410から、クローリングが実施されていないアカウントのレコードを1つ選択し、アカウントIDおよびパスワードを読み出す。処理はステップS103に進む。
ステップS103において、クローリング実施部302は、遷移データDB310の対象URLテーブル430から対象URL「http://xxx.com」を読み出す。クローリング実施部302は、選択したアカウントのアカウントIDおよびパスワードでWebアプリケーション203にログインし、対象URLに対してクローリングを実施する。
クローリング実施部302がアカウント情報テーブル410の項番U01のアカウントでWebアプリケーション203にログインする場合を例に処理を説明する。クローリング実施部302は、対象URL「http://xxx.com」にHTTPリクエストを送信し、さらに「http://xxx.com」上のリンクである「http://xxx.com/login.php」にHTTPリクエストを送信する。「http://xxx.com/login.php」へのHTTPリクエストに対するHTTPレスポンスを受信すると、クローリング実施部302は、遷移データDB310のHTTPリクエスト・レスポンステーブル441の項番URL01にHTTPレスポンスの内容を保存する。クローリング実施部302は、遷移先URLに「http://xxx.com/login.php」、レスポンスコードに「200」、レスポンス内容にレスポンスのHeader情報およびBody情報、遷移元URLに「http://xxx.com」、権限に「特権」を保存する。権限には、ログインしたアカウントの権限の種類が保存される。また、遷移先URL「http://xxx.com/login.php」に送信したHTTPリクエストにパラメータが含まれている場合、クローリング実施部302は、遷移データDB310のパラメータテーブル451に保存する。図13のパラメータテーブル451には示していないが、パラメータが保存されたものとする。
次に、クローリング実施部302は、「http://xxx.com/login.php」上のリンクである「http://xxx.com/top.php」にHTTPリクエストを送信する。HTTPレスポンスを受信すると、クローリング実施部302は、HTTPリクエスト・レスポンステーブル441の項番URL02にHTTPレスポンスの内容を保存する。クローリング実施部302は、遷移先URLに「http://xxx.com/top.php」、レスポンスコードに「200」、レスポンス内容にレスポンスのHeader情報およびBody情報、遷移元URLに「http://xxx.com/login.php」、権限に「特権」を保存する。遷移先URL「http://xxx.com/top.php」に送信したHTTPリクエストにパラメータauth、userIDが含まれている。クローリング実施部302は、パラメータ名、パラメータの値、パラメータが記載されている位置を示す値(URLのクエリ部、ヘッダ部またはボディ部)をパラメータテーブル451の項番URL02−01、URL02−02に保存する。なお、項番URL02−01、URL02−02はURL02のパラメータであることを示している。パラメータをパラメータテーブル451に保存する際、クローリング実施部302は、どのHTTPリクエストに含まれたパラメータなのか対応付けがわかるように項番を付与している。本実施の形態では、項番で対応づけを示しているが、他の方法でもよい。
クローリング実施部302は、対象URL「http://xxx.com」とその配下にある全てのリンクを辿り、上述したように遷移先のページ情報を収集して、収集した情報をHTTPリクエスト・レスポンステーブル441およびパラメータテーブル451に保存する。遷移先のページでも遷移していないリンク先がなくなるまでページ情報を収集すると、クローリング実施部302は、クローリングを終了し、ログアウトする。処理はステップS104に進む。
ステップS104において、クローリング実施部302は、クローリングが未実施のアカウントがないか判定する。クローリング実施部302は、アカウント情報テーブル410の各アカウントについてクローリングを実施したかどうかを把握している。クローリングが未実施のアカウントがある場合、処理はステップS102に進み、クローリング実施部302は、クローリングが未実施のアカウントを選択してクローリングを実施する。
クローリング実施部302は、クローリングが未実施のアカウントがなくなるまでステップS102〜S104のフローを繰り返す。
図12において、アカウントID「mng1」のクローリングで項番URL01〜URL02、アカウントID「mng2」のクローリングで項番URL03〜URL04のレコードが保存されたものとする。アカウントID「user1」のクローリングで項番URL05〜URL06、アカウントID「user2」のクローリングで項番URL07〜URL08のレコードが保存されたものとする。遷移先URLと権限が同じレコードは、権限が同じであって異なるアカウントで実施したクローリングで得られた情報である。
図13において、アカウントID「mng1」のクローリングで項番URL02−01〜URL02−02、アカウントID「mng2」のクローリングで項番URL04−01〜URL04−02のレコードが保存されたものとする。アカウントID「user1」のクローリングで項番URL06−01〜URL06−02、アカウントID「user2」のクローリングで項番URL08−01〜URL08−02のレコードが保存されたものとする。
図11のフローチャートの説明に戻る。
ステップS104において、クローリングが未実施のアカウントがなければ処理はステップS105に進む。
ステップS105において、抽出部303は、同じ遷移先に対して権限が特権で同じレコードについてHTTPリクエストのパラメータの値の差異を抽出する処理を行う。
抽出部303は、HTTPリクエスト・レスポンステーブル441から、権限が特権であって遷移先URLが同じレコードを選択する。項番URL02と項番URL04を選択した場合を例に説明する。項番URL02、URL04に関するパラメータはパラメータテーブル451のURL02−01〜URL02−02、URL04−01〜URL04−02に保存されている。抽出部303は、これらのパラメータの差異を抽出する。
URL02−01とURL04−01は値が同じため、抽出部303は、固定パラメータテーブル460の項番PARAM02−01の対象に「URL04−01」、固定に「固定」を保存する。URL02−02とURL04−02は値が異なるため、抽出部303は、固定パラメータテーブル460の項番PARAM02−02の対象に「URL04−02」、固定に「変動」を保存する。処理は終了する。
HTTPリクエストのパラメータは、セッションIDや時刻などのログインするたびに毎回異なるパラメータの値、宛先URLやcontent−type等のヘッダ情報などのログインするたびに変わることがない固定のパラメータの値、ユーザIDなどのログインするたびに変わることがないがアカウントによって異なるパラメータの値、の3つに分別される。本実施の形態では、抽出部303は、HTTPリクエストのパラメータから、ログインするたびに変わることがない固定のパラメータを抽出することが可能である。
図14は、実施の形態1に係る比較部304、リクエスト生成部305、リクエスト送受信部306、判定部307及び出力部308の処理の流れを示すフローチャートである。実線がフローの経路を示し、破線は各DBに対するデータの書込みと呼出しを示す。診断対象URLに対して一般権と特権とで同じ操作が可能かを試行するため、一般権のアカウントでログインし、HTTPリクエストを診断対象URLに送信する。
ステップS201において、比較部304は、遷移データDB310のHTTPリクエスト・レスポンステーブル441からレコードを選択し、他のレコードと比較する。図15を用いてステップS201の詳細を説明する。
図15は、実施の形態1に係る図14のステップS201の比較部304の処理の詳細を示すフローチャートである。
ステップS301において、比較部304は、HTTPリクエスト・レスポンステーブル441から1つレコードを選択し、遷移先URLが同じレコードが他にあるか判定する。遷移先URLが同じレコードが他になければ、処理はステップS302に進み、遷移先URLが同じレコードが他にあれば、処理はステップS304に進む。
ステップS302において、比較部304は、選択したレコードの権限が特権か判定する。選択したレコードの権限が特権の場合、処理はステップS303に進む。選択したレコードの権限が特権でない場合、比較部304は、選択したレコードの遷移先URLを診断対象から除外し、処理は終了する。
ステップS303において、比較部304は、選択したレコードの遷移先URLを図9の結果データDB312の診断結果テーブル470に保存し、処理は終了する。
ステップS304において、比較部304は、パラメータテーブル451を参照し、遷移先URLが同じレコードについてパラメータ名が存在するのは特権のレコードのみか判定する。パラメータ名が存在するのは特権のレコードのみの場合、処理はステップS305に進む。パラメータ名が存在するのは特権のレコードのみでない場合、処理はステップS306に進む。
ステップS305において、比較部304は、選択したレコードの遷移先URLとパラメータ名を結果データDB312の診断結果テーブル470に保存し、処理は終了する。
ステップS306において、比較部304は、パラメータテーブル451を参照し、遷移先URLが同じレコードについて特権と一般権で同じパラメータ名が存在するのか判定する。特権と一般権で同じパラメータ名が存在する場合、処理はステップS307に進む。特権と一般権で同じパラメータ名が存在しない場合、比較部304は、選択したレコードの遷移先URLを診断対象から除外し、処理は終了する。
ステップS307において、比較部304は、パラメータテーブル451を参照し、特権と一般権で同じパラメータ名が存在し、値が同じか判定する。値が同じでない場合、処理はステップS308に進む。値が同じ場合、比較部304は、選択したレコードの遷移先URLを診断対象から除外し、処理は終了する。
ステップS308において、比較部304は、固定パラメータテーブル460を参照し、パラメータが固定か判定する。パラメータが固定の場合、処理はステップS305に進む。パラメータが固定でない場合、比較部304は、選択したレコードの遷移先URLを診断対象から除外し、処理は終了する。
図14のフローチャートの説明に戻る。ステップS202において、リクエスト生成部305は、アカウント情報DB309に保存されている情報を用いて、一般権のアカウントでWebアプリケーション203にログインする。項番U03のアカウント「user1」でログインしたものとする。処理はステップS203に進む。
ステップS203において、リクエスト生成部305は、診断結果テーブル470から診断対象URLを選択し、選択した診断対象URLと合致する遷移先URLが保存されているレコードをHTTPリクエスト・レスポンステーブル441から読み出す。読み出したレコードのアクセス権が特権のみの場合、遷移先URLが特権の場合にのみ存在することを意味する。処理はステップS204に進む。一方、読み出したレコードのアクセス権が特権のレコードと一般権のレコードの両方がある場合、一般権でも診断対象URLが存在することを意味する。処理はステップS205に進む。
ステップS204において、リクエスト生成部305は、リクエスト送受信部306を介して診断対象URLをWebアプリケーション203に出力する。リクエスト生成部305は、リクエスト送受信部306を介してWebアプリケーション203から診断対象URLへの一般権のHTTPリクエストを受け取る。リクエスト生成部305は、HTTPリクエスト・レスポンステーブル441から読み出したレコードをもとにHTTPリクエストを生成する。読み出したレコードは特権のレコードである。リクエスト生成部305は、HTTPリクエスト・レスポンステーブル441から読み出したレコードに対応付けられたパラメータテーブル451のレコードよりHTTPリクエストに設定されるパラメータを読み出す。読み出したパラメータは、特権の場合にHTTPリクエストに設定されるパラメータである。リクエスト生成部305は、固定パラメータDB311の固定パラメータテーブル460を参照し、読み出したパラメータが固定の場合、HTTPリクエストのパラメータの値を変更しない。読み出したパラメータが変動の場合、HTTPリクエストのパラメータの値をWebアプリケーション203から受け取った一般権のHTTPリクエストのパラメータの値に変更する。また、リクエスト生成部305は、結果データDB312の結果詳細テーブル480に診断対象URL、値を変更したパラメータ名を保存する。リクエスト生成部305は、このようにして生成したHTTPリクエストをリクエスト送受信部306に出力する。リクエスト送受信部306は、リクエスト生成部305から入力されたHTTPリクエストをWebサーバ201に送信し、Webサーバ201からHTTPレスポンスを受信すると判定部307に出力する。処理はステップS206に進む。
ステップS205において、リクエスト生成部305は、リクエスト送受信部306を介して診断対象URLをWebアプリケーション203に出力し、リクエスト送受信部306を介してWebアプリケーション203から診断対象URLへの一般権のHTTPリクエストを受け取る。リクエスト生成部305は、ステップS203においてHTTPリクエスト・レスポンステーブル441から読み出したレコードに対応付けられたパラメータテーブル451のレコードより特権の場合にHTTPリクエストに設定されるパラメータを読み出す。リクエスト生成部305は、固定パラメータDB311の固定パラメータテーブル460を参照し、一般権のHTTPリクエストに含まれるパラメータに該当するレコードがあって固定の場合、HTTPリクエストの該当のパラメータの値を特権のパラメータの値に変更する。また、リクエスト生成部305は、結果データDB312の結果詳細テーブル480に診断対象URL、値を変更したパラメータ名を保存する。一般権のHTTPリクエストに含まれるパラメータに該当するレコードがあって変動の場合、リクエスト生成部305は、HTTPリクエストの該当のパラメータの値を変更しない。固定のパラメータは、例えば権限識別のパラメータである。変動のパラメータは、例えば、ユーザID、時刻である。また、リクエスト生成部305は、読み出した特権のパラメータのうち一般権のHTTPリクエストに含まれていないパラメータをHTTPリクエストに追加する。リクエスト生成部305は、このようにして生成したHTTPリクエストをリクエスト送受信部306に出力する。リクエスト送受信部306は、リクエスト生成部305から入力されたHTTPリクエストをWebサーバ201に送信する。リクエスト送受信部306は、Webサーバ201からHTTPレスポンスを受信すると受信したHTTPレスポンスを判定部307に出力する。処理はステップS206に進む。
ステップS206において、判定部307は、入力されたHTTPレスポンスのレスポンスコードとHTTPリクエスト・レスポンステーブル441に保存されている正常なレスポンスのレスポンスコードを比較する。判定部307は、レスポンスコードの値を比較することで脆弱性を判定する。レスポンスコードが同じ場合、特権の操作が一般権でも実行できているため、判定部307は、脆弱ありと判定する。レスポンスコードが異なる場合、判定部307は、脆弱なしと判定する。判定部307は、判定した脆弱性の有無を診断結果テーブル470の診断対象URLに該当するレコードの脆弱性に保存する。処理はステップS207に進む。
ステップS207において、判定部307は、診断結果テーブル470のすべてのレコードについて脆弱性の判定処理を完了したか判定する。判定部307は、診断結果テーブル470のすべてのレコードについて脆弱性の項目が設定されていれば、完了と判定する。完了した場合、処理はステップS208に進む。完了していない場合、処理はステップS202に戻る。診断結果テーブル470のすべてのレコードについて脆弱性の項目が設定されるまで、ステップS202〜S207の処理が繰り返される。
ステップS208において、出力部308は、結果データDB312のデータを出力インターフェース104へ出力し、処理は終了となる。
なお、本実施の形態において、受信したHTTPレスポンスとHTTPリクエスト・レスポンステーブル441に保存されている正常なHTTPレスポンスのレスポンスコードが同じ場合、脆弱ありと判定したが、HTTPレスポンスのHeader情報またはBody情報に含まれる値を用いて脆弱性を判定するようにしてもよい。
したがって、本実施の形態では、特権の第1のアカウントにより遷移先URLに送信したHTTPリクエストに含まれるパラメータのうち、特権の第2のアカウントにより遷移先URLに送信したHTTPリクエストに含まれるパラメータと値が同じである固定のパラメータを抽出する抽出部303と、一般権のアカウントによる遷移先URLへのHTTPリクエストのパラメータに抽出部303で抽出された固定のパラメータが含まれており、値が特権のアカウントの値と異なる場合、固定のパラメータに特権のアカウントの値を設定したHTTPリクエストを出力するリクエスト生成部305と、一般権のアカウントによりHTTPリクエストを遷移先URLに送信し、HTTPレスポンスを受信するリクエスト送受信部306と、HTTPレスポンスに基づいて遷移先URLの脆弱性を判定する判定部307と、を備えたので、Webアプリケーションの遷移先URLを事前に把握することなく権限管理の不備があるかどうかを診断することができる。一般権の画面上には表示されないページへの遷移や実行できない操作を実行できるかを確認することで、権限管理の不備がないかを診断する。診断装置200が権限管理の不備を診断するため、人的コストを削減することもできる。
また、リクエスト生成部305は、一般権のアカウントによる遷移先URLへのHTTPリクエストのパラメータに抽出部303で抽出された固定のパラメータが含まれていない場合、特権のアカウントの値を設定した固定のパラメータをHTTPリクエストに追加し、固定のパラメータが追加されたHTTPリクエストを出力するので、一般権のHTTPリクエストには含まれないパラメータについて権限管理の不備がないかを診断することができる。
また、抽出部303は、第1のアカウントにより遷移先URLに送信したHTTPリクエストに含まれるパラメータのうち、第2のアカウントにより遷移先URLに送信したHTTPリクエストに含まれるパラメータと値が異なる変動のパラメータを抽出し、リクエスト生成部305は、一般権のアカウントにより遷移先URLに遷移しない場合、特権のアカウントによる遷移先URLへのHTTPリクエストのうち抽出部303で抽出された変動のパラメータに一般権のアカウントによる遷移先URLへのHTTPリクエストのパラメータの値を設定し、値を設定したHTTPリクエストを出力するので、一般権のアカウントでは遷移しない遷移先URLについて、権限管理の不備がないかを診断することができる。
実施の形態2.
以上の実施の形態1においては、抽出部303がログインするたびに変わることがない固定のパラメータを抽出するようにしたものであるが、本実施の形態においては、遷移先URLとパラメータの組み合わせが同じでログインするたびに値が変わるパラメータと変わらないパラメータを抽出する実施の形態を示す。
なお、本実施の形態においては、実施の形態1に記載の構成を全て備えた上で、更に付加的な構成について説明する。
図16は、実施の形態2に係るHTTPリクエスト・レスポンステーブル442の一例を示す図である。
図17は、実施の形態2に係るパラメータテーブル452の一例を示す図である。
まず、図11のフローチャートについて、実施の形態1と異なる動作を説明する。
図11のステップS103において、クローリング実施部302は、選択したアカウントでクローリングを実施し、ログアウトした後、同じアカウントでWebアプリケーション203に再度ログインし、対象URLに対して2回目のクローリングを実施する。クローリング実施部302は、2回目のクローリングが終了すると、ログアウトする。
図16は、アカウントID「mng1」の1回目のクローリングで項番URL01〜URL04、アカウントID「user1」の1回目のクローリングで項番URL05〜URL07のレコードが保存されたものとする。
図17は、アカウントID「mng1」の1回目のクローリングで項番URL03−01〜URL03−03、URL04−01〜URL04−03のレコードが保存されたものとする。アカウントID「user1」の1回目のクローリングで項番URL07−01〜URL07−03のレコードが保存されたものとする。
2回目のクローリングにおいて、1回目のクローリングで得られた図16のHTTPリクエスト・レスポンステーブル442および図17のパラメータテーブル452と同じ値が保存されたHTTPリクエスト・レスポンステーブル443、パラメータテーブル453が得られる。なお、内容が同じため図示は省略する。
図11のステップS105において、抽出部303は、1回目のクローリングで得られたHTTPリクエスト・レスポンステーブル442、パラメータテーブル452、2回目のクローリングで得られたHTTPリクエスト・レスポンステーブル443、パラメータテーブル453を参照し、HTTPリクエスト・レスポンステーブル442の特権の各項番について、1回目のクローリングと2回目のクローリングでのパラメータの差異を抽出する。
図18は、実施の形態2に係る固定パラメータテーブル462の一例を示す図である。1回目のクローリングと2回目のクローリングで同じ値が得られているため、固定パラメータテーブル461のすべてのパラメータは固定である。
次に、抽出部303は、HTTPリクエスト・レスポンステーブル442のレコードのうち権限が特権のレコードを選択する。抽出部303は、HTTPリクエスト・レスポンステーブル442から権限が特権であって、選択したレコードの遷移先URLと同じレコードについて、パラメータの差異を抽出する。抽出部303は、抽出したパラメータの差異を固定パラメータテーブル462に保存する。
図19は、実施の形態2に係る固定パラメータテーブル462の一例を示す図である。項番のURL03とURL04を比較するとURLおよびuserIDは値が同じため、固定パラメータテーブル462のPARAM03−01およびPARAM03−02の固定フィールドには「固定」が保存されている。一方、pageは値が異なるため、固定パラメータテーブル462のPARAM03−03の固定フィールドには「変動」が保存されている。
図20は、実施の形態2に係るHTTPリクエスト・レスポンステーブル444の一例を示す図である。
抽出部303は、固定パラメータテーブル462において固定フィールドに「変動」が保存されているパラメータpageが、ページを一意に表すのに必要なパラメータであると判定する。抽出部303は、HTTPリクエスト・レスポンステーブル442に遷移パラメータのフィールドを追加し、pageの値を設定したHTTPリクエスト・レスポンステーブル444を生成する。
次に、図14のフローチャートについて、実施の形態1と異なる動作を説明する。
ステップS201において、比較部304は、遷移データDB310のHTTPリクエスト・レスポンステーブル444からレコードを選択し、他のレコードと比較する。図21を用いてステップS201の処理の詳細を説明する。
図21は、実施の形態2に係る図14のステップS201の比較部304の処理の詳細を示すフローチャートである。
図22は、実施の形態2に係る診断結果テーブル471の一例を示す図である。
図23は、実施の形態2に係る結果詳細テーブル481の一例を示す図である。
図21のステップS401において、比較部304は、HTTPリクエスト・レスポンステーブル444から1つレコードを選択し、遷移先URLおよび遷移パラメータが同じレコードが他にあるか判定する。遷移先URLおよび遷移パラメータが同じレコードが他になければ、処理はステップS402に進み、遷移先URLおよび遷移パラメータが同じレコードが他にあれば、処理はステップS404に進む。
ステップS402において、比較部304は、選択したレコードの権限が特権か判定する。選択したレコードの権限が特権の場合、処理はステップS403に進む。選択したレコードの権限が特権でない場合、比較部304は、選択したレコードの遷移先URLを診断対象から除外し、処理は終了する。
ステップS403において、比較部304は、選択したレコードの遷移先URLおよび遷移パラメータを結果データDB312の診断結果テーブル471に保存し、処理は終了する。
ステップS404において、比較部304は、パラメータテーブル452を参照し、遷移先URLおよび遷移パラメータが同じレコードについてパラメータ名が存在するのは特権のレコードのみか判定する。パラメータ名が存在するのは特権のレコードのみの場合、処理はステップS405に進む。パラメータ名が存在するのは特権のレコードのみでない場合、処理はステップS406に進む。
ステップS405において、比較部304は、選択したレコードの遷移先URL、遷移パラメータおよびパラメータ名を結果データDB312の結果詳細テーブル481に保存し、処理は終了する。
ステップS406において、比較部304は、パラメータテーブル452を参照し、遷移先URLおよび遷移パラメータが同じレコードについて特権と一般権で同じパラメータ名が存在するのか判定する。特権と一般権で同じパラメータ名が存在する場合、処理はステップS407に進む。特権と一般権で同じパラメータ名が存在しない場合、比較部304は、選択したレコードの遷移先URLおよび遷移パラメータを診断対象から除外し、処理は終了する。
ステップS407において、比較部304は、パラメータテーブル444を参照し、特権と一般権で同じパラメータ名が存在し、値が同じか判定する。値が同じでない場合、処理はステップS305に進む。値が同じ場合、比較部304は、選択したレコードの遷移先URLおよび遷移パラメータを診断対象から除外し、処理は終了する。
なお、本実施の形態において、クローリング実施部302は、1回目と2回目のクローリングで得られた情報を識別せずにHTTPリクエスト・レスポンステーブル442およびパラメータテーブル452に保存したが、1回目と2回目のクローリングで得られた情報を識別できるように保存してもよい。テーブルを増やす、または、テーブルのカラムを増やすようにしてもよい。
以上のように、本実施の形態では、抽出部303は、第1のアカウントにより遷移先URLに送信したHTTPリクエストに含まれるパラメータのうち、第2のアカウントにより遷移先URLに送信したHTTPリクエストに含まれるパラメータと値が同じである固定のパラメータについて、第1のアカウントから遷移先URLに複数回送信したHTTPリクエストに含まれる固定のパラメータ値が異なる場合、固定のパラメータを遷移先URLとの組み合わせでページを一意に示す遷移パラメータとして抽出するので、URLと遷移パラメータとの組み合わせでページを一意に示す場合でも権限管理の不備を診断することができる。
実施の形態3.
以上の実施の形態1においては、抽出部303が抽出したHTTPリクエストのパラメータが固定か変動かを固定パラメータDB311の固定パラメータテーブル460に保存するようにしたものであるが、本実施の形態においては、遷移データDB310のHTTPリクエスト・レスポンステーブルにフィールドを追加して保存する実施の形態を示す。
図24は、実施の形態3に係る診断装置210の機能構成の一例を含む全体のブロック図である。実施の形態1の診断装置200との違いは、固有データDBが削除されていることである。
図25は、実施の形態3に係る入力部301、クローリング実施部302および抽出部303の処理の流れを示すフローチャートである。実施の形態1の図11のフローチャートとの違いは、ステップS105から遷移データDB310に出力することである。
図26は、実施の形態3に係る遷移データDB310のパラメータテーブル454の一例を示す図である。実施の形態1のパラメータテーブル451との違いは固定のフィールドが追加されていることである。
図25のステップ105において、実施の形態1と異なる動作を説明する。
抽出部303は、同じ遷移先に対して権限が特権で同じレコードについてHTTPリクエストのパラメータの値の差異を抽出する。URL02−01とURL04−01は値が同じため、抽出部303は、固定パラメータテーブル460の項番URL02−01と項番URL04−01の固定に「固定」を保存する。また、URL02−02とURL04−02は値が異なるため、抽出部303は、固定パラメータテーブル460の項番PARAM02−02と項番URL04−02の固定に「変動」を保存する。処理は終了する。
図27は、実施の形態3に係る比較部304、リクエスト生成部305、リクエスト送受信部306、判定部307及び出力部308の処理の流れを示すフローチャートである。実施の形態1の図14のフローチャートとの違いは、ステップS201、ステップS204、ステップS205においてパラメータが固有かどうかの情報を遷移パラメータDBのパラメータテーブル454から読み出すことである。
なお、本実施の形態において、実施の形態2で示したようにアカウントごとに2回クローリングを実施してページ遷移に必要な特定のパラメータを決定する機能を含めるようにしてもよい。
したがって、本実施の形態では、遷移データDB310が固有パラメータDB311の情報も保持するため、遷移データDB310のパラメータテーブルT203のレコードと同じ数のレコードを持つ固有パラメータDB311を削減し、固有パラメータDB311で使用するメモリリソースを削減することが可能である。
実施の形態4.
以上の実施の形態1においては、診断装置200が診断対象URLを抽出し、脆弱性の判定を行うようにしたものであるが、本実施の形態においては、診断対象抽出装置が診断対象URLを抽出し、診断実施装置が抽出された診断対象URLの脆弱性を判定する実施の形態を示す。
実施の形態3と異なる部分を説明する。
図28は、実施の形態4に係る診断対象抽出装置220の機能構成の一例を含む全体のブロック図である。診断対象抽出装置220は、入力部301、クローリング実施部302、抽出部303、比較部304、アカウント情報DB313、遷移データDB314および出力部315を備える。アカウント情報DB313、遷移データDB314は実施の形態3のアカウント情報DB309、遷移データDB310と同様の機能を保持する。
比較部304は、メモリ103に読み出され、プロセッサ102で実行される。比較部304は、遷移データDB310を補助記憶装置105から読み出す。比較部304は、遷移データDB310に記憶された遷移先URLが同じレコードについてパラメータを比較し、異なる部分がある遷移先URLを診断対象URLとしてパラメータとともに出力部315に出力する。
出力部315は、メモリ103に読み出され、プロセッサ102で実行される。出力部315は、比較部304から入力された診断対象URLを出力インターフェース106に出力する。
図29は、実施の形態4に係る診断実施装置230の機能構成の一例を含む全体のブロック図である。診断実施装置230は、入力部316、リクエスト生成部305、リクエスト送受信部306、判定部307、出力部308、アカウント情報DB317、遷移データDB318、結果データDB319を備える。アカウント情報DB317、遷移データDB318および結果データDB319は実施の形態3のアカウント情報DB309、遷移データDB310、結果データDB312と同様の機能を保持する。
入力部316は、メモリ103に読み出され、プロセッサ102で実行される。入力インターフェース106を介して入力された値を補助記憶装置105へ保存する。入力部316は、入力されたアカウント情報(ログイン情報、権限情報)を補助記憶装置105上のアカウント情報DB317に出力する。また、入力部316は、診断対象URLとパラメータを遷移データDB318に出力する。
次に動作について説明する。
図30は、実施の形態4に係る診断対象抽出装置220の入力部301、クローリング実施部302および抽出部303の処理の流れを示すフローチャートである。ステップS501〜S505の処理は、実施の形態3の図25のステップS101〜S105の処理と同じである。
ステップS505において、抽出部303は、同じ遷移先に対して権限が特権で同じレコードについてHTTPリクエストの固定のパラメータを比較部304に出力する。
ステップS506において、比較部304は、抽出部303から入力されたパラメータが特権に存在して、一般権に存在しないまたは値が異なる場合、その遷移先URLとパラメータの値を診断対象データ320として出力部315を介して出力する。また、出力部315は、アカウント情報DB313に保存されているアカウント情報を出力する。処理は終了する。
図31は、実施の形態4に係る診断実施装置230の入力部316、リクエスト生成部305、リクエスト送受信部306、判定部307及び出力部308の処理の流れを示すフローチャートである。
ステップS601において、入力部316には、アカウント情報および診断対象データ320が入力される。入力部316は、入力されたアカウント情報をアカウント情報DB317に保存する。また、入力部316は、診断対象データ320を遷移データDB318および結果データDBに保存する。
ステップS602〜S608は、実施の形態3のステップS202〜S208と同様である。
なお、本実施の形態において、実施の形態2で示したようにアカウントごとに2回クローリングを実施してページ遷移に必要な特定のパラメータを決定する機能を含めるようにしてもよい。
また、本実施の形態において、診断対象抽出装置220から出力される診断対象の情報を収集し、セキュリティ診断は既存の方法を用いるようにしてもよい。また、既存のセキュリティ診断で利用したWebアプリケーションより収集した診断対象の情報を診断実施装置230に入力するようにしてもよい。
したがって、本実施の形態では、特権の第1のアカウントにより遷移先URLに送信したHTTPリクエストに含まれるパラメータのうち、特権の第2のアカウントにより遷移先URLに送信したHTTPリクエストに含まれるパラメータと値が同じである固定のパラメータを抽出する抽出部303を備える診断対象抽出装置220と、一般権のアカウントによる遷移先URLへのHTTPリクエストのパラメータに抽出部303で抽出された固定のパラメータが含まれており、値が特権のアカウントの値と異なる場合、固定のパラメータに特権のアカウントの値を設定したHTTPリクエストを出力するリクエスト生成部305と、一般権のアカウントによりHTTPリクエストを遷移先URLに送信し、HTTPレスポンスを受信するリクエスト送受信部306と、HTTPレスポンスに基づいて遷移先URLの脆弱性を判定する判定部307と、を備える診断実施装置230と、を備えたので、Webアプリケーションの遷移先URLを事前に把握することなく権限管理の不備があるかどうかを診断することができる。
101 通信インターフェース
102 プロセッサ
103 メモリ
104 出力インターフェース
105 補助記憶装置
106 入力インターフェース
107 バス
200、210 セキュリティ診断装置
201 Webサーバ
202 インターネット
203 Webアプリケーション
220 診断対象抽出装置
230 診断実施装置
301、316 入力部
302 クローリング実施部
303 抽出部
304 比較部
305 リクエスト生成部
306 リクエスト送受信部
307 判定部
308、315 出力部
309、313、317 アカウント情報DB
310、314、318 遷移データDB
311 固定パラメータDB
312、319 結果データDB
410 アカウント情報テーブル
420 ログインパラメータテーブル
430 対象URLテーブル
440、441、442、443、444 HTTPリクエスト・レスポンステーブル
450、451、452、453、454 パラメータテーブル
460、461、462 固定パラメータテーブル
470、471 診断結果テーブル
480、481 結果詳細テーブル
入力インターフェース106を介してアカウント情報および対象URLが入力されると、入力部301は処理を開始する。
図11のステップS101において、入力部301は、入力されたアカウント情報をアカウント情報DB309のアカウント情報テーブル410とログインパラメータテーブル420に保存する。アカウント情報には、Webアプリケーション203にログインする際に必要なアカウントIDおよびパスワードといったログイン情報とそのアカウントのアカウント権限とログインするために必要なパラメータのパラメータ名とが含まれる。
ステップS407において、比較部304は、パラメータテーブル452を参照し、特権と一般権で同じパラメータ名が存在し、値が同じか判定する。値が同じでない場合、処理はステップS305に進む。値が同じ場合、比較部304は、選択したレコードの遷移先URLおよび遷移パラメータを診断対象から除外し、処理は終了する。

Claims (7)

  1. 特権の第1のアカウントにより遷移先URLに送信したHTTPリクエストに含まれるパラメータのうち、特権の第2のアカウントにより前記遷移先URLに送信したHTTPリクエストに含まれるパラメータと値が同じである固定のパラメータを抽出する抽出部と、
    一般権のアカウントによる前記遷移先URLへのHTTPリクエストのパラメータに前記抽出部で抽出された前記固定のパラメータが含まれており、値が特権のアカウントの値と異なる場合、前記固定のパラメータに特権のアカウントの値を設定したHTTPリクエストを出力するリクエスト生成部と、
    一般権のアカウントにより前記HTTPリクエストを前記遷移先URLに送信し、HTTPレスポンスを受信するリクエスト送受信部と、
    前記HTTPレスポンスに基づいて前記遷移先URLの脆弱性を判定する判定部と、
    を備えることを特徴とするセキュリティ診断装置。
  2. 前記リクエスト生成部は、一般権のアカウントによる前記遷移先URLへのHTTPリクエストのパラメータに前記抽出部で抽出された前記固定のパラメータが含まれていない場合、特権のアカウントの値を設定した前記固定のパラメータをHTTPリクエストに追加し、前記固定のパラメータが追加されたHTTPリクエストを出力することを特徴とする請求項1に記載のセキュリティ診断装置。
  3. 前記抽出部は、前記第1のアカウントにより前記遷移先URLに送信したHTTPリクエストに含まれるパラメータのうち、前記第2のアカウントにより前記遷移先URLに送信したHTTPリクエストに含まれるパラメータと値が異なる変動のパラメータを抽出し、
    前記リクエスト生成部は、一般権のアカウントにより前記遷移先URLに遷移しない場合、特権のアカウントによる前記遷移先URLへのHTTPリクエストのうち前記抽出部で抽出された前記変動のパラメータに一般権のアカウントによる前記遷移先URLへのHTTPリクエストのパラメータの値を設定し、値を設定したHTTPリクエストを出力することを特徴とする請求項1または2に記載のセキュリティ診断装置。
  4. 前記抽出部は、前記第1のアカウントにより前記遷移先URLに送信したHTTPリクエストに含まれるパラメータのうち、前記第2のアカウントにより前記遷移先URLに送信したHTTPリクエストに含まれるパラメータと値が同じである固定のパラメータについて、前記第1のアカウントから前記遷移先URLに複数回送信したHTTPリクエストに含まれる前記固定のパラメータ値が異なる場合、前記固定のパラメータを前記遷移先URLとの組み合わせでページを一意に示す遷移パラメータとして抽出することを特徴とする請求項1から3のいずれか一項に記載のセキュリティ診断装置。
  5. 入力されたURLに対して複数の特権のアカウントによりクローリングを実施し、前記遷移先URLと前記遷移先URLに送信したHTTPリクエストに含まれるパラメータと前記遷移先URLから受信したHTTPレスポンスと前記HTTPリクエストを送信したアカウントの権限とを対応づけて遷移データデータベースに保存するクローリング実施部と、
    前記遷移データデータベースに保存された前記複数の特権のアカウントの前記遷移先URLと前記パラメータとに基づき、前記遷移先URLを診断対象として出力する比較部と、
    を備えることを特徴とする請求項1から4のいずれか一項に記載のセキュリティ診断装置。
  6. 特権の第1のアカウントにより遷移先URLに送信したHTTPリクエストに含まれるパラメータのうち、特権の第2のアカウントにより前記遷移先URLに送信したHTTPリクエストに含まれるパラメータと値が同じである固定のパラメータを抽出する抽出部を備えるセキュリティ診断対象抽出装置と、
    一般権のアカウントによる前記遷移先URLへのHTTPリクエストのパラメータに前記抽出部で抽出された前記固定のパラメータが含まれており、値が特権のアカウントの値と異なる場合、前記固定のパラメータに特権のアカウントの値を設定したHTTPリクエストを出力するリクエスト生成部と、
    一般権のアカウントにより前記HTTPリクエストを前記遷移先URLに送信し、HTTPレスポンスを受信するリクエスト送受信部と、
    前記HTTPレスポンスに基づいて前記遷移先URLの脆弱性を判定する判定部と、
    を備えるセキュリティ診断実施装置と、
    を備えることを特徴とするセキュリティ診断装置。
  7. 特権の第1のアカウントにより遷移先URLに送信したHTTPリクエストに含まれるパラメータのうち、特権の第2のアカウントにより前記遷移先URLに送信したHTTPリクエストに含まれるパラメータと値が同じである固定のパラメータを抽出するステップと、
    一般権のアカウントによる前記遷移先URLへのHTTPリクエストのパラメータに抽出された前記固定のパラメータが含まれており、値が特権のアカウントの値と異なる場合、前記固定のパラメータに特権のアカウントの値を設定したHTTPリクエストを出力するステップと、
    前記HTTPリクエストを前記遷移先URLに送信し、HTTPレスポンスを受信するステップと、
    前記HTTPレスポンスに基づいて前記遷移先URLの脆弱性を判定するステップと、
    を有するセキュリティ診断方法。
JP2019533770A 2017-08-01 2017-08-01 セキュリティ診断装置およびセキュリティ診断方法 Expired - Fee Related JP6636222B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/027822 WO2019026172A1 (ja) 2017-08-01 2017-08-01 セキュリティ診断装置およびセキュリティ診断方法

Publications (2)

Publication Number Publication Date
JPWO2019026172A1 true JPWO2019026172A1 (ja) 2019-11-21
JP6636222B2 JP6636222B2 (ja) 2020-01-29

Family

ID=65232390

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019533770A Expired - Fee Related JP6636222B2 (ja) 2017-08-01 2017-08-01 セキュリティ診断装置およびセキュリティ診断方法

Country Status (5)

Country Link
US (1) US20200167478A1 (ja)
EP (1) EP3651045A4 (ja)
JP (1) JP6636222B2 (ja)
CN (1) CN110998577A (ja)
WO (1) WO2019026172A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7217400B2 (ja) * 2018-10-31 2023-02-03 GMOサイバーセキュリティbyイエラエ株式会社 ウェブサイトの脆弱性診断装置、診断システム、診断方法および診断プログラム
CN111125713B (zh) * 2019-12-18 2022-04-08 支付宝(杭州)信息技术有限公司 一种水平越权漏洞的检测方法、装置及电子设备
US11683294B2 (en) * 2019-12-30 2023-06-20 Imperva, Inc. Privacy-preserving learning of web traffic
US20230328091A1 (en) * 2022-04-07 2023-10-12 Vmware, Inc. Automated discovery of vulnerable endpoints in an application server

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170149782A1 (en) * 2015-11-19 2017-05-25 International Business Machines Corporation Identifying webpages accessible by unauthorized users via url guessing or network sniffing

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101001132B1 (ko) * 2008-02-22 2010-12-15 엔에이치엔비즈니스플랫폼 주식회사 웹 어플리케이션의 취약성 판단 방법 및 시스템
JP5228943B2 (ja) 2009-01-27 2013-07-03 富士通株式会社 最小権限違反検出プログラム
US20170063916A1 (en) * 2015-08-26 2017-03-02 Wegilant Net Solutions Private Limited System and method for automatically identifying broken authentication and other related vulnerabilities in web services

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170149782A1 (en) * 2015-11-19 2017-05-25 International Business Machines Corporation Identifying webpages accessible by unauthorized users via url guessing or network sniffing

Also Published As

Publication number Publication date
EP3651045A1 (en) 2020-05-13
CN110998577A (zh) 2020-04-10
US20200167478A1 (en) 2020-05-28
JP6636222B2 (ja) 2020-01-29
WO2019026172A1 (ja) 2019-02-07
EP3651045A4 (en) 2020-05-13

Similar Documents

Publication Publication Date Title
US11709945B2 (en) System and method for identifying network security threats and assessing network security
Felt et al. Measuring {HTTPS} adoption on the web
EP3188436B1 (en) Platform for protecting small and medium enterprises from cyber security threats
CN111400722B (zh) 扫描小程序的方法、装置、计算机设备和存储介质
JP6559694B2 (ja) 自動sdk受容
JP6636222B2 (ja) セキュリティ診断装置およびセキュリティ診断方法
US20170026401A1 (en) System and method for threat visualization and risk correlation of connected software applications
KR20060117693A (ko) 웹 보안방법 및 그 장치
CN114500054B (zh) 服务访问方法、服务访问装置、电子设备以及存储介质
CN113868659B (zh) 一种漏洞检测方法及系统
US20210006592A1 (en) Phishing Detection based on Interaction with End User
JP6162021B2 (ja) 解析装置、悪性通信先登録方法及び悪性通信先登録プログラム
Westers et al. SSO-monitor: fully-automatic large-scale landscape, security, and privacy analyses of single sign-on in the wild
US10757118B2 (en) Method of aiding the detection of infection of a terminal by malware
JP2012083909A (ja) アプリケーション特性解析装置およびプログラム
Squarcina et al. Can i take your subdomain? Exploring related-domain attacks in the modern web
CN113868670A (zh) 一种漏洞检测流程检验方法及系统
CN110493224B (zh) 一种子域名劫持漏洞探测方法、装置及设备
JP2017045188A (ja) 通信記録確認装置、通信記録確認システム、通信記録確認方法および通信記録確認プログラム
CN110995738A (zh) 暴力破解行为识别方法、装置、电子设备及可读存储介质
Vilches et al. Aztarna, a footprinting tool for robots
CN114598507B (zh) 攻击者画像生成方法、装置、终端设备及存储介质
KR102330404B1 (ko) 통합 보안 진단 방법 및 장치
JP6900328B2 (ja) 攻撃種別判定装置、攻撃種別判定方法、及びプログラム
Campbell Security and Privacy Analysis of Employee Monitoring Applications

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190828

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190828

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20190828

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20190925

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191001

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191105

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191217

R150 Certificate of patent or registration of utility model

Ref document number: 6636222

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees