IP Library Granted Patent US 12,169,564
Granted Patent B2
US 12,169,564 · App. 17/991,749 · Granted Dec 17, 2024

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 12,169,564
App. No.
17/991,749
Granted
Dec 17, 2024
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 (46)

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

scanning a set of computer data before the set of computer data is received by an intended destination, the set of computer data including instructions executable by a processor;

providing the set of computer data to a runtime exploit detection framework that includes a parent process;

generating a child process for executing the set of computer data, wherein the child process is generated based on execution of the parent process;

executing instrumentation code by the parent process concurrent with execution of the set of computer data by the child process, wherein the instrumentation code collects contextual data relating to behaviors observed by a plurality of probes during the child process, wherein the probes monitor a first set of the behaviors during a first time period and a second set of the behaviors during a second time period;

generating a mapping that identifies one or more patterns of activity associated with good program code during the first time period;

comparing the second set of behaviors with the mapping to obtain a comparison result indicating whether the second set of behaviors is consistent with the good program code;

identifying that the second set of behaviors meets a threshold level associated with the mapping; and

providing the set of computer data to the intended destination based on whether the threshold level being met.

2. The method of claim 1 , wherein the instrumentation code executes in a second child process generated by the parent process.

3. The method of claim 1 , wherein the set of computer data and the instrumentation code are executed as an interleaved execution.

4. The method of claim 1 , further comprising identify whether operation of the set of program code is delayed based on a number of instructions executed per unit time of an allocated time slot.

5. The method of claim 1 , wherein the set of behaviors comprise environmental behaviors that include peripheral device interactions resulting from execution of the set of computer data.

6. The method of claim 1 , wherein the set of behaviors comprise environmental behaviors that include communication interface interactions resulting from execution of the set of computer data.

7. The method of claim 1 , wherein the set of behaviors comprises program code behaviors.

8. The method of claim 7 , wherein the program code behaviors comprise memory accesses resulting from execution of the set of computer data.

9. The method of claim 7 , wherein the program code behaviors comprise file modifications resulting from execution of the set of computer data.

10. The method of claim 7 , wherein the program code behaviors comprise actions performed by the processor as a result of executing the set of computer data.

11. The method of claim 1 , wherein the comparison comprises determining whether executing the set of computer data includes instruction execution delays associated with known good program code set of behaviors.

12. 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:

scanning a set of computer data before the set of computer data is received by an intended destination, the set of computer data including instructions executable by the processor;

providing the set of computer data to a runtime exploit detection framework that includes a parent process;

generating a child process for executing the set of computer data, wherein the child process is generated based on execution of the parent process;

executing instrumentation code by the parent process concurrent with execution of the set of computer data by the child process, wherein the instrumentation code collects contextual data relating to behaviors observed by a plurality of probes during the child process, wherein the probes monitor a first set of the behaviors during a first time period and a second set of the behaviors during a second time period;

generating a mapping that identifies one or more patterns of activity associated with good program code during the first time period;

comparing the second set of behaviors with the mapping to obtain a comparison result indicating whether the second set of behaviors is consistent with the good program code;

identifying that the second set of behaviors meets a threshold level associated with the mapping; and

providing the set of computer data to the intended destination based on whether the threshold level being met.

13. The non-transitory computer-readable storage medium of claim 12 , wherein the instrumentation code executes in a second child process generated by the parent process.

14. The non-transitory computer-readable storage medium of claim 12 , wherein the set of computer data and the instrumentation code are executed as an interleaved execution.

15. The non-transitory computer-readable storage medium of claim 12 , further comprising identify whether operation of the set of program code is delayed based on a number of instructions executed per unit time of an allocated time slot.

16. The non-transitory computer-readable storage medium of claim 12 , wherein the set of behaviors comprise environmental behaviors that include peripheral device interactions resulting from execution of the set of computer data.

17. The non-transitory computer-readable storage medium of claim 12 , wherein the set of behaviors comprise environmental behaviors that include communication interface interactions resulting from execution of the set of computer data.

18. The non-transitory computer-readable storage medium of claim 12 , wherein the set of behaviors comprises program code behaviors that include memory accesses resulting from execution of the set of computer data, file modifications resulting from execution of the set of computer data, or actions performed by the processor as a result of executing the set of computer data.

19. The non-transitory computer-readable storage medium of claim 12 , wherein the comparison comprises determining whether executing the set of computer data includes instruction execution delays associated with the good program code set of behaviors.

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

a memory; and

a processor that executes instructions stored in the memory to:

scan a set of computer data before the set of computer data is received by an intended destination, the set of computer data including instructions executable by the processor;

provide the set of computer data to a runtime exploit detection framework that includes a parent process;

generate a child process for executing the set of computer data, wherein the child process is generated based on execution of the parent process;

execute instrumentation code by the parent process concurrent with execution of the set of computer data by the child process, wherein the instrumentation code collects contextual data relating to behaviors observed by a plurality of probes during the child process, wherein the probes monitor a first set of the behaviors during a first time period and a second set of the behaviors during a second time period;

generate a mapping that identifies one or more patterns of activity associated with good program code during the first time period;

compare the second set of behaviors with the mapping to obtain a comparison result indicating whether the second set of behaviors is consistent with the good program code;

identify that the second set of behaviors meets a threshold level associated with the mapping; and

provide the set of computer data to the intended destination based on whether the threshold level being met.

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 Feb 6, 2023
From: DAS, SOUMYADIPTA; KUCHAN, SUSHILKUMAR; DUBROVSKY, ALEKSANDR
To: SONICWALL INC.
Reel/Frame 062597/0023 →
Continuity (3)
Continuation 16783065 · Feb 5, 2020
Provisional Application 62943134 · Dec 3, 2019
Related Publication 20230153439A1 · May 18, 2023