Studentenarbeit FHGS_AI3 WS 98/99

Datensicherheit und Datenschutz

Viren, trojanische Pferde, Würmer und andere....

Autor: Erasmo Volpe

Datum: 14.1.1998

Version: 1.0

 

 

 

 

Inhalt

1 Einleitung *

Warum schreiben Leute Computerviren? Welche Motivation und Absicht haben Sie? *

2 Was ist ein Computervirus? *

3 Verschiedene Virentypen (allgemein) *

4 Viren Strukturen *

4.1 Code eines Virus *

4.2 Code eines Kompressions Virus *

5 Welche Virentypen gibt es ? *

5.1 Stealthviren *

5.2 BountyHunter-Viren *

5.3 Polymorphe Viren *

5.4 Bootviren *

5.5 Fileviren *

5.6 Würmer *

5.7 Trojanische Pferde *

5.8 Logische Bomben (logic bomb): *

5.9 Makro-Viren *

6 Anhang *

6.1 Code eines Viruses auf UNIX *

7 Gegenmassnahmen *

7.1 Technische Möglichkeiten *

7.2 organisatorisch und personell *

7.3 Wie vorgehen bei infizierung *

8 Referenzen *

8.1 Web-Adressen *

8.2 Newsgroups, die sich mit Computer-Viren beschäftigen *

8.3 FTP - Servern *

  1. Einleitung
  2. Warum schreiben Leute Computerviren? Welche Motivation und Absicht haben Sie?

    Die Frage, warum Leute Viren programmieren ist nicht so leicht zu beantworten.Viren werden aus den unterschiedlichsten Gründen geschrieben. Spaß, Neugier, Zerstörungswut und Minderwertigkeitskomplexe sind oft gebrauchte Schlagworte in diesem Zusammenhang. Weiters werden auch Viren zu Testzwecken geschrieben, um die Sicherheit eines Systems zu prüfen. Diese Programme sind nicht Viren im eigentlichen Sinn, sondern werden meist als Trojanische Pferde bezeichnet. Sie kommen meist nicht in Umlauf.

     

  3. Was ist ein Computervirus?
  4. Ein Computervirus, oder ein virales Programm, ist ein Programm das eurer Computer benutzt, dass sonst normalerweise ihr tut. Es benützt euren Computer für das kopieren und vermehren von sich selbst. Vilele Viren verwenden die Terminierung "loosely"(verloren) um sich zu verdecken von anderen Programmen, auf diese weise versuchen sie ihre Funktion zu verstecken. Ihre Aufgabe ist soviel wie möglich sich zu vermehren und möglichst auf vielen Computern. Stets sollte man sich Bewusst sein das ein Virusprogramm sich im System sich vermehren kann und anderen Programme sowie andere Computer infizieren kann.

    Computerviren sind ernstzunehmende Gefahren die von vielen Computeranwender sehr unterschätzt werden und nichts unternommen wird.

     

  5. Verschiedene Virentypen (allgemein)
  6. Ein großer Teil der Virenprogrammierer produziert irgendwelche Scherzviren, die keinen ernstzunehmenden Schaden anrichten. Die meisten solcher Scherzviren stören schlimmstenfalls bei der Arbeit. Leute, die solche Viren schreiben, tun dies meist aus Interesse an Viren und daran, wie solche Viren zu schreiben sind. Sie experimentieren solange mit den Innereien eines Systems herum, bis dann eben ein Virus entsteht. Haben sie erst einmal geschafft, einen Virus zu schreiben, entdecken sie schnell, daß nicht viel KnowHow notwendig war, dies zu vollbringen und lassen das Virenprogrammieren meist wieder. Ein Teil dieser experimentierfreudigen Programmierer findet aber durchaus Gefallen am Erstellen solcher Programme. Sie experimentieren weiter und bemühen sich, ihre Programme immer besser zu machen, bis diese zerstörerisch werden.

    Hoax-Viren sind überhaupt keine Viren. Dies sind wirklich nur Scherze. Mit immer größer werdender Popularität des Internets sind immer mehr Hoax-Viren aufgetaucht. Meist in Form von Email-Messages, bereiten sie immer wieder Panik bei Leuten, die nicht viel Ahnung von Computern haben. Die Ersteller solcher Hoax-Viren sind nur darauf aus, jemanden "reinzulegen".

    Trojanische Pferde werden aus mehreren Gründen erstellt. Sie können beispielsweise dazu benutzt werden, Passwörter eines Systems auszuspähen. Solche Programme werden oft in Schulen erstellt, um sich mehr Rechte im Schulsystem zu verschaffen. Ein anderes Einsatzgebiet von Trojanischen Pferden, ist zum Testen von verschiedenen Computersystemen. Dazu werden diese "Viren" von Profis geschreiben, zum Testen benützt und dann wieder vernichtet.

    Anscheinend gibt es in unserer angeblich so zivilisierten Welt noch immer Menschen, denen Besitz und Eigentum anderer nichts bedeuten und die aus purem Zerstörungswahn ihren destruktiven Gelüsten freien Lauf lassen. Wie sonst ist es zu erklären, daß Viren den Walzer von der Festplatte takten lassen oder wahllos den Monitor überbeanspruchen, um Löcher in die Lochmaske zu brennen. Etwas harmloser sind da noch Viren die "nur" Daten zerstören. Teilweise auch einfach aus Zerstörungswut, teilweise aus Rachegelüsten gegen eine Institution oder eine Person.

     

  7. Viren Strukturen
  8. Ein Virus kann sich am Anfang oder am Ende eines Ausführbaren Programm anbinden oder auf eine andere mögliche weise. Der Schlüssel zu seiner Funktion liegt darin das es zuerst der infizierte Teil des Programms ausgeführt wird und anschliessend der Originalteil des Programmes.

    Eine generelle Darstellung für ein Virus ist in der Abbildung 1 dargestellt

    In diesem falle, der Virus Code V es infiziert das Programm am seinem Anfang. Durch eine Deckadresse wird beim aufrufen des Ausführbaren Programmes der Virus ausgeführt.

    Ein infiziertes Programm beginnt mit einem Viruscode und arbeitet wie folgt. Die erste Linie des Viruscodes ist ein Jump zum Hauptteil des Virusprogrammes. Die zweite Zeile ist ein spezielle Markierung beidem es anzeigt welches Programm infiziert ist oder nicht. Wenn ein Programm aufgerufen wird verzweigt es direkt zu dem Hauptteil des Virus und sucht nach weiteren nicht infizierten Files die anschliessendinfiziert werden. Findet die Infizierung ohnen grosses Zeitunterschied zum Originalprogramm so bemerkt der User nichts davon.

    Ein solcher Virus kann schnell detektiert werden da die länge des infizierten Programm sich verändert gegenüber das Originalprogramm.

    Damit sich der Virus sich unbemerkbar machen kann komprimiert es den Hauptteil des Virus und das Programm so das es der länge des originalprogrammes entspricht.

    1. Code eines Virus

program Virus

  Sorry der Code musste aus rechtlichen Gründen entfernt werden !!!

Die Funktionsweise ist wie folgt:

  1. Für jedes uninfiziertes file P2 das er findet komprimiert es ein zweites Programm P2 das kürzer ist als das Original P2.
  2. Eine Kopie des Virus wird am Vorderteil des kompriemierten teil P2 angelegt.
  3. Die kompriemierte Version vom Originalprogramm ist infiziert, P1 unkomprimiert.
  4. Das unkomprimierte Original Programm wird ausgeführt.

In diesem Beispiel tut der Virus nichts anderes als sich Verbreiten.

    1. Code eines Kompressions Virus

programCV:=

 Sorry der Code musste aus rechtlichen Gründen entfernt werden !!!

 

  1. Welche Virentypen gibt es ?
  2. Stealthviren

    BountyHunter-Viren

    Polymorphe Viren

    Bootviren

    Fileviren

    Würmer

    Trojanische Pferde

    Virus Sourcecode

    1. Stealthviren
    2. Stealthviren werden aufgrund ihrer Funktionsweise auch manchmal Interrupt Interceptors genannt. Sie verschleiern ihre Anwesenheit, indem sie den Interrupt Table verändern. Da das Betriebssystem diese Interrupts benutzt um u.a. zu prüfen, ob das Filesystem "clean" ist, kann dieser Virus seine Erkennung durch das OS erfolgreich verhindern. Schlimmer noch: In so gut wie allen Fällen führt diese "Umleitung" der Interrupt Handling Routinen zu bösartigen Nebeneffenkten. Der Virustyp äußert sich meist durch Fehlverhalten im Zusammenhang mit der Hardware. Der Virus kann sich durch den "direkten" Zugang zur Hardware leider auch leicht weiterverbreiten. Bootet man das Betriebssystem von Diskette, so kann dieser Virus von geeigneter Software in vielen Fällen erkannt werden. Sonst ist ein Stealth Virus nur schwer zu finden.

    3. BountyHunter-Viren
    4. BountyHunter-Viren sind extrem selten anzutreffen. Der Mechanismus, mit dem diese Virenart arbeitet, ist jedoch grundlegend verschieden von dem anderen Virentypen, die hier aufgezählt wurden. BountyHunter-Viren versuchen nicht, sich vor Antivirensoftware zu "verstecken", sondern diese zu bekämpfen. Dies kann durch Löschen des Virusmusters aus dem Datenfile der Software oder durch Vernichtung des Programms selber passieren. Gegen das Betriebssystem muß sich der Virus jedoch mit "konventionellen" Mitteln zur Wehr setzen, wodurch ein BountyHunter-Virus zumeist Viren anderer Art für schädliche Aktionen im System benützt. Der BountyHunter-Teil des Virus schaltet die Antivirensoftware aus und setzt den "mittransportierten" Virus im System frei.

    5. Polymorphe Viren
    6. Polymorphe Viren, auch Mutations- oder Mutation Engine-Viren genannt, replizieren sich in großer Zahl, sobald sie sich in einem Betriebssystem festgesetzt haben. Dabei verschlüsseln Sie ihren Code mit jeder Replikation, da Antivirensoftware Viren nach bestimmten Mustern (Virus-Patterns) sucht. Analog zu Mutationen in der Evolution, die manchen Arten das Überleben gesichert haben, besteht dadurch die Chance eine Repräsentation zu erlangen, die nicht erkannt werden kann. Überdies hinaus wurde eine "Mutation Engine" von "Dark Avenger" (Gruppe / Einzelperson ?) entwickelt, die auf eine BBS Station mit dem Mutationscode gestellt wurde. Diese Virenart erfreut sich leider ungeahnter Beliebtheit, da durch die "Mutation Engine" auch jeder beliebige Virus in einen polymorphen Virus verwandelt werden kann. Obwohl diese Virenart zumeist Viren anderer Art als Grundlage verwendet, kann jedoch durch den Verschlüsselungsmechanismus eine neue Dimension im Kampf gegen die Erkennbarkeit durch Antivirensoftware hinzugefügt werden.

       

    7. Bootviren
    8. Bootviren sind schwer zu finden, weil sie im Gegensatz zu Fileviren weder die

      Länge von Dateien beeinflussen noch die Performance von Programmen beeinträchtigen.

      Daher bleiben sie meist unentdeckt und verbreiten sich bis sie ihre Aufgabe ausführen.

      Verbreitung

      Diese Viren nisten sich auf dem logischen Bereich von Festplatten oder Disketten, in dem neben Informationen über Formatierung des Mediums auch der für das Laden der Standard IO-Treiber von Betriebsystemen wie DOS oder Windows 95 zuständige Bootloader gespeichert ist, ein. Die Viren hängen sich z.B. an den Bootloader an und werden beim Booten von infizierten Disketten oder Harddisks vor dem Bootloader geladen - auch, wenn die Disk nicht bootfähig ("Not a System Disk") ist, denn der Bootloader wird als erstes geladen und versucht, die Systemdateien zu laden. Nach dem Laden liegt der Virus im Speicher und infiziert alle Disketten und Harddisks bis das System neu gestartet wird.

      Beispiele

      Bootviren sind in ungefähr 200 verschiedenen Varianten im Umlauf. Beispiele für

      Bootviren sind Stoned und Michelangelo, wohl 2 der b

       

    9. Fileviren
    10. Fileviren infizieren, wie der Name schon sagt, Files, genauer gesagt .COM und .EXE Files, manche auch.SYS, .DRV, .BIN, .OVL und .OVY Dateien, indem sie sich vor den auzuführenden Code schreiben und diesen dann aufrufen. Der Virus wird also ausgeführt, bevor das eigentliche Programm gestartet wird. Im allgemeinen vergrößern Fileviren die Länge und die Ausführungszeit der infizierten Dateien.

      Verbreitung

      Der durch Ausführung eines infizierten Programms aktivierte Virus infiziert neue Dateien.

      Es gibt Fileviren, die auch nach der Beendigung des Wirtsprogrammes aktiv (im Speicher resident) bleiben weiter und Programme infizieren. Je nach Art des Virus werden Dateien gleich zerstört, was die Verbreitung etwas einschränkt, oder mehr subtile oder zetiverzögerte Schäden angerichtet.

      Beispiele

      Ein Beispiel für einen Filevirus ist der "Freitag der 13."-Virus.

    11. Würmer
    12. Ein Wurm ist ein in sich abgeschlossenes Programm (oder mehrere Programme), das Kopien von sich selbst (oder von Teilen) auf andere Computer übertragen kann (üblicherweise über Netzverbindungen). Es gibt einerseits Host-Computer Würmer, die vollständig auf einem Computer laufen und das Netzwerk nur zur Verbreitung verwenden, und andererseits Netzwerk-Würmer, die aus mehreren Segmenten bestehen, die wiederum auf mehreren Computern laufen - das Netzwerk wird sowohl zur Kommunikation als auch zur Verbreitung benutzt. Bei der Architektur von Würmern kommt zu normalen Code noch die Netzwerkkommunikation dazu, bei "schädlichen" Würmern das Ausnützen von Sicherheitslücken, um sich verbreiten zu können. Der "Internet Wurm" war ein Host-Computer Wurm, während der Xerox PARC Wurm ein Netzwerk-Wurm war. Der "Internet Wurm" ist der wohl bekannteste Wurm überhaupt. Im November 1988 infizierte er Sun-3 und VAX Maschinen mit 4 BSD Unix. In nur 6 Stunden wurden 3000-6000 Systeme infiziert, die meist nicht mehr benutzbar waren (weil der Wurm zuviel CPU-Zeit benutzte). Allerdings konnte der

      Wurm relativ schnell erkannt und beseitigt werden, allerdings nicht ohne trotzdem relativ hohe Kosten verursacht zu haben (große Teile des Internet waren dadurch nicht benutzbar). Es dauerte weniger als einen Tag bis Programme/Programmanpassungen verfügbar waren, die die Ausbreitung des Wurms verhinderten. Der große Erfolg des Internet-Wurmes beruhte auf bekannten aber noch nicht behobenen Fehlern im "fingerd" bzw. dem "sendmail" Programm. Aufgrund des Codes kann nicht sicher gesagt werden,

      was für ein Schaden beabsichtigt wurde, und es ist sehr wahrscheinlich, das der Wurm noch nicht fertig war, als er ausgeschickt wurde (oder entkam). Bei Xerox hingegen wurde 1979-81 an einem Wurm gearbeitet, der aus verschiedenen Segmenten bestand, die auf verschiedenen Rechnern arbeiteten, um gemeinsam Berechnungen durchzuführen (natürlich schneller als dies auf einer Maschine alleine möglich gewesen wäre). Um Problemen aus dem Weg zu gehen, hatte der Wurm ein spezielles Stop-Signal, das alle Segmente veranlaßte sofort zu beenden. Wie man schon an den beiden Beispielen sieht kann ein Wurm einerseits zur Zerstörung andererseits auch zur verteilten Berechnung benutzt werden. Die Auswirkungen können also noch unbeschränkter (weil auch positiv) als bei trojanischen Pferden sein.

    13. Trojanische Pferde
    14. Ein Trojanisches Pferd ist ein Programm, das Code enthält, von dem der Benutzer nichts ahnt. Der wichtige Unterschied zu einem Virus ist: Ein Trojanisches Pferd verbreitet sich nicht von alleine, es wird vom Benutzer selbst installiert/aufgerufen. Trojanische Pferde können ganz einfache Programmstücke, aber auch hochkomplexe Gebilde sein, da für sie nicht die üblichen Einschränkungen wie für Viren gelten. Ebenso können die Auswirkungen nicht genau beschrieben werden, ein trojanisches Pferd kann eigentlich prinzipiell alles tun, was auch dem

      Anwender erlaubt ist, der das Programm, das das trojanische Pferd enthält, ausführt.

      Wichtige Beispiele für trojanische Pferde sind:

      AOL4FREE.COM und die T-Online Power Tools:

      Die T-Online Power Tools zum Beispiel sammelten im Hintergrund die Paßwörter von T-Online Anwendern und schickten diese (entschlüsselt) an die Programmierer. AOL4FREE.COM, als ein anderes Beispiel, gibt vor, einen freien AOL-Zugang zu erstellen, löscht aber in Wirklichkeit alle Dateien auf der Harddisk. Man kann sagen, daß es sehr viele trojanische Pferde gibt, es aber häufig um das Ausspionieren geheimer Daten oder das Löschen von Daten geht.

    15. Logische Bomben (logic bomb):
    16. Eine logische Bombe ist ein Codestück, das in eine Applikation (oder in das Operating

      System, ...) eingefügt ist, und bestimmte Aktionen (entweder die Sicherheit eines Systems bzw. von Daten betreffend) ausführt, wenn bestimmte Bedingungen zutreffen - beispielsweise ein vorher festgesetztes Datum erreicht wird.

      Logische Bomben können in eine Applikation eingebaut sein (ein typisches Beispiel ist eine logische Bombe, die ein Angestellter einbaut, der erfahren hat, daß er gefeuert ist, um dadurch seinem Arbeitgeber zu schaden, ohne daß er ausgeforscht werden kann). Häufig sind logische Bomben aber auch in Viren selbst eingebaut.

    17. Makro-Viren

    Makro-Viren sind außergewöhnlich insofern, als daß sie sich nicht in direkt ausführbaren Dateien verstecken, sondern in Dokumenten verschiedenster Programme.

    Diese Programme müssen selbstverständlich, um einen Virus zu ermöglichen, die Programmierung erlauben, also eine Makro-Sprache zur Verfügung stellen.

    Das wohl bekannteste Beispiel für einen Makro-Virus ist der Winword.Concept Virus, der, wie sein Name bereits verlautbaren läßt, WinWord Dokumente befällt. Wird

    ein befallenes Dokument geladen, nistet sich der Virus in der Standard-Dokumentvorlagendatei NORMAL.DOT ein, wo er die Speichern-Funktion überschreibt. Die

    neue Speichern-Funktion ruft die alte auf und hängt danach den Virus an das gespeicherte Dokument an.

    Der Winword.Concept Virus hat, bis auf die Reproduktion, keinerlei schädlichen Auswirkungen. Offensichtlich ging es dem Programmierer nur darum, die Machbarkeit

    eines Makro-Virus für WinWord zu beweisen.

     

  3. Anhang
    1. Code eines Viruses auf UNIX

    #ifndef VIRUS

    #define VIRUS

        Sorry der Code musste aus rechtlichen Gründen entfernt werden !!!

    #define main virusmain

    #endif

    Dieser Virus nistet sich in die C Header-Datei /usr/include/stdio.h ein, von wo aus er automatisch in C-Programme dazucompiliert wird. Wird das betreffende Binary dann auf einem anderen Rechner mit root-Rechten ausgeführt, wird auch dieser Rechner infiziert. Der Virus ist, bis auf die Selbst-Reproduktion, trivial. Er hat keine schädlichen Auswirkungen.

  4. Gegenmassnahmen
    1. Technische Möglichkeiten

 

    1. organisatorisch und personell
    1. Wie vorgehen bei infizierung

- Begrenzung des Schadens

- Verhinderung weiterer Ausbreitung

- Feststellung der Ursache / Quelle

  1. Referenzen
    1. Web-Adressen
    2. kumite.com/myths/

      ciac.llnl.gov

      www.virusbtn.com

      www.bocklabs.wisc.edu/ïjanda/

      www.public.asu.edu/ïfayst/virus.html

      www.ncsa.com/virus/

      www.sfsu.edu/ïcamt/virus.html

       

    3. Newsgroups, die sich mit Computer-Viren beschäftigen
    4. alt.comp.virus.source.code

      alt.comp.virus.pro-virus

    5. FTP - Servern

ftp.ntu.edu.au

ftp.tuebingen.mpg.de/pub/Software/VIRUS

ftp.mscf.uky.edu.edu/pub/helpdesk/MAC/VIRUS

ftp.llnl.gov/software-pc/VIRUS

ftp.mighty-micro.co.uk/IBMPC/DOS/Virus

ftp.indiana.edu/iub_only/mac/Util/Virus