JP2022153237A - security test system - Google Patents

security test system Download PDF

Info

Publication number
JP2022153237A
JP2022153237A JP2021145656A JP2021145656A JP2022153237A JP 2022153237 A JP2022153237 A JP 2022153237A JP 2021145656 A JP2021145656 A JP 2021145656A JP 2021145656 A JP2021145656 A JP 2021145656A JP 2022153237 A JP2022153237 A JP 2022153237A
Authority
JP
Japan
Prior art keywords
transition
security
application
scenario
screen
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.)
Pending
Application number
JP2021145656A
Other languages
Japanese (ja)
Inventor
賢太 筧
Kenta Kakei
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.)
Ubsecure Inc
Original Assignee
Ubsecure Inc
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 Ubsecure Inc filed Critical Ubsecure Inc
Priority to JP2021145656A priority Critical patent/JP2022153237A/en
Publication of JP2022153237A publication Critical patent/JP2022153237A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

PROBLEM TO BE SOLVED: To enable verification of security of an application as "a security test" incorporated by a developer as one process in development processes.
SOLUTION: A security test system includes a transition recording section 21 for recording information of screen transition by an operation to an object application 4 on a browser 20, a scenario management section 33 for recording a transition graph formed by merging a plurality of pieces of screen transition information on a graph DB 37 as a transition scenario, a transition reproduction section 34 for transmitting a request to the object application 4 according to contents of the transition scenario, and a diagnostic processing section 35 for acquiring the request transmitted by the transition reproduction section 34, modifying the contents according to a specified vulnerability inspection pattern, transmitting it to the object application 4, and inspecting whether or not to have vulnerability based on the content of the received response.
SELECTED DRAWING: Figure 1
COPYRIGHT: (C)2023,JPO&INPIT

Description

本発明は、アプリケーションの開発技術に関し、特に、アプリケーションの脆弱性を検査するセキュリティテストシステムに適用して有効な技術に関するものである。 The present invention relates to application development technology, and more particularly to technology effectively applied to a security test system that inspects application vulnerabilities.

昨今のアプリケーションやシステムではネットワークの利用がほぼ前提となっており、セキュリティの管理は重要な要件となっている。 Recent applications and systems are almost premised on the use of networks, and security management is an important requirement.

アプリケーションやシステムにおけるセキュリティ管理の技術として、例えば、特開2005-134995号公報(特許文献1)には、パラメータ名と検査項目との対応関係を定義した設定ファイルを保持し、検査対象となるパラメータが指定されると、設定ファイルに基づいてこれに対応する検査項目を特定して、当該パラメータに対して実行することで、システム管理者がプログラムレベルでセキュリティ対策の状況を把握することを可能とするセキュリティ管理システムが記載されている。 As a technology for security management in applications and systems, for example, Japanese Patent Application Laid-Open No. 2005-134995 (Patent Document 1) discloses that a setting file that defines the correspondence between parameter names and inspection items is stored, and parameters to be inspected are stored. is specified, it is possible for the system administrator to grasp the status of security measures at the program level by identifying the corresponding inspection items based on the configuration file and executing them for the relevant parameters. It describes a security management system that

一方、このようなアプリケーションやシステムに対するセキュリティ管理を実施もしくは支援する仕組みに加えて、アプリケーションやシステムの開発段階においても、セキュリティホールや脆弱性等の有無を検査してこれを排除しておくことが求められている。この点、従来は、アプリケーションの開発工程(例えば、仕様策定→設計→実装→単体テスト→結合テスト→総合テスト)とは切り離された活動として、開発者や開発チームとは別の「セキュリティ診断士」のようなスペシャリストに依頼して診断を行ってもらい、セキュリティを担保するというのが通常であった。 On the other hand, in addition to the mechanism to implement or support security management for such applications and systems, it is also necessary to inspect and eliminate security holes and vulnerabilities at the development stage of applications and systems. It has been demanded. In this respect, conventionally, as an activity separated from the application development process (for example, specification formulation → design → implementation → unit test → integration test → comprehensive test), a "security consultant" separate from the developer and development team In the past, it was common to request a specialist such as the above to perform a diagnosis to ensure security.

特開2005-134995号公報JP-A-2005-134995

アプリケーションの開発段階におけるセキュリティの担保を、「セキュリティ診断士」のようなスペシャリストに依頼して診断してもらうことには以下のような課題がある。すなわち、診断を行うスペシャリストや外部のベンダ等にスケジュールが依存してしまい、実施のスケジュールを自由にコントロールしにくい上に、リソースの状況によっては断られてしまい、診断すらできないこともある。 There are the following problems in requesting a specialist such as a "security diagnostician" to perform a security check at the development stage of an application. In other words, the schedule depends on the specialist who performs the diagnosis, an external vendor, etc., and it is difficult to freely control the implementation schedule.

また、発注や作業依頼のためのオーバーヘッドコストが大きく、細かい単位で柔軟に診断を依頼することが難しいため、例えば、ある程度開発テーマがまとまったタイミングで実施することになり、診断未了のままアプリケーションがリリースされてしまう場合もある。さらに、アプリケーションの開発工程とは別工程となるため、開発者側によるアプリケーションの動作に係るテスト工程が完了してからセキュリティの診断を実施するケースも多く、問題が検知されるタイミングが遅くなってその分手戻りのリスクやコストも大きくなってしまう。 In addition, the overhead cost for ordering and requesting work is large, and it is difficult to flexibly request diagnosis in small units. may be released. Furthermore, since this process is separate from the application development process, there are many cases where security diagnosis is performed after the developer has completed the test process related to the operation of the application, which delays the timing at which problems are detected. This increases the risk and cost of rework.

そこで本発明の目的は、アプリケーションの開発段階におけるセキュリティの担保を、アプリケーションの開発工程とは切り離された活動として「セキュリティ診断士」のようなスペシャリストが実施するのではなく、開発者や開発チームが一連の開発工程の中の一工程として組み込まれた「セキュリティテスト」として実施することを可能とするセキュリティテストシステムを提供することにある。 Therefore, the purpose of the present invention is to ensure security at the development stage of an application, not by a specialist such as a "security consultant" as an activity separate from the application development process, but by a developer or a development team. To provide a security test system that can be implemented as a "security test" incorporated as one step in a series of development steps.

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

本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。 A brief outline of typical inventions disclosed in the present application is as follows.

本発明の代表的な実施の形態であるセキュリティテストシステムは、アプリケーションにおけるセキュリティの脆弱性の有無を検査するセキュリティテストシステムであって、ユーザによるブラウザ上での前記アプリケーションに対する操作により発生するリクエスト/レスポンスの情報を含む画面遷移の情報を記録する遷移記録部と、複数の前記画面遷移の情報をマージした遷移グラフをグラフ記録部に遷移シナリオとして記録するシナリオ管理部と、前記遷移シナリオの内容に従って前記アプリケーションに対してリクエストを送信する遷移再現部と、前記遷移再現部により送信されたリクエストを取得して、指定された脆弱性の検査パターンに従って当該リクエストの内容を改変して前記アプリケーションに対して送信し、前記アプリケーションから受信したレスポンスの内容に基づいて前記指定された脆弱性の有無を検査する診断処理部と、を有するものである。 A security test system, which is a representative embodiment of the present invention, is a security test system that inspects the presence or absence of security vulnerabilities in an application. a transition recording unit for recording screen transition information including the information of; a scenario management unit for recording a transition graph obtained by merging a plurality of screen transition information as a transition scenario in the graph recording unit; a transition reproducing unit that transmits a request to an application; and a request transmitted by the transition reproducing unit that is obtained, modifies the contents of the request according to a specified vulnerability inspection pattern, and transmits the request to the application. and a diagnostic processing unit that inspects the presence or absence of the specified vulnerability based on the content of the response received from the application.

本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、以下のとおりである。 Among the inventions disclosed in the present application, the effects obtained by representative ones are briefly described below.

すなわち、本発明の代表的な実施の形態によれば、アプリケーションの開発段階におけるセキュリティの担保を、開発者や開発チームが一連の開発工程の中の一工程として組み込まれた「セキュリティテスト」として実施することが可能となる。 That is, according to the representative embodiment of the present invention, the security guarantee at the application development stage is implemented as a "security test" incorporated as one step in a series of development processes by developers and development teams. It becomes possible to

本発明の一実施の形態であるセキュリティテストシステムの構成例について概要を示した図である。1 is a diagram showing an overview of a configuration example of a security test system that is an embodiment of the present invention; FIG. 本発明の一実施の形態におけるセキュリティテストのユースケースの例について概要を示した図である。1 is a diagram showing an overview of an example of a security test use case according to an embodiment of the present invention; FIG. 本発明の一実施の形態における遷移シナリオの管理の例について概要を示した図である。FIG. 4 is a diagram showing an overview of an example of transition scenario management in one embodiment of the present invention; 本発明の一実施の形態における遷移シナリオの記録手法の例について概要を示したシーケンス図である。FIG. 4 is a sequence diagram showing an overview of an example of a transition scenario recording technique according to an embodiment of the present invention; 本発明の一実施の形態における脆弱性検査結果を統合する例について概要を示した図である。It is the figure which showed the outline|summary about the example which integrates the vulnerability test result in one embodiment of this invention. 本発明の一実施の形態における脆弱性検査結果を統合する際のルールの例について概要を示した図である。FIG. 4 is a diagram showing an overview of an example of rules when integrating vulnerability inspection results according to an embodiment of the present invention; 本発明の一実施の形態におけるブラウザに表示される画面の例について概要を示した図である。FIG. 4 is a diagram showing an overview of an example of a screen displayed on a browser according to one embodiment of the present invention; FIG. 本発明の一実施の形態におけるブラウザに表示される画面の他の例について概要を示した図である。FIG. 5 is a diagram showing an overview of another example of a screen displayed on a browser according to one embodiment of the present invention;

以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。一方で、ある図において符号を付して説明した部位について、他の図の説明の際に再度の図示はしないが同一の符号を付して言及する場合がある。 BEST MODE FOR CARRYING OUT THE INVENTION Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. In principle, the same parts are denoted by the same reference numerals throughout the drawings for describing the embodiments, and repeated descriptions thereof will be omitted. On the other hand, parts that have been described with reference numerals in one drawing may be referred to with the same reference numerals, although they are not shown again in the description of other drawings.

<概要>
本発明の一実施の形態であるセキュリティテストシステムは、アプリケーションやシステムの開発段階において、その開発工程の中の一工程として、開発者や開発チームが独自に「セキュリティテスト」を実施することを可能とする情報処理システムである。
<Overview>
The security test system, which is one embodiment of the present invention, enables developers and development teams to independently conduct "security tests" as one step in the development process of applications and systems. It is an information processing system that

これにより、例えば、開発チームにおいてテストの一つとして実施することができるため、外部のベンダ等の都合に合わせる必要がなく、開発の進捗に合わせてスケジュールを調整していつでもテストすることが可能となる。また、開発における内部プロセスとして実施するため、発注や作業依頼のためのオーバーヘッドコストがないことから、開発やリリースの単位に合わせた柔軟で細かい単位での実施が可能となり、セキュリティがチェックされていない(完了していない)状態でのリリースがされるのを防止することができる。さらに、モジュール間での機能疎通がとれるようになったタイミングで個々のモジュールごとにセキュリティテストを実施することが可能となるため、早期にテストを実施して問題を洗い出すことが可能となる。また、修正後の再確認もすぐに行えるため、問題発見→修正のサイクルを効率的に回してセキュリティを強固にしていくことが可能となる。 As a result, for example, it can be implemented as one of the tests in the development team, so there is no need to match the convenience of external vendors, etc., and it is possible to adjust the schedule according to the progress of development and test at any time. Become. In addition, since it is implemented as an internal process in development, there is no overhead cost for ordering or requesting work, so it can be implemented in flexible and detailed units according to the unit of development and release, and security is not checked. It is possible to prevent a release in the (not completed) state from being done. Furthermore, since it becomes possible to implement a security test for each individual module at the timing when functional communication between modules becomes possible, it is possible to carry out the test at an early stage and identify problems. In addition, since reconfirmation after correction can be performed immediately, it is possible to efficiently rotate the cycle of problem discovery → correction to strengthen security.

アプリケーションの開発工程にセキュリティテストを組み込むとした場合でも、例えば、開発チームにセキュリティの知識を持ったエンジニアがいない、もしくはそもそもセキュリティに取り組んだことがない、何らかのツールを用いるとしても、セキュリティエンジニア向けのツールでは開発チームで使いこなせない、ツールのコストが高いなど、通常は容易に組み込むことは難しい。 Even if security testing is incorporated into the application development process, for example, there are no engineers with security knowledge in the development team, or even if some tools are used that have never worked on security in the first place. Usually, it is difficult to easily incorporate tools, such as the development team not being able to master them and the tools being expensive.

そこで本実施の形態では、セキュリティの知識をもったエンジニア向けではなく、「開発者」向けのセキュリティテストシステムとすることで、開発工程に容易に組み込むことを可能とするものである。具体的には、例えば、クラウドサービスとして実装することで、サーバ機器等のセットアップなどを必要とせずに、テストシナリオの登録から実行・結果確認までを開発者がブラウザで行うことができるようにする。そして、テストシナリオ(画面遷移)の登録やテストの実行について、画面遷移の部分単位で各開発者が柔軟に行えるようにするとともに、シナリオやテスト結果の情報を開発チームで共有できるようにすることで、必要な部分だけを必要なタイミングで対応可能な開発者がテストする等、効率的でスピーディーなテスト実施と管理を可能とするものである。 Therefore, in this embodiment, the security test system is designed not for engineers with security knowledge, but for "developers", so that it can be easily incorporated into the development process. Specifically, for example, by implementing it as a cloud service, without the need to set up server equipment, etc., developers can perform everything from registering test scenarios to executing them and checking results using a browser. . Each developer should be able to flexibly register test scenarios (screen transitions) and execute tests for each part of the screen transitions, and share scenario and test result information with the development team. This enables efficient and speedy test execution and management, such as having developers who can handle only the necessary parts test at the necessary timing.

<システム構成>
図1は、本発明の一実施の形態であるセキュリティテストシステムの構成例について概要を示した図である。セキュリティテストシステム1は、例えば、サーバ機器やクラウドコンピューティングサービス上に構築された仮想サーバ等によりサーバシステムとして構成されたセキュリティテストサーバ3と、各開発者がそれぞれ使用するパーソナルコンピュータ(PC)等の情報処理端末であるユーザ端末2とからなり、これらが図示しないインターネットやVPN(Virtual Private Network)、LAN(Local Area Network)などのネットワークを介して相互に接続される構成を有する。
<System configuration>
FIG. 1 is a diagram showing an overview of a configuration example of a security test system that is an embodiment of the present invention. The security test system 1 includes, for example, a security test server 3 configured as a server system by a server device, a virtual server built on a cloud computing service, etc., and a personal computer (PC) or the like used by each developer. User terminals 2, which are information processing terminals, are connected to each other via a network such as the Internet, a VPN (Virtual Private Network), or a LAN (Local Area Network) (not shown).

そして、ユーザ端末2やセキュリティテストサーバ3は、それぞれ、図示しない開発用のサーバシステム等にアクセスして、開発中のアプリケーションやシステム、すなわちセキュリティテストの対象である対象アプリケーション4を実行させることができる。 Then, the user terminal 2 and the security test server 3 can each access a development server system (not shown) and execute the application or system under development, that is, the target application 4 that is the target of the security test. .

ユーザ端末2は、例えば、ブラウザ20を備え、開発者からの指示や操作に基づいて、ブラウザ20を介して対象アプリケーション4を実行することができる。また、セキュリティテストサーバ3にアクセスして、対象アプリケーション4に係るセキュリティテストの実施やテストシナリオの登録、テスト結果の確認などを行うことができる。ブラウザ20は、ユーザが拡張機能やアドオンを実装することができるAPI(Application Programming Interface)等のインタフェースを有するものであれば、一般的に用いられているWebブラウザを適宜使用することができる。以下では、特に断らない限りブラウザ20としてGoogle Chrome(登録商標、以下同じ)を用いるものとして説明する。 The user terminal 2 has, for example, a browser 20, and can execute the target application 4 via the browser 20 based on instructions and operations from the developer. In addition, by accessing the security test server 3, it is possible to perform security tests related to the target application 4, register test scenarios, and check test results. As the browser 20, any commonly used web browser can be appropriately used as long as it has an interface such as an API (Application Programming Interface) that allows the user to implement extended functions and add-ons. In the following description, it is assumed that Google Chrome (registered trademark, hereinafter the same) is used as the browser 20 unless otherwise specified.

ブラウザ20は、拡張機能やアドオン(Google Chromeの場合はExtensions)として実装された遷移記録部21を有する。遷移記録部21は、ブラウザ20上でユーザが対象アプリケーション4を実行・操作した際における、ブラウザ20が送信したリクエストと受信したレスポンスの組合せを記録することで、ユーザによる操作や画面遷移を記録する機能を有する。記録した情報は、後述するセキュリティテストサーバ3に送られ、これに基づいて遷移シナリオが生成・登録される。なお、Webブラウザがアプリケーションとの間で授受するリクエストとレスポンスに基づいて画面遷移を記録し、さらに、記録したリクエストの内容を改変することで画面遷移や動作内容を変更する手法については、一般的なWebアプリケーションのテストツールにおいて広く用いられていることから、詳細な説明は行わない。 The browser 20 has a transition recording unit 21 implemented as an extended function or add-on (Extensions in the case of Google Chrome). The transition recording unit 21 records user operations and screen transitions by recording combinations of requests sent by the browser 20 and responses received when the user executes and operates the target application 4 on the browser 20. have a function. The recorded information is sent to the security test server 3, which will be described later, and based on this, a transition scenario is generated and registered. It should be noted that the technique of recording screen transitions based on the requests and responses exchanged between the web browser and the application, and then modifying the contents of the recorded requests to change the screen transitions and operation details is not a common technique. Since it is widely used in various web application testing tools, a detailed description will not be given.

セキュリティテストサーバ3は、図示しないCPU(Central Processing Unit)により、HDD(Hard Disk Drive)等の記録装置からメモリ上に展開したOS(Operating System)、Webサーバ等のミドルウェアや、その上で稼働するソフトウェアを実行することで、開発チームによるセキュリティテストの実施に係る後述する各種機能を実現する。なお、本実施の形態では、セキュリティテストサーバ3は、クラウドコンピューティングサービス上に構築された仮想サーバにより実装するものとする。 The security test server 3 uses a CPU (Central Processing Unit) (not shown) to develop an OS (Operating System) on a memory from a recording device such as a HDD (Hard Disk Drive), middleware such as a Web server, and runs on it. Executing the software implements various functions described below related to security testing by the development team. In this embodiment, the security test server 3 is assumed to be implemented by a virtual server built on a cloud computing service.

このセキュリティテストサーバ3は、例えば、ソフトウェアにより実装されたUI処理部31、基盤機能部32、シナリオ管理部33、遷移再現部34、診断処理部35、およびテナント管理部36などの各部を有する。また、データベースやファイル等により実装されたグラフデータベース(DB)37、診断データDB38、およびユーザDB39などの各データストアを有する。 The security test server 3 has units such as a UI processing unit 31, a basic function unit 32, a scenario management unit 33, a transition reproduction unit 34, a diagnosis processing unit 35, and a tenant management unit 36 implemented by software. It also has various data stores such as a graph database (DB) 37, a diagnostic data DB 38, and a user DB 39, which are implemented by databases, files, and the like.

UI処理部31は、例えば、図示しないWebサーバプログラムを介してユーザ端末2上のブラウザ20からの要求を受け、後述するようなセキュリティテストに係る各種の管理画面やテストの実行に係る画面等をブラウザ20に表示する機能を有する。基盤機能部32は、セキュリティテストサーバ3での各種処理の際に各部により共通的に用いられる各種の基盤機能を提供する機能を有する。基盤機能としては、例えば、いわゆるCI/CD(継続的インテグレーション/継続的デリバリー)環境、本システム自体のセキュリティ機能やログ管理機能などが含まれる。 For example, the UI processing unit 31 receives a request from the browser 20 on the user terminal 2 via a Web server program (not shown), and displays various management screens related to security tests, screens related to test execution, etc., which will be described later. It has a function of displaying on the browser 20 . The base function unit 32 has a function of providing various base functions commonly used by each unit during various processes in the security test server 3 . The base functions include, for example, a so-called CI/CD (continuous integration/continuous delivery) environment, a security function of the system itself, a log management function, and the like.

シナリオ管理部33は、例えば、ブラウザ20により記録された画面遷移等に係る情報に基づいて、後述するように、対象アプリケーション4の画面遷移に係る構造を有向グラフ(遷移グラフ)として表現し、これをグラフDB37に保持する機能を有する。また、ユーザから指定された検査対象のURL(Uniform Resource Locator)に対して、当該URLに至る最適経路(遷移シナリオ)を遷移グラフに基づいて生成し、出力する機能を有する。 For example, the scenario management unit 33 expresses the structure of the screen transitions of the target application 4 as a directed graph (transition graph) based on the information about the screen transitions recorded by the browser 20, as will be described later. It has a function of holding in the graph DB 37 . It also has a function of generating and outputting an optimal path (transition scenario) to a URL (Uniform Resource Locator) to be inspected designated by a user based on a transition graph.

遷移再現部34は、例えば、シナリオ管理部33により生成された遷移シナリオに係るリクエストを生成して、対象アプリケーション4に対して送信することで画面遷移を再現する機能を有する。診断処理部35は、例えば、セキュリティテストを実施する際に、遷移再現部34が対象アプリケーション4に対して送信したリクエストをインターセプトして、ユーザに指定された1つもしくは複数のシグネチャ(検査対象の脆弱性ごとの検査のパターン)に従ってパラメータを書き換え、そのレスポンスを判定することで、セキュリティホールや脆弱性の有無を診断し、診断結果を診断データDB38に記録する機能を有する。 The transition reproduction unit 34 has a function of reproducing screen transitions by, for example, generating a request related to the transition scenario generated by the scenario management unit 33 and transmitting the request to the target application 4 . For example, when performing a security test, the diagnostic processing unit 35 intercepts the request sent by the transition reproducing unit 34 to the target application 4 and extracts one or more signatures specified by the user. It has a function of diagnosing the presence or absence of security holes and vulnerabilities by rewriting parameters according to an inspection pattern for each vulnerability) and judging the response, and recording the diagnosis result in the diagnosis data DB 38 .

テナント管理部36は、例えば、複数の開発者が共同もしくは分担してセキュリティテストを行えるようにするためのチームの管理やテナント(契約者)の管理を行う機能を有する。開発者やチーム、テナントの情報についてはユーザDB39に登録する。 The tenant management unit 36 has, for example, a function of managing teams and tenants (contractors) so that a plurality of developers can perform security tests jointly or sharedly. Information on developers, teams, and tenants is registered in the user DB 39 .

<ユースケース>
図2は、本発明の一実施の形態におけるセキュリティテストのユースケースの例について概要を示した図である。検査対象の画面(URL)に対するセキュリティテストを実施するためには、検査対象の画面に実際に遷移する必要がある。本実施の形態では、まず、ユーザは、ブラウザ20の拡張機能である遷移記録部21により、検査対象の画面に至るまでのブラウザ20上での操作をレコード(記録)することで、画面遷移の情報を登録する(S1)。一度登録した遷移情報は、他のユーザも含めて繰り返し再利用することができる。
<Use case>
FIG. 2 is a diagram outlining an example of a security test use case according to an embodiment of the present invention. In order to perform a security test on the screen (URL) to be inspected, it is necessary to actually transition to the screen to be inspected. In this embodiment, first, the user records (records) operations on the browser 20 up to the screen to be inspected using the transition recording unit 21, which is an extended function of the browser 20. Register information (S1). Once registered, transition information can be reused repeatedly, including by other users.

その後、ユーザは、検査対象の画面(URL)と、シグネチャ(検査パターン)を選択してスキャン(脆弱性検査)を実行する(S2)。ここでは、セキュリティテストサーバ3の遷移再現部34および診断処理部35により、開発サーバ上の対象のURLにアクセスして、書き換えたリクエストを投げ続けることになる。 Thereafter, the user selects a screen (URL) to be inspected and a signature (inspection pattern), and executes scanning (vulnerability inspection) (S2). Here, the transition reproducing unit 34 and the diagnostic processing unit 35 of the security test server 3 access the target URL on the development server and continue to issue rewritten requests.

スキャンの実施後は、検知された脆弱性について、ユーザ(対象のテストを実施した者自身であってもよいし、開発チームのリーダーや担当者、上司等の承認権者であってもよい)がトリアージ(検査結果精査)を行う(S3)。すなわち、検知された脆弱性が誤検知によるものか否かの判定、および当該脆弱性に対する対応の要否の判定を行う。検査結果については、複数のユーザがそれぞれ行ったスキャン結果を統合・マージして一元的に管理するため、ユーザは、自身が一部の小さい単位のスキャンのみを行っていたとしても、全体の検査結果の一覧を見れば、自身が行ったスキャンの結果も含めて全体の状況を把握することができる。なお、トリアージを行うには一定の知識や経験が必要となるため、脆弱性の解説や、検知時のログ情報、過去のトリアージ時のコメント等の付随情報が重要となり、これらを当該脆弱性に関連付けて管理・提示できるようにするのが望ましい。 After the scan is performed, the user (it may be the person who performed the target test, or the person in charge of the development team, the person in charge, or the approval authority such as the superior) will be notified of the detected vulnerabilities. performs triage (scrutinization of test results) (S3). That is, it determines whether or not the detected vulnerability is caused by false detection, and determines whether or not countermeasures are necessary for the vulnerability. As for the inspection results, the scan results performed by multiple users are integrated and merged and managed centrally. By looking at the list of results, you can grasp the overall situation, including the results of the scans you have performed. Since a certain level of knowledge and experience is required to perform triage, accompanying information such as commentary on the vulnerability, log information at the time of detection, and comments at the time of past triage are important. It is desirable to be able to manage and present them in association with each other.

検知された脆弱性については、開発者がこれを修正する(S4)。修正後は、脆弱性が解消されていることを確認するため、ステップS2に戻って、スキャン以降の一連のステップを脆弱性が解消されるまで繰り返す。本実施の形態では、上述したように、スキャンの際に検査対象のURLとシグネチャを指定して、小さい単位でスキャンすることができるため、修正後のスキャンでは、修正した箇所だけに絞り込んでスキャンして効率的に確認することが可能である。 The developer fixes the detected vulnerability (S4). After correction, in order to confirm that the vulnerability has been resolved, the process returns to step S2 and repeats the series of steps after the scan until the vulnerability is resolved. In this embodiment, as described above, the URL and signature to be inspected can be specified at the time of scanning, and scanning can be performed in small units. It is possible to check efficiently by

<遷移シナリオ管理>
図3は、本発明の一実施の形態における遷移シナリオの管理の例について概要を示した図である。上述の図2のステップS1においてブラウザ20の遷移記録部21によりレコードされた画面遷移の情報について、本実施の形態では、図3の左側の図に示すように、遷移中の各画面をノードとし、画面間の遷移をエッジとした有向グラフ(遷移グラフ)として表現し、グラフDB37に登録して保持する。このとき、例えば、「1」→「2」→「3」→「4」の経路の遷移と、「1」→「2」→「5」→「4」の経路の遷移における「1」、「2」、「4」のノードのように、複数のレコード結果において共通する画面については同一のノードにマージして表す。これにより、遷移した画面について遷移グラフ上のリンク(経路)をたどって当該画面をノードとして追加する(レコードする)ことで、リンク網が大きくなり、到達可能な検査対象のURLが増えていくことになる。
<Transition scenario management>
FIG. 3 is a diagram showing an overview of an example of transition scenario management in one embodiment of the present invention. Regarding the screen transition information recorded by the transition recording unit 21 of the browser 20 in step S1 of FIG. , is represented as a directed graph (transition graph) with edges representing transitions between screens, and is registered and held in the graph DB 37 . At this time, for example, "1" in the path transition of "1"→"2"→"3"→"4" and the path transition of "1"→"2"→"5"→"4", Like nodes "2" and "4", screens common to a plurality of record results are represented by merging them into the same node. As a result, the links (routes) on the transition graph are traced for transitioned screens, and the screens are added (recorded) as nodes, thereby increasing the link network and increasing the reachable URLs to be inspected. become.

ユーザにより検査対象のURLが指定されると、セキュリティテストサーバ3のシナリオ管理部33は、遷移グラフから最適経路を生成する。例えば、図3の左側の図の遷移グラフにおいて、検査対象のURLとして「9」のノード(画面)が指定された場合に、ここに至る最適経路として、「1」→「6」→「7」→「9」の経路を生成する。なお、この最適経路は、必ずしも最短経路であることを要するものではない。生成された経路が図3の右側の図に示すように遷移シナリオとなり、この遷移に従ってスキャン(脆弱性検査)が行われる。 When the user designates a URL to be inspected, the scenario management section 33 of the security test server 3 generates an optimum route from the transition graph. For example, in the transition graph shown on the left side of FIG. ”→“9”. Note that this optimum route does not necessarily have to be the shortest route. The generated route becomes a transition scenario as shown in the diagram on the right side of FIG. 3, and scanning (vulnerability inspection) is performed according to this transition.

なお、遷移シナリオには、画面遷移の経路に加えて、例えば、各画面間の遷移を発生させるために必要となる画面操作(アクション)をレコードした情報も含まれる。例えば、「1」の画面から「6」の画面に遷移させるためには、「詳細」をクリックした後、「ユーザ情報」のボタンをクリックするアクションが必要であることを示している。これらの情報は、例えば、ブラウザ20が発生させるDOM(Document Object Model)のイベントや、XPath(XML Path Language)等により取得した当該画面のロケータ情報として表すことができる。 In addition to the screen transition path, the transition scenario also includes, for example, information in which screen operations (actions) required to generate transitions between screens are recorded. For example, in order to make the transition from screen "1" to screen "6", it is necessary to click "details" and then click the "user information" button. These pieces of information can be expressed, for example, as DOM (Document Object Model) events generated by the browser 20, or locator information of the relevant screen acquired by XPath (XML Path Language) or the like.

図4は、本発明の一実施の形態における遷移シナリオの記録手法の例について概要を示したシーケンス図である。まず、ユーザが、ブラウザ20上で対象の画面(URL)に至るまで操作を行うことで、ブラウザ20の拡張機能の遷移記録部21が、対象の画面までの遷移を記録する(図中1)。遷移記録部21は、シナリオ管理部33に対して、記録した遷移がグラフDB37に登録されているか否かを確認する(図中2)。シナリオ管理部33は、対象のURLに到達するまでの最適経路の遷移シナリオを生成して返却する(図中3)。 FIG. 4 is a sequence diagram outlining an example of a transition scenario recording method according to an embodiment of the present invention. First, the user operates the browser 20 up to the target screen (URL), and the transition recording unit 21 of the extended function of the browser 20 records the transition up to the target screen (1 in the figure). . The transition recording unit 21 confirms with the scenario management unit 33 whether or not the recorded transition is registered in the graph DB 37 (2 in the figure). The scenario management unit 33 generates and returns a transition scenario of the optimum route to reach the target URL (3 in the figure).

その後、ユーザが、ブラウザ20上のローカル環境で、返却された遷移シナリオに基づいて画面遷移を再現できるか否かをテストし(図中4)、結果がOKの場合は、対象のURLまでの画面遷移をシナリオ管理部33に対して本登録する(図中5)。シナリオ管理部33では、遷移シナリオをグラフDB37に本登録した上で、これを遷移再現部34に送信する(図中6)。そして、遷移再現部34は、取得した遷移シナリオに基づいて対象アプリケーション4に対してリクエストを送信して画面遷移を再現できるか否かをテストする(図中7)。テストがOKの場合は、シナリオ管理部33により、対象の遷移シナリオをスキャン可能であるとしてグラフDB37に登録する(図中8)。 After that, the user tests whether or not the screen transition can be reproduced based on the returned transition scenario in the local environment on the browser 20 (4 in the figure). The screen transition is officially registered with the scenario management unit 33 (5 in the figure). The scenario management unit 33 officially registers the transition scenario in the graph DB 37, and then transmits it to the transition reproduction unit 34 (6 in the figure). Then, the transition reproduction unit 34 transmits a request to the target application 4 based on the acquired transition scenario, and tests whether or not the screen transition can be reproduced (7 in the figure). If the test is OK, the scenario management unit 33 registers the target transition scenario in the graph DB 37 as being scannable (8 in the figure).

その後、ユーザは、シナリオ管理部33を介してブラウザ20に一覧表示等されたスキャン可能なURLの中から検査対象のURLを選択し、シグネチャを指定してスキャンの実行を指示する(図中9)。シナリオ管理部33では、指定されたURLに係る遷移シナリオを、グラフDB37に登録された遷移グラフに基づいて生成し、遷移再現部34により対象アプリケーション4上で遷移シナリオに従った画面遷移を再現するとともに、診断処理部35によりリクエストをインターセプトしてパラメータを書き換えることで、指定されたシグネチャに対する脆弱性検査を実行する(図中10)。 After that, the user selects a URL to be inspected from the list of scannable URLs displayed in the browser 20 via the scenario management unit 33, designates a signature, and instructs execution of scanning (9 in the figure). ). The scenario management unit 33 generates a transition scenario related to the specified URL based on the transition graph registered in the graph DB 37, and the transition reproduction unit 34 reproduces the screen transition according to the transition scenario on the target application 4. At the same time, the diagnostic processing unit 35 intercepts the request and rewrites the parameters, thereby executing the vulnerability test for the specified signature (10 in the figure).

<脆弱性検査結果の統合>
本実施の形態では、複数のユーザがそれぞれ個別に行った複数のスキャンの結果について、対象のURL、指定したパラメータ、および検知された脆弱性の組み合わせを単位として、同様の結果があった場合でもこれらをマージすることで、一元的に管理する。これにより、各ユーザは、それぞれが小さい単位でスキャンを繰り返していたとしても、自身が行ったスキャンの結果も含めて開発チーム全体の検査結果の状況を把握することができる。
<Integration of vulnerability inspection results>
In this embodiment, for the results of multiple scans individually performed by multiple users, even if there are similar results in units of combinations of target URLs, specified parameters, and detected vulnerabilities, By merging these, centrally managed. As a result, even if each user repeats scans in small units, each user can grasp the status of the inspection results of the entire development team, including the results of the scans performed by the user himself/herself.

図5は、本発明の一実施の形態における脆弱性検査結果を統合する例について概要を示した図である。図中の左側では、対象のURLに対する「スキャン1」の結果として、「パラメータA」、「パラメータB」、および「パラメータC」を指定した場合に脆弱性が検知され、また、対象のURLに対する別の「スキャン2」の結果として、「パラメータA」を指定した場合に「スキャン1」と同様の脆弱性が検知され、「パラメータB」、および「パラメータC」を指定した場合には脆弱性は検知されなかったという例を示している。 FIG. 5 is a diagram showing an overview of an example of integrating vulnerability inspection results according to one embodiment of the present invention. On the left side of the figure, vulnerabilities are detected when "parameter A", "parameter B", and "parameter C" are specified as a result of "scan 1" for the target URL. As a result of another "scan 2", a vulnerability similar to "scan 1" is detected when "parameter A" is specified, and a vulnerability is detected when "parameter B" and "parameter C" are specified. is not detected.

本実施の形態では、これら「スキャン1」と「スキャン2」の検査結果を統合(マージ)して一元化する。図中の右側では、マージした検査結果の例を示しており、対象のURLについて「パラメータA」ではいずれのスキャンでも同様の脆弱性が検知されたことから、検査結果が「検知」と設定されていることを示している。 In the present embodiment, the inspection results of these "scan 1" and "scan 2" are unified (merged). The right side of the figure shows an example of the merged inspection results. Since the same vulnerability was detected in both scans for "parameter A" for the target URL, the inspection result is set to "detected." indicates that

また、「パラメータB」では「スキャン1」で脆弱性が検知されたものの、その後の「スキャン2」では検知されず、その間に修正対応がされていた(例えば、いずれかのスキャン結果に対してこのようなコメントが残されていた等)ということで、検査結果が「対応済み」と設定されていることを示している。また、「パラメータC」では「スキャン1」で脆弱性が検知されたが、誤検知であると判断されている場合、その後の「スキャン2」で再度脆弱性が検知されたとしても、検査結果が自動的に「誤検知」と設定され、改めて検知結果を精査する必要がないことを示している。 Also, for "parameter B", although a vulnerability was detected in "scan 1", it was not detected in the subsequent "scan 2", and corrective measures were taken during that time (for example, for one of the scan results Such comments were left, etc.), indicating that the inspection result is set as "solved". In addition, if a vulnerability was detected in "Scan 1" for "Parameter C", but it was determined to be a false positive, even if a vulnerability was detected again in "Scan 2", the inspection result is automatically set as a "false positive", indicating that there is no need to scrutinize the detection results again.

図6は、本発明の一実施の形態における脆弱性検査結果を統合する際のルールの例について概要を示した図である。ここでは、同一のURLに対して同一のパラメータで行った2つの脆弱性検査の結果について、一方の結果に他方の結果をマージするときに脆弱性の検知状況をどのように設定するかの例を示している。なお、3つ以上の検査結果がある場合は、例えば、時系列に沿って過去の検査結果から1つずつ順にマージしていくことで最終的に全ての検査結果をマージすることができる。 FIG. 6 is a diagram outlining an example of rules for integrating vulnerability inspection results according to an embodiment of the present invention. Here is an example of how to set the vulnerability detection status when merging one result with the other for the results of two vulnerability tests performed with the same parameters for the same URL. is shown. If there are three or more test results, for example, all the test results can be finally merged by merging the past test results one by one in chronological order.

図示するように、本実施の形態では、「検知」、「受容」、「誤検知」、「確認待ち」、および「対応済み」の5つの検知状況の遷移によって管理する。概ね、「検知」は脆弱性が検知されている状況、「受容」は当該脆弱性の存在を受け入れた状況、「誤検知」は検知されていた脆弱性が誤検知であったという状況、「確認待ち」は検知された脆弱性に対して修正等がなされたため検知されなくなったという状況において、脆弱性が実際に解消したか否かを確認中である状況、「対応済み」は脆弱性が解消したことが確認できた状況であることを示している。 As shown in the figure, in the present embodiment, five detection state transitions of "detected", "accepted", "erroneous detection", "waiting for confirmation", and "handled" are managed. In general, "detection" is the situation in which a vulnerability is detected, "acceptance" is the situation in which the existence of the vulnerability is accepted, and "false positive" is the situation in which the vulnerability that was detected was a false positive. "Waiting for Confirmation" indicates that the detected vulnerability has been corrected and is no longer detected, and that it is currently being confirmed whether or not the vulnerability has actually been resolved. This indicates that it has been confirmed that the problem has been resolved.

なお、複数の検査結果をマージするには、それぞれのURLが同一であることが必要となり、URLの同一性が問題となるが、URLが僅かに相違するだけで実質的には同一の画面であるということもある。したがって、実質的に同一であるURLを名寄せするためのルールや条件を設定できるようにしてもよい。 In order to merge multiple inspection results, each URL must be the same, and the sameness of the URL is a problem. Sometimes there is. Therefore, rules and conditions for merging substantially identical URLs may be set.

<ユーザインタフェース>
本実施の形態では、セキュリティテストサーバ3のUI処理部31によりブラウザ20に表示される画面(UI)として、SPA(Single Page Application)として実装され、主に複数の情報の一覧的な表示や、各種の設定を行う画面を表示するメインUIと、ブラウザ20の拡張機能により、主に一覧から選択された個別の事項の詳細な情報や、画面遷移の記録に係る内容を表示するサブUIを有する。
<User interface>
In the present embodiment, a screen (UI) displayed on the browser 20 by the UI processing unit 31 of the security test server 3 is implemented as an SPA (Single Page Application), mainly displaying a list of multiple pieces of information, It has a main UI that displays a screen for performing various settings, and a sub UI that displays detailed information on individual items mainly selected from a list and details related to recording of screen transitions using the extended functions of the browser 20. .

メインUIでは、例えば、テナント(契約)単位での情報と、開発チーム単位での情報、さらにチーム内の個人の単位での情報を表示する。テナント単位では、例えば、テナント内での開発チームの管理(チームの作成・削除・アーカイブなど)や、テナントの設定(請求・課金管理、テナント内で共通の設定など)に係る画面を表示する。また、個人単位では、例えば、個人設定(表示名やアイコン等の変更など)やパスワードの変更などを行う画面を表示する。 The main UI displays, for example, information for each tenant (contract), information for each development team, and information for each individual within the team. For each tenant, for example, screens related to development team management within a tenant (team creation, deletion, archiving, etc.) and tenant settings (billing/accounting management, common settings within a tenant, etc.) are displayed. In addition, on an individual basis, for example, a screen for personal setting (change of display name, icon, etc.) and password change is displayed.

開発チーム単位では、例えば、検査対象となるURLの一覧、スキャン結果の一覧などの画面を表示する。開発チームに係る各種の設定や、チームに所属するメンバーの管理を行う画面を表示してもよい。また、対象の開発チームについてのテスト状況等を示すダッシュボード画面を表示してもよい。 For each development team, for example, screens such as a list of URLs to be inspected and a list of scan results are displayed. A screen for managing various settings related to the development team and members belonging to the team may be displayed. Also, a dashboard screen may be displayed that shows the test status of the target development team.

図7は、本発明の一実施の形態におけるブラウザ20に表示される画面の例について概要を示した図である。図7では、検査対象のURLの一覧表示の例を示している。例えば、検査対象のURLの一覧からユーザにより選択されたURLについて、右側に表示されたサイドパネルにより詳細情報をシームレスに表示する。サイドパネルに表示する詳細情報としては、図示するものの他に、例えば、URLの詳細(URLの名称やカテゴリ等)、リクエスト/レスポンス(URLのリクエスト/レスポンスのパラメータ一覧)、当該URLに到達するための遷移シナリオ(例えば、図3の例に示したような図)、関連URL(検査対象のURLからリンクされているURLの一覧)などが含まれる。 FIG. 7 is a diagram showing an overview of an example of a screen displayed on the browser 20 according to one embodiment of the invention. FIG. 7 shows an example of a list display of URLs to be inspected. For example, for a URL selected by the user from a list of URLs to be inspected, detailed information is seamlessly displayed on the side panel displayed on the right side. In addition to the detailed information displayed on the side panel, for example, URL details (URL name, category, etc.), request/response (URL request/response parameter list), transition scenario (for example, a diagram as shown in the example of FIG. 3), related URLs (a list of URLs linked from the URL to be inspected), and the like.

図8は、本発明の一実施の形態におけるブラウザ20に表示される画面の他の例について概要を示した図である。図8では、脆弱性検査(スキャン)の結果一覧の例を示している。例えば、検知された脆弱性の一覧からユーザにより選択された脆弱性について、右側に表示されたサイドパネルにより詳細情報をシームレスに表示する。サイドパネルに表示する詳細情報としては、図示するように、例えば、脆弱性の情報(脆弱性の説明や対応方法)、検知の詳細内容(実際に検査を行った際のリクエスト/レスポンス)、トリアージの内容(過去の検知結果や精査の判定結果、コメント等)などが含まれる。 FIG. 8 is a diagram outlining another example of the screen displayed on the browser 20 according to one embodiment of the present invention. FIG. 8 shows an example of a vulnerability check (scan) result list. For example, for vulnerabilities selected by the user from a list of detected vulnerabilities, the side panel displayed on the right seamlessly displays detailed information. Detailed information displayed on the side panel includes, as shown in the diagram, vulnerability information (vulnerability description and countermeasures), detection details (requests/responses when actually inspected), triage content (past detection results, judgment results of scrutiny, comments, etc.).

サブUIでは、例えば、ユーザがブラウザ20上で開いている画面に関連した情報を、ユーザが使用中の開発者ツール(例えば、Google Chromeの場合はDevTools)上に表示する。これにより、当該ユーザは対象アプリケーション4の開発中にシームレスにこれらの情報にアクセスしたり操作したりすることができ、生産性を向上させることができる。サブUIで表示する内容は、サブUI(ブラウザ拡張機能)に固有の機能である画面遷移のレコード機能に係る内容以外は、基本的に上述したメインUIにおいてサイドパネルに表示する内容と同様である。したがって、例えば、表示に係る各パーツをコンポーネントとして構成することで、メインUI(SPA)とサブUI(ブラウザ拡張機能)とで可能な限りパーツを共用することが望ましい。 In the sub UI, for example, information related to the screen that the user has opened on the browser 20 is displayed on the developer tools that the user is using (eg, DevTools in the case of Google Chrome). This allows the user to seamlessly access and operate this information during development of the target application 4, thereby improving productivity. The content displayed on the sub UI is basically the same as the content displayed on the side panel of the main UI described above, except for the content related to the screen transition recording function, which is a function unique to the sub UI (browser extension function). . Therefore, for example, it is desirable to share parts as much as possible between the main UI (SPA) and the sub UI (browser extension) by configuring each part related to display as a component.

なお、サブUI(ブラウザ拡張機能)に固有の機能である画面遷移のレコード機能に係る内容を除き、他のユーザインタフェースに係る構成については、上述した構成に限られず、要件や制約等に応じて適宜の構成とすることができる。例えば、本実施の形態では、メインUIをSPAとして実装するものとしているが、他の実装方式であってもよい。 In addition, except for the content related to the screen transition recording function, which is a function specific to the sub UI (browser extension function), the configuration related to other user interfaces is not limited to the configuration described above, and may be changed according to requirements, restrictions, etc. It can be configured as appropriate. For example, in the present embodiment, the main UI is implemented as SPA, but other implementation methods may be used.

以上に説明したように、本発明の一実施の形態であるセキュリティテストシステム1によれば、「セキュリティテスト」を開発工程に容易に組み込んで、開発者や開発チームが独自に行うことが可能となる。具体的には、各開発者が行ったスキャンの結果を統合・マージして一元的に管理するため、各開発者がそれぞれ一部の小さい単位のスキャンのみを行っていたとしても、全体の検査結果の一覧を見ることで、自身が行ったスキャンの結果も含めて全体の状況を把握することが可能となる。 As described above, according to the security test system 1 according to one embodiment of the present invention, the "security test" can be easily incorporated into the development process so that the developer and the development team can independently perform it. Become. Specifically, since the results of scans performed by each developer are integrated and merged and centrally managed, even if each developer has only performed a small unit of scan, the entire inspection can be performed. By looking at the list of results, it is possible to grasp the overall situation, including the results of the scans performed by the user himself/herself.

また、画面遷移のシナリオの登録に際して、各開発者がブラウザ20上で行った操作と画面遷移を、ブラウザ20の拡張機能として実装される遷移記録部21により記録し、有向グラフとして管理する。これにより、他の開発者が登録したものも含む既存の画面遷移を再利用することが可能となり、画面遷移の任意の箇所から柔軟に画面遷移を記録することができるとともに、スキャンについても一部の小さい単位に絞り込んで繰り返しスキャンするということが可能となる。すなわち、対象アプリケーション4のうち必要な部分だけを必要なタイミングで対応可能な開発者がテストする等、効率的でスピーディーなテスト実施と管理が可能となる。 Further, when registering screen transition scenarios, the operations and screen transitions performed by each developer on the browser 20 are recorded by the transition recording unit 21 implemented as an extended function of the browser 20 and managed as a directed graph. This makes it possible to reuse existing screen transitions, including those registered by other developers. It is possible to narrow down to smaller units and scan repeatedly. In other words, efficient and speedy test execution and management are possible, such as testing of only the necessary portions of the target application 4 by a developer capable of responding at the necessary timing.

以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は上記の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。 Although the invention made by the present inventor has been specifically described above based on the embodiments, the present invention is not limited to the above embodiments, and can be variously modified without departing from the scope of the invention. Needless to say.

なお、上記の実施の形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、上記の実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。 It should be noted that the above embodiment has been described in detail in order to explain the present invention in an easy-to-understand manner, and is not necessarily limited to those having all the described configurations. Moreover, it is possible to add, delete, or replace some of the configurations of the above-described embodiments with other configurations.

例えば、図7の例の検査対象のURLの一覧や、図8の例の脆弱性検査(スキャン)の結果一覧において、各URLに対して、ユーザがスキャンを実行する前、又は、実行してスキャン結果を参照した際などに、対象URLに開発バージョン番号(開発内容を特定する番号)を入力し、各URLのスキャン結果と開発バージョン番号を関連付けて記録するような構成としてもよい。これにより、ユーザは、開発バージョン番号から、各スキャン結果や対象URLを検索して表示することも可能となる。 For example, in the list of URLs to be inspected in the example of FIG. 7 and the result list of vulnerability inspection (scan) in the example of FIG. It is also possible to input a development version number (a number specifying the content of development) to the target URL when referring to the scan result, and record the scan result of each URL and the development version number in association with each other. This enables the user to search and display each scan result or target URL from the development version number.

また、本実施の形態では、画面遷移の情報を有向グラフとして保持するものとしているが、同様の機能を実現できる他の方式により保持するものであってもよい。 In addition, in the present embodiment, screen transition information is held as a directed graph, but it may be held by another method that can realize a similar function.

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

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

本発明は、アプリケーションの脆弱性を検査するセキュリティテストシステムに利用可能である。 INDUSTRIAL APPLICABILITY The present invention can be used for a security test system that inspects application vulnerabilities.

1…セキュリティテストシステム、2…ユーザ端末、3…セキュリティテストサーバ、4…対象アプリケーション、
20…ブラウザ、21…遷移記録部、
31…UI処理部、32…基盤機能部、33…シナリオ管理部、34…遷移再現部、35…診断処理部、36…テナント管理部、37…グラフDB、38…診断データDB、39…ユーザDB
1 -- security test system, 2 -- user terminal, 3 -- security test server, 4 -- target application,
20... browser, 21... transition recording unit,
31 UI processing unit 32 base function unit 33 scenario management unit 34 transition reproduction unit 35 diagnosis processing unit 36 tenant management unit 37 graph DB 38 diagnosis data DB 39 user database

Claims (1)

アプリケーションにおけるセキュリティの脆弱性の有無を検査するセキュリティテストシステムであって、
ユーザによるブラウザ上での前記アプリケーションに対する操作により発生するリクエスト/レスポンスの情報を含む画面遷移の情報を記録する遷移記録部と、
複数のユーザのコンピュータによりそれぞれ記録された複数の前記画面遷移の情報をマージした遷移グラフをグラフ記録部に遷移シナリオとして記録するシナリオ管理部と、
前記遷移シナリオの内容に従って前記アプリケーションに対してリクエストを送信する遷移再現部と、
前記遷移再現部により送信されたリクエストを取得して、指定された脆弱性の検査パターンに従って当該リクエストの内容を改変して前記アプリケーションに対して送信し、前記アプリケーションから受信したレスポンスの内容に基づいて前記指定された脆弱性の有無を検査する診断処理部と、を有し、
検査結果に対してユーザのコンピュータから指定されたコメントを当該検査結果に関連付けて記録し、当該記録したコメントをユーザのコンピュータに対して提示する、セキュリティテストシステム。
A security testing system for checking for security vulnerabilities in an application,
a transition recording unit that records screen transition information including request/response information generated by a user's operation of the application on a browser;
a scenario management unit for recording, in a graph recording unit, a transition graph obtained by merging a plurality of pieces of screen transition information respectively recorded by computers of a plurality of users, as a transition scenario;
a transition reproducing unit that transmits a request to the application according to the contents of the transition scenario;
acquiring the request transmitted by the transition reproducing unit, modifying the contents of the request according to the specified vulnerability inspection pattern and transmitting the request to the application, and based on the contents of the response received from the application a diagnostic processing unit that inspects the presence or absence of the specified vulnerability;
A security test system that records a comment specified by a user's computer on an inspection result in association with the inspection result, and presents the recorded comment to the user's computer.
JP2021145656A 2021-03-29 2021-09-07 security test system Pending JP2022153237A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021145656A JP2022153237A (en) 2021-03-29 2021-09-07 security test system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021055127A JP6942277B1 (en) 2021-03-29 2021-03-29 Security test system
JP2021145656A JP2022153237A (en) 2021-03-29 2021-09-07 security test system

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2021055127A Division JP6942277B1 (en) 2021-03-29 2021-03-29 Security test system

Publications (1)

Publication Number Publication Date
JP2022153237A true JP2022153237A (en) 2022-10-12

Family

ID=77847063

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2021055127A Active JP6942277B1 (en) 2021-03-29 2021-03-29 Security test system
JP2021145656A Pending JP2022153237A (en) 2021-03-29 2021-09-07 security test system

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2021055127A Active JP6942277B1 (en) 2021-03-29 2021-03-29 Security test system

Country Status (1)

Country Link
JP (2) JP6942277B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023094338A (en) * 2021-12-23 2023-07-05 エムオーテックス株式会社 Vulnerability diagnosing device, control method of vulnerability diagnosing device, and vulnerability diagnosing program

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4745819B2 (en) * 2005-12-26 2011-08-10 三菱電機株式会社 Vulnerability determination system and inspection device
JP4193196B1 (en) * 2007-05-30 2008-12-10 株式会社ファイブドライブ Web service providing system inspection apparatus and Web service providing system inspection program
US10152559B2 (en) * 2013-02-28 2018-12-11 Kyoto University Relational graph database system
JP2016038627A (en) * 2014-08-05 2016-03-22 Kddi株式会社 Monitoring system, observation apparatus, analyzer, monitoring method, and computer program

Also Published As

Publication number Publication date
JP2022152374A (en) 2022-10-12
JP6942277B1 (en) 2021-09-29

Similar Documents

Publication Publication Date Title
JP7092868B2 (en) Digital Asset Traceability and Guarantee with Distributed Ledger
Molyneaux The art of application performance testing: from strategy to tools
US9910941B2 (en) Test case generation
US10152367B2 (en) System dump analysis
US10922212B2 (en) Systems and methods for service catalog analysis
JP5246258B2 (en) File generation program, file generation apparatus, and file generation method
Frantz et al. A cloud‐based integration platform for enterprise application integration: A Model‐Driven Engineering approach
JP6283096B2 (en) Program test service
US20170351509A1 (en) Prototype management system
JP6942277B1 (en) Security test system
JP5968451B2 (en) Computer system and program
US11113357B2 (en) Method and system for onboarding a virtual network function package utilized by one or more network services
Pillai Software architecture with Python
CN117112060A (en) Component library construction method and device, electronic equipment and storage medium
JP2010267265A (en) Generation of driver for analysis of event-driven application
US9170796B2 (en) Content space environment representation
US10326648B2 (en) Virtual use of electronic design automation tools
Raab et al. Unified Configuration Setting Access in Configuration Management Systems
KR102602534B1 (en) Test automation system and method for testing system-on-chip design validation
Waseem et al. Understanding the Issues, Their Causes and Solutions in Microservices Systems: An Empirical Study
Velozo et al. Evaluation of a Mobile Software Development Company
Ochia Unified System on Chip RESTAPI Service (USOCRS)
Serban et al. BaseHub Platform for Monitoring IoT Devices
Ghorbani Validation and Verification of Modular Software Applications
Fernandes Desenvolvimento de um ERP com CI/CD, Autenticação e Auditoria do sistema