IP Library Granted Patent US 11,669,623
Granted Patent B2
US 11,669,623 · App. 17/157,559 · Granted Jun 6, 2023

Method for detecting vulnerabilities in software

Inventors: Hans-Christian Esperer (Heidelberg, DE); Yun Ding (Heidelberg, DE); Thomas Kastner (Sinsheim, DE); Markus Schumacher (Einhausen, DE)
G06F21/577G06F8/42G06F21/53G06F8/41G06F2221/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 11,669,623
App. No.
17/157,559
Granted
Jun 6, 2023
Kind
B2
Abstract

A method, an apparatus, and a storage medium for detecting vulnerabilities in software to protect a computer system from security and compliance breaches are provided. The method includes providing a ruleset code declaring programming interfaces of a target framework and including rules that define an admissible execution context when invoking the programming interfaces, providing a source code to be scanned for vulnerabilities; compiling the source code into a first execution code having additional instructions inserted to facilitate tracking of an actual execution context of the source code, compiling the ruleset code into a second execution code that can be executed together with the first execution code, executing the first execution code within an virtual machine and passing calls of the programming interfaces to the second execution code, and detecting a software vulnerability when the actual execution context disagrees with the admissible execution context.

Claims (18)

1. A method for detecting a vulnerability in software to protect a computer system from a breach, the method comprising:

providing a ruleset comprising programming interfaces of a target framework and comprising rules for an admissible execution context when invoking the programming interfaces;

providing the software to be scanned for the breach;

compiling the software into a first execution code having additional instructions inserted therein to facilitate tracking of an actual execution context of the software;

compiling the ruleset into a second execution code to be executed with the first execution code;

executing the first execution code within a virtual machine;

passing a call of the programming interfaces to the second execution code; and

detecting the breach when the actual execution context is different from the admissible execution context.

2. The method according to claim 1 , wherein each function of the software is invoked once.

3. The method according to claim 2 , wherein:

the software includes branch instructions and return instructions, and the branch instructions and the return instructions are ignored when the first execution code is executed within the virtual machine.

4. The method according to claim 1 , wherein the virtual machine provides an execution context to the ruleset.

5. The method according to claim 1 , wherein the virtual machine provides interception calls to the ruleset and continues execution.

6. The method according to claim 1 , wherein the virtual machine builds data flow graphs.

7. The computer-implemented method according to claim 6 , wherein the data flow graphs are used by the ruleset code to attach data flow information to a finding.

8. The method according to claim 1 , wherein the software is compiled into bytecode which is suitable for code analysis.

9. The method according to claim 1 , wherein a syntax error does not abort the compiling of the software.

10. The method according to claim 9 , wherein during the compiling, instructions are generated to inform a rule engine of syntax errors that occurs during the compiling.

Continuity (2)
Continuation 15834381 · Dec 7, 2017
Related Publication 20210173941A1 · Jun 10, 2021
Cited By (1)
US 12,659,337