Angreifer versuchen von Natur aus, ihre wahren Absichten zu verschleiern. Dazu steht Autoren von Schadsoftware ein umfangreiches Sortiment an Werkzeugen zur Verfügung. Ein oft genutzter Weg, um Analysten das Leben ein kleines bisschen schwerer zu machen, ist das Obfuskieren von Quellcode. Schaut man sich die Datei dann an, sieht man nur einen scheinbar zusammenhanglosen Zeichensalat, den man erst einmal sorgfältig durchkämmen muss. Manches davon lässt sich automatisieren, anderes wiederum erfordert Handarbeit. Ein für die Malwareautoren positiver Effekt der Verwendung von Cryptern und Code-Obfuskierung ist, dass sie Teile ihres Codes anderweitig "recyclen" können, ohne jede Mal etwas Neues zu schreiben.
Um es einmal provokativ zu formulieren: Obfuskierung und der Gebrauch von Cryptern ermöglich es einem Angreifer, faul zu sein. Diese Faulheit hat auch ihren - wirtschaftlichen - Sinn: Neuen Code zu schreiben und zu testen kostet Zeit und Geld. Beides setzen Angreifer normalerweise nicht ein, wenn sie bereits etwas Fertiges in der Schublade haben, das sie benutzen können. Genau dies passiert nämlich in den allermeisten Fällen, wie Marion Marschalek und Raphael Vinot heruasgefunden haben (siehe hierzu Teil 3 der Artikelreihe).
Der Perfekte Angriff, oder "Wenn schon, denn schon"
Wer allerdings mehrschichtige Obfuskierung und andere Methoden des 'Selbtsschutzes' in einer maßgeschneiderten Malware erwartet, befindet sich im Irrtum. Hier liegt die wirkliche Herausforderung im Umgang mit dieser Art Schadsoftware im völligen Fehlen dieser Merkmale. Bei Angriffen, für die ein Angreifer tatsächlich die Kosten und Mühen aufgewendet hat, eine speziell angepasste Schadsoftware zu schreiben, gilt das Motto "Wenn man es schon macht, dann kann man es auch richtig machen". Sorgfältig geplante und am Reißbrett entworfene Schadsoftware ist der Albtraum eines Analysten. Das Fehlen sonst typischer Merkmale von Schadsoftware zwingt Analysten daher, ihre Herangehensweise von Grund auf neu zu überdenken.
Weiche Kriterien und andere Metriken
Es wird zunehmend deutlich, dass der Begriff "hochentwickelt" ein sehr weiches und inflationär gebrauchtes Kriterium ist, wenn es um die Charakterisierung von Schadsoftware geht. In der Tat ist es so, dass vieles, was in den Medien als "hochentwickelt" dargestellt wird, in Wahrheit manchmal recht krude zusammengeschustert ist und sich eigentlich nur verschiedener existierender Komponenten bedient, die es von der Stange gibt. Das bedeutet andererseits jedoch nicht, dass man diese Arten von Schadsoftware als harmlos abtun sollte, im Gegenteil. Man sollte nur bei der Verwendung des Begriffes "hochentwickelt" etwas mehr Vorsicht walten lassen. Wird zum Beispiel entdeckt, dass sich ein Trojaner (Remote Access Trojan, "RAT") bereits seit längerem in einem Netzwerk eingenistet hat, werden oft die Begriffe "persistent" und "hochentwickelt" miteinander verwechselt.
Analysten müssen also neue Wege finden, um geschützte bösartige Dateien zuverlässiger identifizieren zu können. Zwar gibt es zahlreiche Werkzeuge, die einem helfen, zum Beispiel die Nutzung eines Packers zu erkennen. Allerdings sind diese teilweise relativ alt und potenziell fehleranfällig. Zudem bedeutet es nicht automatisch, dass eine Datei bösartig ist, wenn ein Packer benutzt wurde. Deshalb müssen andere Indikatoren entwickelt werden, die eine verlässlichere Identifikation erlauben.
Mehr informationen
Wer mehr über neue Wege in der Analyse moderner APTs wissen möchte, kann dies im Blog von G DATA Advanced Analytics nachlesen (Artikel in englischer Sprache).