IP Library Granted Patent US 11,507,664
Granted Patent B2
US 11,507,664 · App. 16/783,065 · Granted Nov 22, 2022

Early filtering of clean file using dynamic analysis

Inventors: Soumyadipta Das (Bangalore, IN); SushilKumar Kuchan (Bangalore, IN); Aleksandr Dubrovsky (San Mateo, CA)
Assignee: SONICWALL INC.
G06F21/57G06F21/563G06F2221/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,507,664
App. No.
16/783,065
Granted
Nov 22, 2022
Kind
B2
Abstract

The present disclosure is directed to analyzing received sets of computer data. Methods and apparatus consistent with the present disclosure may forecast that a received set of computer data does not include malware after allowing instructions included in that set of computer data to execute for an amount of time that does not exceed an allocated amount of time. Methods consistent with the present disclosure may instrument a set of received program code and allow instructions in that received set of program code to execute as instrumentation code collects information about the set of program code. This collected information may be compared with sets of known good data when determining whether a received set of program code is likely not to include malware. This collected information may be associated with “behaviors” performed by the received set of program code that may be identified using sets of contextual data.

Claims (79)

1. A method for analyzing received computer data, the method comprising:

receiving a first set of computer data that includes instructions executable by a processor before the first set of computer data is received by an intended destination;

creating a child process by the processor based on execution of instructions of a parent process such that a set of actions performed by the execution of the child process are observed by the processor;

executing the instructions included in the first set of computer data based on the creation of the child process and the observations by the processor, wherein the execution of the instructions of the first set of computer data results in the set of actions being performed by the processor;

executing the instructions of the parent process to compare the set of actions of the first set of computer data with known good actions of known good program code;

comparing state identifiers associated with normal program code operation relative to those of the first set of computer data;

identifying as a result of the comparison that the set of actions correspond to the known good actions of the known good program code; and

allowing the first received set of computer data to be sent to the intended destination based on the identification that the set of actions correspond to the known good actions and based on identifying that the state identifiers correspond to the normal program code operation.

2. The method of claim 1 , further comprising comparing data collected when the processor executes the instructions included in the first set of computer data when identifying that the collected data corresponds to the normal program code operation.

3. The method of claim 1 , wherein the instructions included in the first set of computer data are executed by the processor for an amount of time that corresponds to a time threshold.

4. The method of claim 1 , further comprising:

receiving a second set of computer data that includes instructions executable by the processor;

executing by the processor the instructions included in the second set of computer data, the execution of the instructions included in the second set of computer data resulting in a second set of actions being performed by the processor;

identifying that at least one action of the second set of actions do not correspond to the known good actions; and

preventing the second set of computer data from being sent to a recipient device based on the identification that the at least one action does not correspond to the known good actions.

5. The method of claim 1 , further comprising:

receiving a second set of computer data that includes instructions executable by the processor;

executing by the processor the instructions included in the second set of computer data that results in a set of data being collected;

identifying that the set of collected data does not correspond to the normal program code operation; and

preventing the second set of computer data from being sent to a recipient device based on the identification that the set of collected data does not correspond to the normal program code operation.

6. The method of claim 1 , further comprising:

collecting the set of actions performed by the known good program code when a central processing unit (CPU) executes instructions of the known good program code;

associating the collected set of actions with the known good actions;

collecting known good data associated with operation of the known good program code when the CPU executes the instructions of the known good program code; and

associating the known good collected data with the normal program code operation.

7. The method of claim 6 , further comprising:

storing the collected set of actions in a database; and

storing the known good collected data in the database.

8. The method of claim 7 , further comprising:

retrieving the known good actions inclusive of the collected set of actions from the database; and

retrieving the known good collected data from the database.

9. The method of claim 1 , further comprising:

associating each action of the set of actions and accessed memory locations with a respective state, a respective known good action, and with a respective memory location based on execution of the parent process; and

identifying that data collected when the instructions included in the first set of computer data are executed correspond to normal program code operation based on each of the accessed memory locations corresponding to the respective state, the respective known good action, and the respective memory location.

10. A non-transitory computer-readable storage medium having embodied thereon a program executable by a processor for implementing a method for analyzing received computer data, the method comprising:

receiving a first set of computer data that includes instructions executable by the processor before the first set of computer data is received by an intended destination;

creating a child process by the processor based on execution of instructions of a parent process such that a set of actions performed by the execution of the child process are observed by the processor;

executing the instructions included in the first set of computer data based on the creation of the child process and the observations by the processor, wherein the execution of the instructions of the first set of computer data results in the set of actions being performed by the processor;

executing the instructions of the parent process to compare the set of actions of the first set of computer data with known good actions of known good program code;

comparing state identifiers associated with normal program code operation relative to those of the first set of computer data;

identifying as a result of the comparison correspond to the known good actions of the known good program code; and

allowing the first received set of computer data to be sent to the intended destination based on the identification that the set of actions correspond to the known good actions and based on identifying that the state identifiers correspond to the normal program code operation.

11. The non-transitory computer-readable storage medium of claim 10 , the program further executable to compare data collected when the processor executes the instructions included in the first set of computer data when identifying that that the collected data corresponds to the normal program code operation.

12. The non-transitory computer-readable storage medium of claim 10 , wherein the instructions included in the first set of computer data are executed for an amount of time that corresponds to a time threshold.

13. The non-transitory computer-readable storage medium of claim 10 , the program further executable to:

receive a second set of computer data that includes instructions executable by the processor;

collect a second set of actions performed by the processor when the instructions included in the second set of computer data are executed;

identify that at least one action of the second set of actions do not correspond to the known good actions; and

prevent the second set of computer data from being sent to a recipient device based on the identification that the at least one action does not correspond to the known good actions.

14. The non-transitory computer-readable storage medium of claim 10 , the program further executable to:

receive a second set of computer data that includes instructions executable by the processor;

collect a set of data when the instructions included in the second set of computer data are executed;

identify that the set of collected data does not correspond to the normal program code operation; and

prevent the set of computer data from being sent to a recipient device based on the identification that the second set of collected data does not correspond to the normal program code operation.

15. The non-transitory computer-readable storage medium of claim 10 , the program further executable to:

collect the set of actions performed by the known good program code when instructions of the known good program code are executed;

associate the collected set of actions with the known good actions;

collect known good data associated with operation of the known good program code when the instructions of the known good program code are executed; and

associate the known good collected data with the normal program code operation.

16. The non-transitory computer-readable storage medium of claim 15 , the program further executable to:

store the collected set of actions in a database; and

store the known good collected data in the database.

17. The non-transitory computer-readable storage medium of claim 16 , the program further executable to:

retrieve the known good actions inclusive of the collected set of actions from the database; and

retrieve the known good collected data from the database.

18. The non-transitory computer-readable storage medium of claim 10 , the program further executable to:

associate each action of the set of actions and accessed memory locations with a respective state, a respective known good action, and with a respective memory location based on execution of the instructions of the parent process; and

identify that data collected when the instructions included in the first set of computer data are executed correspond to normal program code operation based on each of the accessed memory locations corresponding to the respective state, the respective known good action, and the respective memory location.

19. An apparatus for analyzing received computer data, the apparatus comprising:

a memory; and

a processor, wherein the processor executes instructions out of the memory to:

receive a first set of computer data that includes instructions executable by a processor before the first set of computer data is received by an intended destination,

create a child process by the processor based on execution of instructions of a parent process such that a set of actions performed by the execution of the child process are observed by the processor,

execute the instructions included in the first set of computer data based on the creation of the child process and the observations by the processor, wherein the execution of the instructions of the first set of computer data results in [[all the set of actions being performed by the processor,

execute the instructions of the parent process to compare the set of actions of the first set of computer data with known good actions of known good program code,

comparing state identifiers associated with normal program code operation relative to those of the first set of computer data,

identify as a result of the comparison that the set of actions correspond to the known good actions of the known good program code, and

allow the first received set of computer data to be sent to the intended destination based on the identification that the set of actions correspond to the known good actions and based on identifying that the state identifiers correspond to the normal program code operation.

20. The apparatus of claim 19 , further comprising a database that stores information associating each action of the set of actions with a respective state, a respective known good action, and with a respective memory location.

Assignments (2)
FIRST LIEN IP SUPPLEMENT Recorded Jun 30, 2025
From: SONICWALL INC.
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 071758/0159 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 5, 2020
From: DAS, SOUMYADIPTA; KUCHAN, SUSHILKUMAR; DUBROVSKY, ALEKSANDR
To: SONICWALL INC.
Reel/Frame 052033/0042 →
Continuity (2)
Provisional Application 62943134 · Dec 3, 2019
Related Publication 20210165882A1 · Jun 3, 2021