Kaspersky Lab core detection technologies - Comprehensive protection from threats of today and tomorrow
←
→
Page content transcription
If your browser does not render page correctly, please read the page content below
Kaspersky Lab core detection technologies Comprehensive protection from threats of today and tomorrow Whitepaper
CONTENTS 1 INTRODUCTION ............................................................................................................................... 4 2 GOOD & BAD ANTI-VIRUS ENGINES ............................................................................................ 5 3 KEY FEATURES OF THE KASPERSKY® ANTI-VIRUS ENGINE .................................................. 6 3.1 SIGNATURE ANALYSIS .................................................................................................................... 6 3.2 CHECKSUMMING............................................................................................................................ 7 3.3 TECHNIQUES FOR DETECTING POLYMORPHIC VIRUSES .................................................................... 7 Reduced masks.................................................................................................................................... 8 Known plaintext cryptanalysis .............................................................................................................. 8 Statistical analysis ................................................................................................................................ 9 Emulation ............................................................................................................................................. 9 Polymorphic viruses: summary ........................................................................................................... 9 3.4 PROCESSING COMPLEX OBJECTS ................................................................................................. 10 3.5 HEURISTIC ANALYSIS ................................................................................................................... 11 Static heuristic analysis ...................................................................................................................... 11 Dynamic heuristic analysis ................................................................................................................. 12 3.6 GENERIC DETECTION ................................................................................................................... 12 3.7 DETECTION OF MALICIOUS CONTENT ............................................................................................ 13 3.8 DETECTION OF ROOTKITS ............................................................................................................ 13 3.9 DETECTION OF MOBILE THREATS .................................................................................................. 15 3.10 DETECTION OF SPYWARE ............................................................................................................ 16 Adware ............................................................................................................................................... 18 Pornware ............................................................................................................................................ 18 Riskware............................................................................................................................................. 18 3.11 UPDATING VIRUS SIGNATURES ..................................................................................................... 18 4 OTHER CORE DETECTION TECHNOLOGIES ............................................................................. 19 4.1 PROACTIVE DEFENSE MODULE .................................................................................................... 19 Worm.Generic .................................................................................................................................... 20 Worm.P2P.Generic ............................................................................................................................ 20 Trojan.Generic.................................................................................................................................... 20 Buffer overrun..................................................................................................................................... 20 Data Execution ................................................................................................................................... 20 Root shell ........................................................................................................................................... 20 Internet Browser Launchers ............................................................................................................... 20 Invaders.............................................................................................................................................. 21 Hidden Objects (Rootkits) .................................................................................................................. 21 Suspicious values in registry .............................................................................................................. 21 Strange system behavior.................................................................................................................... 21 Hidden installers................................................................................................................................. 21 Keyloggers ......................................................................................................................................... 21 Trojan Cryptors................................................................................................................................... 21 Hidden data sending .......................................................................................................................... 21 Private data and password access..................................................................................................... 21 Application Integrity Control ............................................................................................................... 22 Registry Guard ................................................................................................................................... 22 Office Guard ....................................................................................................................................... 22 Kaspersky Lab core detection technologies 2
4.2 PERFORMANCE OPTIMIZATION ..................................................................................................... 22 iChecker™ and iSwift™ ..................................................................................................................... 22 Suspension of scanning when the system is under load.................................................................... 23 iCure™ ............................................................................................................................................... 23 4.3 COMBATING ACTIVE THREATS ...................................................................................................... 23 Active threat disinfection .................................................................................................................... 23 Rescue Disk ....................................................................................................................................... 24 5 CONCLUSION ................................................................................................................................ 24 6 APPENDIX 1. TODAY’S THREAT LANDSCAPE: FROM CYBER VANDALISM TO CYBER CRIME...................................................................................................................................................... 25 7 APPENDIX 2. EVALUATING ANTI-VIRUS PRODUCTS ............................................................... 28 Magazine reviews............................................................................................................................... 28 Tests and certifications based on the WildList ................................................................................... 29 Comprehensive anti-virus detection tests .......................................................................................... 29 Summary ............................................................................................................................................ 30 Kaspersky Lab core detection technologies 3
1 Introduction It’s clear that the nature of the threat to PC users has changed significantly over the years. Today’s threats are more complex than ever before. Much of today’s malware (short for malicious software), which includes Trojans, backdoors and spammers’ proxy servers as well as viruses and worms, is purpose-built to hijack users’ machines; and a single Trojan can easily be found on many thousands of infected PCs. Malicious code may be embedded in e-mail, injected into fake software packs, or placed on ‘grey-zone’ web pages for download by a Trojan installed on an infected machine. There has also been a growth in spyware, adware, dialers and other ‘unwanted’, but non-viral, programs. The scale of the problem, in terms of numbers alone, has also continued to increase.1 At the same time, the anti-virus market is saturated with products. This raises the question of how to choose the best product. Which ones will guarantee maximum protection? Which ones offer the most efficient combination of technologies capable of comprehensively protecting your computer and network from all types of malware and potentially unwanted programs? The core of any anti-virus product is the anti-virus engine, a software module purpose-built to find and remove malicious code. The engine is developed independently of any specific product implementation. So it plugs-in equally well into personal products, like personal scanners or real-time monitors, or solutions for servers, mail scanners, file servers, firewalls and proxy-servers. The reliability of malicious code detection, and hence, the security level provided by the engine, ultimately depends on the engine’s structure, its detection methods and the heuristic technologies implemented in the engine. This document outlines the key elements of the Kaspersky® anti-virus engine and other core technologies. This includes scanning features that are common to many anti-virus products, but also unique technologies that make the Kaspersky® anti-virus engine so effective at finding and removing malicious code. 1 Kaspersky Lab anti-virus databases now contain more than 250,000 records. Kaspersky Lab core detection technologies 4
2 Good & bad anti-virus engines Anti-virus vendors tend to conceal the details of their engines from the public. And with good reason, of course, since they have no wish to publish information that hackers or virus writers might be able to use to circumvent particular techniques used in the engine. However, there are indirect ways you can determine whether a particular engine is good or bad, i.e. is it more or less effective at finding and removing malicious code? Below is a list of the main criteria for selecting an anti-virus engine. • Quality of detection indicates the effectiveness with which the anti-virus program detects viruses, worms, Trojans and potentially undesirable programs (including spyware programs). The best way to assess an anti- virus vendor’s detection capability is to check out its track record in a range of independent tests.2 • Level of proactive detection indicates a program’s ability to find new, unknown threats. Proactive detection has become increasingly important given the speed at which today’s threats spread. Unfortunately, it’s very difficult to assess a product’s capability in this area without access to a virus collection. However, a number of independent test organizations have begun to include this in their test methodologies. In addition, the number of false alarms is also indicative of the quality of an engine’s heuristic analyzer. Clearly, high proactive detection levels are only useful if they don’t come with a high false positive rate. • Number of false alarms is an important measure of an engine’s quality. If an anti-virus program reports an infection in a clean file, this is called a false alarm, or false-positive. Not only do frequent false alarms undermine a user’s confidence in a program’s heuristic analyzer. They can also prevent a user from recognizing a new virus (the program wrongly detects legitimate programs so often that the user stops trusting it.) • Detection of malicious code inside compressed, archived and packed formats is critical because virus writers frequently compress their code using different compression utilities, to produce several distinct executables. In fact, all these viruses are duplicates of the same virus. And if an anti-virus engine supports all (or almost all) popular compression utilities, it will easily detect all copies of the same virus and determine its name. Other anti-virus programs, by contrast, will require a virus definition update (and may also require additional time for analysis by one of their virus researchers). 2 See Appendix 2 Evaluating anti-virus tests for further information. Kaspersky Lab core detection technologies 5
• Update size and frequency are also indicative of the quality of an anti- virus engine (as well as the quality of the vendor’s research team). While the engine itself is designed to be updated infrequently, frequent updates to the anti-virus databases guarantee that a user will be constantly protected from the latest threats. The size of each database update (as well as the number of detected threats) shows the quality of the anti-virus databases and, to some degree, the engine itself. • Engine-only updating, without the need to update the entire anti-virus program, indicates the efficiency of the engine technology. In some cases, in order to detect a virus, a user must update not only the anti-virus database but also the engine. If it’s not easy for the customer to update the engine, the user’s computer or network may become infected with a new virus. In addition, engine-only updating allows a vendor to quickly troubleshoot and improve the engine, or extend its functionality. 3 Key features of the Kaspersky® anti-virus engine The appearance of the first computer viruses forced programmers to react quickly. This led to the creation of the first anti-virus programs. Since then, anti-virus software has changed dramatically in response to the changing threat posed by each successive generation of malware. Today’s anti-virus programs differ as much from the old solutions as an up-to-date PC differs from, say, a calculator. The Kaspersky® anti-virus engine is integrated into all Kaspersky® anti-virus products and delivers a unique combination of technologies necessary for the successful detection of malicious code. The Kaspersky® anti-virus engine is designed on the basis of a powerful and flexible logical subsystem that employs all the latest methods to find and remove malware. The key features of the Kaspersky® anti-virus engine are outlined below. 3.1 Signature analysis A signature is a unique sequence of bytes that is specific to a piece of malicious code. Signature analysis, or a modification of it, was (and remains) one of the first methods used in anti-virus engines to detect viruses and other malware. Obvious advantages of this method are its high speed (especially with the use of special Kaspersky Lab core detection technologies 6
algorithms) and the fact that several threats can be detected using just one signature. On the other hand, a serious disadvantage is that for reliable detection of malicious code, the signature must be large, at least 22-40 bytes (anti-virus producers usually use longer signatures, of up to 64 bytes, to ensure detection). So the size of the anti-virus database also increases. Another challenge to this method is that much contemporary malware is written in high level languages such as C++, Delphi or Visual Basic. These programs contain fragments of code that do not change (the so-called run time library). If an incorrect signature is used, this leads to false alarms, where a clean file is reported to be infected. The false alarm problem can be solved by using extremely large signatures, or by restricting detection to certain data areas like relocation tables or text strings, which is undesirable. 3.2 Checksumming Checksumming is a method based on calculating CRC (Cyclic Redundancy Check) checksums and is a modification of signature analysis. The method was developed to overcome the main disadvantage of the signature method, large databases and frequent false alarms. Checksumming accounts for not only the search string (or, to be more precise, a checksum for the string) but the location of the string in the body of a malicious program. The location is used to calculate the checksums for the entire file. Thus, instead of a 10-12 byte search string (the minimum size), the checksum takes four bytes and the location data also take four bytes. However, checksumming is more time consuming than signature analysis. 3.3 Techniques for detecting polymorphic viruses Self-encryption and polymorphism are used in most types of virus in order to make them more difficult to detect. Polymorphic viruses are extremely hard to detect because they do not have signatures, i.e. there’s no constant fragment of virus-specific code. In most cases, two samples of the same polymorphic virus will not have a single coinciding fragment. There are many kinds of polymorphic virus, from boot and DOS file viruses to Windows viruses, macro and script viruses. Polymorphic ‘envelopes’ are also used to hide Trojan programs. Kaspersky Lab core detection technologies 7
Viruses are called polymorphic if their body is self-changing during replication to avoid the presence of any constant search strings. Polymorphic viruses can not be detected (or can be detected only with great difficulty) using so-called virus signatures or masks, sequences of unchanging virus-specific code. Polymorphism is achieved by encrypting the main code of the virus with non- constant keys containing random sets of decryption commands, or by changing the executable virus code. There are also other rather exotic examples of polymorphism. For example the DOS virus Bomber is not encrypted, but the sequence of instructions which passes control to the body of the virus is completely polymorphic. It is problematic to use signatures (sometimes called search strings), as outlined above, to detect polymorphic viruses. Since the code changes with each infection, it becomes impossible to select the correct signature. Even a very large signature can not be used to identify an encrypted virus uniquely without giving false alarms. It’s not difficult to see why. The polymorphic virus encrypts its body, converting the virus code into a variable. And variable code can not be selected for a signature. So for detection of polymorphic viruses, additional techniques must be used. Reduced masks If the encryption algorithm used by the virus is not sufficiently sophisticated, it’s possible to use elements within the encrypted body of the virus to take the encryption key out of the equation and obtain static code. The signature, or mask, can then be taken from the resulting static code. Known plaintext cryptanalysis Known plaintext cryptanalysis is another method for dealing with polymorphic viruses. It uses the known original virus code and the known encrypted code (or suspicious code that looks like an encrypted virus body), the engine reconstructs the keys and the algorithm of the decrypting program. The engine then decodes the encrypted virus body by applying this algorithm to the encoded fragment. Using a system of equations to decode an encrypted virus body is similar to the classical cryptographic problem of decoding an encoded text without keys. However, there are two key differences. First, most of the data required for the solution is known. Second, the solution must be reached using available RAM and within a limited period of time. In general, this method is less time consuming and uses a smaller amount of memory than emulation of virus instructions (see below). However, this makes it necessary to construct a system of equations and it becomes rather complicated. The main problem is the mathematical analysis of the equation or the system of equations constructed. Kaspersky Lab core detection technologies 8
Statistical analysis Statistical analysis is another method used to detect polymorphic viruses. The engine analyzes the frequency of the processor commands used and uses this information to make a decision on whether the file is infected or not. This method is quite effective for those polymorphic viruses that use a limited set of opcodes in their decryptors, compared to clean files that use other opcodes with a different frequency. For example, many complex polymorphic viruses rarely use the DOS interrupt 21h (CDh 21h opcode) in their decryptors, while most legitimate programs use it frequently. The main disadvantage of this method is that there is a family of complex polymorphic viruses that uses the opcodes of virtually all processors and the set of commands changes dramatically from infection to infection, thus making it impossible to detect such viruses using a frequency table. Emulation The increase in the number of polymorphic viruses in the early 1990s, and in particular the first appearance of polymorphic viruses in the field, led to the development of a method of emulating the program code (also known as sandboxing). Using this method, program execution (of both infected and clean programs) is emulated in a virtual environment, called a sandbox or virtual machine. After this emulation process, where the program is a polymorphic virus, the buffer contains a decoded virus body ready to be detected using standard methods (signature analysis or CRC checksumming). Current systems emulate not only processor opcodes, but also operating system calls. It is quite difficult to write a decent emulator. In addition, when an emulator is used, the actions of every command must be constantly controlled to prevent the program from occasionally executing the destructive virus instructions that are present in most known viruses. It’s also important to stress that program emulates the execution of virus instructions, rather than tracing them, because tracing virus activities increases the risk of executing destructive instructions or the codes responsible for activating the virus itself. Polymorphic viruses: Summary In practice, deciding on the use of the above methods for detecting polymorphic viruses (reduced masks, cryptanalysis, statistical analysis and emulation), comes down finding an optimal balance that offers maximum speed and minimum memory usage. The code of most self-encrypting viruses can easily be decoded using emulation. If emulation is not an optimal solution, the virus code can be decoded using a subprogram that applies cryptanalysis to this code. To detect viruses that are non-decodable, or that can not be emulated, the engine uses a method of reduced masks. In complex cases, the Kaspersky® anti-virus engine uses a combination of the above methods. A fragment of the decryptor code is emulated to distinguish commands that are responsible for the decrypting algorithm. Then, based on the Kaspersky Lab core detection technologies 9
information obtained, the engine constructs and solves a system of equations to decrypt and detect the virus code. The above-described methods are combined in the case of multiple encoding, where a virus encrypts its body several times using various encryption algorithms. A combination of methods for decoding information or, in other words, ‘pure’ emulation of the decoder code, is often used in the engine because every new virus must be analyzed and integrated into the anti-virus database in the shortest time, which is sometimes not possible with mathematical analysis. As a result, more laborious detection methods are used, leaving behind the mathematical methods that can be applied to analyze the decryption algorithms. 3.4 Processing complex objects In recent years anti-virus engines have changed dramatically. For the first anti- virus programs, it was enough to check system memory, executable files, and boot sectors. After several years, due to the increased popularity of special compression utilities, anti-virus developers encountered the problem of how to extract a compressed file before scanning it. Then, a new problem appeared when viruses started infecting archives (and users often sent each other infected archives). Anti-virus programs had to learn how to process archived files. There were other related problems too. The first macro virus to infect Microsoft® Word documents appeared in 1995. Word documents are stored in a closed, complex format and some anti-virus producers are still unable to process such files effectively. Contemporary anti-virus engines must also be able to scan e-mail databases and e-mail messages. It’s critical for anti-virus programs to be able to scan such complex objects because there could be a hidden threat lurking within any one of them. The Kaspersky® anti-virus engine currently supports over 300 distinct run-time packers, with more than 2,800 versions; and over 80 archiving utilities, with more than 500 versions. Thus the total number of formats supported is around 3300.3 The engine supports a wide range of utilities for compressing executable files, as well as encryption systems. These include the following: Diet, AVPACK, COMPACK, Epack, ExeLock, ExePack, Expert, HackStop, Jam, LzExe, LzCom, PaquetBuilder, PGMPAK, PkLite, PackWin, Pksmart, Protect, ProtEXE, RelPack, Rerp, Rjcrush, Rucc, Scramb, SCRNCH, Shrink, Six-2-Four, Syspack, Trap, UCEXE, Univac, UPD, UPX , WWPACK, ASPack, ASProtect, Astrum, BitArts, BJFnt, Cexe, Cheaters, Dialect, DXPack, Gleam, CodeSafe, ELFCrypt, JDPack, JDProtect, INFTool, Krypton, Neolite, ExeLock, NFO, NoodleCrypt, OptLink, PCPEC, PEBundle, PECompact , PCShrink, PE-Crypt, PE- 3 As of March 2007. The full list of supported formats is available from Kaspersky Lab. Kaspersky Lab core detection technologies 10
Diminisher, PELock, PEncrypt, PE-Pack, PE-Protect, PE-Shield, Petite, Pex, PKLite32, SuperCede, TeLock, VBox, WWPack32, XLok and Yoda. The engine also supports a wide range of archivers and installers. This reduces the time taken to analyze new viruses, thus accelerating the response to new threats and providing the highest level of detection of known viruses. Archivers and installers supported include the following: CAB, ARJ, ZIP, GZIP, Tar, AIN, HA, LHA, RAR, ACE, BZIP2, WiseSFX, CreateInstall, Inno Installer, StarDust Installer, MS Expand, GKWare Setup, SetupFactory, SetupSpecialist, NSIS, Astrum, PCInstall, and Effect Office. Support for all these archivers, and modifications of them, is particularly important when scanning e-mail traffic, because a great number of viruses are sent via e- mail as archives. Objects are extracted regardless of the archive nesting depth. For example, if an infected file is compressed with the UPX utility and then archived in a ZIP file, which in turn is archived in a CAB file, the Kaspersky engine will still be able to extract the original file and detect the virus. The engine uses a smart algorithm that avoids extracting so-called archive bombs, highly compressed and therefore seemingly small archives that expand into huge files or several identical files. Such archives usually take quite a long time to scan, but the Kaspersky® anti-virus engine can instantly recognize such bombs among normal archives. 3.5 Heuristic analysis In the early 1990s, as the number of viruses grew to exceed several hundreds, anti-virus experts investigated the possibility of detecting viruses that were currently unknown and for which there was no signature. As a result, the so- called heuristic analyzers were created. A heuristic analyzer is a set of subprograms that analyze the code of executable files, macros and scripts, in memory, files or boot sectors, in order to detect various types of malware. The two main principles used in heuristic analyzers are static and dynamic analysis. Static heuristic analysis This involves a search for general short signatures specific to most viruses (so- called suspicious commands). For example, many viruses search for files using the *.EXE mask, open the file found and write their code into this file. The task of the heuristic analyzer is to find signatures that are indicative of these activities. Then the program analyzes the signatures and, if a number of suspicious commands are found, it decides that the file is infected. This method is easy to Kaspersky Lab core detection technologies 11
implement and delivers high-speed scanner performance. However, the level of detection of new malicious programs is rather low. Dynamic heuristic analysis This was developed simultaneously with the introduction of code emulators into anti-virus programs (see above). The dynamic method emulates program performance and logs all suspicious actions. This log is then used to decide whether or not the program is infected or not. Unlike the static method, the dynamic heuristic analysis method requires more resources but provides a higher level of detection. The heuristic analyzer integrated into the Kaspersky® anti-virus uses both cryptanalysis and statistical analysis. It was designed from the outset as an extensible module, unlike many other first-generation heuristic analyzers that were designed to detect malicious code only in executable files. At present, the Kaspersky® heuristic analyzer successfully detects malicious code in executable files, disk sectors and computer memory. It also effectively reveals new script viruses and malware for Microsoft® Office (and other programs that use VBA), as well as code written in high level languages like Microsoft® Visual Basic. Due to its flexible architecture and combination of various methods, the Kaspersky® heuristic analyzer is able to detect new malware very efficiently. At the same time, the number of false alarms has been minimized. 3.6 Generic detection Generic detection refers to the detection and removal of multiple threats using a single virus signature. The starting-point for generic detection is that successful threats are often copied by others, or further refined by the original author(s). The result is a spate of viruses, worms or Trojans, each one distinct but belonging to the same family. In many cases, the number of variants can run into tens, or even hundreds. Generic detection involves creating a signature that is able to identify all threats belonging to the same family. So when NewVirus appears, the definition created to detect it will also successfully identify NewVirus.b, NewVirus.c, NewVirus.d, etc. if and when they’re created. Such techniques extend also to detection of exploit code that may be used by a virus or worm. Of course, generic detection is not guaranteed to find all variants in the family. However, it has proved effective in detecting many new threats without the need for an updated signature. Where it’s feasible, detection of multiple variants using a single definition is also more efficient. Kaspersky Lab core detection technologies 12
3.7 Detection of malicious content Malicious code today takes many forms. Traditional threats like classic viruses and worms are still circulating, but have declined in number in relative terms. Today’s ‘weapon of choice’ for malware authors is the Trojan. This class of malware includes a wide array of programs, each tailored to a specific purpose: Backdoor Trojans, PWS Trojans, Trojan Droppers, Trojan Downloaders and Trojan Proxies. There is also an increasing number of potentially undesirable non-viral programs. Historically, malware authors have focused on e-mail as their main attack vector; and, until a recently, the e-mail worm was the main threat facing enterprises. E- mail remains a key means of delivering malicious code: today it often takes the form of direct spamming to a target population of PCs, rather than mass-mailing using e-mail addresses harvested from infected machines. However, SMTP is not the only attack vector today. Web browsers provide employees with a doorway to the Internet and the browser is how they are exposed to content on the web, including malicious content. HTTP and FTP can also be used to deliver malicious code to a computer. The specific methods can vary. Malicious code may be embedded in HTML e- mail messages, in the form of VBS (Visual Basic Script) or JavaScript, or within web pages (using ActiveX). Or malicious code may be injected directly into fake software packs or placed on ‘grey-zone’ web pages for download by a Trojan already installed on a victim machine. The use of exploits to deliver malicious code has now become commonplace. The term exploit describes a program, piece of code or even some data written by a hacker or virus writer that is designed to take advantage of a bug or vulnerability in an application or operating system. Using the exploit, an attacker gains unauthorized access to, or use of, the application or operating system. The use of exploits by hackers and virus writers has increased during the last few years. Typically, exploit code is used to gain access to confidential data or to use the victim machine for further unauthorized use. The various means by which code may be delivered to a victim computer are sometimes referred to as ‘active content’ or ‘content’. Kaspersky Lab provides protection from malicious or potentially undesirable code, regardless of the means used to deliver it to the computer. 3.8 Detection of rootkits The term rootkit is borrowed from the Unix world, where it was used to describe tools used to maintain ‘root’ access while remaining invisible to the system administrator. Today it refers to stealth techniques employed by malware authors Kaspersky Lab core detection technologies 13
to hide the changes they have made to a victim machine. Typically, the malware author obtains access to the system by cracking a password or exploiting a vulnerability and then uses this to gain other system information until he achieves administrator access to the machine. Rootkits are often used to hide the presence of a Trojan, by concealing registry edits, the Trojan’s process(es) and other system activity. This is done either by replacing legitimate system files or libraries, or by installing a kernel module on the system. The aim is to intercept system information and so prevent the user from seeing what’s really going on, namely a range of malicious activity. It could be the theft of banking data through the use of a keylogger, the hijacking of a victim machine for widespread distribution of spam e-mail, or the collective (mis)use of victim machines in a DDoS (Distributed Denial of Service) attack designed to extort money from a specific organization. However, rootkits are not only used to increase the life expectancy of out-and-out malicious code such as viruses, worms and Trojans. They are being used increasingly by adware programs, quasi-legal applications used to advertise goods or services, to prevent their removal from the system on which they’re installed. The first step in installing the rootkit is for a hacker to gain user-level access. This is then used to gain root, or administrator, access to the system. Of course, the fact that most users simply use the administrator's account, rather than creating a separate user account, makes it much easier for a hacker to install a rootkit on the victim machine: and this is a major factor that has contributed to the increased use of rootkits. Once the rootkit is installed and running, it is able to conceal network activity, registry data, processes running on the system and anything else that might alert the user to its activity. There are user-mode and kernel-mode rootkits. Kernel-mode rootkits, as the name suggests, operate at a low level within the operating system and are able to hide themselves more effectively than user-level rootkits. It’s clear that the threat landscape has changed markedly in recent years. The transition to cyber crime means that more is at stake and malware authors have more reason than ever to conceal their actions on victim machines. For this reason, rootkits are likely to remain a key weapon in the arsenal of malware authors. Of course, the low-level nature of rootkits, and the way they hook into the system, makes them difficult to detect and even more difficult to remove. Effective detection and removal of rootkits has become essential; and this requires an anti- virus engine that implements advanced detection and cleaning techniques.3 3 The Proactive Defense Module [PDM], integrated into Kaspersky® Anti-Virus 6.0, Kaspersky® Internet Security 6.0, Kaspersky® Anti-Virus 6.0 for Windows Workstations, is able to detect new, unknown rootkits, block them and roll-back any changes they have made to the system. For more details on the PDM, see the section below on Other core detection technologies. Kaspersky Lab core detection technologies 14
3.9 Detection of mobile threats The use of increasingly sophisticated mobile devices within the corporate world continues to grow and with it the use of wireless technologies of one sort of another. Today, there’s little you can do with a laptop that you can’t do with a handheld computer. Enterprises operate today in an ‘open space’, with employees connected, and therefore open to attack, wherever they work: in the work place, at home, or on the road. Mobile devices operate beyond the reach of traditional network security; and as they start to carry more and more valuable corporate data, they become a more attractive target for the writers of malicious code. The first worm for mobile phones, Cabir, appeared in June 2004. Since then Cabir has spread to more than 40 countries across the globe. Cabir spreads using Bluetooth. This is the most common method for wireless transmission of data, so it’s no surprise that it has become the chosen means of infection for many virus writers. Research4 carried out by Kaspersky Lab’s Alexander Gostev shows clearly that significant numbers of Bluetooth-enabled devices are left in discoverable mode: open to infection and open to hackers. In a very short period of time, we have seen viruses, worms and Trojans for mobile devices; that is, the array of threats that took twenty years to develop on PCs! Currently, we see around ten new mobile threats per week. Many are fairly basic, but it’s clear that malware authors are aware of the long-term potential for using mobile devices for making money illegally. In April 2006, we saw the first Trojan Spy for Symbian OS. Flexispy is a commercial Trojan that takes over control of smartphones and sends call information and SMS data to the author or ‘master’ of the Trojan. Evidence showed that its author was selling his creation for $50. And we’ve seen similar malware for Windows Mobile, currently the second most popular operating system for mobile devices. Since most mobile threats we’ve seen so far require user interaction (accept the file transfer then agree to run it), it might seem surprising how well they spread. That is, until you consider the success of PC-based worms that require similar user action. The key is social engineering, used by writers of viruses and worms as a way of beguiling unsuspecting users into running malicious code: often using the lure of free pornographic pictures, movie downloads, free services or make- money-fast schemes. It’s no different on mobile phones. For example, the Comwar worm uses MMS (Multimedia Messaging Service) to send itself to contacts found in a phone’s address book, at a cost of around €0.35 per message. Research5 conducted by Kaspersky Lab’s Konstantin Sapronov found that 25% of users with devices in 4 See http://www.viruslist.com/en/analysis?pubid=188833782 5 http://www.viruslist.com/en/analysis?pubid=181198286 Kaspersky Lab core detection technologies 15
discoverable mode accepted files transmitted to their devices using Bluetooth: this figure rose significantly where the filename contained the word ‘sex’. The payload of mobile threats varies. The phone may become unusable while the worm remains installed: the Skuller Trojan, distributed via download from a variety of mobile sites, replaces system icons with a skull icon: and the services related to the icons no longer work. The Mosquit Trojan sends SMS (Short Messaging Service) messages to premium rate numbers. Crimeware programs like Brador, Flexspy or one of the other mobile Trojans, allow the malware author or ‘master’ to steal confidential data stored on a mobile device. It’s worth noting in this context that users seldom encrypt the data they store on their device, and many don’t even use a power-on password. While virus writers are still experimenting with mobile technology, we’ve already seen some interesting developments. These include Lasco, a hybrid virus/worm combination; Cxover, that infects files on mobile devices and PCs; and RedBrowser, a Trojan that targets phones running Java (J2ME), i.e. non- smartphones. Although it’s clear that mobile devices are far from immune to attack, it’s hard to predict when the proof-of-concept trickle will turn into a flood. This will depend largely on usage. Once the number of smartphones, and their use for conducting online business, reaches critical mass, the criminal underground will target them, just as they target any commonly used system. Today criminals use the data stored on desktops and laptops to make money illegally. Tomorrow they will seek to harvest data from mobile devices for the same purpose. Detection for mobile threats is integrated into the Kaspersky® anti-virus engine. Kaspersky Lab adds detection for new mobile threats as they appear, to ensure that users are well-protected from this growing threat. 3.10 Detection of spyware 6 As outlined above, the Kaspersky® anti-virus engine delivers a unique combination of technologies necessary to successfully find and remove all kinds of malware. However, there are other ways for hackers, spammers and other cyber criminals to harm users. During the last few years there has been a growth in the number of non-viral, but potentially hostile, programs that can be used by criminals to attack users or hijack their machines for malicious purposes. This includes adware and the malware-related application classified by Kaspersky Lab as riskware and pornware. Such programs can not be defined as malware per se. In fact, they may be legitimate applications. But their potential for misuse by hackers 6 For more information on spyware programs, see the Kasperskly Lab white paper Detecting spyware and other potentially hostile non-viral programs. Kaspersky Lab core detection technologies 16
and other cyber criminals means that users increasingly see them as undesirable applications and need the means to identify them. Kaspersky Lab has a long history in detecting and removing Trojan spyware programs. This goes back to 1996 when Kaspersky Lab included detection and removal for the first AOL password stealing Trojans. Today, Kaspersky Lab has a consistent track record in independent tests for detection of Trojans and other malware. Kaspersky Lab also delivers exceptional protection from potentially hostile programs, so-called spyware. Detection of potentially hostile programs is especially important for enterprises, since such applications can bring significant security and legal risks, including: • Financial losses that result from theft of confidential corporate information. • Reduced computer performance and lower employee productivity. • Increased risk of legal liability. • Increased remote access costs. Spyware is something of a grey area, so there’s no clear definition. However, as the name suggests, it’s often loosely defined as software designed to harvest data from a computer and forward it to a third party without the knowledge or consent of the computer’s owner. This includes monitoring key strokes, collecting confidential information (passwords, credit card numbers, PIN numbers, etc.), harvesting e-mail addresses or tracking browsing habits. There’s a further by- product, of course: such activities inevitably affect network performance, slowing down the system and consequently affecting the whole business process. The lack of a hard-and-fast definition stems from the fact that spyware is really just a catch-all term for a wide assortment of malware-related programs. To illustrate this point, consider the definition of spyware created by the Anti-Spyware Coalition (ASC) in August 2005. The ASC defines ‘spyware and other potentially unwanted technologies’ as those that ‘impair users' control over material changes that affect their user experience, privacy, or system security; use of their system resources, including what programs are installed on their computers; or collection, use, and distribution of their personal or otherwise sensitive information.’ Clearly, this definition, like others,covers a whole range of malware and malware-related programs, including Backdoor Trojans, Trojan Proxies and PSW Trojans. Although such programs are not new, their use for malicious purposes has increased in recent years and they have received much greater attention, both from the media and from vendors who have developed (or bought) stand-alone anti-spyware products. Detection and removal of spyware applications is integrated into the Kaspersky® anti-virus engine and anti-virus databases.7 Other types of program often referred to as spyware are presented below. 7 KL placed FIRST in the Computer Bild spyware test, July 2005. KL placed FIRST in the Computer Bild spyware test, March 2006. KL won SC Magazine ‘Best Anti-spyware’ award in 2006. KL holds West Coast Labs. Checkmark ‘Anti-Spyware’ certification. Kaspersky Lab core detection technologies 17
Adware Adware programs are designed to launch advertisements, often pop-up banners, on infected machines and/or to re-direct search engine results to promotional web sites. They are often built into freeware or shareware programs: the price the user pays for the free program is the installation of an adware program. Sometimes adware programs are downloaded surreptitiously from a web site and installed on a user’s machine. Hacker tools, often referred to as Browser Hijackers (because they subvert the web browser to install a program without the user’s knowledge), download adware programs via a web browser vulnerability. Browser Hijackers may change browser settings, re-direct incorrect or incomplete URLs, or change the default homepage. They may also re-direct searches to ‘pay-to-view’ (often pornographic) web sites. Typically, adware programs do not show themselves in the system in any way: there is no listing under Start | Programs, no icons in the system tray and nothing in the task list. In addition, adware programs seldom come with a de-installation procedure and attempts to remove them manually may cause the original carrier program to malfunction. Pornware Pornware is the generic term used by Kaspersky lab to describe malware-related programs that either use the computer’s modem to connect to pornographic pay- to-view services, or download pornographic content from the web, without the consent of the user. Riskware Riskware is the generic term used by Kaspersky Lab to describe programs that are legitimate in themselves, but that have the potential for misuse by cyber criminals: for example, remote administration utilities. Such programs have always had the potential to be misused, but they now have a higher profile. During the last few years, virus writing and hacker techniques have started to merge. In the changing climate, such riskware programs have come into their own as a means of controlling machines for malicious purposes. 3.11 Updating virus signatures The anti-virus databases are an inseparable part of an anti-virus engine. As already observed, a well-designed engine is not updated frequently, whereas the databases must be constantly updated because they store signatures, checksums and special modules for detecting new malware. It’s well-known that new threats appear every day.8 So it’s important to update the anti-virus database as frequently as possible. In the early days of PC viruses, quarterly updates were enough for most customers. Later, monthly updates became standard. Even five years ago, it was normal to update the anti-virus database weekly. 8 As of March 2007 more than 200 new records are added to the Kaspersky® anti-virus databases every day. Kaspersky Lab core detection technologies 18
Now it’s better to update more frequently. Home users should update their databases every day. Enterprises, with thousands of PCs to protect, have a higher risk of infection because of the number of possible victims, so protection is more critical. It’s advisable for enterprises to update several times a day (at least every three to six hours). ISPs should check for new updates even more frequently: and this applies equally to corporate e-mail servers and other perimeter anti-virus defenses9. The elements included in the anti-virus databases are also significant, since the databases may contain not only virus signatures, but also other program procedures. Such procedures offer a way of updating the engine through the normal database update. The Kaspersky® anti-virus databases are updated hourly. Owing to the smart architecture of the Kaspersky® anti-virus engine, these updates are incremental, adding detection just for new threats rather than replacing the entire database each time the user does an update. The average size of an update is 20KB, although sometimes Kaspersky Lab releases updates containing specific enhancements (to scan within a new unpacker, for example), in which case an update may be up to 300KB. Approximately 70% of the anti-virus engine functionality is integrated into the databases. In this way, for example, support for a new archiver or compression utility can be added to the anti-virus databases at any time. Thus, regular daily updates provide not only enhanced detection for malware, but also updated engine functionality. This feature ensures a very quick response to any given situation and maximum protection against viruses. 4 Other core detection technologies Kaspersky Lab continually develops new technologies designed to ensure that the company remains in the vanguard for detection and removal of malicious code and potentially hostile programs and to ensure that Kaspersky Lab solutions deliver optimal performance. 4.1 Proactive Defense Module Proactive detection refers to an anti-virus solution’s ability to find new, unknown threats before they appear and without the need for a specific signature. Analyzing new varieties of malicious code, and releasing updates to deal with them, takes time, however efficient the processes employed by a virus analyst 9 One ISP that partners with Kaspersky Lab checks for new updates every 10 minutes. Kaspersky Lab core detection technologies 19
team. Unless an anti-virus solution includes proactive detection methods, customers will remain unprotected from new threats until a signature update is available. In fact, anti-virus programs have never relied exclusively on signature analysis. However, today’s threats are more numerous, faster spreading and more dangerous than ever before and proactive detection is a vital element in any comprehensive defence strategy. The Kaspersky Lab Proactive Defense Module (PDM)10 blends a range of proactive technologies to give a high level of protection from new threats. The PDM provides real-time analysis of processes in the system. If a dangerous, suspicious or hidden process is launched, the PDM blocks the process, alerts the user and rolls-back any changes made to the file system and registry, undoing any changes made by the suspicious process. The PDM monitors application behavior for the following types of suspicious activity. Worm.Generic These programs try to re-distribute their code across networks, using local shared folders or e-mail. Worm.P2P.Generic These programs try to use local folders to spread automatically across peer-to- peer networks, or use e-mail to spread across the Internet. Trojan.Generic These programs cause damage to a computer, impair its functioning or threaten the integrity of data stored on it. Buffer overrun A buffer overrun is a programming error that allows malicious code to ‘piggyback’ a legitimate process by writing its own code beyond the boundaries of a memory buffer. The PDM detects processes that try to exploit a buffer overrun in order to launch themselves as a separate process in memory. Data Execution These programs try to evade activity analyzers by allocating themselves non- executable memory and planting their code there. Root shell These programs are used by cyber criminals to gain remote shell access to a victim machine. Internet Browser Launchers These programs try to launch a user’s default browser with specific parameters, to transmit data to an executable program or script residing on a remote server. 10 The PDM is included in Kaspersky® Anti-Virus 6.0, Kaspersky Internet Security 6.0, Kaspersky® Anti-Virus 6.0 for Windows Workstations. Kaspersky Lab core detection technologies 20
Invaders These programs inject their code into a user’s address space and then pass the execution flow to this code, giving them the same rights as the user. Hidden Objects (Rootkits) These programs conceal their presence on a system, hiding installed files, registry changes and running processes. As well as concealing themselves, they can not be terminated in Task Manager. Suspicious values in registry These programs create their own registry keys, accessible only to this program: they can not be opened using a registry editor. Strange system behavior This includes several types of suspicious activity. • Programs that try to access physical memory directly. • Programs that try to make changes to the R0-R3 gateway handler (as part of rootkit installation, for example], the subroutine responsible for allowing applications to call kernel functions. • Programs that add suspicious values to the registry. Hidden installers These programs, including Trojan-Droppers and Trojan-Downloaders, surreptitiously install their components into the system. Keyloggers Keyloggers and keyboard spy programs record information about keys pressed by the user, usually without his/her knowledge or consent. The methods can vary, but include polling the keyboard and the use of keyboard filter drivers. Their purpose is to obtain confidential data, including passwords and PINs. Typically this data is copied to the hard disk and then secretly transferred to the author or ‘master’ of the keylogger using e-mail or some other method. Trojan Cryptors These programs, including ‘ransomware’ programs like GpCode and Krotten, encrypt document files. The PDM checks for such changes and is able to roll- back any changes (i.e. encryption) made by the Trojan Cryptor. Hidden data sending This includes programs that use a special Internet Explorer mechanism to send on behalf of the browser. This enables them to evade detection by a personal firewall, since they are normally configured to allow Internet Explorer to send data. Private data and password access These are Trojan-PSW programs that try to collect personal data such as ICQ and other passwords. The PDM includes three additional subsystems designed to block malicious code. Kaspersky Lab core detection technologies 21
You can also read