[Chaos CD]
[HaBi 2]    Virus Grundlagen - Teil 2
[Gescannte Version] [ -- ] [ ++ ] [Suchen]  

 

Virus Grundlagen - Teil 2

Das PC-Virus

Grundlagen, basierend auf Erfahrungen mit dem Betriebssystem MS-DOS

Im folgenden sollen, zur Vermittlung der Grundlagen, einige VirusFormen erläutert und auf deren Verbreitungsverhalten eingegangen werden, Darüber hinaus werden Hinweise über mögliche Manipulationsaufgaben und den Schutz gegen ComputerViren gegeben. Die Informationen beziehen sich auf Erfahrungen mit dem Betriebssystem MS-DOS, die auch für ähnliche Betriebssysteme gelten.

Funktionsweise einiger ComputerViren

ComputerViren können sich auf unterschiedliche Arten in Programmbeständen verbreiten. Dabei können die betroffenen Programme in ihrer ursprünglichen Funktion gestört werden. Zur Differenzierung erläutern wir, auf der Basis der Erkenntnisse, die Ralf Burger Mitte 1986 dokumentierte, die wesentlichen Unterschiede zwischen
  • überschreibenden
  • nichtüberschreibenden und
  • speicherresidenten
Viren.

Ein ComputerVirus besteht aus mehreren Programmteilen. Um bereits infizierte Programme zu erkennen, versieht das Virus diese Programme mit einem ErkennungsMerkmal (M). Der Programmteil mit der Verbreitungsaufgabe wird als Viruskern (VIR) bezeichnet. Zusätzlich kann über das Virus eine Manipulationsaufgabe (MAN) verbreitet werden. Vor der Ausführung der ursprünglichen Programmaufgabe muß das betroffene Programm eventuell durch eine Verschieberoutine (VER) wiederhergestellt werden,
M = ErkennungsMerkmal
VIR = Verbreitungsaufgabe(Virulenz)
MAN = Manipulationsaufgabe
VER = Verschieberoutine

Funktionsweise überschreibender Viren

Überschreibende Viren beeinträchtigen oft die Funktionsabläufe der infizierten Programme. Das Virus überschreibt einen Teil des vorn betroffenen Programm belegtem Speicherplatzes. Dabei wird das Programm zer- oder gestört, wobei das Virus nicht durch Erhöhung des Speicherplatzes auffällt,

Um ein ComputerVirus einzuschleusen, wird ein sogenanntes Trägerprogramm mit dem Virus infiziert. Das Trägerprogramm weist bei der Ausführung keinen Fehler auf, da das Virus entsprechend sorgfältig eingepaßt wurde. Wird das Trägerprogramm als nützliches Hilfsprogramm getarnt, kann die Verbreitung z.B. durch die Neugier des unbedarften Anwenders gestartet werden.

! M ! VIR ! MAN ! 1. Programm

Wird das 1. Programm aktiviert, findet das Virus beirn Suchen im Inhaltsverzeichnis des Datenspeichers (vorzugsweise Festplatten) ein 2. Programm. Wenn dieses bereits das ErkennungsMerkmal aufweist, wird weitergesucht.

! 2. Programm !

Der Viruskern kopiert das vollständige Virus in das 2. Programm hinein und überschreibt dabei den für das Virus benötigten Speicherplatz am Programmanfang. Das geänderte Programm wird abgespeichert und die MANipulationsaufgabe des Virus wird ausgeführt. Erst danach wird das 1. Programm ausgeführt.

! M ! VIR ! MAN !  Rest des 2. Programms !

Beim Starten des 2. Programmes findet zuerst die Übertragung in das 3. Anwenderprogramm statt. Das 2. Anwenderprogramm arbeitet eventuell fehlerhaft, da Programmteile durch das Virus überschrieben wurden.

! M ! VR ! MAN ! Rest des 3. Programms !

Dieser Verbreitungsvorgang wiederholt sich bis zur totalen Durchseuchung des Systems. Bei diesem Virus-Typ kann das Virus als das letzte funktionsfähige Programm übrigbleiben.

Bei geschickter Programmierung des Virus bleiben auch bei überschreibenden Viren einige Programme funktionsfähig. In einem relativ großem Buffer (von Programmen reservierter Speicherplatz) lassen sich Viren gut verstecken. SideKick läuft in wesentlichen Funktionen auch mit einem Virus dieser Form. Es stellt dadurch ein Risiko beim Programmtausch dar, denn Viren dieser Form können darin unbemerkt verbreitet werden.

Funktionsweise nicht überschreibender Viren

Nicht überschreibende Viren vergrößern den Speicherplatz des infizierten Programmes. Die betroffenen Programme bleiben funktionsfähig.

Zum Zweck der Einschleusung ist ein Programm bewußt mit einem Virus infiziert worden. Es tritt bei der Ausführung kein Fehler auf.

! M ! VIR ! MAN ! VER ! 1. Programm !

Der Viruskern findet beim Suchen ein 2. Programm. Wenn dieses Programm das ErkennungsMerkmal aufweist, wird weitergesucht,

! 2. Programm (Teil 1 und 2) !

Um den Speicherplatz am Programmanfang neu zu belegen, kopiert das Virus einen Teil des 2. Programmes, welcher der Länge des Virus entspricht, an das Ende des Programmes.

! 1. Teil ! 2. Prgrm T. 2 !

! 2. Teil ! 2. Prgrm T. 2 ! 1. Teil

Der Anfang des 2. Programmes ist nun zweimal vorhanden. Jetzt legt das Virus hinter dem ans Ende kopierten Programmanfang die Verschieberoutine (VER) ab.

!1 Teil ! 2. Prgrm T. 2 ! 1 Teil ! VER !

Das Virus kopiert sich nun selbst an den Beginn der Datei und überschreibt dabei den 1. Teil des Programmes. Es speichert die geänderte Version ab. Anschließend wird die MANipulationsaufgabe, und danach das 1. Programm ausgeführt.

! M ! VIR ! MAN ! 2. Prgrm T. 2 !1. Teil ! VER !

Beim Starten des 2. Anwenderprogrammes findet zunächst die Übertragung des Virus in das 3. Anwenderprogramm statt. Danach wird die MANipulationsaufgabe ausgeführt. Nun folgt ein Sprung zur Verschieberoutine. Diese Routine kopiert im Arbeitsspeicher den 1. Teil des Programmes wieder an den Dateianfang. Dadurch wird das Virus im Arbeitsspeicher Überschrieben.

! 1. Teil ! 2. Prgrm T. 2 ! 1 Teil ! VER !

Im Arbeitsspeicher steht jetzt wieder die Originalversion des 2. Programmes. Die Verschieberoutine beendet ihre Aufgabe mit einem Sprung zur Startadresse am Dateianfang. Das 2. Programm wird nun fehlerfrei abgearbeitet: das 3. Programm ist infiziert worden.
Vor dem Startendes 2. Programmes:

! 3. Programm

 Nach dem Starten des 2. Programmes:

 M ! VIR ! MAN ! 3. Prgrm T. 2 ! 1. Teil ! VER !

Besondere Formen von ComputerViren

Funktionsweise speicherresidenter Viren.

Speicherresidente Viren sind eine Sonderform von ComputerViren. Der Unterschied liegt in der Form, in der sie tätig werden. In der Verbreitung gilt für sie praktisch das gleiche wie für alle anderen Virentypen. Beim Starten eines infizierten Programmes werden vor Programmausführung die Verbreitungsaufgaben, die Manipulationsaufgabe und die Verschieberoutine des Virus in ungenutzte Bereiche des Arbeitsspeichers kopiert. Dort hinterlegt, wird das Virus seine Aufgaben wesentlich flexibler erfüllen.

Im Arbeitsspeicher hinterlegte Programme (also auch Viren) können durch einen Interrupt (Meldung des Betriebssystems) aktiviert werden. Dadurch kommen diese Viren wesentlich häufiger zur Ausführung als solche, die nur beim Starten infizierter Programme ausgeführt werden. So genügt es schon eine Diskette in ein derart verseuchtes System einzulegen. Wird diese Diskette vom Betriebssystem erkannt, startet das Virus gleich einen Angriff und kopiert sich in ein Programm auf dem Datenträger. Der Ausbreitungsdrang speicherresidenter Viren gilt als äußerst aggressiv. Alle auf dem betroffenem DV-System benutzten Disketten können die "Seuche"  verschleppen.

Mutierende Viren

Mutierende Viren ändern bei jedem Verbreitungsvorgang ihre Form. Dieses kann eine Veränderung der Manipulationsaufgabe sein (jedes Anwenderprogramm macht andere Fehler) oder auch nur ein Vertauschen der Programmteile eines Virus innerhalb des Speicherplatzes. Mutierende Viren könnten sich z.B. selbst in Baukastentechnik bei jeder Infektion neu zusammensetzen. Dadurch wird die Suche nach einem erkannten Virus erheblich erschwert.

Ängstliche Viren

Eine besondere Abart sind Viren, die bei einer Aktivierung zwei (oder mehrere) Infektionen in unverseuchten Programmen durchführen und sich anschließend selbst aus dem gestarteten Programm entfernen. Wird dem Anwender bewußt, daß das eben gestartete Programm befallen ist, ist die Seuche schon weitergezogen.

Die MANipulationsaufgabe

Die Verbreitungsfähigkeit der Viren ermöglicht das unkontrollierte Einschleusen von Manipulationsaufgaben. Diese Aufgaben können frei nach der Leistungsfähigkeit des ausgewählten Betriebssystems gestaltet werden.

Der Phantasie keine Grenze gesetzt...

Der Phantasie eines VirenProgrammierers sind kaum Grenzen gesetzt. Da davon auszugehen ist, daß Viren, die ihre Manipulationsaufgabe gleich nach dem ersten Infektionsvorgang beginnen, relativ schnell auffallen, geben viele Programmierer den Viren eine Schlafroutine mit auf die Reise. So kann das Virus eine hohe Verbreitung finden, bevor die Manipulation in verseuchten Systemen auftritt und der Virusbefall erkannt wird. Um den Ursprung einer Verseuchung zu verdecken, könnten z.B. die ersten tausend infizierten Programme zusätzlich einen Regenerationgauftrag erhalten. Noch vor Inkrafttreten des Manipulationsauftrages löschen sich diese Viren aus ihren Wirtsprogrammen heraus. Eine Analyse des Infektionsweges (wer hat wen verseucht) ist dadurch fast unmöglich.

Ausschlaggebend ist der Zweck

Für das Opfer ist es von wesentlicher Bedeutung festzustellen, welcher Zweck mit einem Virenangriff verfolgt wird. Es kann hilfreich sein, festzustellen, ob bestimmte Daten zum Vor- oder Nachteil Dritter gezielt verändert wurden, um den Schaden, die Folgen und den möglichen Täterkreis einzugrenzen. Handelt es sich "nur" um eine ungezielte Verseuchung, so kann womöglich eine hinterlistige Sabotage zum Vorteil Dritter ausgeschlossen werden,
Auf dem CCC'86 berichteten Teilnehmer über verschiedene Manipulationsaufgaben von Viren. So gibt es Viren, die Daten aus unzugänglichen Speicherbereichen in für den Anwender zugängliche kopieren. Es wurde von einem Virus berichtet, der über jedes infizierte Programm eine "LogDatei" anlegt, in der notiert wird, wer wann mit welchem Kennwort dieses Programm benutzt hat. Weiter wurde von Viren berichtet, die Programme und/oder Daten zerstören, bzw. verfälschen. Sie finden vorwiegend in Freeware und Raubkopien Verbreitung.
Der Schaden und/oder Nutzen eines Virus hängt vom Entwickler bzw. den Verbreitern eines Virus ab. Wohl die Hauptursache für "Rache" sind schlechte soziale Bedingungen für Programmierer. Daneben fördern Neid, Mißgunst und Ohnmacht die Bereitschaft zum böswilligen Vireneinsatz. Die Hauptgefahr sieht Rüdiger Dierstein (DFVLR) im vorsätzlichen Handeln. Die Wahrscheinlichkeit durch Spieltrieb ("Mal sehen was passiert") ein System zu infizieren, stellt ebenso ein Risiko dar. Statistisch unwahrscheinlich ist für Dierstein auch die unabsichtliche Generierung von Computerviren auf dem eigenen DV-System, zum Beispiel durch eine Ansammlung zufälliger Speicherreste.

Auch positive Ansätze

Inwieweit ComputerViren auch zu positiven Aufgaben eingesetzt werden können, hängt von der Isolation des betroffenen DV-Systems ab. Zwar lassen sich Viren auch mit "guten" Eigenschaften versehen, wie z.B. eine Routine, die Daten komprimiert und dadurch den Speicherbedarf senkt. Jedoch kann auch ein solch "guter" Virus bei unkontrollierter Verbreitung für Ärger sorgen.

Vorteilhaft ist die Verbreitungseigenschaft nur, wenn nachträglich in alle Programme zusätzliche Funktionen eingebaut werden sollen. Dieses könnte z.B. ein Virus sein, der die Programme um eine Kennwortabfrage erweitert. Möglich ist auch ein Virus zur Mitarbeiterkontrolle. Einmal ausgesetzt, liefert dieses Virus fortan genaue Nutzungsdaten der Mitarbeiter. Damit lassen sich Unregelmäßigkeiten in der Anwendung erkennen ("ZimmermannVirus").

Viren als Diebstahlsschutz

Rechtlich womöglich zulässig, aber dennoch fragwürdig, sind Viren als Diebstahlsschutz. Softwareanbieter wären in der Lage, auf Messen ihre Programme mit Viren zu versehen, um dadurch nach einer Entwendung der Software den Verbreitungsweg von Raubkopien zu verfolgen.

Vireneigenschaft als Architekturprinzip?

Viren mit kontrollierbaren Verbreitungswegen können positiv genutzt werden. Inwieweit die virulente Eigenschaft neue Architekturen in der Gestaltung von Betriebssystemen und Programmen ermöglicht, ist noch unbekannt.

Erkannte Verbreitungswege von ComputerViren

Risikogruppe Personalcomputer

Derzeit sind alle Personalcomputer für einen Virenbefall prädestiniert. Zum einen verwenden viele Anwender Computer mit weit verbreiteten Betriebssystemen (z.B. MS-DOS), zum anderen tauschen viele der Anwender ihre Programme untereinander und leisten der "Verseuchung" dadurch Vorschub.

Verschleppte Seuche

"Häufiger Diskettentausch mit wechselnden Partnern birgt ein hohes Infektionsrisiko". Die bei Personalcomputern am häufigsten bekanntgewordene Verbreitungsform von Viren findet auf Disketten statt. Congressteilnehmer bestätigten, daß Freeware (Programme zum Tauschen) bisher häufig als Seuchenträger mißbraucht wurden. Dies wirft leider ein schlechtes Licht auf eine an sich positive Form der Softwareverbreitung.

Vorsätzliche Sabotage

Herkömmliche Personalcomputer bieten oft keinen Schutz gegen
Fremdbenutzung. An den Stellen, wo technische Hilfsmittel (Schlösser, Chipcard) den Zugriff begrenzen, könnten sich Saboteure die menschliche Unzulänglichkeit zunutze machen. Wird ein Virus in einem Spielprogramm versteckt, reicht es, die Diskette in die Nähe der DV-Anlage zu bringen. Irgendein Neugieriger wird das Spiel leichtsinnigerweise ausprobieren.
Viren können über jede zugängliche Eingabeschnittstelle in eine DV- Anlage gelangen. Dieses könnte die Konsole eines unbeaufsichtigten Terminals sein oder eitle Fernzugriffsmöglichkeit wie die Fernwartung. Es ist auch denkbar, ComputerViren versteckt in eine zum Abruf angebotene Telesoftware, etwa aus dem Bildschirmtextsystem, auf den eigenen Rechner zu laden. Viren sind bei ihrer Ausbreitung nicht auf Schwachstellen oder verdeckte Kanäle angewiesen. Ist ein Virus erst einmal in ein DV-System gelangt, breitet es sich auf den legalen Pfaden der Benutzer aus. Wird das Virus als wichtige Utility (Hilfsprogramm) gekennzeichnet, so steigt womöglich das Bedürfnis der Anwender dieses Programm zu testen. Auf diesem Wege wird das Virus in alle Zugangsbereiche des jeweiligen Anwenders und/oder des Programmes verschleppt.

Schutz vor Viren

"Viren sind dann gut, wenn der Entwickler des Virus das Serum nicht entwickeln kann" so ein Teilnehmer des CCC 86.

Isolierte Systeme

Isolierte Systeme bieten Saboteuren wenig Angriffsmöglichkeiten, Ein isolierter Personalcomputer kommt jedoch seiten vor. So werden beim Militär die Wechselplatten (ua. Wang 20M13) aus der Zentraleinheit herausgenommen und im Tresor verschlossen. Aber auch dort besteht die Gefahr, daß dem Anwender ein infiziertes Programm untergeschoben wird.

Keine "fremden" Programme

Einfach, aber unpraktikabel ist die Methode keinerlei Fremdsoftware auf dem Rechner zu starten, geschweige denn einzusetzen. Beim Kauf originalversiegelter Programme ist eine Gefährdung im Prinzip weitgehend ausgeschlossen. Kommerzielle Anbieter können es sich aus haftungstechnischen Gründen nicht leisten, Software mit virulenten Eigenschaften zu vertreiben.

Gefahr des Verschleppens

Es ist möglich, daß ein Virus von einem infiziertem System durch den Servicehändler verschleppt wird. Ebenso ist unklar, inwieweit anwenderspezifische Programmpakete nicht durch Fahrlässigkeit des Händlers oder Herstellers verseucht sein könnten.

Vorsicht ist geboten bei Programmen, die z.B. aus Mailboxsystemen geholt oder von "Freunden" kopiert wurden. "Einem Programm - und damit letztlich dem ganzen DV-System - kann man nur genau soviel und genau so wenig Vertrauen schenken, wie dem, der es geschrieben hat". Zu dieser Erkenntnis kam der DATENSCHUTZBERATER(l0/85).

Vorsätzliche Manipulation

Da von den Herstellern kaum technische Zugriffsbeschränkungen angeboten werden und diese auch nur selten von den Anwendern genutzt werden, stellt die Überwachung der befugten Rechnernutzung ein bis heute nicht gelöstes Problem dar. Neben Zugriffsmöglichkeiten durch Dritte sollte der Schutz vor böswilligen Mitarbeitern nicht vergessen werden. Sicherheitssensible Leiter von Rechenzentren lassen ihre Programmierer bei Ausspruch der Kündigung nicht mehr an die Rechner und ändern alle relevanten Fernzugriffsmöglichkeiten.

Schwer erkennbare Verseuchung

Um ein Virus zu erkennen, muß festgestellt werden, ob das mutmaßliche Virus andere Programme infiziert. So einfach diese Regel ist, so schwer ist es, sie zu befolgen. Tatsache ist, daß man Programme schreiben kann, von denen nicht feststellbar ist, ob sie sich wie ein Virus verhalten oder nicht.

Bei geschickter Programmierung fallen Viren auch nicht durch langsamere Lade- oder Laufzeiten der Programme auf. Viren mit hoher Rechenzeit könnten lokalisiert werden. Klar sollte jedoch sein, daß bei aller Sucherei ein einziges überlebendes Virus in den Datenbeständen genügt, um die Infektion erneut zu starten.

Vergleichsprozeduren zwischen gesicherten Programmen und den auf aktuellen Festplatten gespeicherten Programmbeständen ermöglichen das Erkennen von Unterschieden wie Länge und Inhalt. Das die "Seuche" auslösende Programm kann aber schon vor Monaten in die gesicherten Datenbestände übernommen worden sein. Die Verbreitung kann dadurch jederzeit wieder gestartet werden.

An dieser Stelle sollte erwähnt werden, daß Viren fähig sind, alle Schreibschutzattribute (Ausnahme Hardwareschreibschutz an der Diskette), Datums- und Namenseinträge zu ignorieren, beziehungsweise wieder herzustellen. Ein infiziertes Programm muß auch nicht unbedingt seine geänderte Länge anzeigen, ein für den C64 entwickelter Virus täuscht die ursprüngliche Länge im Verzeichnis geschickt vor.

Eine Hilfe für Anwender ist ein hardwaremäßiger zuschaltbarer Schreibschutz für Festplatten. Damit könnte geprüft werden, ob Programme, die nur eine Leseberechtigung haben, unberechtigterweise auf die Festplatte schreiben wollen. Dies ist eine Möglichkeit, bei der Installation neuer Software das Verhalten der Programme zu überprüfen. Gegen Viren, die sich erst mit Verzögerung verbreiten, hilft diese arbeitsintensive Methode jedoch nur bedingt,

Hilfe durch "Kontrolldatei"

Eine begrenzte Möglichkeit sahen Congressteilnehmer darin, über ihre Datenbestände eine Prüfsumme anzulegen. Bei einem Virenbefall würden dann die infizierten Programme erkannt werden. Jedoch muß bei dieser Methode eine vollständige Isolation der Prüfprogramme gewährleistet sein. Ein Virus könnte sonst Prüfsumme oder Prüfprogramm gezielt angreifen.

In diesem Zusammenhang erhielten wir von Ralf Burger Hinweise über ein "Schutzprogramm" (MSDOS), welches unter anderem auf der Basis von Kontrolldateien arbeitet. Sobald dieses Programm seine Funktionssicherheit unter Beweis gestellt hat, werden wir darüber berichten.

Was tun Wenn?

Ohne einen umfassenden vorbeugenden Schutz vor ComputerViren ist es bei einem Virenbefall um die entsprechende Datenverarbeitungsanlage schlecht bestellt. In jedem Fall sollte keine Software mehr verbreitet werden. Ebenso müssen alle Tauschpartner umgehend informiert werden. Weiterhin sollten alle Datenbestände von den Programmen getrennt gesichert werden. Die "verseuchten" Programmbestände müssen isoliert werden und dürfen keinesfalls mehr mit dem System genutzt werden.

Unter Umständen läßt sich aus den verseuchten Programmbeständen das Virus und deren Manipulationsaufgabe isolieren. Gelingt dies, so besteht Hoffnung, den ordnungsgemäßen Stand der manipulierten Daten wiederherzustellen. Andernfalls sind die vermutlich manipulierten Datenbestände Grundlage für den weiteren Betrieb der DV-Anlage.

Zur Verarbeitung der Daten wird eine vollständig neue Programmoberfläche benötigt. Deshalb sollten alle Programme erneut von den Herstellern angefordert werden.

Anzumerken sei an dieser Stelle, daß der Geschädigte den Schaden eines Virenbefalls selber tragen muß, wenn er den "Saboteur" nicht überführen kann. Dies ist auch Voraussetzung für die Inanspruchnahme üblicher "Mißbrauchs-Versicherungen". Ein lückenloser Schuldnachweis ist jedoch bei Computer Viren kaum möglich.

Mehr Forschung und Information

KES (4/85) ruft zur Intensivierung der Forschung auf diesem Gebiet auf. Forschungsergebnisse sollen zukünftige Entwicklungen von Abwehrmaßnahmen ermöglichen, Ziel ist es: Die Risikoschwelle (schnellere Entdeckung) für den Eindringling zu erhöhen. Weiterhin wurde dort die Erstellung eines Sofort-Maßnahmen-Katalogs gefordert. Das spiegelte sich auch in den Beiträgen der Congressteilnehmer wieder. Konsens des Congresses ist, daß nur durch Aufklärung und Information ein Bewußtsein für diese Entwicklung gefördert werden kann und muß. Der CCC wird dieses Thema auf einem 11. PC-Viren Forum im April weiterbehandeln.
 

 

  [Chaos CD]
[HaBi 2]    Virus Grundlagen - Teil 2
[Gescannte Version] [ -- ] [ ++ ] [Suchen]