JP7460582B2 - 学習装置、学習方法、学習プログラム、及び脆弱性テスト装置 - Google Patents
学習装置、学習方法、学習プログラム、及び脆弱性テスト装置 Download PDFInfo
- Publication number
- JP7460582B2 JP7460582B2 JP2021133027A JP2021133027A JP7460582B2 JP 7460582 B2 JP7460582 B2 JP 7460582B2 JP 2021133027 A JP2021133027 A JP 2021133027A JP 2021133027 A JP2021133027 A JP 2021133027A JP 7460582 B2 JP7460582 B2 JP 7460582B2
- Authority
- JP
- Japan
- Prior art keywords
- test
- string
- state
- unit
- character string
- 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
Links
- 238000012360 testing method Methods 0.000 title claims description 291
- 238000000034 method Methods 0.000 title claims description 50
- 230000009471 action Effects 0.000 claims description 87
- 230000008569 process Effects 0.000 claims description 37
- 239000000470 constituent Substances 0.000 claims description 35
- 230000002787 reinforcement Effects 0.000 claims description 35
- 230000006399 behavior Effects 0.000 claims description 17
- 238000004422 calculation algorithm Methods 0.000 claims description 16
- 230000004044 response Effects 0.000 claims description 15
- 230000007704 transition Effects 0.000 claims description 8
- 230000010365 information processing Effects 0.000 claims description 5
- 230000000875 corresponding effect Effects 0.000 claims 8
- 238000013515 script Methods 0.000 description 27
- 238000012545 processing Methods 0.000 description 23
- 230000006870 function Effects 0.000 description 22
- 238000011012 sanitization Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000001186 cumulative effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 206010048669 Terminal state Diseases 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000006735 deficit Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000012812 general test Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000011514 reflex Effects 0.000 description 1
Images
Description
図1の例では、テスト装置1と、Webサーバ2と、ユーザコンピュータ3とがネットワーク4を介して相互に通信可能に接続されている。Webサーバ2は、通信機能を備えた一般的なコンピュータの構成を備え、ユーザコンピュータ3からのリクエストに応じて情報や機能を提供するための、Webページデータを作成するソフトウェアが実装されている。ユーザコンピュータ3は、Webサーバ2と同じく通信機能を備えた一般的なコンピュータの構成を備え、Webサーバ2にリクエストを送信し、そのリクエストに対応する情報や機能を受領する。ユーザコンピュータ3には、受信したWebページデータを解釈して出力する機能を有するWebブラウザソフトウェアが実装される。Webブラウザでユーザコンピュータ3のディスプレイに描画されるWebページの集合が、いわゆるWebサイトである。
ここでは、マークアップ言語で記述される文字列のうち、構文解析上意味を持つ最小単位(構成単位)の文字列をトークンと呼ぶこととする。またトークン化された文字列が、マークアップ言語の構文解析において対応する状態を、トークン状態と呼ぶこととする。
制御部10は、テスト装置1の全体を制御する部分であり、記憶部20に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態におけるテスト装置1の各機能を実現する。制御部10は、CPU等のプロセッサであってよい。
学習部11は、強化学習アルゴリズムのエージェントを用いて、テスト文字列の状態と、ある行動を選択、実行することにより遷移したテスト文字列の状態、及びその状態により定まる報酬とに基づいて、反射型XSSのテスト文字列を構成するための最適な行動を学習する。学習部11は、既知の反射型XSSにおけるテスト文字列を複数のセクションに分解して扱い、強化学習アルゴリズムにおける状態、行動、及び報酬を以下のように設定する。
状態については、テスト文字列の文法構造、例えばマークアップ言語の仕様に基づくテスト文字列の構成単位の状態、またはそれをもとに独自に定義された状態などを用いて設定される。この状態についてはさらに、エージェントの行動に対する報酬を設定する際に使用される状態種別が定義され、状態種別により各状態は分類される。具体的には、テスト文字列の状態が、テスト文字列に含まれている実行型の構成単位が実行可能な状態からどれくらい離れているかに基づいて、状態種別が定義される。行動については、まず、テスト文字列の各前記セクションについて、1つのセクション又は複数のセクションの組に対してその文字列を他の文字列で置き換える操作を行動種別として設定する。行動は、各行動種別と、各行動種別に該当するセクションに関して実際に置き換えられる文字列又は変換操作の組み合わせとして設定される。報酬については、前記状態種別に基づいて、いずれかの前記行動を通じて遷移したテスト文字列の状態が、含まれる実行型の構成単位が実行可能な状態からどのくらい離れているかに応じて、複数の対応する値を設定する。なお、状態、行動、及び報酬の詳細については、後述する。
なお、本実施形態のテスト装置1は、自動的に、かつ効率的にテスト文字列を生成するための方策を強化学習のプロセスによって求める学習フェーズを実行する学習装置と、前記学習装置によって求められた方策に従って学習済みのエージェントにより自動的に、かつ効率的にテスト文字列を生成してそれを用いたWebサイトの脆弱性テストを実行するテスト実行装置とに区分して構成することもできる。
知られているように、強化学習は、ある環境に置かれたエージェントが環境の状態を観測し、行動を選択することで、得られる報酬の合計を最大化するような方策を求めるアルゴリズムである。強化学習のアルゴリズムについては、例えば、C. Szepesvari, “Algorithms for Reinforcement Learning,” https://sites.ualberta.ca
/~szepesva/papers/RLAlgsInMDPs.pdfに記載されている。
強化学習では、マルコフ決定過程を仮定する。マルコフ決定過程は、離散時間における確率制御過程である。その過程は、各時刻においてある状態を取り、意思決定者はその状態において利用可能な行動を任意に選択する。行動選択により過程はランダムに新しい状態へと遷移し、その際に意思決定者は状態遷移に対応した報酬を受け取る。本実施形態では、テスト文字列中において、ペイロードが配置されている位置が状態として観測される。行動は、そのテスト文字列に含まれるトークン(構成単位)の文字列を他の文字列によって上書きする操作として定義される。また報酬は、ある状態にあるテスト文字列に対してランダムに選択された行動を実行した結果として観測されるテスト文字列の遷移後の状態に応じて決定される。なお、ペイロードは一般的に、「実行型の構成単位」と定義することもできる。
マルコフ決定過程は、4つの要素の組、(S,A,T,r)で表される。ただし、Sは状態空間、Aは行動空間、Tは状態遷移確率関数T:S×A×S→[0,1]、rは即時報酬関数r:S×A→Rである。ある状態s∈Sにおいてエージェントが出力する行動の確率分布π(・|s)を方策と呼ぶ。時刻tに受け取る報酬をrtとすると、強化学習アルゴリズムでは、数式(1)で表される割引累積報酬の期待値を最大化することで、テスト文字列を自動的に、かつ効率的に生成するための最適な方策πを求めることができる。
…(1)
ただし、γtは累積報酬が発散しないように設定される、時刻tにおける割引率である。
また、強化学習においては、エージェントがある行動を実行することをステップという単位で表し、ある過程が終端状態に到達するまでの一連のステップをエピソードと呼ぶ。
(1)状態
本実施形態による強化学習において環境が取り得る状態は、テスト文字列中でペイロードが現れる位置を表す。すなわち、本実施形態においての状態は、マークアップ言語の仕様(例えば、”HTML Living Standard”, https://html.spec.whatwg.org/を参照されたい。)に基づくトークン状態、又はそのトークン状態をもとに独自に定義された状態である。あるいは、状態は、マークアップ言語内に記述可能な他の言語(例えばスクリプト、スタイルシート等)におけるトークン状態、又はそのトークン状態をもとに独自に定義された状態であってもよい。
なお、状態の種別は、テスト文字列に含まれるペイロードを実行可能とする状態から文法上どのくらい離れているかを区分できるものであれば、上記に限らず設定可能である。例えば、第3種別を、エージェントが2つの行動を実行すれば第1種別に遷移可能な状態と、それ以外の状態(3つ以上の行動を実行すれば第1種別に遷移可能な状態)に分けてもよい。
次に、本実施形態による強化学習の行動について説明する。
本実施形態ではまず、強化学習の対象となるテスト文字列を、以下の4つのセクションに分割する。
なお、上記はセクションの区分例であり、ペイロードとの位置関係を合理的に区分する他の方法によって、適宜セクションを構成してもよい。
なお、文字列の上書きについては、「第1セクションの文字列を大文字に変換する」、「第1セクションの文字列をパーセントエンコーディングでエンコードする」等、各セクションの文字列を別の表記の文字列に変換する操作を定義することも可能である。
各行動は、上記の行動種別の要素と、セクションに区切られたテスト文字列(以下「セクション文字列」と呼ぶ)の要素との組み合わせとして設定される。
このとき、エージェントの行動は、各セクションに対して行動種別1~4をもとに以下の表6に示すような行動一覧表として設定される。かっこで括られた各組は、行動種別を表す番号と、各セクションを上書きするための文字列とからなる。上書き用文字列には、空文字(“”)を含めている。
いまエージェントがテスト文字列に対して選択する行動として、(3,[パーセントエンコーディングで変換])が選択されたとする。この行動は、表4の行動種別3に該当し、テスト文字列の第2セクションと第4セクションに現在格納されている文字列(「<script>」と「</script>」)に含まれるHTMLの特殊文字「<」、「/」、「>」がパーセントエンコーディングで変換される。その結果、「<script>」と「</script>」はそれぞれ「%3C script %3」、「%3C %2F script %3」となり、変換後のテスト文字列全体としては、「</textarea> %3C script %3E alert(1); %3C %2F script %3E」となる。
前記のように、この操作は、テスト対象のWebサイトに不完全なサニタイジング処理が実装されている場合に有効である。例えば、Webサイトに「scriptタグ(<script>, </script>)を除去する」というサニタイジング処理が実装されていたと仮定した場合、入力文字列「</textarea> <script> alert(1); </script>」からscriptタグが除去される。その結果、Webサイトからのレスポンスとして、「</textarea> alert(1);」が得られる。この場合、ペイロード「alert(1);」はスクリプトとして実行可能な状態とはならない。しかしながら、サニタイジング処理が不完全で、かつURLエンコードされた入力を通常のエンコードに変換する処理が含まれるWebサイトでは、「</textarea> %3C script %3E alert %28 1 %29 %3B %3C %2F script %3E」とサニタイズ処理された入力が「</textarea> <script> alert(1); </script>」としてレスポンスに表示され、ペイロードをスクリプトとして実行可能な状態となる。このように、不完全なサニタイジング処理に起因するXSS脆弱性を検知するために、セクションに配置されている文字列の変換処理が有効となる場合が考えられる。
次に、本実施形態の強化学習における、状態stにおいて行動atを選択した場合の行動atの報酬について説明する。
報酬は、時刻tにおける状態stから行動atによって到達する状態s(t+1)をもとに決定される。
本実施形態では、前記したテスト文字列の状態を表す第1種別~第3種別に対する報酬r(1)、r(2)、r(3)を、それぞれr(1)>0、r(3)<r(2)<0と設定している。この設定は、エージェントが選択する1つの行動の結果、ペイロードが実施可能な第1種別に遷移した場合がもっとも報酬が大きく、第2種別、第3種別と、実施可能な状態から離隔した状態を観測するほど報酬が減少するように決定されている。なお、上記は報酬の設定例であり、状態種別の数等に合わせて報酬も適宜設定することができる。
学習部11によるデータ処理例
図3に本実施形態のテスト装置1における学習部11によるデータ処理例を示すフローチャートを示している。なお、図2に関して述べたように、学習部11の機能は、後述するテスト実行部12から独立した学習装置として実現してもよい。この場合、学習装置の出力は、以下の強化学習アルゴリズムによって求められた方策によって自動的に、かつ効率的にテスト文字列を生成する機能を備えたエージェントである。
図3を参照すると、ステップS100において、学習部11は、入力として、1以上の既知のテスト文字列をセクションに分解して得られる情報であるセクション文字列(例えば表5参照)と、学習フェーズにおける脆弱性検知のテスト対象となる1以上のWebサイト(以下「テストWebサイト」)を受け付ける。ここで、既知のテスト文字列は、例えばインターネット上のGitHubで公開されているオープンソースのテストコード集などから収集して利用することができる。ステップS100では、このようなテスト文字列から前記の表3、表5に関して説明したように、第1セクションから第4セクションまでに分解したセクション文字列を作成して学習部11に入力する。
ステップS120において、学習部11は、テストWebサイトを1つ選択し、現在の学習フェーズにおけるテスト対象に設定する。
ステップS140において、学習部11は、強化学習のエージェントを用いて、行動一覧表からランダムに1の行動aを選択し、実行する。
ステップS150において、学習部11は、行動aにより構成されたテスト文字列を、S120で設定したテストWebサイトに与えてその状態sを観測する。
ステップS160において、学習部11は、状態sが第1種別であるか判定し、第1種別でないと判定した場合(NOの場合)、ステップS130に戻って最大学習時間を経過したか判定する。すなわち、ステップS160において状態sが第1種別でないと判定された場合、学習部11は、ステップS130において最大学習時間が経過したと判定するまで、ステップS140,S150の処理を繰り返すことによりエージェントの強化学習を実行する。ステップS160において、状態sが第1種別であると判定した場合(YESの場合)、学習部11は、ステップS170に移る。
ステップS170において、学習部11は、未処理のWebサイトがあるか判定し、未処理のWebサイトがあると判定した場合(YESの場合)、S120に戻って1のWebサイトを設定する。未処理のWebサイトがないと判定した場合(NOの場合)、学習部11は、学習フェーズのデータ処理を終了する。
このような学習フェーズにより、エージェントは、割引累積報酬の期待値が最大となるように強化学習アルゴリズムを用いて方策を学習することができる。学習済みのエージェント(プログラム)は、テスト装置1の記憶部20に格納しておき、後述のテスト実行部12によって利用される。
次に、以上の学習部11による学習フェーズのデータ処理により強化学習がなされたエージェントを用いて実行される本実施形態によるテストフェーズのデータ処理について説明する。図4に、本実施形態によるテスト装置1のテスト実行部12が実行するテストフェーズのデータ処理例をフローチャートで示している。なお、学習部11と同様に、テスト実行部12は、学習済みエージェントによってテスト文字列を自動生成してWebサイトの脆弱性テストを実行するテスト装置として構成することも可能である。
まずステップS200において、テスト実行部12は、学習フェーズにおいて学習済みのエージェント、1のテスト対象たるテストWebサイト、及び1のテストWebサイトに対して試行するテストの最大試行回数を、入力として受け付ける。ここで受け付けるテストWebサイトは、学習フェーズで利用したWebサイトとは異なる。
ステップS220において、テスト実行部12は、テストWebサイトへのテスト試行回数が最大試行回数に達したか判定し、最大試行回数に達していないと判定した場合(NOの場合)、ステップS230に移る。テストWebサイトへのテスト試行回数が最大試行回数に達したと判定した場合(YESの場合)、ステップS280において、テスト実行部12は、テスト対象のテストWebサイトに脆弱性がないと判定して、データ入出力部13を通じてその旨を適宜の態様で出力して処理を終了する。
ステップS230において、テスト実行部12は、テストWebサイトにペイロード文字列をリクエストとして与え、テストWebサイトからのレスポンスにおけるペイロード文字列の状態を観測する。
ステップS240において、テスト実行部12は、観測した状態が第1種別であるか判定し、第1種別であると判定した場合(YESの場合)、ステップS260において、さらにペイロードが実行されたか判定する。ステップS260においてペイロードが実行されたと判定した場合(YESの場合)、テスト実行部12は、ステップS270において、テスト対象であるテストWebサイトに反射型XSSの脆弱性を検知したと判定し、データ入出力部13を通じてその旨をディスプレイ等の出力デバイス、あるいは外部の端末装置等に、適宜の態様で出力する。
一方、ステップS240において第1種別でないと判定された場合(NOの場合)、テスト実行部12は、ステップS250において学習済みエージェントを用いて次の行動を方策に従って選択、実行させ、ステップS220の処理へ戻り、テストWebサイトへのテスト試行回数が最大試行回数に達したと判定されるまで、ステップS230以降の処理を繰り返す。
以上説明した本実施形態によるテスト実行部のデータ処理によれば、テスト対象のテストWebサイトに対して反射型XSSの脆弱性があるかを判定することができるテスト文字列を自動的に、かつ効率的に生成して与えることができるので、Webサイトが反射型XSS脆弱性を有するか否かの判定について、省力化、効率化を実現することができる。
まずステップS200において、テスト実行部12は、図4の例と同様に、学習フェーズにおいて学習済みのエージェント、1のテスト対象たるテストWebサイト、及び1のテストWebサイトに対して試行するテストの最大試行回数を、入力として受け付ける。
ステップS220において、テスト実行部12は、テストWebサイトへのテスト試行回数が最大試行回数に達したか判定し、最大試行回数に達していないと判定した場合(NOの場合)、ステップS210Aに移る。テストWebサイトへのテスト試行回数が最大試行回数に達したと判定した場合(YESの場合)、図4の場合と同様に、ステップS280において、テスト実行部12は、テスト対象のテストWebサイトに脆弱性がないと判定して、データ入出力部13を通じてその旨を適宜の態様で出力して処理を終了する。
ステップS210Aにおいて、テスト実行部12は、記録されたレスポンスの反射位置にテスト文字列を当てはめるものとして、ステップS210A、ステップS250の処理を最大試行回数の範囲内で実行して第1種別のテスト文字列を得る。この際、テストWebサイトにリクエストが与えられることはないので、テスト実行による対象テストWebサイトへの負荷は大幅に抑制可能となる。
ステップS230において、テスト実行部12は、得られた第1種別のテスト文字列をテストWebサイトに対してリクエストとして与え、ステップS260においてペイロードが実行されたか否かを判定する。以降のデータ処理は、先に説明した図4の基本構成の場合と同様である。
このようにすれば、テスト対象のテストWebサイトにテスト文字列をリクエストとして与えることなく、実行可能な状態のテスト文字列を得ることができる。
このようにすれば、テスト文字列の生成に関する強化学習アルゴリズムの最適化を図ることができる。
このようにすれば、例えばWebサイトにおける不完全なサニタイジング処理に起因する脆弱性を検知することができる。
このようにすれば、テスト文字列をその構成単位に分解する処理が明確かつ簡易なものとなる。
10 制御部
11 学習部
12 テスト実行部
13 データ入出力部
20 記憶部
Claims (9)
- Webサイトの脆弱性テストに利用される既知のテスト文字列を受け付け、
前記テスト文字列を、当該テスト文字列を構成している構成単位に基づいて複数のセクションに分解し、
前記テスト文字列の文法構造に基づいて当該テスト文字列について複数の状態を設定するとともに、当該複数の状態について、実行型の構成単位が実行可能である状態を基準として文法構造上どれだけ離れているかに基づいて複数の状態種別を設定し、
各前記セクションについて、1のセクション又は複数のセクションの組に対応している前記構成単位にある文字列を、他の文字列で置き換える操作としての行動種別を設定し、当該行動種別とそれに該当する前記セクションに関して前記文字列を置き換える操作との組み合わせとして行動を設定し、
前記状態種別に基づいて、前記テスト文字列に対していずれかの前記行動を実行することによって遷移した前記テスト文字列の状態が、実行型の構成単位が実行可能である状態からどれだけ離れているかに応じて報酬の値を設定し、
強化学習アルゴリズムのエージェントを用いて、いずれかの前記行動を実行した前記テスト文字列を所定のWebサイトに与え、その状態を観測して前記報酬を受け取る処理を繰り返すことにより、反射型クロスサイトスクリプティング脆弱性を検知するためのテスト文字列を構成するのに適した方策を学習するように構成されている学習部を
備えている学習装置。 - 前記セクションが、前記テスト文字列における、先頭の構成単位、実行型の構成単位、実行型の構成単位の直前、直後の構成単位の4つの部分を含み、
前記行動として、前記テスト文字列に含まれているすべての構成単位を用いて、前記テスト文字列における前記4つの部分に対応する構成単位の文字列を置き換える4種の行動が設定され、
前記4種の行動のいずれかをランダムに選択して前記テスト文字列に適用して得られた文字列を前記所定のWebサイトに与えてその状態を観測し、前記実行型の構成単位が実行されうる状態に到達するための前記行動の適用回数が多いほど前記エージェントに与えられる報酬が小となるように設定されている、請求項1に記載の学習装置。 - 前記行動が、各前記構成単位の文字列の表記を他の表記に変換する操作を含む、
請求項1又は2に記載の学習装置。 - 前記文字列の前記構成単位は、ハイパーテキストマークアップ言語(HTML)における文法構造上の構成単位である、請求項1から3までのいずれか一項に記載の学習装置。
- 情報処理装置が、
Webサイトの脆弱性テストに利用される既知のテスト文字列を受け付け、
前記テスト文字列を、当該テスト文字列を構成している構成単位に基づいて複数のセクションに分解し、
前記テスト文字列の文法構造に基づいて当該テスト文字列について複数の状態を設定するとともに、当該複数の状態について、実行型の構成単位が実行可能である状態を基準として文法構造上どれだけ離れているかに基づいて複数の状態種別を設定し、
各前記セクションについて、1のセクション又は複数のセクションの組に対応している前記構成単位にある文字列を、他の文字列で置き換える操作としての行動種別を設定し、当該行動種別とそれに該当する前記セクションに関して前記文字列を置き換える操作との組み合わせとして行動を設定し、
前記状態種別に基づいて、前記テスト文字列に対していずれかの前記行動を実行することによって遷移した前記テスト文字列の状態が、実行型の構成単位が実行可能である状態からどれだけ離れているかに応じて報酬の値を設定し、
強化学習アルゴリズムのエージェントを用いて、いずれかの前記行動を実行した前記テスト文字列を所定のWebサイトに与え、その状態を観測して前記報酬を受け取る処理を繰り返すことにより、反射型クロスサイトスクリプティング脆弱性を検知するためのテスト文字列を構成するのに適した方策を学習する処理を実行する、
学習方法。 - 前記セクションが、前記テスト文字列における、先頭の構成単位、実行型の構成単位、実行型の構成単位の直前、直後の構成単位の4つの部分を含み、
前記行動として、前記テスト文字列に含まれているすべての構成単位を用いて、前記テスト文字列における前記4つの部分に対応する構成単位の文字列を置き換える4種の行動が設定され、
前記4種の行動のいずれかをランダムに選択して前記テスト文字列に適用して得られた文字列を前記所定のWebサイトに与えてその状態を観測し、前記実行型の構成単位が実行されうる状態に到達するための前記行動の適用回数が多いほど前記エージェントに与えられる報酬が小となるように設定されている、請求項5に記載の学習方法。 - 情報処理装置に、
Webサイトの脆弱性テストに利用される既知のテスト文字列を受け付け、
前記テスト文字列を、当該テスト文字列を構成している構成単位に基づいて複数のセクションに分解し、
前記テスト文字列の文法構造に基づいて当該テスト文字列について複数の状態を設定するとともに、当該複数の状態について、実行型の構成単位が実行可能である状態を基準として文法構造上どれだけ離れているかに基づいて複数の状態種別を設定し、
各前記セクションについて、1のセクション又は複数のセクションの組に対応している前記構成単位にある文字列を、他の文字列で置き換える操作としての行動種別を設定し、当該行動種別とそれに該当する前記セクションに関して前記文字列を置き換える操作との組み合わせとして行動を設定し、
前記状態種別に基づいて、前記テスト文字列に対していずれかの前記行動を実行することによって遷移した前記テスト文字列の状態が、実行型の構成単位が実行可能である状態からどれだけ離れているかに応じて報酬の値を設定し、
強化学習アルゴリズムのエージェントを用いて、いずれかの前記行動を実行した前記テスト文字列を所定のWebサイトに与え、その状態を観測して前記報酬を受け取る処理を繰り返すことにより、反射型クロスサイトスクリプティング脆弱性を検知するためのテスト文字列を構成するのに適した方策を学習する処理を実行させる、
学習プログラム。 - 請求項1から4までのいずれか一項に記載の学習装置によって求められた前記方策を用いてテスト対象であるWebサイトにリクエストとして与える文字列であるテスト文字列を構成するためのテスト実行部であって、
任意の実行型の構成単位を受け取り、
前記方策に従って選択した前記行動を前記実行型の構成単位に適用して前記テスト文字列を構成し、当該テスト文字列をテスト対象である前記Webサイトに与えてその状態を観測し、当該出力に含まれる文字列が前記実行型の構成単位が実行されうる状態となるまで前記方策に従って前記行動を当該出力文字列に適用し、前記実行型の構成単位が実行されうる状態となったテスト文字列を前記Webサイトにリクエストとして与えて、前記実行型の構成単位が実行されたと判定した場合、前記Webサイトに脆弱性があると判定してその判定結果を出力するように構成されているテスト実行部を
備えている脆弱性テスト装置。 - 前記テスト実行部が、
テスト対象である前記Webサイトに任意の文字列をリクエストとして入力し、そのリクエストに対するレスポンス中でリクエストした文字列が反映される位置である反射位置に前記テスト文字列を適用してその結果を観測し、前記方策に従って前記行動を適用する処理を前記文字列が実行可能な状態となるまで繰り返し、前記実行可能な状態となった前記テスト文字列を前記Webサイトにリクエストとして与えるように構成されている、請求項8に記載の脆弱性テスト装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021133027A JP7460582B2 (ja) | 2021-08-17 | 2021-08-17 | 学習装置、学習方法、学習プログラム、及び脆弱性テスト装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021133027A JP7460582B2 (ja) | 2021-08-17 | 2021-08-17 | 学習装置、学習方法、学習プログラム、及び脆弱性テスト装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2023027717A JP2023027717A (ja) | 2023-03-02 |
JP7460582B2 true JP7460582B2 (ja) | 2024-04-02 |
Family
ID=85330500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021133027A Active JP7460582B2 (ja) | 2021-08-17 | 2021-08-17 | 学習装置、学習方法、学習プログラム、及び脆弱性テスト装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7460582B2 (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004164617A (ja) | 2002-11-12 | 2004-06-10 | Microsoft Corp | クロスサイトスクリプティング脆弱性の自動検出 |
JP2008135029A (ja) | 2006-11-17 | 2008-06-12 | Hewlett-Packard Development Co Lp | 攻撃文字列(attackstrings)の知的生成に基づくウェブアプリケーション評価 |
-
2021
- 2021-08-17 JP JP2021133027A patent/JP7460582B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004164617A (ja) | 2002-11-12 | 2004-06-10 | Microsoft Corp | クロスサイトスクリプティング脆弱性の自動検出 |
JP2008135029A (ja) | 2006-11-17 | 2008-06-12 | Hewlett-Packard Development Co Lp | 攻撃文字列(attackstrings)の知的生成に基づくウェブアプリケーション評価 |
Non-Patent Citations (1)
Title |
---|
反射型クロスサイトスクリプティングにおける強化学習を用いた攻撃の評価,FIT2021 第20回情報科学技術フォーラム,一般社団法人情報処理学会,2021年08月12日,第135頁ー第138頁 |
Also Published As
Publication number | Publication date |
---|---|
JP2023027717A (ja) | 2023-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8984593B2 (en) | Securing asynchronous client server transactions | |
Cho et al. | SAD: web session anomaly detection based on parameter estimation | |
JP2018063694A (ja) | Webページの悪意のある要素を検出するシステム及び方法 | |
WO2011009295A1 (zh) | Xss检测方法和设备 | |
AU2016278352B2 (en) | A system and method for use in regression testing of electronic document hyperlinks | |
WO2018139458A1 (ja) | セキュリティ情報分析装置、セキュリティ情報分析方法、セキュリティ情報分析プログラム、セキュリティ情報評価装置、セキュリティ情報評価方法及びセキュリティ情報分析システム、及び記録媒体 | |
Zech et al. | Knowledge-based security testing of web applications by logic programming | |
JP2018041442A (ja) | Webページの異常要素を検出するためのシステム及び方法 | |
CN108399333A (zh) | 用于执行网页的防病毒扫描的系统和方法 | |
AU2020272737B2 (en) | Process for creating a fixed length representation of a variable length input | |
US9923916B1 (en) | Adaptive web application vulnerability scanner | |
CN110581841B (zh) | 一种后端反爬虫方法 | |
US20230224325A1 (en) | Distributed endpoint security architecture enabled by artificial intelligence | |
US20220318397A1 (en) | Dynamic communication architecture for testing computer security application features | |
JP7460582B2 (ja) | 学習装置、学習方法、学習プログラム、及び脆弱性テスト装置 | |
Hours et al. | A study of the impact of DNS resolvers on CDN performance using a causal approach | |
Lavrenovs et al. | Explainable AI for classifying devices on the internet | |
US20230161689A1 (en) | Unsupervised Integration Test Builder | |
CN108306937B (zh) | 短信验证码的发送方法、获取方法、服务器及存储介质 | |
Hemmati et al. | Bypassing Web Application Firewalls Using Deep Reinforcement Learning. | |
Athanasopoulos et al. | Hunting cross-site scripting attacks in the network | |
Duchene | Detection of web vulnerabilities via model inference assisted evolutionary fuzzing | |
KR101230585B1 (ko) | 악성코드 치료 장치 및 방법 | |
Baptista et al. | Exploring SQL injection vulnerabilities using artificial bee colony | |
CN114499923B (zh) | 一种icmp模拟报文的生成方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230720 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240222 |
|
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: 20240305 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240321 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7460582 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |