IP Library › Granted Patent US 9,436,829
Granted Patent B2
US 9,436,829 · App. 14/490,788 · Granted Sep 6, 2016

Security testing of web applications with specialized payloads

Inventors: Omer Tripp (Bronx, NY); Emmanuel Wurth (Saubens, FR)
Assignee: GLOBALFOUNDRIES INC.
G06F21/577H04L63/1433H04L63/1483G06F2221/033
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 9,436,829
App. No.
14/490,788
Granted
Sep 6, 2016
Kind
B2
Abstract

In one embodiment, a computer-implemented method for security testing of web applications with specialized payloads includes submitting a test to a web application, where the test includes a payload with a set of constraints. A response is received from the web application. One or more constraints are derived from the response. The set of constraints of the payload are updated with the derived one or more constraints. The payload is synthesized, by a computer processor, for the updated set of constraints. The test having the synthesized payload is iterated with the updated set of constraints.

Claims (47)

1. A computer-implemented method for security testing of web applications with specialized payloads, the method comprising:

submitting to a web application a payload based on a set of constraints of the payload, the set of constraints of the payload being in form of tokens sanitizable by a server hosting the web application, the submitting being at least a portion of a vulnerability test for the web application, and the vulnerability test being a test for cross-site scripting;

receiving a response from the web application;

deriving one or more constraints from the response;

updating, by a computer processor, the set of constraints of the payload with the derived one or more constraints to generate an updated set of constraints;

synthesizing, by the computer processor, an updated payload based on the updated set of constraints, the updated payload being submittable as input to the web application for testing the web application;

iterating the vulnerability test one or more times by submitting to the web application the updated payload based on the updated set of constraints; and

determining, in response to the vulnerability test, that no vulnerability is identifiable in the web application, responsive to a failure to synthesize a new updated payload during the iterating.

2. The method of claim 1 , wherein the vulnerability test further comprises a first payload based on an empty set of constraints.

3. The method of claim 1 , further comprising:

creating the payload including a defined grammar describing how items in the payload are structured together.

4. The method of claim 3 , further comprising, before a first iteration of the vulnerability test, generating the payload using random items that respect the defined grammar.

5. The method of claim 3 , wherein the defined grammar of the payload is encoded as a propositional formula.

6. The method of claim 3 , further comprising determining the failure to synthesize the new updated payload, wherein the determining the failure comprises:

applying a current set of constraints to the defined grammar; and

determining that it is impossible to generate a new payload that respects the defined grammar and respects the current set of constraints.

7. The method of claim 6 , wherein the applying the current set of constraints to the defined grammar comprises using a satisfying or unsatisfying solution solver.

8. The method of claim 3 , wherein the payload comprises the defined grammar encoded into a propositional formula by distinguishing occurrences of non-terminal tokens.

9. The method of claim 1 , further comprising selecting a starting point for the vulnerability test in the web application.

10. The method of claim 1 , wherein the set of constraints of the payload are token-based constraints.

11. The method of claim 1 , wherein the set of constraints of the payload are regular language constraints over the payload.

12. The method of claim 1 , wherein the payload is a sequence and defines a unique propositional variable for each token-offset pair.

13. A system for security testing of web applications with specialized payloads, comprising:

a memory; and

one or more processors, communicatively coupled to the memory, the one or more processors configured to:

submit to a web application a payload based on a set of constraints, the set of constraints of the payload being in form of tokens sanitizable by a server hosting the web application, the submitting being at least a portion of a vulnerability test for the web application, and the vulnerability test being a test for cross-site scripting;

receive a response from the web application;

derive one or more constraints from the response;

update the set of constraints of the payload with the derived one or more constraints to generate an updated set of constraints;

synthesize an updated payload based on the updated set of constraints, the updated payload being submittable as input to the web application for testing the web application;

iterate the vulnerability test one or more times by submitting to the web application the updated payload based on the updated set of constraints; and

determine, in response to the vulnerability test, that no vulnerability is identifiable in the web application, responsive to a failure to synthesize a new updated payload during the iterating.

14. The system of claim 13 , the one or more processors being further configured to select a starting point for the vulnerability test in the web application.

15. The system of claim 13 , the one or more processors being further configured to create the payload according to a defined grammar describing how items in the payload are structured together.

16. The system of claim 15 , the one or more processors being further configured, before a first iteration of the vulnerability test, to generate the payload using random items that respect the defined grammar.

17. The system of claim 15 , the one or more processors being further configured to determine the failure to synthesize the new updated payload, wherein to determine the failure, the one or more processors are further configured to:

apply a current set of constraints to the defined grammar; and

determining that it is impossible to generate a new payload that respects the defined grammar and respects the current set of constraints.

18. The system of claim 17 , the one or more processors being configured to apply the current set of constraints to the defined grammar by using a satisfying or unsatisfying solution solver.

19. A computer program product for security testing of web applications with specialized payloads, the computer program product comprising a non-transitory computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to perform a method comprising:

submitting to a web application a payload based on a set of constraints of the payload, the set of constraints of the payload being in form of tokens sanitizable by a server hosting the web application, the submitting being at least a portion of a vulnerability test for the web application, and the vulnerability test being a test for cross-site scripting;

receiving a response from the web application;

deriving one or more constraints from the response;

updating the set of constraints of the payload with the derived one or more constraints to generate an updated set of constraints;

synthesizing an updated payload based on the updated set of constraints, the updated payload being submittable as input to the web application for testing the web application;

iterating the vulnerability test one or more times by submitting to the web application the updated payload based on the updated set of constraints; and

determining, in response to the vulnerability test, that no vulnerability is identifiable in the web application, responsive to a failure to synthesize a new updated payload during the iterating.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded May 12, 2021
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: GLOBALFOUNDRIES U.S. INC.
Reel/Frame 056987/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 20, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: GLOBALFOUNDRIES INC.
Reel/Frame 054636/0001 →
SECURITY AGREEMENT Recorded Nov 29, 2018
From: GLOBALFOUNDRIES INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 049490/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2015
From: GLOBALFOUNDRIES U.S. 2 LLC; GLOBALFOUNDRIES U.S. INC.
To: GLOBALFOUNDRIES INC.
Reel/Frame 036779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 3, 2015
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: GLOBALFOUNDRIES U.S. 2 LLC
Reel/Frame 036550/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 19, 2014
From: TRIPP, OMER; WURTH, EMMANUEL
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 033776/0107 →
Priority Claims (1)
GB 1318119.3 · Oct 14, 2013 · national
Continuity (1)
Related Publication 20150106943A1 · Apr 16, 2015