IP Library Granted Patent US 10,282,550
Granted Patent B1
US 10,282,550 · App. 14/656,490 · Granted May 7, 2019

Auto-remediation workflow for computer security testing

Inventors: Eric Sheridan (Greensboro, NC); Harry Papaxenopoulos (Riverhead, NY); John Thomas Melton (Harrisburg, NC)
Assignee: WhiteHat Security, Inc.
G06F21/577G06F8/65G06F2221/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 10,282,550
App. No.
14/656,490
Filed
Mar 12, 2015
Granted
May 7, 2019
Kind
B1
Art Unit
2495
USPC
726/25
Abstract

Techniques for performing auto-remediation on computer system vulnerabilities in source code are disclosed herein. An application source code representation is scanned to determine any security vulnerabilities and from those vulnerabilities, a set of security patch rules are generated that may be used to automatically remediate the vulnerabilities. One or more of the security patch rules is selected for verification and, once verified may be used to generate a security patch. The security patch may then be automatically applied to the source code representation to produce a patched representation of the application source code with the vulnerability at least partly remediated.

Claims (48)

1. A computer-implemented method:

under the control of one or more computer systems configured with executable instructions,

receiving a representation of an application source code, the representation of the application source code is a tree data structure;

scanning the representation of the application source code, without executing the application source code, to determine a set of vulnerabilities in the representation of the application source code, based at least in part on applying a set of security vulnerability rule records obtained from a security vulnerability rules table, the set of security vulnerability rule records being selectively applied to the representation of the application source code, wherein each vulnerability record of the set of security vulnerabilities at least specifying a respective location of a corresponding vulnerability within the representation of the application source code;

generating a set of security patch rules based at least in part on the set of security vulnerabilities and based at least in part on a set of security fix rules;

verifying, via an automated process, a subset of the set of security patch rules;

selecting one or more verified security patch rules of the set of verified security patch rules to produce a security patch based at least in part on applying the one or more verified security patch rules; and

applying the security patch to the representation of the application source code to remediate at least one of the set of security vulnerabilities.

2. The computer-implemented method of claim 1 , wherein selecting the one or more verified security patch rules to produce the security patch comprises:

generating a plurality of candidate security patches based at least in part on applying at least one verified security patch rule of the one or more verified security patch rules; and

selecting one or more candidate security patches from the plurality of candidate security patches to produce the security patch.

3. The computer-implemented method of claim 1 , wherein selecting the one or more verified security patch rules to produce a security patch further comprises specifying one or more respective values for each additional parameter of a set of additional parameters associated with the one or more verified security patch rules.

4. The computer-implemented method of claim 1 , wherein each security vulnerability rule of the set of security vulnerability rules is configured to, when applied to the source code representation, identify one or more of the set of vulnerabilities by comparing the source code representation to one or more security vulnerability criteria, the one or more security vulnerability criteria specified in the respective security vulnerability rule by a security subject matter expert.

5. The computer-implemented method of claim 1 , wherein applying the security patch to the representation of the application source code to produce a patched representation of the application source code comprises:

identifying at least a portion of the application source code based at least in part on the security patch;

applying the security patch to the portion of the application source code to produce a patched portion of the application source code; and

providing the patched portion of the application source.

6. The computer-implemented method of claim 1 , further comprising:

providing the patched representation of the application source code to a source code repository, the source code repository configured to maintain a plurality of patched representations of the application source code, the source code repository further configured to integrate the patched representation of the application source code with one or more other representations of the application source code; and

integrating the patched representation of the application source code with at least one representation of the one or more other representations of the application source code using the source code repository.

7. A system, comprising:

at least one computing device comprising a processor and memory, the memory storing instructions which when executed by the processor cause the computing device to:

scan a representation of an application source code, the representation of the application source code is a tree data structure, without execution of the application source code, to determine a set of vulnerabilities in the representation of the application source code, wherein the set of vulnerabilities is determined at least in part by selectively applying a set of security vulnerability rules to the representation of the application source code;

generate a set of security patch rules based at least in part on the set of vulnerabilities and based at least in part on a set of security fix rules;

produce a verified security patch based at least in part on the set of security patch rules, the verified security patch produced by performing one or more verification operations configured to:

(1) select one or more security patch rules from the set of security patch rules;

(2) verify, via an automated process, the one or more security patch rules; and

(3) generate a security patch based at least in part on applying the one or more verified security patch rules; and

apply the security patch to the representation of the application source code to remediate at least one of the set of security vulnerabilities.

8. The computing system of claim 7 , wherein the set of security vulnerability rules are obtained from a security vulnerability rule table.

9. The computing system of claim 7 , wherein each security vulnerability rule of the set of security vulnerability rules at least specifies one or more security vulnerability criteria.

10. The computing system of claim 7 , wherein each vulnerability of the set of vulnerabilities at least specifies a respective location of the vulnerability within the representation of the application source code.

11. The computing system of claim 7 , wherein the one or more verification operations are further configured to verify the security patch prior to applying the security patch to the representation of the application source code to produce the patched representation of the application source code.

12. The computing system of claim 7 , wherein the one or more services are further configured to provide the patched representation of the application source code to a source code repository, the source code repository configured to maintain a plurality of patched representations of the application source code, the source code repository further configured to integrate the patched representation of the application source code with one or more other representations of the application source code.

13. The computing system of claim 7 , wherein the one or more verification operations are performed by a verification service of the one or more services.

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

receive a representation of an application course code, the representation of the application source code is a tree data structure;

scan the representation of an application source code, without execution of the application source code, to determine a set of vulnerabilities in the representation of the application source code by selectively applying a set of security vulnerability rules obtained from a security vulnerability rules table;

generate a security patch by performing one or more verification operations configured to:

(1) generate a set of security patch rules based at least in part on the set of vulnerabilities;

(2) verify, via an automated process, one or more security patch rules from the set of security patch rules; and

(3) generate the security patch based at least in part on applying the one or more verified security patch rules; and

apply the security patch to the representation of the application source code to remediate at least one of the set of security vulnerabilities.

15. The tangible non-transitory computer-readable storage medium of claim 14 , wherein the code that, when executed, cause the computer to generate the security patch further includes code that, when executed, causes the computer to generate one or more additional security patches based at least in part on applying the one or more verified security patch rules and the code that, when executed, cause the computer to apply the security patch to the representation of the application source code further includes code that, when executed, causes the computer to select the security patch to apply from a set of security patches at least including the security patch and the one or more additional security patches.

16. The tangible non-transitory computer-readable storage medium of claim 14 , wherein the security patch comprises one or more alterations to the representation of the application source code.

17. The tangible non-transitory computer-readable storage medium of claim 14 , wherein each vulnerability of the set of vulnerabilities specifies a respective vulnerability position, the vulnerability position determined from the representation of the application source code and based at least in part on the set of security vulnerability rules.

18. The tangible non-transitory computer-readable storage medium of claim 14 , wherein the code that, when executed, causes the computer to apply the security patch to the representation of the application source code further includes code that, when executed, causes the computer to obtain a verification prior to executing the code that causes the computer to apply the security patch to the representation of the application source code.

19. The tangible non-transitory computer-readable storage medium of claim 18 , wherein the verification is obtained from an end-user of the computer.

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 Apr 19, 2017
From: SHERIDAN, ERIC; PAPAXENOPOULOS, HARRY; MELTON, JOHN THOMAS
To: WHITEHAT SECURITY, INC.
Reel/Frame 042068/0333 →
Cited By (8)
US 12,549,573 US 12,549,577 US 12,596,538 US 12,627,686 US 12,627,690 US 12,664,289 US 12,670,265 US 12,684,001