home *** CD-ROM | disk | FTP | other *** search
/ Chip 1999 July / Chip_1999-07_cd.bin / zkuste / TBAV / tbav_dos / HEUR_SCN.TXT < prev    next >
Text File  |  1999-01-11  |  28KB  |  637 lines

  1. May, 06 1994
  2.  
  3.  
  4. Technical information "heuristic scanning"
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11. Combatting viruses heuristically
  12. ================================
  13.  
  14. Generally speaking, there are two basic methods to detect viruses specific and 
  15. generic.  Specific virus detection requires the anti-virus program to have 
  16. some pre-defined information about a specific virus (like a scan string).  The 
  17. anti-virus program must be frequently updated in order to make it detect new 
  18. viruses as they appear.  Generic detection methods however are based on 
  19. generic characteristics of the virus, so theoretically they are able to detect 
  20. every virus, including the new and unknown ones.
  21.  
  22. Why is generic detection gaining importance?  There are four reasons:
  23. 1)  The number of viruses increases rapidly.  Studies indicate that the total 
  24. number of viruses doubles roughly every nine months.  The amount of work for 
  25. the virus researcher increases, and the chances that someone will be hit by 
  26. one of these unrecognizable new viruses increases too.
  27.  
  28. 2)  The number of virus mutants increases.  Virus source codes are widely 
  29. spread and many people can't resist the temptation to experiment with them, 
  30. creating many slightly modified viruses.  These modified viruses may or may 
  31. not be recognized by the anti-virus product.  Sometimes they are, but 
  32. unfortunately often they are not.
  33.  
  34. 3)  The development of polymorphic viruses.  Polymorphic viruses like MTE and 
  35. TPE are more difficult to detect with virus scanners.  It is often months 
  36. after a polymophic virus has been discovered before a reliable detection 
  37. algorithm has been developed.  In the meantime many users have an increased 
  38. chance of being infected by that virus.
  39.  
  40. 4)  Viruses directed at a specific organization or company.  It is possible 
  41. for individuals to utilize viruses as weapons.  By creating a virus that only 
  42. works on machines owned by a specific organization or company it is very 
  43. unlikely that the virus will spread outside of the organization.  Thus it is 
  44. very unlikely that any virus scanner will be able to detect the virus before 
  45. the payload of the virus does its destructive work and reveals itself.
  46.  
  47. Each of these scenarios demonstrates the fact that virus scanners can not 
  48. recognize a virus until the virus has been discovered and analyzed by an 
  49. anti-virus vendor.
  50.  
  51.  
  52. These same scenarios do not hold true for generic detectors, therefore many 
  53. people are becoming more interested in generic anti-virus products. Of the 
  54. many generic detection methods, heuristic scanning is currently becoming the 
  55. most important.
  56.  
  57.  
  58. Heuristic scanning
  59. ------------------
  60.  
  61. One of the most time consuming tasks that a virus researcher faces is the 
  62. examination of files.  People often send files to researchers because they 
  63. believe the files are infected by a new virus.  Sometimes these files are 
  64. indeed infected, sometimes not.  Every researcher is able to determine very 
  65. quickly what is going on by loading the suspected file into a debugger.  A few 
  66. seconds is often enough, and many researchers must have asked themselves: "How 
  67. can I determine this so quickly"?
  68.  
  69. One time I demonstrated this effect to the audience on an international 
  70. conference. I showed the first page of the assembly listing of a MTE-infected 
  71. file, and within about a second, Vesselin Bontchev came with the correct 
  72. answer.
  73.  
  74. How is this possible?
  75.  
  76. Artificial intelligence
  77.  
  78. Some of the many differences between viruses and normal programs is that 
  79. normal programs typically start searching the command line for options, 
  80. clearing the screen, etc.  Viruses however never search for command line 
  81. options or clear the screen.  Instead they start with a search for other 
  82. executable files, by writing to the disk, or by decrypting themselves.
  83.  
  84. A researcher who has loaded the suspected file into a debugger can notice this 
  85. difference in only a glance.  Heuristic scanning is an attempt to put this 
  86. experience and knowledge into a virus scanner.  
  87.  
  88. The word 'heuristic' means (according to a Dutch dictionary) 'the self 
  89. finding' and 'the knowledge to determine something in a methodic way'.
  90.  
  91. A heuristic scanner is a type of automatic debugger or disassembler. The 
  92. instructions are disassembled and their purposes are determined. If a program 
  93. starts with the sequence
  94.         MOV AH,5
  95.         INT 13h
  96. which is a disk format instruction for the BIOS, this is highly
  97. suspected, especially if the program does not process any command line options 
  98. or interact with the user.
  99.  
  100.  
  101.  
  102. Suspected abilities
  103.  
  104. In reality, heuristics is much more complicated.  The heuristic scanners that 
  105. I am familiar with are able to detect suspicious instruction sequences, like 
  106. the ability to format a disk, the ability to search for other executables, the 
  107. ability to remain resident in memory, the ability to issue non-standard or 
  108. undocumented system calls, etc.  Each of these abilities has a value assigned 
  109. to it. The values assigned to the various
  110. suspicious abilities are dependant on various fact. A disk format
  111. routine doesn't appear in many normal programs, but often in viruses. So it 
  112. gets a high value. The abilities to remain resident in memory are found in 
  113. many normal programs, so despite of the fact that they also appear in many 
  114. viruses it doesn't get a high value. If the total of the values for one 
  115. program exceeds a predefined treshold, the scanner yells "Virus!".  A single 
  116. suspected ability is never enough to trigger the alarm.  It is always the 
  117. combination of the suspected abilities which
  118. convince the scanner that the file is a virus.
  119.  
  120. Heuristic flags
  121.  
  122. Some scanners set a flag for each suspected ability which has been found in 
  123. the file being analyzed.  This makes it easier to explain to the user what has 
  124. been found.
  125.  
  126. TbScan for instance recognizes many suspected instruction sequences. Every 
  127. suspected instruction sequence has a flag assigned to it:
  128.  
  129. Flag  Description
  130. ----  -----------
  131. F   = Suspicious file access.  Might be able to infect a file.
  132. R   = Relocator. Program code will be relocated in a suspicious way.
  133. A   = Suspicious Memory Allocation.  The program uses a non-standard                 
  134.       way to search for, and/or allocate memory.
  135. N   = Wrong name extension.  Extension conflicts with program structure.
  136. S   = Contains a routine to search for executable (.COM or .EXE) files.
  137. #   = Found an instruction decryption routine.  This is common
  138.       for viruses but also for some protected software.
  139. E   = Flexible Entry-point.  The code seems to be designed to be         
  140.       linked on any location within an executable file.  Common for 
  141.       viruses.
  142. L   = The program traps the loading of software.  Might be a
  143.       virus that intercepts program load to infect the software.
  144. D   = Disk write access.  The program writes to disk without using 
  145.       DOS.
  146. M   = Memory resident code.  This program is designed to stay in         
  147.       memory.
  148.  
  149.  
  150. !   = Invalid opcode (non-8088 instructions) or out-of-range             
  151.       branch.
  152. T   = Incorrect timestamp. Some viruses use this to mark                
  153.       infected files.
  154. J   = Suspicious jump construct.  Entry point via chained or             
  155.       indirect jumps.  This is unusual for normal software but common 
  156.       for viruses.
  157. ?   = Inconsistent exe-header. Might be a virus but can also be a bug.
  158. G   = Garbage instructions.  Contains code that seems to have no         
  159.       purpose other than encryption or avoiding recognition by virus 
  160.       scanners.
  161. U   = Undocumented interrupt/DOS call.  The program might be just        
  162.       tricky but can also be a virus using a non-standard way to detect 
  163.       itself.
  164. Z   = EXE/COM determination.  The program tries to check whether a 
  165.       file is a COM or EXE file.  Viruses need to do this to infect a 
  166.       program.
  167. O   = Found code that can be used to overwrite/move a program in memory.
  168. B   = Back to entry point.  Contains code to re-start the program after 
  169.       modifications at the entry-point are made. Very usual for viruses.
  170. K   = Unusual stack. The program has a suspicious stack or an odd 
  171.       stack.
  172.  
  173. TbScan would for instance output the following flags:
  174.      Virus                      Heuristic flags
  175.      -----                      ---------------
  176.      Jerusalem/PLO:             FRLMUZ
  177.      Backfont:                  FRALDMUZK
  178.      Minsk_Ghost:               FELDTGUZB
  179.      Murphy:                    FSLDMTUZO
  180.      Ninja:                     FEDMTUZOBK
  181.      Tolbuhin:                  ASEDMUOB
  182.      Yankee_Doodle:             FN#ELMUZB
  183.  
  184. The more flags that are triggered by a file, the more likely it is that the 
  185. file is infected by a virus.  Normal programs rarely trigger even one flag, 
  186. while at least two flags are required to trigger the alarm.  To make it more 
  187. complicated, not all flags carry the same 'weight'.
  188.  
  189. False positives
  190. ---------------
  191.  
  192. Just like all other generic detection techniques, heuristic scanners sometimes 
  193. blame innocent programs for being contaminated by a virus. This is called a 
  194. "False Positive" or "False Alarm".
  195.  
  196.  
  197.  
  198.  
  199.  
  200. The reason for this is simple. Some programs happen to have several suspected 
  201. abilities.  For instance, the LOADHI.COM file of QEMM has the following 
  202. suspected abilities (according to an older, yet obsolete version of TbScan):
  203.  
  204. A   = Suspicious Memory Allocation.  The program uses a                  
  205.       non-standard way to search for, and/or allocate memory.
  206. M   = Memory resident code.  This program may be a TSR but also a virus.
  207. U   = Undocumented interrupt/DOS call.  The program might be just tricky 
  208.       but can also be a virus using a non-standard way to detect itself.
  209. Z   = EXE/COM determination.  The program tries to check whether a 
  210.       file is a COM or EXE file.  Viruses need to do this to infect a 
  211.       program.
  212. O   = Found code that can be used to overwrite/move a program in         
  213.       memory.
  214.  
  215. All of these abilities are available in LoadHi, and the flags are enough to 
  216. trigger the heuristic alarm.  As LoadHi is supposed to allocate upper memory, 
  217. load resident programs in memory, move them to upper memory, etc., all these 
  218. suspected abilities can easily be explained and verified.  However, the 
  219. scanner is not able to know the intended purpose of the program, and as most 
  220. of these suspected abilities are often found in viruses, it just describes the 
  221. LoadHi program as "a possible virus".
  222.  
  223. How serious is the issue of false alarms?
  224.  
  225. If a heuristic scanner pops up with a message saying: "This program is able to 
  226. format a disk and it stays resident in memory", and the program is a resident 
  227. disk format utility, is this really a false alarm? Actually, the scanner is 
  228. right. A resident format utility obviously contains code to format a disk, and 
  229. it contains code to stay resident in memory. The heuristic scanner is therfore 
  230. completely right! You could name it a false suspicion, but not a false 
  231. positive. The only problem here is that the scanner says that it might be a 
  232. virus. If you think the
  233. scanner tells you it has found a virus, it turns out to be a false alarm. 
  234. However, if you take this information as is, saying 'ok, the facts you 
  235. reported are true for this program, I can verify this so it is not a virus', I 
  236. wouldn't count it as a false alarm. The scanner just tells the truth. The main 
  237. problem here is the person who has to make decisions with the information 
  238. supplied by the scanner. If it is a novice user, it is a problem. More about 
  239. that later.
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250. Avoiding false positives
  251.  
  252. Whether we call it a false positive or a false suspicion doesn't matter.
  253. We do not like the scanner to yell every time we scan. So we need to avoid 
  254. this situation. How do we achieve this?
  255.  
  256. 1)  Definition of (combinations of) suspicious abilities
  257.     The scanner does not issue an alarm unless at least two            
  258.     separate suspected program abilities have been found.
  259. 2)  Recognition of common program codes
  260.     Some known compiler codes or run time compression or               
  261.     decryption routines can cause false alarms. These specific compression 
  262.     or decryption codes can be recognized by the scanner to avoid false 
  263.     alarms.
  264. 3)  Recognition of specific programs
  265.     Some programs which normally cause a problem (like the LoadHi
  266.     program used in the example) can be recognized by the              
  267.     heuristic scanner.
  268. 4)  Assumption that the machine is initially not infected
  269.     Some heuristic scanners have a 'learn' mode, i.e. they are able to 
  270.     learn that a file causing a false alarm is not a virus.
  271.  
  272. Dealing with false positives
  273.  
  274. Some false positives are not easily avoided.  So, the user has to deal with a 
  275. certain amount of false alarms, and must make the final decision as to whether 
  276. a file is infected or not.
  277.  
  278. Ok, you may say, how do we know whether a suspicious program is a virus or 
  279. innocent. There is no way to find out, that is what most people believe. 
  280. Actually there is a way to find out, but this depends on the scanner.
  281.  
  282. The scanner has to explain to the user the reasons why the program is suspect. 
  283. 'This file might contain a virus' actually doesn't say much to the user. It is 
  284. always right. Every file MIGHT contain a virus, but MAY also be clean. We 
  285. actually use a scanner to find out! What is the user supposed to do with this 
  286. information?
  287.  
  288. However, if the scanner says that some program is able to remain resident in 
  289. memory and able to format a disk, the user can more easily figure out what is 
  290. going on.  If a word processor gives such an alarm, it is extremely likely 
  291. that the program carries a virus, because word processors generally are not 
  292. able to format disks and remain resident in memory.  However, if the suspected 
  293. file is a resident disk formatting utility, then all of the suspected 
  294. abilities can be explained by the intended purpose of the program.
  295.  
  296.  
  297.  
  298.  
  299.         Reason for suspicion: memory resident and disk formatting
  300.         abilities.
  301.  
  302.         Program                         Probably
  303.         ------------------------        --------
  304.         Resident disk formatter         No Virus (innocent)
  305.         Word processor                  Malicious (virus)
  306.  
  307.         Both programs cause the same heuristic alarms, but the
  308.         final conclusion is different.
  309.  
  310.  
  311. Naturally, it requires an advanced user to draw a conclusion for the question 
  312. "infected or not?".  However, my opinion is that judging the results of any 
  313. scanner (also conventional scanners) is a task for an advanced user only.  If 
  314. the scanner has a 'learn' mode, i.e. is able to remember which programs cause 
  315. a false alarm, the initial scan should be performed by an advanced user, but 
  316. the subsequent scans (when the possible false positives have been eliminated) 
  317. can be performed by a novice user.  This is already common practice in most 
  318. organizations.
  319.  
  320. Anyway, it isn't as bad as it seems, as all other detection methods (including 
  321. signature scanning) are known to cause some false alarms as well.  Heuristics 
  322. however has the advantage that it is able to supply you with enough 
  323. information to establish for yourself whether a suspected file is likely a 
  324. virus or not.
  325.  
  326.  
  327. How does heuristic scanning perform?
  328. ------------------------------------
  329.  
  330. Heuristics is a relatively new technique and still under development. It is 
  331. however gaining importance rapidly.  This is not surprising as heuristic 
  332. scanners are able to detect over 90% of the viruses without using any 
  333. predefined information like signatures or checksum values. The amount of false 
  334. positives depends on the scanner, but a figure as low as 0.1% can be reached 
  335. easily.
  336.  
  337. TbScan 6.02 used on the large virus collection of Vesselin Bontchev showed
  338. the following results:
  339.  
  340.         Scanning        7210   detection
  341.         method          files  percentage
  342.         -------------   -----  ----------
  343.         Conventional    7056    97.86%
  344.         Heuristics      6465    89.67%
  345.  
  346.  
  347.  
  348.  
  349. A false positive test however is more difficult to perform so there are no 
  350. independent results available.
  351.  
  352.  
  353. Combination of conventional and heuristic scanning
  354. --------------------------------------------------
  355.  
  356. Some people think heuristic scanning is a replacement for conventional 
  357. scanning.  In my opinion it is not.  Heuristic scanning serves a very useful 
  358. purpose when used in combination with conventional scanning.  The results of 
  359. both scanning methods can be validated by each other, thereby reducing false 
  360. positives and also false negatives.
  361.  
  362.         Combined result of analysis:
  363.         Heuristic   Conventional        Probability
  364.         clean        clean              very probably clean
  365.         clean        virus              might be a false                     
  366.                     positive
  367.         virus        clean              might be a false                 
  368.                         negative
  369.         virus        virus              very probably infected
  370.  
  371.         fn: 10%      fn: 1%              combined false negatives: 0.1%
  372.         fp: 0.1%     fp: 0.001%          combined false positives: 0.00001%
  373.  
  374. The chances of both the heuristic scanner and the conventional
  375. scanner failing is minimal.  If both scanning methods have the same results, 
  376. the result is almost certain.  In the few cases that the results don't agree 
  377. with each other additional analysis is required. TbScan 6.02 used on the large 
  378. virus collection of Vesselin Bontchev showed the following results:
  379.  
  380.         Scanning        7210   detection
  381.         method          files  percentage
  382.         -------------   -----  ----------
  383.         Conventional    7056    97.86%
  384.         Heuristics      6465    89.67%
  385.         Combined        7194    99.78%
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400. What can be expected from it in the future?
  401. -------------------------------------------
  402.  
  403. The development continues
  404.  
  405. Most anti-virus developers still do not supply a ready-to-use heuristic 
  406. analyzer.  Those who have heuristics already available are still improving it. 
  407.  It is however unlikely that the detection rate will ever reach 100% without a 
  408. certain amount of false positives.  On the other hand it is unlikely that the 
  409. amount of false positives will ever reach 0%.
  410.  
  411. Maybe you wonder why it isn't possible to achieve 100% correct results. There 
  412. is a large grey area between viruses and non-viruses. Even for humans it is 
  413. hard to describe what a virus is or not, an often used definition of a 
  414. computer virus is this: "A virus is a program that is able to copy itself". 
  415. According to this definition the DiskCopy.Com program is a virus...
  416.  
  417.  
  418. Reaction of virus writers
  419.  
  420. An important issue is the effect on virus writers. It is likely
  421. that they will try to avoid detection by heuristic scanners.  Until now the 
  422. goal was to avoid detection by signature scanners, and this was very easy to 
  423. do, as it was sufficient to modify only a small part of an existing virus.  
  424. Teenagers with some basic understanding of programming could do so easily . 
  425. Avoiding heuristic scanners however requires a lot more knowledge, if even 
  426. possible at all.
  427.  
  428. Fortunately, this detection-avoiding method of programming makes
  429. detection by conventional anti-virus products easier because it
  430. means that the programmer can not use very tight and straight code. The virus 
  431. writer will be forced to write more complex viruses.
  432.  
  433.  
  434. The pro's and con's of heuristic scanning
  435. -----------------------------------------
  436. -   Advantages:
  437.         -   Can detect 'future' viruses
  438.         -   User is less dependant on product updates
  439. -   Disadvantages:
  440.         -   False positives are possible
  441.         -   Judgement of the result requires some basic knowledge
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451. Heuristic cleaning
  452. ==================
  453.  
  454. Before we can discuss heuristic cleaning, it is important to know how a virus 
  455. infects a program.
  456.  
  457. The basic principle is not difficult.  A virus - a program by itself - adds 
  458. itself to the end of the program.  The size of the program increases due to 
  459. this addition of the viral code.  Appending a virus program to another program 
  460. is however not enough, the virus code should also be executed.  To make this 
  461. happen, the virus overwrites the first bytes of the file with a 'jump' 
  462. instruction, which makes the processor jump to the viral code.  The virus now 
  463. gains control when the program is
  464. invoked, and it will finally pass control to the original program. Since the 
  465. first bytes of the file are overwritten by the jump instruction, the virus has 
  466. to 'repair' these bytes first.  After that the virus just jumps to the 
  467. beginning of the original program, and most often this program works as usual.
  468.  
  469.  
  470.     original program                      infected program
  471.  
  472.     +--------------+                      +--------------+
  473.     | p            |                 100: |jump          |
  474.     | r            |                      |to 2487       |
  475.     | o            |                      | o            |
  476.     | g            |                      | g            |
  477.     | r            |                      | r            |
  478.     | a            |                      | a            |
  479.     | m            |                      | m            |
  480.     |              |                      |              |
  481.     | c            |                      | c            |
  482.     | o            |                      | o            |
  483.     | d            |                      | d            |
  484.     | e            |                      | e            |
  485.     |              |                      |              |
  486.     +--------------+                      +--------------+
  487.                                     2487: |              |
  488.                                           |  VIRUS!    p |
  489.                                           |            r |
  490.                                           |jmp 100       |
  491.                                           +--------------+
  492.  
  493. To clean an infected program, it is of vital importance to restore the bytes 
  494. being overwritten by the jump to the virus code.  The virus has  to restore 
  495. these bytes also, so somewhere in this virus code these original bytes are 
  496. stored.  The cleaner searches for those bytes, puts  them back in their 
  497. original location, and truncates the file to the  original size.
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504. How does a conventional cleaner work?
  505.  
  506. A conventional cleaner has to know which virus to remove.  Suppose your system 
  507. is infected with the Jerusalem/PLO virus.  You invoke your cleaner and it 
  508. proceeds like this:
  509.  
  510. "Hey, this file is infected with the Jerusalem/PLO virus.  OK, this virus is 
  511. 1873 bytes in size, and it overwrites the first three bytes of the original 
  512. program with a jump to itself.  The original bytes are located at offset 483 
  513. in the viral code.  So, I have to take those bytes, copy them to the beginning 
  514. of the file, and I have to remove 1873 bytes of the file.  That's it!"
  515.  
  516.  
  517. Shortcomings of conventional cleaners
  518.  
  519. The cleaner has to know the virus it has to remove.  It is impossible to 
  520. remove an unknown virus.
  521.  
  522. The virus should be the same as the virus known to the cleaner.
  523. Imagine what whould happen if the virus used in the example was
  524. modified and now 1869 bytes in size instead of 1873... the cleaner would 
  525. remove too much!  This is not an exception, but it happens quite often since 
  526. there are so many mutants.  For instance, the Jerusalem/PLO family now 
  527. contains more than 100 mutants!
  528.  
  529. Many polymorphic viruses have variable lengths and maintain the
  530. original instructions encrypted.  Most conventional cleaners are
  531. therefore unable to clean MTE infected programs.
  532.  
  533.  
  534. The virus will remove itself before actual execution
  535.  
  536. We have seen above how a virus works. The interesting part is that when the 
  537. virus passes control to the original program it restores the original bytes at 
  538. the beginning of the program and jumps back to start the program. Every virus 
  539. is able to repair the original program in order to keep it functional (except 
  540. for overwriting viruses, but these can't be cleaned anyway).
  541.  
  542.  
  543. Let the virus do the dirty work
  544.  
  545. The idea is: why not let do the virus the dirty work?  The basic 
  546. principle of heuristic cleaning is simple.  The heuristic cleaner loads the 
  547. infected file and starts emulating the program code.  It uses a combination of 
  548. disassembly, emulation and sometimes execution to trace the flow of the virus, 
  549. and to emulate what the virus is normally doing. When the virus restores the 
  550. original instructions and jumps back to the original program code, the cleaner 
  551. stops the emulation process, and says 'thank you' to the virus for its 
  552. cooperation in restoring the original bytes.  The now repaired start of the 
  553. program is copied back to the program file on disk, and the part of the 
  554. program that gained 'execution' will be chopped off. An additional analysis 
  555. of the cleaned program file will be performed to be on the safe side.
  556.  
  557. Note that the cleaner is actually removing the unknown from the 
  558. unknown.  No predefined information about the virus or infected file is 
  559. necessary.
  560.  
  561. The process of emulation is just like hitchhiking. The emulator 
  562. convinces the viral code that it is actually executing, and it 
  563. hitchhikes to the point where the virus passes control to the original 
  564. program.
  565.  
  566. However, the actual process is very complicated. As with hitchhiking, many 
  567. things can go wrong:
  568.  
  569. -   Driver takes you to the wrong place
  570.     The virus does not intend to execute the original program, but it 
  571.     starts doing completely different things.  As the purpose of the 
  572.     emulation is to restore the original program, we never reach our goal.
  573.  
  574. -   Driver won't let you out If the viral code performs an endless 
  575.     loop, the origial program will never be restored so the cleaner might 
  576.     wait forever.
  577.  
  578. -   Driver leaves the car
  579.     A potentially dangerous situation is that the cleaner is too 
  580.     ambitious in its task to emulate everything, and that the virus 
  581.     gets control inside the emulated environment and finally escapes 
  582.     from it.
  583.  
  584. -   Driver hits a tree and kills you too
  585.     Many viruses are badly programmed.  If they crash inside the 
  586.     emulator, chances are that the emulator crashes too.
  587.  
  588. Heuristic cleaners are so complicated that there is only one available right 
  589. now.  However, the great potential of heuristic cleaning make it likely that 
  590. there will be more heuristic cleaners soon.
  591.  
  592.  
  593. The pro's and con's (of Hitchhiking)
  594.  
  595. -   Advantages:
  596.     -   no need to recognize mutants
  597.     -   no problems with polymorphic viruses
  598.     -   can clean 'future' viruses
  599.     -   user is less dependant on product updates
  600. -   Disadvantages:
  601.     -   No exact copy of the original
  602.     -   It cleans everything: even clean files!
  603.  
  604.  
  605. Being the author of the first heuristic cleaner I have received many reactions 
  606. to it.  Most people were surprised that my cleaner was able to remove MTE 
  607. viruses before my scanner was even able to recognize them.  This is especially 
  608. interesting as most anti-virus products are still not able to remove MTE 
  609. infections.
  610.  
  611. Of course everybody wants to know how many viruses can be removed this way.  I 
  612. can't show a reliable figure, as testing a cleaner is extremely tedious and 
  613. time consuming task.  However, a figure of 80% is a rough estimate.  Many 
  614. conventional cleaners do not even come close to this percentage.
  615.  
  616. What can be expected from it in the future?
  617.  
  618. Heuristic cleaning needs additional improvements.  Some viruses use 
  619. anti-debugger features that also make an emulator fail.  It is also still 
  620. possible that a virus detects that it is being emulated, and it can simply 
  621. refuse to cooperate.  The better the emulator performs, the less likely this 
  622. is.  Major improvements however are more likely to show up after multiple 
  623. heuristic cleaners are available and some competition occurs.
  624.  
  625. Frans Veldman,
  626. Author of Thunderbyte Anti-Virus
  627. Chief Executive of ESaSS B.V.
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.