JP7488976B1 - Security Test System - Google Patents

Security Test System Download PDF

Info

Publication number
JP7488976B1
JP7488976B1 JP2024013436A JP2024013436A JP7488976B1 JP 7488976 B1 JP7488976 B1 JP 7488976B1 JP 2024013436 A JP2024013436 A JP 2024013436A JP 2024013436 A JP2024013436 A JP 2024013436A JP 7488976 B1 JP7488976 B1 JP 7488976B1
Authority
JP
Japan
Prior art keywords
vulnerability
user
information
llm
request
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
JP2024013436A
Other languages
Japanese (ja)
Inventor
未来 岡島
賢太 筧
Original Assignee
株式会社ユービーセキュア
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 株式会社ユービーセキュア filed Critical 株式会社ユービーセキュア
Priority to JP2024013436A priority Critical patent/JP7488976B1/en
Application granted granted Critical
Publication of JP7488976B1 publication Critical patent/JP7488976B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】DAST等の手法により自動的に検知されたアプリケーションの脆弱性について、正しい検知か誤検知かのユーザによる手動での精査と対応策の提示を支援する。【解決手段】対象Webサイト3の脆弱性の有無を検査し、検知された脆弱性に係る情報を検査結果13として記録してユーザに提示する検査実施部11と、ユーザから指定された対象脆弱性に係る質問を受け付けて、LLM4により回答を作成して回答する対話処理部12を有し、対話処理部12は、対象脆弱性に係る詳細情報をLLM4に対して入力する。【選択図】図1[Problem] Supports the user in manually examining application vulnerabilities automatically detected by methods such as DAST to determine whether the detection was correct or incorrect, and in providing countermeasures. [Solution] The system has an inspection execution unit 11 that inspects a target website 3 for vulnerabilities, records information related to the detected vulnerabilities as inspection results 13 and presents them to the user, and a dialogue processing unit 12 that accepts questions related to the target vulnerability designated by the user, creates answers using the LLM 4, and responds to the questions, and the dialogue processing unit 12 inputs detailed information related to the target vulnerability to the LLM 4. [Selected Figure] Figure 1

Description

本発明は、アプリケーションのテスト技術に関し、特に、Webアプリケーションの脆弱性の有無を検査するセキュリティテストシステムに適用して有効な技術に関するものである。 The present invention relates to application testing technology, and in particular to technology that is effective when applied to a security testing system that checks for vulnerabilities in web applications.

Webアプリケーションはネットワークの利用が前提であり、セキュリティの観点から脆弱性の有無を検査・テストすることは非常に重要である。Webアプリケーションの脆弱性の有無を検査するツールやサービスは各種のものが利用可能であり、検討・開発も日々行われている。 Web applications are premised on the use of a network, so from a security perspective it is extremely important to inspect and test for vulnerabilities. There are a variety of tools and services available for inspecting web applications for vulnerabilities, and these are being investigated and developed on a daily basis.

Webアプリケーションのセキュリティテストの手法は、大きくSAST(Static Application Security Testing:静的アプリケーションセキュリティテスト)と、DAST(Dynamic Application Security Testing:動的アプリケーションセキュリティテスト)に分けられる。ソースコード等を静的に分析するSASTに対して、DASTでは、稼働しているアプリケーションに対して、攻撃者の視点を踏まえて外部から疑似的な攻撃(検査)リクエストを送信し、アプリケーションの挙動(レスポンス)の変化から脆弱性があるかどうかを判定する。 Web application security testing methods can be broadly divided into SAST (Static Application Security Testing) and DAST (Dynamic Application Security Testing). While SAST statically analyzes source code, etc., DAST sends simulated attack (inspection) requests from an external source, based on an attacker's perspective, to a running application and determines whether there are any vulnerabilities from changes in the application's behavior (response).

このような手法を用いたセキュリティテストに関連する技術として、例えば、特表2023-545625号公報(特許文献1)には、SASTやDASTなどの手法を用いてソフトウェアをスキャンして潜在的脆弱性問題を検出し、これらをリストする電子文書報告を生成して、電子文書報告から各潜在的脆弱性問題についての特徴を抽出し、抽出された特徴と、潜在的脆弱性問題のソースコードに基づいて決定したトークンに基づいてベクトルを決定し、ベクトルに基づいて脆弱性スコア付け方法を選択して脆弱性精度スコアを決定することで、ソフトウェアの脆弱性のトリアージを行うことが記載されている。 As an example of a technology related to security testing using such a method, JP2023-545625A (Patent Document 1) describes a method for triaging software vulnerabilities by using methods such as SAST and DAST to scan software to detect potential vulnerability issues, generating an electronic document report that lists these issues, extracting features for each potential vulnerability issue from the electronic document report, determining a vector based on the extracted features and a token determined based on the source code of the potential vulnerability issue, selecting a vulnerability scoring method based on the vector, and determining a vulnerability accuracy score.

特表2023-545625号公報JP 2023-545625 A

従来技術によれば、SASTやDASTなどの手法によりソフトウェアの脆弱性をスキャンして、脆弱性の程度(攻撃の可能性)を数値化することで、最も関連性の高い脆弱性を明らかにし、解決策を提案することが可能であると言える。 According to conventional technology, it is possible to identify the most relevant vulnerabilities and propose solutions by scanning software for vulnerabilities using techniques such as SAST and DAST and quantifying the degree of vulnerability (possibility of attack).

一方で、セキュリティテストの手法としてDASTを用いる場合、DASTが稼働中のアプリケーションに対して外部から擬似的な攻撃を行って脆弱性の有無を判定するというブラックボックス的な手法であることから、攻撃時におけるアプリケーションの内部の処理を100%把握することが難しく、脆弱性の検知に誤りが生じ得る。特に、セキュリティテストシステム等、自動的に検査・診断を行うような仕組みの場合、手動での検査・診断に比べて誤検知の可能性が高くなる。したがって、自動的に検知された脆弱性については、正しい検知(True Positive)なのか誤検知(False Positive)なのかをユーザが手動で精査する必要がある。 On the other hand, when using DAST as a security testing method, DAST is a black-box method in which a simulated attack is performed from the outside on a running application to determine whether or not there is a vulnerability, so it is difficult to fully understand the internal processing of the application at the time of the attack, and errors may occur in detecting vulnerabilities. In particular, in the case of a system that automatically performs inspection and diagnosis, such as a security test system, there is a higher possibility of false positives compared to manual inspection and diagnosis. Therefore, users must manually examine automatically detected vulnerabilities to determine whether they are true positives or false positives.

このとき、アプリケーションの脆弱性について知見のあるユーザであれば、自動的に検知された脆弱性に係る詳細情報から、適切な情報に着目して高い精度で精査することができる。一方で、脆弱性について知見のないユーザの場合、どこに着目して判断すべきかが分からず、精査を適切に行えない事態が生じ得る。また、正しく検知された脆弱性への対応策についても、例えば、ソースコードを具体的にどう修正すべきか等の判断ができない場合が生じ得る。 At this time, a user with knowledge of application vulnerabilities can focus on the appropriate information from the detailed information related to the automatically detected vulnerability and perform a highly accurate examination. On the other hand, a user with no knowledge of vulnerabilities may not know what to focus on in order to make a judgment, and may not be able to perform an appropriate examination. Furthermore, even when a vulnerability is correctly detected, there may be cases where the user is unable to determine how to specifically modify the source code, for example.

そこで本発明の目的は、DAST等の手法により自動的に検知されたアプリケーションの脆弱性について、正しい検知か誤検知かのユーザによる手動での精査とユーザへの対応策の提示を支援するセキュリティテストシステムを提供することにある。 The object of the present invention is to provide a security testing system that assists users in manually examining application vulnerabilities that are automatically detected using techniques such as DAST to determine whether the detection is correct or incorrect, and that supports the user in presenting countermeasures.

本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記載および添付図面から明らかになるであろう。 The above and other objects and novel features of the present invention will become apparent from the description of this specification and the accompanying drawings.

本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。 The following is a brief summary of the representative inventions disclosed in this application:

本発明の代表的な実施の形態であるセキュリティテストシステムは、Webアプリケーションにおけるセキュリティの脆弱性の有無を検査するセキュリティテストシステムであって、前記Webアプリケーションの脆弱性の有無を検査し、検知された脆弱性に係る情報を検査結果として記録してユーザに提示する検査実施部と、前記検査結果においてユーザから指定された対象脆弱性に係る質問を受け付けて、LLM(大規模言語モデル)により回答を作成して回答する対話処理部と、を有し、前記対話処理部は、前記対象脆弱性に係る詳細情報を前記LLMに対して入力する。 A security test system that is a representative embodiment of the present invention is a security test system that checks for security vulnerabilities in a Web application, and includes an inspection execution unit that checks for vulnerabilities in the Web application, records information related to the detected vulnerabilities as inspection results, and presents the results to a user, and a dialogue processing unit that accepts questions related to target vulnerabilities specified by the user in the inspection results, creates answers using an LLM (large-scale language model), and answers the questions. The dialogue processing unit inputs detailed information related to the target vulnerabilities to the LLM.

本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、以下のとおりである。 The effects achieved by the representative inventions disclosed in this application can be briefly explained as follows:

すなわち、本発明の代表的な実施の形態によれば、Webサイトの脆弱性の検査の仕組みにおいて、DAST等の手法により自動的に検知された脆弱性について、正しい検知か誤検知かのユーザによる手動での精査とユーザへの対応策の提示を支援することが可能となる。 In other words, according to a representative embodiment of the present invention, in a website vulnerability inspection system, it becomes possible to assist users in manually examining vulnerabilities automatically detected by a method such as DAST to determine whether the detection was correct or incorrect, and to present countermeasures to the user.

本発明の一実施の形態であるセキュリティテストシステムの構成例について概要を示した図である。1 is a diagram showing an overview of a configuration example of a security test system according to an embodiment of the present invention. 本発明の一実施の形態における脆弱性検査の処理の流れの例について概要を示したフローチャートである。1 is a flowchart outlining an example of a process flow for vulnerability testing in one embodiment of the present invention. 本発明の一実施の形態における脆弱性検査の例について概要を示した図である。FIG. 1 is a diagram showing an overview of an example of vulnerability testing according to an embodiment of the present invention. (a)(b)は、本発明の一実施の形態における脆弱性検査のパターンの例について概要を示した図である。1A and 1B are diagrams outlining examples of vulnerability testing patterns according to an embodiment of the present invention. 本発明の一実施の形態における脆弱性の詳細情報をLLMに入力するプロンプトの例について概要を示した図である。FIG. 13 is a diagram outlining an example of a prompt for inputting vulnerability details into an LLM in one embodiment of the present invention. 本発明の一実施の形態における回答に必要な情報をLLMに判断させるためのプロンプトの例について概要を示した図である。FIG. 11 outlines example prompts for prompting the LLM to determine information required to respond in one embodiment of the present invention. 本発明の一実施の形態における回答をLLMに作成させるプロンプトの例について概要を示した図である。FIG. 11 outlines example prompts that may cause an LLM to generate responses in one embodiment of the present invention. (a)~(c)は、本発明の一実施の形態におけるチャット画面での回答の例について概要を示した図である。13A to 13C are diagrams outlining examples of replies on a chat screen according to an embodiment of the present invention. 本発明の一実施の形態における検査結果のデータ構成の例について概要を示した図である。FIG. 2 is a diagram showing an overview of an example of a data configuration of a test result in one embodiment of the present invention. 本発明の一実施の形態における脆弱性マスタのデータ構成の例について概要を示した図である。FIG. 2 is a diagram showing an overview of an example of a data configuration of a vulnerability master according to an embodiment of the present invention.

以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。一方で、ある図において符号を付して説明した部位について、他の図の説明の際に再度の図示はしないが同一の符号を付して言及する場合がある。 The following describes in detail an embodiment of the present invention with reference to the drawings. In all drawings used to explain the embodiment, the same parts are generally given the same reference numerals, and repeated explanations will be omitted. However, there are cases where parts that have been described with reference numerals in one drawing will be referred to with the same reference numerals when explaining other drawings, although they will not be shown again.

<概要>
上述したように、DASTによるWebサイトのセキュリティテストは、稼働中のアプリケーションに対して外部から擬似的な攻撃に係るリクエストを送信し、これに対してアプリケーションから応答されたレスポンスに基づいて脆弱性の有無を判定するというブラックボックス的な手法であることから、攻撃時におけるアプリケーションの内部の処理を100%把握することが難しく、脆弱性の検知に誤りが生じ得る。特に、セキュリティテストシステム等、自動的に検査・診断を行うような仕組みの場合、手動での検査・診断に比べて誤検知の可能性が高くなる。したがって、自動的に検知された脆弱性については、正しい検知(True Positive)なのか誤検知(False Positive)なのかをユーザが手動で精査する必要がある。
<Overview>
As described above, the DAST website security test is a black-box method in which a request related to a pseudo attack is sent from the outside to a running application, and the presence or absence of a vulnerability is judged based on the response from the application to the request. Therefore, it is difficult to fully grasp the internal processing of the application during an attack, and errors may occur in vulnerability detection. In particular, in the case of a system that automatically performs inspection and diagnosis, such as a security test system, the possibility of false positives is higher than in manual inspection and diagnosis. Therefore, the user needs to manually examine whether an automatically detected vulnerability is a true positive or a false positive.

精査に際しては、後述するように、脆弱性の種別や検査パターンによって着目すべき情報が異なる。例えば、アプリケーションに対するオリジナル(改ざん前)のリクエストに着目すべき場合もあれば、改ざん後のリクエストに対するレスポンスに着目すべき場合もある。また、オリジナルのリクエストに対するレスポンスと改ざん後のリクエストに対するレスポンスの差分に着目すべき場合もある。このとき、脆弱性について知見のあるユーザであれば、自動的に検知された脆弱性に係る詳細情報から、適切な情報に着目して高い精度で精査することができる。一方で、脆弱性について知見のないユーザの場合、どこに着目して判断すべきかが分からず、精査を適切に行えない事態が生じ得る。また、正しく検知された脆弱性への対応策についても、例えば、ソースコードを具体的にどう修正すべきか等の判断ができない場合が生じ得る。 When conducting an examination, the information to focus on varies depending on the type of vulnerability and the inspection pattern, as described below. For example, there are cases where the original request (before tampering) to the application should be focused on, and cases where the response to the request after tampering should be focused on. There are also cases where the difference between the response to the original request and the response to the request after tampering should be focused on. In this case, a user with knowledge of vulnerabilities can perform an examination with high accuracy by focusing on the appropriate information from the detailed information related to the automatically detected vulnerability. On the other hand, a user with no knowledge of vulnerabilities may not know what to focus on in order to make a judgment, and may not be able to perform an appropriate examination. In addition, even when a vulnerability is correctly detected, there may be cases where it is not possible to determine the countermeasure, such as how to specifically modify the source code.

そして、DASTはあくまでアプリケーションに対するブラックボックス的な検査手法であり、アプリケーションの内部構造を理解した上での検査手法ではない。したがって、ユーザによる精査にあたり、アプリケーションを構成している各種の技術要素(例えば、ソースコードやフレームワーク設定等)についての知見が提供されることで、誤検知か否かの判定の精度を向上させることができる。しかし、セキュリティテストシステム等、自動的に検査・診断を行うような仕組みの場合、アプリケーションの外部からは精査の際の参考となる内部の情報を知ることができない。したがって、これらの情報は当該アプリケーションの管理者や開発者等から別途提供してもらう必要がある。 Furthermore, DAST is merely a black-box inspection method for applications, and is not an inspection method that requires an understanding of the internal structure of the application. Therefore, when a user inspects an application, the accuracy of determining whether or not it is a false positive can be improved by providing knowledge about the various technical elements that make up the application (for example, source code, framework settings, etc.). However, in the case of a security testing system or other system that automatically performs inspection and diagnosis, it is not possible to know internal information that would be useful for inspection from outside the application. Therefore, this information needs to be provided separately by the administrator or developer of the application.

そこで本発明の一実施の形態であるセキュリティテストシステムは、対象のアプリケーションについてDAST等の手法により自動的に検知した脆弱性について、これに対する精査や対応策についてのユーザからの質問を、チャットボット形式で対話的に受け付けて回答する。そして、回答に際し、回答のために必要な情報を事前に判断し、これらの情報についてユーザから提供を受けた内容に基づいて回答することで、回答の精度を向上させる。さらに、上記のような情報の収集や質問への回答に生成AI(Artificial Intelligence)・LLM(Large Language Models:大規模言語モデル)(以下ではこれらを「LLM」と総称する場合がある)を利用することで、脆弱性について知見のあるユーザと同等の判断を実現する。 The security testing system according to one embodiment of the present invention interactively accepts and answers questions from users in chatbot format regarding the examination and countermeasures for vulnerabilities automatically detected in a target application using techniques such as DAST. When answering, the system determines in advance the information required for the answer and answers based on the information provided by the user, thereby improving the accuracy of the answer. Furthermore, by using generative AI (Artificial Intelligence) and LLMs (Large Language Models) (hereinafter, these may be collectively referred to as "LLMs") to collect the above-mentioned information and answer questions, the system realizes judgments equivalent to those of a knowledgeable user about vulnerabilities.

<システム構成>
図1は、本発明の一実施の形態であるセキュリティテストシステムの構成例について概要を示した図である。セキュリティテストシステム1は、例えば、サーバ機器やクラウドコンピューティングサービス上に構築された仮想サーバ等により構成され、これにユーザが使用するPC(Personal Computer)等のユーザ端末2が、図示しないインターネットやVPN(Virtual Private Network)、LAN(Local Area Network)などのネットワークを介して、図示しないWebブラウザや専用のアプリケーション等を利用してアクセスする構成を有する。
<System Configuration>
1 is a diagram showing an overview of an example of the configuration of a security test system according to an embodiment of the present invention. The security test system 1 is configured, for example, by a server device or a virtual server constructed on a cloud computing service, and is configured such that a user terminal 2 such as a PC (Personal Computer) used by a user accesses the system using a web browser or a dedicated application (not shown) via a network such as the Internet, a VPN (Virtual Private Network), or a LAN (Local Area Network) (not shown).

セキュリティテストシステム1は、例えば、図示しないCPU(Central Processing Unit)により、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の記録装置からメモリ上に展開したOS(Operating System)やDBMS(DataBase Management System)、Webサーバプログラム等のミドルウェアや、その上で稼働するソフトウェアを実行することで、セキュリティテストの実施に係る各種機能を実現する。このセキュリティテストシステム1は、例えば、ソフトウェアにより実装された検査実施部11、および対話処理部12などの各部を有する。また、データベースやファイルテーブル等により実装された検査結果13、および脆弱性マスタ14などの各データストアを有する。 The security test system 1 realizes various functions related to the implementation of security tests by, for example, using a CPU (Central Processing Unit) (not shown) to execute middleware such as an OS (Operating System), a DBMS (DataBase Management System), and a Web server program that are deployed onto memory from a recording device such as a HDD (Hard Disk Drive) or SSD (Solid State Drive), and software that runs on the OS and the DBMS. This security test system 1 has various parts such as an inspection execution unit 11 and an interaction processing unit 12 that are implemented by software. It also has various data stores such as an inspection result 13 implemented by a database, file table, etc., and a vulnerability master 14.

検査実施部11は、検査対象である対象Webサイト3内の各Webページについて、DASTの手法による脆弱性の検査を実施する機能を有する。すなわち、対象となる各Webページについて、対象Webサイト3にリクエストを送信する際にフォームに不正な値を入力する等により擬似的な攻撃リクエストとして送信する。そして、対象Webサイト3からのレスポンスを解析して脆弱性の有無を判定するとともに、判定結果を検査結果13に記録する。 The inspection execution unit 11 has a function of inspecting vulnerabilities using the DAST method for each web page in the target website 3 that is the inspection target. That is, for each target web page, when sending a request to the target website 3, it sends a pseudo attack request by, for example, entering invalid values in a form. It then analyzes the response from the target website 3 to determine whether or not there is a vulnerability, and records the determination result in the inspection result 13.

対話処理部12は、検査実施部11により検知された脆弱性について、これに対する精査や対応策についてのユーザからの質問を、ユーザ端末2を介してチャットボット形式で対話的に受け付けて回答する機能を有する。本実施の形態ではチャットボット形式で対話的に質問を受け付けて回答する構成としているが、質問・回答のユーザインタフェースはこれに限られない。回答に際し、回答のために必要な情報を外部もしくは内部のLLM4を利用して判断し、これらの情報についてユーザから提供を受けた内容に基づいて、LLM4により回答を生成する。対話処理部12での処理の詳細については後述する。 The dialogue processing unit 12 has a function of accepting and answering questions from the user about the examination and countermeasures for the vulnerabilities detected by the inspection execution unit 11 in a chatbot format via the user terminal 2. In this embodiment, the configuration is such that questions are accepted and answered interactively in a chatbot format, but the user interface for questions and answers is not limited to this. When answering, the information required for the answer is determined using an external or internal LLM 4, and an answer is generated by the LLM 4 based on the content of this information provided by the user. Details of the processing in the dialogue processing unit 12 will be described later.

<処理の流れ>
図2は、本発明の一実施の形態における脆弱性検査の処理の流れの例について概要を示したフローチャートである。まず、検査実施部11により対象Webサイト3に対するDASTによる脆弱性の検査を行う。検査ではまず、対象Webサイト3における検査対象のすべてのURL(Uniform Resource Locator)について繰り返す第1のループ処理を開始する(S01)。検査対象のURLは、例えば、事前に対象Webサイト3を自動巡回して各Webページ内のリンクを解析する等により取得してリスト化する。第1のループ処理では、処理対象のURLに対してオリジナル(改ざん前)のリクエストを送信するシナリオを再生する(S02)。
<Processing flow>
2 is a flowchart outlining an example of a process flow of vulnerability testing in an embodiment of the present invention. First, the testing execution unit 11 tests the target website 3 for vulnerability using DAST. In the test, a first loop process is started (S01), which repeats all URLs (Uniform Resource Locators) to be tested in the target website 3. The URLs to be tested are obtained and listed in advance, for example, by automatically crawling the target website 3 and analyzing the links in each web page. In the first loop process, a scenario is played back to send an original (before tampering) request to the target URL (S02).

図3は、本発明の一実施の形態における脆弱性検査の例について概要を示した図である。ここでは、上段の図に示されているような検査対象のURLのリストのうち、破線で囲まれた処理対象のURLに対して、オリジナル(改ざん前)のシナリオとして、下段の図に示されているようなリクエストをHTTP(Hyper Text Transfer Protocol)により送信し、図示するようなレスポンスを得たことを示している。 Figure 3 is a diagram outlining an example of vulnerability testing in one embodiment of the present invention. Here, the diagram shows that, as an original (before tampering) scenario, a request as shown in the diagram below is sent via HTTP (Hyper Text Transfer Protocol) to the URL to be processed, which is surrounded by a dashed line in the list of URLs to be tested as shown in the diagram above, and the response shown in the diagram is obtained.

図2に戻り、その後、予め設定されたすべての検査パターンについて繰り返す第2のループ処理を開始する(S03)。第2のループ処理では、処理対象の検査パターンに応じて改ざんされたリクエストを処理対象のURLに対して送信するシナリオを再生する(S04)。そして、処理対象のURLに係るWebページから応答されたレスポンスに基づいて、脆弱性の検知の有無を判定し(S05)、次の検査パターンの処理に移る(S06)。 Returning to FIG. 2, a second loop process is then started, which repeats all of the preset test patterns (S03). In the second loop process, a scenario is played back in which a request tampered with according to the test pattern being processed is sent to the URL being processed (S04). Then, based on the response from the web page related to the URL being processed, it is determined whether or not a vulnerability has been detected (S05), and the process moves to the next test pattern (S06).

図4は、本発明の一実施の形態における脆弱性検査のパターンの例について概要を示した図である。図4(a)では、SQL(Structured Query Language)インジェクションを検査するための検査パターンの1つにおける改ざんしたリクエストと、これに対するレスポンスの例を示している。SQLインジェクションでは、不正なSQL文をリクエストに埋め込むことで改ざんする。図4(a)の例では、リクエストにおける破線で囲まれた箇所を、上述の図3の例に示したオリジナルのリクエストから改ざんしていることを示すとともに、このリクエストに対するレスポンスの内容が、上述の図3の例に示したレスポンスとの間で差分がないことを示している。この検査パターンの場合は、オリジナルのリクエストに対するレスポンスと、改ざんしたリクエストに対するレスポンスに差分がない場合に、SQLインジェクションの脆弱性を検知したと判定する。 Figure 4 is a diagram outlining an example of a vulnerability testing pattern in one embodiment of the present invention. Figure 4(a) shows an example of a tampered request and a response to the request in one testing pattern for testing SQL (Structured Query Language) injection. In SQL injection, a request is tampered with by embedding an invalid SQL statement. The example in Figure 4(a) shows that the portion of the request surrounded by a dashed line has been tampered with from the original request shown in the example in Figure 3 above, and that there is no difference between the content of the response to this request and the response shown in the example in Figure 3 above. In the case of this testing pattern, if there is no difference between the response to the original request and the response to the tampered request, it is determined that an SQL injection vulnerability has been detected.

一方、図4(b)では、検査パターンがクロスサイトスクリプティングを検査するための検査パターンの1つにおける改ざんしたリクエストと、これに対するレスポンスの例を示している。クロスサイトスクリプティングでは、リクエストを改ざんして悪意のあるスクリプトを対象Webサイト3に埋め込むことで、後に第三者によりアクセスされた際にこれを実行させる。図4(b)の例では、リクエストにおける破線で囲まれた箇所を、上述の図3の例に示したオリジナルのリクエストから改ざんしていることを示すとともに、このリクエストに対するレスポンスの内容に、上述の図3の例に示したレスポンスとの間で、破線で囲まれた箇所の差分があることを示している。この検査パターンの場合は、図中の例のように、例えばリクエストに埋め込んだ<script>タグがレスポンスにも反射された場合に、クロスサイトスクリプティングの脆弱性を検知したと判断する。 On the other hand, FIG. 4(b) shows an example of a tampered request and a response in one of the test patterns for testing cross-site scripting. In cross-site scripting, a request is tampered with to embed a malicious script in the target website 3, which is then executed when accessed by a third party. The example in FIG. 4(b) shows that the part surrounded by the dashed line in the request has been tampered with from the original request shown in the example in FIG. 3 above, and that there is a difference in the content of the response to this request from the response shown in the example in FIG. 3 above, as shown in the example in the figure. In the case of this test pattern, it is determined that a cross-site scripting vulnerability has been detected if, for example, the <script> tag embedded in the request is also reflected in the response, as in the example in the figure.

このように、検査パターンによって、オリジナルのリクエストおよびレスポンスと、攻撃に係るリクエストおよびレスポンスとの間に差分がない場合に脆弱性を検知したとする場合もあれば、差分がある場合に脆弱性ありと検知する場合もある。また、差分の有無に関わらずレスポンスの内容に基づいて判断する場合もある。このように、検査パターン毎に着目すべき情報が異なることから、本実施の形態では、後述するように、検査パターン(脆弱性)毎にどのようなロジックで脆弱性の有無を検知・判断するのかに係る情報を事前にLLM4に入力しておく。 In this way, depending on the inspection pattern, a vulnerability may be detected if there is no difference between the original request and response and the request and response related to the attack, or a vulnerability may be detected if there is a difference. In other cases, a judgment may be made based on the content of the response regardless of whether there is a difference. Since the information to focus on differs for each inspection pattern, in this embodiment, as described below, information regarding the logic used to detect and judge the presence or absence of a vulnerability for each inspection pattern (vulnerability) is input in advance to LLM4.

図2に戻り、すべての検査パターンについてステップS04~S05の処理を行って第2のループ処理が終了すると、第1のループ処理において次の検査対象のURLの処理に移る(S07)。そして、すべての検査対象のURLについてステップS02~S06の処理を行って第1のループ処理が終了すると、対象Webサイト3に係る検査結果を対話処理部12によりユーザ端末2に表示する(S08)。例えば、検知した各脆弱性をリスト表示し、リストからユーザにより選択された脆弱性について、詳細画面にて検査パターン、URL、Webページ内のパラメータ等を表示する。さらに、詳細画面に、例えば「相談する」等のボタンを表示し、ユーザがこれを押下することで、チャット画面を介して対象の脆弱性についての質問を受け付けることができるようにする。 Returning to FIG. 2, when the second loop process is completed after steps S04 to S05 have been performed for all test patterns, the first loop process moves on to processing the next URL to be tested (S07). Then, when the first loop process is completed after steps S02 to S06 have been performed for all test target URLs, the dialogue processing unit 12 displays the test results for the target website 3 on the user terminal 2 (S08). For example, each detected vulnerability is displayed as a list, and for a vulnerability selected by the user from the list, the test pattern, URL, parameters within the web page, etc. are displayed on a details screen. Furthermore, a button such as "Ask a question" is displayed on the details screen, and when the user presses this button, questions about the target vulnerability can be accepted via a chat screen.

その後、ユーザが「相談する」等のボタンを押下してチャット画面を起動したか否かを判定する(S09)。チャット画面が起動されずに検査結果の画面がユーザによりクローズされる等した場合は(ステップS09でNo)、検査処理を終了する。一方、ユーザによりチャット画面が起動された場合は(ステップS09でYes)、まず、対話処理部12により、対象の脆弱性についての詳細情報をLLM4に入力・指示する(S10)。 Then, it is determined whether the user has pressed a button such as "Consult" to launch the chat screen (S09). If the chat screen is not launched and the inspection result screen is closed by the user (No in step S09), the inspection process ends. On the other hand, if the chat screen is launched by the user (Yes in step S09), first the dialogue processing unit 12 inputs and instructs the LLM 4 to provide detailed information about the target vulnerability (S10).

図5は、本発明の一実施の形態における脆弱性の詳細情報をLLM4に入力するプロンプトの例について概要を示した図である。ここでは、図示するような脆弱性詳細情報入力プロンプトを生成してLLM4に入力することで、対象の脆弱性(図5の例ではSQLインジェクション)について、脆弱性の概要、どのようなロジックで検知するのか、誤検知か否かの判定を行う方法等、必要な情報を脆弱性マスタ14から取得して予めLLM4にインプットしておく。なお、図5の例に示された情報の項目は必要最低限のものであり、これらの他に脆弱性毎に必要な情報の項目が追加され得ることは言うまでもない。この脆弱性詳細情報入力プロンプトでは、応答を出力しないよう指示することで、そのまま次の処理に移る。 Figure 5 is a diagram outlining an example of a prompt for inputting detailed vulnerability information to the LLM 4 in one embodiment of the present invention. Here, by generating a vulnerability detailed information input prompt as shown in the figure and inputting it to the LLM 4, necessary information for the target vulnerability (SQL injection in the example of Figure 5), such as an overview of the vulnerability, the logic used to detect it, and a method for determining whether it is a false positive, is obtained from the vulnerability master 14 and input into the LLM 4 in advance. Note that the information items shown in the example of Figure 5 are the bare minimum, and it goes without saying that other information items required for each vulnerability can be added. In this vulnerability detailed information input prompt, by instructing not to output a response, the process moves directly to the next step.

図2に戻り、次の処理では、チャット画面を介してユーザからの質問の入力を受け付ける(S11)。質問の入力を受け付けると、対話処理部12では、当該質問に回答するために必要な情報をLLM4に判断させ(S12)、必要と判断された情報に基づいて、質問に対する回答をLLM4に作成させ(S13)、得られた回答をチャット画面においてシステムからの回答としてユーザに表示する(S14)。 Returning to FIG. 2, the next process accepts input of a question from the user via the chat screen (S11). When input of a question is accepted, the dialogue processing unit 12 causes the LLM 4 to determine the information necessary to answer the question (S12), causes the LLM 4 to create an answer to the question based on the information determined to be necessary (S13), and displays the obtained answer to the user on the chat screen as an answer from the system (S14).

図6は、本発明の一実施の形態におけるステップS12で回答に必要な情報をLLMに判断させるためのプロンプトの例について概要を示した図である。ここでは、上段の図に示すような回答必要情報判断プロンプトを生成してLLM4に入力することで、LLM4からの出力として、下段の図に示すような、ユーザからの質問に回答するために必要な情報を得る。 Figure 6 is a diagram outlining an example of a prompt for the LLM to determine the information required for answering in step S12 in one embodiment of the present invention. Here, a prompt for determining the information required for answering as shown in the upper diagram is generated and input to LLM4, and the information required for answering the question from the user is obtained as output from LLM4 as shown in the lower diagram.

図6の例に示す回答必要情報判断プロンプトでは、対象の脆弱性とユーザからの質問の内容に加えて、回答のために入手可能な情報のキー(図6の例では、改ざん値(tamperedValue)、オリジナルのリクエスト(originalRequest)、オリジナルのレスポンス(originalResponse)、改ざん時のリクエスト(tamperedRequest)、改ざん時のレスポンス(tamperedResponse)の5種類)と、JSON(JavaScript Object Notation)形式で出力される回答に含まれるデータ項目を指示している。このプロンプトに対し、図6の例では、LLM4からのJSON形式の出力において、質問への回答に必要な情報(required)として、上記の5種類のキーすべてが必要であるという出力がされたことを示している。 The prompt for determining information required for an answer shown in the example of Figure 6 indicates, in addition to the target vulnerability and the content of the question from the user, the keys of information available for the answer (in the example of Figure 6, five types: tampered value (tamperedValue), original request (originalRequest), original response (originalResponse), request when tampered (tamperedRequest), and response when tampered (tamperedResponse)) and the data items included in the answer output in JSON (JavaScript Object Notation) format. In response to this prompt, the example of Figure 6 shows that in the JSON format output from LLM4, all five of the above keys are required as information (required) required to answer the question.

なお、図6の例に示す回答必要情報判断プロンプトでは、回答のために入手可能な情報におけるリクエストとレスポンスとして、それぞれ、オリジナル(正常通信時)と改ざん時(攻撃時)の2種類を指定しているが、脆弱性によっては、1つの攻撃で複数の改ざんを行う場合があるため、改ざん時については2種類以上のリクエストとレスポンスが指定される場合もある。また、図6の例に示された回答のために入手可能な情報は一例であり、これらの他に入手可能な情報の項目が追加され得ることは言うまでもない。 Note that in the prompt for determining information required for an answer shown in the example of Figure 6, two types of requests and responses are specified for the information available for the answer: original (during normal communication) and tampered (during an attack). However, depending on the vulnerability, multiple tamperings may be performed in a single attack, so two or more types of requests and responses may be specified for tampering. Also, the information available for the answer shown in the example of Figure 6 is just an example, and it goes without saying that other items of available information may be added.

図7は、本発明の一実施の形態におけるステップS13で回答をLLM4に作成させるプロンプトの例について概要を示した図である。ここでは、上段の図に示すような回答作成プロンプトを生成してLLM4に入力することで、LLM4からの出力として、下段の図に示すようなユーザからの質問に対する回答を得る。 Figure 7 is a diagram outlining an example of a prompt that causes LLM4 to create an answer in step S13 in one embodiment of the present invention. Here, an answer creation prompt such as that shown in the upper diagram is generated and input to LLM4, and an answer to the user's question such as that shown in the lower diagram is obtained as output from LLM4.

図7の例に示す回答作成プロンプトでは、対象の脆弱性とユーザからの質問の内容に加えて、ステップS12で取得した回答のために必要な情報(図7の例では、改ざん値、オリジナルのリクエスト、オリジナルのレスポンス、改ざん時のリクエスト、および改ざん時のレスポンスそれぞれの実際の内容)と、JSON形式での出力に含める項目を指示している。回答のために必要な情報の実際の内容は、例えば、検査結果13から取得することができる。なお、LLM4に入力することができる情報量(トークン数)には上限があるため、入力する情報量が多くなる場合は、例えば、入力するリクエストとレスポンスの実際の内容について、不要な部分を切り詰めたり、分割して入力したりすることで、LLM4の制限を回避する。 The answer creation prompt shown in the example of FIG. 7 indicates the target vulnerability and the content of the question from the user, as well as the information required for the answer obtained in step S12 (in the example of FIG. 7, the actual content of each of the tampered value, original request, original response, request when tampered, and response when tampered), and the items to be included in the output in JSON format. The actual content of the information required for the answer can be obtained, for example, from the inspection result 13. Note that there is an upper limit to the amount of information (number of tokens) that can be input into LLM4, so if the amount of information to be input is large, the limitations of LLM4 can be avoided, for example, by cutting out unnecessary parts of the actual content of the input request and response or by dividing and inputting them.

図8は、本発明の一実施の形態におけるステップS14でのチャット画面での回答の例について概要を示した図である。図8(a)は、1回のやり取りで終了する場合の例を示している。ここでは、検知された脆弱性が誤検知かどうか教えてほしいというユーザからの質問に対して、LLM4がステップS13で作成した誤検知の可能性が高いとの終局的な回答を提示してやり取りを終了していることを示している。 Figure 8 is a diagram outlining an example of a response on the chat screen in step S14 in one embodiment of the present invention. Figure 8(a) shows an example of a case where the response ends in one exchange. In this example, in response to a question from a user asking whether the detected vulnerability is a false positive, LLM4 presents the definitive response created in step S13 that there is a high possibility that it is a false positive, and the exchange ends.

一方、図8(b)は、ユーザからの追加の情報提供が必要な場合の例を示している。ここでは、図8(a)と同様に、検知された脆弱性が誤検知かどうかというユーザからの質問に対して、LLM4がステップS13で回答を作成したものの、誤検知か否かを判定するためにはさらに追加の情報が必要であるとしてユーザに確認を求めている。そして、ユーザから入力された追加情報に基づいて誤検知の可能性が高いとの終局的な回答を提示していることを示している。このように、LLM4を利用することで、対話的にやり取りを重ねてユーザから追加の情報を取得しながら、質問に対して回答していくことができる。 On the other hand, FIG. 8(b) shows an example of a case where additional information is required from the user. Here, as in FIG. 8(a), in response to a question from the user as to whether the detected vulnerability is a false positive, LLM4 creates a response in step S13, but asks the user for confirmation because further information is needed to determine whether it is a false positive. It then shows that a definitive response is presented that there is a high possibility of a false positive based on the additional information entered by the user. In this way, by using LLM4, it is possible to answer questions while obtaining additional information from the user through repeated interactive exchanges.

また、図8(c)は、検知された脆弱性に対して、ユーザに対象Webサイト3のコードの修正方法を提示する場合の例を示している。ここでは、どのようにコードを修正すべきか、というユーザからの質問に対して、回答するためにはさらに追加の情報(図中の例では現在のソースコードや技術情報)が必要であるとしてユーザに入力を求めている。そして、ユーザから入力された追加情報に基づいて、どのようにコードを修正すべきかを回答していることを示している。 Figure 8 (c) shows an example of presenting the user with a method for modifying the code of the target website 3 in response to a detected vulnerability. In this example, the system requests the user to input additional information (in the example shown in the figure, the current source code and technical information) in order to answer the user's question about how to modify the code. The system then shows an answer on how to modify the code based on the additional information entered by the user.

なお、ユーザからの質問としては、例えば、「この脆弱性を検知した理由を説明してください」「この脆弱性が誤検知かどうか確認してください」「この脆弱性が存在するかを確認するには何をすべきか教えてください」などのように、検知された脆弱性の精査に係る質問が想定される。この場合、対話処理部13およびLLM4では、例えば、上述のステップS10で入力した脆弱性の詳細情報や、脆弱性マスタ14に蓄積されている情報に基づいて回答を作成することができる。 Note that questions from the user are expected to be questions related to the examination of the detected vulnerability, such as, for example, "Please explain why this vulnerability was detected," "Please confirm whether this vulnerability is a false positive," and "Please tell me what to do to confirm whether this vulnerability exists." In this case, the dialogue processing unit 13 and the LLM 4 can create a response based on, for example, the detailed information on the vulnerability input in step S10 described above and the information stored in the vulnerability master 14.

また、例えば、「SQLインジェクションについて説明してください」「クロスサイトスクリプティングを放置するとどのような危険性があるか教えてください」などのように、脆弱性一般についての質問も想定される。この場合、対話処理部13およびLLM4では、例えば、脆弱性マスタ14に蓄積されている情報に基づいて回答を作成することができる。 Questions about vulnerabilities in general, such as "Please explain SQL injection" or "Please tell me what kind of dangers there are if cross-site scripting is left unchecked," are also anticipated. In this case, the dialogue processing unit 13 and the LLM 4 can create answers based on information stored in the vulnerability master 14, for example.

また、例えば、「どのようにコードを修正すべきか教えてください」などのように、対象Webサイト3の修正方法についての質問も想定される。この場合、対話処理部13およびLLM4では、例えば上述したように、ユーザに対して該当箇所のソースコードや技術情報(利用言語やライブラリ等)の入力を求め、入力された情報と脆弱性マスタ14に蓄積されている情報に基づいて回答を作成することができる。 It is also possible to envision a question about how to modify the target website 3, such as, for example, "Please tell me how to modify the code." In this case, the dialogue processing unit 13 and the LLM 4 can, for example, as described above, ask the user to input source code and technical information (language used, library, etc.) for the relevant part, and create a response based on the input information and the information stored in the vulnerability master 14.

なお、ユーザからの質問については、例えば、上記のような質問内容をユーザがチャット画面を通して自由に入力できるようにしてもよいし、想定される質問を予めテンプレートとして用意しておき、その中からユーザが選択して質問するようにしてもよい。 As for questions from users, for example, the user may be allowed to freely input questions such as those described above through a chat screen, or anticipated questions may be prepared in advance as templates, from which the user may select and ask a question.

図2に戻り、対話処理部13では、図8の例に示したようなチャット画面でのユーザとのやり取りが終了したか否か(例えば、ユーザがチャット画面をクローズしたか否か)を判定し(S15)、終了していない場合は(ステップS15でNo)、ステップS11に戻って、チャット画面でのユーザからの入力の受け付けを継続する。一方、チャット画面でのユーザとのやり取りが終了した場合は(ステップS15でYes)、検査処理を終了する。 Returning to FIG. 2, the dialogue processing unit 13 determines whether or not the interaction with the user on the chat screen as shown in the example of FIG. 8 has ended (for example, whether or not the user has closed the chat screen) (S15), and if it has not ended (No in step S15), the process returns to step S11 and continues to accept input from the user on the chat screen. On the other hand, if the interaction with the user on the chat screen has ended (Yes in step S15), the inspection process ends.

なお、図2の例に示した一連の処理において、網掛けがされている処理(ステップS10、S12、S13)は、LLM4を利用した処理であることを示している。 In the series of processes shown in the example of Figure 2, the shaded processes (steps S10, S12, and S13) indicate that LLM4 is used.

<データ構成>
図9は、本発明の一実施の形態における検査結果13のデータ構成の例について概要を示した図である。検査結果13は、検査実施部11による対象Webサイト3に対する検査毎に結果に係る情報を保持するテーブルであり、例えば、検査に係る項目として、検査ID、URLパラメータID、検査パターンID、および検査ステータスなどの各項目を有し、検査対象URLパラメータに係る項目として、URLパラメータID、URL、およびパラメータなどの各項目を有する。また、リクエストに係る項目として、リクエストID、URLパラメータID、オリジナルフラグ、検知脆弱性ID、改ざん値、リクエストヘッダ、およびリクエストボディなどの各項目を有し、レスポンスに係る項目として、レスポンスID、リクエストID、レスポンスヘッダ、およびレスポンスボディなどの各項目を有する。
<Data structure>
9 is a diagram showing an overview of an example of the data structure of the inspection result 13 in one embodiment of the present invention. The inspection result 13 is a table that holds information related to the result for each inspection of the target website 3 by the inspection implementation unit 11, and for example, has items such as an inspection ID, a URL parameter ID, an inspection pattern ID, and an inspection status as items related to the inspection, and has items such as a URL parameter ID, a URL, and parameters as items related to the inspected URL parameters. In addition, the request has items such as a request ID, a URL parameter ID, an original flag, a detected vulnerability ID, a tampering value, a request header, and a request body as items related to the response, and has items such as a response ID, a request ID, a response header, and a response body as items related to the response.

検査に係る項目において、検査IDの項目は、対象の検査を一意に特定するIDの情報を保持する。URLパラメータIDおよび検査パターンIDの各項目は、それぞれ、対象の検査において用いられたURLパラメータおよび検査パターンを一意に特定するIDの情報を保持する。検知ステータスの項目は、対象の検査において脆弱性が検知されたか否かを示す情報を保持する。 Among the items related to the test, the Test ID item holds ID information that uniquely identifies the target test. The URL parameter ID and test pattern ID items hold ID information that uniquely identifies the URL parameter and test pattern used in the target test, respectively. The detection status item holds information indicating whether or not a vulnerability was detected in the target test.

検査対象URLパラメータに係る項目において、URLパラメータIDの項目は、対象の検査において用いられたURLパラメータを一意に特定するIDの情報を保持する。URLおよびパラメータの各項目は、それぞれ、検査の対象のURLの情報および指定するパラメータの情報を保持する。 In the items related to the URL parameters to be inspected, the URL Parameter ID item holds ID information that uniquely identifies the URL parameter used in the target inspection. The URL and parameter items hold information on the URL to be inspected and the specified parameter, respectively.

リクエストに係る項目において、リクエストIDおよびURLパラメータIDの各項目は、それぞれ、対象の検査におけるリクエストおよび用いられたURLパラメータを一意に特定するIDの情報を保持する。オリジナルフラグの項目は、対象のリクエストが改ざんしていないオリジナルのものか否かを示すフラグ(オリジナルの場合True)の情報を保持する。検知脆弱性IDおよび改ざん値の各項目は、いずれも上記のオリジナルフラグの値がFalse(改ざんしたリクエスト)の場合にのみ値が設定される項目であり、それぞれ、対象の検査において検知された脆弱性を一意に特定するIDの情報および対象のリクエストにおいて改ざんした値の情報を保持する。リクエストヘッダおよびリクエストボディの各項目は、それぞれ、対象のリクエストにおけるヘッダおよびボディの内容に係る情報を保持する。 In the items related to the request, the Request ID and URL Parameter ID items each hold ID information that uniquely identifies the request in the target inspection and the URL parameters used. The Original Flag item holds flag information (True if original) indicating whether the target request is an original request that has not been tampered with. The Detected Vulnerability ID and Tampering Value items are both items whose values are set only when the value of the above original flag is False (a tampered request), and each hold ID information that uniquely identifies a vulnerability detected in the target inspection and tampered value information in the target request. The Request Header and Request Body items each hold information related to the header and body contents in the target request.

レスポンスに係る項目において、レスポンスIDおよびリクエストIDの各項目は、それぞれ、対象の検査におけるレスポンスおよびリクエストを一意に特定するIDの情報を保持する。レスポンスヘッダおよびレスポンスボディの各項目は、それぞれ、対象のレスポンスにおけるヘッダおよびボディの内容に係る情報を保持する。 In the response-related items, the response ID and request ID items hold ID information that uniquely identifies the response and request in the target test, respectively. The response header and response body items hold information related to the header and body contents of the target response, respectively.

図10は、本発明の一実施の形態における脆弱性マスタ14のデータ構成の例について概要を示した図である。脆弱性マスタ14は、既知の脆弱性に係るマスタ情報を保持するテーブルであり、例えば、脆弱性に係る項目として、脆弱性ID、脆弱性名、詳細解説、リスク解説、精査方法解説、および検知内部ロジックなどの各項目を有し、検査パターンに係る項目として、検査パターンID、脆弱性ID、および検知理由などの各項目を有する。 Figure 10 is a diagram showing an overview of an example of the data configuration of the vulnerability master 14 in one embodiment of the present invention. The vulnerability master 14 is a table that holds master information related to known vulnerabilities, and has items such as a vulnerability ID, vulnerability name, detailed explanation, risk explanation, examination method explanation, and internal detection logic as items related to vulnerabilities, and has items such as an inspection pattern ID, vulnerability ID, and detection reason as items related to inspection patterns.

脆弱性に係る項目において、脆弱性IDの項目は、対象の脆弱性を一意に特定するIDの情報を保持する。脆弱性名の項目は、対象の脆弱性の名称の情報を保持する。詳細解説、リスク解説、および精査方法解説の各項目は、それぞれ、対象の脆弱性の詳細内容、想定されるリスク、および対象の脆弱性に真に該当するか否かを精査する方法について説明するテキスト等の情報を保持する。検知内部ロジックの項目は、対象の脆弱性を検知するために用いる内部ロジックの内容に係る情報を保持する。 In the items related to vulnerabilities, the Vulnerability ID item holds information on an ID that uniquely identifies the target vulnerability. The Vulnerability Name item holds information on the name of the target vulnerability. The Detailed Description, Risk Description, and Examination Method Description items each hold information such as text explaining the details of the target vulnerability, the expected risks, and the method of examining whether or not the vulnerability truly corresponds to the target vulnerability. The Detection Internal Logic item holds information related to the contents of the internal logic used to detect the target vulnerability.

検査パターンに係る項目において、検査パターンIDおよび脆弱性IDの各項目は、それぞれ、対象の脆弱性を検査するための検査パターンおよび対象の脆弱性を一意に特定するIDの情報を保持する。検知理由の項目は、対象の検査パターンにより対象の脆弱性を検知した場合の検知理由を説明するテキスト等の情報を保持する。 In the items related to the test pattern, the test pattern ID and vulnerability ID items respectively hold information on the test pattern for testing the target vulnerability and an ID that uniquely identifies the target vulnerability. The detection reason item holds information such as text explaining the detection reason when the target vulnerability is detected by the target test pattern.

以上に説明したように、本発明の一実施の形態であるセキュリティテストシステム1によれば、対象Webサイト3についてDAST等の手法により自動的に検知した脆弱性について、これに対する精査や対応策についてのユーザからの質問を、チャットボット形式で対話的に受け付けて回答することができる。そして、回答に際し、回答のために必要な情報を事前に判断し、これらの情報についてユーザから提供を受けた内容に基づいて回答することで、回答の精度を向上させることができる。さらに、上記のような情報の収集や質問への回答にLLM4を利用することで、脆弱性について知見のあるユーザと同等の判断を実現することができる。 As described above, according to the security test system 1, which is one embodiment of the present invention, questions from users regarding the examination and countermeasures for vulnerabilities automatically detected for the target website 3 by a method such as DAST can be interactively accepted and answered in chatbot format. When answering, the information required for the answer can be determined in advance, and the answer can be based on the information provided by the user, thereby improving the accuracy of the answer. Furthermore, by using the LLM 4 to collect the above-mentioned information and answer questions, it is possible to realize judgments equivalent to those of a user with knowledge of vulnerabilities.

以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は上記の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。また、上記の実施の形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、上記の実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。 The invention made by the inventor has been specifically described above based on the embodiment, but it goes without saying that the present invention is not limited to the above embodiment and can be modified in various ways without departing from the gist of the invention. Furthermore, the above embodiment has been described in detail to explain the invention in an easy-to-understand manner, and the invention is not necessarily limited to having all of the configurations described. Furthermore, it is possible to add, delete, or replace part of the configuration of the above embodiment with other configurations.

また、上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば、集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリやハードディスク、SSD等の記録装置、またはICカード、SDカード、DVD等の記録媒体に置くことができる。 Furthermore, the above-mentioned configurations, functions, processing units, processing means, etc. may be realized in part or in whole in hardware, for example by designing them as integrated circuits. Furthermore, the above-mentioned configurations, functions, etc. may be realized in software by a processor interpreting and executing a program that realizes each function. Information on the programs, tables, files, etc. that realize each function can be stored in a recording device such as a memory, hard disk, or SSD, or in a recording medium such as an IC card, SD card, or DVD.

また、上記の各図において、制御線や情報線は説明上必要と考えられるものを示しており、必ずしも実装上の全ての制御線や情報線を示しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えてもよい。 In addition, in each of the above diagrams, the control lines and information lines shown are those considered necessary for explanation, and do not necessarily show all of the control lines and information lines in the actual implementation. In reality, it can be assumed that almost all components are interconnected.

本発明は、Webアプリケーションの脆弱性の有無を検査するセキュリティテストシステムに利用可能である。 The present invention can be used in a security testing system that checks for vulnerabilities in web applications.

1…セキュリティテストシステム、2…ユーザ端末、3…対象Webサイト、4…LLM、
11…検査実施部、12…対話処理部、13…検査結果、14…脆弱性マスタ
1...security test system, 2...user terminal, 3...target website, 4...LLM,
11: Test execution unit, 12: Dialogue processing unit, 13: Test result, 14: Vulnerability master

Claims (6)

Webアプリケーションにおけるセキュリティの脆弱性の有無を検査するセキュリティテストシステムであって、
前記Webアプリケーションの脆弱性の有無を検査し、検知された脆弱性に係る情報を検査結果として記録してユーザに提示する検査実施部と、
前記検査結果においてユーザから指定された対象脆弱性に係る質問を受け付けて、LLM(大規模言語モデル)により回答を作成して回答する対話処理部と、を有し、
前記対話処理部は、前記対象脆弱性に係る詳細情報を前記LLMに対して入力する、セキュリティテストシステム。
A security test system for testing whether or not there is a security vulnerability in a web application, comprising:
an inspection execution unit that inspects the Web application for vulnerabilities, records information on the detected vulnerabilities as inspection results, and presents the information to a user;
a dialogue processing unit that receives a question related to a target vulnerability designated by a user in the test result, and creates and responds to the question using a large-scale language model (LLM);
The dialogue processing unit inputs detailed information related to the target vulnerability to the LLM.
請求項1に記載のセキュリティテストシステムにおいて、
前記対話処理部は、前記対象脆弱性に係る前記詳細情報を含む第1のプロンプトを前記LLMに対して入力し、ユーザからの前記質問に対して回答するために必要となる回答必要情報を判断させる第2のプロンプトを前記LLMに入力し、前記LLMから出力された前記回答必要情報に係る内容を前記検査結果から取得して、ユーザからの前記質問に対して回答させる第3のプロンプトを前記LLMに入力して、前記LLMから出力された内容を回答としてユーザに提示する、セキュリティテストシステム。
2. The security test system according to claim 1,
The dialogue processing unit inputs a first prompt including the detailed information related to the target vulnerability to the LLM, inputs a second prompt to the LLM to determine necessary answer information required to answer the question from the user, obtains content related to the necessary answer information output from the LLM from the inspection results, inputs a third prompt to the LLM to answer the question from the user, and presents the content output from the LLM to the user as an answer.
請求項1に記載のセキュリティテストシステムにおいて、
前記対話処理部は、前記対象脆弱性に係る前記詳細情報を、既知の脆弱性に係る詳細情報を予め蓄積した脆弱性マスタから取得する、セキュリティテストシステム。
2. The security test system according to claim 1,
The dialogue processing unit obtains the detailed information related to the target vulnerability from a vulnerability master that previously stores detailed information related to known vulnerabilities.
請求項2に記載のセキュリティテストシステムにおいて、
前記第1のプロンプトには、前記対象脆弱性に係る前記詳細情報として、少なくとも、前記対象脆弱性の名称、前記対象脆弱性の概要の説明情報、前記対象脆弱性を検知するためのロジック、および前記対象脆弱性の検知が誤検知か否かを判断するための方法に係る情報が含まれる、セキュリティテストシステム。
3. The security test system according to claim 2,
A security testing system in which the first prompt includes, as the detailed information related to the target vulnerability, at least a name of the target vulnerability, an explanatory information overview of the target vulnerability, logic for detecting the target vulnerability, and information related to a method for determining whether the detection of the target vulnerability is a false positive.
請求項2に記載のセキュリティテストシステムにおいて、
前記回答必要情報には、前記Webアプリケーションに対するリクエストと当該リクエストに対するレスポンス、前記Webアプリケーションに対する改ざんしたリクエストと当該リクエストに対するレスポンス、および前記改ざんの値のうち、少なくとも1つ以上が含まれる、セキュリティテストシステム。
3. The security test system according to claim 2,
In a security test system, the information to be answered includes at least one of a request to the Web application and a response to the request, a tampered request to the Web application and a response to the request, and a value of the tampering.
請求項1に記載のセキュリティテストシステムにおいて、
前記対話処理部は、予め設定した質問のテンプレートからユーザにより選択されたものに基づいて前記質問を受け付ける、セキュリティテストシステム。
2. The security test system according to claim 1,
The dialogue processing unit accepts the question based on a question selected by a user from a preset question template.
JP2024013436A 2024-01-31 2024-01-31 Security Test System Active JP7488976B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2024013436A JP7488976B1 (en) 2024-01-31 2024-01-31 Security Test System

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2024013436A JP7488976B1 (en) 2024-01-31 2024-01-31 Security Test System

Publications (1)

Publication Number Publication Date
JP7488976B1 true JP7488976B1 (en) 2024-05-22

Family

ID=91082734

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2024013436A Active JP7488976B1 (en) 2024-01-31 2024-01-31 Security Test System

Country Status (1)

Country Link
JP (1) JP7488976B1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008507017A (en) 2004-07-13 2008-03-06 インターナショナル・ビジネス・マシーンズ・コーポレーション Methods, computer programs, and data structures for intrusion detection, intrusion response, and vulnerability remediation across target computer systems
WO2018139458A1 (en) 2017-01-30 2018-08-02 日本電気株式会社 Security information analysis device, security information analysis method, security information analysis program, security information evaluation device, security information evaluation method, security information analysis system, and recording medium
WO2022172437A1 (en) 2021-02-15 2022-08-18 日本電信電話株式会社 Impact estimation device, impact estimation method, and impact estimation program
WO2022219792A1 (en) 2021-04-15 2022-10-20 日本電信電話株式会社 Collection device, collection method, and collection program
US20230306118A1 (en) 2022-03-22 2023-09-28 International Business Machines Corporation Federated Generative Models for Website Assessment
US20230315856A1 (en) 2022-03-31 2023-10-05 Sophos Limited Methods and apparatus for augmenting training data using large language models

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008507017A (en) 2004-07-13 2008-03-06 インターナショナル・ビジネス・マシーンズ・コーポレーション Methods, computer programs, and data structures for intrusion detection, intrusion response, and vulnerability remediation across target computer systems
WO2018139458A1 (en) 2017-01-30 2018-08-02 日本電気株式会社 Security information analysis device, security information analysis method, security information analysis program, security information evaluation device, security information evaluation method, security information analysis system, and recording medium
WO2022172437A1 (en) 2021-02-15 2022-08-18 日本電信電話株式会社 Impact estimation device, impact estimation method, and impact estimation program
WO2022219792A1 (en) 2021-04-15 2022-10-20 日本電信電話株式会社 Collection device, collection method, and collection program
US20230306118A1 (en) 2022-03-22 2023-09-28 International Business Machines Corporation Federated Generative Models for Website Assessment
US20230315856A1 (en) 2022-03-31 2023-10-05 Sophos Limited Methods and apparatus for augmenting training data using large language models

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PEARCE, H. et al.,Examining Zero-Shot Vulnerability Repair with Large Language Models,2023 IEEE Symposium on Security and Privacy (SP),2023年,pp.2339-2356

Similar Documents

Publication Publication Date Title
Curphey et al. Web application security assessment tools
US7844692B2 (en) Web server multiplier for analyzing resource leaks
TWI575397B (en) Point-wise protection of application using runtime agent and dynamic security analysis
US8601434B2 (en) Method and system for information processing and test case generation
US8621613B1 (en) Detecting malware in content items
US9846781B2 (en) Unused parameters of application under test
US20100281311A1 (en) Method and system for reconstructing error response messages under web application environment
JP2015534155A (en) Security scan based on dynamic taint
Dallmeier et al. WebMate: Generating test cases for web 2.0
US10250632B2 (en) Web service testing
JP4023803B2 (en) Web application development support apparatus, data processing method, and program
TW201626280A (en) Determine secure activity of application under test
GB2511329A (en) Web service black box testing
Li et al. The application of fuzzing in web software security vulnerabilities test
US10129278B2 (en) Detecting malware in content items
US20060168467A1 (en) Load testing methods and systems with transaction variability and consistency
Lin et al. Gui test transfer from web to android
CN111124937B (en) Method and system for assisting in improving test case generation efficiency based on instrumentation function
JP7488976B1 (en) Security Test System
Pan et al. EDEFuzz: A Web API Fuzzer for Excessive Data Exposures
CN116361793A (en) Code detection method, device, electronic equipment and storage medium
JP7320211B1 (en) Systems, methods and programs for testing website vulnerabilities
JP7348698B1 (en) Systems, methods, and programs for automatically patrolling websites
Antunes et al. Security testing in SOAs: Techniques and tools
Cano-Crespo et al. SAST Tool Evaluation in the Age of 5G and IoT: Semgrep vs. Codacy

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240131

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20240131

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240510

R150 Certificate of patent or registration of utility model

Ref document number: 7488976

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150