home *** CD-ROM | disk | FTP | other *** search
/ HaCKeRz KrOnIcKLeZ 3 / HaCKeRz_KrOnIcKLeZ.iso / chibacity / trends.txt < prev    next >
Text File  |  1996-04-22  |  67KB  |  1,204 lines

  1.  
  2.                     Future Trends in Virus Writing
  3.  
  4.                 Vesselin Bontchev, research associate
  5.                Virus Test Center, University of Hamburg
  6.              Vogt-Koelln-Str. 30, 22527 Hamburg, Germany
  7.                bontchev@fbihh.informatik.uni-hamburg.de
  8.  
  9. The paper tries to summarize the possible prospective ideas that are
  10. likely to be used by the virus writers in the future and to suggest
  11. what kind of measures could be taken against them.
  12.  
  13. 1.  Introduction.
  14.  
  15. The last few years we have witnessed a lot of activities in the virus
  16. writing field.  Many new ideas have been invented and experimented
  17. with.  Some of them have proven to be very successful, others not so
  18. much, others have as of yet uncertain effect.  Some of them will be
  19. undoubtedly developed further and widely exploitedby the virus writers
  20. in the future .
  21.  
  22. In this paper we try to outline the ideas that seem to be prospective
  23. from the virus writing point of view and also those ideas which have
  24. not been tried yet but seem tempting.  We have no way to determine
  25. which ones will be actually used in the near future, therefore we must
  26. assume a worst-case scenario and get prepared against all of them -
  27. thus we shall try to list all of them here.  At the same time, we must
  28. be as terse as possible about the particular technical details that
  29. will permit implementing these ideas in order to limit the damage this
  30. material may have if it is used by the virus writers.
  31.  
  32. 2.  Technical Dangers.
  33.  
  34. 2.1.  Glut.
  35.  
  36. The main trend in virus writing that we have observed so far is the
  37. increasing production of new viruses.  There are more and more new
  38. viruses.  A glut of new viruses.  Statistically speaking, the curve of
  39. virus creation is no longer exponential but has begun to flatten.  The
  40. number of known viruses does not double every 9-10 months any more.
  41. This is not very reassuring, however, as there are still about 1,000
  42. new viruses created every year, that is - about 2-3 new viruses per
  43. day.
  44.  
  45. This has already created problems to the authors of scanning software.
  46. First of all, it is already impossible for a newcomer to start from
  47. scratch.  As of the date of this writing (April 1994) there are more
  48. than 4,300 different known viruses and their number increases
  49. literally every day.
  50.  
  51. Suppose somebody decides to enter the anti-virus business now.
  52. Regardless of what kind of anti-virus software he is going to push, it
  53. must include a known-virus scanner.  There are several reasons, which
  54. make this necessary.  First, the public is very acustomed to this kind
  55. of anti-virus program.  Second, you must ensure that a system is
  56. virus-free before installing any other kind of anti-virus software on
  57. it.  Third, all magazine reviewers are going to "test" only the
  58. scanner part of your product anyway - because it is the easiest one to
  59. test.
  60.  
  61. In order for a scanner to "score" well during the tests, it must be
  62. able to detect most of the known viruses.  Suppose it takes on average
  63. one hour to disassemble a virus, to understand it, to pick a good scan
  64. string for it, and to test that this scan string really detects all
  65. replicants of the virus and does not cause any false positives.  Then,
  66. in order to be able to handle 4,300 different viruses, one must spend
  67. 4,300 hours on them.  Assuming a 40-hour week, this is about 750 days,
  68. i.e.  more than two years!  And, during those two years, about 2,000
  69. new viruses are likely to appear...
  70.  
  71. Indeed, most anti-virus researchers work much harder - an 80-hour week
  72. is a rule, not an exception.  But nevertheless, the above calculation
  73. is an underestimation - many viruses take much more time to analyze
  74. and "defeat".  Some may take days, some - even months.  Some are even
  75. more difficult.  Two years after the infamous Mutating Engine (MtE)
  76. has appeared, the tests show that only a handful of scanners are able
  77. to detect it ([Bontchev93]).  And there are still many scanners which
  78. are unable to detect V2P6 - one of the first extremely polymorphic
  79. viruses.
  80.  
  81. We also should note that the ability to detect known viruses is not
  82. the only property that an author of a scanner must worry about.  There
  83. are such things as designing the proper user interface, doing the
  84. actual coding of the program (just a collection of scan strings is
  85. still not a scanner), writing the documentation, marketing the
  86. product, and so on.
  87.  
  88. All this makes the game almost impossible for the small companies.
  89. The big companies, on the other hand, are too clumsy and slow-reacting
  90. to be good players in the fast evolving anti-virus business.  Thus,
  91. the rules of the game make it almost insupportable for a newcomer.
  92.  
  93. However, it is also not so easy to keep up with the game.  Even those
  94. producers of anti-virus software who have been along since the
  95. beginning are facing serious problems.  With the increase of the
  96. amount of known viruses, it becomes more difficult to maintain a
  97. scanner.  If the scanner does not use one of the modern fast string
  98. search algorithms, it is going to become slower and slower when you
  99. add more scan strings to it.  Switching to a faster algorithm might
  100. not be so easy, because it often requires a total redesign of the
  101. scanner and the way data is represented in it.
  102.  
  103. But even if the scanner's speed succeeds in remaining constant when
  104. new scan strings are added to it, it is not so with the memory
  105. requirements.  All those new scan strings and new virus names have to
  106. be stored somewhere.  The fast scan algorithms are usually
  107. memory-hungry.  All these problems are particularly acute for the
  108. memory-resident scanners, where the memory usage consideration is at
  109. a premium.
  110.  
  111. One possible solution is to use optimized scan strings (i.e., a single
  112. scan string detects as many viruses as possible), short virus names,
  113. fuzzy detection (the viruses are not identified exactly), heuristic
  114. methods, etc.
  115.  
  116. But all of these are only temporary solutions.  The process of virus
  117. creation is not going to stop or even to slow down significantly in
  118. the forseeable future.  After a few years of activity, the virus
  119. writers usually grow up and switch to other activities - but many new
  120. "wannabe" virus writers (usually adolescent kids) pop up in their
  121. place.
  122.  
  123. Because of all this we are likely to see some producers of anti-virus
  124. software pulling out of the game.  The first major case - XTree,
  125. Certus, Fifth Generation Systems, Central Point Software - have
  126. already happened.
  127.  
  128. What can be done against this trend?  The governments of the countries
  129. where most viruses are created should be pressed to pass the
  130. appropriate legislative measures.  Unfortunately, in many cases this
  131. is very difficult - Russia and some countries from the former Eastern
  132. Block have a notorious history of disregard of the concept of
  133. intellectual property.  Other countries - the USA - consider virus
  134. writing as form of free speech and thus protected by the constitution.
  135. In general, the legislature is notoriously slow and backwards in
  136. dealing with computer-related problems.
  137.  
  138. From the technical point of view, the users must be educated to rely
  139. more on other anti-virus measures, not only on scanning.  More
  140. research should be done into the generic virus detection methods like
  141. heuristic analysis - they are still too unreliable.  The reviewers of
  142. anti-virus packages should be educated to pay more attention to the
  143. ability of the scanners to detect the viruses which are more likely to
  144. infect the users' computers and more attention to the non-scanning
  145. parts of the products.
  146.  
  147. 2.2.  Virus Authoring Packages.
  148.  
  149. We have already seen some of these - as simplistic as VCS, as
  150. sophisticated as the MtE, or as user-friendly as VCL.  Those are
  151. programs which help the user to create viruses - even if s/he does not
  152. know well assembly language, or some of the modern virus writing
  153. techniques.  Such packages lower significantly the barrier of initial
  154. knowledge that a "wannabe" virus writer must have.  They make the most
  155. sophisticated virus writing techniques available to the masses.
  156.  
  157. The currently existing virus authoring packages are far from perfect.
  158. VCS is able to create only a single virus and allows the user only to
  159. change the text message in it.  VCL is incredibly buggy.  MtE and TPE
  160. are too sophisticated to use for the average kid.  Even the PS-MPCs
  161. are not good enough.  This does not make them less dangerous, however.
  162.  
  163. First of all, they make the ability to write viruses available to more
  164. people.  This contributes to the glut problem mentioned above.
  165.  
  166. Second, many of them generate viruses in source - thus allowing the
  167. virus writers to learn some virus writing techniques, which they could
  168. use later in their own viruses.
  169.  
  170. Third, they are an initial, inciting tool, and as such are often used
  171. by newly formed virus writing groups to boost their efforts and to
  172. help them organizing themselves.  The ARCV virus writing group is a
  173. typical example for this - they used VCL and PS-MPC for some time
  174. before they learned how to create their own viruses.
  175.  
  176. Fourth, while at least in some countries outlawing virus writing seems
  177. possible, forbidding the virus authoring packages is much more
  178. difficult, because most of them are not malicious and even do not
  179. generate viruses directly.  Instead they generate viruses in source -
  180. the user is still required to take the deliberate action to assemble
  181. the source, in order to create a "live" virus.  By the way, this is
  182. yet another danger - a virus in source is much easier to modify and to
  183. spawn new variants.  It is often said that while a virus by itself is
  184. like a flying bullet, the source of this virus is like a loaded gun...
  185.  
  186. Fifth, it is much more difficult for a producer of a scanner to handle
  187. a virus authoring package.  While a single virus is relatively easy to
  188. disassemble and understand, such a package (usually written in a
  189. high-level language) presents much more difficulties...  And the
  190. anti-virus researcher must update his scanner in such a way, that all
  191. possible viruses that a particular package is able to generate are
  192. detected - even if the virus writers never bother to actually generate
  193. them.  This makes the glut problem even more acute...
  194.  
  195. Without doubt, we shall see a significant improvement in the virus
  196. authoring packages of the future.  They will be able to create viruses
  197. more easily, to create more different viruses, and more sophisticated
  198. viruses.  Just like the MtE and the TPE provide ready-to-link
  199. libraries of polymorphic routines, we shall see kits with libraries of
  200. stealth routines, tunnelling routines, infection strategy routines,
  201. damage routines, and so on.  (In fact, a package providing a
  202. tunnelling engine - KRTT - is already available.) All this - coupled
  203. with programs with nice user interfaces, which will make the creation
  204. of thousands of viruses with the selected capabilities easy.
  205. Thousands of different viruses!
  206.  
  207. Maybe in the near future we shall witness even the appearance of virus
  208. meta-authoring packages - programs able to create virus authoring
  209. packages.  This is a rather difficult thing to do and the final
  210. outcome for the virus writers is quite doubtful, but nevertheless we
  211. must consider such a possibility.
  212.  
  213. Another kind of attack, involving virus authoring packages, is to use
  214. them secretly.  Currently, the authors of such packages are so proud
  215. of their creations that they quickly make them available to their
  216. peers and virus writers, despite the fact that these packages are
  217. often horribly buggy and the viruses generated by them barely work.
  218. This way, the packages finally end in the hands of the anti-virus
  219. researchers, who disassemble them and eventually make their anti-virus
  220. programs able to handle all possible viruses that the particular
  221. package is able to generate.
  222.  
  223. However, let's suppose for a moment that somebody creates such a virus
  224. authoring package - but a well-made one, one which is able to generate
  225. many different and sophisticated viruses.  The viruses themselves do
  226. not need to be polymorphic - it is enough if there is a polymorphic
  227. routine in the package that is able to produce a different decryptor
  228. for each newly created virus.  Suppose also that the author of such
  229. package does not distribute it, but instead uses it secretly to create
  230. thousands of similar, but nevertheless different, machine-generated
  231. viruses.  The next step is obvious - one cannot hope to spread a few
  232. thousand viruses without being caught, so the way to cause the most
  233. damage is to send them to the anti-virus researchers [Skulason].  This
  234. will keep them busy for quite a while...  And since the generator that
  235. has been used to create those viruses will not be available, they will
  236. need to spend a lot more efforts to guess the particular polymorphic
  237. routine that has been used to generate the decryptors...
  238.  
  239. What can be done about this?  To prevent it - practically nothing.  We
  240. must consider the appropriate action that could diminish the damage.
  241. One possible reaction is simply to refuse to play the game and not to
  242. detect these viruses, or at least those of them that have never been
  243. found "in the wild".  Unfortunately, this is a rather unrealistic
  244. scenario.  The constant market competition between the producers of
  245. anti-virus packages, the "my package can detect more viruses than
  246. yours" game, the numbers game, the media hype - all this will cause
  247. some producer to begin to detect some of the viruses, then others will
  248. follow, and the race will be unstoppable.  This is at the expense of
  249. the users, of course.  They will have to pay for more updates, and to
  250. use bigger, slower, more memory-hungry scanners...
  251.  
  252. Another technical solution is to attack the polymorphism at its roots.
  253. Currently most scanners can "see" only the decryption routine of the
  254. polymorphic viruses.  This routine can be made rather short, generic,
  255. or modifiable - which makes the task of the scanners harder.  If the
  256. scanner could "peel" the encryption and look at the decrypted virus,
  257. it will be much easier to detect many similar viruses in a single
  258. step.
  259.  
  260. This can be achieved by several means.  One of them is to use fast,
  261. on-the-fly cryptanalysis of the virus body - a technique described by
  262. the Russian anti-virus researcher Eugene Kaspersky [Kaspersky].
  263. Another one is to use improved heuristic analysis techniques to detect
  264. decryption routines.  Probably the most effective one is to use some
  265. kind of emulator, which interprets the decryption routine until the
  266. virus body is decrypted, and then to apply some kind of usual scanning
  267. technique.
  268.  
  269. Only the future can tell which technique will be the most efficient
  270. one.  But the threat of the virus authoring packages is real, the
  271. outcome of it will be in the very near future, therefore it is urgent
  272. to do some research in these generic virus detection techniques.
  273.  
  274. 2.3.  Virus Mutators.
  275.  
  276. This threat is connected with the "glut", the "virus authoring
  277. packages", and the "polymorphism" problems, mentioned elsewhere in
  278. this paper.
  279.  
  280. The idea is to create a program that takes an existing program (e.g.,
  281. a known virus) and modifies it in such a way as to create an
  282. equivalent program.  For instance, adjacent instructions that are not
  283. position-dependent could be swapped, one instruction could be replaced
  284. by a sequence of instructions that do the same thing, or with a call
  285. to a subroutine that does the same thing, and so on.  Essentially, the
  286. MtE routine does exactly that to the decryptors it generates.  The
  287. trick is to apply this method to a whole program, e.g.  a virus.
  288.  
  289. It is extremely difficult to create such a "mutating" program, but it
  290. is a far from impossible task.  Therefore, in a worst-case scenario we
  291. should assume that sooner or later somebody will do it.
  292.  
  293. Once such a program is created, a virus writer could take it and
  294. "apply" it to a whole collection of known viruses.  The result will be
  295. that hundreds of new viruses will be generated.  They will be very
  296. similar to the original ones, many of them will probably be detected
  297. as variants by the existing scanners, but nevertheless there will be
  298. hundreds, if not thousands of new viruses.  And, applying the program
  299. many times, will result in many new thousands of new viruses being
  300. generated.  The viruses themselves will not be polymorphic - they will
  301. be just new, and it will be very easy to generate them.
  302.  
  303. Such a program (we shall call it a "virus mutator") will quickly make
  304. obsolete any known-virus scanners, virus classification schemes, or
  305. even virus authoring packages.  It will be the ultimate virus
  306. authoring package.  With it, everybody will be able to generate a
  307. practically unlimited number of new viruses, even without knowing what
  308. a virus is.  And there will be no way a scanner could cope with the
  309. output of such a program, because the problem of equivalent program
  310. transformation is known to be NP-complete.
  311.  
  312. What could be done about it?  Firstly, no such program exists yet,
  313. and it is extremely difficult to write one, so this is not an imminent
  314. danger.  Besides, most virus writers do not demonstrate any
  315. significant knowledge in theory of algorithms.  Secondly, one could
  316. use a known-virus scanner to detect at least those of the viruses
  317. generated by a virus mutator, that have been found in the wild.
  318. Third, some algorithms for automatic scan string capturing could be
  319. implemented, like the ones used in the anti-virus product Victor
  320. Charlie.  They work quite well for non-polymorphic viruses.  Finally,
  321. the users should be educated not to rely on known-virus scanning
  322. techniques alone.
  323.  
  324. 2.4.  Targetted Attacks.
  325.  
  326. Another trend that we can see nowadays is the creation of viruses
  327. designed to target particular anti-virus products.  The more popular
  328. the anti-virus product is, the more likely that it will be attacked.
  329.  
  330. The attacks can range from benign ones - just avoiding infecting a
  331. program known to perform some kind of self-checking - to sophisticated
  332. ones, designed to fool the user that the protection is still in place
  333. and working, while actually disabling it.
  334.  
  335. Just a few examples.  There are already many viruses which avoid
  336. infecting programs with names beginning with "SC" or something like
  337. that.  The Tequila virus removes the checksums that the program
  338. ViruScan (from McAfee) adds to the files (when used with the /AV
  339. option).  The Peach virus successfully attacks the integrity checking
  340. in Central Point Anti-Virus by simply deleting the databases of
  341. checksums that the product creates.  The Groove virus does the same,
  342. but targets several anti-virus products known to use integrity
  343. checking, not only a single one.  The Tremor virus successfully
  344. disables the anti-virus protection supplied with MS-DOS 6.0.  The full
  345. list is much longer.
  346.  
  347. We must notice that the design of many of the existing anti-virus
  348. products is rather sloppy and does not offer any serious defense even
  349. against simple attacks.  Other, much more sophisticated forms of
  350. attacks are possible, especially against integrity checking software
  351. (see [Bontchev92]), and the producers of such products must finally
  352. take the appropriate steps to improve their products.  This is
  353. difficult, but by no means impossible, and the reference mentioned
  354. above provides advice in this aspect.
  355.  
  356. 2.5.  Polymorphism.
  357.  
  358. We have already briefly mentioned this when discussing "glut" and the
  359. "virus authoring packages" problems above.  There are "easy" to handle
  360. viruses and "difficult" to handle viruses - from the point of view of
  361. the developer of a scanner.  The polymorphic viruses are in the class
  362. of the most difficult ones.
  363.  
  364. Those are viruses which change their appearence each time they infect
  365. a new object.  Usually, this is achieved by encrypting the virus body
  366. with a different key each time, and then prepending a small decryption
  367. routine which gets executed at run time.  The fact that the routine is
  368. small, makes scanning difficult enough as they they could cause false
  369. positives.  Even worse, the sophisticated polymorphic viruses use
  370. different decryption routines each time, usually by slightly varying
  371. the algorithm, or the registers used, or by inserting "do-nothing"
  372. instructions between the ones that actually perform the decryption
  373. [Solomon92].  Some of the most sophisticated and polymorphic viruses
  374. are the V2Px family and the MtE- and TPE-based viruses.  Most of the
  375. currently existing scanners are still unable to detect them reliably.
  376.  
  377. All these problems are well known to the virus writers.  Their
  378. reasoning is obvious - most people use scanners for virus protection,
  379. the polymorphic viruses are the most difficult ones for the scanners,
  380. so let's create more polymorphic viruses.
  381.  
  382. Fortunately, the design and the implementation of a well-made highly
  383. polymorphic virus is not a trivial task.  But the existence of virus
  384. authoring tools like MtE and TPE makes it much easier and more
  385. available even to the unexperienced virus writers.  Therefore, we are
  386. going to see much more polymorphic viruses in the future.
  387.  
  388. What can be done about it?  The users must be educated not to rely on
  389. scanners alone - even the most polymorphic virus is easy to detect
  390. with an integrity checker.  Of course, there are ways to attack the
  391. integrity checkers too, so the users must build a multi-level
  392. anti-virus defense.  Unfortunately, many of them still don't know
  393. exactly what a virus is, let alone how to build a sound anti-virus
  394. defense.  Hence the need for more user education about viruses and
  395. computer security in general.
  396.  
  397. Some technical ways to defeat polymorphism have been already mentioned
  398. in the section about the virus authoring packages.
  399.  
  400. 2.6.  False Positives.
  401.  
  402. With the existence of so many viruses, it might seem easier to detect
  403. the legitimate programs than the malicious ones.  From time to time
  404. scanners detect one of the scan strings they are using for some
  405. viruses in a perfectly legitimate program and announce it to be a
  406. virus.  This is called a false positive alert or simply a false
  407. positive.
  408.  
  409. False positives are usually very annoying both to the user and the
  410. producer of anti-virus software.  The user gets scared that his/her
  411. computer is infected.  Sometimes the effects of such a scare can be
  412. disastrous - users in panic are known to low-level format their disks
  413. and lose data that is worth months of work.  Other effects of false
  414. positive alerts are discussed in [Solomon93].
  415.  
  416. On the other hand, the producers of the scanner that has caused the
  417. false positive must react quickly and this often can be very costly.
  418. They need to inform urgently the users of their product about the
  419. false positive, to correct the scan string that causes it, to
  420. distribute updates (often at their own costs), and so on.  Failing to
  421. do so may have unpleasant consequences for the anti-virus producer as
  422. the company that markets the program which is incorrectly accused to
  423. contain a virus could and sometimes does seek reparations, as in the
  424. case of Imageline vs.  McAfee Associates.  (This particular case has
  425. been settled out of the court.)
  426.  
  427. As the number of viruses continues to increase, we shall see more
  428. cases of false positives and maybe some court cases related to them.
  429. Regardless of the outcome of these court cases, the users are those
  430. who are likely to lose.  If the court rules that the anti-virus
  431. producer whose product is causing the false positive owes reparations
  432. to the company whose product is accused of containing a virus, then we
  433. could see cases in which companies deliberately create products that
  434. are likely to be flagged incorrectly as viruses - in order to get
  435. reparations from the anti-virus producer.  As a defense, some
  436. anti-virus producers may decide not to detect some viruses, instead of
  437. running the risk to be sued for causing a false positive.  As a
  438. result, either the users will be less protected, or the costs will be
  439. laden on them.
  440.  
  441. If the courts decide the opposite - that the anti-virus producer does
  442. not have any responsablity to provide a product that does not cause
  443. false positives, then this could reflect in the worsening of the
  444. quality of these products.  Hence, the user is likely to lose again.
  445.  
  446. The virus writers don't make the game easier.  One of the Gotcha
  447. viruses deliberately carries some scan strings of other viruses, used
  448. in a popular scanning product.  In this case, the purpose is to cause
  449. misidentification, but a next step could be to insert these scan
  450. strings in legitimate programs (without actually infecting them).
  451.  
  452. What are the possible defenses?  One possibility is to carefully
  453. select the scan strings used in a scanner, and to do a lot of testing
  454. and quality control before releasing the product.  However, this is
  455. often too expensive and time-consuming.  The fact that a scanner must
  456. be updated often, in order to keep up with the new viruses does not
  457. make the things easier.
  458.  
  459. Another, much better defense, is to use exact virus identification.
  460. This means that the scanner carries some kind of virus map - a list of
  461. the constant areas of code in the virus and their checksums.  When the
  462. virus is detected, it is matched against this map and the program is
  463. declared as infected only if an exact match is found.  This rules out
  464. the possibility of a false positive.  Unfortunately, it also makes
  465. the development of the scanner much more expensive and time consuming.
  466. It also means that even a single-bit change in the virus is likely to
  467. leave it undetected - because no match will be found.  Therefore, this
  468. technique has to be combined in some reasonable way with the
  469. conventional scan string technique.
  470.  
  471. 2.7.  LAN-aware Viruses.
  472.  
  473. Many of the currently existing viruses simply crash when executed on a
  474. computer with a LAN shell loaded.  There are also, however, many that
  475. behave well enough and are able to successfully run and infect.  If
  476. the security settings of the LAN allow them to modify the files, of
  477. course.  At last, there are about a dozen (actually - variants of two
  478. main families), which are LAN-aware.  Currently, this awareness
  479. consists in monitoring some of the undocumented interrupts used in
  480. Novell NetWare and using them to steal passwords that are sent in
  481. unencrypted packets.  This is, however, still too primitive - we must
  482. expect significant sophistication in this area in the future.
  483.  
  484. The LAN hackers have discovered some very serious security holes in
  485. Novell NetWare.  They have created two programs that demonstrate these
  486. holes - KNOCK and HACK ([Gold]).
  487.  
  488. KNOCK works successfully on NetWare versions 3.10 and below.  It is
  489. able to log into any given account, without knowing the password for
  490. this account, exploiting a bug in the NetWare's encryption algorithm.
  491. Of course, the supervisor account represents the greatest danger,
  492. because it has the highest privileges.
  493.  
  494. It is relatively trivial to construct a virus which will be able to
  495. detect whether the NetWare shell is loaded (and which version of it),
  496. and which tries (in the background) to log in as a supervisor, using
  497. the KNOCK algorithm.  Indeed, Novell has distributed security patches
  498. that close this particular hole.  But, having in mind how widely used
  499. the software is, it is very likely that the number of machines without
  500. the security patch installed is relatively big.  Therefore, the
  501. population of computers on which such a virus will be able to breach
  502. the security will be big enough for the virus to survive.
  503.  
  504. HACK is another program which, reportedly, is able to log in from a
  505. workstation as any user (the supervisor is the most interesting one,
  506. of course), which is already logged in - from another workstation.
  507. The method used by HACK relies on spoofing IPX packets.  It is based
  508. on a very serious design bug in the NetWare, which can be fixed only
  509. with a complete re-design of the system or with full public-key based
  510. encryption of the packets that pass through the line.
  511.  
  512. Novell has solved the problem in version 4.x of NetWare.  Meanwhile,
  513. they have distributed security patches for the users of the older
  514. versions.  Unfortunately, those patches seem to cause additional
  515. problems when installed - they occasionally log out perfectly
  516. legitimate users.  Therefore, until version 4.x becomes widely used,
  517. this security hole is likely to be present on many networked
  518. computers.  It is only a question of time until the viruses begin to
  519. use it.  The main question is whether this time will be enough to
  520. replace the old versions of NetWare.
  521.  
  522. Another LAN-related virus problem has nothing to do with bugs and
  523. security holes and is connected to the ability of the viruses to
  524. spread transitively.  Most LAN administrators are reasonable enough to
  525. set the protection settings in the directories that contain the
  526. executable files used by everybody in such a way, that the users are
  527. able only to list, read, and execute the files.  However, viruses
  528. don't need to have direct access to the files in order to infect them.
  529. All they need is to have access to the files of somebody who has
  530. access to the protected files, or to somebody who has access to the
  531. files of somebody who has access to the protected files, or...  In
  532. short, there must be a transitive path of information flow between
  533. somebody who has access to the protected files (at least the
  534. supervisor does) and some other, already infected account.
  535.  
  536. Additionally, viruses could use other LAN-oriented features.  For
  537. instance, if the virus has Create rights in a directory, it is
  538. possible to use a companion-type attack to infect the EXE files in it,
  539. even if the files themselves are write-protected [Cohen].  Next, if a
  540. user does not have Write rights to the files but does have the right
  541. to Modify the rights, a virus could use this to temporary grant itself
  542. Write rights, in order to infect the files.  It is important to note
  543. that a virus always runs with the effective rights of the user whose
  544. workstation is infected.  For this reason, the users with supervisor
  545. privileges are particularly vulnerable and dangerous.  Therefore, they
  546. should use extreme care when logging into their accounts with such
  547. privileges.
  548.  
  549. For some unknown reason, the virus writers are usually not very good
  550. at hacking.  Their knowledge about LANs and mainframes is not
  551. significant.  Therefore, it will probably pass a lot of time, until
  552. they begin to use the security holes mentioned above.  Nevertheless,
  553. we must be prepared for it.  LAN users must be aware of the security
  554. patches issued by their LAN software suppliers and must install them.
  555. We need more LAN-oriented anti-virus and general security products.
  556. We need products that can evaluate the security settings of a LAN and
  557. to suggest ways to improve the situation, display the possible routes
  558. of virus infection, and inform the LAN administrator about any
  559. security holes found in the system.
  560.  
  561. 2.8.  Viruses for Other Operating Systems and Computers.
  562.  
  563. Nowadays, the platform that is most attacked by viruses is the IBM PC
  564. compatible computer running MS-DOS.  Viruses for the Macintosh
  565. platform are very widespread too, but there are not very many of them
  566. and the existing anti-virus software is able to handle all of them
  567. properly.  We expect this situation to change in the future.
  568.  
  569. As alternative operating systems to MS-DOS become more widely used,
  570. viruses that attack them will appear.  We already have several
  571. Windows-specific and OS/2-specific viruses.  They are relatively
  572. simple, but much more sophisticated ones are possible.
  573.  
  574. The DR-DOS (and Novell DOS 7) operating system has begun to gain
  575. popularity.  The currently existing protections in it (passwords) are
  576. trivial to bypass by a knowledgeable attacker, but they are able to
  577. stop most of the currently existing viruses.  Nevertheless, we expect
  578. to see viruses in the future that will be able to detect this
  579. operating system and to modify, disable, bypass, or even use its
  580. security features.
  581.  
  582. The successful discovery and prosecution of several Macintosh virus
  583. writers has discouraged those who were seeking fame in this field.
  584. Macintosh computers are also relatively expensive and those people who
  585. have afforded one are usually using it for work and not for hacking.
  586. The knowledge of low-level tricks about this computer is not as much
  587. widespread among the Mac users, as it is among the MS-DOS users.
  588.  
  589. Nevertheless, the prices are dropping down and more and more users are
  590. able to afford a Mac or a Unix box.  Many of the tricks used in the
  591. MS-DOS virus world are directly applicable there, especially
  592. tunnelling, virus authoring packages, and polymorphism.  The last two
  593. are even easier than in the MS-DOS environment - because the MacOS
  594. provides a much more user-friendly way to create nice user interfaces
  595. and because the 68x00 CPU has a much more orthogonal set of
  596. instructions than the 80x86.  Several virus writing groups, currently
  597. active in the MS-DOS world, have expressed their intention to expand
  598. their activities to cover the Macintosh world as well.
  599.  
  600. Therefore, the producers of anti-virus software for non MS-DOS
  601. platforms should pay particular attention to the activities in "their"
  602. field.  Currently, the anti-virus programs used there are almost
  603. exclusively of the scanner type.  Their authors must be prepared for
  604. the same kind of anti-scanner attacks that are popular among the
  605. MS-DOS viruses and consider the development and usage of other kinds
  606. of anti-virus software.
  607.  
  608. 2.9.  Multi-Platform Viruses.
  609.  
  610. This problem is somehow related to the previous one, although we do
  611. not expect it to become a serious threat in the future.
  612.  
  613. The current viruses are limited to a particular platform.  There is no
  614. way for an MS-DOS virus to infect a Macintosh computer - unless the
  615. latter is running some kind of MS-DOS emulator.  And even then, the
  616. infection will be limited within the emulated environment.
  617.  
  618. It must not be necessarily so.  It is perfectly possible to write a
  619. virus that will be able to work on more than one kind of CPU.  In
  620. particular, a boot sector infector for both IBM PCs and Atari STs is
  621. particularly easy - because the two computers use almost the same file
  622. systems [Ferbrache].  A Mac-IBM infector is more difficult to write,
  623. but still perfectly possible.  One could even imagine a program that
  624. spreads like a worm between Internet-connected Unix machines.  Once it
  625. succeeds to install itself on a machine, it could use virus techniques
  626. specific to the particular hardware, in order to gain full control of
  627. the machine and spread further.
  628.  
  629. Nevertheless, we believe that the multi-platform viruses will not
  630. represent a considerable problem in the future.  It is much easier to
  631. write two viruses for two different platforms than a single virus
  632. that is able to spread on any of the two platforms.  In the same time,
  633. such multi-platform virus will not spread easily between the two
  634. platforms, because the software exchange between them is relatively
  635. low.
  636.  
  637. 3.  Dirty Tricks.
  638.  
  639. Above we presented some of the generally successful ideas in virus
  640. writing that will form the trends of the future.  Here we shall
  641. mention a few tricks discovered by the virus writers on the MS-DOS
  642. platform that seem to be successful and will be probably used more
  643. widely in the future.
  644.  
  645. 3.1.  No Clean Reboot.
  646.  
  647. This was first discovered by the author of the EXE_Bug virus
  648. [Davidson].  The idea consists of modifying the CMOS of the computer
  649. in such a way as to indicate that the first floppy disk drive is not
  650. present.  On some BIOSes this causes the computer to try to boot from
  651. the hard disk first.  This way the virus (which has infected the hard
  652. disk) gets loaded in memory, checks for the presence of a diskette in
  653. the floppy disk drive, loads its boot sector and transfers control to
  654. it.  From the point of view of the user, the process looks as if the
  655. computer has booted from a clean floppy.  Yet the virus is active in
  656. memory and since it is also stealth, it is relatively difficult to
  657. discover its presence on the hard disk.
  658.  
  659. Fortunately, this trick works on relatively few computers.  However,
  660. on those on which it does work, it represents a significant hassle to
  661. the user.  It also makes life difficult for the producers of
  662. anti-virus software - now the action "boot from a clean diskette" is
  663. no longer so easy to explain and perform.
  664.  
  665. And the trick can be extended further.  Many BIOSes have a special bit
  666. in the CMOS, the meaning of which is exactly "try to boot from the
  667. hard disk first".  If the virus is able to detect the computers with
  668. such BIOSes, it will be able to implement the trick described above in
  669. a much more elegant and portable way.  On the top of that, it could
  670. even install a password on the CMOS settings, so that even if the user
  671. happens to discover that something has gone wrong, s/he will not be
  672. able to correct the CMOS settings easily.  S/he will have to
  673. disconnect the CMOS battery or to use a special program to patch the
  674. CMOS directly.  The latter could be intercepted by a virus which
  675. constantly monitors the contents of the CMOS and restores it to a
  676. status that is favorable for the virus...
  677.  
  678. 3.2.  Hardware-level Stealth.
  679.  
  680. This is another new trick which was first implemented in the Russian
  681. virus Strange.  The virus intercepts the "device ready" interrupts
  682. issued by the hard disk controller after a hard disk access occurs
  683. (XTs) or when it is about to take place (ATs).  The virus then
  684. modifies the contents of the buffer that has been read (or
  685. respectively modifies the access request that is about to take place)
  686. in a way to conceal its presence.  Therefore, even if the anti-virus
  687. program has direct access to the INT 13h vector (via interrupt tracing
  688. or direct calls to the EPROM of the hard disk controller), the virus
  689. is still able to stealth the fact that it has infected the hard disk.
  690.  
  691. This one more time demonstrates how futile all anti-stealth techniques
  692. are and how important is for the user to boot from a clean diskette
  693. before attempting any virus hunting.  Unfortunately, as mentioned
  694. above, tricks like the one used by the EXE_Bug virus could make this
  695. rather difficult to achieve.
  696.  
  697. Because the idea seems successful, it will probably be widely adopted
  698. by the viruses of the future.  As measures against it, the users must
  699. be educated how to perform a clean reboot in a safe way (and why it is
  700. so important).  Also, the anti-virus programs must watch for viruses
  701. that have intercepted the "device ready" interrupts and to disconnect
  702. them, if possible.
  703.  
  704. 3.3.  Polymorphic Viruses, Using the Commander Bomber Infection
  705. Technique.
  706.  
  707. About two years ago, the Bulgarian virus writer, known under the
  708. handle Dark Avenger, created a virus, called Commander Bomber.  By
  709. itself, this fact is not so amazing - Dark Avenger is known to have
  710. created more than two dozens viruses.  However, the Bomber virus was
  711. different - it used a new infection technique.
  712.  
  713. The virus infects only COM files, but in a very special way.  It
  714. inserts its body at a random place in the file.  Then, it generates
  715. several small random pieces of code, which it puts in different places
  716. in the attacked file.  One of them is always at the beginning of the
  717. file.  Those pieces of code do nothing in particular - the
  718. instructions in them swap some values between some registers and
  719. transfer control to the next piece of code, until eventually the main
  720. virus body receives control.
  721.  
  722. The outcome of all this is that a scanner has no way to determine
  723. where exactly in the file the virus is.  All "smart" scanning
  724. techniques, like entry point tracing, top-and-tail scanning, etc.
  725. suddenly stop working.  The simplest way to detect the virus is to
  726. scan the whole file.
  727.  
  728. This is not a big problem with this particular virus, except that it
  729. slows down the scanning process.  Unfortunately, the next idea is
  730. obvious - to combine the infection technique of Commander Bomber with
  731. a polymorphic mechanism like the one used in the MtE.  Indeed, all
  732. current algorithms to detect the MtE-based viruses rely on the fact
  733. that it is relatively easy to find the entry point to the decryptor
  734. generated by the MtE.  If it is concealed in a way similar to the one
  735. used in Commander Bomber, the task suddenly becomes of an order of
  736. magnitude harder...
  737.  
  738. Probably the best counter-measure against such attack is to make the
  739. scanners contain some kind of CPU emulator.  This emulator will be
  740. able to interpret the beginning of the virus until it reaches the
  741. point at which the virus will have received control and decrypted
  742. itself.  This could also be used as a generic weapon against the
  743. polymorphic viruses, as mentioned elsewhere in this paper.
  744.  
  745. 3.4.  Slow Multi-Partite Stealth Polymorphic Viruses.
  746.  
  747. We have seen all kinds of clever ideas implemented in the currently
  748. existing viruses.  What has not been observed yet are viruses that
  749. cleverly combine all the clever ideas, in order to achieve as fast
  750. intra-computer spread as possible.
  751.  
  752. The fast infecting viruses try to achieve wide dissemination by
  753. infecting all accessible objects (e.g., files) in a system.  However,
  754. this also usually leads to the quick detection of the virus.  And once
  755. the virus is detected, it has almost no chance - the user could use a
  756. scanner to detect all infected objects, regardless how many they are,
  757. and to replace or disinfect them.  At the same time, viruses that
  758. infect only a single, rarely accessed object (e.g., the master boot
  759. sector) often remain undetected for a longer time and achieve a wider
  760. dissemination in the long run.  They are also very easy to remove, but
  761. as we have seen above, the same is true for the viruses which infect
  762. more than one object - once they are discovered, of course.  In the
  763. same time, viruses which infect only single objects, especially if
  764. those objects are known to modify themselves, are likely to remain
  765. undetected for much longer - even by an integrity checking based
  766. defense.
  767.  
  768. Such viruses, which infect only objects that are being modified by
  769. the user, are known as slow viruses.  While they are rather effective
  770. against integrity checking and monitoring programs, they also spread
  771. very slowly, so the probability for a user to get infected by one of
  772. them is quite low.  However, the slow infection strategy could be
  773. combined with other of the virus tricks that are known to be
  774. successful.
  775.  
  776. For instance, the virus could indeed infect only a single object on
  777. the attacked computer, but this object could be randomly selected from
  778. a wide range of candidates.  Some obvious candidates are the master
  779. boot sector, the DOS boot sector, the two DOS hidden files, the
  780. command interpreter, the device drivers, the CONFIG.SYS and
  781. AUTOEXEC.BAT files, and programs loaded during the startup process,
  782. etc.  Some of these programs are known to be self-modifiable (e.g.
  783. SETVER.EXE) and their modification by the virus is unlikely to raise
  784. the suspicion of the user.  At the same time, advanced methods for
  785. infection could be used - the way the StarShip virus infects the
  786. master boot sector, or the DOS file fragmentation attack
  787. ([Bontchev92]) are just two of the possible examples.
  788.  
  789. Once loaded in memory, the virus could use floppy disk boot simulation
  790. like the EXE_Bug virus, and hardware level stealth like the Strange
  791. virus - these attacks have been already explained above.  It could
  792. also continue to work as a slow virus - that is, to infect anything
  793. that is modified.  For instance, the files that are copied to a
  794. floppy, the files that are being archived ([Bontchev92]), and so on.
  795.  
  796. And "anything" above could really mean "anything executable" - the
  797. virus could be multi-partite and infect COM and EXE files, device
  798. drivers, OBJ files, libraries, boot sectors ([Bontchev92]).  The
  799. stealth capabilities of the virus would prevent the infection from
  800. being discovered easily on the machine where the virus is active.  At
  801. the same time, a user who gets a new, already infected file, will not
  802. know its original contents and thus will not be able to notice that
  803. the file is already infected.
  804.  
  805. Actually, the virus could be even polymorphic and apply MtE/TPE-level
  806. of polymorphism, in order to make its detection difficult by the
  807. scanners - even after the anti-virus researchers become aware of the
  808. existence of the virus.  In fact, the virus could also mutate very
  809. slowly.  That is, it could be able to potentially generate a huge
  810. amount of different variants, but generate a new variant only rarely.
  811. This would make more difficult the creation of a large set of
  812. different replicants and thus the testing of the quality of the
  813. scanners will be more troublesome.
  814.  
  815. As a measure against such viruses, the users should consider a
  816. multi-level defense strategy.  Neither a monitoring program nor a
  817. scanner, nor an integrity checker will be able to provide enough
  818. protection, if used alone.  The user should rely on a system that uses
  819. a combination of these methods, each of them implemented in a secure
  820. way.  The integrity of the startup procedure (CMOS, MBR, DBR, DOS
  821. files, device drivers, INSTALLed programs, command interpreter,
  822. programs loaded from AUTOEXEC.BAT) must be watched very carefully.
  823. The system must be scanned in advance (i.e., before the installation
  824. of the anti-virus package) for known viruses.  Each new software must
  825. be scanned for known viruses too, before any attempt is made to
  826. install it on the protected system.  Some kind of decoy launching
  827. system could be used in an attempt to catch the slow infectors.
  828. Anti-stealth techniques should be used whenever possible, but the
  829. users should be educated not to rely only on them and how to boot from
  830. a clean system, if a virus is suspected.
  831.  
  832. 3.5.  Viruses Written in High-Level Languages.
  833.  
  834. It is possible to use almost any computer language to write a virus,
  835. including the high-level ones like C, Pascal, BASIC, etc.  And indeed,
  836. these languages are sometimes used to create viruses.  These viruses
  837. are usually extremely primitive (of the overwriting type), although it
  838. is perfectly possible to write a full-featured virus in such a
  839. language (the Sentinel virus is an example of this).  However, while
  840. very unlikely to spread, these viruses are still a serious hassle for
  841. the producers of anti-virus programs of the scanning type.
  842.  
  843. The problem is connected with the "false positives" problem which we
  844. discussed above.  Since the largest part of a virus that is written in
  845. a high-level language consists of system libraries, it is extremely
  846. difficult to pick a characteristic scan string for it.  That is, a
  847. scan string that does not cause false positives.  And indeed, if the
  848. anti-virus researcher commits the mistake of selecting a scan string
  849. from a system library that can be found in the virus, his scanner is
  850. likely to "detect" the virus in any other program, written in the same
  851. high-level language and compiled with the same compiler (and
  852. containing the same library).  There have been several such cases
  853. already - for viruses like Kamikaze, Wonder, etc.
  854.  
  855. We already discussed the problems that a false positive could cause.
  856. Here, we would like only to emphasize that more high-level language
  857. viruses should be expected in the future.  They are significantly
  858. easier to write than the viruses written in assembly language - which
  859. means that more people have the knowledge to write them.  We don't
  860. think that such viruses will represent a major problem in the future -
  861. instead, the problems will be caused by the scanners with
  862. inappropriate scan strings for those viruses.
  863.  
  864. There are several ways to deal with this problem.  The first is simply
  865. not to try to detect these viruses - they are not a serious threat
  866. anyway.  Unfortunately, the numbers game and the competition ("my
  867. scanner detects more viruses than your scanner") force the anti-virus
  868. producers to include in their scanners the ability to detect even such
  869. viruses.  The other solution is to very carefully select the scan
  870. strings.  But this is already very difficult and there are some ways
  871. in which the virus author could make it even more difficult, e.g.  by
  872. using short and "ordinary" operators to write to the attacked files,
  873. for instance.  The third solution seems to be the most appropriate one
  874. - to perform exact identification of such viruses.
  875.  
  876. 4.  Social Dangers.
  877.  
  878. Above we discussed the major technical ideas that should be expected
  879. to be implemented in the viruses of the feature.  In the next few
  880. sections, we shall try to present some social actions that could
  881. result in the increased impact of the viruses to the users.
  882.  
  883. 4.1.  Anti-Anti-Virus Researchers Attacks.
  884.  
  885. We have already witnessed several personal attacks on well known
  886. anti-virus researchers.  Usually this consists of including some
  887. libelous or offensive messages in the viruses.  Unfortunately, there
  888. are many other ways to do it, and we should expect that they all will
  889. be used by the virus writers.
  890.  
  891. One way is to disseminate a well-prepared rumor, e.g.  that a
  892. particular version of a particular anti-virus product releases a
  893. virus, or does not always detect a particular widespread virus, or
  894. causes some damage.  Since the qualified testers of anti-virus
  895. programs are very few, and since many anti-virus programs do contain
  896. bugs, such rumor is relatively easy to prepare and difficult to
  897. disprove.
  898.  
  899. To combat this, a qualified body of testers of anti-virus products is
  900. needed, and possibly even an organization that provides some kind of
  901. external quality control and certification.
  902.  
  903. Another attack, which we can see even nowadays, is the constant
  904. trojanization of anti-virus programs (that is - the distribution of
  905. fake "new" versions, which contain a virus or perform some other
  906. damage).  Also, scanners are often "cracked" and the scan strings used
  907. by them are made public.  This presents a double danger - the virus
  908. writers can modify their viruses easily to avoid detection by a
  909. particular scanner, if they know the particular scan string, used to
  910. detect the virus.  Also, many producers of scanners do not feel
  911. particularly happy if the result of their hard work - the virus scan
  912. strings - are released to be used by their competitors.  Probably the
  913. scanner that is most attacked this way is ViruScan, produced by
  914. McAfee.
  915.  
  916. In order to thwart this threat, the producers of anti-virus software
  917. must provide some kind of authentication for their products.
  918. Especially for those that are distributed as shareware, because they
  919. are more prone to trojanization.  Some kind of scheme using public key
  920. cryptography seems to be the most appropriate method.
  921.  
  922. Finally, the virus authors could cause some trouble to the currently
  923. existing schemes for virus naming and classification.  Each of the
  924. currently existing schemes contains drawbacks that could be exploited
  925. by the virus writers.
  926.  
  927. For instance, the CARO naming scheme contains several rules stating
  928. how virus names should not be selected (e.g.  names of anti-virus
  929. researchers, offending words, geographic locations).  However, it is
  930. very difficult to select a name for a virus which does nothing but
  931. replicate.  If this virus additionally contains a single text word, it
  932. is very likely that this word will be selected as a name for the virus
  933. - because it is the most obvious choice.  Regardless what the naming
  934. rules are, people who discover the virus will almost certainly use the
  935. obvious name.
  936.  
  937. Furthermore, it is very difficult to classify a virus hidden behind a
  938. variable decryptor of a polymorphic scheme.  For instance, the Pogue
  939. virus is clearly a variant from the Gotcha family, but nevertheless it
  940. is classified as an MtE variant - because the MtE encryption "hides"
  941. the virus from most scanners and the decryptor is the only thing that
  942. can be "seen".  However, there are already at least two polymorphic
  943. engines available - MtE and TPE (the latter even exists in several
  944. closely related variants).  There will be certainly more of them in
  945. the future.  If somebody takes all the MtE based viruses and links
  946. them with TPE instead, this will cause a significant mess in the
  947. classification schemes.
  948.  
  949. In order to deal with this problem, the virus classification must be
  950. improved significantly.  It must be based entirely on the structure
  951. of the virus and not be related in any way with such concealing parts
  952. like the decryptor or the polymorphic engine.  Unfortunately, this
  953. also means that if a scanner wants to be compatible with such a
  954. classification scheme, it has to be able to peel the decryptor of the
  955. virus and reach the pure code.  Few scanners nowadays are able to
  956. achieve that, but as we are going to see more polymorphic viruses in
  957. the future, implementing means to "look" beyond the decryptor might be
  958. the only way the scanners must go anyway.
  959.  
  960. 4.2.  Wide Dissemination of Virus Information.
  961.  
  962. It all began with Ralf Burger's book about computer viruses, which
  963. published the source of several primitive viruses.  Todor Todorov's
  964. Virus eXchange BBS in Sofia, Bulgaria, was the next logical move.
  965. Nowadays we have dozens of such BBSes around the world.  Some of them
  966. are even connected in a FidoNet-based virus distribution network.  We
  967. also have Mark Ludwig's famous "Black Book" and even his virus writing
  968. quarterly magazine.  Several other electronic publications exist (like
  969. 40-Hex, Crypt Newsletter, NukE InfoJournal, etc.) which promote virus
  970. writing, contain detailed explanations about how to write different
  971. kinds of viruses and even ready-to-type virus sources or DEBUG
  972. scripts.
  973.  
  974. It is only a matter of time, and not a lot of time, until the virus
  975. writers begin to use the Internet to organize themselves, to
  976. distribute viruses, and knowledge about how to write them.  Virus
  977. distribution newsgroups based on the alt.* hierarchy and virus
  978. exchange anonymous ftp sites will appear soon.  Actually, it has
  979. already begun to happen - we are seeing the old virus exchange BBSes
  980. to organize themselves into virus distribution networks [Gordon].
  981.  
  982. All this will make the knowledge about how to write viruses even more
  983. popular and available.  Therefore, even more people will be tempted to
  984. write their own virus.  Also, criminals or disgruntled employees will
  985. have a ready source for viruses they would want to release in the
  986. world.
  987.  
  988. What can be done against this trend?  It will happen sooner or later,
  989. but we must do our best to delay it as much as possible.  Responsible
  990. system administrators must watch for the usage (and the misuse) of the
  991. anonymous ftp sites they are moderating.  They must refuse to carry
  992. and re-distribute any newsgroup used for virus distribution.  The
  993. appropriate Usenet authorities must be contacted in each case when
  994. network misuse is reported.
  995.  
  996. 4.3.  Pro-Virus Organizations.
  997.  
  998. There are already rather well organized groups of virus writers all
  999. over the world.  In some countries (e.g., the USA) any kind of
  1000. creativity and publishing is considered protected under the right of
  1001. free speech - even if this is the creation of a virus or the
  1002. publishing of a source code for a virus.  One could easily imagine
  1003. that in these countries we shall witness soon the creation of activist
  1004. groups, protecting the rights of the virus writers.
  1005.  
  1006. Even if such organizations do not create viruses themselves, they
  1007. could cause a lot of trouble, which will have as a net result a
  1008. negative effect to the users.  For instance, they could provide
  1009. financial and legal help when some virus writer is caught and is being
  1010. sued.  They could lobby against any laws that would receed the
  1011. "rights" of the virus writers.  They could even sue the anti-virus
  1012. researchers for copyright infringement - because they are including
  1013. part of other people's viruses (the scan strings) in their scanners -
  1014. without the permission of the authors of these viruses!  As the
  1015. English anti-virus expert Dr.  Alan Solomon often says, in the
  1016. computer virus world white is often black and black is often white.
  1017.  
  1018. The threat described above would seem funny, if it was not so serious.
  1019. Of course, the right of free speech is too precious to make it a
  1020. victim to any anti-virus laws.  Virus writing per se does not need to
  1021. be made illegal.  Instead, the laws should concentrate on the damage
  1022. caused by the virus.  A virus writer should not be held responsible -
  1023. unless his virus appears somewhere where it is not wanted.  But if it
  1024. does, then its creator must be prosecuted (if known, of course) - even
  1025. if he is not directly responsible for spreading the virus.  Of course,
  1026. the person who has spread it intentionally is even more guilty and
  1027. should be prosecuted more severely, but the original author should be
  1028. held responsible too - for letting his creation "escape".  Maybe
  1029. "criminal negligence" is the proper legal term here.
  1030.  
  1031. 4.4.  Viruses For Sale.
  1032.  
  1033. In many countries the intentional infection of somebody's machine
  1034. without the authorisation of the owner of the machine is a criminal
  1035. act.  However, providing a virus to somebody while informing him about
  1036. the fact that this is a virus is usually not considered illegal.  The
  1037. problems here are closely related to the free virus writing and virus
  1038. exchange mentioned above.  And, what is not illegal, should be
  1039. permitted, right?  So, why not the selling of viruses?
  1040.  
  1041. From the economical point of view, there is only one main question -
  1042. is there enough market for viruses?  Unfortunately, the answer to this
  1043. question is often "yes" [Solomon93a].  So, who needs to buy viruses?
  1044.  
  1045. It seems that the obvious answer would be criminals or disgruntled
  1046. employees, who need a virus to attack a particular system.  However,
  1047. they could easily obtain a virus for free from many of the existing
  1048. virus exchange BBSes.  Actually, such a virus exchange BBS even used
  1049. to be run by the US Government - the department of Treasury.
  1050.  
  1051. However, the contents of these BBSes is usually a horrible mess
  1052. ([Bontchev93a]).  They contain viruses, corrupted or partially
  1053. infected files, which somebody's scanner has declared to be viruses,
  1054. virus construction tools, trojan horses, virus sources, virus
  1055. disassemblies, raw outputs of a disassembler (usually Sourcer from V
  1056. Communications) when run on an infected file, virus-related electronic
  1057. newsletters, etc.  There are many duplicated files, different viruses
  1058. under one and the same name, one and the same viruses under different
  1059. names, non-working viruses, programs written with the intent to write
  1060. a virus, but so buggy that they could never replicate, etc.  Often
  1061. there are even perfectly legitimate programs like FORMAT, etc.
  1062.  
  1063. Very few virus collections are well-organized.  At the same time,
  1064. there are people, who feel to have the legitimate need for a
  1065. well-organized virus collection.  Those are companies who decide to
  1066. enter the anti-virus business.  For reasons explained elsewhere in
  1067. this paper, it is almost impossible for a new company to successfully
  1068. establish itself in this business.  But most people who are not well
  1069. enough aquainted with the virus situation, do not know this fact.  And
  1070. since it is almost impossible to get a large virus collection from the
  1071. self-respecting anti-virus researchers, newcomers in the anti-virus
  1072. business are often tempted to obtain the viruses they need for their
  1073. product via semi-legal means.  If somebody appears, providing a
  1074. well-organized (or even a not so well-organized) rich virus collection
  1075. for sale, it is quite probable that he will find customers.
  1076.  
  1077. Other prospective customers could be evaluators of anti-virus products
  1078. for the different computer magazines.  They often feel the need of a
  1079. large virus collection in order to verify the claims of the authors of
  1080. anti-virus products to detect "all known and unknown viruses".
  1081.  
  1082. In fact, there have been virus collections on sale before.  This will
  1083. probably happen again.  What can be done about it?
  1084.  
  1085. The main solution is human education and appropriate legislation.
  1086. People must know that the possession of a large virus collection does
  1087. not guarantee the creation of a successful anti-virus product.  Only
  1088. qualified and commercially unbiased anti-virus experts should be
  1089. consulted to evaluate the anti-virus software.  At last, people should
  1090. be aware that according to the laws of some countries (e.g., the UK),
  1091. selling viruses could be considered as an incitement to commit a crime
  1092. (i.e., to spread the virus) and is therefore illegal.  Perhaps more
  1093. countries should pass similar laws.
  1094.  
  1095. 4.5.  Viruses Used as Weapons.
  1096.  
  1097. Several countries are reportedly researching into the possibilities to
  1098. use viruses as a weapon against an enemy.  However, it is unlikely
  1099. that the outcome of such research will be positive - computer viruses
  1100. are too difficult to aim towards a particular target.  They could be
  1101. used much more successfully in a terrorist attack - when the attacker
  1102. does not know and does not care how much and which particular targets
  1103. will be hit.
  1104.  
  1105. The countries which are more vulnerable to this kind of attack are the
  1106. most developed ones - the ones which are widely relying on computers
  1107. in their economics.  A virus attack could be even more successful if
  1108. performed on a cluster of highly networked computers, especially if
  1109. the virus used knows and uses the security holes in the network to
  1110. spread itself faster.  Actually, this could be a combination of a worm
  1111. and a multi-partite (or multi-platform) virus.
  1112.  
  1113. Probably the widest set of computers networked together is the
  1114. Internet.  Many of the computers there are using similar operating
  1115. systems - usually a variation of Unix.  The particular implementations
  1116. often have widely known security holes and/or are maintained by people
  1117. who are new to the system administrator's job - or even people for
  1118. whom this is not their main job.  These people are mainly interested
  1119. in keeping the computer working - not in converting it into an
  1120. electronic variant of Fort Knox.  Hence, many of the computers on the
  1121. Internet are believed to be insecure and vulnerable to hacker attacks.
  1122.  
  1123. We have already witnessed several attacks on a net-wide basis.  The
  1124. most famous of them is probably the notorious Internet worm.  Others
  1125. include the WANK/OILZ worms, the Father Christmas worm, the CHRISTMA
  1126. EXEC chain letter and its variants, and so on.
  1127.  
  1128. Most computers on the Internet belong to educational institutions and
  1129. are not very tempting as victims of a terrorist virus attack.
  1130. However, more and more companies connect their computers to the
  1131. Internet too - in order to use its capabilities of electronic
  1132. conferencing, electronic mail, anonymous ftp, and so on.  Therefore,
  1133. the number of victims suitable for attack steadily increases.
  1134.  
  1135. In order to diminish the danger, all system administrators of the
  1136. machines that are attached to the Internet should be educated in
  1137. maintaining security of their sites to an acceptable level.  Whenever
  1138. possible, the process of enhancing the security should be automated.
  1139. Tools like Cops and Tripwire should be widely used.  Whenever
  1140. possible, encryption should be used to protect the communications
  1141. between the sites and public-key authentication should be used to
  1142. authenticate each site.  Kerberos is one of the most suitable tools
  1143. for this purpose, but due to some legal problems its full version is
  1144. not exportable outside the USA.
  1145.  
  1146. 5.  Conclusion.
  1147.  
  1148. The computer virus problem is not going to disappear soon.  It is
  1149. going to be with us in the years to come and it is going to become
  1150. even worse.  Those people who have accepted the duty to fight it
  1151. should carefully examine the possible methods of attack that are
  1152. likely to be used by the virus authors in the future and take some
  1153. steps to counter them.  Take them now, while there is still time.
  1154.  
  1155. References.
  1156.  
  1157. [Bontchev92]  Vesselin Bontchev, "Possible Virus Attacks Against
  1158.               Integrity Programs And How To Prevent Them", Proc.  2nd
  1159.               Int.  Virus Bulletin Conf., September 1992, pp.
  1160.               131-141.
  1161.  
  1162. [Bontchev93]  Vesselin Bontchev, "MtE detection test", Virus News
  1163.               International, January 1993, pp.  26-34.
  1164.  
  1165. [Bontchev93a] Vesselin Bontchev, "Analysis and Maintnance of a Clean
  1166.               Virus Library", Proc. 3rd Int. Virus Bulletin Conf.,
  1167.               September 1993, pp. 77-89.
  1168.  
  1169. [Cohen]       Dr. Frederick B. Cohen & Sanjay Mishra, "Some Initial
  1170.               Results from the QUT Virus Research Network", Proc.  2nd
  1171.               Int. Virus Bulletin Conf., September 1992, pp.  XV-XXV.
  1172.  
  1173. [Davidson]    Iolo Davidson, "The Death of the Clean Boot?", Virus
  1174.               News International, April 1993, pp.  50-52.
  1175.  
  1176. [Ferbrache]   David Ferbrache, "A Pathology of Computer Viruses",
  1177.               Springer-Verlag, 1991.
  1178.  
  1179. [Gold]        Steve Gold, "Novell NetWare Security Breach", Virus News
  1180.               International, November 1992, pp.  84-87.
  1181.  
  1182. [Gordon]      Sarah Gordon, "Tchnologically Enabled Crime:  Shifting
  1183.               Paradigms for the Year 2000'', Proc.  IFIP SEC'94,
  1184.               Curacao.
  1185.  
  1186. [Kaspersky]   Eugene Kaspersky, personal communication, based on a
  1187.               paper in print.
  1188.  
  1189. [Kaspersky93] Eugene Kaspersky & Vadim Bogdanov, "A New Way to Hide,
  1190.               Virus Bulletin", April 1993, pp. 12-13.
  1191.  
  1192. [Solomon92]   Alan Solomon, "Mechanisms of Stealth", Proc.  5th Int.
  1193.               Comp.  Virus and Sec.  Conf., New York, March 1992, pp.
  1194.               232-238.
  1195.  
  1196. [Solomon93]   Alan Solomon, "False Alarms", Virus News International,
  1197.               February 1993, pp.  50-52.
  1198.  
  1199. [Solomon93a]  Alan Solomon, "Viruses - Supply and Demand", Virus News
  1200.               International, April 1993, p. 47.
  1201.  
  1202. [Skulason]    Fridrik Skulason, "Virus Trends", Proc.  2nd Int.  Virus
  1203.               Bulletin Conf., September 1992.
  1204.