JP5982575B2 - 動的テイントに基づくセキュリティ・スキャン - Google Patents

動的テイントに基づくセキュリティ・スキャン Download PDF

Info

Publication number
JP5982575B2
JP5982575B2 JP2015529767A JP2015529767A JP5982575B2 JP 5982575 B2 JP5982575 B2 JP 5982575B2 JP 2015529767 A JP2015529767 A JP 2015529767A JP 2015529767 A JP2015529767 A JP 2015529767A JP 5982575 B2 JP5982575 B2 JP 5982575B2
Authority
JP
Japan
Prior art keywords
module
application
attack
dynamic
vulnerability
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.)
Active
Application number
JP2015529767A
Other languages
English (en)
Other versions
JP2015534155A (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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of JP2015534155A publication Critical patent/JP2015534155A/ja
Application granted granted Critical
Publication of JP5982575B2 publication Critical patent/JP5982575B2/ja
Active 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Debugging And Monitoring (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Computer And Data Communications (AREA)

Description

ソフトウェア・セキュリティ・テストは、ウェブ・アプリケーションのようなアプリケーションにおいて脆弱性を特定するために使用される。セキュリティ・テスト・アプリケーションを使用して行われるウェブベースのソフトウェア製品のための従来のブラックボックス・セキュリティ・テストは、多くの場合スキャナーと呼ばれ、攻撃者のふりをする。ブラックボックス・アプローチにおいて、スキャナーは、検査対象アプリケーション(AUT:Application Under Test)が入力を受け付ける全てのURLを見つけ出すために、ハイパーテキスト・トランスファ・プロトコル(HTTP)要求を生成し、HTTP応答を評価することによって、AUTを調査する。AUTが入力を受け付けるURLは、AUTの攻撃対象領域(Attack Surface)と呼ばれることがある。その後、スキャナーは、攻撃対象領域、及び場合によっては脆弱性のカテゴリに基づいて、攻撃を生成する。スキャナーは、プログラムのHTTP応答を評価することにより、攻撃を適用し、脆弱性の有無を診断する。ブラックボックス・アプローチでは、スキャナーは、AUTの内部動作を何も調査しない。
下記の詳細な説明では、以下の図面が参照される。
一例による、動的テイントモジュール(Dynamic Taint Module)からの脆弱性リストに基づいてセキュリティ攻撃を実施することが可能なシステムを示すブロック図である。 一例による、動的テイントモジュールにより生成された脆弱性リストに基づいてアプリケーションを攻撃することが可能なアプリケーション・セキュリティ・スキャナーを示すブロック図である。 一例による、動的テイントモジュールにより生成された脆弱性リストに基づいてアプリケーションを攻撃することが可能なアプリケーション・セキュリティ・スキャナーを示すブロック図である。 一例による、検査対象アプリケーションのウェブ・アプリケーション・インタフェースを示す図である。 一例による、動的テイントモジュールにより生成された脆弱性リストに基づくスキャン戦略に基づいてアプリケーションを攻撃する方法を示すフロー図である。 一例による、脆弱性リストに基づいてウェブ・アプリケーションに対する攻撃を生成することが可能なコンピュータ装置を示すブロック図である。
本明細書に記載する種々の実施形態は、ウェブ・アプリケーションのようなアプリケーションのテストを実施する技術を提供する。企業がウェブ・アプリケーションがどのくらい安全であるのかを知りたいと望むとき、企業は、製造中である場合もあれば、これから製造を開始しようとしている場合もあり、企業は、多くの場合、ペネトレーションテスト法(例えば、スキャナーの使用)のようなセキュリティテスト手段を使用する。企業は、製造中のアプリケーションのコピーを検査対象アプリケーション(AUT)として使用することを望む場合がある。製造上これからアプリケーションになるAUTを品質保証段階で使用することによって、確実に、製造上使用されるアプリケーションをテストすることができる。
ウェブ・アプリケーション・セキュリティ・スキャナーは、ウエブ・アプリケーションのようなアプリケーションにおけるセキュリティ脆弱性を見つけ出す一つのアプローチである。一部の状況において、クローラーはまず、手動又は自動で、攻撃対象領域を決定する場合がある。アプリケーションによっては、攻撃対象領域は、広いことがある。
次に、スキャナーは、攻撃対象領域リスト、及び攻撃対象領域リスト中の各エントリを精査し、脆弱性が発生することがあるか否かを判定するために、膨大な数の攻撃を実施することがある。攻撃対象領域から脆弱性を判定することは、難解である。なぜなら、スキャナーは、アプリケーション上で実行されるコードについて限られた可視性しか持たないからである。可視性が限られているため、各攻撃対象領域エントリについて、一組の攻撃が実施される。また、一部の状況において、脆弱性を見つけ出すために実施される攻撃は、攻撃のうちの僅かな回数である場合がある。すなわち、多数の攻撃が実施されても、攻撃のうちの僅かな回数が成功するに過ぎない。その結果、スキャナーによるテストは、時間のかかるものとなる。大きなウェブサイトのスキャンには、完了までに数時間、又は数日を要することがある。ユーザ及び消費者は、より短い検査時間を望む場合がある。
アプリケーションに関する追加的見識情報は、どのような攻撃を実施すべきか、及びどの攻撃が考慮に値しないかに関して、スキャナーがより賢明な判定を行うために役立つことがある。攻撃回数を減らすことは、スキャン時間を直接的に改善する。
したがって、動的テイント解析を使用して、潜在的脆弱性カテゴリをスキャナーに報告することにより、スキャン・プロセスを高速化するアプローチを提供する。その後、スキャナーは、動的テイント解析により決定された脆弱性カテゴリに基づいて、アプリケーションを選択的にスキャンすることができる。したがって、スキャンによる攻撃対象領域を動的テイント解析に基づいて決定された特定の脆弱性に制限することによって、実施しなければらならいテストの回数を減らすことができる。したがって、スキャン全体を、動的テイント解析からの情報の使用しない場合に比べて、高速化することができる。
図1は、一例による、動的テイントモジュールからの脆弱性リストに基づいてセキュリティ攻撃を実施することが可能なシステムを示すブロック図である。システム100は、アプリケーション・セキュリティ・スキャナー102、及び、検査対象アプリケーション(AUT)104を含む場合がある。AUT104は、サーバ(例えば、Java2プラットフォーム・エンタープライズ・エディション(J2EE)アプリケーション・サーバ、インターネット・インフォメーション・サーバ等)のような1以上の計算装置上で実施される場合がある。さらに、AUT104は、動的テイントモジュール110を含む場合がある。
AUT104は、とりわけJAVA、又は.NETのような、任意の適当なウェブベースのコンピュータ言語でエンコードされる場合がある。AUT104は、とりわけ、Struts、Struts 2、ASP .NET MVC、Oracle Weblogic、及びSpring MVCのような適当なソフトウェア・フレームワークの中で動作する場合がある。ソフトウェア・フレームワークは、一般的機能を提供する一組の共通プログラムモジュールを含み、特定の機能を提供するために、一般的機能は、ユーザ・コードによって選択的に上書きされ、又は特殊化されることがある。AUT104は、スキャナー102からの種々の要求を処理するために、Java仮想マシン(JVM)、共通言語ランタイム(CLR: Common Language Runtime)、及び/又は他のランタイム環境の1以上のインスタンスを実行するように構成される場合がある。これらのソフトウェア・フレームワーク又はランタイム環境の共通プログラムモジュールにより提供される種々のプログラミング命令は、コンテナ・コードと呼ばれることがある。AUT104に固有のカスタム・プログラミング命令は、ユーザ・コードと呼ばれることがある。
スキャナー102は、例えばブラックボックス・テストを実施することによりAUT104の潜在的セキュリティ脆弱性、及びアーキテクチャとしての弱点を特定するために、ウェブ・インタフェースのようなフロント・エンドを通してAUT104と通信する、計算装置により実行可能なプログラムとみなすことができる。
AUT104は、ネットワークを通してスキャナー102とAUT104との間の通信を可能にするためのネットワーク・インタフェース(図示せず)を含む。ネットワーク・インタフェースは、AUT104の攻撃対象領域を露出させる。ネットワーク・インタフェースは、AUTが一般的用途に使用可能となったときにAUT104へのアクセスを可能にするために最終的に使用されるものと同じインタフェースである。ネットワーク・インタフェースを通じたスキャナー102とAUT104との間の通信は、スキャナー102からAUT104へ発行されるアプリケーション要求(例えば、HTTPによる)、及びAUT104からスキャナー102へ発行されるHTTP応答により実施される場合がある。AUT104を宛先とする要求は、アプリケーション要求と呼ばれることがあり、AUT104から受信される応答は、アプリケーション応答と呼ばれることがある。スキャナー102により生成されるアプリケーション要求は、AUT104の潜在的脆弱性を露出させるように、又はAUT104により課せられたテストに応答する等のように、構成される場合がある。
ネットワークは、例えば、インターネット、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、メトロポリタン・エリア・ネットワーク(MAN)、ケーブル・ネットワーク、光ファイバー・ネットワーク、又はそれらの組み合わせ等のような、公衆データ網を含む場合がある。特定の幾つかの例として、無線ネットワークは、携帯電話網、衛星通信、無線LANなどを含む場合がある。
AUT104のセキュリティ・テストを実施するための一つのアプローチとして、スキャナー102は、セキュリティ・テストのクローリング・フェイズ中に、動的テイントモジュール110から情報を受信することができる。一例として、動的テイントモジュール110は、AUT104のプログラム実行中にセキュリティ脆弱性を監視するための特殊なランタイム・モジュールである。動的テイントモジュール110は、プログラム・デバッガのような働きをし、所定のプログラム・ポイント(例えば、デバッガにおけるブレーク・ポイントのようなもの)においてプログラムの実行をインターセプトし、セキュリティ・チェックを実施する。動的テイント解析は、まず、信用できないユーザ入力を潜在的テイント(汚染)発生源としてマーキングし、その後、ユーザ入力をトレースし、ユーザ入力からのデータのいずれかが、何らかの危険なファンクション・コールに使用されることがあるか否かを判定することによって、セキュリティ脆弱性を見つけ出す。危険なファンクション・コールの例としては、直接的データベース・クエリ(例えば、直接的SQL(直接的Structured Query Language)クエリ)、ファイル・オープン、ファイル削除、ハイパーテキスト・マークアップ・ランゲージ応答ストリームへの書き込み関数、シェルコマンドの実行、直接的XML(Extensible Markup Language)クエリ、エラーメッセージをログファイルに書き込むための関数、直接的ユーザ・ディレクトリ・クエリなどが挙げられる。特殊なライブラリを使用してAUT104をコンパイルすることにより、又は、AUT104のバイナリ・コードを直接編集又は修正することにより、動的テイントモジュール110をアプリケーションに追加することができる。
テスト中に、スキャナー102は、動的テイントモジュール110を作動120させるためのメッセージを送信することができる。AUT104は、メッセージを受信すると、動的テイントモジュール110が存在するか否かを判定する。動的テイントモジュール110が存在する場合、スキャナー102は、動的テイントモジュール110を有効化するためのメッセージを送信することができ、及び/又は、AUT104は、スキャナーの以前のメッセージに基づいて、動的テイントモジュール110を有効化することができる。
その後、スキャナー102は、クローリング・フェイズ122を実施することができる。スキャナー120は、例えばウェブサイト・インタフェースを介して、AUT104をクローリングする。動的テイント解析は、クローリングを行いながら、実施される。スキャナー102がアプリケーションをクローリングするとき、スキャナー102は、1以上のエントリポイント(例えば、入力フィールド)に1以上の回数だけアクセスすることができる。テスト中、スキャナー102は、AUT140が入力を受け付けるURLを見つけ出すために、HTTP要求を生成し、HTTP応答を評価し、又はHTTP応答が無いことを評価することにより、AUT104を調査することができる。一部の例において、スキャナー102は、エンドユーザにより提供された事前記録されたウェブ・プロセス・フローにしたがって、又は、攻撃対象領域を自動発見するためにAUTにインストールされた他のランタイム・モジュールを使用して、AUT104の攻撃対象領域を取得する場合がある。個々のエントリポイントへのアクセスは、動的テイント解析開始のトリガとされる場合がある。
動的テイントモジュール110は、クローリング・フェイズ122に応答して、例えばクローリング・フェイズ122の最後に、レポート124をスキャナー102に提供することができる。レポートは、クローリング・フェイズ122中に検出された潜在的脆弱性のリストを含む場合がある。
一部の例において、クローリング、及びレポーティング124は、反復的に、又はインクリメンタルに実施される場合がある。例えば、レポートは、クローリング・フェイズ122の一部の間に受信される場合がある。したがって、レポートは、複数の断片に分割される場合があり、例えば、ウェブ・アプリケーションにおいては、ウェブサイトのクローリングされた各ページについて1つのレポートが送信される場合がある。さらに、他の例として、レポートは、ウェブサイト全体のクローリング・フェイズの最後に送信される場合がある。
その後、スキャナー102は、AUT104の動的テイントモジュール110を停止126させ、又は無効化するためのメッセージを送信することができる。一部の例において、動的テイントモジュール110は、完全に無効化される代わりに、部分的に無効化される場合がある。例えば、スキャナー102は、動的テイントモジュール110に、スキャナー102がデータを収集することを望んでいる対象の攻撃ベクトルについてのテイント発生源以外のテイント発生源の各々を無効化させる場合がある。動的テイントモジュール110を無効化することにより、スキャナー102は、動的テイントモジュール110の余分なコードを実行することなく、AUT104を攻撃することが可能になる。また、余分なコードが実行されないため、テストが完了するまでの時間も、短縮することができる。
128において、スキャナー102は、レポートから得られた情報にしたがって、AUT104のためのスキャン戦略を調節し、及び/又は生成する。これは、スキャン・ポリシーに基づいて実施される場合がある。一例として、スキャナー102は、動的テイントモジュール110によって事前選別された潜在的脆弱性に関連する攻撃を加えるための戦略を生成する。したがって、他のテストがフィルタリング(除外)されるため、テストの全体的時間を短縮することができる。他の例では、レポート124中の脆弱性候補のリストに、攻撃戦略上、高い優先順位が与えられ、それによって、より頻繁に発生する脆弱性ほど、攻撃の際に早い時期に現れるように優先順位が与えられる場合がある。特定の幾つかの例では、調節128は、例えば、部分的レポートを受信しながら、動的に、又はインクリメンタルに行われる場合がある。
130において、スキャナー102は、攻撃戦略にしたがってAUT104を攻撃する。上記のように、攻撃戦略は、レポート中の脆弱性のリストに関連する場合があり、又は、レポート中の脆弱性のリストに基づいて優先順位付けされる場合がある。そのため、攻撃130から、意味の無い、又は不可能な攻撃をフィルタリング(除外)することができ、したがって、セキュリティ・スキャン全体に要する時間の量を減らすことができる。
図2A、及び図2Bは、種々の例による、動的テイントモジュールにより生成された脆弱性リストに基づいてアプリケーションを攻撃することが可能なアプリケーション・セキュリティ・スキャナーのブロック図である。アプリケーション・セキュリティ・スキャナー200a、200bは、動的テイントモジュールにより生成された脆弱性リストに基づいてアプリケーションを攻撃するのに利用することが可能な種々のコンポーネントを含む。個々のスキャナー200a、200bは、ノートブック・コンピュータ、デスクトップ・コンピュータ、サーバ、ワークステーション、又は、検査対象アプリケーションにアクセスすることができ、及びテストを実行することが可能な任意の他の計算装置であってもよい。一例として、アプリケーション・セキュリティ・スキャナー200aは、通信モジュール210、クローラー212、及び調節モジュール214を含む場合がある。他の例として、アプリケーション・セキュリティ・スキャナー200bは、攻撃モジュール216、プロセッサ230、メモリ232、及び/又は、入力装置240及び/又は出力装置242を使用することができる入出力インタフェース234をさらに含む。
通信モジュール210は、例えば検査対象アプリケーションを含む装置のような他の装置と通信するために使用される場合がある。検査対象アプリケーションは、動的テイントモジュールをさらに含む場合がある。特定の幾つかの例において、通信モジュール210は、具体的に動的テイントモジュールと通信するように構成される場合がある。一部の例において、通信モジュール210は、例えば無線ネットワーク・インタフェースや有線ネットワーク・インタフェースのようなネットワーク・インタフェースを介して、インターネットを介して、イントラネットを介して、又は直接接続を介して、検査対象アプリケーションを有するサーバ等と通信する場合がある。特定の幾つかの例において、通信モジュール210は、ネットワーク上の他の装置に接続される場合がある。
アプリケーション・セキュリティ・スキャナー200は、通信モジュール210を介して、検査対象アプリケーション(AUT)の動的テイントモジュールを作動させるためのメッセージをAUTに送信することができる。したがって、アプリケーション・セキュリティ・スキャナー200は、セキュリティ・テストのクローリング・フェイズに備えて、AUTに関連する動的テイントモジュールに、動的テイントモジュールを開始させることができる。一例において、動的テイントモジュールを開始することは、アプリケーション・セキュリティ・スキャナー200を補助するために、動的テイントモジュールの機能を有効化することを意味する。セキュリティ・テストは、アプリケーション・セキュリティ・スキャナー200によってコーディネートされる場合がある。
クローラー212は、AUTにアクセスするために使用される場合がある。一例として、クローラーは、クローリング・フェイズ中に、AUTの種々の攻撃エントリポイントを取得することができる。後で詳しく説明するように、動的テイントモジュールを作動させることができると、動的テイントモジュールは、潜在的セキュリティ脆弱性に関する情報を提供する1つのレポート又は複数のレポートを生成することができる。例えば、レポートは、クローリング・フェイズ中に動的テイントモジュールにより決定されたAUTの1以上の潜在的脆弱性の脆弱性候補リストを含む場合がある。
その後、アプリケーション・セキュリティ・スキャナー200は、動的テイントモジュールの制限を生成することができる。一例として、動的テイントモジュールの制限を生成することは、機能を無効化することを意味する場合がある。一部の例では、機能の一部を無効化する場合がある。特定の幾つかの例において、クローリング・フェイズは、動的テイントモジュールが開始されたときに開始され、動的テイントモジュールが制限されたときに終了する場合がある。他の例として、クローリング・フェイズは、アプリケーション・セキュリティ・スキャナー200が他のエントリポイントを探している限り、継続される場合がある。
調節モジュール214は、レポートに基づいてスキャン戦略を生成することができる。一例として、スキャン戦略の生成は、脆弱性候補リストに基づいて、そのAUTのための別のスキャン戦略を修正することを含む場合がある。例えば、スキャン戦略は、攻撃モジュール216により実施される攻撃の際に、脆弱性候補に優先順位を付けることによって決定される場合がある。優先順位を下げられる攻撃は、他のスキャン戦略からの残りであってもよい。別の例として、調節モジュール214は、脆弱性候補リストに重点を置いて攻撃を決定することにより、スキャン戦略を決定する場合がある。例えば、攻撃は、各攻撃エントリポイントについて、個々のエントリポイントについて動的テイントモジュールにより記録されたアクセス可能な潜在的脆弱性に基づいて、決定される場合がある。したがって、攻撃エントリポイントへの攻撃は、動的テイントモジュールにより決定された脆弱性候補に基づいて、フィルタリングされる場合がある。
攻撃モジュール216は、攻撃戦略に基づいて、AUTに対する攻撃を実施することができる。一部の例において、攻撃モジュール216は、1以上の通信モジュール210を使用して、攻撃を実施する。
一例として、動的テイントモジュール、及び/又はAUTは、アプリケーション・セキュリティ・スキャナー200からメッセージを受信する場合がある。動的テイントモジュールは、メッセージに応答して開始される場合がある。また、動的テイントモジュールは、クローリング・フェイズ中にレポートを生成することができる。レポートは、動的テイント解析により決定された脆弱性候補のリストを含む場合がある。レポートは、アプリケーション・セキュリティ・スキャナー200に送信される場合がある。アプリケーション・セキュリティ・スキャナー200は、メッセージを受信すると、動的テイントモジュールの少なくとも一部を無効化するために第2のメッセージを送信する場合がある。動的テイントモジュールは、第2のメッセージを受信すると、動的テイントモジュール、及び/又は動的テイントモジュールの一部を無効化する。動的テイントモジュールを無効化することは、例えば、アプリケーション・セキュリティ・スキャナー200によって使用されることになる特定の攻撃ベクトルに関連することがある動的テイント解析を有効化すると同時に、かかる攻撃ベクトルに無関係な部分を制限又は無効化することを含む場合がある。攻撃ベクトルが変化するのに応じて、動的テイントモジュールの他の部分を無効化するために、メッセージが送受信される場合がある。
上で述べたように、動的テイントモジュールは、クローリング・フェイズ中にAUTのプログラム実行をインターセプトし、信用できない1以上のユーザ入力をテイント発生源としてマーキングすることにより、セキュリティ脆弱性候補を決定する。種々のユーザ入力に対するトレースを実施し、個々のユーザ入力が危険なファンクション・コールの原因となるか否かを判定する。上記のように、危険なファンクション・コールは、直接的データベース・クエリ、ファイル・オープン、ファイル削除、及び、ハイパーテキスト・マークアップ・ランゲージ応答ストリームへの書き込み関数のうちの少なくとも1つを含む場合がある。また、脆弱性の例としては、SQLインジェクション(例えば、直接的データベース・クエリ)、パス操作(例えば、ファイル・オープン、ファイル削除など)、クロスサイト・スクリプティング(例えば、HTML応答ストリームへの書き込み関数)、コマンド・インジェクション(例えば、シェルコマンドの実行)、Xパス・インジェクション(例えば、直接的XMLクエリ)、ログ偽造(例えば、ログファイルにエラーメッセージを書き込むための関数)、及び、ライトウェイト・ディレクトリ・アクセス・プロトコル(LDAP)インジェクション(例えば、直接的ユーザ・ディレクトリ・クエリ)が挙げられる。
種々の命令の読み出し及び実行に適した中央演算処理装置(CPU)のようなプロセッサ230若しくはマイクロプロセッサ、及び/又は電子回路は、本明細書に記載されるモジュール210、214、216、又はクローラーのうちのいずれの機能を実施するようにも構成される場合がある。一部の状況において、種々の命令、及び/又は、スキャン戦略、レポート若しくは脆弱性候補リストのような他の情報は、メモリ232又は他のメモリに含まれる場合がある。アプリケーション・セキュリティ・スキャナー200bにより、入出力インタフェース234がさらに提供される場合がある。例えば、キーボード、センサー、タッチ・インタフェース、マウス、マイクロフォン等のような入力装置240を使用して、アプリケーション・セキュリティ・スキャナー200bを取り巻く環境から入力を受け取る場合がある。また、表示装置のような出力装置142を使用して、情報をユーザに提示する場合がある。出力装置の例としては、スピーカー、表示装置、アンプなどが挙げられる。さらに、特定の幾つかの実施形態において、一部のコンポーネントは、本明細書に記載される他の機能を実施するために使用される場合がある。
モジュール210、214、216、及び/又はクローラー212の各々は、例えば、本明細書に記載される機能を実現するための電子回路を含むハードウェアを含む場合がある。追加又は代替として、各モジュール210、214、216、及び/又はクローラー212は、計算装置の機械読取可能な記憶媒体上にエンコードされた一連の命令として実施され、プロセッサ230により実行可能である場合がある。なお、一部の実施形態では、一部のモジュールがハードウェア・デバイスとして実施され、他のモジュールが実行可能命令として実施される場合がある。
図3は、一例による、検査対象アプリケーションのウェブ・アプリケーション・インタフェースを示す図である。この例示的図は、スキャナーとのインタフェースとして、AUTにより提供されることがあるウェブページ300を示している。クローリング・フェイズ中に、スキャナーは、ユーザ入力を受け取るエントリポイントを、このページから決定することができる。クローリング・フェイズ中に、動的テイントモジュールは、AUTの所与のページの各入力フィールドについて、事前選別された脆弱性を決定することができる。動的テイントモジュールは、例えば、ウェブページ300上の使用可能なフィールドに基づいて、表1の脆弱性候補リストを決定することができる。
Figure 0005982575
ウェブページ300は、ユーザ名302、パスワード304、位置検索306、ウェブサイト検索308、並びに、追加コンテンツ310について、入力フィールドを有する場合がある。ユーザ名302、及びパスワード304は、ログインのタイプに使用されることができ、位置検索306は、ATM位置のような対象又はサービスの位置を検索(Find)するために使用される場合があり、ウェブサイト検索308は、アプリケーションのウェブページを検索(Search)するために使用される場合がある。一例として、脆弱性は、信用できないユーザ入力を汚染されたもの(Taited)としてそれらのフィールドにマーキングし、その後、呼び出すことが出来る関数をトレースすることにより、動的テイントモジュールによって決定される場合がある。この例では、ユーザ名302フィールドが、SQLインジェクション攻撃、及び/又はLDAPインジェクション攻撃に対して脆弱な場合がある。位置検索306フィールドは、SQLインジェクション攻撃に対する脆弱性に関連する一方、ウェブサイト検索308は、クロスサイト・スクリプティング攻撃に対して脆弱性を有する場合がある。動的テイントモジュールは、脆弱性候補リストを含むレポートを作成し、それをスキャナーに送信することができる。その後、スキャナーは、例えば脆弱性候補リストに基づいて種々の攻撃をフィルタリングし、及び/又は優先順位付けすることにより、提供された情報に基づいてアプリケーションを攻撃することができる。
図4は、一例による、動的テイントモジュールにより生成された脆弱性リストに基づくスキャン戦略に基づいてアプリケーションを攻撃する方法を示すフロー図である。方法400は、例えば、スキャナー102、アプリケーション・セキュリティ・スキャナー200、又は計算装置500のような適当なコンポーネントを使用して実施される場合がある。また、方法400を実行するためのコンポーネントは、複数の装置に分散して配置される場合がある。方法400は、記憶媒体520のような機械読取可能な記憶媒体上に記憶される種々の実行可能命令の形で実施される場合もあれば、及び/又は、電子回路の形で実施される場合もある。
402において、スキャナーは、検査対象アプリケーションに関連する動的テイントモジュールに、セキュリティ・テストのクローリング・フェイズを開始させる。アプリケーションは、動的テイントモジュールの初期化を行うことができる。初期化は、アプリケーションに動的テイントモジュールが含まれているか否かを判定し、動的テイントモジュールの1以上の機能を作動させることを含む場合がある。また、初期化は、1以上の変数又は設定を所定の値に設定することを含む場合がある。スキャナーは、アプリケーションのクローリングを行わせることができる。クローリング・フェイズ中に、動的テイントモジュールは、スキャナーにより発見された種々の入力に対する解析を実施する。上記のように、この解析は、脆弱性候補のリストを含むレポートを生成する場合がある。アプリケーション、及び/又は動的テイントモジュールは、レポートをスキャナーに送信することができる。
404において、スキャナーは、動的テイントモジュール、及び/又はアプリケーションから、レポートを受信する。レポートは、脆弱性候補リストを含む場合がある。その後、406において、スキャナーは、動的テイントモジュールの制限を生成する。一例として、この制限は、アプリケーション及び/又は動的テイントモジュールにメッセージを送信することにより生成される場合がある。
408において、スキャナーは、レポートの脆弱性候補リストに基づいて、スキャン戦略を生成することができる。スキャン戦略は、例えば、事前に作成されたデフォルトのスキャン戦略、又は動的に作成されるスキャン戦略のような、他のスキャン戦略にもさらに基づく場合がある。一例として、スキャン戦略は、アプリケーションに対する攻撃の際に、脆弱性候補リストを優先順位付けすることを含む。他の例として、攻撃戦略は、脆弱性候補リスト上の脆弱性に関連する攻撃からなる場合がある。他の例において、攻撃戦略は、脆弱性に関連する攻撃を含む場合がある。410において、スキャナーは、検査対象アプリケーションに対し、攻撃戦略を実施することができる。
上記アプローチによれば、セキュリティ脆弱性調査結果を失うことなく、アプリケーションのスキャン時間を短縮することができる。また、一部の状況において、動的テイントモジュールをアプリケーション・セキュリティ・スキャナーに組み込むことは、スキャナーが、持続型クロスサイト・スクリプティング(PXSS)又はブラインドSQLインジェクションのようなスキャナー単体で検出することができない、又はスキャナー単体で検出することが難しいセキュリティ脆弱性を発見するのに役立つ場合がある。一部の例において、脆弱性候補は、脆弱性としてリストアップされる場合がある。例えば、動的テイントモジュールは、ある脆弱性を脆弱性候補として報告する代わりに、動的テイントモジュールにより報告されたPXSS又はブラインドSQLインジェクションを、脆弱性として直接マーキングする場合がある。また、スキャナーは、脆弱性候補リスト上のそのような脆弱性を、脆弱性として読み出すことができる。
図5は、一例による、脆弱性リストに基づいてウェブ・アプリケーションに対する攻撃を生成することが可能な計算装置を示すブロック図である。計算装置500は、例えば、プロセッサ510と、脆弱性候補リストに基づいてウェブ・アプリケーションに対する攻撃を生成するための命令522、524、526を含む機械読取可能な記憶媒体520とを含む。計算装置500は、例えば、ノートブック・コンピュータ、サーバ、ワークステーション、デスクトップ・コンピュータ、又は、任意の他の計算装置を含む場合がある。
プロセッサ510は、機械読取可能な記憶媒体520に記憶された種々の命令の読み出し及び実行に適した少なくとも1つの中央演算処理装置(CPU)、少なくとも1つの半導体ベースのマイクロプロセッサ、少なくとも1つのグラフィックス処理ユニット(GPU)、他のハードウェア・デバイス、又はそれらの組み合わせであってもよい。例えば、プロセッサ510は、1つのチップ上に複数のコアを含む場合もあれば、複数のチップにわたって複数のコアを含む場合もあれば、複数の装置にわたって複数のコアを含む場合もあれば(例えば、計算装置500が複数のノード・デバイスを含む場合)、又はそれらの組み合わせを含む場合もある。プロセッサ510は、方法400を実施するために、命令522、524、526をフェッチし、デコードし、実行することができる。命令を読み出し、実行することの代替又は追加として、プロセッサ510は、命令522、524、526の機能を実施するための多数の電子部品を含む、少なくとも1つの集積回路(IC)、他の制御ロジック、他の電子回路、又はそれらの組み合わせを含む場合がある。
機械読取可能な記憶媒体520は、種々の実行可能命令を格納又は記憶する任意の電子的、磁気的、光学的、又は物理的記憶装置であってよい。したがって、機械読取可能な記憶媒体は、例えば、ランダム・アクセス・メモリ(RAM)、電気的消去可能なプログラマブル・リードオンリー・メモリ(EEPROM)、記憶装置、コンパクト・ディスク・リードオンリー・メモリ(CD−ROM)などであってよい。したがって、機械読取可能な記憶媒体は、持続性のものであってもよい。本明細書に詳しく記載されるように、機械読取可能な記憶媒体520は、方法400を実施するための一連の実行可能命令によりエンコードされる場合がある。一部の例では、検査対象アプリケーションを実施するために、別の計算装置が使用される場合がある。
通信命令522は、通信ハードウェアを制御してメッセージを送信することにより、アプリケーション530に関連する動的テイントモジュールに、セキュリティ・テストのクローリング・フェイズを開始させるために、使用される場合がある。上記のように、動的テイントモジュールは、スキャンのための攻撃戦略を生成するために使用される場合がある脆弱性候補のリストを生成することができる。クローリング・フェイズ中に、計算装置は、アプリケーションの種々の攻撃エントリポイントを取得することができる。
通信命令522はさらに、動的テイントモジュールからレポートを受信するためにも、実行される場合がある。レポートは、脆弱性候補リストを含む。上記のように、脆弱性候補リストは、信用できない1以上のユーザ入力をテイント発生源としてマーキングし、ユーザ入力をトレースし、個々のユーザ入力が危険なファンクション・コールの原因となるか否かを判定することにより決定された攻撃エントリポイントの潜在的脆弱性を含む場合がある。危険なファンクション・コールは、コードの解析に基づいて決定され、及び/又は所定のリストに基づいて決定される場合がある。
その後、計算装置500は、動的テイントモジュールの制限を生成するために、メッセージを生成する。メッセージはアプリケーション530へ送信され、動的テイントモジュールを停止させる。上記のように、この制限は、アプリケーション530、及び/又はアプリケーション530を実行している計算装置に必要とされる実行を制限することによって、セキュリティ・テストを高速化する場合がある。
戦略命令524は、脆弱性候補リストに基づいてスキャン戦略を生成するために実行される場合がある。上記のように、一例として、スキャン戦略によれば、脆弱性候補リストに関連する種々の攻撃を優先順位付けすることができる。また、別の例として、スキャン戦略によれば、脆弱性候補リストに関連しない攻撃をフィルタリング(除去)することができる。いずれのアプローチによっても、個々のスキャン戦略を使用して攻撃命令526を実行することにより、予期される攻撃を計算装置500によって実行することができる。アプリケーションに対する攻撃を制限し、又は優先順位付けすることにより、不可能な攻撃は使用されないことになるため、より短い時間で有効な攻撃という結果を得ることができる。

Claims (15)

  1. 計算システムであって
    アプリケーションに関連する動的テイントモジュールに、通信モジュールを介してセキュリティ・テストのクローリング・フェイズを開始させ、
    前記動的テイントモジュールからレポートを受信し、
    前記動的テイントモジュールの制限を生成し、
    前記レポートに基づいてスキャン戦略を生成するためのアプリケーション・セキュリティ・スキャナー
    を含む計算システム。
  2. 前記アプリケーション・セキュリティ・スキャナーから前記動的テイントモジュールを開始するための第1のメッセージを受信し、
    前記第1のメッセージに応答して、前記動的テイントモジュールを開始し、
    前記クローリング・フェイズ中に前記レポートを生成し、
    前記レポートの前記アプリケーション・セキュリティ・スキャナーへの送信を行い、
    前記動的テイントモジュールを無効化するための第2のメッセージを受信し、
    前記第2のメッセージに基づいて前記動的テイントモジュールの少なくとも一部を無効化するための前記動的テイントモジュール
    をさらに含む、請求項1に記載の計算システム。
  3. 前記動的テイントモジュールは、前記クローリング・フェイズ中に前記アプリケーションのプログラム実行をインターセプトし、信用できない1以上のユーザ入力をテイント発生源としてマーキングし、前記ユーザ入力をトレースし、個々のユーザ入力が危険なファンクション・コールの原因であるか否かを判定することにより、セキュリティ脆弱性候補を決定する、請求項2に記載の計算システム。
  4. 前記危険なファンクション・コールは、直接的データベース・クエリ、ファイル・オープン、ファイル削除、及び、ハイパーテキスト・マークアップ・ランゲージ応答ストリームへの書き込み関数のうちの少なくとも1つを含む、請求項3に記載の計算システム。
  5. 前記開始は、前記アプリケーション・セキュリティ・スキャナーを補助するために、前記動的テイントモジュールの機能を有効化することを意味し、前記動的テイントモジュールの制限を生成することは、前記機能を無効化することを意味する、請求項1〜4の何れか一項に記載の計算システム。
  6. 前記クローリング・フェイズ中に前記アプリケーションの攻撃エントリポイントを取得するためのクローラーをさらに含み、
    前記レポートは、前記クローリング・フェイズ中に前記動的テイントモジュールにより決定された前記アプリケーションの1以上の脆弱性候補の脆弱性候補リストを含む、請求項1〜5の何れか一項に記載の計算システム。
  7. 攻撃モジュールと、
    前記攻撃モジュールにより前記アプリケーションに対して実施される攻撃の際に、前記脆弱性候補リストを優先順位付けすることにより、前記スキャン戦略を決定するための調節モジュールと
    をさらに含む、請求項6に記載の計算システム。
  8. 攻撃モジュールと、
    前記脆弱性候補リストに重点を置いて攻撃を決定することにより、前記スキャン戦略を決定するための調節モジュールと
    をさらに含み、前記攻撃モジュールは、前記スキャン戦略に基づいて前記アプリケーションを攻撃する、請求項6に記載の計算システム。
  9. 種々の命令が記憶された持続性機械読取可能な記憶媒体であって、前記種々の命令は、計算装置の少なくとも1つのプロセッサによって実行されたときに、前記計算装置に、
    アプリケーションに関連する動的テイントモジュールに、セキュリティ・テストのクローリング・フェイズを開始させ、
    前記動的テイントモジュールから脆弱性候補リストを含むレポートを受信させ、
    前記動的テイントモジュールの制限を生成させ、
    前記脆弱性候補リストに基づいてスキャン戦略を生成させるように構成される、持続性機械読取可能な記憶媒体。
  10. 前記脆弱性候補リストは、信用できない1以上のユーザ入力をテイント発生源としてマーキングし、前記ユーザ入力をトレースし、個々のユーザ入力が、危険なファンクション・コールの原因であるか否かを判定することにより決定された脆弱性候補を含む、請求項9に記載の持続性機械読取可能な記憶媒体。
  11. 前記少なくとも1つのプロセッサによって実行されたときに、前記計算装置に、
    前記クローリング・フェイズ中に前記アプリケーションの攻撃エントリポイントを取得させ、
    前記アプリケーションへの攻撃に備えて前記脆弱性候補リストを優先順位付けすることにより、前記スキャン戦略を決定させ、
    前記スキャン戦略に基づいて前記アプリケーションを攻撃させるように構成された命令をさらに含む、請求項9または請求項10に記載の持続性機械読取可能な記憶媒体。
  12. 前記少なくとも1つのプロセッサによって実行されたときに、前記計算装置に、
    前記クローリング・フェイズ中に前記アプリケーションの攻撃エントリポイントを取得させ、
    前記脆弱性候補リストに重点を置いて攻撃を決定することにより、前記スキャン戦略を決定させ、
    前記スキャン戦略に基づいて前記アプリケーションを攻撃させるように構成された命令をさらに含む、請求項9または請求項10に記載の持続性機械読取可能な記憶媒体。
  13. プロセッサを有する計算装置を使用して実施される方法であって、
    前記プロセッサにより、アプリケーションに関連する動的テイントモジュールに、通信モジュールを介してセキュリティ・テストのクローリング・フェイズを開始さ
    前記プロセッサにより、前記動的テイントモジュールから脆弱性候補リストを含むレポートを受信
    前記プロセッサにより、前記動的テイントモジュールの制限を生成
    前記プロセッサにより、前記脆弱性候補リストに基づいてスキャン戦略を生成
    前記プロセッサにより、前記スキャン戦略に基づいて前記アプリケーションを攻撃する
    を含む方法。
  14. 前記攻撃は、前記脆弱性候補リストに基づいて優先順位付けされる、請求項13に記載の方法。
  15. 前記攻撃は、前記脆弱性候補リスト上の脆弱性に関連する攻撃からなる、請求項13に記載の方法。
JP2015529767A 2012-08-29 2012-08-29 動的テイントに基づくセキュリティ・スキャン Active JP5982575B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/052772 WO2014035386A1 (en) 2012-08-29 2012-08-29 Security scan based on dynamic taint

Publications (2)

Publication Number Publication Date
JP2015534155A JP2015534155A (ja) 2015-11-26
JP5982575B2 true JP5982575B2 (ja) 2016-08-31

Family

ID=50184025

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015529767A Active JP5982575B2 (ja) 2012-08-29 2012-08-29 動的テイントに基づくセキュリティ・スキャン

Country Status (7)

Country Link
US (1) US9558355B2 (ja)
EP (1) EP2891100B1 (ja)
JP (1) JP5982575B2 (ja)
KR (1) KR20150048778A (ja)
CN (1) CN104995630B (ja)
BR (1) BR112015004035A2 (ja)
WO (1) WO2014035386A1 (ja)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9317693B2 (en) * 2012-10-22 2016-04-19 Rapid7, Llc Systems and methods for advanced dynamic analysis scanning
EP3100192B1 (en) * 2014-01-27 2018-10-31 Cronus Cyber Technologies Ltd. Automated penetration testing device, method and system
US10515219B2 (en) 2014-07-18 2019-12-24 Micro Focus Llc Determining terms for security test
US9781145B2 (en) 2014-11-25 2017-10-03 International Business Machines Corporation Persistent cross-site scripting vulnerability detection
US10110622B2 (en) 2015-02-13 2018-10-23 Microsoft Technology Licensing, Llc Security scanner
US9998482B2 (en) * 2015-09-18 2018-06-12 International Business Machines Corporation Automated network interface attack response
US9940479B2 (en) * 2015-10-20 2018-04-10 International Business Machines Corporation Identifying and tracking sensitive data
CN105808981B (zh) * 2016-03-10 2018-06-19 西北大学 反污点分析软件保护方法
WO2017160309A1 (en) * 2016-03-18 2017-09-21 Entit Software Llc Assisting a scanning session
US10417441B2 (en) 2016-04-29 2019-09-17 International Business Machines Corporation Effectively validating dynamic database queries through database activity monitoring
CN105827644A (zh) * 2016-05-17 2016-08-03 努比亚技术有限公司 一种实现密码信息处理的方法及终端
US10257220B2 (en) 2017-01-30 2019-04-09 Xm Cyber Ltd. Verifying success of compromising a network node during penetration testing of a networked system
US10068095B1 (en) * 2017-05-15 2018-09-04 XM Cyber Ltd Systems and methods for selecting a termination rule for a penetration testing campaign
US10686822B2 (en) 2017-01-30 2020-06-16 Xm Cyber Ltd. Systems and methods for selecting a lateral movement strategy for a penetration testing campaign
US10122750B2 (en) 2017-01-30 2018-11-06 XM Cyber Ltd Setting-up penetration testing campaigns
EP3560170A4 (en) 2017-01-30 2020-07-29 XM Cyber Ltd. NETWORKED SYSTEM PENETRATION TEST
US10581802B2 (en) 2017-03-16 2020-03-03 Keysight Technologies Singapore (Sales) Pte. Ltd. Methods, systems, and computer readable media for advertising network security capabilities
CN107133180B (zh) * 2017-06-07 2021-03-23 腾讯科技(深圳)有限公司 动态页面的测试方法、测试装置及存储介质
US10534917B2 (en) 2017-06-20 2020-01-14 Xm Cyber Ltd. Testing for risk of macro vulnerability
US10574684B2 (en) 2017-07-09 2020-02-25 Xm Cyber Ltd. Locally detecting phishing weakness
US10783239B2 (en) * 2017-08-01 2020-09-22 Pc Matic, Inc. System, method, and apparatus for computer security
US10412112B2 (en) 2017-08-31 2019-09-10 Xm Cyber Ltd. Time-tagged pre-defined scenarios for penetration testing
US10447721B2 (en) 2017-09-13 2019-10-15 Xm Cyber Ltd. Systems and methods for using multiple lateral movement strategies in penetration testing
WO2019097382A1 (en) 2017-11-15 2019-05-23 Xm Cyber Ltd. Selectively choosing between actual-attack and simulation/evaluation for validating a vulnerability of a network node during execution of a penetration testing campaign
JP6928265B2 (ja) * 2018-04-04 2021-09-01 日本電信電話株式会社 情報処理装置及び情報処理方法
US10440044B1 (en) 2018-04-08 2019-10-08 Xm Cyber Ltd. Identifying communicating network nodes in the same local network
US10382473B1 (en) 2018-09-12 2019-08-13 Xm Cyber Ltd. Systems and methods for determining optimal remediation recommendations in penetration testing
US10469521B1 (en) 2018-11-04 2019-11-05 Xm Cyber Ltd. Using information about exportable data in penetration testing
US10574687B1 (en) 2018-12-13 2020-02-25 Xm Cyber Ltd. Systems and methods for dynamic removal of agents from nodes of penetration testing systems
WO2020161532A1 (en) 2019-02-06 2020-08-13 Xm Cyber Ltd. Taking privilege escalation into account in penetration testing campaigns
US11283827B2 (en) 2019-02-28 2022-03-22 Xm Cyber Ltd. Lateral movement strategy during penetration testing of a networked system
US11206281B2 (en) 2019-05-08 2021-12-21 Xm Cyber Ltd. Validating the use of user credentials in a penetration testing campaign
JP6847460B2 (ja) * 2019-05-27 2021-03-24 可立可資安股▲分▼有限公司 情報セキュリティ攻撃および防御計画を管理するシステム
US11640469B2 (en) 2019-06-21 2023-05-02 Ventech Solutions, Inc. Method and system for cloud-based software security vulnerability diagnostic assessment
US10637883B1 (en) 2019-07-04 2020-04-28 Xm Cyber Ltd. Systems and methods for determining optimal remediation recommendations in penetration testing
US11544385B2 (en) * 2019-07-29 2023-01-03 Ventech Solutions, Inc. Method and system for dynamic testing with diagnostic assessment of software security vulnerability
US10880326B1 (en) 2019-08-01 2020-12-29 Xm Cyber Ltd. Systems and methods for determining an opportunity for node poisoning in a penetration testing campaign, based on actual network traffic
US11533329B2 (en) 2019-09-27 2022-12-20 Keysight Technologies, Inc. Methods, systems and computer readable media for threat simulation and threat mitigation recommendations
US11005878B1 (en) 2019-11-07 2021-05-11 Xm Cyber Ltd. Cooperation between reconnaissance agents in penetration testing campaigns
US11575700B2 (en) 2020-01-27 2023-02-07 Xm Cyber Ltd. Systems and methods for displaying an attack vector available to an attacker of a networked system
US11221855B2 (en) * 2020-03-06 2022-01-11 International Business Machines Corporation Transformation of an enterprise application into a cloud native application
US11582256B2 (en) 2020-04-06 2023-02-14 Xm Cyber Ltd. Determining multiple ways for compromising a network node in a penetration testing campaign
CN111859375B (zh) * 2020-07-20 2023-08-29 百度在线网络技术(北京)有限公司 漏洞检测方法、装置、电子设备及存储介质
CN112199274B (zh) * 2020-09-18 2022-05-03 北京大学 基于V8引擎的JavaScript动态污点跟踪方法及电子装置
CN112256580B (zh) * 2020-10-23 2024-02-13 济南浪潮数据技术有限公司 一种代码扫描方法、装置、设备及存储介质
CN112580060B (zh) * 2021-01-21 2024-06-21 国网新疆电力有限公司信息通信公司 应用系统数据接口漏洞隐患排查系统
CN113220525A (zh) * 2021-04-28 2021-08-06 杭州孝道科技有限公司 一种跨应用的动态污点跟踪方法
US11874932B2 (en) 2021-06-30 2024-01-16 International Business Machines Corporation Managing application security vulnerabilities
CN113886842B (zh) * 2021-12-02 2022-03-08 北京华云安信息技术有限公司 基于测试的动态智能调度方法及装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7624422B2 (en) * 2003-02-14 2009-11-24 Preventsys, Inc. System and method for security information normalization
US20040193918A1 (en) * 2003-03-28 2004-09-30 Kenneth Green Apparatus and method for network vulnerability detection and compliance assessment
US20050273859A1 (en) * 2004-06-04 2005-12-08 Brian Chess Apparatus and method for testing secure software
US20070240225A1 (en) 2006-04-10 2007-10-11 Shrader Theodore J L Architecture for automatic HTTPS boundary identification
US8656495B2 (en) * 2006-11-17 2014-02-18 Hewlett-Packard Development Company, L.P. Web application assessment based on intelligent generation of attack strings
US20080184208A1 (en) * 2007-01-30 2008-07-31 Sreedhar Vugranam C Method and apparatus for detecting vulnerabilities and bugs in software applications
US8613080B2 (en) 2007-02-16 2013-12-17 Veracode, Inc. Assessment and analysis of software security flaws in virtual machines
US9069967B2 (en) 2007-02-16 2015-06-30 Veracode, Inc. Assessment and analysis of software security flaws
US8321840B2 (en) 2007-12-27 2012-11-27 Intel Corporation Software flow tracking using multiple threads
US8650651B2 (en) 2008-02-08 2014-02-11 International Business Machines Corporation Method and apparatus for security assessment of a computing platform
US20090282480A1 (en) 2008-05-08 2009-11-12 Edward Lee Apparatus and Method for Monitoring Program Invariants to Identify Security Anomalies
US8713687B2 (en) * 2008-12-17 2014-04-29 Symantec Corporation Methods and systems for enabling community-tested security features for legacy applications
US8141158B2 (en) * 2008-12-31 2012-03-20 International Business Machines Corporation Measuring coverage of application inputs for advanced web application security testing
US8365290B2 (en) * 2009-05-15 2013-01-29 Frederick Young Web application vulnerability scanner
CN101616151B (zh) * 2009-07-31 2012-11-07 中国科学院软件研究所 一种自动化的网络攻击特征生成方法
US8584246B2 (en) * 2009-10-13 2013-11-12 International Business Machines Corporation Eliminating false reports of security vulnerabilities when testing computer software
CN102081719B (zh) 2009-12-01 2015-05-20 南京翰海源信息技术有限公司 基于动态污染传播的软件安全测试系统及方法
US8615804B2 (en) * 2010-02-18 2013-12-24 Polytechnic Institute Of New York University Complementary character encoding for preventing input injection in web applications
US9747187B2 (en) * 2010-10-27 2017-08-29 International Business Machines Corporation Simulating black box test results using information from white box testing
CN102104601B (zh) * 2011-01-14 2013-06-12 无锡市同威科技有限公司 一种基于渗透技术的web漏洞扫描方法和漏洞扫描器
CA2777434C (en) * 2012-05-18 2019-09-10 Ibm Canada Limited - Ibm Canada Limitee Verifying application security vulnerabilities

Also Published As

Publication number Publication date
CN104995630B (zh) 2018-10-12
EP2891100A1 (en) 2015-07-08
US9558355B2 (en) 2017-01-31
WO2014035386A1 (en) 2014-03-06
CN104995630A (zh) 2015-10-21
EP2891100A4 (en) 2016-03-16
JP2015534155A (ja) 2015-11-26
KR20150048778A (ko) 2015-05-07
US20150248559A1 (en) 2015-09-03
EP2891100B1 (en) 2017-05-24
BR112015004035A2 (pt) 2017-07-04

Similar Documents

Publication Publication Date Title
JP5982575B2 (ja) 動的テイントに基づくセキュリティ・スキャン
KR101745052B1 (ko) 자동화된 보안 테스팅
Dahse et al. Simulation of Built-in PHP Features for Precise Static Code Analysis.
US9268945B2 (en) Detection of vulnerabilities in computer systems
US9152795B2 (en) Security vulnerability correction
US10587641B2 (en) Point-wise protection of application using runtime agent and dynamic security analysis
US8375423B2 (en) Authenticating a source of a scripted code
Almorsy et al. Supporting automated vulnerability analysis using formalized vulnerability signatures
JP2008135029A (ja) 攻撃文字列(attackstrings)の知的生成に基づくウェブアプリケーション評価
WO2018006241A1 (en) Method and apparatus to detect security vulnerabilities in web application
US9953169B2 (en) Modify execution of application under test so user is power user
Li et al. The application of fuzzing in web software security vulnerabilities test
Wang et al. A new cross-site scripting detection mechanism integrated with HTML5 and CORS properties by using browser extensions
Kim et al. {FuzzOrigin}: Detecting {UXSS} vulnerabilities in browsers through origin fuzzing
Goßen et al. Design and implementation of a stealthy OpenWPM web scraper
US10650148B2 (en) Determine protective measure for data that meets criteria
Wagner et al. A security analysis of the Combex DarpaBrowser architecture
US10515219B2 (en) Determining terms for security test
Sulthana Controlling vulnerabilities in open-source libraries through different tools and techniques
Aulakh Intrusion detection and prevention system: Cgi attacks
CN112861125A (zh) 基于开放平台的安全检测方法、装置、设备和存储介质
KOLÁČEK AUTOMATED WEB APPLICATION VULNERABILITY DETECTION
Namratha et al. Identifying Distributed Dos Attacks in Multitier Web Applications
Pereira Test-As-a-Service Application to Security Testing
Weissbacher Hardening Web Applications against CSV Attacks

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160329

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160629

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160801

R150 Certificate of patent or registration of utility model

Ref document number: 5982575

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250