IP Library Granted Patent US 8,959,639
Granted Patent B2
US 8,959,639 · App. 12/134,481 · Granted Feb 17, 2015

Method of detecting and blocking malicious activity

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 8,959,639
App. No.
12/134,481
Granted
Feb 17, 2015
Kind
B2
Abstract

A method of detecting and blocking malicious activity of processes in computer memory during unpacking of a file after the code and data contained in the file are unpacked is described. The method includes inserting a hook function into one or more un-assessed processes running in the computer memory. A hook is then placed on one or more system calls carried out by the one or more un-assessed processes; the one or more system calls determining an optimal time period in which to detect malicious activity in the un-assessed processes. During the optimal time period the one or more system calls carried out by the one or more un-assessed processes are suspended and attributes of the one or more un-assessed processes are detected and the likely maliciousness of the one or more un-assessed processes is determined from the attributes.

Claims (35)

1. A method of detecting and blocking malicious activity of processes in computer memory during unpacking of a file after the code and data contained in the file are unpacked, including the steps of:

(a) inserting a hook function into a process running in the computer memory, the hook function placing a hook on a system call carried out by the process;

(b) receiving a first inter-process communication (IPC) constructed by the hook function, the first IPC comprising a process ID, the process ID identifying the process and the system call carried out by the process, wherein the hook function is configured to suspend the system call carried out by the process upon constructing the first IPC;

(c) using the process ID to query a cache of scanned processes to determine whether the process has been scanned within a predetermined time period;

(d) upon determining the process has not been scanned within the predetermined time period, initializing a scan of the process that carried out the system calls to determine the likelihood of the process being malicious;

(e) upon determining the process has been scanned within the predetermined time period, sending a second IPC to the hook function, the second IPC comprising an instruction to the hook function to allow the system call carried out by the process to resume.

2. The method of claim 1 , wherein the system call is a user level API.

3. The method of claim 2 , wherein the user level API is anyone of CreateMutex( ), RegOpenKey( ), RegOpenKeyEx( ), WSAStartup( ), CreateService( ), FindResource( ), CreateEvent( ), GetDriveType( ), AddAtom( ), CopyFile( ), CreatePipe( ), WinExec( ).

4. The method of claim 1 , wherein the system call is a kernel-mode system service.

5. The method of claim 1 , wherein at step (f) the attributes of the process are compared with a database containing attributes associated with known malicious processes.

6. The method of claim 1 , wherein at step (f) the attributes are code and data signatures.

7. The method of claim 1 , wherein if at step (g) the process is determined likely to be malicious, the method further includes the step of blocking one or more malicious processes.

8. The method of claim 7 , wherein blocking includes suspending the one or more malicious processes.

9. The method of claim 7 , wherein blocking includes terminating the one or more malicious processes.

10. The method of claim 7 , wherein blocking includes suspending one or more threads associated with the one or more malicious processes.

11. The method of claim 7 , wherein blocking includes suspending one or more threads associated with one or more processes determined unlikely to be malicious.

12. The method of claim 7 , wherein blocking includes deleting a file associated with the one or more malicious processes.

13. The method of claim 1 , wherein if at step (g) the un-assessed process is determined likely to be malicious, the method further includes the step of notifying a user.

14. The method of claim 1 , wherein at step (b) the system call carried out by the process is suspended for a pre-determined time period, after which, the system call is resumed.

15. The method of claim 1 , wherein at step (a) the hook function is inserted upon creation of a new process.

16. A computing device configured to detect and block malicious activity of processes in memory of the computing device during unpacking of a file after the code and data contained in the file are unpacked, the computing device comprising:

a processor;

memory in electronic communication with the processor;

instructions stored in the memory, the instructions being executable by the processor to:

insert a hook function into a process running in the memory of the computing device, the hook function placing a hook on a system calls carried out by the process;

receive a first inter-process communication (IPC) constructed by the hook function, the first IPC comprising a process ID, the process ID identifying the process and the system calls carried out by the process, wherein the hook function is configured to suspend the system call carried out by the process upon constructing the first IPC;

use the process ID to query a cache of scanned processes to determine whether the process has been scanned within a predetermined time period;

upon determining the process has not been scanned within the predetermined time period, initialize a scan of the process that carried out the system calls to determine the likelihood of the process being malicious;

upon determining the process has been scanned within the predetermined time period, send a second IPC to the hook function, the second IPC comprising an instruction to the hook function to allow the system call carried out by the process to resume.

17. A computer-program product for detecting and blocking malicious activity of processes in memory of the computing device during unpacking of a file after the code and data contained in the file are unpacked, the computer-program product comprising a non-transitory computer-readable medium having instructions thereon, the instructions comprising:

code programmed to insert a hook function into a process running the memory of the computing device, the hook function placing a hook on a system call carried out by the process;

code programmed to receive a first inter-process communication (IPC) constructed by the hook function, the first IPC comprising a process ID, the process ID identifying the process and the system call carried out by the process, wherein the hook function is configured to suspend the system call carried out by the process upon constructing the first IPC;

code programmed to use the process ID to query a cache of scanned processes to determine whether the process has been scanned within a predetermined time period;

upon determining the process has not been scanned within the predetermined time period, code programmed to initialize a scan of the process that carried out the system calls to determine the likelihood of the process being malicious;

upon determining the process has been scanned within the predetermined time period, send a second IPC to the hook function, the second IPC comprising an instruction to the hook function to allow the system call carried out by the process to resume.

Assignments (6)
NOTICE OF SUCCESSION OF AGENCY (REEL 050926 / FRAME 0560) Recorded Sep 13, 2022
From: JPMORGAN CHASE BANK, N.A.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 061422/0371 →
SECURITY AGREEMENT Recorded Sep 13, 2022
From: NORTONLIFELOCK INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062220/0001 →
CHANGE OF NAME Recorded Jan 30, 2020
From: SYMANTEC CORPORATION
To: NORTONLIFELOCK INC.
Reel/Frame 051759/0845 →
SECURITY AGREEMENT Recorded Nov 4, 2019
From: SYMANTEC CORPORATION; BLUE COAT LLC; LIFELOCK, INC,; SYMANTEC OPERATING CORPORATION
To: JPMORGAN, N.A.
Reel/Frame 050926/0560 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 16, 2009
From: PC TOOLS TECHNOLOGY PTY LTD.
To: SYMANTEC CORPORATION
Reel/Frame 022960/0276 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 18, 2008
From: SHEVCHENKO, SERGEI
To: PC TOOLS TECHNOLOGY PTY LTD.
Reel/Frame 021111/0035 →