IP Library › Granted Patent US 10,503,910
Granted Patent B2
US 10,503,910 · App. 15/615,603 · Granted Dec 10, 2019

Security testing framework including virtualized server-side platform

Inventor: Martin Johns (Karlsruhe, DE)
Assignee: SAP SE
G06F21/577G06F21/552G06F2221/034
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 10,503,910
App. No.
15/615,603
Granted
Dec 10, 2019
Kind
B2
Abstract

A web application security testing framework includes a HTTP browser engine replaying recorded sessions to identify candidate traces indicative of attack. A mutation engine changes values in the attack candidate traces to generate additional traces posed against a virtualized server-side platform. The virtualized server-side platform creates snapshots of application state for testing, avoiding permanent damage to application persistence. The virtualized server-side platform includes persistence monitoring sensors (e.g., at connectors to the database or file system) for detecting vulnerability classes including Cross-Site Request Forgery (CSRF) and SQL injection attacks. For remote command execution attack detection, a server-side vulnerability validation interface records strings passed to code generating application program interfaces (APIs). For possible Cross-Site Scripting (XSS) attacks, the mutation engine may detect HTTP responses for examination of generated web code, and the HTTP browser may be extended to include a vulnerability validation API that is automatically called by successfully injected attack payloads.

Claims (65)

1. A computer-implemented method comprising:

receiving, by a server hosting a web application, a trace comprising a first value provided by a browser component;

storing the trace in an in-memory database;

creating, by the server, a snapshot of a virtualized state of the web application at a time of receiving the trace;

generating a mutant trace having the first value changed to a second value by an in-memory database engine of the in-memory database;

sensing, by the in-memory database engine at the server, a change in persistence resulting from the mutant trace; and

in response to the sensing, the server communicating the mutant trace to a test engine for identification of a security vulnerability.

2. A method as in claim 1 wherein the sensing occurs at a file system.

3. A method as in claim 1 wherein:

the sensing occurs at the in-memory database; and

the security vulnerability comprises a cross-site request forgery (CSRF) vulnerability.

4. A method as in claim 1 wherein:

the sensing occurs at the in-memory database; and

the security vulnerability comprises a SQL injection vulnerability.

5. A method as in claim 1 wherein:

the sensing comprises detecting injection of a payload of the mutant trace; and

the method further comprises issuing, by the payload, a call to an application program interface (API).

6. A method as in claim 5 wherein:

the issuing comprises issuing the call to the API residing on the server; and

the security vulnerability comprises a remote command execution vulnerability.

7. A method as in claim 1 wherein:

the security vulnerability comprises a cross-site scripting (XSS) vulnerability.

8. A method as in claim 7 further comprising:

generating, by the server, a response to the mutant trace; and

communicating, by the server, the response to the in-memory database engine.

9. A method as in claim 7 wherein:

the sensing comprises detecting injection of a payload of the mutant trace; and

the method further comprises issuing, by the payload, a call to an application program interface (API) residing on the browser component.

10. A method as in claim 1 wherein the in-memory database engine is further configured to perform a selection function.

11. A method as in claim 1 wherein the in-memory database engine is further configured to perform a filtering function.

12. A non-transitory computer readable storage medium embodying a computer program for performing a method, said method comprising:

receiving, by a server hosting a web application, a trace comprising a first value provided by a browser component;

storing the trace in an in-memory database;

creating, by the server, a snapshot of a virtualized state of the web application at a time of receiving the trace;

generating a mutant trace having the first value changed to a second value by an in-memory database engine of the in-memory database;

sensing, by the in-memory database at the server, a change in persistence in a database resulting from the mutant trace; and

communicating, by the server, in response to the sensing, the mutant trace to a test engine for identification of a security vulnerability.

13. A non-transitory computer readable storage medium as in claim 12 wherein:

the sensing comprises detecting injection of a payload of the mutant trace; and

the method further comprises issuing, by the payload, a call to an application program interface (API).

14. A non-transitory computer readable storage medium as in claim 13 wherein:

the issuing comprises issuing the call to the API residing on the server; and

the security vulnerability comprises a remote command execution vulnerability.

15. A non-transitory computer readable storage medium as in claim 12 wherein:

the issuing comprises issuing the call to the API residing on the browser component; and

the security vulnerability comprises a cross-site scripting (XSS) vulnerability.

16. A non-transitory computer readable storage medium as in claim 12 wherein the security vulnerability comprises a cross-site request forgery (CSRF) or a SQL injection.

17. A computer system comprising:

one or more processors;

a software program, executable on said computer system, the software program configured to cause a server hosting a web application to:

receive a trace comprising a first value provided by a browser component;

store the trace in an in-memory database;

create a snapshot of a virtualized state of the web application at a time of receiving the trace;

generate a mutant trace having the first value changed to a second value by an in-memory database engine of the in-memory database;

sense by the in-memory database a change in persistence resulting from the mutant trace, the change in persistence comprising injecting a payload of the mutant trace, the payload issuing a call to an application program interface (API); and

communicate, in response to the sensing, the mutant trace to a test engine for identification of a security vulnerability.

18. A computer system as in claim 17 wherein:

the issuing comprises issuing the call to the API residing on the server; and

the security vulnerability comprises a remote command execution vulnerability.

19. A computer system as in claim 17 wherein:

the issuing comprises issuing the call to the API residing on a browser component; and

the security vulnerability comprises a cross-site scripting (XSS) vulnerability.

20. A computer system as in claim 17 wherein the software program is configured to further cause the server to:

generate a response to the trace; and

communicate the response to the in-memory database engine.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 6, 2017
From: JOHNS, MARTIN
To: SAP SE
Reel/Frame 042619/0895 →
Continuity (1)
Related Publication 20180349602A1 · Dec 6, 2018
Cited By (19)
US 12,355,787 US 12,363,148 US 12,368,746 US 12,375,573 US 12,464,003 US 12,470,577 US 12,470,578 US 12,483,576 US 12,489,770 US 12,500,911 US 12,513,221 US 12,537,837 US 12,537,839 US 12,556,548 US 12,587,553 US 12,659,326 US 12,659,337 US 12,689,638 US 12,706,932