Kontakt: Ingo Lücker, ingo.luecker@itleague.de
Heute dreht sich alles um das Thema: „Was ist eigentlich eine heuristische Analyse?“
Bevor ich Ihnen die Frage beantworte, möchte ich Ihnen zunächst einmal erklären, was Heuristik eigentlich ist.
Der Begriff Heuristik stammt aus dem Griechischen und bedeutet so viel wie auffinden oder entdecken. Die Heuristik ist, einfach formuliert, die Lehre des Gewinnens neuer Erkenntnisse auf methodischem Weg.
Kommen wir also zurück zu der Ausgangsfrage: Was ist eigentlich eine heuristische Analyse?
Bei einer heuristische Analyse handelt es sich um eine Methode zur Virenerkennung. Hierbei untersucht die Heuristik den Code einer Datei nach verdächtig erscheinenden Befehlen und Merkmalen. Wenn sie einen verdächtigen Befehl erkennt, erhöht sie den “Verdächtigkeitszähler” für die Datei. Wenn der Wert des Zählers nach Untersuchung des gesamten Codes einen vordefinierten Grenzwert überschreitet, wird die Datei als verdächtig eingestuft.
Der Vorteil der heuristischen Analyse im Vergleich zu signaturbasierten Virenprogrammen ist, dass man nicht nur bekannte Viren, sondern auch neue und modifizierte Viren finden und erkennen kann. Virenprogramme die rein auf Signaturbasis arbeiten, können gefährliche Viren nur dann als schädlich einstufen, wenn diese bereits bekannt sind und analysiert wurden.
In der heuristischen Analyse kommen grundsätzlich zwei verschiedene Techniken zum Einsatz:
Die statische Heuristik und die dynamische Heuristik.
- Bei der statischen Heuristik erfolgt eine Dekompilierung, also das Rückübersetzen, eines verdächtigen Objekts (Programm oder Datei) und die Untersuchung des Quellcodes. Dieser Code wird dann mit Virensignaturen verglichen, die bereits bekannt sind und sich in der heuristischen Datenbank befinden. Sobald ein vordefinierter Prozentsatz des Quellcodes mit Informationen in der heuristischen Datenbank übereinstimmt, wird das Objekt als verdächtig eingestuft.
Die Vorteile dieser Methode liegen in der einfachen Umsetzung und hohen Leistungsfähigkeit. Die Erkennungsrate von neuem schädlichem Code ist jedoch gering, die Wahrscheinlichkeit von Fehlalarmen dagegen hoch.
- Bei einer dynamischen Heuristik werden verdächtige Programme oder Code-Teile in einer sicheren virtuellen Umgebung oder einer Sandbox ausgeführt. Das heißt, dass ein Antivirenprogramm den verdächtigen Code analysiert und alle Befehle, die durch das Aktivieren des Codes auftreten, wie Selbstreplikation, das Überschreiben von Dateien und andere Aktionen, dokumentiert. Wenn das Antivirenprogramm während einer Testausführung Aktionen erkennt/ findet, die als verdächtig einzustufen sind, wird das entsprechende Objekt für die reale Ausführung auf einem Computer komplett blockiert und der Virus somit unschädlich gemacht.
Im Vergleich zur statischen erfordert die dynamische Methode mehr Systemressourcen, da für die Analyse eine sichere virtuelle Umgebung erforderlich ist und die Ausführung von Programmen auf dem Computer bis zum Abschluss der Analyse verschoben wird. Allerdings ist die Erkennungsrate von Schadprogrammen bei der dynamischen Methode entschieden höher als bei der statischen Methode und die Wahrscheinlichkeit von Fehlalarmen ist wesentlich geringer.
Bevor ich zum Schluss komme möchte ich festhalten, dass die heuristische Analyse heutzutage eine zentrale Komponente in Antivirenprogrammen spielt. Moderne Antivirenprogramme kombinieren sowohl die statischen als auch dynamischen Analysemethoden, um schädliche Viren, virusartiges Verhalten und verdächtige Änderungen an Dateien umgehend zu erkennen und unwirksam zu machen. Dadurch lernt sie auf diese Weise selbstständig, neue Gefahren zu entdecken. Außerdem kann man bei einer heuristischen Analyse im Vorfeld die Genauigkeitsstufen für die Untersuchung festlegen.
Allerdings möchte ich erwähnen, dass man die Heuristik sorgfältig abstimmen muss, um die bestmögliche Erkennung neuer Bedrohungen zu bieten, ohne einen Fehlalarm für völlig unschuldigen Code zu generieren.