IP Library Granted Patent US 9,830,460
Granted Patent B2
US 9,830,460 · App. 15/222,595 · Granted Nov 28, 2017

Techniques for correlating vulnerabilities across an evolving codebase

Inventor: Eric Sheridan (Summerfield, NC)
Assignee: WHITEHAT SECURITY, INC.
G06F21/577G06F21/563G06F21/564
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,830,460
App. No.
15/222,595
Granted
Nov 28, 2017
Kind
B2
Abstract

Methods, apparatus, and systems for characterizing vulnerabilities of an application source code are disclosed. Steps for characterizing vulnerabilities include traversing a representation of the application source code, generating a signature of a potential vulnerability of the application source code, and determining characteristics of the potential vulnerability based on a correlation between the generated signature of the potential vulnerability and previously stored signatures of potential vulnerabilities.

Claims (67)

1. A method of correlating vulnerabilities across an evolving codebase, comprising:

generating a representation of computer code, the representation different from the computer code;

identifying a potential vulnerability during traversal of the representation of the computer code;

collecting metadata of the potential vulnerability;

generating a unique vulnerability signature of the potential vulnerability by hashing the metadata of the potential vulnerability;

correlating the unique vulnerability signature of the potential vulnerability and previously stored vulnerability signatures of potential vulnerabilities to reduce duplicate potential vulnerabilities during the traversal; and

determining characteristics of the potential vulnerability based on the correlation.

2. The method of claim 1 , wherein collecting metadata of the potential vulnerability comprises collecting contextually significant information of the potential vulnerability.

3. The method of claim 2 , wherein collecting contextually significant information comprises:

determining whether the potential vulnerability has a resolved symbol; and

in response to determining that the potential vulnerability has a resolved symbol, collecting a corresponding qualified signature.

4. The method of claim 2 , wherein collecting contextually significant information comprises:

determining whether the potential vulnerability has a resolved symbol; and

in response to determining that the potential vulnerability does not have a resolved symbol, determining that a construct of the representation of computer code influences control flow of the computer code.

5. The method of claim 1 , wherein the correlating further comprises:

determining whether the unique vulnerability signature matches any previously stored signatures of potential vulnerability;

in response to determining that the unique vulnerability signature matches a previously stored signature, characterizing the potential vulnerability as a duplicate; and

removing the potential vulnerability.

6. The method of claim 1 , wherein the correlating further comprises:

determining whether the unique vulnerability signature matches any previously stored signatures of potential vulnerability;

in response to determining that the unique vulnerability does not match a previously stored signature, characterizing the potential as a new vulnerability.

7. The method of claim 1 , wherein the representation of the computer code is an abstract syntax tree.

8. A system of correlating vulnerabilities across an evolving codebase, comprising:

a processor; and

a memory comprising instructions that when executed by the processor, causes the processor to:

generate a representation of computer code, the representation different from the computer code;

identify a potential vulnerability during traversal of the representation of the computer code;

collect metadata of the potential vulnerability;

generate a unique vulnerability signature of the potential vulnerability by hashing the metadata of the potential vulnerability;

correlate the unique vulnerability signature of the potential vulnerability and previously stored vulnerability signatures of potential vulnerabilities to reduce duplicate potential vulnerabilities during the traversal; and

determine characteristics of the potential vulnerability based on the correlation.

9. The system of claim 8 , comprising further instructions, which when executed by the processor causes the processor to collect contextually significant information of the potential vulnerability.

10. The system of claim 9 , comprising further instructions, which when executed by the processor causes the processor to:

determine whether the potential vulnerability has a resolved symbol; and

in response to the determination that the potential vulnerability has a resolved symbol, collect a corresponding qualified signature.

11. The system of claim 9 , comprising further instructions, which when executed by the processor causes the processor to:

determine whether the potential vulnerability has a resolved symbol; and

in response to the determination that the potential vulnerability does not have a resolved symbol, determine that a construct of the representation of computer code influences control flow of the computer code.

12. The system of claim 8 , comprising further instructions, which when executed by the processor causes the processor to:

determine whether the unique vulnerability signature matches any previously stored signatures of potential vulnerability;

in response to the determination that the unique vulnerability signature matches a previously stored signature, characterize the potential vulnerability as a duplicate; and

remove the potential vulnerability.

13. The system of claim 8 , comprising further instructions, which when executed by the processor causes the processor to:

determine whether the unique vulnerability signature matches any previously stored signatures of potential vulnerability;

in response to the determination that the unique vulnerability does not match a previously stored signature, characterize the potential as a new vulnerability.

14. The system of claim 8 , wherein the representation of the computer code is an abstract syntax tree.

15. A non-transitory computer readable medium storing instructions that when executed by a processor cause the processor to:

generate a representation of computer code, the representation different from the computer code;

identify a potential vulnerability during traversal of the representation of the computer code;

collect metadata of the potential vulnerability;

generate a unique vulnerability signature of the potential vulnerability by hashing the metadata of the potential vulnerability;

correlate the unique vulnerability signature of the potential vulnerability and previously stored vulnerability signatures of potential vulnerabilities to reduce duplicate potential vulnerabilities during the traversal; and

determine characteristics of the potential vulnerability based on the correlation.

16. The non-transitory computer readable medium of claim 15 , comprising further instructions, which when executed by the processor causes the processor to collect contextually significant information of the potential vulnerability.

17. The non-transitory computer readable medium of claim 16 , comprising further instructions, which when executed by the processor causes the processor to:

determine whether the potential vulnerability has a resolved symbol; and

in response to the determination that the potential vulnerability has a resolved symbol, collect a corresponding qualified signature.

18. The non-transitory computer readable medium of claim 16 , comprising further instructions, which when executed by the processor causes the processor to:

determine whether the potential vulnerability has a resolved symbol; and

in response to the determination that the potential vulnerability does not have a resolved symbol, determine that a construct of the representation of computer code influences control flow of the computer code.

19. The non-transitory computer readable medium of claim 15 , comprising further instructions, which when executed by the processor causes the processor to:

determine whether the unique vulnerability signature matches any previously stored signatures of potential vulnerability;

in response to the determination that the unique vulnerability signature matches a previously stored signature, characterize the potential vulnerability as a duplicate; and

remove the potential vulnerability.

20. The non-transitory computer readable medium of claim 15 , comprising further instructions, which when executed by the processor causes the processor to:

determine whether the unique vulnerability signature matches any previously stored signatures of potential vulnerability;

in response to the determination that the unique vulnerability does not match a previously stored signature, characterize the potential as a new vulnerability.

Assignments (7)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2016
From: SHERIDAN, ERIC
To: WHITEHAT SECURITY, INC.
Reel/Frame 040467/0562 →
Continuity (2)
Continuation 13830312 · Mar 14, 2013
Related Publication 20170053121A1 · Feb 23, 2017