IP Library Granted Patent US 11,765,193
Granted Patent B2
US 11,765,193 · App. 17/138,408 · Granted Sep 19, 2023

Contextual embeddings for improving static analyzer output

Inventors: Saurabh Pujar (White Plains, NY); Luca Buratti (White Plains, NY); Alessandro Morari (New York, NY); Jim Alain Laredo (Katonah, NY); Mihaela Ancuta Bornea (White Plains, NY); Jeffrey Scott McCarley (Bedford Hills, NY); Yunhui Zheng (Chappaqua, NY)
Assignee: International Business Machines Corporation
H04L63/1433G06F8/51G06F18/2155G06F18/24H04L63/20
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,765,193
App. No.
17/138,408
Granted
Sep 19, 2023
Kind
B2
Abstract

In a computer-implemented method for improving a static analyzer output, a processor receives a labeled data set with labeled true vulnerabilities and labeled false vulnerabilities. A processor receives pretrained contextual embeddings from a contextual embeddings model. A processor maps the true vulnerabilities and the false vulnerabilities to the pretrained contextual embeddings model. A processor generates a fine-tuned model with classifications for true vulnerabilities.

Claims (52)

1. A computer-implemented method for improving static analyzer output, comprising:

receiving, by one or more processors, a labeled data set comprising labeled true vulnerabilities and labeled false vulnerabilities of a static analyzer output;

receiving pretrained contextual embeddings from a contextual embeddings model, wherein the pretrained contextual embeddings comprise vector representations for tokens used in written material related to the static analyzer;

mapping first tokens of the true vulnerabilities and second tokens of the false vulnerabilities as vector representations based on the pretrained contextual embeddings; and

generating a fine-tuned model comprising classifications for true vulnerabilities from tokens in new static analyzer outputs.

2. The method of claim 1 , comprising:

receiving a new data set comprising vulnerabilities labeled by a static analyzer; and

identifying, using the fine-tuned model, a falsely labeled vulnerability in the new data set.

3. The method of claim 1 , comprising:

receiving a new data set comprising vulnerabilities labeled by a static analyzer; and

ranking, using the fine-tuned model, the vulnerabilities in the new data set, wherein the ranking corresponds to a likelihood that each vulnerability is a true vulnerability or a false vulnerability.

4. The method of claim 1 , comprising:

receiving a new data set comprising vulnerabilities labeled by a static analyzer; and

classifying, using the fine-tuned model, the vulnerabilities in the new data set, wherein the classification corresponds to a type of vulnerability.

5. The method of claim 1 , wherein the contextual embeddings comprise classifications generated from algorithms trained using source code.

6. The method of claim 5 , wherein the contextual embeddings comprise classifications generated from algorithms trained using comments related to the source code.

7. The method of claim 1 , wherein the fine-tuned model comprises a selection from the group consisting of a first model for binary classification of vulnerabilities, a second model for multi-class classification of the vulnerabilities, and a third model for ranking the likelihood that the vulnerabilities are false vulnerabilities.

8. The method of claim 1 , wherein the true vulnerabilities and the false vulnerabilities are manually labeled.

9. A computer program product comprising:

one or more computer readable storage media, and program instructions collectively stored on the one or more computer readable storage media, the program instructions comprising:

instructions to receive, at one or more processors, a labeled data set comprising labeled true vulnerabilities and labeled false vulnerabilities of the static analyzer output;

instructions to receive pretrained contextual embeddings from a contextual embeddings model, wherein the pretrained contextual embeddings comprise vector representations for tokens used in written material related to the static analyzer;

instructions to map first tokens of the true vulnerabilities and second tokens of the false vulnerabilities as vector representations based on the pretrained contextual embeddings model; and

instructions to generate a fine-tuned model comprising classifications for true vulnerabilities from tokens in new static analyzer outputs.

10. The computer program product of claim 9 , comprising:

instructions to receive a new data set comprising vulnerabilities labeled by a static analyzer; and

instructions to identify, using the fine-tuned model, a falsely labeled vulnerability in the new data set.

11. The computer program product of claim 9 , comprising:

instructions to receive a new data set comprising vulnerabilities labeled by a static analyzer; and

instructions to rank, using the fine-tuned model, the vulnerabilities in the new data set, wherein the ranking corresponds to a likelihood that each vulnerability is a true vulnerability or a false vulnerability.

12. The computer program product of claim 9 , comprising:

instructions to receive a new data set comprising vulnerabilities labeled by a static analyzer; and

instructions to classify, using the fine-tuned model, the vulnerabilities in the new data set, wherein the classification corresponds to a type of vulnerability.

13. The computer program product of claim 9 , wherein the contextual embeddings comprise classifications generated from algorithms trained using source code.

14. The computer program product of claim 13 , wherein the contextual embeddings comprise classifications generated from algorithms trained using comments related to the source code.

15. The computer program product of claim 9 , wherein the fine-tuned model comprises a selection from the group consisting of a model for binary classification of vulnerabilities, a model for multi-class classification of the vulnerabilities, and a model for ranking the likelihood that the vulnerabilities are false vulnerabilities.

16. The computer program product of claim 9 , wherein the true vulnerabilities and the false vulnerabilities are manually labeled.

17. A computer system comprising:

one or more computer processors, one or more computer readable storage media, and program instructions collectively stored on the one or more computer readable storage media for execution by at least one of the one or more computer processors, the program instructions comprising:

instructions to receive, at one or more processors, a labeled data set comprising labeled true vulnerabilities and labeled false vulnerabilities of the static analyzer output;

instructions to receive pretrained contextual embeddings from a contextual embeddings model, wherein the pretrained contextual embeddings comprise vector representations for tokens used in written material related to the static analyzer;

instructions to map first tokens of the true vulnerabilities and second tokens of the false vulnerabilities as vector representations based on the pretrained contextual embeddings model; and

instructions to generate a fine-tuned model comprising classifications for true vulnerabilities from tokens in new static analyzer outputs.

18. The computer system of claim 17 , comprising:

instructions to receive a new data set comprising vulnerabilities labeled by a static analyzer; and

instructions to identify, using the fine-tuned model, a falsely labeled vulnerability in the new data set.

19. The computer system of claim 17 , comprising:

instructions to receive a new data set comprising vulnerabilities labeled by a static analyzer; and

instructions to rank, using the fine-tuned model, the vulnerabilities in the new data set, wherein the ranking corresponds to a likelihood that each vulnerability is a true vulnerability or a false vulnerability.

20. The computer system of claim 17 , comprising:

instructions to receive a new data set comprising vulnerabilities labeled by a static analyzer; and

instructions to classify, using the fine-tuned model, the vulnerabilities in the new data set, wherein the classification corresponds to a type of vulnerability.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2020
From: PUJAR, SAURABH; BURATTI, LUCA; MORARI, ALESSANDRO; LAREDO, JIM ALAIN; BORNEA, MIHAELA ANCUTA; MCCARLEY, JEFFREY SCOTT; ZHENG, YUNHUI
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 054780/0396 →
Continuity (1)
Related Publication 20220210178A1 · Jun 30, 2022