• IT-Karriere:
  • Services:

AVG: Viren-Heuristik ausgetrickst

Antiviren-Programme versuchen mittels Emulation, das Verhalten von unbekannten Programmen zu untersuchen und so verdächtigen Dateien auf die Spur zu kommen. Doch die Erkennung lässt sich oft trivial umgehen.

Artikel veröffentlicht am , Hanno Böck
Kyle Adams auf der BSides Las Vegas.
Kyle Adams auf der BSides Las Vegas. (Bild: Hanno Böck)

Täglich wird das Internet mit neuer Malware überschwemmt. Früher verließen sich Antiviren-Programme vor allem darauf, bekannte bösartige Programme anhand von Signaturen zu erkennen. Doch diese Methode funktioniert kaum noch. Inzwischen wird daher verstärkt versucht, generisch zu erkennen, ob sich ein Programm wie Malware verhält. Kyle Adams von der Firma Juniper zeigte auf der B-Sides-Konferenz in Las Vegas, wie einfach sich derartige heuristische Mechanismen austricksen lassen.

Stellenmarkt
  1. IT-Systemhaus der Bundesagentur für Arbeit, Fürth
  2. Volkswagen Vertriebsbetreuungsgesellschaft mbH, Wolfsburg

Adams begann damit, einen trivialen Virus zu schreiben. Als Programmiersprache wählte er Javascript. Unter Windows lassen sich Standalone-Javascript-Programme in sogenannten Windows-Script-Files (Dateiendung WSF) ausführen. Die WSF-Datei wurde mittels des Windows-eigenen Tools IExpress in eine EXE-Datei umgewandelt. IExpress ist in der Lage, selbstentpackende Archive zu erstellen, die beim Aufrufen entpackt und ausgeführt werden.

Verhalten wie typische Malware

Das Beispielprogramm verhielt sich wie typische Malware: Es versuchte, sich in den Autostart-Ordner von Windows einzutragen. Falls es Administrator-Rechte besitzt, sorgt es dafür, dass es auch beim nächsten Systemstart mit entsprechenden Rechten geladen wird. Es lud von einem Kontrollserver Instruktionen, etwa zur Ausführung von weiterem Code, der online nachgeladen wird.

Adams sagte, dass er viele der Mechanismen, die Viren üblicherweise nutzten, in Threads auf gängigen Programmiererforen wie Stackoverflow oder dem Microsoft Developer Network (MSDN) erklärt gefunden habe. Oftmals war kaum zu übersehen, dass die gestellten Fragen sich auf die Programmierung von Malware bezogen.

Dennoch nicht erkannt

Golem Akademie
  1. IT-Sicherheit für Webentwickler
    31. Mai - 1. Juni 2021, online
Weitere IT-Trainings

Obwohl das Beispielprogramm quasi das Musterbeispiel eines typischen Virus darstellte, erkannten vier getestete Antiviren-Engines - die Tools von Sophos, ESET, Avira und Symantec - das Programm nicht als Malware. Einzig das Programm AVG entdeckte den bösartigen Code.

AVG führte offenbar eine Emulation des Javascript-Codes durch und schlug wegen des verdächtigen Verhaltens Alarm. Doch sonderlich ausgefeilt waren die Methoden dabei nicht: Nach einigen Beobachtungen stellte Adams fest, dass die Emulation offenbar nur eine bestimmte feste Zahl von Instruktionen ausführte. Das simple Einfügen einer Schleife, die 80.000 mal nichts tat, führte schon dazu, dass AVG das Programm wieder für harmlos hielt.

Einfache Methoden hebeln Emulation aus

Obwohl dieser einfache Trick ausreichte, die Heuristik auszuhebeln, suchte Adams nach weiteren Methoden. So war es ihm möglich, mit verschiedenen Funktionen im Virencode zu erkennen, ob der Virus sich gerade in der Emulation befindet, und demnach zu entscheiden, ob verdächtiger Code ausgeführt wird. HTTP-Requests wurden beispielsweise automatisch mit einer korrekten Antwort (HTTP-Code 200) und einer leeren Datei beantwortet. Mit einem Zugriff auf eine nichtexistente Domain ließ sich das abfragen. Schreibzugriffe auf den Windows-Ordner System Volume Information sollten immer einen Zugriffsfehler erzeugen, die Emulation von AVG implementierte aber keinerlei Rechteverwaltung bei Dateisystemzugriffen. Dort ist ein Schreibzugriff immer möglich und erzeugt nie einen Fehler.

Insgesamt fand Adams sieben Möglichkeiten, die Heuristik von AVG auszutricksen. Würden alle sieben auf einmal umgesetzt, könnten wahrscheinlich die meisten oder sogar alle Antiviren-Programme überlistet werden.

Wie drastisch diese Probleme sein könnten, zeigte Adams in einem letzten Beispiel. Diesmal verwendete er nicht Javascript, sondern die Windows-Skriptsprache Visual Basic Script. Er nahm den Code des 14 Jahre alten ILOVEYOU-Virus, einer der am weitesten verbreiteten Computerviren aller Zeiten. Adams fügte lediglich eine Schleife ein, die 80.000 mal nichts tat. Auch dabei scheiterte die Erkennung von AVG.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed


Anzeige
Top-Angebote
  1. 59€ (Bestpreis)
  2. 1.099€ (Bestpreis)
  3. (u. a. Super Seducer 3 - Uncensored Edition für 10,79€, Total War: Rome - Remastered für 26...
  4. 399,99€

nille02 07. Aug 2014

Du solltest bei dem Thema noch mal komplett von vorne anfangen. Aber eine blühende...

Mithrandir 07. Aug 2014

Jeder, der unter Windows für Android entwickelt. Und ja, das sind ein paar Leute.

user unknown 06. Aug 2014

Das hatte ich bislang noch nicht überlegt, aber kam beim Lesen des Artikels drauf: Das...

Destroyer2442 06. Aug 2014

bin gerade beeindruckt, dass es Delphi überhaupt noch gibt, ewig nichts mehr von gehört ^^-

0xDEADC0DE 06. Aug 2014

Heuristik ist nicht deren einziges Geschäftsmodell, muss ich mich nun mit Troll Öl...


Folgen Sie uns
       


Outriders angespielt

Im Video stellt Golem.de das von People Can Fly entwickelte Actionspiel Outriders vor.

Outriders angespielt Video aufrufen
Programm für IT-Jobeinstieg: Hoffen auf den Klebeeffekt
Programm für IT-Jobeinstieg
Hoffen auf den Klebeeffekt

Aktuell ist der Jobeinstieg für junge Ingenieure und Informatiker schwer. Um ihnen zu helfen, hat das Land Baden-Württemberg eine interessante Idee: Es macht sich selbst zur Zeitarbeitsfirma.
Ein Bericht von Peter Ilg

  1. Arbeitszeit Das Sechs-Stunden-Experiment bei Sipgate
  2. Neuorientierung im IT-Job Endlich mal machen!
  3. IT-Unternehmen Die richtige Software für ein Projekt finden

Weclapp-CTO Ertan Özdil: Wir dürfen nicht in Schönheit und Perfektion untergehen!
Weclapp-CTO Ertan Özdil
"Wir dürfen nicht in Schönheit und Perfektion untergehen!"

Der CTO von Weclapp träumt von smarter Software, die menschliches Eingreifen in der nächsten ERP-Generation reduziert. Deutschen Perfektionismus hält Ertan Özdil aber für gefährlich.
Ein Interview von Maja Hoock


    Fiat 500 als E-Auto im Test: Kleinstwagen mit großem Potenzial
    Fiat 500 als E-Auto im Test
    Kleinstwagen mit großem Potenzial

    Fiat hat einen neuen 500er entwickelt. Der Kleine fährt elektrisch - und zwar richtig gut.
    Ein Test von Peter Ilg

    1. Vierradlenkung Elektrischer GMC Hummer SUV fährt im Krabbengang seitwärts
    2. MG Cyberster MG B Roadster mit Lasergürtel und Union Jack
    3. Elektroauto E-Auto-Prämie übersteigt in 2021 schon Vorjahressumme

      •  /