home *** CD-ROM | disk | FTP | other *** search
-
- *********************************************
- *** Reports collected and collated by ***
- *** PC-Virus Index ***
- *** with full acknowledgements ***
- *** to the authors ***
- *********************************************
-
-
- Report from Jim Bates - The Virus Information Service - October 1990
-
- === Whale Virus aka Mother Fish & Fish #9 ===
-
-
- Preliminary report on the WHALE virus...
-
- By far the largest virus that researchers have yet seen was recently
- uploaded to a bulletin board in the U.S. and comprises just under
- 10K of code. The virus has been called The WHALE since that is the
- "title" which appears within the code after the first level of code
- decryption has been executed. Disassembling this code has proven
- extremely time consuming and is still incomplete due to the
- pressures of other programming work on the various researchers
- currently working on it. I am indebted to Dr. Peter Lammer of
- SOPHOS and Morgan and Igor of MacAfee Associates for access to their
- work on this and the report which follows collates results from all
- these sources although any errors in analysis or interpretation are
- entirely mine. Before describing the code in such detail as we
- have, mention should be made of the "motherfish" message which was
- posted anonymously to VIRUS ECHO on FidoNet and reported in full in
- last months Virus Bulletin. There are several discrepancies in this
- message which might suggest that the sender was either not
- completely familiar with the code or he was spreading deliberate
- dis-information. Since more than half the virus code is concerned
- with confusing and misinforming anyone trying to disassemble it, I
- incline to the latter argument. The use of "motherfish" (which does
- not appear in the code) in preference to "whale" is strange, and the
- reference to the virus "learning" detection methods and being a
- "living, breathing entity" is fanciful in the extreme, and
- inaccurate. That "the virus cannot be detected by present methods"
- is hardly surprising since many newly discovered viruses make use of
- their authors proud new method of encryption/protection ideas. The
- use of the word "disavow" is interesting since text within the code
- suggests that the author comes from Hamburg where such a word seems
- unlikely to be common parlance. However, the suggestion that the
- code is modularly constructed seems accurate so unless this was a
- guess we must assume that the sender has SOME knowledge of the virus
- as a whole.
-
-
- Heavyweight Confusion Coding
-
- After self-encrypting and "stealth" viruses, a new term has been
- coined by a member of the Computer Crime Unit at New Scotland Yard.
- "Armoured" virus code describes the deliberate disinformation and
- confusion techniques noted in FISH6 and WHALE. It is certainly
- appropriate in the case of WHALE since the "armour" outweighs the
- "stealth"! The WHALE virus is characterised by large sections of
- code (estimated as at least 50% of the total) which involve
- extremely convoluted processing around and across the debug and
- single step interrupt handlers and accessing such hardware as the
- Programmable Interrupt Controller. There is no other reason for
- this than the confusion of researchers trying to disassemble the
- code and the presence of this code has paradoxically caused
- researchers to heave a sigh of relief. The reason for this is quite
- simply that such code costs an immense amount of processing time and
- when a machine becomes infected, processing speed slows by up to 50%
- - the WHALE is simply carrying so much programming weight (armour?)
- that its very bulk is its giveaway. The amount of work involved in
- writing this virus was enormous and could well have been undertaken
- by more than one author. Program construction seems to be modular
- and no effort has been spared to make the code extremely difficult
- for scanning programs to spot. Aside from the now accepted
- technique of self encryption, this virus scrambles the order of its
- subroutines and varies the encryption algorithm use during file
- infection. Also accepted as a "standard" technique now is the
- decryption/recryption process which is used to prevent detection of
- the virus code in memory. This technique consists of maintaining
- most of the resident virus code in memory in encrypted form and only
- decrypting it just prior to processing. Once a particular section
- has been executed a re-encryption routine is called which collects a
- new pseudo-random key value and re-encrypts the code just executed
- before stored the new key and continuing to the next part of the
- code. The result is that only a small "window" around the code
- currently being executed is actually "in plain view", the remainder
- is variously and randomly encrypted. This is obviously to forestall
- the possibility of a recognition string being used to identify virus
- code in memory. The author obviously likes this technique since it
- is used at least 96 times throughout the code! This is another part
- of the bulk that this unwieldy virus carries. As with other recent
- viruses, there are several "undocumented" system calls (most of
- which are now well documented within the technical community) but
- two have been noted which may relate to specific packages, possibly
- of an anti-virus nature.
-
- There is still much work to be done in dissecting this code and the
- details that we have so far uncovered are necessarily fairly
- sketchy. We can say that this is a parasitic virus which infects
- executables with an infection length of around 9416 bytes. The
- actual appended length varies quite a lot from infection to
- infection and this is probably due to the insertion of some random
- junk and alignment of code on paragraph boundaries. No simple
- search string is possible because of the multiple encryption
- techniques and modular scrambling. There are considerable sections
- of self-modifying, self-checking and self-switching code within
- WHALE. This last technique consists of laboriously switching
- individual bytes within a specific subroutine using precalculated
- XOR values. The result is a sort of global XOR effect which can be
- used to switch between two different routines or as a
- decrypt/recrypt process.
-
- The code appears to install itself as resident within the first
- available Memory Control Block and monitors system activity during
- normal DOS processing. Stealth techniques are used to fool DOS into
- reporting original file sizes rather than the increased ones when
- files become infected. This is done by intercepting the DOS Get
- File Size function (23H) and checking whether the target file is
- infected before returning either a true or modified file size to the
- calling routine. The virus' method of detecting infection is still
- being analysed but there is some evidence that several checks are
- made, failure of any one of which will indicate that a file is NOT
- infected. The complexity of these checks necessarily means that a
- "sparse infection" method (ie: not all files will be infected) may
- be employed. This makes external detection more difficult but it
- does reduce the virility of the code and should mean that if this
- does appear "in the wild", it is unlikely to exist for long before
- detection and would therefore not spread too far. One of the checks
- for infection seems to be that the hour field in the file time must
- be equal to or greater than 16 (ie: 4pm or later) since the top bit
- of that field is modified within the Function 57H (Get/Set file
- Date/Time) handler. This too may limit the number of files suitable
- for infection.
-
- There are several similarities with the FISH6 and 4K viruses and
- this might indicate either a distinct development cycle by the
- author(s) or simply that someone has copied useful code and ideas
- from the earlier specimens. I incline to the former view but
- whatever the truth of the matter the similarity in file infection
- technique provides a useful method of identifying the presence of
- any of these three viruses. In the case of WHALE however, it is
- reported from the U.S. that some generations may not display this
- similarity and might therefore slip through this particular
- detection net. The technique itself is discussed in the 4K data
- infection report elsewhere in this issue and with the exception of
- the differences in infected length (and the as yet unconfirmed U.S.
- reports), all three viruses show identical repetition of the
- original host header information.
-
- The external results of running the WHALE have so far produced at
- least 27 different "generations" (I dislike the term "mutations" as
- implying uncontrolled change) and each generation appears to be the
- result of scrambling the order in which subroutines are written to
- the target file as well as changing both the encryption 'lock' and
- 'key'. There is a counting mechanism fairly close to the beginning
- of the virus code which counts back from 0F0H (240 decimal) on the
- dissection copy but the significance of this has not yet become
- clear. Possibly sections of the virus yet to be dissected may be
- invoked when the counter reaches zero. Infection apparently takes
- place during a Function 4BH call to DOS (Load and Execute) and will
- therefore affect COM, EXE, OVR and other executable code which is
- run in this way. At various times, the Interrupt vector addresses
- for Interrupts 1, 2, 3, 9, 13H, 24H and 2FH are accessed and may be
- modified for use by the virus code. The main area of code
- subversion centres around the DOS Interrupt 21H and this is
- intercepted and passed through a function dispatcher routine. This
- dispatcher monitors 15 separate DOS functions including both types
- of Find First/Next (11H, 12H, 4EH and 4FH), Open and Close file
- operations (0FH, 3DH and 3EH) and various types of File Read and
- Seek calls (14H, 21H, 27H and 42H). Other functions handled are Get
- File Size (23H), Load and Execute (4BH) and Get/Set Date/Time (57H).
- As is now expected of this type of code, the DOS Critical Error
- vector is hooked during virus operation and appears to be correctly
- restored after use.
-
- As various layers of encryption are peeled back, two areas of plain
- text are revealed. The first of these is written to a hidden file
- in the root directory of the C: drive on a 4 to 1 random chance.
- This file is named FISH-#9.TBL and contains a copy of the boot
- sector of the drive, together with the following plain text ...
-
- FISH VIRUS #9 A Whale is no Fish! Mind her Mutant Fish and the
- hidden Fish Eggs for they are damaging. The sixth Fish mutates only
- if the Whale is in here Cave.
-
- No other reference is made to this file from within the virus code
- and the content seems to indicate an adolescent concern with
- mysterious misinformation. The "sixth Fish" may refer to the FISH6
- virus (and establish another definite link) but this has yet to be
- researched. Since I haven't yet disassembled FISH6, I would be
- interested to know just how it got its name (why the '6' ?). It is
- also interesting to note that TBL is one of the data file extensions
- attacked by the 4K virus (see article elsewhere in this issue).
-
- The second plain text section of code is displayed as a message if
- the system date is between 19th February and 20th March in any year
- except 1991 and then the system hangs with a Divide Overflow
- message, necessitating a power down reboot. This is the only
- trigger point noted so far but there is a possibility that even
- these dates may be modified within differing generations. The
- message reads ...
-
- THE WHALE IN SEARCH OF THE 8 FISH I AM '~knzyvo}' IN HAMBURG
-
- This is exactly as the message appears on screen and the characters
- between the single quotes appear to be a name of some sort.
- Preliminary cryptanalysis suggests that this name is probably
- 'TADPOLES' since this results from simply subtracting a value of 42
- (decimal) from each character value and the ichthyological
- connection is obvious. Whether the author(s) actually do come from
- Hamburg is not certain, since they are capable of producing this
- ludicrously silly code it is quite probable that they are
- pathological liars as well.
-
- Many researchers have conjectured that WHALE might be designed to
- interact with other viruses (notably FISH6) but to date, no evidence
- of this has yet been found within the code.
-
- As knowledge currently stands on this virus, it may well be an
- extremely childish and malicious attempt to waste the time of virus
- researchers across the world. In rather the same way that the Fire
- Brigade can never ignore false alarms, the virus research community
- cannot ignore even the simplest virus code. However, ANY virus code
- is potentially destructive and the perpetrators should be aware that
- the Computer Crime Unit at New Scotland Yard are now building a
- dossier of computer virus incidents in the U.K. and WILL prosecute
- the authors even if they have never set foot in this country. Under
- current legislation, conviction could carry a five year prison
- sentence. If 'TADPOLES' reads this, he/they might like to speculate
- on such a sentence, which would undoubtedly be accompanied then and
- subsequently by the universal revulsion of the computing community
- world-wide.
-
- The arrival of this virus caused much consternation amongst
- knowledgeable researchers but preliminary examination has dispelled
- most of this concern. It is interesting to speculate that in the
- WHALE, virus authors have at last reached a predicted point where
- their code has to carry so much protection that the original
- parameters of invisibility and mobility can no longer be maintained
- with any real reliability. Such bulky and processor intensive code
- will generally reveal itself long before any payload can be
- delivered.
-
- Work will continue on disassembling and analysing this virus until
- all the fine details are known and further reports will appear as
- more information becomes available.
-
- VIS Classification - CEARKSd9416
-
- The information contained in this report is the direct result of
- disassembling and analysing a specimen of the virus code. I take
- great pains to ensure the accuracy of these analyses but I cannot
- accept responsibility for any loss or damage suffered as a result of
- any errors or omissions. If any errors of fact are noted, please
- let me know at :-
-
- The Virus Information Service,
- Treble Clef House,
- 64, Welford Road,
- WIGSTON MAGNA,
- Leicester LE8 1SL
-
- or call +44 (0)533 883490
-
- Jim Bates
-
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- ++++++++++++++++++++++++++ end of reports ++++++++++++++++++++++++
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++