Heuristik heißt bei Virenscanner: Wir suchen nach 'ner Ähnlichkeit.
Nee, das bedeutet wir such(t)en nach Indikatoren und ab einer bestimmten Schwelle schlagen wir Alarm, falls zu viele Indikatoren bedenkliche Werte zeigen.
Sprich: Das ist von außen nicht durchschaubar.
Es ist bedingt durchschaubar, klar. Aber es ist jetzt auch nicht wirklich Zauberwerk ... vieles kann man sich auch allein denken. Beispiele:
- Welcher Compiler wurde benutzte (effektiv das was PEiD macht, AV-Hersteller benutzen bspw. Yara)
- Gibt es eine Signatur?
- Ist die Signatur gültig?
- Vertrauen WIR (als der AV-Hersteller) der Signatur?
- Welche Importe hat die Datei und aus welchen DLLs? (bspw. UNC-Pfade? ... böse!)
- Keine oder wenige Importe? (Laufzeitpacker/Protector oder der Versuch sich einer Analyse/Erkennung zu entziehen)
- Wie ist die Entropie der Datei (Laufzeitentpacker oder nicht ...)?
- Gibt es verdächtige Strings? (ja, das ist exakt das Beispiel von gausi!)
- Wird auf Debugsymbole verwiesen? Deren Pfade können verräterisch sein, siehe vorheriger Punkt ...
- Wie verhält sich die Datei beim emulieren innerhalb der Engine? (Jupp, bei uns steckte da ein echter Emulator drin, denn nur so konnte man bei Laufzeitentpackern und "Schutz"-Programmen ala Themida reingucken)
Wenn heute eine Datei problemlos durch alle Virenscanner als ok durchgeht, kann morgen schon die gleiche Datei in absolut unveränderter Form nicht mehr durchgehen, einfach, weil in der Heuristik was verändert wurde und nun irgendwas als Treffer interpretiert wird, was gestern noch kein Treffer war.
Sehr richtig!
Man muss eigentlich immer damit rechnen, dass ein Virenscanner von heute auf morgen bei einer bestimmten Datei zuschlägt oder eben auch nicht mehr zuschlägt.
Letzteres ist aber deutlich unwahrscheinlicher.
Erinnert sich noch jemand? Das war clever, aber jeder in der Industrie wußte, wie's läuft. Manuell war schon vor Jahren Pumpe. Manuelle Analysen von interessanter Malware hat man sich allenfalls noch als PR gegönnt und weil man so der Konkurrenz ne Nase drehen konnte.
Heute läuft vieles über Sandkästen.
Gibt's sogar als FLOSS. Einige haben eigene Technologie zu dem Thema, meine ehemalige Firma hat das verschlafen. Bzw. ich weiß mittlerweile daß ein Konkurrent schneller war (der auch bei mir anfragte ob ich nicht Interesse an einem Job hätte). Schon auf der VB2013 war ein richtungsweisendes Paper vorgestellt worden. Diese Erkenntnisse hätte man nutzen und ausbauen können. Stattdessen wurde in dieser Richtung nichts getan und nun lizensiert man es halt von Dritten. Dumm gelaufen.
Eigentlich hatten wir auch sowas wie einen Sandkasten, nämlich die interne Version unseres Befehlszeilenscanners. Der hat jede Menge Extrainfos ausgespuckt, welche dann wiederum weiterverarbeitet werden konnten.
Einerlei, was passiert wenn du eine Datei bei VT hochlädst, ist daß die durch die ganzen
AV-Engines durchgejagt wird und auch nochmal in mindestens einer Sandbox läuft. Was anderes machen auch die
AV-Hersteller nicht. Nur stark parallelisiert und automatisiert. Da wird dann geclustert und versucht neue Methoden zu finden wie man zu Clustern kommen kann und das in Heuristiken abbilden kann. Da gibt es die wildesten Methoden.
Die haben überall ihre Honigtöpfe aufgestellt oder sehen bspw. anhand der URLs in Email-Kampagnen (Antispam und Antimalware ist nämlich in dieser Hinsicht supi kombinierbar) was gerade abgeht. So werden auch Malwarekampagnen zeitnah aufgedeckt. Aber gegen Spearphishing hilft das natürlich auch nix.
Irgendwann war die Exe plötzlich virenverseucht (auch wenn man sie mit Delphi neu kompilierte). Ein paar Tage später war sie es dann nicht mehr, dazwischen lagen nur ein paar Updates der Signaturdateien des Virenscanners. Andere Virenscanner befanden die Exe die ganze Zeit über als "völlig unauffällig".
Wobei man dazusagen sollte, daß es in der Tat schon Malware hab, welche die vorkompilierten Objektdateien auf Rechnern mit Delphi (usw.) befiehl und somit die Programme frisch ab Werk verseucht waren. Aber deine Geschichte klingt schon nach Fehlalarm.