IP Library Granted Patent US 8,087,088
Granted Patent B1
US 8,087,088 · App. 11/864,736 · Granted Dec 27, 2011

Using fuzzy classification models to perform matching operations in a web application security scanner

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,087,088
App. No.
11/864,736
Granted
Dec 27, 2011
Kind
B1
Abstract

A system provides for fuzzy classification in comparisons of scanner responses. A web application test suite performs tests against a web application by sending client requests from a testing computer to the server running the web application and checking how the web application responds. A thorough web application security scan might involve thousands of checks and responses. As a result, some sort of programmatic analysis is needed. One such evaluation involves comparing one response against another. Response matching that compares two HTTP responses might use fuzzy classification processes.

Claims (57)

1. A method of testing a web application, wherein a web application is a program that operates on a server and interacts with clients that access the program over a network, wherein further the web application accepts parameters that define results generated from the web application, the method comprising:

executing a first target request at a scanner, the first target request being directed at the web application and being a request to be tested;

receiving a first target response in response to the first target request;

executing a second target request at a scanner, the second target request being directed at the web application and determined based on the first target request;

receiving a second target response in response to the second target request, the second target response being a predetermined target response;

comparing the first target response to the second target response to determine an attribute of the first target response;

determining whether the first target response is equal to the predetermined target response; and

if it is determined that the first target response is not equal to the predetermined target response:

executing one or more additional target requests, the additional target requests being directed at the web application and determined based on the first target request;

in response to the additional target requests, receiving a corresponding one or more additional target responses; and

comparing the additional target responses to the first target response to determine an attribute of the first target response,

wherein the predetermined target response is a hypertext transport protocol (HTTP) class response, comparing the first target response to the second target response includes using a fuzzy classification process, and comparing the additional target responses to the first target response includes using a fuzzy classification process.

2. The method of claim 1 , wherein the attribute of the first target response is an indication of whether the response represents a resource or the absence of access to a resource.

3. The method of claim 1 , wherein the fuzzy classification process includes one or more of a local sensitive hash, a Bayesian inference, or a support vector machine.

4. The method of claim 1 , wherein the predetermined target response is a hypertext transport protocol (HTTP) class 400 response, and each of the additional target requests are in the form of a uniform resource identifier (URI) and include a randomly generated string of text.

5. The method of claim 4 , wherein the one or more additional target requests begin with general URI's and move to more specific URI's.

6. The method of claim 1 , wherein the first target response is determined to be a resource and not an error message if a predetermined number of additional target responses do not match the first target response.

7. The method of claim 1 , further comprising:

determining whether the first target response and the second target response are HTTP class 200 responses; and

if it determined that the first target response and the second target response are HTTP class 200 responses, comparing the first target response to the second target response using a fuzzy classification process.

8. A system for testing a web application, wherein a web application is a program that operates on a server and interacts with clients that access the program over a network, wherein further the web application accepts parameters that define results generated from the web application, the system comprising:

a storage for template; and

a processor configured to execute a first target request directed at a web application, receive a first target response in response to the first target request, store the first target response in the storage for template, execute a second target request directed at the web application and determined based on the first target request, receive a second target response in response to the second target request, retrieve the first target response from the storage for template, and compare the first target response to the second target response to determine an attribute of the first target response,

wherein comparing the first target response to the second target response includes using a fuzzy classification process;

wherein the first target request and the second target request are current session verification requests (SVR's), and the attribute of the first target response indicates whether the scanner is in a logged-in state; and

wherein the second target request is executed immediately after the scanner logs in or the first target request is an SVR modified to remove credential information.

9. The system of claim 8 , wherein the fuzzy classification process includes one or more of a local sensitive hash, a Bayesian inference, or a support vector machine.

10. A non-transitory computer-readable medium tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus having stored thereon instructions configured to test a web application, comprising:

program code for executing a first target request at a scanner, the first target request being directed at the web application and being a request to be tested;

program code for receiving a first target response in response to the first target request;

program code for executing a second target request at a scanner, the second target request being directed at the web application and determined based on the first target request;

program code for receiving a second target response in response to the second target request, the second target response being a predetermined target response;

program code for comparing the first target response to the second target response to determine an attribute of the first target response;

program code for determining whether the first target response is equal to the predetermined target response; and

if it is determined that the first target response is not equal to the predetermined target response:

executing one or more additional target requests, the additional target requests being directed at the web application and determined based on the first target request;

in response to the additional target requests, receiving a corresponding one or more additional target responses; and

comparing the additional target responses to the first target response to determine an attribute of the first target response,

wherein the predetermined target response is a hypertext transport protocol (HTTP) class response, comparing the first target response to the second target response includes using a fuzzy classification process, and comparing the additional target responses to the first target response includes using a fuzzy classification process.

11. The non-transitory computer-readable medium of claim 10 , wherein the attribute of the first target response is an indication of whether the response represents a resource or the absence of access to a resource.

12. The non-transitory computer-readable medium of claim 10 , wherein the fuzzy classification process includes one or more of a local sensitive hash, a Bayesian inference, or a support vector machine.

13. A method of testing a web application, wherein a web application is a program that operates on a server and interacts with clients that access the program over a network, wherein further the web application accepts requests that define responses generated from the web application, the method comprising:

sending a first request to the web application, wherein the first request is known to generate a first response with a first attribute from the web application;

receiving the first response with the first attribute from the web application in response to the first request;

sending a second request to the web application, wherein the second request is a request to be tested;

receiving a second response with a second attribute from the web application in response to the second request; and

comparing the first attribute of the first response to the second attribute of the second response to determine if they are the same, close or of the same type,

wherein comparing the first attribute of the first response to the second attribute of the second response includes using a fuzzy classification process;

wherein the first request and the second request are current session verification requests (SVR's), and the first attribute of the first response indicates whether the scanner is in a logged-in state; and

wherein the second request is executed immediately after the scanner logs in or the first request is an SVR modified to remove credential information.

14. The method of claim 13 , wherein the fuzzy classification process includes one or more of a local sensitive hash, a Bayesian inference, or a support vector machine.

15. The computer-readable medium of claim 10 , wherein the predetermined target response is a hypertext transport protocol (HTTP) class 400 response, and each of the additional target requests are in the form of a uniform resource identifier (URI) and include a randomly generated string of text.

16. The computer-readable medium of claim 15 , wherein the one or more additional target requests begin with general URI's and move to more specific URI's.

17. The computer-readable medium of claim 10 , wherein the first target response is determined to be a resource and not an error message if a predetermined number of additional target responses do not match the first target response.

18. The computer-readable medium of claim 10 , further comprising:

program code for determining whether the first target response and the second target response are HTTP class 200 responses; and

if it determined that the first target response and the second target response are HTTP class 200 responses, comparing the first target response to the second target response using a fuzzy classification process.

Assignments (11)
SECURITY INTEREST Recorded Sep 30, 2024
From: BLACK DUCK SOFTWARE, INC.
To: ARES CAPITAL CORPORATION, AS COLLATERAL AGENT
Reel/Frame 069083/0149 →
CHANGE OF NAME Recorded Jul 30, 2024
From: SOFTWARE INTEGRITY GROUP, INC.
To: BLACK DUCK SOFTWARE, INC.
Reel/Frame 068191/0490 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2024
From: SYNOPSYS, INC.
To: SOFTWARE INTEGRITY GROUP, INC.
Reel/Frame 066664/0821 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 2, 2022
From: SYNOPSYS SOFTWARE INTEGRITY SOLUTIONS, INC.
To: SYNOPSYS, INC.
Reel/Frame 060698/0193 →
CHANGE OF NAME Recorded Jul 25, 2022
From: NTT SECURITY APPSEC SOLUTIONS INC.
To: SYNOPSYS SOFTWARE INTEGRITY SOLUTIONS, INC.
Reel/Frame 060884/0443 →
CHANGE OF NAME Recorded Jul 22, 2022
From: WHITEHAT SECURITY, INC.
To: NTT SECURITY APPSEC SOLUTIONS INC.
Reel/Frame 060829/0937 →
RELEASE OF SECURITY INTEREST Recorded Jun 17, 2022
From: ORIX GROWTH CAPITAL, LLC
To: WHITEHAT SECURITY, INC.
Reel/Frame 060242/0589 →
REASSIGNMENT AND RELEASE OF SECURITY INTEREST Recorded Jun 17, 2022
From: WESTERN ALLIANCE BANK AS SUCCESSOR IN INTEREST TO BRIDGE BANK, NATIONAL ASSOCIATION
To: WHITEHAT SECURITY, INC.
Reel/Frame 060456/0685 →
SECURITY INTEREST Recorded Nov 23, 2016
From: WHITEHAT SECURITY, INC.
To: ORIX GROWTH CAPITAL, LLC
Reel/Frame 040413/0127 →
SECURITY AGREEMENT Recorded Jul 24, 2012
From: WHITEHAT SECURITY, INC.
To: BRIDGE BANK, NATIONAL ASSOCIATION
Reel/Frame 028629/0507 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2008
From: PENNINGTON, WILLIAM; GROSSMAN, JEREMIAH; STONE, ROBERT; PAZIRANDEH, SIAMAK
To: WHITEHAT SECURITY, INC.
Reel/Frame 020349/0585 →