WO2019026172A1 - セキュリティ診断装置およびセキュリティ診断方法 - Google Patents
セキュリティ診断装置およびセキュリティ診断方法 Download PDFInfo
- Publication number
- WO2019026172A1 WO2019026172A1 PCT/JP2017/027822 JP2017027822W WO2019026172A1 WO 2019026172 A1 WO2019026172 A1 WO 2019026172A1 JP 2017027822 W JP2017027822 W JP 2017027822W WO 2019026172 A1 WO2019026172 A1 WO 2019026172A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- account
- parameter
- http request
- destination url
- transition destination
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/168—Implementing security features at a particular protocol layer above the transport layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
Definitions
- the present invention relates to a security diagnostic device that diagnoses inadequacy of authority management.
- Web application diagnostic tools and security diagnostic services are available as methods to check the presence of web application vulnerabilities. These diagnose a presence or absence of a known vulnerability by performing a mock attack on a web application.
- Inappropriate authority management is a case where, when there are two accounts having different authorities, a page or valid function that can be transited by only one account can be transitive or executable by the other account.
- a diagnostic practitioner visually identifies gaps in privileges management by visually identifying differences between accounts for transmissible pages or enabled functions, and setting them in a tool or manually executing a mock attack. The thing is done.
- Patent Document 1 creates a supposed access API by tracing a call of an authority request API and a call of an actual access API when an object is accessed, and a call of the actual access API It is confirmed whether it is associated with. In the case where the actual access API is not associated with the assumed access API, Patent Document 1 determines that the least privilege violation.
- Patent Document 1 there is a problem that it is not possible to determine whether there is a deficiency in the management of authority if assignment of the authority to the object is unknown.
- the present invention has been made to solve the above-mentioned problems, and provides a security diagnostic device capable of diagnosing whether there is a defect in authority management without grasping the transition destination URL of the Web application in advance.
- the purpose is to get.
- the fixed parameter having the same value as the parameter included in the HTTP request sent to the transition destination URL by the second account of the privilege
- the extraction unit that extracts the URL and the parameter of the HTTP request to the transition destination URL by the general rights account include fixed parameters extracted by the extraction unit, and the value is different from the value of the account of the privilege
- the fixed Based on a request generation unit that outputs an HTTP request in which the value of a privileged account is set in the parameter, a request transmission / reception unit that transmits an HTTP request to a transition destination URL with a general rights account, and receives an HTTP response, and an HTTP response Determine vulnerability of transition destination URL A determination unit, with a.
- a security diagnostic device capable of diagnosing whether there is a deficiency in authority management without grasping the transition destination URL of the Web application in advance.
- FIG. 2 is a block diagram showing an example of the hardware configuration of the security diagnosis device according to the first embodiment.
- FIG. 2 is a block diagram showing an example of a functional configuration of the diagnostic device according to the first embodiment.
- FIG. 6 is a view showing an example of an account information table according to the first embodiment.
- FIG. 5 is a diagram showing an example of a login parameter table according to the first embodiment.
- FIG. 6 is a diagram showing an example of a target URL table according to the first embodiment.
- FIG. 5 is a diagram showing an example of an HTTP request / response table according to the first embodiment.
- FIG. 5 is a diagram showing an example of a parameter table according to the first embodiment.
- FIG. 6 shows an example of a fixed parameter table according to the first embodiment.
- FIG. 6 is a diagram showing an example of a diagnosis result table according to the first embodiment.
- FIG. 8 is a view showing an example of a result detail table according to the first embodiment.
- the flowchart which shows the flow of processing of the input part, crawling implementation part, and extraction part concerning Embodiment 1.
- FIG. FIG. 6 shows an example of an HTTP request / response table 441 according to the first embodiment.
- FIG. 6 shows an example of a parameter table 451 according to the first embodiment.
- 6 is a flowchart showing a flow of processing of a comparison unit, a request generation unit, a request transmission / reception unit, a determination unit, and an output unit according to the first embodiment.
- FIG. 15 is a flowchart showing details of processing of the comparing unit in step S201 of FIG.
- FIG. 14 The figure which shows an example of the HTTP request response table which concerns on Embodiment 2.
- FIG. 7 is a view showing an example of a parameter table according to the second embodiment.
- FIG. 7 is a view showing an example of a fixed parameter table according to the second embodiment.
- FIG. 7 is a view showing an example of a fixed parameter table according to the second embodiment.
- FIG. FIG. 15 is a flowchart showing details of processing of the comparing unit in step S201 of FIG. 14 according to the second embodiment;
- FIG. FIG. 8 is a view showing an example of a diagnosis result table according to the second embodiment.
- FIG. 16 is a view showing an example of a result detail table according to the second embodiment.
- FIG. 13 is an entire block diagram including an example of a functional configuration of a diagnostic device according to a third embodiment.
- the flowchart which shows the flow of a process of the input part which concerns on Embodiment 3, a crawl implementation part, and an extraction part.
- FIG. 18 is a view showing an example of a parameter table of transition data DB according to the third embodiment.
- 16 is a flowchart showing a flow of processing of a comparison unit, a request generation unit, a request transmission / reception unit, a determination unit, and an output unit according to the third embodiment.
- FIG. 16 is a block diagram of the whole including an example of a functional configuration of a diagnosis object extraction device according to a fourth embodiment.
- FIG. 16 is an entire block diagram including an example of a functional configuration of a diagnosis execution device according to a fourth embodiment.
- 15 is a flowchart showing a flow of processing of an input unit, a crawling implementation unit, and an extraction unit of a diagnosis object extraction device according to a fourth embodiment.
- the flowchart which shows the flow of processing of the input part of the diagnostic execution apparatus which concerns on Embodiment 4, a request production
- FIG. 1 is a block diagram showing an example of a hardware configuration of a security diagnostic apparatus (hereinafter referred to as a diagnostic apparatus) 200 according to the first embodiment.
- the diagnostic device 200 includes a communication interface 101 that communicates with a Web application to be diagnosed and HTTP, a processor 102 that performs arithmetic processing on HTTP requests and HTTP responses, a memory 103 that holds arithmetic results, and the like, and an input that receives input from a user.
- the processor 102 is realized by a CPU that executes a program stored in a memory, and a processing circuit such as a system LSI (Large Scale Integration).
- the processor 102 may be configured by cooperation of a plurality of processing circuits.
- the memory 103 is configured by, for example, a read only memory (ROM), a random access memory (RAM), and a solid state drive (SSD).
- the auxiliary storage device 105 is configured of, for example, an HDD (Hard Disk Drive).
- FIG. 2 is a block diagram of the whole including an example of a functional configuration of the diagnostic device 200 according to the first embodiment.
- the web application 203 transmits an HTTP request to the web server 201 via the Internet 202 based on an instruction from the diagnostic device 200.
- the web application 203 receives an HTTP response from the web server 201, and outputs the content of the HTTP response to the diagnostic device 200.
- the diagnostic device 200 may receive an HTTP response from the web server 201 in some cases.
- the diagnostic device 200 includes an input unit 301, a crawling execution unit 302, an extraction unit 303, a comparison unit 304, a request generation unit 305, a request transmission / reception unit 306, a determination unit 307, an output unit 308, an account information database (hereinafter referred to as an account information database).
- an account information database hereinafter referred to as an account information database.
- a transition data database hereinafter referred to as transition data DB
- transition data DB a fixed parameter database
- result data database hereinafter referred to as result data DB
- Programs and data for realizing the functions of the input unit 301, the crawling implementation unit 302, the extraction unit 303, the comparison unit 304, the request generation unit 305, the request transmission / reception unit 306, the determination unit 307, and the output unit 308 are stored in the memory 103. It is memorized. Further, the account information DB 309, the transition data DB 310, the fixed parameter DB 311, and the result data DB 312 are respectively arranged on the auxiliary storage device 105, and are appropriately expanded in the memory 103.
- the input unit 301 is read by the memory 103 and executed by the processor 102.
- the input unit 301 stores the value input via the input interface 106 in the auxiliary storage device 105.
- the input unit 301 outputs the input value to the account information DB 309 and the transition data DB 310 on the auxiliary storage device 105.
- a target URL to be diagnosed and account information (login information, authority information) are input to the input unit 301.
- the account information DB 309 holds two types of tables, an account information table 410 and a login parameter table 420.
- FIG. 3 is a diagram showing an example of an account information table according to the first embodiment.
- the account information table 410 is a table having fields for storing the ID of an account that can log in to the Web application 203, a password, and the authority (account authority) assigned to the account.
- a privilege is an administrator right that allows all operations.
- the general right is an authority in which the operation range is limited only to the range in which the general user can operate.
- the number of accounts stored in the account information table 410 is two or more for each right. It is to see differences in parameters due to differences in accounts with the same authority.
- FIG. 4 is a diagram showing an example of a login parameter table according to the first embodiment.
- the login parameter table 420 is a table having fields for storing parameter names necessary for login.
- the transition data DB 310 holds three types of tables, a target URL table 430, an HTTP request / response table 440, and a parameter table 450.
- FIG. 5 is a diagram showing an example of a target URL table according to the first embodiment.
- the target URL table 430 is a table having a field for storing the target URL input by the input unit 301.
- FIG. 6 is a diagram showing an example of the HTTP request / response table according to the first embodiment.
- the HTTP request / response table 440 includes the transition destination URL to which the HTTP request is sent, the response code to the HTTP request to the transition destination URL, the content of the response to the HTTP request to the transition destination URL, and the HTTP request to the transition destination URL. It is a table having a field for storing the source of the transition source that is the source, and the authority of the account that has sent the HTTP request to the destination of the URL.
- FIG. 7 is a diagram showing an example of the parameter table 450 according to the first embodiment.
- the parameter table 450 is a table having fields for storing, for each transition destination URL, the parameter name of the HTTP request, the value of the parameter, and the value at which the parameter is described (URL query part, header part or body part). is there.
- the value indicating the position where the parameter is described is the name part of the query string in the URL of the HTTP request, the header name of the HTTP header part, and the variable name of the HTTP body part.
- the value of the parameter is a part of the value assigned to the parameter.
- the crawling execution unit 302 is read into the memory 103 and executed by the processor 102.
- the crawling implementation unit 302 reads the account information DB 309 and the transition data DB 310 from the auxiliary storage device 105.
- the crawling implementation unit 302 logs in to each of the target URLs stored in the transition data DB 310 with each account stored in the account information DB 309, and crawls a web page that can be transitioned using the logged-in account.
- the Web application 203 According to the instruction of the crawling implementation unit 302, the Web application 203 generates an HTTP request, and transmits the HTTP request to the Web server 201 via the Internet 202.
- the crawling implementation unit 302 stores the HTTP request generated at the time of crawling and the HTTP response thereto in the transition data DB 310 on the auxiliary storage device 105.
- Crawling is a technology in which a program called a crawler follows all hyperlinks in a given URL, collects page information of transition destinations, and performs indexing. In addition, it is possible to acquire all the information of the HTTP request and HTTP response generated from the local proxy by performing crawling via the local proxy.
- the extraction unit 303 is read by the memory 103 and executed by the processor 102.
- the extraction unit 303 reads the transition data DB 310 from the auxiliary storage device 105.
- the difference of the parameter of the HTTP request is output to the fixed parameter DB 311 on the auxiliary storage device 105.
- the fixed parameter DB 311 holds a fixed parameter table 460.
- FIG. 8 is a diagram showing an example of the fixed parameter table 460 according to the first embodiment.
- the fixed parameter table 460 is a table having a field for storing the parameter name of the HTTP request for each transition destination URL, and a field for indicating whether the parameter is fixed or variable.
- the comparison unit 304 is read by the memory 103 and executed by the processor 102.
- the comparison unit 304 reads the transition data DB 310 from the auxiliary storage device 105.
- the comparison unit 304 compares the parameters for the same record in which the transition destination URL stored in the transition data DB 310 is the same, and outputs the transition destination URL having a different portion as the diagnosis target URL to the result data DB 312.
- the request generation unit 305 is read by the memory 103 and executed by the processor 102.
- the request generation unit 305 reads the result data DB 312 and the transition data DB 310 from the auxiliary storage device 105.
- the request transmission / reception unit 306 is read by the memory 103 and executed by the processor 102.
- the request generation unit 305 instructs the request transmission / reception unit 306 to generate an HTTP request for the URL to be diagnosed.
- the request transmission / reception unit 306 instructs the Web application 203 to generate an HTTP request for the URL to be diagnosed.
- the request transmission / reception unit 306 outputs the HTTP request generated by the Web application 203 to the request generation unit 305.
- the request generation unit 305 rewrites the HTTP request generated by the Web application 203 for trial in order to test whether the same operation as general rights and privileges can be performed on the diagnosis target URL, and the rewritten HTTP request is transmitted to the request transmission / reception unit 306 Output to
- the request transmission / reception unit 306 transmits the HTTP request input from the request transmission / reception unit 306 to the Web server 201 via the Internet 202.
- the request transmission / reception unit 306 receives an HTTP response to an HTTP request from the web server 201 via the Internet 202, and outputs the received HTTP response to the determination unit 307.
- the determination unit 307 is read by the memory 103 and executed by the processor 102.
- the determination unit 307 reads the HTTP response received by the request transmission / reception unit 306 and the transition data DB 310 from the auxiliary storage device 105.
- the determination unit 307 determines the presence or absence of vulnerability from the HTTP response and the HTTP response to the HTTP request with the privilege stored in the transition data DB 310, and outputs the determined result to the result data DB 312.
- the output unit 308 is read by the memory 103 and executed by the processor 102.
- the output unit 308 reads out from the auxiliary storage device 105 the result data DB 312 stored in the auxiliary storage device 105.
- the output unit 308 outputs the determination result read out from the result data DB 312 to the output interface 106.
- the result data DB 312 holds two types of tables, a diagnosis result table 470 and a result detail table 480.
- FIG. 9 is a diagram showing an example of the diagnosis result table 470 according to the first embodiment.
- FIG. 10 is a diagram showing an example of the result detail table 480 according to the first embodiment.
- the diagnosis result table 470 is a table having fields for storing the diagnosis target URL and the result of the determination unit 307.
- the result detail table 480 is a table having fields for storing diagnostic target URLs determined to be vulnerable and parameter names used.
- FIG. 11 is a flowchart showing the flow of processing of the input unit 301, the crawling implementation unit 302, and the extraction unit 303 according to the first embodiment.
- a solid line indicates a flow path, and a broken line indicates data writing and calling for each DB.
- FIG. 12 is a diagram showing an example of the HTTP request / response table 441 according to the first embodiment.
- FIG. 13 is a diagram showing an example of the parameter table 451 according to the first embodiment.
- the input unit 301 When account information and a target URL are input through the input interface 106, the input unit 301 starts processing. In step S101 of FIG. 11, the input unit 301 stores the input account information in the account information table 410 and the login parameter 420 of the account information DB 309.
- the account information includes login information such as an account ID and password required when logging in to the web application 203, account privileges of the account, and parameter names of parameters necessary for login.
- the input unit 301 stores the account ID, the password, and the account authority in the items of the account ID, the password, and the authority of the account information table 410.
- the account ID “mng1”, the password “1234abc”, and the right “privilege” are stored as the item number U01.
- the input unit 301 stores the parameter name in the login parameter table 420.
- the parameter “accountid” is stored as the item number ID
- the parameter “passwd” is stored as the item number PWD.
- the input unit 301 stores the input target URL in the target URL table 430 of the transition data DB 310.
- the target URL “http://xxx.com” is stored in the target URL table 430. The processing proceeds to step S102.
- step S102 the crawling implementation unit 302 selects one record of accounts for which crawling is not performed from the account information table 410 stored in the account information DB 309, and reads out the account ID and the password. The processing proceeds to step S103.
- step S103 the crawling implementation unit 302 reads the target URL "http://xxx.com" from the target URL table 430 of the transition data DB 310.
- the crawling execution unit 302 logs in to the web application 203 with the account ID and password of the selected account, and crawls the target URL.
- the process will be described by way of an example where the crawling implementation unit 302 logs in to the Web application 203 with the account of the item number U01 of the account information table 410.
- the crawling execution unit 302 transmits an HTTP request to the target URL “http://xxx.com”, and further, “http://xxx.com/login.com” which is a link on “http://xxx.com”. Send an HTTP request to php.
- the crawling execution unit 302 sets the contents of the HTTP response to the item number URL 01 of the HTTP request / response table 441 of the transition data DB 310. save.
- the crawling implementation unit 302 sets “http://xxx.com/login.php” as the transition destination URL, “200” as the response code, Header information and body information of the response as the response content, and “http: // transition source URL”. /xxx.com, save "privileges" in the authority.
- the authority stores the type of authority of the logged-in account.
- the crawling implementation unit 302 stores the parameter in the parameter table 451 of the transition data DB 310. Although not shown in the parameter table 451 of FIG. 13, it is assumed that parameters are stored.
- the crawling implementation unit 302 transmits an HTTP request to “http://xxx.com/top.php” which is a link on “http://xxx.com/login.php”.
- the crawling implementation unit 302 stores the content of the HTTP response in the item number URL 02 of the HTTP request / response table 441.
- the crawling implementation unit 302 sets “http://xxx.com/top.php” as the transition destination URL, “200” as the response code, Header information and body information of the response as the response content, and “http: // transition source URL”. Save “Privileges" in the permissions, /xxx.com/login.php.
- the parameters auth and userID are included in the HTTP request sent to the transition destination URL “http://xxx.com/top.php”.
- the crawling implementation unit 302 sets the parameter name, the value of the parameter, and the value (query part of the URL, the header part or the body part) indicating the position where the parameter is described in the item numbers URL02-01 and URL02-02 of the parameter table 451. save.
- the item numbers URL02-01 and URL02-02 indicate that the parameters are URL02.
- the crawling implementation unit 302 assigns item numbers so that the correspondence can be known to which HTTP request the parameter is included. In the present embodiment, correspondence is indicated by item numbers, but other methods may be used.
- the crawling execution unit 302 follows the target URL “http://xxx.com” and all links under it, collects the page information of the transition destination as described above, and collects the collected information as an HTTP request / response. It is stored in the table 441 and the parameter table 451. When page information is collected until there is no link destination not transitioning even in the transition destination page, the crawling execution unit 302 ends crawling and logs out. The processing proceeds to step S104.
- step S104 the crawling implementation unit 302 determines whether there is an account for which crawling has not been performed.
- the crawling execution unit 302 knows whether crawling has been performed for each account in the account information table 410. If there is an account for which crawling has not been performed, the process proceeds to step S102, and crawling execution unit 302 selects an account for which crawling has not been performed and performs crawling.
- the crawling execution unit 302 repeats the flow of steps S102 to S104 until there is no account for which crawling has not been performed.
- step S104 It returns to description of the flowchart of FIG. If there is no account for which crawling has not been performed in step S104, the process proceeds to step S105.
- step S105 the extraction unit 303 performs a process of extracting the difference in the value of the parameter of the HTTP request for the same record with the privilege and the privilege for the same transition destination.
- the extraction unit 303 selects, from the HTTP request / response table 441, records in which the authority is a privilege and the transition destination URL is the same.
- the case where item number URL 02 and item number URL 04 are selected will be described as an example.
- the parameters related to the item number URL 02 and URL 04 are stored in URL 02-01 to URL 02-02 and URL 04-01 to URL 04-02 of the parameter table 451.
- the extraction unit 303 extracts the difference between these parameters.
- the extraction unit 303 Since the values of the URL 02-01 and the URL 04-01 have the same value, the extraction unit 303 stores “URL 04-01” as the target of the item number PARAM 02-01 of the fixed parameter table 460 and “fixed” as the fixed. Since the values of the URL 02-02 and the URL 04-02 are different, the extraction unit 303 stores “URL 04-02” as the target of the item number PARAM 02-02 of the fixed parameter table 460 and “variation” as the fixed. The process ends.
- the parameter of HTTP request is the value of the parameter which is different every time when logging in such as session ID and time, the value of fixed parameter which does not change every time when logging in such as header information such as destination URL and content-type, user ID Such as login does not change every time the account is divided into three different parameter values ,.
- the extraction unit 303 can extract, from the parameters of the HTTP request, fixed parameters that do not change each time the user logs in.
- FIG. 14 is a flowchart showing a flow of processing of the comparison unit 304, the request generation unit 305, the request transmission / reception unit 306, the determination unit 307, and the output unit 308 according to the first embodiment.
- the solid lines indicate the flow path, and the broken lines indicate writing and calling of data to each DB.
- step S201 the comparison unit 304 selects a record from the HTTP request / response table 441 of the transition data DB 310, and compares it with other records. Details of step S201 will be described using FIG.
- FIG. 15 is a flowchart showing details of the process of the comparing unit 304 in step S201 of FIG. 14 according to the first embodiment.
- step S301 the comparison unit 304 selects one record from the HTTP request / response table 441 and determines whether there is another record having the same transition destination URL. If there is no record having the same transition destination URL, the process proceeds to step S302. If there is another record having the same transition destination URL, the process proceeds to step S304.
- step S302 the comparison unit 304 determines whether the authority of the selected record is a privilege. If the authority of the selected record is a privilege, the process proceeds to step S303. If the authority of the selected record is not a privilege, the comparison unit 304 excludes the transition destination URL of the selected record from the diagnostic target, and the process ends.
- step S303 the comparison unit 304 stores the transition destination URL of the selected record in the diagnosis result table 470 of the result data DB 312 of FIG. 9, and the process ends.
- step S304 the comparison unit 304 refers to the parameter table 451 and determines whether the record having the same transition destination URL has parameter names for only records of privileges. If the parameter name exists only for the privilege record, the process proceeds to step S305. If the parameter name is not the only record of the privilege, the process proceeds to step S306.
- step S305 the comparison unit 304 stores the transition destination URL of the selected record and the parameter name in the diagnosis result table 470 of the result data DB 312, and the process ends.
- step S306 the comparison unit 304 refers to the parameter table 451 and determines whether the same parameter name exists in the privilege and the general right for the record having the same transition destination URL. If the same parameter name exists for the privilege and the general right, the process proceeds to step S307. If the same parameter name does not exist for the privilege and the general right, the comparison unit 304 excludes the transition destination URL of the selected record from the diagnosis target, and the process ends.
- step S307 the comparison unit 304 refers to the parameter table 451 and determines whether the same parameter name exists for the privilege and the general right, and the value is the same. If the values are not the same, the process proceeds to step S308. If the values are the same, the comparison unit 304 excludes the transition destination URL of the selected record from the diagnostic target, and the process ends.
- step S308 the comparison unit 304 refers to the fixed parameter table 460 and determines whether the parameter is fixed. If the parameter is fixed, the process proceeds to step S305. If the parameter is not fixed, the comparison unit 304 excludes the transition destination URL of the selected record from the diagnostic target, and the process ends.
- step S202 the request generation unit 305 uses the information stored in the account information DB 309 to log in to the Web application 203 with a general rights account. It is assumed that the user logs in with the account "user 1" of item No. U03. The processing proceeds to step S203.
- step S203 the request generation unit 305 selects a diagnosis target URL from the diagnosis result table 470, and reads from the HTTP request / response table 441 a record in which a transition destination URL that matches the selected diagnosis target URL is stored.
- the access right of the read record is only privilege, it means that the transition destination URL exists only when the privilege is.
- the processing proceeds to step S204.
- the access right of the read record is both a record of privilege and a record of general right, it means that the URL to be diagnosed also exists in the general right.
- the processing proceeds to step S205.
- step S 204 the request generation unit 305 outputs the URL to be diagnosed to the Web application 203 via the request transmission / reception unit 306.
- the request generation unit 305 receives an HTTP request of a general right for the URL to be diagnosed from the Web application 203 via the request transmission / reception unit 306.
- the request generation unit 305 generates an HTTP request based on the record read from the HTTP request / response table 441.
- the read record is a privilege record.
- the request generation unit 305 reads the parameter set in the HTTP request from the record of the parameter table 451 associated with the record read from the HTTP request / response table 441.
- the read parameters are parameters set in the HTTP request in the case of privilege.
- the request generation unit 305 refers to the fixed parameter table 460 of the fixed parameter DB 311, and does not change the value of the HTTP request parameter when the read parameter is fixed. If the read parameter is a change, the value of the HTTP request parameter is changed to the value of the HTTP request parameter of the general right received from the Web application 203. Further, the request generation unit 305 stores the URL to be diagnosed and the parameter name whose value has been changed in the result detail table 480 of the result data DB 312. The request generation unit 305 outputs the HTTP request generated in this manner to the request transmission / reception unit 306. The request transmission / reception unit 306 transmits the HTTP request input from the request generation unit 305 to the Web server 201, and outputs an HTTP response from the Web server 201 to the determination unit 307. The processing proceeds to step S206.
- step S205 the request generation unit 305 outputs the diagnosis target URL to the Web application 203 via the request transmission / reception unit 306, and the Web application 203 via the request transmission / reception unit 306 sends an HTTP request for a general right to the diagnosis target URL.
- receive. The request generation unit 305 reads the parameter set in the HTTP request from the record of the parameter table 451 associated with the record read from the HTTP request / response table 441 in step S203, in the case of the privilege.
- the request generation unit 305 refers to the fixed parameter table 460 of the fixed parameter DB 311, and when there is a record corresponding to the parameter included in the HTTP request of the general right and is fixed, the value of the corresponding parameter of the HTTP request is a parameter of the privilege Change to the value of Further, the request generation unit 305 stores the URL to be diagnosed and the parameter name whose value has been changed in the result detail table 480 of the result data DB 312. If there is a record corresponding to the parameter included in the HTTP request of the general right and there is a change, the request generation unit 305 does not change the value of the corresponding parameter of the HTTP request.
- the fixed parameters are, for example, parameters of authority identification. Parameters of fluctuation are, for example, user ID and time.
- the request generation unit 305 adds a parameter not included in the HTTP request of the general right among the read parameters of the privilege to the HTTP request.
- the request generation unit 305 outputs the HTTP request generated in this manner to the request transmission / reception unit 306.
- the request transmission / reception unit 306 transmits the HTTP request input from the request generation unit 305 to the Web server 201.
- the request transmission / reception unit 306 outputs the received HTTP response to the determination unit 307. The processing proceeds to step S206.
- step S206 the determination unit 307 compares the response code of the input HTTP response with the response code of the normal response stored in the HTTP request / response table 441.
- the determination unit 307 determines the vulnerability by comparing the values of the response code. When the response code is the same, the operation of the privilege can be executed even with the general right, and the determination unit 307 determines that the user is vulnerable. If the response codes are different, the determination unit 307 determines that there is no vulnerability.
- the determination unit 307 stores the presence or absence of the determined vulnerability in the vulnerability of the record corresponding to the diagnosis target URL in the diagnosis result table 470. The processing proceeds to step S207.
- step S207 the determination unit 307 determines whether the vulnerability determination process has been completed for all the records in the diagnosis result table 470. If the item of vulnerability is set for all the records of the diagnosis result table 470, the determining unit 307 determines that the process is completed. If it is completed, the process proceeds to step S208. If not completed, the process returns to step S202. The processes in steps S202 to S207 are repeated until the items of vulnerability are set for all the records in the diagnosis result table 470.
- step S208 the output unit 308 outputs the data of the result data DB 312 to the output interface 104, and the process ends.
- the received HTTP response and the response code of the normal HTTP response stored in the HTTP request / response table 441 are the same, it is determined that vulnerability exists, but Header information or Body information of the HTTP response
- the vulnerability may be determined using the value contained in.
- the parameters included in the HTTP request transmitted to the transition destination URL by the first account of privilege among the parameters included in the HTTP request transmitted to the transition destination URL by the first account of privilege, the parameters included in the HTTP request transmitted to the transition destination URL by the second account of privilege and The extraction unit 303 for extracting fixed parameters having the same value, and the parameters of the HTTP request to the transition destination URL by the general rights account include the fixed parameters extracted by the extraction unit 303, and the value is a privilege If it differs from the value of the account, request generation unit 305 that outputs an HTTP request in which the value of the account of the privilege is set in fixed parameters, and an HTTP request is sent to the transition destination URL by the account of general rights, and an HTTP response is received.
- the determination unit 307 that determines the vulnerability of the transition destination URL based on the TP response is provided, it is possible to diagnose whether there is a deficiency in authority management without grasping the transition destination URL of the Web application in advance. it can. By checking whether it is possible to execute a transition to a page not displayed on the screen of the general right or an operation that can not be performed, it is diagnosed whether there is a defect in the right management. Human cost can also be reduced because the diagnostic device 200 diagnoses the insufficient authority management.
- the request generation unit 305 sets the value of the account of the privilege fixed. Since the parameter is added to the HTTP request and the HTTP request to which the fixed parameter is added is output, it is possible to diagnose whether there is a deficiency in authority management for parameters not included in the HTTP request of the general right.
- the extraction unit 303 is different in value from the parameter included in the HTTP request transmitted to the transition destination URL by the second account.
- the extraction unit 303 extracts fixed parameters that do not change each time the user logs in, but in the present embodiment, the combination of the transition destination URL and the parameters is An embodiment will be shown which extracts the same parameter whose value changes every time the user logs in. In the present embodiment, after all the configurations described in the first embodiment are provided, additional configurations will be described.
- FIG. 16 is a diagram showing an example of the HTTP request / response table 442 according to the second embodiment.
- FIG. 17 is a diagram showing an example of the parameter table 452 according to the second embodiment.
- step S103 of FIG. 11 the crawling implementation unit 302 crawls with the selected account, logs out, logs in again to the web application 203 with the same account, and performs the second crawling on the target URL.
- the crawling execution unit 302 logs out.
- the HTTP request / response table 443 and the parameter table 453 in which the same values as the HTTP request / response table 442 in FIG. 16 and the parameter table 452 in FIG. 17 obtained in the first crawling are stored are obtained. . Note that illustration is omitted because the contents are the same.
- the extraction unit 303 includes the HTTP request / response table 442 obtained by the first crawling, the parameter table 452, the HTTP request / response table 443 obtained by the second crawling, and the parameter table 453. With reference to each item number of the privilege of the HTTP request / response table 442, the difference between the parameters in the first crawling and the second crawling is extracted.
- FIG. 18 is a diagram showing an example of the fixed parameter table 462 according to the second embodiment. Since the same value is obtained in the first crawling and the second crawling, all the parameters in the fixed parameter table 461 are fixed.
- the extraction unit 303 selects a record of which the privilege is a privilege among the records of the HTTP request / response table 442.
- the extraction unit 303 extracts the difference in the parameters for the same record as the transition destination URL of the selected record, the authority of which is privilege from the HTTP request / response table 442.
- the extraction unit 303 stores the difference between the extracted parameters in the fixed parameter table 462.
- FIG. 19 is a diagram showing an example of the fixed parameter table 462 according to the second embodiment. Since the values of the URL and the user ID are the same when comparing the item number URL 03 and the URL 04, “fixed” is stored in the fixed fields of the PARAM 03-01 and PARAM 03-02 of the fixed parameter table 462. On the other hand, since page has a different value, “variation” is stored in the fixed field of PARAM 03-03 in the fixed parameter table 462.
- FIG. 20 is a diagram showing an example of the HTTP request / response table 444 according to the second embodiment.
- the extraction unit 303 determines that the parameter page whose “variable” is stored in the fixed field in the fixed parameter table 462 is a parameter necessary to uniquely represent the page.
- the extraction unit 303 adds the field of transition parameter to the HTTP request / response table 442, and generates the HTTP request / response table 444 in which the value of page is set.
- step S201 the comparison unit 304 selects a record from the HTTP request / response table 444 of the transition data DB 310, and compares it with other records. Details of the process of step S201 will be described with reference to FIG.
- FIG. 21 is a flowchart showing details of processing of the comparing unit 304 in step S201 of FIG. 14 according to the second embodiment.
- FIG. 22 is a diagram showing an example of a diagnosis result table 471 according to the second embodiment.
- FIG. 23 is a diagram showing an example of the result detail table 481 according to the second embodiment.
- step S401 in FIG. 21 the comparison unit 304 selects one record from the HTTP request / response table 444, and determines whether there is another record having the same transition destination URL and transition parameter. If there is no record with the same transition destination URL and transition parameter, the process proceeds to step S402. If there is another record with the same transition destination URL and transition parameter, the process proceeds to step S404.
- step S402 the comparison unit 304 determines whether the authority of the selected record is a privilege. If the authority of the selected record is a privilege, the process proceeds to step S403. If the authority of the selected record is not a privilege, the comparison unit 304 excludes the transition destination URL of the selected record from the diagnostic target, and the process ends.
- step S403 the comparison unit 304 stores the transition destination URL of the selected record and the transition parameter in the diagnosis result table 471 of the result data DB 312, and the process ends.
- step S404 the comparison unit 304 refers to the parameter table 452 and determines whether the parameter name exists for the record having the same transition destination URL and transition parameter as to only the record of the privilege. If the parameter name exists only for the privilege record, the process proceeds to step S405. If the parameter name is not the only record of the privilege, the process proceeds to step S406.
- step S405 the comparison unit 304 stores the transition destination URL of the selected record, the transition parameter, and the parameter name in the result detail table 481 of the result data DB 312, and the process ends.
- step S406 the comparison unit 304 refers to the parameter table 452 and determines whether the same parameter name exists with the privilege and the general right for the record having the same transition destination URL and transition parameter. If the same parameter name exists for the privilege and the general right, the process proceeds to step S407. If the same parameter name does not exist for the privilege and the general right, the comparison unit 304 excludes the transition destination URL and the transition parameter of the selected record from diagnosis targets, and the process ends.
- step S407 the comparison unit 304 refers to the parameter table 444, and determines whether the same parameter name exists for the privilege and the general right, and the value is the same. If the values are not the same, the process proceeds to step S305. If the values are the same, the comparison unit 304 excludes the transition destination URL and the transition parameter of the selected record from the diagnostic target, and the process ends.
- the crawling execution unit 302 stores the information obtained in the first and second crawlings in the HTTP request / response table 442 and the parameter table 452 without identifying the information.
- Information obtained in the second crawling may be stored for identification.
- the number of tables may be increased, or the number of columns of the table may be increased.
- the extraction unit 303 transmits the HTTP request transmitted to the transition destination URL by the second account.
- the fixed parameter value included in the HTTP request sent from the first account to the transition destination URL is different for the fixed parameter having the same value as the included parameter, the combination of the fixed parameter with the transition destination URL Since the page is extracted as a transition parameter that uniquely indicates the page, it is possible to diagnose deficiencies in authority management even when the page is uniquely indicated by a combination of the URL and the transition parameter.
- FIG. 24 is a block diagram of the whole including an example of a functional configuration of a diagnosis apparatus 210 according to the third embodiment. The difference from the diagnostic device 200 of the first embodiment is that the unique data DB is deleted.
- FIG. 25 is a flowchart showing a flow of processing of the input unit 301, the crawling implementation unit 302, and the extraction unit 303 according to the third embodiment.
- the difference from the flowchart of FIG. 11 of the first embodiment is that the process is output to the transition data DB 310 from step S105.
- FIG. 26 is a diagram showing an example of the parameter table 454 of the transition data DB 310 according to the third embodiment.
- the difference from the parameter table 451 of the first embodiment is that fixed fields are added.
- the extraction unit 303 extracts the difference in the value of the parameter of the HTTP request for the same record with the privilege and the privilege for the same transition destination. Since the values of the URL 02-01 and the URL 04-01 have the same value, the extraction unit 303 stores “fixed” as the item number URL 02-01 of the fixed parameter table 460 and the item number URL 04-01. Further, since the values of the URL 02-02 and the URL 04-02 are different, the extraction unit 303 stores “variation” in the item number PARAM 02-02 of the fixed parameter table 460 and the item number URL 04-02. The process ends.
- FIG. 27 is a flowchart showing a flow of processes of the comparison unit 304, the request generation unit 305, the request transmission / reception unit 306, the determination unit 307, and the output unit 308 according to the third embodiment.
- the difference from the flowchart of FIG. 14 of the first embodiment is that information on whether or not the parameter is unique is read out from the parameter table 454 of the transition parameter DB in step S201, step S204 and step S205.
- a function of performing crawling twice for each account to determine a specific parameter necessary for page transition may be included.
- the transition data DB 310 since the transition data DB 310 also holds the information of the unique parameter DB 311, the unique parameter DB 311 having the same number of records as the records of the parameter table T 203 of the transition data DB 310 is reduced and used in the unique parameter DB 311 Memory resources can be reduced.
- the diagnostic device 200 extracts the diagnostic target URL and determines vulnerability, but in the present embodiment, the diagnostic target extraction device extracts the diagnostic target URL.
- the embodiment which extracts and the vulnerability of the diagnostic object URL which the diagnostic implementation apparatus extracted is shown is shown.
- FIG. 28 is a block diagram of the whole including one example of a functional configuration of a diagnosis object extraction device 220 relating to the fourth embodiment.
- the diagnosis object extraction device 220 includes an input unit 301, a crawling implementation unit 302, an extraction unit 303, a comparison unit 304, an account information DB 313, a transition data DB 314, and an output unit 315.
- the account information DB 313 and the transition data DB 314 hold the same functions as the account information DB 309 and the transition data DB 310 of the third embodiment.
- the comparison unit 304 is read by the memory 103 and executed by the processor 102.
- the comparison unit 304 reads the transition data DB 310 from the auxiliary storage device 105.
- the comparison unit 304 compares the parameters for the same record in which the transition destination URL stored in the transition data DB 310 is the same, and outputs the transition destination URL having different portions as a diagnosis target URL to the output unit 315 together with the parameter.
- the output unit 315 is read by the memory 103 and executed by the processor 102.
- the output unit 315 outputs the URL to be diagnosed input from the comparison unit 304 to the output interface 106.
- FIG. 29 is a block diagram of the whole including an example of a functional configuration of a diagnosis execution device 230 according to the fourth embodiment.
- the diagnosis execution device 230 includes an input unit 316, a request generation unit 305, a request transmission / reception unit 306, a determination unit 307, an output unit 308, an account information DB 317, a transition data DB 318, and a result data DB 319.
- Account information DB 317, transition data DB 318 and result data DB 319 hold the same functions as account information DB 309, transition data DB 310 and result data DB 312 of the third embodiment.
- the input unit 316 is read into the memory 103 and executed by the processor 102.
- the values input through the input interface 106 are stored in the auxiliary storage device 105.
- the input unit 316 outputs the input account information (login information, authority information) to the account information DB 317 on the auxiliary storage device 105. Further, the input unit 316 outputs the URL to be diagnosed and the parameters to the transition data DB 318.
- FIG. 30 is a flowchart showing a flow of processing of the input unit 301, the crawling implementation unit 302 and the extraction unit 303 of the diagnosis object extraction device 220 according to the fourth embodiment.
- the processes of steps S501 to S505 are the same as the processes of steps S101 to S105 of FIG. 25 of the third embodiment.
- step S505 the extraction unit 303 outputs, to the comparison unit 304, fixed parameters of the HTTP request for the same record with the same privileges and privileges for the same transition destination.
- step S506 when the parameter input from the extraction unit 303 exists in the privilege and does not exist in the general right or the values are different, the comparison unit 304 outputs the transition destination URL and the parameter value as the diagnosis target data 320. Output via the unit 315. Also, the output unit 315 outputs the account information stored in the account information DB 313. The process ends.
- FIG. 31 is a flowchart showing a flow of processing of the input unit 316, the request generation unit 305, the request transmission / reception unit 306, the determination unit 307, and the output unit 308 of the diagnosis execution device 230 according to the fourth embodiment.
- step S601 account information and diagnostic target data 320 are input to the input unit 316.
- the input unit 316 stores the input account information in the account information DB 317. Further, the input unit 316 stores the diagnosis target data 320 in the transition data DB 318 and the result data DB.
- Steps S602 to S608 are the same as steps S202 to S208 in the third embodiment.
- a function of performing crawling twice for each account to determine a specific parameter necessary for page transition may be included.
- the information of the diagnosis object output from the diagnosis object extraction device 220 may be collected, and the security diagnosis may use an existing method.
- information on an object to be diagnosed collected from a web application used in existing security diagnosis may be input to the diagnosis execution device 230.
- the diagnosis target extraction apparatus 220 includes an extraction unit 303 that extracts a fixed parameter having the same value, and the fixed parameter extracted by the extraction unit 303 is included in the parameter of the HTTP request to the transition destination URL by the general rights account.
- the HTTP request is output to the transition destination URL by the request generation unit 305 which outputs the HTTP request in which the value of the account of the privilege is set in the fixed parameter Send and receive HTTP response Since the diagnostic execution device 230 is provided with the quest transmission / reception unit 306 and the determination unit 307 that determines the vulnerability of the transition destination URL based on the HTTP response, grasping the transition destination URL of the Web application in advance It is possible to diagnose whether there is a lack of authority management.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer And Data Communications (AREA)
- Debugging And Monitoring (AREA)
- Storage Device Security (AREA)
Abstract
セキュリティ診断装置は、特権の第1のアカウントにより遷移先URLに送信したHTTPリクエストに含まれるパラメータのうち、特権の第2のアカウントにより遷移先URLに送信したHTTPリクエストに含まれるパラメータと値が同じである固定のパラメータを抽出する抽出部と、一般権のアカウントによる遷移先URLへのHTTPリクエストのパラメータに抽出部で抽出された固定のパラメータが含まれており、値が特権のアカウントの値と異なる場合、固定のパラメータに特権のアカウントの値を設定したHTTPリクエストを出力するリクエスト生成部と、一般権のアカウントによりHTTPリクエストを遷移先URLに送信し、HTTPレスポンスを受信するリクエスト送受信部と、HTTPレスポンスに基づいて遷移先URLの脆弱性を判定する判定部と、を備えたので、遷移先URLを事前に把握することなく権限管理の不備を診断できる。
Description
本発明は、権限管理の不備を診断するセキュリティ診断装置に関する。
インターネットに公開されているWebアプリケーションの脆弱性は日々発見されており、悪意のある攻撃者による攻撃は、警戒しなければならない脅威の一つである。Webアプリケーションの脆弱性の有無を確認する方法には、Webアプリケーション診断ツールやセキュリティ診断サービスがある。これらは、Webアプリケーションに対して疑似攻撃を実施することで、既知の脆弱性の有無を診断する。
Webアプリケーションの脆弱性の一つに、権限管理の不備がある。権限管理の不備とは、異なる権限を持つ2つのアカウントがあった場合、一方のアカウントでのみ遷移可能なページまたは有効な機能が、他方のアカウントでも遷移可能または実行可能なケースである。従来、診断の実施者が目視で遷移可能なページまたは有効な機能についてのアカウント間の差異を確認して、ツールに設定するまたは手動で疑似攻撃を実行することにより、権限管理の不備を診断することが行われている。しかしながら、人的コストが掛かかるため、人的コストを削減することが求められている。
特許文献1は、オブジェクトに対してアクセスを行った際の、権限要求APIの呼出と実際のアクセスAPIの呼出とをトレースすることで、想定されるアクセスAPIを作成し、実際のアクセスAPIの呼出と対応付けられているかを確認している。想定されるアクセスAPIに対して実際のアクセスAPIが対応付けられない場合、特許文献1は最小権限違反と判断している。
しかしながら、特許文献1では、オブジェクトに対する権限の割当てが不明の場合には権限管理の不備があるかどうかを判断することができないという問題点があった。
本発明は上記のような問題点を解決するためになされたもので、Webアプリケーションの遷移先URLを事前に把握することなく権限管理の不備があるかどうかを診断することができるセキュリティ診断装置を得ることを目的としている。
特権の第1のアカウントにより遷移先URLに送信したHTTPリクエストに含まれるパラメータのうち、特権の第2のアカウントにより遷移先URLに送信したHTTPリクエストに含まれるパラメータと値が同じである固定のパラメータを抽出する抽出部と、一般権のアカウントによる遷移先URLへのHTTPリクエストのパラメータに抽出部で抽出された固定のパラメータが含まれており、値が特権のアカウントの値と異なる場合、固定のパラメータに特権のアカウントの値を設定したHTTPリクエストを出力するリクエスト生成部と、一般権のアカウントによりHTTPリクエストを遷移先URLに送信し、HTTPレスポンスを受信するリクエスト送受信部と、HTTPレスポンスに基づいて遷移先URLの脆弱性を判定する判定部と、を備えた。
本発明によれば、Webアプリケーションの遷移先URLを事前に把握することなく権限管理の不備があるかどうかを診断することができるセキュリティ診断装置を得ることができる。
以下この発明の実施の形態を、図を参照して説明する。なお、参照する図において同一もしくは相当する部分には同一の符号を付している。
実施の形態1.
はじめにハードウェア構成について説明する。
図1は、実施の形態1に係るセキュリティ診断装置(以下、診断装置と称す)200のハードウェア構成の一例を示すブロック図である。
診断装置200は、診断対象のWebアプリケーションとHTTPでの通信を行う通信インターフェース101、HTTPリクエストとHTTPレスポンスに対する演算処理を行うプロセッサ102、演算結果などを保持するメモリ103、ユーザからの入力を受け付ける入力インターフェース104、データを記憶するための補助記憶装置105、および画面に結果を表示する出力インターフェース106を備える。
実施の形態1.
はじめにハードウェア構成について説明する。
図1は、実施の形態1に係るセキュリティ診断装置(以下、診断装置と称す)200のハードウェア構成の一例を示すブロック図である。
診断装置200は、診断対象のWebアプリケーションとHTTPでの通信を行う通信インターフェース101、HTTPリクエストとHTTPレスポンスに対する演算処理を行うプロセッサ102、演算結果などを保持するメモリ103、ユーザからの入力を受け付ける入力インターフェース104、データを記憶するための補助記憶装置105、および画面に結果を表示する出力インターフェース106を備える。
プロセッサ102は、メモリに記憶されたプログラムを実行するCPU、システムLSI(Large Scale Integration)等の処理回路により、実現される。プロセッサ102は、複数の処理回路が連携して構成されてもよい。メモリ103は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)、SSD(Solid State Drive)で構成される。補助記憶装置105は、例えば、HDD(Hard Disk Drive)で構成される。
次に機能構成について説明する。
図2は、実施の形態1に係る診断装置200の機能構成の一例を含む全体のブロック図である。
Webアプリケーション203は、診断装置200からの指示に基づき、インターネット202を介してWebサーバ201にHTTPリクエストを送信する。Webアプリケーション203は、Webサーバ201からHTTPレスポンスを受信し、HTTPレスポンスの内容を診断装置200に出力する。診断装置200は、Webサーバ201からHTTPレスポンスを受信する場合もある。
図2は、実施の形態1に係る診断装置200の機能構成の一例を含む全体のブロック図である。
Webアプリケーション203は、診断装置200からの指示に基づき、インターネット202を介してWebサーバ201にHTTPリクエストを送信する。Webアプリケーション203は、Webサーバ201からHTTPレスポンスを受信し、HTTPレスポンスの内容を診断装置200に出力する。診断装置200は、Webサーバ201からHTTPレスポンスを受信する場合もある。
診断装置200は、入力部301、クローリング実施部302、抽出部303、比較部304、リクエスト生成部305、リクエスト送受信部306、判定部307、出力部308、アカウント情報データベース(以下、アカウント情報DBと称す)309、遷移データデータベース(以下、遷移データDBと称す)310、固定パラメータデータベース(以下、固定パラメータDBと称す)311および結果データデータベース(以下、結果データDBと称す)312を備える。
入力部301、クローリング実施部302、抽出部303、比較部304、リクエスト生成部305、リクエスト送受信部306、判定部307および出力部308の各機能を実現するためのプログラム及びデータは、メモリ103に記憶される。また、アカウント情報DB309、遷移データDB310、固定パラメータDB311および結果データDB312はそれぞれ補助記憶装置105上に配置され、適宜メモリ103に展開される。
入力部301は、メモリ103に読み出され、プロセッサ102で実行される。入力部301は、入力インターフェース106を介して入力された値を補助記憶装置105へ保存する。入力部301は、入力された値を補助記憶装置105上のアカウント情報DB309と遷移データDB310へ出力する。入力部301には、診断対象の対象URLと、アカウント情報(ログイン情報、権限情報)が入力される。
アカウント情報DB309は、アカウント情報テーブル410およびログインパラメータテーブル420の2種類のテーブルを保持する。
図3は、実施の形態1に係るアカウント情報テーブルの一例を示す図である。
アカウント情報テーブル410は、Webアプリケーション203にログイン可能なアカウントのID、パスワード、アカウントに割り当てられた権限(アカウント権限)を保存するフィールドを持つテーブルである。アカウント権限は、特権と一般権の2種類がある。特権は、全ての操作が可能である管理者権限である。一般権は、一般ユーザが操作可能な範囲のみに操作範囲を制限した権限である。
アカウント情報テーブル410に保存するアカウントの数は各権限で2つ以上とする。同じ権限でアカウントの違いによるパラメータの差異をみるためである。
アカウント情報テーブル410は、Webアプリケーション203にログイン可能なアカウントのID、パスワード、アカウントに割り当てられた権限(アカウント権限)を保存するフィールドを持つテーブルである。アカウント権限は、特権と一般権の2種類がある。特権は、全ての操作が可能である管理者権限である。一般権は、一般ユーザが操作可能な範囲のみに操作範囲を制限した権限である。
アカウント情報テーブル410に保存するアカウントの数は各権限で2つ以上とする。同じ権限でアカウントの違いによるパラメータの差異をみるためである。
図4は、実施の形態1に係るログインパラメータテーブルの一例を示す図である。
ログインパラメータテーブル420は、ログイン時に必要なパラメータ名を保存するフィールドを持つテーブルである。
ログインパラメータテーブル420は、ログイン時に必要なパラメータ名を保存するフィールドを持つテーブルである。
遷移データDB310は、対象URLテーブル430、HTTPリクエスト・レスポンステーブル440およびパラメータテーブル450の3種類のテーブルを保持する。
図5は、実施の形態1に係る対象URLテーブルの一例を示す図である。
対象URLテーブル430は、入力部301で入力された対象URLを保存するフィールドを持つテーブルである。
対象URLテーブル430は、入力部301で入力された対象URLを保存するフィールドを持つテーブルである。
図6は、実施の形態1に係るHTTPリクエスト・レスポンステーブルの一例を示す図である。
HTTPリクエスト・レスポンステーブル440は、HTTPリクエストの送信先である遷移先URL、遷移先URLへのHTTPリクエストに対するレスポンスコード、遷移先URLへのHTTPリクエストに対するレスポンス内容、遷移先URLへのHTTPリクエストの送信元である遷移元URL、および遷移先URLへHTTPリクエストを送信したアカウントの権限を保存するフィールドを持つテーブルである。
HTTPリクエスト・レスポンステーブル440は、HTTPリクエストの送信先である遷移先URL、遷移先URLへのHTTPリクエストに対するレスポンスコード、遷移先URLへのHTTPリクエストに対するレスポンス内容、遷移先URLへのHTTPリクエストの送信元である遷移元URL、および遷移先URLへHTTPリクエストを送信したアカウントの権限を保存するフィールドを持つテーブルである。
図7は、実施の形態1に係るパラメータテーブル450の一例を示す図である。
パラメータテーブル450は、遷移先URL毎にHTTPリクエストのパラメータ名、パラメータの値、パラメータが記載されている位置を示す値(URLのクエリ部、ヘッダ部またはボディ部)を保存するフィールドを持つテーブルである。パラメータが記載されている位置を示す値は、HTTPリクエストのURL内のクエリ文字列の名前の部分、HTTPヘッダ部のヘッダ名、HTTPボディ部の変数名である。また、パラメータの値は、パラメータに付与された値の部分である。
パラメータテーブル450は、遷移先URL毎にHTTPリクエストのパラメータ名、パラメータの値、パラメータが記載されている位置を示す値(URLのクエリ部、ヘッダ部またはボディ部)を保存するフィールドを持つテーブルである。パラメータが記載されている位置を示す値は、HTTPリクエストのURL内のクエリ文字列の名前の部分、HTTPヘッダ部のヘッダ名、HTTPボディ部の変数名である。また、パラメータの値は、パラメータに付与された値の部分である。
図2の診断装置200の機能構成の説明に戻る。
クローリング実施部302は、メモリ103に読み出され、プロセッサ102で実行される。クローリング実施部302は、アカウント情報DB309と遷移データDB310を補助記憶装置105から読み出す。クローリング実施部302は、遷移データDB310に記憶された対象URLに対して、アカウント情報DB309に記憶された各アカウントでログインを行い、ログインしたアカウントで遷移可能なWebページに対してクローリングを行う。クローリング実施部302の指示により、Webアプリケーション203はHTTPリクエストを生成し、インターネット202を介してWebサーバ201にHTTPリクエストを送信する。Webアプリケーション203からHTTPレスポンスを受信すると、HTTPリクエストとそれに対するレスポンスをクローリング実施部302に出力する。クローリング実施部302は、クローリング時に発生するHTTPリクエストとそれに対するHTTPレスポンスを補助記憶装置105上の遷移データDB310に保存する。
クローリング実施部302は、メモリ103に読み出され、プロセッサ102で実行される。クローリング実施部302は、アカウント情報DB309と遷移データDB310を補助記憶装置105から読み出す。クローリング実施部302は、遷移データDB310に記憶された対象URLに対して、アカウント情報DB309に記憶された各アカウントでログインを行い、ログインしたアカウントで遷移可能なWebページに対してクローリングを行う。クローリング実施部302の指示により、Webアプリケーション203はHTTPリクエストを生成し、インターネット202を介してWebサーバ201にHTTPリクエストを送信する。Webアプリケーション203からHTTPレスポンスを受信すると、HTTPリクエストとそれに対するレスポンスをクローリング実施部302に出力する。クローリング実施部302は、クローリング時に発生するHTTPリクエストとそれに対するHTTPレスポンスを補助記憶装置105上の遷移データDB310に保存する。
クローリングとは、クローラーと呼ばれるプログラムが、与えられたURLにある全てのハイパーリンクを辿り、遷移先のページ情報を収集してインデックス化を行う技術である。また、クローリングの実行時にローカルプロキシを介することで、ローカルプロキシから発生したHTTPリクエストとHTTPレスポンスの全ての情報を取得することが可能である。
抽出部303は、メモリ103に読み出され、プロセッサ102で実行される。抽出部303は遷移データDB310を補助記憶装置105から読み出す。遷移データDB310に記憶されたレコードのうち、遷移先URLが同じであってアカウント権限が同じレコードについて、HTTPリクエストのパラメータの差異を補助記憶装置105上の固定パラメータDB311へ出力する。
固定パラメータDB311は、固定パラメータテーブル460を保持する。
図8は、実施の形態1に係る固定パラメータテーブル460の一例を示す図である。固定パラメータテーブル460は、遷移先URL毎にHTTPリクエストのパラメータ名を保存するフィールドと、パラメータが固定か変動かを示すフィールドを持つテーブルである。
図8は、実施の形態1に係る固定パラメータテーブル460の一例を示す図である。固定パラメータテーブル460は、遷移先URL毎にHTTPリクエストのパラメータ名を保存するフィールドと、パラメータが固定か変動かを示すフィールドを持つテーブルである。
比較部304は、メモリ103に読み出され、プロセッサ102で実行される。比較部304は、遷移データDB310を補助記憶装置105から読み出す。比較部304は、遷移データDB310に記憶された遷移先URLが同じレコードについてパラメータを比較し、異なる部分がある遷移先URLを診断対象URLとして結果データDB312に出力する。
リクエスト生成部305は、メモリ103に読み出され、プロセッサ102で実行される。リクエスト生成部305は、結果データDB312と遷移データDB310を補助記憶装置105から読み出す。リクエスト送受信部306は、メモリ103に読み出され、プロセッサ102で実行される。
リクエスト生成部305は、診断対象URLに対するHTTPリクエストの生成をリクエスト送受信部306に指示する。リクエスト送受信部306は、診断対象URLに対するHTTPリクエストの生成をWebアプリケーション203に指示する。リクエスト送受信部306は、Webアプリケーション203が生成したHTTPリクエストをリクエスト生成部305に出力する。リクエスト生成部305は、診断対象URLに対して一般権と特権と同じ操作が可能かを試行するため、Webアプリケーション203が生成したHTTPリクエストを試行用に書き換え、書き換えたHTTPリクエストをリクエスト送受信部306に出力する。リクエスト送受信部306は、インターネット202を介してリクエスト送受信部306から入力されたHTTPリクエストをWebサーバ201に送信する。リクエスト送受信部306は、インターネット202を介してWebサーバ201からHTTPリクエストに対するHTTPレスポンスを受信し、受信したHTTPレスポンスを判定部307に出力する。
判定部307は、メモリ103に読み出され、プロセッサ102で実行される。判定部307は、リクエスト送受信部306が受信したHTTPレスポンスと、遷移データDB310を補助記憶装置105から読み出す。判定部307は、HTTPレスポンスと遷移データDB310に保存された特権でのHTTPリクエストに対するHTTPレスポンスから脆弱性の有無を判定して、判定した結果を結果データDB312に出力する。
出力部308は、メモリ103に読み出され、プロセッサ102で実行される。出力部308は、補助記憶装置105に保存された結果データDB312を補助記憶装置105から読み出す。出力部308は、結果データDB312から読み出した判定結果を、出力インターフェース106に出力する。
結果データDB312は、診断結果テーブル470および結果詳細テーブル480の2種類のテーブルを保持する。
図9は、実施の形態1に係る診断結果テーブル470の一例を示す図である。
図10は、実施の形態1に係る結果詳細テーブル480の一例を示す図である。
診断結果テーブル470は、診断対象URL、判定部307の結果を保存するフィールドを持つテーブルである。結果詳細テーブル480は、脆弱性があると判定された診断対象URL、使用したパラメータ名を保存するフィールドを持つテーブルである。
図9は、実施の形態1に係る診断結果テーブル470の一例を示す図である。
図10は、実施の形態1に係る結果詳細テーブル480の一例を示す図である。
診断結果テーブル470は、診断対象URL、判定部307の結果を保存するフィールドを持つテーブルである。結果詳細テーブル480は、脆弱性があると判定された診断対象URL、使用したパラメータ名を保存するフィールドを持つテーブルである。
次に動作について説明する。
図11は、実施の形態1に係る入力部301、クローリング実施部302および抽出部303の処理の流れを示すフローチャートである。図11のフローチャートにおいて、実線がフローの経路を示し、破線は各DBに対するデータ書込みと呼出しを示す。
図12は、実施の形態1に係るHTTPリクエスト・レスポンステーブル441の一例を示す図である。
図13は、実施の形態1に係るパラメータテーブル451の一例を示す図である。
ステップS104の処理が終了すると図12のHTTPリクエスト・レスポンステーブル441および図13のパラメータテーブル451が得られる。
図11は、実施の形態1に係る入力部301、クローリング実施部302および抽出部303の処理の流れを示すフローチャートである。図11のフローチャートにおいて、実線がフローの経路を示し、破線は各DBに対するデータ書込みと呼出しを示す。
図12は、実施の形態1に係るHTTPリクエスト・レスポンステーブル441の一例を示す図である。
図13は、実施の形態1に係るパラメータテーブル451の一例を示す図である。
ステップS104の処理が終了すると図12のHTTPリクエスト・レスポンステーブル441および図13のパラメータテーブル451が得られる。
入力インターフェース106を介してアカウント情報および対象URLが入力されると、入力部301は処理を開始する。
図11のステップS101において、入力部301は、入力されたアカウント情報をアカウント情報DB309のアカウント情報テーブル410とログインパラメータ420に保存する。アカウント情報には、Webアプリケーション203にログインする際に必要なアカウントIDおよびパスワードといったログイン情報とそのアカウントのアカウント権限とログインするために必要なパラメータのパラメータ名とが含まれる。
図11のステップS101において、入力部301は、入力されたアカウント情報をアカウント情報DB309のアカウント情報テーブル410とログインパラメータ420に保存する。アカウント情報には、Webアプリケーション203にログインする際に必要なアカウントIDおよびパスワードといったログイン情報とそのアカウントのアカウント権限とログインするために必要なパラメータのパラメータ名とが含まれる。
入力部301は、アカウントID、パスワードおよびアカウント権限を、アカウント情報テーブル410のアカウントID、パスワード、権限の項目に保存する。図3において、例えば、項番U01としてアカウントID「mng1」、パスワード「1234abc」および権限「特権」が保存されている。
入力部301は、パラメータ名をログインパラメータテーブル420に保存する。図4において、項番IDとしてパラメータ「accountid」、項番PWDとしてパラメータ「passwd」が保存されている。
また、入力部301は、入力された対象URLを遷移データDB310の対象URLテーブル430に保存する。図5において、対象URLテーブル430には、対象URL「http://xxx.com」が保存されている。処理はステップS102に進む。
ステップS102において、クローリング実施部302は、アカウント情報DB309に保存されたアカウント情報テーブル410から、クローリングが実施されていないアカウントのレコードを1つ選択し、アカウントIDおよびパスワードを読み出す。処理はステップS103に進む。
ステップS103において、クローリング実施部302は、遷移データDB310の対象URLテーブル430から対象URL「http://xxx.com」を読み出す。クローリング実施部302は、選択したアカウントのアカウントIDおよびパスワードでWebアプリケーション203にログインし、対象URLに対してクローリングを実施する。
クローリング実施部302がアカウント情報テーブル410の項番U01のアカウントでWebアプリケーション203にログインする場合を例に処理を説明する。クローリング実施部302は、対象URL「http://xxx.com」にHTTPリクエストを送信し、さらに「http://xxx.com」上のリンクである「http://xxx.com/login.php」にHTTPリクエストを送信する。「http://xxx.com/login.php」へのHTTPリクエストに対するHTTPレスポンスを受信すると、クローリング実施部302は、遷移データDB310のHTTPリクエスト・レスポンステーブル441の項番URL01にHTTPレスポンスの内容を保存する。クローリング実施部302は、遷移先URLに「http://xxx.com/login.php」、レスポンスコードに「200」、レスポンス内容にレスポンスのHeader情報およびBody情報、遷移元URLに「http://xxx.com」、権限に「特権」を保存する。権限には、ログインしたアカウントの権限の種類が保存される。また、遷移先URL「http://xxx.com/login.php」に送信したHTTPリクエストにパラメータが含まれている場合、クローリング実施部302は、遷移データDB310のパラメータテーブル451に保存する。図13のパラメータテーブル451には示していないが、パラメータが保存されたものとする。
次に、クローリング実施部302は、「http://xxx.com/login.php」上のリンクである「http://xxx.com/top.php」にHTTPリクエストを送信する。HTTPレスポンスを受信すると、クローリング実施部302は、HTTPリクエスト・レスポンステーブル441の項番URL02にHTTPレスポンスの内容を保存する。クローリング実施部302は、遷移先URLに「http://xxx.com/top.php」、レスポンスコードに「200」、レスポンス内容にレスポンスのHeader情報およびBody情報、遷移元URLに「http://xxx.com/login.php」、権限に「特権」を保存する。遷移先URL「http://xxx.com/top.php」に送信したHTTPリクエストにパラメータauth、userIDが含まれている。クローリング実施部302は、パラメータ名、パラメータの値、パラメータが記載されている位置を示す値(URLのクエリ部、ヘッダ部またはボディ部)をパラメータテーブル451の項番URL02-01、URL02-02に保存する。なお、項番URL02-01、URL02-02はURL02のパラメータであることを示している。パラメータをパラメータテーブル451に保存する際、クローリング実施部302は、どのHTTPリクエストに含まれたパラメータなのか対応付けがわかるように項番を付与している。本実施の形態では、項番で対応づけを示しているが、他の方法でもよい。
クローリング実施部302は、対象URL「http://xxx.com」とその配下にある全てのリンクを辿り、上述したように遷移先のページ情報を収集して、収集した情報をHTTPリクエスト・レスポンステーブル441およびパラメータテーブル451に保存する。遷移先のページでも遷移していないリンク先がなくなるまでページ情報を収集すると、クローリング実施部302は、クローリングを終了し、ログアウトする。処理はステップS104に進む。
ステップS104において、クローリング実施部302は、クローリングが未実施のアカウントがないか判定する。クローリング実施部302は、アカウント情報テーブル410の各アカウントについてクローリングを実施したかどうかを把握している。クローリングが未実施のアカウントがある場合、処理はステップS102に進み、クローリング実施部302は、クローリングが未実施のアカウントを選択してクローリングを実施する。
クローリング実施部302は、クローリングが未実施のアカウントがなくなるまでステップS102~S104のフローを繰り返す。
図12において、アカウントID「mng1」のクローリングで項番URL01~URL02、アカウントID「mng2」のクローリングで項番URL03~URL04のレコードが保存されたものとする。アカウントID「user1」のクローリングで項番URL05~URL06、アカウントID「user2」のクローリングで項番URL07~URL08のレコードが保存されたものとする。遷移先URLと権限が同じレコードは、権限が同じであって異なるアカウントで実施したクローリングで得られた情報である。
図13において、アカウントID「mng1」のクローリングで項番URL02-01~URL02-02、アカウントID「mng2」のクローリングで項番URL04-01~URL04-02のレコードが保存されたものとする。アカウントID「user1」のクローリングで項番URL06-01~URL06-02、アカウントID「user2」のクローリングで項番URL08-01~URL08-02のレコードが保存されたものとする。
図11のフローチャートの説明に戻る。
ステップS104において、クローリングが未実施のアカウントがなければ処理はステップS105に進む。
ステップS104において、クローリングが未実施のアカウントがなければ処理はステップS105に進む。
ステップS105において、抽出部303は、同じ遷移先に対して権限が特権で同じレコードについてHTTPリクエストのパラメータの値の差異を抽出する処理を行う。
抽出部303は、HTTPリクエスト・レスポンステーブル441から、権限が特権であって遷移先URLが同じレコードを選択する。項番URL02と項番URL04を選択した場合を例に説明する。項番URL02、URL04に関するパラメータはパラメータテーブル451のURL02-01~URL02-02、URL04-01~URL04-02に保存されている。抽出部303は、これらのパラメータの差異を抽出する。
抽出部303は、HTTPリクエスト・レスポンステーブル441から、権限が特権であって遷移先URLが同じレコードを選択する。項番URL02と項番URL04を選択した場合を例に説明する。項番URL02、URL04に関するパラメータはパラメータテーブル451のURL02-01~URL02-02、URL04-01~URL04-02に保存されている。抽出部303は、これらのパラメータの差異を抽出する。
URL02-01とURL04-01は値が同じため、抽出部303は、固定パラメータテーブル460の項番PARAM02-01の対象に「URL04-01」、固定に「固定」を保存する。URL02-02とURL04-02は値が異なるため、抽出部303は、固定パラメータテーブル460の項番PARAM02-02の対象に「URL04-02」、固定に「変動」を保存する。処理は終了する。
HTTPリクエストのパラメータは、セッションIDや時刻などのログインするたびに毎回異なるパラメータの値、宛先URLやcontent-type等のヘッダ情報などのログインするたびに変わることがない固定のパラメータの値、ユーザIDなどのログインするたびに変わることがないがアカウントによって異なるパラメータの値、の3つに分別される。本実施の形態では、抽出部303は、HTTPリクエストのパラメータから、ログインするたびに変わることがない固定のパラメータを抽出することが可能である。
図14は、実施の形態1に係る比較部304、リクエスト生成部305、リクエスト送受信部306、判定部307及び出力部308の処理の流れを示すフローチャートである。実線がフローの経路を示し、破線は各DBに対するデータの書込みと呼出しを示す。診断対象URLに対して一般権と特権とで同じ操作が可能かを試行するため、一般権のアカウントでログインし、HTTPリクエストを診断対象URLに送信する。
ステップS201において、比較部304は、遷移データDB310のHTTPリクエスト・レスポンステーブル441からレコードを選択し、他のレコードと比較する。図15を用いてステップS201の詳細を説明する。
図15は、実施の形態1に係る図14のステップS201の比較部304の処理の詳細を示すフローチャートである。
ステップS301において、比較部304は、HTTPリクエスト・レスポンステーブル441から1つレコードを選択し、遷移先URLが同じレコードが他にあるか判定する。遷移先URLが同じレコードが他になければ、処理はステップS302に進み、遷移先URLが同じレコードが他にあれば、処理はステップS304に進む。
ステップS302において、比較部304は、選択したレコードの権限が特権か判定する。選択したレコードの権限が特権の場合、処理はステップS303に進む。選択したレコードの権限が特権でない場合、比較部304は、選択したレコードの遷移先URLを診断対象から除外し、処理は終了する。
ステップS303において、比較部304は、選択したレコードの遷移先URLを図9の結果データDB312の診断結果テーブル470に保存し、処理は終了する。
ステップS304において、比較部304は、パラメータテーブル451を参照し、遷移先URLが同じレコードについてパラメータ名が存在するのは特権のレコードのみか判定する。パラメータ名が存在するのは特権のレコードのみの場合、処理はステップS305に進む。パラメータ名が存在するのは特権のレコードのみでない場合、処理はステップS306に進む。
ステップS305において、比較部304は、選択したレコードの遷移先URLとパラメータ名を結果データDB312の診断結果テーブル470に保存し、処理は終了する。
ステップS306において、比較部304は、パラメータテーブル451を参照し、遷移先URLが同じレコードについて特権と一般権で同じパラメータ名が存在するのか判定する。特権と一般権で同じパラメータ名が存在する場合、処理はステップS307に進む。特権と一般権で同じパラメータ名が存在しない場合、比較部304は、選択したレコードの遷移先URLを診断対象から除外し、処理は終了する。
ステップS307において、比較部304は、パラメータテーブル451を参照し、特権と一般権で同じパラメータ名が存在し、値が同じか判定する。値が同じでない場合、処理はステップS308に進む。値が同じ場合、比較部304は、選択したレコードの遷移先URLを診断対象から除外し、処理は終了する。
ステップS308において、比較部304は、固定パラメータテーブル460を参照し、パラメータが固定か判定する。パラメータが固定の場合、処理はステップS305に進む。パラメータが固定でない場合、比較部304は、選択したレコードの遷移先URLを診断対象から除外し、処理は終了する。
図14のフローチャートの説明に戻る。ステップS202において、リクエスト生成部305は、アカウント情報DB309に保存されている情報を用いて、一般権のアカウントでWebアプリケーション203にログインする。項番U03のアカウント「user1」でログインしたものとする。処理はステップS203に進む。
ステップS203において、リクエスト生成部305は、診断結果テーブル470から診断対象URLを選択し、選択した診断対象URLと合致する遷移先URLが保存されているレコードをHTTPリクエスト・レスポンステーブル441から読み出す。読み出したレコードのアクセス権が特権のみの場合、遷移先URLが特権の場合にのみ存在することを意味する。処理はステップS204に進む。一方、読み出したレコードのアクセス権が特権のレコードと一般権のレコードの両方がある場合、一般権でも診断対象URLが存在することを意味する。処理はステップS205に進む。
ステップS204において、リクエスト生成部305は、リクエスト送受信部306を介して診断対象URLをWebアプリケーション203に出力する。リクエスト生成部305は、リクエスト送受信部306を介してWebアプリケーション203から診断対象URLへの一般権のHTTPリクエストを受け取る。リクエスト生成部305は、HTTPリクエスト・レスポンステーブル441から読み出したレコードをもとにHTTPリクエストを生成する。読み出したレコードは特権のレコードである。リクエスト生成部305は、HTTPリクエスト・レスポンステーブル441から読み出したレコードに対応付けられたパラメータテーブル451のレコードよりHTTPリクエストに設定されるパラメータを読み出す。読み出したパラメータは、特権の場合にHTTPリクエストに設定されるパラメータである。リクエスト生成部305は、固定パラメータDB311の固定パラメータテーブル460を参照し、読み出したパラメータが固定の場合、HTTPリクエストのパラメータの値を変更しない。読み出したパラメータが変動の場合、HTTPリクエストのパラメータの値をWebアプリケーション203から受け取った一般権のHTTPリクエストのパラメータの値に変更する。また、リクエスト生成部305は、結果データDB312の結果詳細テーブル480に診断対象URL、値を変更したパラメータ名を保存する。リクエスト生成部305は、このようにして生成したHTTPリクエストをリクエスト送受信部306に出力する。リクエスト送受信部306は、リクエスト生成部305から入力されたHTTPリクエストをWebサーバ201に送信し、Webサーバ201からHTTPレスポンスを受信すると判定部307に出力する。処理はステップS206に進む。
ステップS205において、リクエスト生成部305は、リクエスト送受信部306を介して診断対象URLをWebアプリケーション203に出力し、リクエスト送受信部306を介してWebアプリケーション203から診断対象URLへの一般権のHTTPリクエストを受け取る。リクエスト生成部305は、ステップS203においてHTTPリクエスト・レスポンステーブル441から読み出したレコードに対応付けられたパラメータテーブル451のレコードより特権の場合にHTTPリクエストに設定されるパラメータを読み出す。リクエスト生成部305は、固定パラメータDB311の固定パラメータテーブル460を参照し、一般権のHTTPリクエストに含まれるパラメータに該当するレコードがあって固定の場合、HTTPリクエストの該当のパラメータの値を特権のパラメータの値に変更する。また、リクエスト生成部305は、結果データDB312の結果詳細テーブル480に診断対象URL、値を変更したパラメータ名を保存する。一般権のHTTPリクエストに含まれるパラメータに該当するレコードがあって変動の場合、リクエスト生成部305は、HTTPリクエストの該当のパラメータの値を変更しない。固定のパラメータは、例えば権限識別のパラメータである。変動のパラメータは、例えば、ユーザID、時刻である。また、リクエスト生成部305は、読み出した特権のパラメータのうち一般権のHTTPリクエストに含まれていないパラメータをHTTPリクエストに追加する。リクエスト生成部305は、このようにして生成したHTTPリクエストをリクエスト送受信部306に出力する。リクエスト送受信部306は、リクエスト生成部305から入力されたHTTPリクエストをWebサーバ201に送信する。リクエスト送受信部306は、Webサーバ201からHTTPレスポンスを受信すると受信したHTTPレスポンスを判定部307に出力する。処理はステップS206に進む。
ステップS206において、判定部307は、入力されたHTTPレスポンスのレスポンスコードとHTTPリクエスト・レスポンステーブル441に保存されている正常なレスポンスのレスポンスコードを比較する。判定部307は、レスポンスコードの値を比較することで脆弱性を判定する。レスポンスコードが同じ場合、特権の操作が一般権でも実行できているため、判定部307は、脆弱ありと判定する。レスポンスコードが異なる場合、判定部307は、脆弱なしと判定する。判定部307は、判定した脆弱性の有無を診断結果テーブル470の診断対象URLに該当するレコードの脆弱性に保存する。処理はステップS207に進む。
ステップS207において、判定部307は、診断結果テーブル470のすべてのレコードについて脆弱性の判定処理を完了したか判定する。判定部307は、診断結果テーブル470のすべてのレコードについて脆弱性の項目が設定されていれば、完了と判定する。完了した場合、処理はステップS208に進む。完了していない場合、処理はステップS202に戻る。診断結果テーブル470のすべてのレコードについて脆弱性の項目が設定されるまで、ステップS202~S207の処理が繰り返される。
ステップS208において、出力部308は、結果データDB312のデータを出力インターフェース104へ出力し、処理は終了となる。
なお、本実施の形態において、受信したHTTPレスポンスとHTTPリクエスト・レスポンステーブル441に保存されている正常なHTTPレスポンスのレスポンスコードが同じ場合、脆弱ありと判定したが、HTTPレスポンスのHeader情報またはBody情報に含まれる値を用いて脆弱性を判定するようにしてもよい。
したがって、本実施の形態では、特権の第1のアカウントにより遷移先URLに送信したHTTPリクエストに含まれるパラメータのうち、特権の第2のアカウントにより遷移先URLに送信したHTTPリクエストに含まれるパラメータと値が同じである固定のパラメータを抽出する抽出部303と、一般権のアカウントによる遷移先URLへのHTTPリクエストのパラメータに抽出部303で抽出された固定のパラメータが含まれており、値が特権のアカウントの値と異なる場合、固定のパラメータに特権のアカウントの値を設定したHTTPリクエストを出力するリクエスト生成部305と、一般権のアカウントによりHTTPリクエストを遷移先URLに送信し、HTTPレスポンスを受信するリクエスト送受信部306と、HTTPレスポンスに基づいて遷移先URLの脆弱性を判定する判定部307と、を備えたので、Webアプリケーションの遷移先URLを事前に把握することなく権限管理の不備があるかどうかを診断することができる。一般権の画面上には表示されないページへの遷移や実行できない操作を実行できるかを確認することで、権限管理の不備がないかを診断する。診断装置200が権限管理の不備を診断するため、人的コストを削減することもできる。
また、リクエスト生成部305は、一般権のアカウントによる遷移先URLへのHTTPリクエストのパラメータに抽出部303で抽出された固定のパラメータが含まれていない場合、特権のアカウントの値を設定した固定のパラメータをHTTPリクエストに追加し、固定のパラメータが追加されたHTTPリクエストを出力するので、一般権のHTTPリクエストには含まれないパラメータについて権限管理の不備がないかを診断することができる。
また、抽出部303は、第1のアカウントにより遷移先URLに送信したHTTPリクエストに含まれるパラメータのうち、第2のアカウントにより遷移先URLに送信したHTTPリクエストに含まれるパラメータと値が異なる変動のパラメータを抽出し、リクエスト生成部305は、一般権のアカウントにより遷移先URLに遷移しない場合、特権のアカウントによる遷移先URLへのHTTPリクエストのうち抽出部303で抽出された変動のパラメータに一般権のアカウントによる遷移先URLへのHTTPリクエストのパラメータの値を設定し、値を設定したHTTPリクエストを出力するので、一般権のアカウントでは遷移しない遷移先URLについて、権限管理の不備がないかを診断することができる。
また、抽出部303は、第1のアカウントにより遷移先URLに送信したHTTPリクエストに含まれるパラメータのうち、第2のアカウントにより遷移先URLに送信したHTTPリクエストに含まれるパラメータと値が異なる変動のパラメータを抽出し、リクエスト生成部305は、一般権のアカウントにより遷移先URLに遷移しない場合、特権のアカウントによる遷移先URLへのHTTPリクエストのうち抽出部303で抽出された変動のパラメータに一般権のアカウントによる遷移先URLへのHTTPリクエストのパラメータの値を設定し、値を設定したHTTPリクエストを出力するので、一般権のアカウントでは遷移しない遷移先URLについて、権限管理の不備がないかを診断することができる。
実施の形態2.
以上の実施の形態1においては、抽出部303がログインするたびに変わることがない固定のパラメータを抽出するようにしたものであるが、本実施の形態においては、遷移先URLとパラメータの組み合わせが同じでログインするたびに値が変わるパラメータと変わらないパラメータを抽出する実施の形態を示す。
なお、本実施の形態においては、実施の形態1に記載の構成を全て備えた上で、更に付加的な構成について説明する。
以上の実施の形態1においては、抽出部303がログインするたびに変わることがない固定のパラメータを抽出するようにしたものであるが、本実施の形態においては、遷移先URLとパラメータの組み合わせが同じでログインするたびに値が変わるパラメータと変わらないパラメータを抽出する実施の形態を示す。
なお、本実施の形態においては、実施の形態1に記載の構成を全て備えた上で、更に付加的な構成について説明する。
図16は、実施の形態2に係るHTTPリクエスト・レスポンステーブル442の一例を示す図である。
図17は、実施の形態2に係るパラメータテーブル452の一例を示す図である。
まず、図11のフローチャートについて、実施の形態1と異なる動作を説明する。
図17は、実施の形態2に係るパラメータテーブル452の一例を示す図である。
まず、図11のフローチャートについて、実施の形態1と異なる動作を説明する。
図11のステップS103において、クローリング実施部302は、選択したアカウントでクローリングを実施し、ログアウトした後、同じアカウントでWebアプリケーション203に再度ログインし、対象URLに対して2回目のクローリングを実施する。クローリング実施部302は、2回目のクローリングが終了すると、ログアウトする。
図16は、アカウントID「mng1」の1回目のクローリングで項番URL01~URL04、アカウントID「user1」の1回目のクローリングで項番URL05~URL07のレコードが保存されたものとする。
図17は、アカウントID「mng1」の1回目のクローリングで項番URL03-01~URL03-03、URL04-01~URL04-03のレコードが保存されたものとする。アカウントID「user1」の1回目のクローリングで項番URL07-01~URL07-03のレコードが保存されたものとする。
2回目のクローリングにおいて、1回目のクローリングで得られた図16のHTTPリクエスト・レスポンステーブル442および図17のパラメータテーブル452と同じ値が保存されたHTTPリクエスト・レスポンステーブル443、パラメータテーブル453が得られる。なお、内容が同じため図示は省略する。
図11のステップS105において、抽出部303は、1回目のクローリングで得られたHTTPリクエスト・レスポンステーブル442、パラメータテーブル452、2回目のクローリングで得られたHTTPリクエスト・レスポンステーブル443、パラメータテーブル453を参照し、HTTPリクエスト・レスポンステーブル442の特権の各項番について、1回目のクローリングと2回目のクローリングでのパラメータの差異を抽出する。
図18は、実施の形態2に係る固定パラメータテーブル462の一例を示す図である。1回目のクローリングと2回目のクローリングで同じ値が得られているため、固定パラメータテーブル461のすべてのパラメータは固定である。
次に、抽出部303は、HTTPリクエスト・レスポンステーブル442のレコードのうち権限が特権のレコードを選択する。抽出部303は、HTTPリクエスト・レスポンステーブル442から権限が特権であって、選択したレコードの遷移先URLと同じレコードについて、パラメータの差異を抽出する。抽出部303は、抽出したパラメータの差異を固定パラメータテーブル462に保存する。
図19は、実施の形態2に係る固定パラメータテーブル462の一例を示す図である。項番のURL03とURL04を比較するとURLおよびuserIDは値が同じため、固定パラメータテーブル462のPARAM03-01およびPARAM03-02の固定フィールドには「固定」が保存されている。一方、pageは値が異なるため、固定パラメータテーブル462のPARAM03-03の固定フィールドには「変動」が保存されている。
図20は、実施の形態2に係るHTTPリクエスト・レスポンステーブル444の一例を示す図である。
抽出部303は、固定パラメータテーブル462において固定フィールドに「変動」が保存されているパラメータpageが、ページを一意に表すのに必要なパラメータであると判定する。抽出部303は、HTTPリクエスト・レスポンステーブル442に遷移パラメータのフィールドを追加し、pageの値を設定したHTTPリクエスト・レスポンステーブル444を生成する。
抽出部303は、固定パラメータテーブル462において固定フィールドに「変動」が保存されているパラメータpageが、ページを一意に表すのに必要なパラメータであると判定する。抽出部303は、HTTPリクエスト・レスポンステーブル442に遷移パラメータのフィールドを追加し、pageの値を設定したHTTPリクエスト・レスポンステーブル444を生成する。
次に、図14のフローチャートについて、実施の形態1と異なる動作を説明する。
ステップS201において、比較部304は、遷移データDB310のHTTPリクエスト・レスポンステーブル444からレコードを選択し、他のレコードと比較する。図21を用いてステップS201の処理の詳細を説明する。
図21は、実施の形態2に係る図14のステップS201の比較部304の処理の詳細を示すフローチャートである。
図22は、実施の形態2に係る診断結果テーブル471の一例を示す図である。
図23は、実施の形態2に係る結果詳細テーブル481の一例を示す図である。
図22は、実施の形態2に係る診断結果テーブル471の一例を示す図である。
図23は、実施の形態2に係る結果詳細テーブル481の一例を示す図である。
図21のステップS401において、比較部304は、HTTPリクエスト・レスポンステーブル444から1つレコードを選択し、遷移先URLおよび遷移パラメータが同じレコードが他にあるか判定する。遷移先URLおよび遷移パラメータが同じレコードが他になければ、処理はステップS402に進み、遷移先URLおよび遷移パラメータが同じレコードが他にあれば、処理はステップS404に進む。
ステップS402において、比較部304は、選択したレコードの権限が特権か判定する。選択したレコードの権限が特権の場合、処理はステップS403に進む。選択したレコードの権限が特権でない場合、比較部304は、選択したレコードの遷移先URLを診断対象から除外し、処理は終了する。
ステップS403において、比較部304は、選択したレコードの遷移先URLおよび遷移パラメータを結果データDB312の診断結果テーブル471に保存し、処理は終了する。
ステップS404において、比較部304は、パラメータテーブル452を参照し、遷移先URLおよび遷移パラメータが同じレコードについてパラメータ名が存在するのは特権のレコードのみか判定する。パラメータ名が存在するのは特権のレコードのみの場合、処理はステップS405に進む。パラメータ名が存在するのは特権のレコードのみでない場合、処理はステップS406に進む。
ステップS405において、比較部304は、選択したレコードの遷移先URL、遷移パラメータおよびパラメータ名を結果データDB312の結果詳細テーブル481に保存し、処理は終了する。
ステップS406において、比較部304は、パラメータテーブル452を参照し、遷移先URLおよび遷移パラメータが同じレコードについて特権と一般権で同じパラメータ名が存在するのか判定する。特権と一般権で同じパラメータ名が存在する場合、処理はステップS407に進む。特権と一般権で同じパラメータ名が存在しない場合、比較部304は、選択したレコードの遷移先URLおよび遷移パラメータを診断対象から除外し、処理は終了する。
ステップS407において、比較部304は、パラメータテーブル444を参照し、特権と一般権で同じパラメータ名が存在し、値が同じか判定する。値が同じでない場合、処理はステップS305に進む。値が同じ場合、比較部304は、選択したレコードの遷移先URLおよび遷移パラメータを診断対象から除外し、処理は終了する。
なお、本実施の形態において、クローリング実施部302は、1回目と2回目のクローリングで得られた情報を識別せずにHTTPリクエスト・レスポンステーブル442およびパラメータテーブル452に保存したが、1回目と2回目のクローリングで得られた情報を識別できるように保存してもよい。テーブルを増やす、または、テーブルのカラムを増やすようにしてもよい。
以上のように、本実施の形態では、抽出部303は、第1のアカウントにより遷移先URLに送信したHTTPリクエストに含まれるパラメータのうち、第2のアカウントにより遷移先URLに送信したHTTPリクエストに含まれるパラメータと値が同じである固定のパラメータについて、第1のアカウントから遷移先URLに複数回送信したHTTPリクエストに含まれる固定のパラメータ値が異なる場合、固定のパラメータを遷移先URLとの組み合わせでページを一意に示す遷移パラメータとして抽出するので、URLと遷移パラメータとの組み合わせでページを一意に示す場合でも権限管理の不備を診断することができる。
実施の形態3.
以上の実施の形態1においては、抽出部303が抽出したHTTPリクエストのパラメータが固定か変動かを固定パラメータDB311の固定パラメータテーブル460に保存するようにしたものであるが、本実施の形態においては、遷移データDB310のHTTPリクエスト・レスポンステーブルにフィールドを追加して保存する実施の形態を示す。
以上の実施の形態1においては、抽出部303が抽出したHTTPリクエストのパラメータが固定か変動かを固定パラメータDB311の固定パラメータテーブル460に保存するようにしたものであるが、本実施の形態においては、遷移データDB310のHTTPリクエスト・レスポンステーブルにフィールドを追加して保存する実施の形態を示す。
図24は、実施の形態3に係る診断装置210の機能構成の一例を含む全体のブロック図である。実施の形態1の診断装置200との違いは、固有データDBが削除されていることである。
図25は、実施の形態3に係る入力部301、クローリング実施部302および抽出部303の処理の流れを示すフローチャートである。実施の形態1の図11のフローチャートとの違いは、ステップS105から遷移データDB310に出力することである。
図26は、実施の形態3に係る遷移データDB310のパラメータテーブル454の一例を示す図である。実施の形態1のパラメータテーブル451との違いは固定のフィールドが追加されていることである。
図26は、実施の形態3に係る遷移データDB310のパラメータテーブル454の一例を示す図である。実施の形態1のパラメータテーブル451との違いは固定のフィールドが追加されていることである。
図25のステップ105において、実施の形態1と異なる動作を説明する。
抽出部303は、同じ遷移先に対して権限が特権で同じレコードについてHTTPリクエストのパラメータの値の差異を抽出する。URL02-01とURL04-01は値が同じため、抽出部303は、固定パラメータテーブル460の項番URL02-01と項番URL04-01の固定に「固定」を保存する。また、URL02-02とURL04-02は値が異なるため、抽出部303は、固定パラメータテーブル460の項番PARAM02-02と項番URL04-02の固定に「変動」を保存する。処理は終了する。
抽出部303は、同じ遷移先に対して権限が特権で同じレコードについてHTTPリクエストのパラメータの値の差異を抽出する。URL02-01とURL04-01は値が同じため、抽出部303は、固定パラメータテーブル460の項番URL02-01と項番URL04-01の固定に「固定」を保存する。また、URL02-02とURL04-02は値が異なるため、抽出部303は、固定パラメータテーブル460の項番PARAM02-02と項番URL04-02の固定に「変動」を保存する。処理は終了する。
図27は、実施の形態3に係る比較部304、リクエスト生成部305、リクエスト送受信部306、判定部307及び出力部308の処理の流れを示すフローチャートである。実施の形態1の図14のフローチャートとの違いは、ステップS201、ステップS204、ステップS205においてパラメータが固有かどうかの情報を遷移パラメータDBのパラメータテーブル454から読み出すことである。
なお、本実施の形態において、実施の形態2で示したようにアカウントごとに2回クローリングを実施してページ遷移に必要な特定のパラメータを決定する機能を含めるようにしてもよい。
したがって、本実施の形態では、遷移データDB310が固有パラメータDB311の情報も保持するため、遷移データDB310のパラメータテーブルT203のレコードと同じ数のレコードを持つ固有パラメータDB311を削減し、固有パラメータDB311で使用するメモリリソースを削減することが可能である。
実施の形態4.
以上の実施の形態1においては、診断装置200が診断対象URLを抽出し、脆弱性の判定を行うようにしたものであるが、本実施の形態においては、診断対象抽出装置が診断対象URLを抽出し、診断実施装置が抽出された診断対象URLの脆弱性を判定する実施の形態を示す。
以上の実施の形態1においては、診断装置200が診断対象URLを抽出し、脆弱性の判定を行うようにしたものであるが、本実施の形態においては、診断対象抽出装置が診断対象URLを抽出し、診断実施装置が抽出された診断対象URLの脆弱性を判定する実施の形態を示す。
実施の形態3と異なる部分を説明する。
図28は、実施の形態4に係る診断対象抽出装置220の機能構成の一例を含む全体のブロック図である。診断対象抽出装置220は、入力部301、クローリング実施部302、抽出部303、比較部304、アカウント情報DB313、遷移データDB314および出力部315を備える。アカウント情報DB313、遷移データDB314は実施の形態3のアカウント情報DB309、遷移データDB310と同様の機能を保持する。
図28は、実施の形態4に係る診断対象抽出装置220の機能構成の一例を含む全体のブロック図である。診断対象抽出装置220は、入力部301、クローリング実施部302、抽出部303、比較部304、アカウント情報DB313、遷移データDB314および出力部315を備える。アカウント情報DB313、遷移データDB314は実施の形態3のアカウント情報DB309、遷移データDB310と同様の機能を保持する。
比較部304は、メモリ103に読み出され、プロセッサ102で実行される。比較部304は、遷移データDB310を補助記憶装置105から読み出す。比較部304は、遷移データDB310に記憶された遷移先URLが同じレコードについてパラメータを比較し、異なる部分がある遷移先URLを診断対象URLとしてパラメータとともに出力部315に出力する。
出力部315は、メモリ103に読み出され、プロセッサ102で実行される。出力部315は、比較部304から入力された診断対象URLを出力インターフェース106に出力する。
図29は、実施の形態4に係る診断実施装置230の機能構成の一例を含む全体のブロック図である。診断実施装置230は、入力部316、リクエスト生成部305、リクエスト送受信部306、判定部307、出力部308、アカウント情報DB317、遷移データDB318、結果データDB319を備える。アカウント情報DB317、遷移データDB318および結果データDB319は実施の形態3のアカウント情報DB309、遷移データDB310、結果データDB312と同様の機能を保持する。
入力部316は、メモリ103に読み出され、プロセッサ102で実行される。入力インターフェース106を介して入力された値を補助記憶装置105へ保存する。入力部316は、入力されたアカウント情報(ログイン情報、権限情報)を補助記憶装置105上のアカウント情報DB317に出力する。また、入力部316は、診断対象URLとパラメータを遷移データDB318に出力する。
次に動作について説明する。
図30は、実施の形態4に係る診断対象抽出装置220の入力部301、クローリング実施部302および抽出部303の処理の流れを示すフローチャートである。ステップS501~S505の処理は、実施の形態3の図25のステップS101~S105の処理と同じである。
図30は、実施の形態4に係る診断対象抽出装置220の入力部301、クローリング実施部302および抽出部303の処理の流れを示すフローチャートである。ステップS501~S505の処理は、実施の形態3の図25のステップS101~S105の処理と同じである。
ステップS505において、抽出部303は、同じ遷移先に対して権限が特権で同じレコードについてHTTPリクエストの固定のパラメータを比較部304に出力する。
ステップS506において、比較部304は、抽出部303から入力されたパラメータが特権に存在して、一般権に存在しないまたは値が異なる場合、その遷移先URLとパラメータの値を診断対象データ320として出力部315を介して出力する。また、出力部315は、アカウント情報DB313に保存されているアカウント情報を出力する。処理は終了する。
図31は、実施の形態4に係る診断実施装置230の入力部316、リクエスト生成部305、リクエスト送受信部306、判定部307及び出力部308の処理の流れを示すフローチャートである。
ステップS601において、入力部316には、アカウント情報および診断対象データ320が入力される。入力部316は、入力されたアカウント情報をアカウント情報DB317に保存する。また、入力部316は、診断対象データ320を遷移データDB318および結果データDBに保存する。
ステップS602~S608は、実施の形態3のステップS202~S208と同様である。
なお、本実施の形態において、実施の形態2で示したようにアカウントごとに2回クローリングを実施してページ遷移に必要な特定のパラメータを決定する機能を含めるようにしてもよい。
また、本実施の形態において、診断対象抽出装置220から出力される診断対象の情報を収集し、セキュリティ診断は既存の方法を用いるようにしてもよい。また、既存のセキュリティ診断で利用したWebアプリケーションより収集した診断対象の情報を診断実施装置230に入力するようにしてもよい。
したがって、本実施の形態では、特権の第1のアカウントにより遷移先URLに送信したHTTPリクエストに含まれるパラメータのうち、特権の第2のアカウントにより遷移先URLに送信したHTTPリクエストに含まれるパラメータと値が同じである固定のパラメータを抽出する抽出部303を備える診断対象抽出装置220と、一般権のアカウントによる遷移先URLへのHTTPリクエストのパラメータに抽出部303で抽出された固定のパラメータが含まれており、値が特権のアカウントの値と異なる場合、固定のパラメータに特権のアカウントの値を設定したHTTPリクエストを出力するリクエスト生成部305と、一般権のアカウントによりHTTPリクエストを遷移先URLに送信し、HTTPレスポンスを受信するリクエスト送受信部306と、HTTPレスポンスに基づいて遷移先URLの脆弱性を判定する判定部307と、を備える診断実施装置230と、を備えたので、Webアプリケーションの遷移先URLを事前に把握することなく権限管理の不備があるかどうかを診断することができる。
101 通信インターフェース
102 プロセッサ
103 メモリ
104 出力インターフェース
105 補助記憶装置
106 入力インターフェース
107 バス
200、210 セキュリティ診断装置
201 Webサーバ
202 インターネット
203 Webアプリケーション
220 診断対象抽出装置
230 診断実施装置
301、316 入力部
302 クローリング実施部
303 抽出部
304 比較部
305 リクエスト生成部
306 リクエスト送受信部
307 判定部
308、315 出力部
309、313、317 アカウント情報DB
310、314、318 遷移データDB
311 固定パラメータDB
312、319 結果データDB
410 アカウント情報テーブル
420 ログインパラメータテーブル
430 対象URLテーブル
440、441、442、443、444 HTTPリクエスト・レスポンステーブル
450、451、452、453、454 パラメータテーブル
460、461、462 固定パラメータテーブル
470、471 診断結果テーブル
480、481 結果詳細テーブル
102 プロセッサ
103 メモリ
104 出力インターフェース
105 補助記憶装置
106 入力インターフェース
107 バス
200、210 セキュリティ診断装置
201 Webサーバ
202 インターネット
203 Webアプリケーション
220 診断対象抽出装置
230 診断実施装置
301、316 入力部
302 クローリング実施部
303 抽出部
304 比較部
305 リクエスト生成部
306 リクエスト送受信部
307 判定部
308、315 出力部
309、313、317 アカウント情報DB
310、314、318 遷移データDB
311 固定パラメータDB
312、319 結果データDB
410 アカウント情報テーブル
420 ログインパラメータテーブル
430 対象URLテーブル
440、441、442、443、444 HTTPリクエスト・レスポンステーブル
450、451、452、453、454 パラメータテーブル
460、461、462 固定パラメータテーブル
470、471 診断結果テーブル
480、481 結果詳細テーブル
Claims (7)
- 特権の第1のアカウントにより遷移先URLに送信したHTTPリクエストに含まれるパラメータのうち、特権の第2のアカウントにより前記遷移先URLに送信したHTTPリクエストに含まれるパラメータと値が同じである固定のパラメータを抽出する抽出部と、
一般権のアカウントによる前記遷移先URLへのHTTPリクエストのパラメータに前記抽出部で抽出された前記固定のパラメータが含まれており、値が特権のアカウントの値と異なる場合、前記固定のパラメータに特権のアカウントの値を設定したHTTPリクエストを出力するリクエスト生成部と、
一般権のアカウントにより前記HTTPリクエストを前記遷移先URLに送信し、HTTPレスポンスを受信するリクエスト送受信部と、
前記HTTPレスポンスに基づいて前記遷移先URLの脆弱性を判定する判定部と、
を備えることを特徴とするセキュリティ診断装置。 - 前記リクエスト生成部は、一般権のアカウントによる前記遷移先URLへのHTTPリクエストのパラメータに前記抽出部で抽出された前記固定のパラメータが含まれていない場合、特権のアカウントの値を設定した前記固定のパラメータをHTTPリクエストに追加し、前記固定のパラメータが追加されたHTTPリクエストを出力することを特徴とする請求項1に記載のセキュリティ診断装置。
- 前記抽出部は、前記第1のアカウントにより前記遷移先URLに送信したHTTPリクエストに含まれるパラメータのうち、前記第2のアカウントにより前記遷移先URLに送信したHTTPリクエストに含まれるパラメータと値が異なる変動のパラメータを抽出し、
前記リクエスト生成部は、一般権のアカウントにより前記遷移先URLに遷移しない場合、特権のアカウントによる前記遷移先URLへのHTTPリクエストのうち前記抽出部で抽出された前記変動のパラメータに一般権のアカウントによる前記遷移先URLへのHTTPリクエストのパラメータの値を設定し、値を設定したHTTPリクエストを出力することを特徴とする請求項1または2に記載のセキュリティ診断装置。 - 前記抽出部は、前記第1のアカウントにより前記遷移先URLに送信したHTTPリクエストに含まれるパラメータのうち、前記第2のアカウントにより前記遷移先URLに送信したHTTPリクエストに含まれるパラメータと値が同じである固定のパラメータについて、前記第1のアカウントから前記遷移先URLに複数回送信したHTTPリクエストに含まれる前記固定のパラメータ値が異なる場合、前記固定のパラメータを前記遷移先URLとの組み合わせでページを一意に示す遷移パラメータとして抽出することを特徴とする請求項1から3のいずれか一項に記載のセキュリティ診断装置。
- 入力されたURLに対して複数の特権のアカウントによりクローリングを実施し、前記遷移先URLと前記遷移先URLに送信したHTTPリクエストに含まれるパラメータと前記遷移先URLから受信したHTTPレスポンスと前記HTTPリクエストを送信したアカウントの権限とを対応づけて遷移データデータベースに保存するクローリング実施部と、
前記遷移データデータベースに保存された前記複数の特権のアカウントの前記遷移先URLと前記パラメータとに基づき、前記遷移先URLを診断対象として出力する比較部と、
を備えることを特徴とする請求項1から4のいずれか一項に記載のセキュリティ診断装置。 - 特権の第1のアカウントにより遷移先URLに送信したHTTPリクエストに含まれるパラメータのうち、特権の第2のアカウントにより前記遷移先URLに送信したHTTPリクエストに含まれるパラメータと値が同じである固定のパラメータを抽出する抽出部を備えるセキュリティ診断対象抽出装置と、
一般権のアカウントによる前記遷移先URLへのHTTPリクエストのパラメータに前記抽出部で抽出された前記固定のパラメータが含まれており、値が特権のアカウントの値と異なる場合、前記固定のパラメータに特権のアカウントの値を設定したHTTPリクエストを出力するリクエスト生成部と、
一般権のアカウントにより前記HTTPリクエストを前記遷移先URLに送信し、HTTPレスポンスを受信するリクエスト送受信部と、
前記HTTPレスポンスに基づいて前記遷移先URLの脆弱性を判定する判定部と、
を備えるセキュリティ診断実施装置と、
を備えることを特徴とするセキュリティ診断装置。 - 特権の第1のアカウントにより遷移先URLに送信したHTTPリクエストに含まれるパラメータのうち、特権の第2のアカウントにより前記遷移先URLに送信したHTTPリクエストに含まれるパラメータと値が同じである固定のパラメータを抽出するステップと、
一般権のアカウントによる前記遷移先URLへのHTTPリクエストのパラメータに抽出された前記固定のパラメータが含まれており、値が特権のアカウントの値と異なる場合、前記固定のパラメータに特権のアカウントの値を設定したHTTPリクエストを出力するステップと、
前記HTTPリクエストを前記遷移先URLに送信し、HTTPレスポンスを受信するステップと、
前記HTTPレスポンスに基づいて前記遷移先URLの脆弱性を判定するステップと、
を有するセキュリティ診断方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2017/027822 WO2019026172A1 (ja) | 2017-08-01 | 2017-08-01 | セキュリティ診断装置およびセキュリティ診断方法 |
JP2019533770A JP6636222B2 (ja) | 2017-08-01 | 2017-08-01 | セキュリティ診断装置およびセキュリティ診断方法 |
CN201780093329.9A CN110998577A (zh) | 2017-08-01 | 2017-08-01 | 安全诊断装置以及安全诊断方法 |
US16/621,338 US20200167478A1 (en) | 2017-08-01 | 2017-08-01 | Security diagnosis device and security diagnosis method |
EP17919720.7A EP3651045A1 (en) | 2017-08-01 | 2017-08-01 | Security diagnostic device and security diagnostic method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2017/027822 WO2019026172A1 (ja) | 2017-08-01 | 2017-08-01 | セキュリティ診断装置およびセキュリティ診断方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2019026172A1 true WO2019026172A1 (ja) | 2019-02-07 |
Family
ID=65232390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2017/027822 WO2019026172A1 (ja) | 2017-08-01 | 2017-08-01 | セキュリティ診断装置およびセキュリティ診断方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20200167478A1 (ja) |
EP (1) | EP3651045A1 (ja) |
JP (1) | JP6636222B2 (ja) |
CN (1) | CN110998577A (ja) |
WO (1) | WO2019026172A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020071637A (ja) * | 2018-10-31 | 2020-05-07 | 株式会社イエラエセキュリティ | ウェブサイトの脆弱性診断装置、診断システム、診断方法および診断プログラム |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111125713B (zh) * | 2019-12-18 | 2022-04-08 | 支付宝(杭州)信息技术有限公司 | 一种水平越权漏洞的检测方法、装置及电子设备 |
US11683294B2 (en) * | 2019-12-30 | 2023-06-20 | Imperva, Inc. | Privacy-preserving learning of web traffic |
US20230328091A1 (en) * | 2022-04-07 | 2023-10-12 | Vmware, Inc. | Automated discovery of vulnerable endpoints in an application server |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010176167A (ja) | 2009-01-27 | 2010-08-12 | Fujitsu Ltd | 最小権限違反検出プログラム |
US20170149782A1 (en) * | 2015-11-19 | 2017-05-25 | International Business Machines Corporation | Identifying webpages accessible by unauthorized users via url guessing or network sniffing |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101001132B1 (ko) * | 2008-02-22 | 2010-12-15 | 엔에이치엔비즈니스플랫폼 주식회사 | 웹 어플리케이션의 취약성 판단 방법 및 시스템 |
US20170063916A1 (en) * | 2015-08-26 | 2017-03-02 | Wegilant Net Solutions Private Limited | System and method for automatically identifying broken authentication and other related vulnerabilities in web services |
-
2017
- 2017-08-01 WO PCT/JP2017/027822 patent/WO2019026172A1/ja unknown
- 2017-08-01 JP JP2019533770A patent/JP6636222B2/ja not_active Expired - Fee Related
- 2017-08-01 CN CN201780093329.9A patent/CN110998577A/zh not_active Withdrawn
- 2017-08-01 US US16/621,338 patent/US20200167478A1/en not_active Abandoned
- 2017-08-01 EP EP17919720.7A patent/EP3651045A1/en not_active Withdrawn
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010176167A (ja) | 2009-01-27 | 2010-08-12 | Fujitsu Ltd | 最小権限違反検出プログラム |
US20170149782A1 (en) * | 2015-11-19 | 2017-05-25 | International Business Machines Corporation | Identifying webpages accessible by unauthorized users via url guessing or network sniffing |
Non-Patent Citations (1)
Title |
---|
See also references of EP3651045A4 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020071637A (ja) * | 2018-10-31 | 2020-05-07 | 株式会社イエラエセキュリティ | ウェブサイトの脆弱性診断装置、診断システム、診断方法および診断プログラム |
JP7217400B2 (ja) | 2018-10-31 | 2023-02-03 | GMOサイバーセキュリティbyイエラエ株式会社 | ウェブサイトの脆弱性診断装置、診断システム、診断方法および診断プログラム |
Also Published As
Publication number | Publication date |
---|---|
US20200167478A1 (en) | 2020-05-28 |
JPWO2019026172A1 (ja) | 2019-11-21 |
CN110998577A (zh) | 2020-04-10 |
EP3651045A4 (en) | 2020-05-13 |
JP6636222B2 (ja) | 2020-01-29 |
EP3651045A1 (en) | 2020-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220035930A1 (en) | System and method for identifying network security threats and assessing network security | |
EP3188436B1 (en) | Platform for protecting small and medium enterprises from cyber security threats | |
US8782796B2 (en) | Data exfiltration attack simulation technology | |
CN111400722B (zh) | 扫描小程序的方法、装置、计算机设备和存储介质 | |
US7917759B2 (en) | Identifying an application user as a source of database activity | |
CN108989355B (zh) | 一种漏洞检测方法和装置 | |
CN112347485B (zh) | 多引擎获取漏洞并自动化渗透的处理方法 | |
CN111683047B (zh) | 越权漏洞检测方法、装置、计算机设备及介质 | |
US20110283174A1 (en) | Optimizing Security Seals on Web Pages | |
JP2006526221A (ja) | ネットワークの脆弱性を検出し、コンプライアンスを評価する装置及び方法 | |
WO2019026172A1 (ja) | セキュリティ診断装置およびセキュリティ診断方法 | |
US9059987B1 (en) | Methods and systems of using single sign-on for identification for a web server not integrated with an enterprise network | |
CN113868659B (zh) | 一种漏洞检测方法及系统 | |
US20160034690A1 (en) | Unused Parameters of Application Under Test | |
JP5499805B2 (ja) | 情報処理装置、情報処理システム、情報処理方法並びに情報処理プログラム | |
Squarcina et al. | Can i take your subdomain? exploring {Same-Site} attacks in the modern web | |
Serketzis et al. | Actionable threat intelligence for digital forensics readiness | |
JP5549281B2 (ja) | 不正侵入検知・防御システム、クライアントコンピュータ、不正侵入検知・防御装置、方法およびプログラム | |
CN113868669A (zh) | 一种漏洞检测方法及系统 | |
Westers et al. | SSO-monitor: fully-automatic large-scale landscape, security, and privacy analyses of single sign-on in the wild | |
Ashari et al. | Security Audit for Vulnerability Detection and Mitigation of UPT Integrated Laboratory (ILab) ITERA Website Based on OWASP Zed Attack Proxy (ZAP) | |
CN113868670A (zh) | 一种漏洞检测流程检验方法及系统 | |
Laitinen | Vulnerabilities in the wild: Detecting vulnerable Web applications at scale | |
JP2017045188A (ja) | 通信記録確認装置、通信記録確認システム、通信記録確認方法および通信記録確認プログラム | |
Forsberg | Penetration Testing and PrivacyAssessment of Top-RankedHealth and Fitness Apps: An Empirical Study |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 17919720 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2019533770 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2017919720 Country of ref document: EP Effective date: 20200203 |