The present invention relates generally to the field of computer security, and more particularly to malware detection.
Malware, or malicious software, are programs or executable code that when executed intend to compromise a computer's security or operation. Malware detection is the practice of inspecting files on a computer to identify malware before the malware can compromise the computer. Antivirus software scan files stored on the computer, inspecting each file for malware. Additionally, some antivirus software provides real-time protection by inspecting downloads and other network traffic to stop malware from being stored on the computer prior to execution.
Embodiments of the present invention provide a method, system, and program product to classify a target file as being benign or malicious. Embodiments of the invention retrieve a target file for inspection of malware; convert the target file to a time domain format; determine one or more time-frequency domain features of the converted target file; and generate a malicious classification for the target file based, at least in part on, (i) the one or more time-frequency domain features of the converted target file and (ii) one or more classification models.
The present invention may be a system, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.
The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.
Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.
Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.
Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.
These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.
The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.
The present invention will now be described in detail with reference to the Figures.
In various embodiments of the present invention, computing device 110 is a computing device that can be a standalone device, a server, a laptop computer, a tablet computer, a netbook computer, a personal computer (PC), or a desktop computer. In another embodiment, Computing device 110 represents a computing system utilizing clustered computers and components to act as a single pool of seamless resources. In general, computing device 110 can be any computing device or a combination of devices with access to target files 114, labeled file data 116 and model data 118 and is capable of executing security program 112. Computing device 110 may include internal and external hardware components, as depicted and described in further detail with respect to
In this exemplary embodiment, security program 112, target files 114, labeled file data 116 and model data 118 are stored on computing device 110. However, in other embodiments, target security program 112, target files 114, labeled file data 116 and model data 118 may be stored externally and accessed through a communication network, such as network 120. Network 120 can be, for example, a local area network (LAN), a wide area network (WAN) such as the Internet, or a combination of the two, and may include wired, wireless, fiber optic or any other connection known in the art. In general, network 120 can be any combination of connections and protocols that will support communications between computing device 110 and other devices connected to network 120, in accordance with a desired embodiment of the present invention.
In various embodiments, security program 112 provides malware detection by scanning target files 114 of computing device 110. In some embodiments, security program 112 inspects a file that is stored on computing device 110. In other embodiments, security program 112 receives a file for inspection that is stored or originates from another device (not shown) connected to network 120. One of ordinary skill in the art would recognize that target files 114 may be stored or reside on any device (not shown) connected to network 120 without deviating from the invention.
In various embodiments, target files 114 are any files, executable or otherwise, that can be analyzed and classified as being malware or benign. Benign files are files that have been identified as not containing any malicious code. Malicious files are files that have malicious code within (i) an entirety of the file or (ii) a portion of the file. In some embodiments, security program 112 selects a file in target files 114 for a classification of malware. In other embodiments, security program 112 is provided a target file by either another program (not shown) or a user of security program 112 for a classification of malware.
For a given file of target files 114 that has been selected for malware classification, security program 112 converts the binary or bytecode of the given file into a time-series format. For example, security program 112 (i) reads each byte of an executable file and (ii) uses each read byte as a value in a time series.
With the time series of values for target file 210, security program 112 converts time domain format 220 of target file 210 to frequency domain format 230. Frequency domain format 230 includes frequency components or intervals and an amplitude for each component. In some embodiments, converts the time series of time domain format 220 of target file 210 to frequency domain format 230 by utilizing a Fast Fourier Transform (FFT) algorithm. One of ordinary skill in the art will appreciate that any conversion algorithm from time domain format 220 to frequency domain format 230 may be utilized without deviating from the invention such as, but not limited to, Fourier transforms, discrete Fourier transform (DFT), discrete-time Fourier transform (DTFT), Laplace transforms, Z-transforms, or any variant of a FFT.
Based on both the time domain format 220 and frequency domain format 230 for target file 210, security program 112 determines a variety of time and frequency domain features of the time converted target file 210. Example time domain features of time domain format 220 for target file 210 include, but are not limited to, the following: zero crossing rate, signal energy, and entropy of energy. Zero-crossing rate is the rate of sign-changes of the signal from positive to negative or back. Signal energy is a sum of squared values for the times series. Entropy of energy is an energy measurement of the information entropy or Shannon Entropy of the time series. Example frequency domain features of frequency domain format 230 for the time domain format 220 of target file 210 include, but are not limited to, the following: spectral centroid, spectral spread, spectral entropy, spectral flux, and spectral rolloff. Spectral centroid represents the “center of mass” or median frequency in the frequency domain. Spectral spread is the bandwidth or difference between the highest and lowest frequencies in the frequency domain. Spectral entropy is the entropy for normalized spectral energies. Spectral flux is a measurement of change in the spectral energy over time. Spectral rolloff is a distribution of the spectrum that is located within a given percentage of the frequency domain. One of ordinary skill in the art will appreciate that any feature, metric, measurement or information describing the time domain format 220 and frequency domain format 230 for target file 210, may be utilized as discussed herein for classification of malicious and benign files without deviating from the invention.
In various embodiments, security program 112 applies the determined time and frequency domain features of the time converted target file 210 to model data 118 in order to classify the target file 210 as either a benign file or a malicious file. Security program 112 generates model data 118 based on labeled file data 116. Labeled file data 116 includes various files that have been assigned a label indicating that a file in labeled file data 116 is either a malicious file or a benign file. Additionally, security program 112 converts the files in labeled file data to (i) a time domain format and subsequently to (ii) a frequency domain format. For each domain converted file in labeled file data 116, security program 112 determines time and frequency domain features of the labeled file data.
Based on the label and time-frequency domain features of converted files in labeled file data 116, security program 112 generates model data 118 by utilizing a supervised machine learning algorithm that creates a model utilized to later classify target files 114 (process 310). Supervised machine learning algorithms utilize pre-classified or labeled data to generate prediction models to classify similar types of data. In some embodiments, security program 112 generates one or more decision trees for model data 118. A decision tree is a flowchart-like model comprising decision nodes and end nodes.
Referring back to process 310 of
In some embodiments, security program 112 routinely performs the operational processes 300 of
In process 504, security program 112 converts the target file to a time domain format. Referring back to
In some embodiments, security program 112 converts the target file 210 to a specific file contained format to increase processing efficiency of the target file. In such embodiments, security program 112 converts the target file to a lossless audio file format. Such an implementation has many benefits. For example, many Fast Fourier algorithms are designed to specifically convert audio files into a frequency domain, which benefits in the next process 506. An example, lossless audio format file is a waveform audio file of .WAV file. WAV files consists of a header portion and a data portion. The data portion can be configured to be uncompressed byte-wide samples, which correspond to the byte values of an executable file. Such executable files are common target by anti-virus and other computer security programs. Therefore, the WAV. file container can be quickly created and utilized for FFT or other frequency domain audio file algorithms with minimal processing time. Since most known computer security programs need to perform scans and classifications on numerous files, embodiments of the present invention provide improvements to the timely detection of malicious software and decrease processing time and turnaround for classifying and responding to potential malicious files by a computing device when compared to prior solutions. One of ordinary skill in the art will appreciate that (i)) detection of malicious software is required in order to initiate a solution to address that particular malicious software and (ii) that the longer a malicious software is permitted to run, the greater the risk that malicious software presents. One of ordinary skill in the art will appreciate that any type of file container or lossless audio container may be used without deviating from the invention such as, but not limited to Free Lossless Audio Codec (FLAC), Audio Interchange File Format (AIFF), Resource Interchange File Format (RIFF) or the like. Additionally, one of ordinary skill in the art will appreciate that any sample width (e.g., 8 bit, 16 bit, 24 bit, etc.) and sample rate (e.g., 22 kHz, 44 kHz, etc.) may be used in converting the target file to an audio file without deviating from the invention.
In process 506, security program 112 converts the time domain format 220 of the target file 210 to a frequency domain format 230. In some embodiments, converts the time series of time domain format 220 of target file 210 to frequency domain format 230 by utilizing a Fast Fourier Transform (FFT) algorithm. In process 508, security program 112 determines one or more features of the target file 210 regarding the time domain format 220 and frequency domain format 230 of the file. In some embodiments, security program 112 includes other features not associated with the time or frequency domain features of a converted target file. For example, security program 112 may include metadata associated with the target file 210 such as header information, location or path, usage patterns, or any other information describing the target file 210. In such embodiments, security program 112 includes the additional features in the training of model data 118 to incorporate the features in the machine learning algorithm discussed regarding
In process 510, security program 112 applies the features determined in process 508 to model data 118. In decision process 512, security program 112 determines if the features of the target file in the time and frequency domain, and in some embodiments metadata regarding the target file, indicate if the file is malicious. If the features determined in process 508 when applied model data 118 indicate the file is benign (NO branch of process 512), then security program 112 generates a “benign” classification for the target file (process 516). If the features determined in process 508 when applied model data 118 indicate the file is malicious (YES branch of process 512), then security program 112 generates a “malicious” classification for the target file (process 514). In some embodiments, security program 112 keeps a record of the determined classifications for target files 114. In some scenarios, security program 112 re-scans “benign” files after some pre-determined time has passed. For files with the “malicious” classification, security program 112 sends a warning message regarding the file and the potential maliciousness of the file. In some scenarios, security program 112 quarantines, deletes, or otherwise isolates the target file from access to resources of computing device 110 or other devices (not shown) connected to network 120.
In embodiments where model data 118 includes a decision tree, such as the decision tree illustrated and discussed in relation to
Computing device 110 includes communications fabric 602, which provides communications between computer processor(s) 604, memory 606, persistent storage 608, communications unit 610, and input/output (I/O) interface(s) 612. Communications fabric 602 can be implemented with any architecture designed for passing data and/or control information between processors (such as microprocessors, communications and network processors, etc.), system memory, peripheral devices, and any other hardware components within a system. For example, communications fabric 602 can be implemented with one or more buses.
Memory 606 and persistent storage 608 are computer-readable storage media. In this embodiment, memory 606 includes random access memory (RAM) 614 and cache memory 616. In general, memory 606 can include any suitable volatile or non-volatile computer-readable storage media.
Security program 112, Target files 114, labeled file data 116 and model data 118 are stored in persistent storage 608 for execution and/or access by one or more of the respective computer processors 604 via one or more memories of memory 606. In this embodiment, persistent storage 608 includes a magnetic hard disk drive. Alternatively, or in addition to a magnetic hard disk drive, persistent storage 608 can include a solid state hard drive, a semiconductor storage device, read-only memory (ROM), erasable programmable read-only memory (EPROM), flash memory, or any other computer-readable storage media that is capable of storing program instructions or digital information.
The media used by persistent storage 608 may also be removable. For example, a removable hard drive may be used for persistent storage 608. Other examples include optical and magnetic disks, thumb drives, and smart cards that are inserted into a drive for transfer onto another computer-readable storage medium that is also part of persistent storage 608.
Communications unit 610, in these examples, provides for communications with other data processing systems or devices, including resources of network 120. In these examples, communications unit 610 includes one or more network interface cards. Communications unit 610 may provide communications through the use of either or both physical and wireless communications links. Security program 112, target files 114, labeled file data 116 and model data 118 may be downloaded to persistent storage 608 through communications unit 610.
I/O interface(s) 612 allows for input and output of data with other devices that may be connected to computing device 110. For example, I/O interface 612 may provide a connection to external devices 618 such as a keyboard, keypad, a touch screen, and/or some other suitable input device. External devices 618 can also include portable computer-readable storage media such as, for example, thumb drives, portable optical or magnetic disks, and memory cards. Software and data used to practice embodiments of the present invention, e.g., security program 112, target files 114, labeled file data 116 and model data 118, can be stored on such portable computer-readable storage media and can be loaded onto persistent storage 608 via I/O interface(s) 612. I/O interface(s) 612 also connect to a display 620.
Display 620 provides a mechanism to display data to a user and may be, for example, a computer monitor, or a television screen.
The programs described herein are identified based upon the application for which they are implemented in a specific embodiment of the invention. However, it should be appreciated that any particular program nomenclature herein is used merely for convenience, and thus the invention should not be limited to use solely in any specific application identified and/or implied by such nomenclature.
It is to be noted that the term(s) “Smalltalk” and the like may be subject to trademark rights in various jurisdictions throughout the world and are used here only in reference to the products or services properly denominated by the marks to the extent that such trademark rights may exist.