IP Library Granted Patent US 11,886,582
Granted Patent B1
US 11,886,582 · App. 17/125,085 · Granted Jan 30, 2024

Malicious javascript detection based on abstract syntax trees (AST) and deep machine learning (DML)

Inventor: Ahmed Abdallah (Falls Church, VA)
Assignee: GOOGLE LLC
G06F21/563G06F21/55G06F21/566G06N3/04G06N3/08G06F2221/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,886,582
App. No.
17/125,085
Granted
Jan 30, 2024
Kind
B1
Abstract

A method for assessing a cybersecurity risk of a software object includes generating an abstract syntax tree (AST) for a software object, and determining that the AST is insufficient to identify, to a specified confidence level, a cybersecurity risk of the software object. In response to determining that the AST is insufficient to identify the cybersecurity risk of the software object, a graph convolutional neural network (gCNN) is executed, based on the AST, to produce a set of features for the AST and to produce a probability of maliciousness of the software object based on the set of features. A signal representing an alert is sent, based on the probability of maliciousness, if the probability of maliciousness exceeds a pre-defined threshold.

Claims (50)

1. A method for assessing a cybersecurity risk of a software object, the method comprising:

generating, for the software object, an abstract syntax tree (AST);

determining that the AST is insufficient to identify, to a specified confidence level, a cybersecurity risk of the software object;

identifying a graph convolutional neural network (gCNN) from a set of gCNNs based on the AST;

executing, in response to determining that the AST is insufficient to identify the cybersecurity risk of the software object, the gCNN based on the AST, to (1) produce a set of features for the AST, and (2) produce a probability of maliciousness of the software object, based on the set of features;

sending a signal representing an alert based on the probability of maliciousness if the probability of maliciousness exceeds a pre-defined threshold.

2. The method of claim 1 , wherein the software object is an interpreted language script.

3. The method of claim 1 , further comprising extracting the software object from one of a webpage, an email, or one or more network packets, prior to generating the AST.

4. The method of claim 1 , wherein the signal representing the alert includes a trigger to initiate a mitigative action at a compute device associated with the software object.

5. The method of claim 1 , further comprising extracting the software object from network traffic prior to generating the AST, the executing the gCNN to produce the probability of maliciousness of the software object being further based on at least one of: a source of the network traffic, a destination of the network traffic, or an action taken by the network traffic.

6. The method of claim 1 , further comprising one of receiving the gCNN or training the gCNN, prior to executing the gCNN based on the AST.

7. The method of claim 6 , further comprising:

detecting a run-time behavior of the software object,

wherein the training the gCNN is based on the detected run-time behavior of the software object.

8. A method for assessing a cybersecurity risk of a software object, the method comprising:

generating, at a first compute device and for a software object, an abstract syntax tree (AST);

determining that the AST is insufficient to identify, to a specified confidence level, a cybersecurity risk of the software object;

determining that the cybersecurity risk of the software object cannot be determined based on previous cybersecurity risk classifications of other software objects;

sending a signal to a second compute device, in response to determining that the AST is insufficient to identify the cybersecurity risk of the software object and determining that the cybersecurity risk of the software object cannot be determined based on the previous cybersecurity risk classifications, for gCNN-based generation of a set of features for the AST; and

receiving, from the second compute device, a signal representing a probability of maliciousness of the software object that was calculated by the gCNN and based on the set of features for the AST.

9. The method of claim 8 , further comprising receiving, from the second compute device, a signal representing an alert based on the generated probability of maliciousness if the generated probability of maliciousness exceeds a specified value.

10. The method of claim 8 , further comprising:

receiving, from the second compute device, a signal representing an alert based on the generated probability of maliciousness if the generated probability of maliciousness exceeds a specified value; and

performing a remediation action in response to receiving the signal representing the alert.

11. The method of claim 8 , further comprising receiving the software object at the first compute device prior to generating the AST.

12. The method of claim 8 , further comprising extracting the software object from one of a webpage, an email, or one or more network packets, prior to generating the AST.

13. The method of claim 8 , wherein the software object is an interpreted language script.

14. The method of claim 8 , further comprising one of receiving the gCNN or training the gCNN, prior to the gCNN-based generation of the set of features for the AST.

15. A system for assessing a cybersecurity risk of a software object, the system comprising:

a first compute device including a processor and a memory operably coupled to the processor of the first compute device, the memory of the first compute device storing processor-executable instructions to:

generate an abstract syntax tree (AST) for a software object,

determine that the AST is insufficient to identify, to a specified confidence level, a cybersecurity risk of the software object,

determine that the cybersecurity risk of the software object cannot be determined based on previous cybersecurity risk classifications of other objects,

send a first signal including a representation of the AST, in response to determining that the AST is insufficient to identify the cybersecurity risk of the software object and determining that the cybersecurity risk of the software object cannot be determined based on the previous cybersecurity risk classifications, and

receive a signal representing a probability of maliciousness of the software object; and

a second compute device including a processor and a memory operably coupled to the processor of the second compute device, the memory of the second compute device storing processor-executable instructions to:

receive the first signal;

generate, in response to receiving the first signal and based on the AST and a graph convolutional neural network (gCNN), a set of features for the AST;

generate, based on the set of features and the gCNN, a probability of maliciousness of the software object; and

send the signal representing the probability of maliciousness of the software object to the first compute device.

16. The system of claim 15 , wherein the memory of the second compute device further stores processor-executable instructions to send a signal representing an alert to the first compute device in response to the generated probability of maliciousness of the software object exceeding a specified value.

17. The system of claim 15 , wherein the software object is an interpreted language script.

18. The system of claim 15 , wherein the memory of the first compute device further stores processor-executable instructions to extract the software object from one of a webpage, an email, or one or more network packets, prior to generating the AST.

19. The system of claim 15 , wherein the memory of the first compute device further stores processor-executable instructions to:

receive, from the second compute device, a signal representing an alert associated with the software object; and

performing a remediation action in response to receiving the signal representing the alert.

20. The system of claim 15 , wherein the gCNN is stored within the memory of the second compute device.

21. The system of claim 15 , wherein the second compute device is a first remote compute device, the memory of the first remote compute device further storing processor-executable instructions to retrieve the gCNN from a second remote compute device.

22. The system of claim 15 , wherein the memory of the second compute device further stores processor-executable instructions to select the gCNN from a plurality of gCNN based on the AST prior to generating the set of features for the AST.

23. The system of claim 15 , wherein the memory of the second compute device further stores processor-executable instructions to train the gCNN prior to generating the set of features for the AST.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 3, 2023
From: MANDIANT, INC.
To: GOOGLE LLC
Reel/Frame 063238/0555 →
CHANGE OF NAME Recorded Nov 10, 2021
From: FIREEYE, INC.
To: MANDIANT, INC.
Reel/Frame 058101/0088 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2021
From: ABDALLAH, AHMED
To: FIREEYE, INC.
Reel/Frame 056048/0492 →
Cited By (3)
US 12,443,579 US 12,455,881 US 12,566,854