Hunting for Metamorphic
By Péter Ször and Peter Ferrie
Hunting for Metamorphic By Pter Szr and Peter Ferrie Introduction - - PowerPoint PPT Presentation
Hunting for Metamorphic By Pter Szr and Peter Ferrie Introduction Polymorphic virus engines resulted in stronger virus scanners. Paper focuses on how virus creators have challenged virus scanners over the past decade. Evolution of
By Péter Ször and Peter Ferrie
Introduction
scanners.
scanners over the past decade.
Evolution of Code: 32-bit Encrypted Viruses
○ One of the first DOS viruses that used encryption. ○ Starts with constant decryptor that's followed by decrypted virus body. ○ Method appeared in early 32bit Windows viruses, and is also used in more recent viruses.
detection is possible without decrypting virus body and infected code can easily be repaired.
Evolution of Code: 32-bit Oligomorphic Viruses
more challenging.
code that is encrypted.
Evolution of Code: 32-bit Polymorphic Viruses
to create new decryptors that use different encryption methods to encrypt the constant part of the virus body.
job more difficult, entry point
used in combination with 32- bit polymorphism..
Generations of a polymorphic virus.
Evolution of Code: 32-bit Metamorphic Viruses
sometimes are not seen in the wild because of bugs.
such viruses between minutes and a few days.
engines.
○ No decryptor ○ No constant virus body ○ Able to change how they look and behave
Virus body changes in different generations of metamorphic virus
Evolution of Code: Simple Metamorphic Viruses
○ Register usage exchange ○ Virus body uses the same code but different registers.
○ Capable of running on any major Win32 platform. ○ Capable of inserting garbage between core instructions. Evolution of Code: Complex Metamorphic Viruses
virus. ○ Jump instructions inserted into code ○ Points to a new instruction of the virus ○ Creates new mutations by removing and adding jump and garbage instructions ○ Cannot be detected by search strings in the files or in memory.
Evolution of Code: Complex Metamorphic Viruses
Evolution of Code: Complex Metamorphic Viruses
○ Based on sources of Zperm virus and RPME (Real
Permutating Engine, available for other virus writers to create new metamorphic viruses).
○ Uses a random code block insertion engine ○ Generates millions of iterations to challenge code
emulator's speed.
○ Entry Point-Obscuring metamorphic virus ○ Randomly uses additional polymorphic decryptor ○ Supports code integration ○ Randomly inserts jump instructions after every single instruction of the code section
Evolution of Code: Advanced Metamorphic Viruses Engines
○ Entry Point-Obscuring metamorphic virus ○ Randomly uses additional polymorphic decryptor ○ Supports code integration ○ Randomly inserts jump instructions after every single instruction of the code section
○ Doesn't alter host entry point ○ Merges with existing code
○ Checks to see if there's at least 16MB of physical memory ○ Then allocates memory blocks, permutates virus body, recursive search for .exe files
Evolution of Code: Advanced Metamorphic Viruses Engines
○ Slow ○ Consists of instruction replacement
○ File must be <448 KB ○ Begin with "MZ" ○ Portable Executable file
together by jumps.
Evolution of Code: Advanced Metamorphic Viruses Engines
○ Based on changes to the file structure
○ Separates instructions to look for garbage instructions that has been inserted by a virus. ○ CMP AX, "ZM"
○ Allows virus to execute freely in an environment it cannot escape
Metamorphic Virus Detection
Possible Future Virus Developments
the future.
each other.
○ Export engine of virus to another virus or worm ○ Exchange trigger routines
prevalent and must be taken seriously.
become a very great challenge for antivirus researchers.