Patent ID: 8332944

Claim:
A method for detecting malicious executables, which comprises: (a) creating, in an offline training phase, a database M of system call sequences that are characteristic only to malicious files, when the malicious files are executed, and storing said system call sequences in the database M; and (b) continuously monitoring in runtime, for each running executable, issued run-time system calls of each running executable and comparing with the system call sequences within the database M to determine whether there exists a match between a portion of a system call sequence of the issued run-time system calls and one or more of the system call sequences in the database M, and when the match is found, declaring said running executable as malicious; wherein said training phase comprises: (c) providing an M r dataset which comprises recordings of system call sequences of malicious executables, and a B r dataset which comprises recordings of system call sequences of benign executables; (d) finding, using a Sequential Pattern Discovery using Equivalence classes (SPADE) algorithm, a set S of system call sequences for a specific support value, wherein the specific support value corresponds to a percentage value of recordings of system call sequences of malicious executable within the M r dataset, in which recordings of system call sequences of malicious executables a given sequence of system calls is present, wherein each system call sequence of said set S is repeated within some group of recordings of system call sequences of malicious executables in the M r dataset equal to or larger than the specific support value from among all the system call sequences of the recordings of system call sequences of malicious executables in dataset M r ; (e) determining, for each of the system call sequences of set S, whether the system call sequence of set S is found within any of the recordings within the dataset B r , and forming a reduced dataset S m which contains only system call sequences of set S that are not included within any of the recordings of system call sequences of benign executables in dataset B r ; (f) adding dataset S m into database M, and eliminating from dataset M r all recordings which have been found to contain any one or more of the system call sequences of dataset S m ; (g) when dataset S m is found in step (e) to be empty, reducing the specific support value, and repeating step (d); and (h) continuing step (d) until either the specific support value is equal to zero, or the dataset M r is empty, therefore finalizing the procedure with a database M containing a group of system call sequences that each appears within one or more of the system call sequences of malicious executables, but does not appear within any of the system call sequences of benign executables.