IP Library Granted Patent US 9,405,915
Granted Patent B2
US 9,405,915 · App. 13/830,312 · Granted Aug 2, 2016

Techniques for correlating vulnerabilities across an evolving codebase

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,405,915
App. No.
13/830,312
Granted
Aug 2, 2016
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 (55)

1. A method of characterizing vulnerabilities of application source code, comprising one or more computer processors performing steps comprising:

traversing a representation of the application source code, the representation of the application source code comprising an abstract syntax tree of the application source code;

identifying a potentially vulnerable node during traversal of the representation of the application source code;

collecting metadata of the potentially vulnerable node, the metadata comprising one or more parent or child nodes associated with the potentially vulnerable node;

generating a signature of the potentially vulnerable node, the signature comprising a value of a hash function on the metadata of the potentially vulnerable node; and

determining characteristics of a potential vulnerability associated with the potentially vulnerable node, based on a correlation between the generated signature of the potentially vulnerable node and previously stored signatures of potentially vulnerable nodes.

2. The method of claim 1 , wherein generating a signature of the potentially vulnerable node further comprises:

determining whether the potential vulnerability is associated with more than one node; and

when it is determined that the potential vulnerability is associated with more than one node, identifying a preferred node of the more than one node,

wherein collecting metadata comprises collecting metadata of the preferred node.

3. The method of claim 2 , wherein the preferred node is a last-most node.

4. The method of claim 1 , wherein collecting metadata of the potentially vulnerable node comprises:

collecting contextually significant information of all parent and children nodes of the potentially vulnerable node.

5. The method of claim 4 , wherein collecting contextually significant information comprises determining whether the potentially vulnerable node has a resolved symbol, and when it is determined that the potentially vulnerable node has a resolved symbol, collecting a corresponding qualified signature.

6. The method of claim 5 , wherein when it is determined that the potentially vulnerable node does not have a resolved symbol, a name of a node type is collected when it is determined that the node influences a control flow of the application.

7. The method of claim 1 , wherein determining characteristics of the potential vulnerability comprises:

determining whether the generated signature matches any previously stored signatures of potentially vulnerable node;

when it is determined that the generated signature matches a previously stored signature, characterizing the potentially vulnerable node having the generated signature as a duplicate; and

when it is determined that the generated signature does not match a previously stored signature, characterizing the potentially vulnerable node having the generated signature as a new vulnerability.

8. A computing system, comprising:

a storage element operable to store a representation of application source code; and

a processor operable to perform operations comprising:

traversing the representation of the application source code, the representation of the application source code comprising an abstract syntax tree of the application source code;

identifying a potentially vulnerable node during traversal of the representation of the application source code;

collecting metadata of the potentially vulnerable node, the metadata comprising one or more parent or child nodes associated with the potentially vulnerable node;

generating a signature of the potentially vulnerable node, the signature comprising a value of a hash function on the metadata of the potentially vulnerable node; and

determining characteristics of a potential vulnerability associated with the potentially vulnerable node, based on a correlation between the generated signature of the potentially vulnerable node and previously stored signatures of potentially vulnerable nodes.

9. The computing system of claim 8 , wherein generating a signature of the potentially vulnerable node further comprises:

determining whether the potential vulnerability is associated with more than one node; and

when it is determined that the potential vulnerability is associated with more than one node, identifying a preferred node of the more than one node,

wherein collecting metadata comprises collecting metadata of the preferred node.

10. The computing system of claim 8 , wherein collecting metadata of the potentially vulnerable node comprises:

collecting contextually significant information of all parent and children nodes of the potentially vulnerable node.

11. The computing system of claim 10 , wherein collecting contextually significant information comprises determining whether the potentially vulnerable node has a resolved symbol, and when it is determined that the potentially vulnerable node has a resolved symbol, collecting a corresponding qualified signature.

12. The computing system of claim 8 , wherein determining characteristics of the potential vulnerability comprises:

determining whether the generated signature matches any previously stored signatures of potentially vulnerable node;

when it is determined that the generated signature matches a previously stored signature, characterizing the potentially vulnerable node having the generated signature as a duplicate; and

when it is determined that the generated signature does not match a previously stored signature, characterizing the potentially vulnerable node having the generated signature as a new vulnerability.

13. A tangible non-transitory computer readable storage medium having code stored thereon that, when executed by a computer, causes the computer to perform operations comprising:

traversing a representation of application source code, the representation of the application source code comprising an abstract syntax tree of the application source code;

identifying a potentially vulnerable node during the traversal of the representation of the application source code;

collecting metadata of the potentially vulnerable node, the metadata comprising one or more parent or child nodes associated with the potential vulnerability;

generating a signature of the potentially vulnerable node, the signature comprising a value of a hash function on the metadata of the potentially vulnerable node; and

determining characteristics of a potential vulnerability associated with the potentially vulnerable node, based on a correlation between the generated signature of the potentially vulnerable node and previously stored signatures of potentially vulnerable nodes.

14. The storage medium of claim 13 , wherein generating a signature of the potentially vulnerable node further comprises:

determining whether the potential vulnerability is associated with more than one node; and

when it is determined that the potential vulnerability is associated with more than one node, identifying a preferred node of the more than one node,

wherein collecting metadata comprises collecting metadata of the preferred node.

15. The storage medium of claim 13 , wherein collecting metadata of the potentially vulnerable node comprises:

collecting contextually significant information of all parent and children nodes of the potentially vulnerable node.

16. The storage medium of claim 15 , wherein collecting contextually significant information comprises determining whether the potentially vulnerable node has a resolved symbol, and when it is determined that the potentially vulnerable node has a resolved symbol, collecting a corresponding qualified signature.

17. The storage medium of claim 13 , wherein determining characteristics of the potential vulnerability comprises:

determining whether the generated signature matches any previously stored signatures of potentially vulnerable node;

when it is determined that the generated signature matches a previously stored signature, characterizing the potentially vulnerable node having the generated signature as a duplicate; and

when it is determined that the generated signature does not match a previously stored signature, characterizing the potentially vulnerable node having the generated signature as a new vulnerability.

Assignments (11)
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 →
RELEASE OF SECURITY INTEREST Recorded Jun 17, 2022
From: ORIX GROWTH CAPITAL, LLC
To: WHITEHAT SECURITY, INC.
Reel/Frame 060242/0589 →
REASSIGNMENT AND RELEASE OF SECURITY INTEREST Recorded Jun 17, 2022
From: WESTERN ALLIANCE BANK AS SUCCESSOR IN INTEREST TO BRIDGE BANK, NATIONAL ASSOCIATION
To: WHITEHAT SECURITY, INC.
Reel/Frame 060456/0685 →
SECURITY INTEREST Recorded Nov 28, 2016
From: WHITEHAT SECURITY, INC.
To: BRIDGE BANK, NATIONAL ASSOCIATION
Reel/Frame 040682/0973 →
SECURITY INTEREST Recorded Nov 23, 2016
From: WHITEHAT SECURITY, INC.
To: ORIX GROWTH CAPITAL, LLC
Reel/Frame 040413/0127 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 15, 2013
From: SHERIDAN, ERIC
To: WHITEHAT SECURITY, INC.
Reel/Frame 031405/0099 →