JP7460582B2 - 学習装置、学習方法、学習プログラム、及び脆弱性テスト装置 - Google Patents

学習装置、学習方法、学習プログラム、及び脆弱性テスト装置 Download PDF

Info

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
Application number
JP2021133027A
Other languages
English (en)
Other versions
JP2023027717A (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.)
KDDI Corp
Original Assignee
KDDI 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 KDDI Corp filed Critical KDDI Corp
Priority to JP2021133027A priority Critical patent/JP7460582B2/ja
Publication of JP2023027717A publication Critical patent/JP2023027717A/ja
Application granted granted Critical
Publication of JP7460582B2 publication Critical patent/JP7460582B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、Webサイトの反射型クロスサイトスクリプティング脆弱性をテストするために用いるテスト文字列を効率的に生成するための方策を学習するための学習装置、学習方法、学習プログラム、及び脆弱性テスト装置に関する。
インターネットが広く一般に利用されるようになっている。Webサイトにおいてもユーザの利便性を向上させるため様々な技術が利用されており、例えばユーザからの入力を受け付けて動的にページを出力する機能は様々なWebサイトで実装されている。こうした背景のもと、セキュリティの観点から、Webサイトの機能を悪用して攻撃される危険性が指摘されている。特に、外部からの入力を受け付けて動的にページを出力する機能を悪用し、攻撃者が任意のスクリプトをWebサイトに注入することで、Webサイトの利用者に意図せず攻撃者のスクリプトを実行させる攻撃が成立する場合がある。このような攻撃が成立してしまう脆弱性はクロスサイトスクリプティング(XSS)と呼ばれており、近年報告されているWebサイト脆弱性の中でも多数を占めている。
XSS脆弱性はその特徴から反射型、格納型、及びDOMベースの3つの類型に大別される。中でも反射型XSS脆弱性は、外部からの入力を即時的にページに出力する機能において見られる脆弱性であり、最も一般的なXSS脆弱性である。
XSS脆弱性は、Webサイトにおいて外部からの入力値を確認し、スクリプトなど不正な文字列を無効化する処理、例えばサニタイジングなどにより対策することができる。Webサイト管理者は、利用者への不測の攻撃を防ぐため、Webサイトを公開する前にXSS脆弱性を排除することが求められる。その方法の一つがテストツールを利用した脆弱性の検知である。既存のテストツールにおいては、予め定義された脆弱性を検知するための文字列であるテスト文字列のリストをWebサイトに対して総当たり的に試行する方法、予め定義された条件に従ってWebサイトに対してテスト文字列を試行する方法等が採用されている。
非特許文献1では、Human-in-the-loopと呼ばれる人間参加型の機械学習システムを活用することで、人間の知識を組み込んだ強化学習に基づく反射型XSS脆弱性検知のフレームワークを提案している。そのフレームワークにおいて、学習フェーズでは、既知のテスト文字列を構成する方法を、人間の知識を基に強化学習のQ学習をアルゴリズムとして用いて学習する。テストフェーズでは、Q学習で学習したエージェントを用いて、テスト対象のWebサイトへ入力するためのテスト文字列を構成する。
しかしながら、非特許文献1が提案するフレームワークによるテストでは、Human-in-the-loopを前提として手法を設計しているため、テストを実施するユーザに高度な専門的知識が要求され、そのためのユーザの負担が過大となりがちであるという課題があった。
また、複雑なWebサイトにおける厖大な入力変数を考慮すると、テストにおけるWebサイトへのリクエスト数も多数必要となる。前記のように、一般的な既存のテストツールには、用意されたリストをもとに総当たり的に対象Webサイトへの入力を試行するものもある。そのため、これらの従来手法ではテスト対象となるWebサイトへの負担も大きくなるという課題があった。
本発明の目的の一つは、強化学習を用いて、Webサイトの反射型クロスサイトスクリプティング脆弱性をテストするためのテスト文字列を、自動的に、かつ効率的に生成すること、またできるだけ少ない回数でのテスト文字列の試行を可能とする学習装置、学習方法及び学習プログラムを提供することである。本発明の他の目的は、前記学習装置によって求められた方策により自動的に、かつ効率的に生成したテスト文字列によりWebサイトの反射型クロスサイトスクリプティング脆弱性をテストすることができる脆弱性テスト装置を提供することである。
本発明の一つの態様に係る学習装置は、Webサイトの脆弱性テストに利用される既知のテスト文字列を受け付け、前記テスト文字列を、当該テスト文字列を構成している構成単位に基づいて複数のセクションに分解し、前記テスト文字列の文法構造に基づいて当該テスト文字列について複数の状態を設定するとともに、当該複数の状態について、実行型の構成単位が実行可能である状態を基準として文法構造上どれだけ離れているかに基づいて複数の状態種別を設定し、各前記セクションについて、1のセクション又は複数のセクションの組に対応している前記構成単位にある文字列を、他の文字列で置き換える操作としての行動種別を設定し、当該行動種別とそれに該当する前記セクションに関して前記文字列を置き換える操作との組み合わせとして行動を設定し、前記状態種別に基づいて、前記テスト文字列に対していずれかの前記行動を実行することによって遷移した前記テスト文字列の状態が、実行型の構成単位が実行可能である状態からどれだけ離れているかに応じて報酬の値を設定し、強化学習アルゴリズムのエージェントを用いて、いずれかの前記行動を実行した前記テスト文字列を所定のWebサイトに与え、その状態を観測して前記報酬を受け取る処理を繰り返すことにより、反射型クロスサイトスクリプティング脆弱性を検知するためのテスト文字列を構成するのに適した方策を学習するように構成されている学習部を備えている。
前記セクションが、前記テスト文字列における、先頭の構成単位、実行型の構成単位、実行型の構成単位の直前、直後の構成単位の4つの部分を含み、前記行動として、前記テスト文字列に含まれているすべての構成単位を用いて、前記テスト文字列における前記4つの部分に対応する構成単位の文字列を置き換える4種の行動が設定され、前記4種の行動のいずれかをランダムに選択して前記テスト文字列に適用して得られた文字列を前記所定のWebサイトに与えてその状態を観測し、前記実行型の構成単位が実行されうる状態に到達するための前記行動の適用回数が多いほど前記エージェントに与えられる報酬が小となるように設定されているとしてもよい。
前記行動は、各前記構成単位の文字列の表記を他の表記に変換する操作を含むとしてもよい。
前記文字列の前記構成単位は、ハイパーテキストマークアップ言語(HTML)における文法上の構成単位であるとしてもよい。
本発明の他の態様に係る学習方法は、情報処理装置が、Webサイトの脆弱性テストに利用される既知のテスト文字列を受け付け、前記テスト文字列を、当該テスト文字列を構成している構成単位に基づいて複数のセクションに分解し、前記テスト文字列の文法構造に基づいて当該テスト文字列について複数の状態を設定するとともに、当該複数の状態について、実行型の構成単位が実行可能である状態を基準として文法構造上どれだけ離れているかに基づいて複数の状態種別を設定し、各前記セクションについて、1のセクション又は複数のセクションの組に対応している前記構成単位にある文字列を、他の文字列で置き換える操作としての行動種別を設定し、当該行動種別とそれに該当する前記セクションに関して前記文字列を置き換える操作との組み合わせとして行動を設定し、前記状態種別に基づいて、前記テスト文字列に対していずれかの前記行動を実行することによって遷移した前記テスト文字列の状態が、実行型の構成単位が実行可能である状態からどれだけ離れているかに応じて報酬の値を設定し、強化学習アルゴリズムのエージェントを用いて、いずれかの前記行動を実行した前記テスト文字列を所定のWebサイトに与え、その状態を観測して前記報酬を受け取る処理を繰り返すことにより、反射型クロスサイトスクリプティング脆弱性を検知するためのテスト文字列を構成するのに適した方策を学習する処理を実行する。
本発明の他の態様に係る学習プログラムは、前記学習装置としてコンピュータを機能させるためのものである。
本発明のさらに他の態様は、学習装置によって求められた前記方策を用いてテスト対象であるWebサイトにリクエストとして与える文字列であるテスト文字列を構成するためのテスト実行部であって、任意の実行型の構成単位を受け取り、前記方策に従って選択した前記行動を前記実行型の構成単位に適用して前記テスト文字列を構成し、当該テスト文字列をテスト対象である前記Webサイトに与えてその状態を観測し、当該出力に含まれる文字列が前記実行型の構成単位が実行されうる状態となるまで前記方策に従って前記行動を当該出力文字列に適用し、前記実行型の構成単位が実行されうる状態となったテスト文字列を前記Webサイトにリクエストとして与え、前記実行型の構成単位が実行されたと判定した場合、前記Webサイトに脆弱性があると判定してその判定結果を出力するように構成されているテスト実行部を備えている脆弱性テスト装置である。
前記テスト実行部が、テスト対象である前記Webサイトに任意の文字列をリクエストとして入力し、そのリクエストに対するレスポンス中でリクエストした文字列が反映される位置である反射位置に前記テスト文字列を適用してその結果を観測し、前記方策に従って前記行動を適用する処理を前記文字列が実行可能な状態となるまで繰り返し、前記実行可能な状態となった前記テスト文字列を前記Webサイトにリクエストとして与えるように構成してもよい。
本発明によれば、強化学習を用いて、Webサイトの反射型クロスサイトスクリプティング脆弱性をテストするためのテスト文字列を、自動的に、かつ効率的に生成することが可能となる。また本発明によれば、前記学習装置によって求められた方策により自動的に、かつ効率的に生成されるテスト文字列によりWebサイトの脆弱性をテストすることができる。
本発明の一実施形態における脆弱性テスト装置、Webサーバ、及びクライアントコンピュータを含むネットワークの概略構成を例示する図である。 本発明の一実施形態における脆弱性テスト装置の機能構成を例示する図である。 一実施形態における学習部によるデータ処理例を示すフローチャートである。 一実施形態におけるテスト実行部によるデータ処理例を示すフローチャートである。 一実施形態におけるテスト実行部による他のデータ処理例を示すフローチャートである。
以下、本発明について、その実施形態に即して添付図面を参照しながら説明する。本実施形態は、Webサイトを対象としてテストを実行し、当該Webサイトに反射型クロスサイトスクリプティング(以下、「反射型XSS」と略称する)の脆弱性を存在するか否かを判定するための脆弱性テスト装置である。
図1に、Webサーバが接続されたネットワークと、そのネットワーク上での本実施形態による脆弱性テスト装置(以下「テスト装置」と略称する)のテスト実行環境を模式的に例示している。
図1の例では、テスト装置1と、Webサーバ2と、ユーザコンピュータ3とがネットワーク4を介して相互に通信可能に接続されている。Webサーバ2は、通信機能を備えた一般的なコンピュータの構成を備え、ユーザコンピュータ3からのリクエストに応じて情報や機能を提供するための、Webページデータを作成するソフトウェアが実装されている。ユーザコンピュータ3は、Webサーバ2と同じく通信機能を備えた一般的なコンピュータの構成を備え、Webサーバ2にリクエストを送信し、そのリクエストに対応する情報や機能を受領する。ユーザコンピュータ3には、受信したWebページデータを解釈して出力する機能を有するWebブラウザソフトウェアが実装される。Webブラウザでユーザコンピュータ3のディスプレイに描画されるWebページの集合が、いわゆるWebサイトである。
Webサイトを構成するWebページは、一般にHTML(HyperText Markup Language)に代表されるマークアップ言語で記述される。本実施形態でテストの対象とされるWebサイトは、アクティブにコンテンツを変化させるべくURLに付与されるパラメータであるURLパラメータ、又はクライアントからサーバへデータを送信するのに用いられるPOSTメソッド等の手段によりユーザコンピュータ3からの入力(リクエスト)を受け取り、そのリクエストの内容を用いた出力(レスポンス)をユーザに返す機能を備えたものである。なお、テスト装置1の構成、機能については後述する。
ここでは、マークアップ言語で記述される文字列のうち、構文解析上意味を持つ最小単位(構成単位)の文字列をトークンと呼ぶこととする。またトークン化された文字列が、マークアップ言語の構文解析において対応する状態を、トークン状態と呼ぶこととする。
本実施形態によるテスト装置1が対象としている反射型クロスサイトスクリプティング(XSS)は、ユーザコンピュータ3からWebサーバ2に入力された文字列の一部を含めて返されるレスポンスを用いてユーザコンピュータ3においてWebサイトを描画する際、入力された文字列に含まれるスクリプトが出力される種類の脆弱性である。Webサイトに存在する反射型XSSの脆弱性を悪用することで、攻撃者は任意のスクリプト(以下「ペイロード」と呼ぶ)をユーザコンピュータ3に実行させることが可能となる。具体的には、ユーザコンピュータ3からの入力内容がWebサイトに出力される位置に応じて、ペイロードの前後に文字列を追加することで、ペイロードは実行可能とされる。ペイロードの前後に文字列を追加した入力文字列をテスト文字列と呼ぶこととする。本発明では、後述する行動により、テスト文字列を再構成することで、ペイロードが実行可能となるテスト文字列を生成するための方策を学習する。
図2に、本実施形態によるテスト装置1の構成例を示している。テスト装置1は、サーバ又はパーソナルコンピュータなどの情報処理装置(コンピュータ)であり、制御部10及び記憶部20の他、各種データの入出力デバイス及び通信デバイスなどを備える。
制御部10は、テスト装置1の全体を制御する部分であり、記憶部20に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態におけるテスト装置1の各機能を実現する。制御部10は、CPU等のプロセッサであってよい。
記憶部20は、ハードウェア群をテスト装置1として機能させるための各種プログラム、及び各種データなどの記憶領域であり、ROM、RAM、フラッシュメモリ又はハードディスク(HDD)などであってよい。具体的には、記憶部20は、本実施形態の各機能を制御部10に実行させるためのプログラム(学習プログラム、テスト実行プログラム)、各種パラメータ、構成されたテスト文字列などを記憶する。
制御部10は、学習部11と、テスト実行部12と、データ入出力部13とを備える。
学習部11は、強化学習アルゴリズムのエージェントを用いて、テスト文字列の状態と、ある行動を選択、実行することにより遷移したテスト文字列の状態、及びその状態により定まる報酬とに基づいて、反射型XSSのテスト文字列を構成するための最適な行動を学習する。学習部11は、既知の反射型XSSにおけるテスト文字列を複数のセクションに分解して扱い、強化学習アルゴリズムにおける状態、行動、及び報酬を以下のように設定する。
状態については、テスト文字列の文法構造、例えばマークアップ言語の仕様に基づくテスト文字列の構成単位の状態、またはそれをもとに独自に定義された状態などを用いて設定される。この状態についてはさらに、エージェントの行動に対する報酬を設定する際に使用される状態種別が定義され、状態種別により各状態は分類される。具体的には、テスト文字列の状態が、テスト文字列に含まれている実行型の構成単位が実行可能な状態からどれくらい離れているかに基づいて、状態種別が定義される。行動については、まず、テスト文字列の各前記セクションについて、1つのセクション又は複数のセクションの組に対してその文字列を他の文字列で置き換える操作を行動種別として設定する。行動は、各行動種別と、各行動種別に該当するセクションに関して実際に置き換えられる文字列又は変換操作の組み合わせとして設定される。報酬については、前記状態種別に基づいて、いずれかの前記行動を通じて遷移したテスト文字列の状態が、含まれる実行型の構成単位が実行可能な状態からどのくらい離れているかに応じて、複数の対応する値を設定する。なお、状態、行動、及び報酬の詳細については、後述する。
テスト実行部12は、学習部11により強化学習を通じて学習済みのエージェントを用いて、テスト対象となるWebサイトに対して、構成したテスト文字列のリクエストを試行する。テスト実行部12は、リクエストに対するレスポンスの観測を通じて、反射型XSS攻撃が成立したか否かを判定する。
データ入出力部13は、学習部11、テスト実行部12と、記憶部20、あるいはネットワークを通じた外部装置との間のデータ送受信処理等を行う。具体的には、データ入出力部13は、例えば記憶部20、入力デバイスあるいは外部装置から学習部11への既知のテスト文字列データ、及び各種設定パラメータの取り込み、学習部11での強化学習アルゴリズムにより生成された学習済みエージェントの記憶部20への格納、学習部11から学習済みエージェントの記憶部20からの読み出し及びテスト実行部12への転送、学習部11及びテスト実行部12とWebサイトとの間でのテスト文字列の入出力、テスト実行部12で生成されたテスト文字列の記憶部20への格納、テスト実行部12で得られた反射型XSS脆弱性テスト結果の出力デバイス等への出力等の処理を行う。
なお、本実施形態のテスト装置1は、自動的に、かつ効率的にテスト文字列を生成するための方策を強化学習のプロセスによって求める学習フェーズを実行する学習装置と、前記学習装置によって求められた方策に従って学習済みのエージェントにより自動的に、かつ効率的にテスト文字列を生成してそれを用いたWebサイトの脆弱性テストを実行するテスト実行装置とに区分して構成することもできる。
次に、学習部11において実行される、本実施形態による強化学習のプロセスについて詳細に説明する。
知られているように、強化学習は、ある環境に置かれたエージェントが環境の状態を観測し、行動を選択することで、得られる報酬の合計を最大化するような方策を求めるアルゴリズムである。強化学習のアルゴリズムについては、例えば、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)で表される割引累積報酬の期待値を最大化することで、テスト文字列を自動的に、かつ効率的に生成するための最適な方策πを求めることができる。
Figure 0007460582000001

…(1)
ただし、γtは累積報酬が発散しないように設定される、時刻tにおける割引率である。
また、強化学習においては、エージェントがある行動を実行することをステップという単位で表し、ある過程が終端状態に到達するまでの一連のステップをエピソードと呼ぶ。
具体的に、本実施形態による学習部11が実行する強化学習アルゴリズムにおける環境の設定、すなわち状態、行動、及び報酬は、例えば以下のように定義される。
(1)状態
本実施形態による強化学習において環境が取り得る状態は、テスト文字列中でペイロードが現れる位置を表す。すなわち、本実施形態においての状態は、マークアップ言語の仕様(例えば、”HTML Living Standard”, https://html.spec.whatwg.org/を参照されたい。)に基づくトークン状態、又はそのトークン状態をもとに独自に定義された状態である。あるいは、状態は、マークアップ言語内に記述可能な他の言語(例えばスクリプト、スタイルシート等)におけるトークン状態、又はそのトークン状態をもとに独自に定義された状態であってもよい。
本実施形態では、テスト文字列のとる状態を、第1~第3の3つの種別に分類して把握するものとしている。これらの種別を表1に示している。3つの種別は、該当するテスト文字列の状態が、これに含まれるペイロードを実行可能な状態となるために文法上どのくらい離れているかをもとに分類されている。これらの状態種別は、後述する行動に対して与えられる報酬の値を決定するために用いられる。
Figure 0007460582000002
ここで、状態とその属する種別の例について、テスト文字列がHTMLで記述されているものとして説明する。なお、ペイロードは「alert(1);」であるものとする。「alert(1);」は、Webページに「アラートメッセージ」の表示を実行させる命令である。ここでは引数が1であるので、メッセージには「1」が表示されるが、引数はこれに限らず適宜定めればよい。またペイロードとして他の実行関数を採用してもよい。
Figure 0007460582000003

なお、状態の種別は、テスト文字列に含まれるペイロードを実行可能とする状態から文法上どのくらい離れているかを区分できるものであれば、上記に限らず設定可能である。例えば、第3種別を、エージェントが2つの行動を実行すれば第1種別に遷移可能な状態と、それ以外の状態(3つ以上の行動を実行すれば第1種別に遷移可能な状態)に分けてもよい。
(2)行動
次に、本実施形態による強化学習の行動について説明する。
本実施形態ではまず、強化学習の対象となるテスト文字列を、以下の4つのセクションに分割する。
Figure 0007460582000004

なお、上記はセクションの区分例であり、ペイロードとの位置関係を合理的に区分する他の方法によって、適宜セクションを構成してもよい。
本実施形態では、これら4つのセクション区分を前提として、以下の行動種別を規定している。
Figure 0007460582000005

なお、文字列の上書きについては、「第1セクションの文字列を大文字に変換する」、「第1セクションの文字列をパーセントエンコーディングでエンコードする」等、各セクションの文字列を別の表記の文字列に変換する操作を定義することも可能である。
各行動は、上記の行動種別の要素と、セクションに区切られたテスト文字列(以下「セクション文字列」と呼ぶ)の要素との組み合わせとして設定される。
ここで、本実施形態における行動について、具体例に即して説明する。対象のテスト文字列の例を表5に示す。
Figure 0007460582000006

このとき、エージェントの行動は、各セクションに対して行動種別1~4をもとに以下の表6に示すような行動一覧表として設定される。かっこで括られた各組は、行動種別を表す番号と、各セクションを上書きするための文字列とからなる。上書き用文字列には、空文字(“”)を含めている。
Figure 0007460582000007
ここで、各セクションに配置されている文字列を別の表記の文字列に変換する例について説明する。本例は、Webサイトに入力文字列をサニタイジングする機能が設けられている場合、そのサニタイジング機能に関する脆弱性を検知するために有効な手法である。対象のテスト文字列として、表5の第2の例である「</textarea> <script> alert(1); </script>」を用いる。
いまエージェントがテスト文字列に対して選択する行動として、(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脆弱性を検知するために、セクションに配置されている文字列の変換処理が有効となる場合が考えられる。
エージェントの行動の結果、状態がペイロード実行可能な第1種別となったとき、またはエージェントが予め規定したステップ数を実行したとき、エージェントの行動は終了し、1つのエピソードが終了する。
(3)報酬
次に、本実施形態の強化学習における、状態sにおいて行動aを選択した場合の行動aの報酬について説明する。
報酬は、時刻tにおける状態sから行動aによって到達する状態s(t+1)をもとに決定される。
本実施形態では、前記したテスト文字列の状態を表す第1種別~第3種別に対する報酬r(1)、r(2)、r(3)を、それぞれr(1)>0、r(3)<r(2)<0と設定している。この設定は、エージェントが選択する1つの行動の結果、ペイロードが実施可能な第1種別に遷移した場合がもっとも報酬が大きく、第2種別、第3種別と、実施可能な状態から離隔した状態を観測するほど報酬が減少するように決定されている。なお、上記は報酬の設定例であり、状態種別の数等に合わせて報酬も適宜設定することができる。
以上説明した本実施形態による強化学習によれば、エージェントがテスト文字列の初期状態sから行動aを(t≧0)を順次選択して、第1種別の状態に至るステップ数が少ないほど受け取る報酬の期待値が増加するため、ペイロード実行可能とするテスト文字列を効率的に作成することができる。
次に、ここまで説明した強化学習の機能を備えたテスト装置1(図2)を実現するためのデータ処理例について説明する。
学習部11によるデータ処理例
図3に本実施形態のテスト装置1における学習部11によるデータ処理例を示すフローチャートを示している。なお、図2に関して述べたように、学習部11の機能は、後述するテスト実行部12から独立した学習装置として実現してもよい。この場合、学習装置の出力は、以下の強化学習アルゴリズムによって求められた方策によって自動的に、かつ効率的にテスト文字列を生成する機能を備えたエージェントである。
図3を参照すると、ステップS100において、学習部11は、入力として、1以上の既知のテスト文字列をセクションに分解して得られる情報であるセクション文字列(例えば表5参照)と、学習フェーズにおける脆弱性検知のテスト対象となる1以上のWebサイト(以下「テストWebサイト」)を受け付ける。ここで、既知のテスト文字列は、例えばインターネット上のGitHubで公開されているオープンソースのテストコード集などから収集して利用することができる。ステップS100では、このようなテスト文字列から前記の表3、表5に関して説明したように、第1セクションから第4セクションまでに分解したセクション文字列を作成して学習部11に入力する。
次に、ステップS110において、学習部11は、学習実行のための前処理として、与えられたすべてのセクション文字列から、表6に例示したような行動一覧表を作成する。
ステップS120において、学習部11は、テストWebサイトを1つ選択し、現在の学習フェーズにおけるテスト対象に設定する。
ステップS130において、学習部11はあらかじめ設定した最大学習時間を経過したか判定し、経過したと判定した場合(YESの場合)、ステップS170の未処理のWebサイトがあるか判定する処理に移る。ステップS130において、最大学習時間を経過していないと判定した場合(NOの場合)、学習部11は、ステップS140に移る。
ステップ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によって利用される。
テスト実行部12によるデータ処理例
次に、以上の学習部11による学習フェーズのデータ処理により強化学習がなされたエージェントを用いて実行される本実施形態によるテストフェーズのデータ処理について説明する。図4に、本実施形態によるテスト装置1のテスト実行部12が実行するテストフェーズのデータ処理例をフローチャートで示している。なお、学習部11と同様に、テスト実行部12は、学習済みエージェントによってテスト文字列を自動生成してWebサイトの脆弱性テストを実行するテスト装置として構成することも可能である。
まずステップS200において、テスト実行部12は、学習フェーズにおいて学習済みのエージェント、1のテスト対象たるテストWebサイト、及び1のテストWebサイトに対して試行するテストの最大試行回数を、入力として受け付ける。ここで受け付けるテストWebサイトは、学習フェーズで利用したWebサイトとは異なる。
ステップS210において、テスト実行部12は、第3セクションにペイロード文字列を配置する。
ステップ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サイトを設定しておき、1のテストWebサイトについての脆弱性存否が判定されたら他のテストWebサイトについてのテストを実行するように構成してもよい。
以上説明した本実施形態によるテスト実行部のデータ処理によれば、テスト対象のテストWebサイトに対して反射型XSSの脆弱性があるかを判定することができるテスト文字列を自動的に、かつ効率的に生成して与えることができるので、Webサイトが反射型XSS脆弱性を有するか否かの判定について、省力化、効率化を実現することができる。
次に、以上説明したテスト実行部12によるテストフェーズのデータ処理に関する変形例について説明する。この変形例は、テスト対象であるテストWebサイトへのテスト実行に伴う処理負荷増大を回避することを意図したものである。図5に、本実施形態によるテスト装置1のテスト実行部12が実行するテストフェーズの変形データ処理例をフローチャートで示している。なお、図4のフローチャートと同一の要素については同一の符号を付している。
まずステップS200において、テスト実行部12は、図4の例と同様に、学習フェーズにおいて学習済みのエージェント、1のテスト対象たるテストWebサイト、及び1のテストWebサイトに対して試行するテストの最大試行回数を、入力として受け付ける。
ステップS202において、テスト実行部12は、テスト対象たるテストWebサイトの内容を一時的に記録すべく、テストWebサイトに任意の文字列をリクエストとして入力し、ステップS204においてそのリクエストに対するレスポンスと、そのレスポンス中でリクエストした文字列が反映される位置(反射位置)を記録する。
ステップ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の基本構成の場合と同様である。
以上説明したテスト実行部12によるデータ処理の変形例によれば、第1種別のテスト文字列を得るまでの試行を、実際のテストWebサイトではなく、ローカルにコピーしたテストWebサイトの疑似構成(疑似レスポンス)を用いて行うことができるので、脆弱性テスト実行に伴ってテスト対象のテストWebサイトに対する負荷の増大を抑制することができ、テストWebサイトの可用性をいたずらに損なうことがないという効果を得ることができる。
前記テスト実行部が、テスト対象たる前記Webサイトに任意の文字列を与え、そのレスポンス中で与えた文字列が反映される位置である反射位置を特定し、当該反射位置に各前記テスト文字列を適用してその結果を観測し、観測された状態に応じて前記エージェントを用いて前記行動を適用する処理を繰り返し、前記テスト文字列が実行可能な状態となったと判定した場合、当該テスト文字列を前記Webサイトにリクエストとして与えるように構成することができる。
このようにすれば、テスト対象のテストWebサイトにテスト文字列をリクエストとして与えることなく、実行可能な状態のテスト文字列を得ることができる。
前記セクションが、前記テスト文字列における、先頭の構成単位、実行型の構成単位、実行型の構成単位の直前、直後の構成単位の4つの部分を含み、前記行動として、前記テスト文字列に含まれているすべての構成単位を用いて、前記テスト文字列における前記4つの部分に対応する構成単位の文字列を置き換える4種の行動が設定され、前記4種の行動のいずれかをランダムに選択して前記テスト文字列に適用して得られた文字列を前記所定のWebサイトに与えてその状態を観測し、前記実行型の構成単位が実行されうる状態に到達するための前記行動の適用回数が多いほど前記エージェントに与えられる報酬が小となるように設定されているとしてもよい。
このようにすれば、テスト文字列の生成に関する強化学習アルゴリズムの最適化を図ることができる。
前記行動が、各前記構成単位の文字列の表記を他の表記に変換する操作を含むとしてもよい。
このようにすれば、例えばWebサイトにおける不完全なサニタイジング処理に起因する脆弱性を検知することができる。
前記文字列の前記構成単位は、ハイパーテキストマークアップ言語(HTML)における文法上の構成単位であってもよい。
このようにすれば、テスト文字列をその構成単位に分解する処理が明確かつ簡易なものとなる。
なお、前述の実施形態により、例えば、Webサイトが有するクロスサイトスクリプティングに関する脆弱性をあらかじめ検知して除去することによりネットワークを介した通信の安全性を向上させることができるので、国連が主導する持続可能な開発目標(SDGs)の目標9「レジリエントなインフラを整備し、持続可能な産業化を推進するとともに、イノベーションの拡大を図る」に貢献することが可能となる。
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、前述した実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されるものではない。
本発明の実施形態に係る学習方法、脆弱性テスト方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置(コンピュータ)にインストールされる。また、これらのプログラムは、CD-ROMのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータに提供されてもよい。
1 脆弱性テスト装置
10 制御部
11 学習部
12 テスト実行部
13 データ入出力部
20 記憶部

Claims (9)

  1. Webサイトの脆弱性テストに利用される既知のテスト文字列を受け付け、
    前記テスト文字列を、当該テスト文字列を構成している構成単位に基づいて複数のセクションに分解し、
    前記テスト文字列の文法構造に基づいて当該テスト文字列について複数の状態を設定するとともに、当該複数の状態について、実行型の構成単位が実行可能である状態を基準として文法構造上どれだけ離れているかに基づいて複数の状態種別を設定し、
    各前記セクションについて、1のセクション又は複数のセクションの組に対応している前記構成単位にある文字列を、他の文字列で置き換える操作としての行動種別を設定し、当該行動種別とそれに該当する前記セクションに関して前記文字列を置き換える操作との組み合わせとして行動を設定し、
    前記状態種別に基づいて、前記テスト文字列に対していずれかの前記行動を実行することによって遷移した前記テスト文字列の状態が、実行型の構成単位が実行可能である状態からどれだけ離れているかに応じて報酬の値を設定し、
    強化学習アルゴリズムのエージェントを用いて、いずれかの前記行動を実行した前記テスト文字列を所定のWebサイトに与え、その状態を観測して前記報酬を受け取る処理を繰り返すことにより、反射型クロスサイトスクリプティング脆弱性を検知するためのテスト文字列を構成するのに適した方策を学習するように構成されている学習部を
    備えている学習装置。
  2. 前記セクションが、前記テスト文字列における、先頭の構成単位、実行型の構成単位、実行型の構成単位の直前、直後の構成単位の4つの部分を含み、
    前記行動として、前記テスト文字列に含まれているすべての構成単位を用いて、前記テスト文字列における前記4つの部分に対応する構成単位の文字列を置き換える4種の行動が設定され、
    前記4種の行動のいずれかをランダムに選択して前記テスト文字列に適用して得られた文字列を前記所定のWebサイトに与えてその状態を観測し、前記実行型の構成単位が実行されうる状態に到達するための前記行動の適用回数が多いほど前記エージェントに与えられる報酬が小となるように設定されている、請求項1に記載の学習装置。
  3. 前記行動が、各前記構成単位の文字列の表記を他の表記に変換する操作を含む、
    請求項1又は2に記載の学習装置。
  4. 前記文字列の前記構成単位は、ハイパーテキストマークアップ言語(HTML)における文法構造上の構成単位である、請求項1から3までのいずれか一項に記載の学習装置。
  5. 情報処理装置が、
    Webサイトの脆弱性テストに利用される既知のテスト文字列を受け付け、
    前記テスト文字列を、当該テスト文字列を構成している構成単位に基づいて複数のセクションに分解し、
    前記テスト文字列の文法構造に基づいて当該テスト文字列について複数の状態を設定するとともに、当該複数の状態について、実行型の構成単位が実行可能である状態を基準として文法構造上どれだけ離れているかに基づいて複数の状態種別を設定し、
    各前記セクションについて、1のセクション又は複数のセクションの組に対応している前記構成単位にある文字列を、他の文字列で置き換える操作としての行動種別を設定し、当該行動種別とそれに該当する前記セクションに関して前記文字列を置き換える操作との組み合わせとして行動を設定し、
    前記状態種別に基づいて、前記テスト文字列に対していずれかの前記行動を実行することによって遷移した前記テスト文字列の状態が、実行型の構成単位が実行可能である状態からどれだけ離れているかに応じて報酬の値を設定し、
    強化学習アルゴリズムのエージェントを用いて、いずれかの前記行動を実行した前記テスト文字列を所定のWebサイトに与え、その状態を観測して前記報酬を受け取る処理を繰り返すことにより、反射型クロスサイトスクリプティング脆弱性を検知するためのテスト文字列を構成するのに適した方策を学習する処理を実行する、
    学習方法。
  6. 前記セクションが、前記テスト文字列における、先頭の構成単位、実行型の構成単位、実行型の構成単位の直前、直後の構成単位の4つの部分を含み、
    前記行動として、前記テスト文字列に含まれているすべての構成単位を用いて、前記テスト文字列における前記4つの部分に対応する構成単位の文字列を置き換える4種の行動が設定され、
    前記4種の行動のいずれかをランダムに選択して前記テスト文字列に適用して得られた文字列を前記所定のWebサイトに与えてその状態を観測し、前記実行型の構成単位が実行されうる状態に到達するための前記行動の適用回数が多いほど前記エージェントに与えられる報酬が小となるように設定されている、請求項5に記載の学習方法。
  7. 情報処理装置に、
    Webサイトの脆弱性テストに利用される既知のテスト文字列を受け付け、
    前記テスト文字列を、当該テスト文字列を構成している構成単位に基づいて複数のセクションに分解し、
    前記テスト文字列の文法構造に基づいて当該テスト文字列について複数の状態を設定するとともに、当該複数の状態について、実行型の構成単位が実行可能である状態を基準として文法構造上どれだけ離れているかに基づいて複数の状態種別を設定し、
    各前記セクションについて、1のセクション又は複数のセクションの組に対応している前記構成単位にある文字列を、他の文字列で置き換える操作としての行動種別を設定し、当該行動種別とそれに該当する前記セクションに関して前記文字列を置き換える操作との組み合わせとして行動を設定し、
    前記状態種別に基づいて、前記テスト文字列に対していずれかの前記行動を実行することによって遷移した前記テスト文字列の状態が、実行型の構成単位が実行可能である状態からどれだけ離れているかに応じて報酬の値を設定し、
    強化学習アルゴリズムのエージェントを用いて、いずれかの前記行動を実行した前記テスト文字列を所定のWebサイトに与え、その状態を観測して前記報酬を受け取る処理を繰り返すことにより、反射型クロスサイトスクリプティング脆弱性を検知するためのテスト文字列を構成するのに適した方策を学習する処理を実行させる、
    学習プログラム。
  8. 請求項1から4までのいずれか一項に記載の学習装置によって求められた前記方策を用いてテスト対象であるWebサイトにリクエストとして与える文字列であるテスト文字列を構成するためのテスト実行部であって、
    任意の実行型の構成単位を受け取り、
    前記方策に従って選択した前記行動を前記実行型の構成単位に適用して前記テスト文字列を構成し、当該テスト文字列をテスト対象である前記Webサイトに与えてその状態を観測し、当該出力に含まれる文字列が前記実行型の構成単位が実行されうる状態となるまで前記方策に従って前記行動を当該出力文字列に適用し、前記実行型の構成単位が実行されうる状態となったテスト文字列を前記Webサイトにリクエストとして与えて、前記実行型の構成単位が実行されたと判定した場合、前記Webサイトに脆弱性があると判定してその判定結果を出力するように構成されているテスト実行部を
    備えている脆弱性テスト装置。
  9. 前記テスト実行部が、
    テスト対象である前記Webサイトに任意の文字列をリクエストとして入力し、そのリクエストに対するレスポンス中でリクエストした文字列が反映される位置である反射位置に前記テスト文字列を適用してその結果を観測し、前記方策に従って前記行動を適用する処理を前記文字列が実行可能な状態となるまで繰り返し、前記実行可能な状態となった前記テスト文字列を前記Webサイトにリクエストとして与えるように構成されている、請求項8に記載の脆弱性テスト装置。
JP2021133027A 2021-08-17 2021-08-17 学習装置、学習方法、学習プログラム、及び脆弱性テスト装置 Active JP7460582B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)の知的生成に基づくウェブアプリケーション評価

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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