IP Library Granted Patent US 11,030,318
Granted Patent B1
US 11,030,318 · App. 15/887,900 · Granted Jun 8, 2021

Interactive verification of security vulnerability detections using runtime application traffic

Inventor: Tamir Shavro (Hertzelia, IL)
Assignee: Synopsys, Inc.
G06F21/577G06F11/3612G06F11/3668G06F21/52H04L63/1433G06F2221/033H04L67/02
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 11,030,318
App. No.
15/887,900
Granted
Jun 8, 2021
Kind
B1
Abstract

An application service request is parsed to identify an application service request parameter of the application service request. The application service request parameter is altered. The application service request is reconstructed to include the altered application service request parameter. The behavior of the application is analyzed while executing the reconstructed application service request to detect a security vulnerability. The detection of the security vulnerability is verified to eliminate false positives.

Claims (40)

1. A method comprising:

receiving information defining an application state of an application, the information including a current step in navigation flow of the application;

receiving, using a protocol, an application service request, the application service request including identification of a requested action and an application service request parameter value associated with an application service request parameter;

parsing, by an application service parser, the application service request to identify the application service request parameter of the application service request and the parameter value assigned to the application service request parameter;

altering the application service request parameter by replacing the application service request parameter value with a different value;

reconstructing the application service request, the reconstructed application service request comprising the different application service request parameter value and corresponding to the application state of the application;

transmitting the reconstructed application service request to the application server for execution of the application using the protocol;

analyzing behavior of the reconstructed application service request while executing the reconstructed application service request to detect a security vulnerability by determining whether the reconstructed application service request is handled in an insecure manner by the application server, wherein analyzing the behavior of the application is performed using instrumentation at specific locations of interest in the execution of the application;

subsequent to determining, based on the analysis, that the reconstructed application service request is handled in an insecure manner by the application server, verifying whether the detection of the security vulnerability corresponds to a true vulnerability or a false positive; and

transmitting the results of the verification of the detection of the security vulnerability.

2. The method of claim 1 , wherein the reconstructing of the application service request is performed by injected code inserted into the application using instrumentation.

3. The method of claim 1 , wherein the parsing of the application service request is performed responsive to detecting a potential security vulnerability while processing the application service request.

4. The method of claim 1 , wherein the protocol comprises one or more of form-based HTTP requests, multi-part submissions, JavaScript Object Notation (JSON), and Simple Object Access Protocol (SOAP).

5. The method of claim 1 , wherein the protocol is not an HTTP-based protocol, the method further comprising:

detecting the protocol responsive to monitoring the application service request; and

parsing the protocol using a custom parser for the detected protocol.

6. The method of claim 1 , wherein the verifying of the detection of the security vulnerability comprises determining whether the altered application service request is handled without sanitization or limitation.

7. The method of claim 1 , wherein the parsing of the application service request comprises instrumenting a servlet API to monitor entry points to the application.

8. The method of claim 1 , wherein the analyzing of the behavior of the application comprises using one or more of debugging, instrumentation, and operating system (OS) function hooks.

9. The method of claim 1 , applied to perform one or more of application security testing, quality testing, load testing, and bug testing.

10. A non-transitory computer-readable storage medium comprising instructions executable by a processor, the instructions comprising instructions for:

receiving information defining an application state of an application, the information including a current step in navigation flow of the application;

receiving, using a protocol, an application service request, the application service request including identification of a requested action and an application service request parameter value associated with an application service request parameter;

parsing, by an application service parser, the application service request to identify the application service request parameter of the application service request and the parameter value assigned to the application service request parameter;

altering the application service request parameter by replacing the application service request parameter value with a different value;

reconstructing the application service request, the reconstructed application service request comprising the different application service request parameter value and corresponding to the application state of the application;

transmitting the reconstructed application service request to the application server for execution of the application using the protocol;

analyzing behavior of the reconstructed application service request while executing the reconstructed application service request to detect a security vulnerability by determining whether the reconstructed application service request is handled in an insecure manner by the application server, wherein analyzing the behavior of the application is performed using instrumentation at specific locations of interest in the execution of the application;

subsequent to determining, based on the analysis, that the reconstructed application service request is handled in an insecure manner by the application server, verifying whether the detection of the security vulnerability corresponds to a true vulnerability or a false positive; and

transmitting the results of the verification of the detection of the security vulnerability.

11. The non-transitory computer-readable storage medium of claim 10 , wherein the reconstructing of the application service request is performed by injected code inserted into the application using instrumentation.

12. The non-transitory computer-readable storage medium of claim 10 , wherein the analyzing of the behavior of the application comprises using one or more of debugging, instrumentation, and operating system (OS) function hooks.

13. The non-transitory computer-readable storage medium of claim 10 , wherein the parsing of the application service request is performed responsive to detecting a potential security vulnerability while processing the application service request.

14. The non-transitory computer-readable storage medium of claim 10 , wherein the protocol comprises one or more of form-based HTTP requests, multi-part submissions, JavaScript Object Notation (JSON), and Simple Object Access Protocol (SOAP).

15. The non-transitory computer-readable storage medium of claim 10 , wherein the protocol is not an HTTP-based protocol, the instructions further comprising instructions for:

detecting the protocol responsive to monitoring the application service request; and

parsing the protocol using a custom parser for the detected protocol.

16. The non-transitory computer-readable storage medium of claim 10 , wherein the verifying of the detection of the security vulnerability comprises determining whether the altered application service request is handled without sanitization or limitation.

17. The non-transitory computer-readable storage medium of claim 10 , wherein the parsing of the application service request comprises instrumenting a servlet API to monitor entry points to the application.

18. The non-transitory computer-readable storage medium of claim 10 , the instructions applied to perform one or more of application security testing, quality testing, load testing, and bug testing.

Assignments (4)
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 Feb 2, 2018
From: SHAVRO, TAMIR
To: SYNOPSYS, INC.
Reel/Frame 044824/0351 →
Continuity (2)
Provisional Application 62455531 · Feb 6, 2017
Provisional Application 62454640 · Feb 3, 2017
Cited By (5)
US 12,189,786 US 12,250,241 US 12,260,252 US 12,284,201 US 12,665,922