Newsletter

Hier können Sie sich für unseren News-letter und unsere eJournals anmelden.

 

anmelden

 
Home arrow Artikel arrow Heuristische Analyse: Ich bin absolut sicher

it security

it security widmet sich allen Aspekten der IT-Sicher-heit in strategischer und technischer Hinsicht. Das Magazin stellt praktische und kostengünstige Lösun-gen in den Bereichen Auditing, Penetrationstests, Hacking-Szenarien, Security Management-Konsolen, Firewalls, IDS/IPS, Antiviren-Programme und vielen anderen mehr vor. Zur Zielgruppe gehören unter anderem die Leiter der Bereiche Datensicherheit und Internet in Großunternehmen und dem Mittelstand.

 

Inhaltsangabe

Heuristische Analyse: Ich bin absolut sicher PDF  | Drucken |  E-Mail
13. Mai 2008

Einige der hartnäckigsten Mythen rund um Computer beziehen sich auf Viren und Antivirus(AV)-Technologie. Die weit verbreitete Annahme, dass AV-Software nur bestimmte, bekannte Viren entdecken kann, hält sich schon seit den frühen Tagen der Antiviren-Forschung. Es war schon damals nicht vollkommen richtig; denn einige der ersten AV-Programme waren nicht dafür gedacht, spezifische Viren zu entdecken, sondern virusartiges Verhalten oder verdächtige Änderungen an Dateien zu erkennen beziehungsweise zu verhindern. Heutzutage ist es ganz bestimmt nicht zutreffend.

Kommerzielle AV-Lösungen unterstützen das Scannen nach Signaturen durch eine Vielzahl eher generischer Ansätze, die oft unter dem Titel „Heuristische Analyse“ zusammengefasst werden. Ziel dieses Artikels ist es, das beim Verständnis von AV-Technologien herrschende Durcheinander etwas zu verringern und klarzustellen, was man realistischerweise vom Antivirenschutz und speziell von der heuristischen Analyse erwarten kann.

Was bedeutet Heuristik?

Image 

Heuristik bezieht sich auf den Prozess des Findens oder Entdeckens („heurisko“ griech.: ich finde). Das Oxford-Wörterbuch definiert heuristisch als „eine Person zu befähigen, etwas selbständig zu entdecken oder zu lernen“ oder (im Zusammenhang mit Computern) „zu einer Lösung durch Versuch und Irrtum oder die Anwendung nur unscharf definierter Regeln zu kommen“.

Heuristische Programmierung wird im Allgemeinen als eine Anwendung von künstlicher Intelligenz und als Werkzeug zur Problemlösung angesehen. Heuristische Programmierung, wie sie in Expertensystemen eingesetzt wird, baut auf Erfahrungswerten auf und die von einem solchen System erzeugten Antworten werden besser, indem es aus weiteren Erfahrungen „lernt“ und seine Wissensbasis erweitert. Bei der Anwendung zur Abwehr von Schädlingen (auch von Spam und ähnlichen Ärgernissen) hat die heuristische Analyse eine etwas eingeschränktere Bedeutung. Die heuristische Analyse benutzt einen regelbasierten Ansatz zum Erkennen einer potentiell gefährlichen Datei (oder Nachricht im Fall der Spam-Analyse). Während die Analyseeinheit ihre Regeln abarbeitet und die Nachricht mit Merkmalen möglicher Schadsoftware vergleicht, vergibt sie Punktwerte für jeden Treffer. Erreichen oder überschreiten die Punkte einen Schwellwert, wird die Datei als verdächtig markiert und entsprechend weiter verarbeitet.

In gewissem Sinne versucht heuristische Anti-Malware den Prozess der menschlichen Analyse auf ein Objekt anzuwenden. Genauso wie ein Schädlingsanalytiker aus Fleisch und Blut versuchen würde, Ablauf und Auswirkungen eines vorgegebenen Programms zu bestimmen, führt die heuristische Analyse den gleichen intelligenten Vorgang der Entscheidungsfindung aus und handelt damit wie ein virtueller Malware-Forscher. Während er mehr von und über neu entstehende Bedrohungen lernt, kann er oder sie dieses Wissen durch Programmierung in den heuristischen Analysator einbringen und damit zukünftige Erkennungsraten verbessern. Die heuristische Programmierung spielt bei der Funktion von AV-Lösungen eine Doppelrolle: Geschwindigkeit und Erkennungsrate. Tatsächlich wird der Begriff Heuristik auf anderen Wissensgebieten in einem sehr ähnlichen Sinn angewandt, nämlich zum Zweck der Leistungssteigerung, indem nicht das genaueste Ergebnis gesucht wird, sondern nur ein Ergebnis, das „gut genug“ ist.

Mit der ständigen Erhöhung der Anzahl bekannter Viren ist auch das Bedürfnis nach Steigerung der Erkennungsgeschwindigkeit gewachsen. Anderenfalls würde die weiter ansteigende Zeit zum Scannen nach einer immer größeren Zahl von Schädlingen das System praktisch unbrauchbar machen. So gibt es die verbreitete Vorstellung, dass heuristische Scanner generell langsamer als statische sind, was aber ab einem gewissen Entwicklungsstand nicht mehr gilt. Selbst die nur mit einfacher Mustererkennung arbeitenden heuristischen Scanner aus den Anfangstagen profitierten von Optimierungsmethoden, die nur diejenigen Teile eines Objekts durchsuchten, in denen man das Auftreten eines bestimmten Virus erwarten konnte. (Ein simples Beispiel – es hat keinen Zweck, eine komplette Datei nach einer Virensignatur zu durchsuchen, wenn der Virus seine entscheidenden Teile immer am Anfang oder am Ende einer infizierten Datei speichert.) Das reduziert den Aufwand für das Scannen und verringert das Risiko so genannter False Positives.

Die Erkennung einer Virensignatur an einer Stelle, an der das Virus unter normalen Umständen niemals auftreten würde, ist nicht nur eine Begleiterscheinung mangelhafter Erkennungsmethodik, sondern auch ein Merkmal unzureichend gestalteter Erkennungstests. Ebenso kann ein bestimmtes Objekt, etwa eine Datei oder ein Bootsektor, selektiv nur nach den Malware-Typen gescannt werden, die man realistischerweise in dieser Art Objekt erwarten würde. Schließlich gibt es keinen Grund, in einem Bootsektor nach einem Makrovirus zu suchen. Allerdings ist die korrekte Erkennung des Dateityps kein konkreter Beweis dafür, dass die Datei nicht infiziert ist. Beispielsweise waren Microsoft-Word-Dokumente, die eingebettete Schadprogramme enthielten, lange Zeit ein bevorzugtes Angriffsziel für Informationsdiebstahl und Industriespionage. In gleicher Weise suchen die Autoren von Malware ständig nach Angriffsmöglichkeiten auf Objekte, die normalerweise nicht in der Lage sind, Code auszuführen. Der Virus W32/Perrun hängte sich zum Beispiel an .JPG- und .TXT-Dateien an, konnte aber nicht ausgeführt werden, sofern nicht bestimmte Änderungen an der Systemkonfiguration vorgenommen wurden, die den Perrun-Code extrahierten und zur Ausführung brachten.

Image 

Scannen nach Signaturen

Scannen nach Signaturen ist durch ziemlich geradlinige Algorithmen zur Mustererkennung gekennzeichnet, die nach einer für jeden Virus oder seine Varianten in der Virusdatenbank des Scanners charakteristischen Bytefolge (einer Zeichenkette) suchen, deren Wahrscheinlichkeit für das zufällige Auftreten in einer nicht infizierten Datei aber gering ist.

Die Schwierigkeiten beim Gebrauch des Begriffs „Signatur-Scannen“ sind, dass er den Mythos aufrechterhält, dies sei die einzige Erkennungsmethode der AV-Scanner (tatsächlich können viele Viren nicht einfach durch Suche nach einer statischen Zeichenkette identifiziert werden) und dass er suggeriert, es gäbe in jedem Virus eine einzige Bytefolge, die von allen Scannern zur Erkennung verwendet wird. Auch wird der Eindruck erweckt, Scanner würden nur nach einfachen Zeichenketten suchen statt nach Bytefolgen. Eine derartige Praktik ist generell unzuverlässig, bei vielen Typen von Malware wirkungslos und aus Sicht der Programmierung unwirtschaftlich. Außerdem ist sie durch Virenschreiber leicht auszunutzen und durch die Möglichkeit, zahlreiche False Positives hervorzurufen, gefährlich.

Platzhalter und UNIX-typische reguläre Ausdrucke erlauben eine höhere Flexibilität bei der Zeichenkettensuche. Anstatt nach einer statischen Zeichenkette zu suchen, erkennt der Scanner eine zu einem Virus gehörende Zeichenfolge selbst dann, wenn andere Bytes oder Bytefolgen (Störbytes) zwischen die Elemente der Zeichenfolge geschoben werden. Ein simples Beispiel für ein Störbyte ist das Einfügen eines NOP(No Operation)-Befehls, der keine weitere Funktion erfüllt als Prozessorzeit zu verbrauchen. Diese Verbesserungen erlauben die Erkennung einiger verschlüsselter und polymorpher Viren. Dennoch ist das Scannen nach Strings nicht besonders effizient, wenn es darum geht, nach einer Vielzahl von Viren zu suchen und das Aufkommen komplexer polymorpher Viren hat sogar einige Scanner zur Aufgabe gezwungen, die nicht in der Lage waren, auf fortschrittlichere Erkennungsmethoden umzusteigen.

Das algorithmische, virus-spezifische Scannen der aktuellen AV-Technologie beruht oft auf interpretiertem Code innerhalb einer virtuellen Maschine. Virtualisierung und Emulation können unter anderem dazu genutzt werden, Verschleierungstechniken wie Packen, Komprimierung oder Verschlüsselung zu entfernen. Sobald die Datei unkomprimiert oder unverschlüsselt vorliegt, kann sie algorithmisch – oder heuristisch – analysiert werden. Virtuelle Maschinen spielen eine Hauptrolle bei der heuristischen Analyse und können dabei sehr erfolgreich sein, trotz der Probleme, die mit der Emulation einer so komplexen Umgebung verbunden sind, wie sie ein modernes Windows-System darstellt.

Das Gegenteil von Heuristik

Das Gerücht, dass kommerzielle AV-Lösungen nur bekannte Exemplare, Varianten und Untervarianten von bekannter Malware erkennen können, wurde teilweise durch das Gerücht ersetzt, dass viren-spezifische und heuristische Scanner zwei völlig verschiedene Dinge seien.

Tatsächlich wird die heuristische Analyse schon seit mehr als einem Jahrzehnt benutzt. Sie hatte ebenfalls ihren Platz in Gegenmaßnahmen wie in Programmen zum Überwachen und Blockieren schädlichen Verhaltens sowie Integritätsprüfern. In gewisser Weise ist das Gegenteil der heuristischen Analyse bei AV-Produkten nicht das Scannen nach Signaturen, sondern das algorithmische Scannen, wovon das Scannen nach Signaturen einen Spezialfall darstellt. Was man in der Antiviren-Industrie als algorithmisches Scannen bezeichnet, basiert normalerweise auf einem Algorithmus, der speziell auf den Virus zugeschnitten ist, den er erkennen soll.

In der Realität wird die heuristische Analyse natürlich ebenfalls als algorithmisch angesehen. Heuristik ist normalerweise dadurch gekennzeichnet, dass sie mit einem speziellen Bewertungsalgorithmus die Wahrscheinlichkeit bestimmt, dass ein gescanntes Objekt bösartig ist.

Image 

Generische Antivirus-Methoden

Die heuristische Analyse wird oft als ein generischer und nicht als ein viren-spezifischer Vorgang zur Viruserkennung angesehen. Dabei wird nicht immer berücksichtigt, dass auch die Umkehrung stimmt; generische Lösungen benutzen heuristische Regelsätze als Teil des Diagnosevorgangs.

Die Identifizierung von Viren ist eine Balance zwischen zwei Notwendigkeiten: das Vermeiden falsch negativer (der Misserfolg beim Entdecken einer Infektion) und falsch positiver (fälschliches Erkennen eines Virus) Treffer. Die Fortschritte bei der Optimierung der Scannertechnik haben das Risiko falsch positiver Treffer nicht beseitigt. Der Ausschluss von False Positives ist auch bei Anwendung von Heuristik nicht immer möglich.

Das Ziel der heuristischen Programmierung ist weniger das „perfekte“ Ergebnis zu erreichen, als ein einheitliches Ergebnis, das „gut genug“ ist. Wo ist also das Problem? Die „sicherste“ Methode, einen bekannten Virus zu identifizieren, ist die Suche nach jedem einzelnen Byte des Viruscodes, indem eine Prüfsumme über jedes konstante Bit des Viruskörpers erzeugt wird. Dieser Vorgang wird oft als „exakte Identifizierung“ bezeichnet. Obwohl es wünschenswert scheint, diese Genauigkeit bei jedem Virenscan anzuwenden, kommt sie in der Realität kaum vor, einerseits wegen der möglichen Auswirkungen auf die Scanzeit und des Verbrauchs an Systemressourcen und zum anderen, weil dieser Genauigkeitsgrad nur selten benötigt wird. Erkennung und Beseitigung werfen nicht immer die gleichen Probleme auf.

Einige AV-Firmen haben schon lange dafür plädiert, infizierte Binärprogramme zu ersetzen statt sie zu säubern und sich lieber auf die Erkennung zu konzentrieren. Auch gibt es Szenarien (Rootkits und Stealthkits sind gute Beispiele dafür), wo der Austausch eines legitimen Programms durch einen Trojaner bedeutet, dass die Sicherheits-Software sowieso nur noch löschen und nicht säubern kann. In so einem Fall ist es üblicherweise notwendig, dass entweder der Administrator oder der Anwender das ursprüngliche Programm wiederherstellt; eine automatische Wiederherstellung ist entweder nicht möglich oder zu unsicher.

Malware hat sich in den vergangenen Jahren weg von der klassischen, parasitischen Infektion von Dateien, hin zur Manipulation der Arbeitsumgebung bewegt. Dies kann es viel schwieriger machen, alle Spuren der Malware zu beseitigen, sobald sie sich einmal eingenistet hat. Eine unvollständige (oder fehlerhafte) Beseitigung kann Schäden am System hervorrufen oder es sogar unbrauchbar machen, was manchmal radikale Maßnahmen erfordert, wie die Neuinstallation des Betriebssystems und der Anwendungssoftware sowie die Wiederherstellung von Daten aus den Sicherungskopien. Wo Malware jedoch proaktiv mit heuristischen oder generischen Methoden ausfindig gemacht wird, tritt dieses Problem im Allgemeinen nicht auf.

„Generische Erkennung“ ist ein Ausdruck für die Suche nach einer Anzahl bekannter Varianten mittels eines einzigen Suchstrings, mit dem sich all diese Varianten erkennen lassen. Während man damit auch eine gegenwärtig unbekannte Variante finden kann, in welcher der gleiche Suchstring vorkommt, ist es nur dann eine heuristische Erkennung, wenn dabei eine Bewertungsmethode zum Einsatz kommt. Anderenfalls ist es tatsächlich nur ein Spezialfall der viren-spezifischen Erkennung.

Image 

Empfindlichkeit und Fehldiagnosen

Die Treffgenauigkeit der heuristischen Analyse hängt davon ab, wie aggressiv die Bewertungskriterien eingestellt werden. Wenn der zu findende Schädling neu für den Scanner ist, kann man die Bewertung des Analyseergebnisses nicht anhand einer simplen Ja/Nein-Entscheidung vornehmen. Stattdessen liegt die Ansprechschwelle eines Scanners auf einer kontinuierlichen Skala zwischen den Endwerten Hoch (was die Anzahl der False Positives so niedrig wie möglich hält) und Niedrig (erlaubt die Erkennung möglichst vieler neuer Viren). Ein aggressives Ansprechverhalten des Scanners priorisiert die Erkennung möglicher Viren gegenüber dem Risiko falsch positiver Treffer, wogegen eine nicht-aggressive Reaktion dort geeigneter ist, wo die nachteilige Wirkung von Fehlalarmen nicht akzeptabel erscheint.

Es ist heutzutage nicht unüblich, dass ein Produkt die Auswahl zwischen einer Standardeinstellung (Heuristik ausgeschaltet) und einer Einstellung mit Heuristik anbietet. Einige Hersteller unterscheiden auch zwischen passiver und aktiver Heuristik. In beiden Fällen wird der Code nach verdächtigen Eigenschaften durchsucht, aber im aktiven Modus benutzt der Scanner eine Emulationsumgebung, im passiven Modus führt er nur eine statische Überprüfung des Codes durch.

Weder besitzen alle Scanner diese ganzen Empfindlichkeitsstufen, noch erlauben sie die manuelle Einstellung der Schwellwerte oder eine Änderung ihrer Konfiguration, und diejenigen, die tatsächlich Empfindlichkeitsstufen unterstützen, dokumentieren sie möglicherweise nicht. Anbieter von AV-Software, die ihre fortgeschrittene Heuristik standardmäßig deaktivieren, versuchen damit nicht nur, das Risiko falsch positiver Treffer zu verringern, sondern die empfundene Scan-Geschwindigkeit ihres Produkts zu verbessern. Alle Stufen der heuristischen Analyse erhöhen die Scanzeit durch zusätzliche Verarbeitungsschritte und bei einigen Produkten kann die dadurch verringerte Leistungsfähigkeit allzu offensichtlich werden.

Tatsächlich gibt es bezüglich der Geschwindigkeitseinbußen eine große Schwankungsbreite zwischen den Scannern unterschiedlicher Hersteller. Ein richtig implementiertes Heuristikmodul sollte nur einen minimalen Einfluss auf die Systemleistung haben. Die Art und Weise, wie auf einen möglichen Virus hingewiesen wird, erzählt dem Kunden eine Menge über den Anbieter der AV-Software. Einige Produkte sind dabei übervorsichtig und benutzen Mitteilungen, die im Kern aussagen, dass es sich um eine Variante von Virus X handeln könnte, sie sich aber nicht vollkommen sicher sind. Dies schaltet für den Hersteller das Risiko falsch positiver Treffer aus, überlässt aber dem Kunden die endgültige Diagnose und die Wahl der Gegenmaßnahme. Die meisten Kunden würden sicher bevorzugen, dass die Diagnose vom Scanner gestellt wird. Auch könnten sich die Anwender bei dem Gedanken unbehaglich fühlen, die Software hätte möglicherweise Unrecht, was die Technologie unzuverlässiger erscheinen lassen könnte als sie tatsächlich ist.

Andere Hersteller zeigen zum Teil beeindruckende Meldungen an, etwa in der Art „Schädling XXX gefunden und blockiert“ oder „W32/schrecklichertrojaner erkannt und entfernt“. Das klingt großartig und der Kunde kann seine gebührende Dankbarkeit über die Erkennung und Neutralisierung des Schädlings zeigen, er weiß aber meist nicht, dass es sich bei diesen Bezeichnungen einfach um generische Namen handelt, die auf eine heuristische Erkennung möglicher Malware hinweisen und kein Beispiel für einen speziellen Virus sind. Unglücklicherweise gibt es keine zuverlässige Statistik darüber, wie viele rechtmäßige Programme, E-Mails usw. von einem zu selbstsicheren Scanner als Schädling verleumdet worden sind.

Einige Hersteller empfehlen, die fortgeschrittene Heuristik nur in solchen Umgebungen zu aktivieren, wo die Anwesenheit von Schädlingen vermutet wird oder am wahrscheinlichsten ist, zum Beispiel bei Scannern auf Email Gateways. Das verringert die Irritationen, die durch False Positives auf Arbeitsplatzrechnern hervorgerufen werden, erhöht aber das Risiko falsch Negativer, wenn das Scannen an den Schnittstellen nach Außen fehlschlägt.

Zum Schluss

Es ist auf keinen Fall sicher, dass wir in der vorhersehbaren Zukunft die gleichen hohen Anteile proaktiver Erkennungen wie in den frühen Tagen des heuristischen Scannens haben werden, obgleich das sowohl von den Anwendern als auch von den Herstellern begrüßt werden würde. Die Urheber von Malware haben aber andere Prioritäten. Statt mit der Schrotflintenmethode (maximale Verbreitung einer einzigen Variante) zu arbeiten, setzen sie den Schwerpunkt auf häufige, aber kurze Angriffe mit einem bestimmten Schädlingsexemplar, das auch noch auf bestimmte Personen oder Gruppen zugeschnitten sein kann. Selbst einfache Änderungen, wie eine Reihe schnell zusammengestrickter und modifizierter Laufzeitkomprimierer zur Verschleierung seiner Spuren, können die Erkennungsrate reduzieren und die Möglichkeiten selbst der größten Anti-Malware-Labors über Gebühr beanspruchen.

Bestimmte Schädlingsformen, die häufigen Gebrauch von Botnetz-Techniken machen, um sich selbst zu aktualisieren und zu modifizieren, sobald sie auf einem kompromittierten Rechner installiert sind, sind nach wie vor schwer zu entdecken. Allerdings gibt es keinen Grund zur Panik. Das Benutzen des gesunden Menschenverstandes bei der Arbeit am Computer, das Einspielen aller relevanten Patches und die regelmäßige Aktualisierung der AV-Programme bieten einen ziemlich guten Schutz. Nicht nur das, sondern auch weiter verfeinerte Virtualisierungs- und Emulationstechniken, verbunden mit heuristischer Analyse bleiben ein starker und sich ständig weiterentwickelnder Bestandteil im Arsenal der Anbieter von Sicherheitslösungen. Es können jedoch weder Hersteller noch Befürworter von alternativen „Technologien des Monats“ behaupten, alle zukünftigen Bedrohungen proaktiv erkennen zu können. Es ist ratsam mit den Erwartungen realistisch zu bleiben.

Diesen Artikel finden Sie auch in der Ausgabe 3-2008 des it security.

 
< zurück   weiter >