Um das mal etwas von der
AV-Seite zu beleuchten. Es gab in 2008 einen Workshop hier in Reykjavík zum Thema. Viele der
AV-Hersteller sind unserer Einladung gefolgt und wir haben hier unweit der Uni das Thema von verschiedenen Seiten beleuchtet.
Es war schon damals Konsens, daß diverse Packer wie Themida unter Generalverdacht stehen. Es gab noch einige andere ähnlich trickreiche Packer (bzw. "Schutzprodukte") welche ebenfalls in diese Kategorie fielen. Wobei der Indikator dafür meist die Verbreitung innerhalb guter und schlechter Software ist. UPX stand damals zumindest nicht durch eine Mehrheit der AVs unter Generalverdacht.
Ansonsten einigte man sich darauf weiterzumachen wie bisher und eine einheitliche Lösung anzustreben (wobei das auch schon bei der Namensgebung einstmals angestrebt wurde). Die Entscheidung
ob ein Packer unter Generalverdacht steht, ist dabei abhängig vom Hersteller.
Dennoch gab es im Nachhinein noch eine Entwicklung die derzeit doch etwas ins Stocken geraten ist. Bei der IEEE hat sich eine Arbeitsgruppe (bestehend aus diversen Mitgliedern der
AV-Herstellergemeinschaft) unter dem Namen Taggant mit der Entwicklung eines Systems befaßt welches, nicht unähnlich zu AuthentiCode, eine Art Signatur in vom Packer gepackte Dateien einbetten soll um danach statt des Packers nur die Dateien welche mit dem Packer eines bestimmten Kunden gepackt wurden in die Erkennung zu nehmen. Dieses Projekt wurde unter anderem von Jeremy Collake, dem Autor des zuvor schon erwähnten kommerziellen PECompact, vorangetrieben.
Man kann sich vielleicht denken, daß dies im Hinblick auf FLOSS-Packer ala UPX ein paar Probleme bereitet und darf nicht zuviel davon erwarten. Auch denke ich, daß dies mehr oder minder nur ein Symptom bekämpft (mal abgesehen davon daß es natürlich unheimlich schwer ist in mit Themida und anderen Virtualisierung benutzenden Packern gepackten Dateien etwas zuverlässig zu erkennen), statt die Ursache.
Denn was wir (ich habe ja bekanntlich auch einige private Projekte) als Entwickler wollen ist ja, daß die Anzahl der Fehlalarme reduziert wird. Leider gibt es da einen sehr unglücklichen Mechanismus bei dem die
AV-Hersteller (u.a. via VirusTotal und Testern) die Samples austauschen. Wenn also Firma A die Datei X in die Erkennung aufnimmt, passiert es oft, daß Firma B sich die Datei nicht mehr sorgfältig anschaut und mehr oder minder Firma A vertraut. Das setzt sich dann so fort und so verbreitet sich eine Erkennung (ob wirklich bösartig oder Fehlalarm ist egal) innerhalb der
AV-Szene. Leider gibt es keinen Mechanismus allen
AV-Herstellern mitzuteilen daß eine Datei harmlos ist, um eine nochmalige Überprüfung anzustossen. Genaugenommen ist es schwer dies schon bei einzelnen
AV-Herstellern zu erreichen. Umgekehrt ist es manchmal aber auch schwer zu erreichen, daß
AV-Hersteller eine bösartige Datei in die Erkennung aufnehmen, wie ich bei WinDirStat erleben mußte (siehe
hier und
hier).
Meine private Meinung ist, daß das gesamte System kaputt ist und verschiedene Hersteller (
OS,
AV und andere) versuchen mit verschiedenen Methoden das Problem zu flicken ... was in einem Flickenteppich resultiert.
Übrigens gibt es, wie uns zwei der Projektverantwortlichen bei VirusBulletin 2013 vor einem Monat in Berlin berichteten, auch ein Projekt (CMX-IEEE) welches versucht die Metadaten von sauberen Programmdateien direkt von den Herstellern einzusammeln. Auf meine Nachfrage hin wie man denn überprüfe wer Dateien einreichen dürfe denen dann irgendwie vertraut würde, hieß es, daß zum Anfang ohnehin nur große Hersteller ala Microsoft, Oracle, Google und so weiter im Programm beteiligt wären. Interessant ist dies insbesondere bei Microsoft welches ja auf beiden Seiten des Zaunes steht (
AV-Hersteller und "normaler" Softwarehersteller).
Nach dem Vortrag hatte ich noch die Gelegenheit Mark Kennedy direkt zu fragen und der meinte auf meine Nachfrage hin, daß für FLOSS- und Software-Kleinhersteller keinerlei Lösung von diesem System zu erwarten sei (siehe
hier).
Eine Anmerkung noch zum Thema Packen von DLLs (und Dateien die nicht *.dll heißen aber dennoch faktisch DLLs sind). Bitte laßt es. Es ist hochgradig unsinnig, auch wenn unsere Systeme heutzutage immer mehr
RAM zur Verfügung haben.