InSeon YOO Ulrich ULTES-NITSCHE Kann mein Computer krank werden? Janus: Ein Projekt zur Virenerkennung COMPUTERVIREN ERKENNUNG NEUER VIREN Computerviren sind kleine Programmteile, die sich in andere Programme hineinkopieren können. Man sagt dann, dass ein Computerprogramm durch ein Virus infiziert wird. Läuft ein infiziertes Programm im Computer ab, so wird auch das Virus gestartet und versucht normalerweise: • andere Programme zu infizieren, • sich über das Computernetzwerk oder per E-Mail auf andere Computer zu verteilen, • Schaden auf dem auszuspionieren. Computer anzurichten oder Informationen Um die Bezeichnung „Virus“ besser zu verstehen, hilft uns folgende einfache Analogie zu biologischen Viren: Wenn wir unseren Computer mit einem Organismus, Programme mit biologischen Zellen und das Computervirus eben mit einem biologischen Virus vergleichen, dann befällt das Virus den Computer („Organismus“), indem es die Programme („Zellen“) befällt und durch seine Aktivität Schaden anrichtet (der Computer wird „krank“). Infektionen sind nur durch direkten Kontakt möglich. Soll heissen: nur wenn Computer in direkten Kontakt treten – durch den Austausch von Daten – ist es möglich, dass ein infizierter Computer (als „Wirtssystem“) einen anderen Computer infiziert. Unser Körper kann uns manchmal auch gegen Schädlinge schützen, gegen die wir nicht geimpft sind. Unser Immunsystem kann sie als nicht zu unserer Physiologie gehörig erkennen und bekämpfen. Diese Idee versuchen wir im Projekt Janus auch auf Computer anzuwenden. Wir versuchen zu erkenn, ob Daten an einer Stelle gefunden werden können, die dort eigentlich nicht hingehören. Es ist uns gelungen, Viren in infizierten Programmen zu erkennen, ohne dass das entwickelte Erkennungssystem etwas von existierenden Computerviren wüsste. Wir verwenden dazu ein untrainiertes neuronales Netz (eine bestimmte Art von Computerprogrammen zur „Mustererkennung“). „Untrainiert“ bedeutet hierin, dass dieses neuronale Netz nicht gelernt hat, was Viren sind. Dennoch entsteht, wenn wir uns das neuronale Netz grafisch anschauen, ein charakteristischer blauer Punkt, wenn ein Virus ein Programm infiziert hat. Die nachfolgende Abbildung zeigt ein Beispiel: VIRENERKENNUNG UND -BEKÄMPFUNG virus data Wie eine Impfung, bei der unser Körper „lernt“, Viren anhand spezieller „Muster“ zu erkennen und dann zu bekämpfen, funktionieren auch Anti-VirenProgramme auf Computern. Sie erkennen Viren anhand spezifischer „Muster“, die sie in infizierten Programmen hinterlassen und können den identifizierten Virus dann entfernen. Diese charakteristischen „Muster“ von Viren heissen Virussignaturen. Ein Anti-Virus-Programm enthält also eine grosse Menge von Virensignaturen (eine Viren-Datenbank) und einen Programmteil, der nach Mustern in Programmen auf unserem Computer sucht, die in der Viren-Datenbank enthalten sind. Schickt uns z.B. jemand ein infiziertes Programm per E-Mail und die Signatur des Virus ist in der Viren-Datenbank enthalten (unser Computer ist gegen dieses Virus „geimpft“), so wird das Anti-Viren-Programm die Infektion des Programms erkennen, den Virus unschädlich machen und uns warnen, dass uns ein virusinfiziertes Programm geschickt wurde. DAS PROBLEM NEUER VIREN Abb. 1: Identifikation eines unbekannten Virus in einem Programm. Bei nicht infizierten Programmen entsteht dieser blaue Punkt nicht. Bevor wir versuchen, zu erklären, warum das so ist, noch ein Hinweis zu den Grenzen dieser Virenerkennungsmethode: • Unsere Methode hat bisher bei Experimenten mit „echten“ Computerviren funktioniert. Das heisst aber nicht, dass sie immer und in allen Fällen funktionieren wird. • Die vorgestellte Methode funktioniert nicht bei so genannten Würmern und Makro-Viren: • bei Würmern entstehen die blauen Punkte nicht, Wir wissen alle, dass eine Grippeimpfung uns z.B. nicht gegen Kinderlähmung schützt. Genauso verhält es sich bei Computerviren: Ein Anti-Viren-Programm schützt unseren Computer nur gegen Viren, die es kennt (gegen die unser Computer „geimpft“ wurde). Gegen andere Viren bietet es keinen Schutz. Speziell wenn ein neues Virus auftritt, dessen Signatur noch kein Anti-VirenProgramm kennt, kann kein Anti-Viren-Programm unseren Computer vor einer Infektion durch dieses neue Virus schützen. Es gibt sozusagen noch keinen „Impfstoff“ gegen dieses Virus. Bei Computerviren dauert die Entwicklung eines „Impfstoffes“ zwar nicht so lange wie bei biologischen Viren – Signaturen neuer Computerviren werden heute recht schnell gefunden und die Anti-Viren-Programme entsprechend aktualisiert –, trotzdem kann ein neues Computervirus zunächst sehr schnell sehr viel Schaden anrichten: Manche Computerviren haben weltweit Schäden in Milliarden-Franken-Höhe verursacht. Es wäre daher wünschenswert, wenn wir zumindest manche neuen Computerviren erkennen könnten, auch wenn deren Signatur noch nicht bekannt ist. Dies ist eines der Ziele des hier vorgestellten Projekts. • bei Dokumenten, die von Makro-Viren befallen werden können, entstehen die Punkte auch im nicht infizierten Fall. Dennoch: Wenn es mit unserer Methode zu verhindern gelingt, dass sich ein einziges neues Virus ausbreiten kann, dann hätte sich der Forschungsaufwand bereits gelohnt. Nun noch zur Erklärung des Ergebnisses: Wir vermuten (genau wissen wir es auch nicht, da wir von unserem Ergebnis zum Teil selbst überrascht waren), dass ein Virus in einem anderen „Stil“ programmiert ist als das Programm, das es infiziert. Unser System erkennt also einfach nur, dass sich in einem Computerprogramm ein Teil befindet, der anders ist als der Rest – ganz wie wenn das Immunsystem etwas findet, das dort nicht hingehört. MITARBEITENDE Projektleiter: Prof. Dr. Ulrich Ultes-Nitsche Assistentin: InSeon Yoo