In some embodiments, antivirus/malware behavior-based scanning (emulation) is accelerated by identifying known code sequences and executing pre-stored native-code routines (e.g. decompression, decryption, checksum routines) implementing the functionality of the known code sequences before returning
In some embodiments, antivirus/malware behavior-based scanning (emulation) is accelerated by identifying known code sequences and executing pre-stored native-code routines (e.g. decompression, decryption, checksum routines) implementing the functionality of the known code sequences before returning to the emulation. During emulation, target machine code instructions are compared to a set of known signatures. If a known code sequence is identified, the emulator calls a native code routine and caches the current instruction address. If the emulator subsequently reaches a cached address, a native code routine may be called without scanning the data at the address for known signatures. Signature scanning may be performed selectively for instructions following code flow changes (e.g. after jump, call or interrupt instructions). The emulator may also call native-code routines implementing virtual operating system calls, and native-code unpacked file reconstruction routines that reconstruct unpacked files from the contents of virtual memory for scanning by a content-based malware scanner.
대표청구항▼
1. A computer-implemented method to detect malware on a computing system, the method comprising: employing a behavior analysis application running on an operating system of the computing system to perform an accelerated emulation of an untrusted computer file by emulating a first code sequence of a
1. A computer-implemented method to detect malware on a computing system, the method comprising: employing a behavior analysis application running on an operating system of the computing system to perform an accelerated emulation of an untrusted computer file by emulating a first code sequence of a plurality of code sequences of the untrusted computer file in a virtual environment; andupon identifying a known code sequence in the untrusted computer file, executing outside the virtual environment a native-code routine functionally implementing the known code sequence, wherein the native-code routine comprises a routine selected from a group consisting of a decompression routine, a decryption routine, and a checksum routine; anddetermining whether the untrusted computer file is malicious according to a result of the accelerated emulation. 2. The method of claim 1, wherein the native-code routine comprises a decompression routine. 3. The method of claim 1, wherein the native-code routine comprises a decryption routine. 4. The method of claim 1, wherein the native-code routine comprises a checksum routine. 5. The method of claim 1, further comprising: determining whether a current emulation address is a code flow change target address;selectively performing a code signature database search if the current emulation address is determined to be a code flow change target address, wherein performing the code signature database search comprises searching a code signature database for a match to a content of the current emulation address to determine whether the content of the current emulation address forms part of the known code sequence. 6. The method of claim 1, wherein identifying the known code sequence comprises comparing a hash of a content of a current emulation address to a set of code signature hashes stored in a code signature database. 7. The method of claim 1, wherein identifying the known code sequence comprises determining whether a current emulation virtual memory address is present in a known-code virtual address cache. 8. The method of claim 1, wherein the behavior analysis application comprises a memory-based pattern matching module configured to examine a virtual memory of the virtual environment at a plurality of time points during said emulating the first instruction sequence, for determining whether the untrusted computer file is malicious. 9. The method of claim 8, wherein the behavior analysis application further comprises a virtual machine content inspector module configured to examine a virtual hard drive and a virtual memory of the virtual environment upon completion of the accelerated emulation, for identifying a result of a malicious behavior of the untrusted computer file during the accelerated emulation. 10. The method of claim 9, wherein the behavior analysis application further comprises a file-based pattern matching module configured to examine a virtual hard drive of the virtual environment for malware signatures upon completion of the accelerated emulation. 11. The method of claim 1, wherein the native code routine is identical to the known code sequence. 12. The method of claim 1, wherein the native code routine is different from the known code sequence. 13. A computer implemented method to detect malware on a computing system, the method comprising: upon identifying a known code sequence in an untrusted computer file comprising a plurality of code sequences, executing outside a virtual environment a native code routine functionally implementing the known code sequence, wherein the native-code routine comprises a routine selected from a group consisting of a decompression routine, a decryption routine, and a checksum routine;employing a result of said executing the native code routine to emulate in the virtual environment a second code sequence of the untrusted computer file; anddetermining whether the untrusted computer file is malicious according to a result of emulating the second code sequence. 14. A computer implemented method to detect malware on a computing system, the method comprising: determining whether a part of a plurality of parts of an untrusted computer file matches a known code signature; andin response to determining whether the part of the untrusted computer file matches the known code signature, when the part matches the known code signature, executing outside the virtual environment a preexisting trusted code routine functionally implementing the part, and when the part does not match the known code signature, emulating the part in a virtual machine, wherein the preexisting trusted code routine comprises a routine selected from a group consisting of a decompression routine, a decryption routine, and a checksum routine. 15. A computer system comprising computer hardware programmed to perform the steps of: employing a behavior analysis application running on an operating system of the computer system to perform an accelerated emulation of an untrusted computer file by emulating a first code sequence of a plurality of code sequences of the untrusted computer file in a virtual environment; andupon identifying a known code sequence in the untrusted computer file, executing outside the virtual environment a native-code routine functionally implementing the known code sequence, wherein the native-code routine comprises a routine selected from a group consisting of a decompression routine, a decryption routine, and a checksum routine; anddetermining whether the untrusted computer file is malicious according to a result of the accelerated emulation. 16. The system of claim 15, wherein the native-code routine comprises a decompression routine. 17. The system of claim 15, wherein the native-code routine comprises a decryption routine. 18. The system of claim 15, wherein the native-code routine comprises a checksum routine. 19. The system of claim 15, wherein the system is further programmed to perform the steps of: determining whether a current emulation address is a code flow change target address;selectively performing a code signature database search if the current emulation address is determined to be a code flow change target address, wherein performing the code signature database search comprises searching a code signature database for a match to a content of the current emulation address to determine whether the content of the current emulation address forms part of the known code sequence. 20. The system of claim 15, wherein identifying the known code sequence comprises comparing a hash of a content of a current emulation address to a set of code signature hashes stored in a code signature database. 21. The system of claim 15, wherein identifying the known code sequence comprises determining whether a current emulation virtual memory address is present in a known-code virtual address cache. 22. A malware detection computer system comprising computer hardware programmed with computer software, comprising: means for performing an accelerated emulation of an untrusted computer file by emulating a first code sequence of a plurality of code sequences of the untrusted computer file in a virtual environment; andupon identifying a known code sequence in the untrusted computer file, executing outside the virtual environment a native-code routine functionally implementing the known code sequence, wherein the native-code routine comprises a routine selected from a group consisting of a decompression routine, a decryption routine, and a checksum routine; andmeans for determining whether the untrusted computer file is malicious according to a result of the accelerated emulation. 23. A malware detection computer system comprising computer hardware programmed with computer software, comprising: an emulator configured to emulate an untrusted computer file comprising a plurality of code sequences in a virtual environment, and to recognize a known code sequence in the untrusted computer file; anda native-code acceleration routine responsive to the emulator and functionally implementing the known code sequence, wherein the native-code routine comprises a routine selected from a group consisting of a decompression routine, a decryption routine, and a checksum routine;wherein the emulator calls the native-code acceleration routine upon recognizing the known code sequence, receives a result of an execution of the native-code acceleration routine, and employs the result of the execution to continue an emulation of the untrusted computer file. 24. A non-transitory computer-readable medium encoding instructions which, when executed, cause a computer system to perform the steps of: perform an accelerated emulation of an untrusted computer file by emulating a first code sequence of a plurality of code sequences of the untrusted computer file in a virtual environment; andupon identifying a known code sequence in the untrusted computer file, executing outside the virtual environment a native-code routine functionally implementing the known code sequence, wherein the native-code routine comprises a routine selected from a group consisting of a decompression routine, a decryption routine, and a checksum routine; anddetermine whether the untrusted computer file is malicious according to a result of the accelerated emulation. 25. A non-transitory computer-readable medium encoding instructions which, when executed, cause a computer system to perform the steps of: upon identifying a known code sequence in an untrusted computer file comprising a plurality of code sequences, executing outside a virtual environment a native code routine functionally implementing the known code sequence, wherein the native-code routine comprises a routine selected from a group consisting of a decompression routine, a decryption routine, and a checksum routine;employing a result of said executing the native code routine to emulate in the virtual environment a second code sequence of the untrusted computer file; anddetermining whether the untrusted computer file is malicious according to a result of emulating the second code sequence. 26. A non-transitory computer-readable medium encoding instructions which, when executed, cause a computer system to perform the steps of: determining whether a part of a plurality of parts of an untrusted computer file matches a known code signature; andin response to determining whether the part of the untrusted computer file matches the known code signature, when the part matches the known code signature, executing outside the virtual environment a preexisting trusted code routine functionally implementing the part, and when the part does not match the known code signature, emulating the part in a virtual machine, wherein the trusted code routine comprises a routine selected from a group consisting of a decompression routine, a decryption routine, and a checksum routine. 27. A computer-implemented method to detect malware on a computing system, the method comprising: performing an accelerated emulation of an untrusted computer file by emulating a first code sequence of a plurality of code sequences of the untrusted computer file in a virtual environment; andupon identifying a known code sequence in the untrusted computer file, executing outside the virtual environment a preexisting trusted routine functionally implementing the known code sequence, wherein the trusted routine comprises a routine selected from a group consisting of a decompression routine, a decryption routine, and a checksum routine; anddetermining whether the untrusted computer file is malicious according to a result of the accelerated emulation.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (30)
van der Made, Peter A. J., Analytical virtual machine.
van der Made,Peter A. J., Computer immune system and method for detecting unwanted code in a P-code or partially compiled native-code program executing within a virtual machine.
Alpert Alan I. (Hopewell Junction NY) Clark Carl E. (Poughkeepsie NY) Hack Michel H. T. (Peekskill NY) Scalzi Casper A. (Poughkeepsie NY) Schmalz ; deceased Richard J. (late of Wappingers Falls NY by, Dynamic program analyzer facility.
Arnold, William C.; Chess, David M.; Morar, John F.; Segal, Alla; Swimmer, Morton G.; Whalley, Ian N.; White, Steve R., Method and apparatus for replicating and analyzing worm programs.
Christopher ; Jr. Kenneth Walter ; Jaramillo David ; Snow Mary M. ; Wahl Richard Dale ; Winters Scott Lee ; Wright ; Jr. Cornell G., Method and system for processing a first instruction in a first processing environment in response to intiating processi.
Jung, Robert; Saba, Antony, System and method for the programmatic runtime de-obfuscation of obfuscated software utilizing virtual machine introspection and manipulation of virtual machine guest memory permissions.
Zakorzhevsky, Vyacheslav V.; Vinogradov, Dmitry V.; Pintiysky, Vladislav V.; Kirsanov, Dmitry A., Systems and methods for detecting malicious executable files containing an interpreter by combining emulators.
Zakorzhevsky, Vyacheslav V.; Vinogradov, Dmitry V.; Pintiysky, Vladislav V.; Kirsanov, Dmitry A., Systems and methods for switching emulation of an executable file.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.