Lange war es still um diese Plagegeister aus Bits und Bytes, aber die vergangenen Monate waren die sprichwörtliche »Ruhe vor dem Sturm«. Computerviren sind nach wie vor ein brisantes Thema.
Wie schützt man sich vor Viren? Fast jeder weiß es, das beweisen die gestiegenen Verkaufszahlen diverser Virenkiller. Trotzdem ist Vorsicht geboten, denn in den Programmierern von Computerviren schlummert skrupelloser Ehrgeiz. Aus ihrem zerstörerischen Engagement entwickeln sie immer raffiniertere Viren, um das Heer der Virenkiller zu überlisten. Will man sich schützen, ist es nützlich, sich zumindest einen Überblick über die verschiedenen Typen und ihre Arbeits- und Verbreitungsweise zu verschaffen.
Computerviren sind keine auf EDV umgeschulten Grippeerreger, sondern Programme, die fremde Software ohne Wissen des Benutzers manipulieren und befähigen, die Verbreitung des Virus fortzusetzen. Computerviren wären noch relativ harmlos, würden sie sich ausschließlich vermehren. Aber: sie richten oft allerhand Unsinn und zum Teil sogar ernsthafte Schäden an, wie z. B. Datenverlust auf der Festplatte. Grundsätzlich unterscheidet man zwei Virenarten: Linkviren und Bootsektorviren.
Alle Virentypen verbreiten sich im allgemeinen durch die Weitergabe infizierter Disketten oder infizierter Programme von Rechner zu Rechner. Dabei ist die Gefahr einer Infizierung nicht auf die private Weitergabe von Disketten — seien es nun Raubkopien oder PD-Programme — beschränkt, auch von einigen renommierten Softwarehäusern sind in der Vergangenheit schon versehentlich verseuchte Disketten in Umlauf gebracht worden. Aktuelles Beispiel war die Septemberausgabe einer ST-Zeitschrift, deren beiliegende Diskette mit einem Bootsektorvirus verseucht war.
Bootsektorviren infizieren den Bootsektor einer Diskette. Dieser enthält nach der Infizierung ein ausführbares Programm, welches bei jedem Reset vom Betriebssystem als erstes abgearbeitet wird. Solche Bootprogramme dienten in der Anfangszeit des STs zum Laden des TOS von Diskette. Heutzutage benutzen beispielsweise viele Spiele ausführbare Bootsektoren als Ladeprogramme. Auch einige Utilities verwenden den ungenutzten Platz im Bootsektor für eigene Zwecke.
Ob ein Bootsektor ausführbar ist, erkennt das Betriebssystem an einer Prüfsumme, die in diesem Fall den Wert $1234 ergibt. Da der Boot-sektor einer Diskette ohnehin bei jedem Reset geladen wird, kann sich ein Virus auf diese Art völlig unbemerkt im Speicher einnisten. Einige Bootsektorviren können sich sogar von Bootsektoren, die als nicht ausführbar markiert sind, ins System einschleusen: Das Betriebssystem des STs hat ein undokumentiertes Feature, mit dem sich Programme resetfest im Speicher installieren können. Nach dem Booten von Diskette oder Platte, aber noch vor Ausführung der Programme im Auto-Ordner, durchsucht das Betriebssystem den gesamten Arbeitsspeicher nach einer Speicherdoppelseite, die einige bestimmte Magics und Zeiger enthalten muß.
Die Suche läuft vom oberen Speicherende (PHYS-TOP) abwärts bis $600. Sollte der ST fündig werden, wird ein dort befindliches Programm ausgeführt. Entscheidend dabei: Zuvor hat das Betriebssystem den Bootsektor der Diskette aus Laufwerk A in den Arbeitsspeicher geladen, um zu prüfen, ob der Bootsektor ausführbar ist. Dort verbleibt der Bootsektor als »Datenleiche«, auch wenn er nicht ausgeführt wird. Nun braucht ein Bootsektorvirus nur an den richtigen Stellen die entsprechenden Magics und Zeiger zu enthalten und schon wird der Virus installiert, obwohl der Bootsektor eigentlich nicht ausführbar ist! Derartige Viren können — einmal im Speicher installiert — durchaus noch Codeteile nachladen. Diese sind dann auf normalerweise unbenutzten Bereichen (z. B. Sektor 4 und 5 der beiden FATs) gespeichert, so daß der zusätzliche Platzbedarf nicht auffallt.
Zu erwähnen bleibt, daß diese Viren TOS-abhängig sind. Sie laufen also nur auf jeweils einer bestimmten TOS-Version, da die Adressen des Diskettenpuffers variieren. Ein Virenprogrammierer müßte somit mehrere modifizierte Versionen seines Virus in Umlauf bringen, um alle TOS-Versionen abzudecken.
Ist ein Virus einmal im Arbeitsspeicher, infiziert er alle Disketten, auf die zugegriffen wird, sofern der Schreibschutz nicht aktiviert ist. Ein schreibender Zugriff auf schreibgeschützte Disketten ist entgegen anderslautender Gerüchte physikalisch nicht möglich. Solange ein Virus nicht mit einem Lötkolben umgehen kann, sind ihre schreibgeschützten Disketten absolut sicher.
Virus | UVK | VD | P |
---|---|---|---|
Maus Virus | * | * | * |
Mad Virus, Typ B | * | * | * |
Directory Waster | * | * | * |
DJA Virus | * | * | * |
Exception Virus | * | * | |
G-Data Virus | * | * | * |
Mad Virus, Typ A | * | * | * |
Ghost Virus, Typ A | * | * | |
Ghost Virus 1 | * | * | * |
Ghost Virus II | * | * | * |
Media Change Virus | * | * | * |
Arnold/Rambo Virus | * | * | * |
Reset Virus | * | * | * |
Signum/BPL Virus 1 | * | * | * |
Signum/BPL Virus II | * | * | * |
Wolf Virus | * | * | * |
BHP-Virus (15. Gen.) | * | * | * |
Virus | UVK | VD | P |
---|---|---|---|
Garfield & Papa V. | * | * | * |
Crash Virus | * | * | * |
Mad Zimmermann | * | * | + |
Virus Constr. Set | - | * | * |
Milzbrand 1 (c't 4/87) | o | * | * |
Milzbrand 2 (Gotcha) | * | * |
UVK The Ultimate Virus Killer
VD | Virendetektor3.1e
P Poison 2.00B
Vollkommen anders arbeiten die sogenannten Link-Viren. Im Gegensatz zu ihren Kollegen aus dem Bootsektor befallen sie ausführbare Programme. Dabei kopiert der Virus sich an das Programmende und manipuliert das infizierte Programm so, daß bei seinem Start zunächst der Virencode abgearbeitet wird.
Der Virus wird also aktiviert, sobald das infizierte Programm startet. Dann versucht der Replikationsteil des Virus, alle erreichbaren und noch nicht infizierten Programme ebenfalls mit dem Virus zu versehen. Bei den meisten Linkviren — z.B. dem Milzbrand-Virus — wird pro Programmstart eines verseuchten Programms nur ein weiteres Programm infiziert.
Warum kopiert sich der Virus nicht gleich in alle Programme, die er auf der Diskette, RAM-Disk oder Festplatte erreichen kann? Der Grund für diese freundliche Zurückhaltung liegt in der Zeit, die der Linkvirus für die Infizierung benötigt. Während ein Bootsektorvirus lediglich einen Sektor auf der Diskette manipulieren muß, um sich zu verbreiten, hat es ein Linkvirus weitaus schwerer. Er muß umfangreiche Änderungen an der Struktur der Programme vornehmen. Zudem muß er die möglichen Opfer, also noch nicht infizierte Programmdateien, erst finden. Damit sind auch relativ umfangreiche Massenspeicherzugriffe notwendig. Um nicht aufzufallen, darf der Start eines verseuchten Programms nicht wesentlich länger dauern als vor dem Virenbefall.
Es gibt auch Linkviren, die sich resident im Speicher einnisten und von dort aus jedes erreichbare Programm infizieren. »Jedes erreichbare Programm« heißt hier, daß jedes Programm infiziert werden kann, das von einem nicht schreibgeschützten Medium gestartet wird, während der Virus im Speicher ist. Obwohl die Mehrzahl der Linkviren nicht nach diesem, sondern nach dem oben beschriebenen Schema arbeitet, sind die speicherresidenten Linkviren besonders gefährlich, da ihre Verbreitungsgeschwindigkeit wesentlich höher ist!
Natürlich sind von Linkviren befallene Programme plötzlich länger als vor der Infizierung; einige Viren befallen deshalb nur Programme, die eine bestimmte Mindestlänge haben, um so weniger schnell aufzufallen. Einige VCS-Viren arbeiten beispielsweise so. Auch der Milzbrand-Virus läßt Programme unter 10 kByte Länge unbehelligt. Der Start eines befallenen Programms benötigt aber in jedem Fall mehr Zeit als vor der Infizierung. Da es sich aber in der Regel um nur eine Verzögerung von etwa 20 Prozent handelt, fallt dies dem Anwender selten auf. Computerviren, die sich durch Komprimierung des Wirtsprogrammes tarnen oder Programmteile auf einen unbenutzten Massenspeicherbereich auslagern, sind auf dem ST (noch) nicht bekannt.
Auf dem ST/TT sind bislang fünf verschiedene Linkviren entdeckt worden. Dies mag im Vergleich zu den bekannten Viren auf anderen Rechnersystemen wenig bedrohlich klingen, doch ist die Palette in Wahrheit außerordentlich breit, da zwei dieser fünf Viren in den verschiedensten Variationen aufgetaucht sind. Dies ist nicht weiter verwunderlich, bedenkt man, daß einer der beiden Viren auf einem Zeitschriftenlisting beruht und der andere von einem »Virus-Construction-Set« stammt, mit welchem nahezu beliebige Viren mit völlig unterschiedlichem Gefährdungspotential erzeugt werden konnten. Da diese Mutationen alle auf einen Ursprungsvirus zurückgehen, können leistungsfähige Virenkiller sie aber in der Regel problemlos identifizieren.
Zur Frage, wie ein Virus noch geschickter vor den Augen des Benutzers — oder genauer: vor dessen Virenkiller — verborgen werden kann, ist jetzt eine neue Methode entwickelt worden: Dazu wird ein Programm, welches bereits von einem Linkvirus befallen wurde, nachträglich mit einem der sog. On-line-Packer gepackt. Diese Packer — der bekannteste Vertreter dieser Art ist Thomas Questers »PFX-PAK« — sparen Disketten-bzw. Festplattenplatz, indem ein ausführbares Programm auf dem Massenspeicher komprimiert gespeichert wird. Beim Starten werden derartig gepackte Programme für den Benutzer unbemerkt im Arbeitsspeicher blitzschnell wieder in die ursprüngliche Länge gebracht.
Wird ein mit einem Link-Virus befallenes Programm mit einem dieser Packer gepackt, liegt auch der Virencode in komprimierter Form auf dem Massenspeicher vor. Die Folge: Dieser Virus wird bei der Benutzung eines Virenkillers plötzlich nicht mehr erkannt. Ein Virenkiller erkennt einen Linkvirus nämlich an signifikanten Codeteilen, die aber nach dem Komprimieren in der ursprünglichen Form nicht mehr vorhanden sind. Auch Virenkiller, die eine Analyse auf virentypische Merkmale in ausführbaren Programmdateien vornehmen, sind chancenlos. Der Virenkiller »sieht« nur ein harmloses Entpackprogramm mit einem langen Datenbereich, der das ursprüngliche Programm nebst Virus enthält.
Erst beim Programmstart erzeugt der Entpacker im Arbeitsspeicher die lauffähige Kopie des ursprünglichen Programms, wobei natürlich auch der Virus entpackt wird. Dieser wird somit beim Starten eines gepackten Programms nach wie vor aktiviert.
Da der Anwender bei einem neuen Programm im allgemeinen nicht erkennen kann, ob es gepackt vorliegt, sollte ein guter Virenkiller dem Anwender bei der Überprüfung die Meldung ausgeben, ob ein Programm mit einem automatischen Entpacker versehen wurde und um welchen es sich handelt. Hat der Benutzer das Programm nicht selbst gepackt, sondern bereits in dieser Form erhalten, sollte er es unbedingt auch in der ungepackten Version prüfen.
Als zusätzliche Sicherung gegen unbekannte Linkviren bieten einige Virenkiller eine CRC-Prüfsummenbildung über ausführbare Programmdateien an. Bei einem Befall mit Linkviren wird diese Prüfsumme verändert, so daß der Virenkiller bei der nächsten Überprüfung Alarm schlagen wird.
Ein zusätzlicher Schutz gegen Bootsektorviren ist das Aufbringen eines Immunisierungs-Bootsektors auf die Disketten. Bei jedem Reset erscheint eine Meldung auf dem Bildschirm, die das Vorhandensein der Immunisierung auf dieser Diskette anzeigt. Fehlt diese Meldung, wurde der Bootsektor verändert, was in aller Regel auf einen Bootsektorvirus schließen läßt. Eine andere Schutzmöglichkeit ist ein kleines Programm im Auto-Ordner, mit dessen Hilfe bei jedem Bootvorgang ein Vergleich des aktuellen Bootsektors mit einem zuvor in eine Datei gesicherten Vergleichssektor durchgeführt werden kann.
Viele Anwender, die Ihre Disketten mit einem Immunisierungs-Bootsektor versehen hatten, fühlten sich lange Zeit sicher, denn gleichgültig welche Diskette bei einem Reset im Laufwerk lag — solange die Immunisierungsmeldung erschien, war alles in Ordnung. Diesen Umstand machen sich seit einiger Zeit auch die Virenprogrammierer zunutze. Ein Virus, der einfach die entsprechende Immunisierungsmeldung eines Virenkillers ausgibt, wird vom Benutzer möglicherweise für einen harmlosen Immunisierungs-Bootsektor gehalten. Geht der Virus dann seinen bösartigen Absichten nach, ist es oftmals schon zu spät.
Solche Tarnkappen-Viren gibt es inzwischen sowohl für das »Anti-Viren-Kit« von »G-DATA«, als auch für das beliebte Programm »Sagrotan«. Beide Viren sind in der Bootphase nicht von den echten Immunisierungen zu unterscheiden. Der »Wolf«-Virus, der die »Sagrotan«-Meldung (»Kein Virus im Bootsektor«) kopiert, ist sogar so geschickt codiert, daß viele Virenkiller ihn für einen harmlosen Bootsektor halten. Auch »Sagrotan« meldet in der letzten veröffentlichten Version 4.17 bei diesem Virus einen harmlosen MS-DOS-kompatiblen Bootsektor!
Der Virus geht darüber hinaus sehr sorgfältig vor, nach drei neuen Infizierungen verschwindet er wieder aus dem Speicher. Sein eigentliches Ziel, die schrittweise Verkleinerung des Arbeitsspeichers, nimmt er erst in Angriff, nachdem er sich ausreichend oft vermehrt hat. Angst um die RAM-Bausteine braucht aber niemand zu haben: der Virus kann dem Rechner den verringerten Speicher natürlich nur vortäuschen. Nach der Beseitigung des Eindringlings ist auch das vermeintlich verschwundene RAM wieder voll da.
Der Wolf-Virus darf sich der besonders verschlagenen Sorte der Bootsektorviren zurechnen. Doch nicht immer sind es neue oder besonders geschickte Viren, die zu zweifelhaftem Ruhm gelangen. Das bereits erwähnte aktuelle Beispiel der letzten Monate, bei der ein Virus auf einer Heftdiskette im ganzen Land verbreitet wurde, betrifft einen alten Bekannten. Auf der Diskette befand sich der »Signum-BPL«-Virus. Er ist wohl der am weitesten verbreitete Bootsektor-Virus auf dem Atari ST. Man schätzt, daß weltweit etwa 1,5 Millionen Kopien von ihm existieren. Da er nun wieder einmal Thema der aktuellen Diskussion geworden ist, stellen wir seine Arbeitsweise vor.
Mit der Textverarbeitung gleichen Namens hat der Virus allerdings nichts zu tun. Wie alle Bootsektorviren kopiert er sich in den Speicher, sofern von einer infizierten Diskette gebootet wird. Dort wartet er, bis auf eine nichtschreibgeschützte Diskette in Laufwerk A oder B zugegriffen wird. Sind die ersten beiden Byte im Bootsektor dieser Diskette ungleich $6038 (der typische Sprungbefehl BRA $38), kopiert er sich auf diesen Bootsektor (er infiziert also die eingelegte Diskette) und tut zunächst nichts weiter, bis er auf einen Bootsektor trifft, bei dem die ersten beiden Byte $6038 sind und bei dem an einer bestimmten Stelle der Wert $1092 steht. Ist zudem noch ein Zähler des Virus kleiner als ein entsprechender Zähler im überprüften Bootsektor, wird dieser Bootsektor ausgeführt, gleichgültig ob er für das Betriebssystem tatsächlich ausführbar ist.
Der Signum-BPL-Virus könnte so eine Art »Hilfsvirus« für einen ganz anderen Virus sein, der mangels Ausführbarkeit von den meisten Usern zum einen nicht gefunden, zum anderen — falls bemerkt wird, daß etwas im Bootsektor steht — trotzdem nicht weiter beachtet wird. Dieser Virus verfügt wahrscheinlich über einen Zähler. Dieser »zweite Teil« ist bislang nirgendwo aufgetaucht.
Doch auch ohne den bislang unbekannten zweiten Teil kann der Virus Probleme bereiten, da z. B. zuvor MS-DOS-kompatible Disketten von DOS-Rechnern nicht mehr gelesen werden können. Zudem führt eine infizierte Diskette auf einem TOS 2.05, zu dem der Virus nicht kompatibel ist, zum Absturz beim Booten.
Die genannten Beispiele zeigen, daß die Virenprogrammierer nach immer neuen Möglichkeiten suchen, den Anwender zu überlisten. Aber auch die Programmierer der Virenkiller schlafen nicht. Im Gegenteil: einige von ihnen arbeiten — obwohl Konkurrenten auf dem gleichen Markt — seit Jahren zusammen. Denn nur wer hart am Wind der aktuellen Virenentwicklung segelt und mit anderen Virenexperten zusammenarbeitet, kann seine Software ständig auf dem neusten Stand halten. Als tickende Zeitbomben könnten sich sonst vermeintlich unbehelligte Disketten entpuppen. Besonders die Autoren von UVK, Poison und Virendetektor tragen durch ihre intensive Zusammenarbeit zum Schutz aller Anwender bei. Denn der Benutzer eines Virenkillers erwartet in erster Linie, daß das verwendete Programm alle Viren erkennt.
Bei keiner anderen Software sind daher regelmäßige Updates und guter Support so wichtig wie bei Virenkillern. Nur dann kann die »reale Gefahr« auf das Minimum reduziert werden. Mit einer Textverarbeitung, die schon einige Jahre alt ist, kann man oft noch zufriedenstellend arbeiten; ein Virenkiller hingegen, dessen letztes Update ein Jahr oder länger zurückliegt, ist bestenfalls noch als abschreckendes Beispiel zu gebrauchen. (thl)
Im Dezember 1990 fand das erste Treffen europäischer Virenexperten in Hamburg statt. Damals schätzte man die Anzahl der Computerviren auf 350, doch bereits ein 3/4 Jahr später war ihre Zahl auf rund 850 angewachsen. Dieser dramatische Anstieg veranlaßte die Experten auf ihrem zweiten Treffen, das »European Institute for Computer Anti Virus Research« (cicar) zu gründen. Es soll die Zusammenarbeit zwischen Anwendern, Herstellern von Anti-Viren-Produkten und Viren-Forschungsgruppen fördern. Dazu gehört außerdem die Zusammenarbeit mit der »Computer Anti Virus Research Organization« (CARO).
Dr. Paul Langemeyer, Abteilungsleiter des Bereiches Anwendersoftware bei Siemens-Nixdorf in München und Vorsitzender der cicar, unterscheidet als Motivation bei der Programmierung von Computerviren grundsätzlich fünf Typen:
Militär, das z. B. Viren gegen Waffensysteme entwickelt.
Zauberlehrlinge, die das Virenproblem aus Neugier selbst untersuchen wollen und ohne kriminelle Absicht fahrlässig Viren in Umlauf setzen.
Robin Hood, ein Ideologe, der durch Verunsicherung der Anwender den gläsernen Menschen verhindern will.
Rumpelstilzchen, DV-Spezialisten, die sich im Verborgenen freuen, welchen Schaden ihre hinterhältigen Viren anrichten.
Saboteure, die ihrer eigenen oder einer fremden Firma schaden wollen.
»Es ist nicht ehrenrührig, einen Computervirus zu haben, aber schlimm nichts gegen ihn zu unternehmen«, mahnt Langemeyer und verweist auf das Stichwort Computerhygiene: wieviel Zeit, Geld und Raum verwenden Sie für persönliche Hygiene, und welchen Aufwand betreiben Sie, um Computerviren von Ihrem System fernzuhalten? Es reicht aus, jedes verwendete Programm einmal vor der ersten Benutzung sorgfältig mit einem sog. Virenscanner auf Viren zu kontrollieren und anschließend die Festplatte regelmäßig auf Veränderungen zu untersuchen (Dateilängen; Prüfsummen). So könne man sich mit vergleichsweise geringem Aufwand viel Ärger ersparen.
Allerdings sei das Virenproblem nicht allein durch Software zu lösen. Auch die Hardwarehersteller können zur Lösung beitragen, beispielsweise Verhinderung des Boo-tens von der Floppy, hardwaremäßiger Schreibschutz einzelner Partitionen einer Festplatte oder abschließbare Floppylaufwerke und Tastaturen. (thl)