Monitoring executed script for zero-day attack of malware
First Claim
1. A computer program product tangibly embodied on non-transient computer readable media, the computer program product comprising instructions operable when executed to:
- execute script code by a script application programming interface (API);
detect, by a decoder, an event in the script code, the event comprising an indirect branch call;
redirect an instruction pointer to a predetermined memory location pointer based on the detection of the indirect branch call, the predetermined memory location comprising malware monitoring code;
execute the malware monitoring code in a sandbox upon execution of the redirection of the instruction pointer to the predetermined memory location;
identify, in a heap memory by the malware monitoring code, the script code loaded into the heap memory; and
evaluate, by the malware monitoring code, the script code in the heap memory for malicious code prior to execution of the script code;
wherein the instructions are further operable to;
identify a start of an execution of the script code in the sandbox;
identify an end of the execution of the script code in the sandbox; and
determine that the script code contains malicious code based on a time difference from the start of the execution to the end of the execution of the script code.
10 Assignments
0 Petitions
Accused Products
Abstract
Embodiments are directed to hooking a call for a malware monitoring logic into a JavaScript API engine interpreter. Upon JavaScript being placed into heap memory, the malware monitoring logic can initiate an evaluation or analysis of the heap spray to determine whether the JavaScript includes malware or other malicious agents prior to execution of the JavaScript shell code. Upon execution of the JavaScript within the sandbox, the malware monitoring logic can initiate monitoring of the JavaScript using malware analysis and/or execution profiling techniques. Inferences can be made of the presence of malware based on a start and end time of the JavaScript execution.
21 Citations
17 Claims
-
1. A computer program product tangibly embodied on non-transient computer readable media, the computer program product comprising instructions operable when executed to:
-
execute script code by a script application programming interface (API); detect, by a decoder, an event in the script code, the event comprising an indirect branch call; redirect an instruction pointer to a predetermined memory location pointer based on the detection of the indirect branch call, the predetermined memory location comprising malware monitoring code; execute the malware monitoring code in a sandbox upon execution of the redirection of the instruction pointer to the predetermined memory location; identify, in a heap memory by the malware monitoring code, the script code loaded into the heap memory; and evaluate, by the malware monitoring code, the script code in the heap memory for malicious code prior to execution of the script code; wherein the instructions are further operable to; identify a start of an execution of the script code in the sandbox; identify an end of the execution of the script code in the sandbox; and determine that the script code contains malicious code based on a time difference from the start of the execution to the end of the execution of the script code. - View Dependent Claims (2, 3, 4)
-
-
5. A computer implemented method comprising:
-
identifying one or more commands that when called trigger an instruction pointer redirection to a predetermined memory address; identifying the memory address to be redirected to if the one or more commands are called, the memory address comprising malware monitoring code; executing script code by a script application programming interface (API); detecting, by a decoder, an event in the script code, the event comprising an indirect branch call; redirecting an instruction pointer to a predetermined memory location pointer based on the detection of the indirect branch call, the predetermined memory location comprising malware monitoring code; executing, by a hardware processor, the malware monitoring code in a sandbox upon execution of the redirection of the instruction pointer to the predetermined memory location; identifying, by the malware monitoring code, the script code in a heap memory, the script code loaded into the heap memory by the script API; and evaluating, by the malware monitoring code, the script code in the heap memory for malicious code prior to execution of the script code; the method further comprising; identifying, by the malware monitoring code, a start of an execution of the script code in the sandbox; identifying, by the malware monitoring code, an end of the execution of the script code in the sandbox; and determining, by the malware monitoring code, that the script code contains malicious code based on a time difference from the start of the execution to the end of the execution of the script code. - View Dependent Claims (6, 7, 8, 9, 10, 11)
-
-
12. A computing system for zero-day malware detection comprising:
-
a script application programming interface (API) module implemented at least partially in hardware to load a script code into heap memory for execution; a decoder implemented at least partially in hardware to identify one or more commands comprising an indirect branch call and redirect an execution pointer to point to a predetermined memory location pointer based on the detection of the indirect branch call, the predetermined memory location pre-loaded with malware monitoring logic; a heap memory to dynamically store the script code; the malware monitoring logic preloaded into the predetermined memory location to identify the script code in the heap memory and evaluate the script code for malware prior to execution of the script code; a processor implemented at least partially in hardware, the processor configured to; execute the malware monitoring logic in a sandbox upon execution of the redirection of the instruction pointer to the predetermined memory location; identify, in the heap memory by the malware monitoring logic, script code loaded into the heap memory; and evaluate, by the malware monitoring logic, the script code in the heap memory for malicious code prior to execution of the script code identify, by the malware monitoring logic, an execution start time of the script code in the sandbox; identify, by the malware monitoring logic, an execution end time of the script code in the sandbox; determine a time period between the execution start time and the execution end time of the script code; and determine, based on the time period, that the script code contains malware. - View Dependent Claims (13, 14, 15, 16, 17)
-
Specification