![]() |
AW: InnoSetup und Trojaner-Heuristiken
Zitat:
|
AW: InnoSetup und Trojaner-Heuristiken
Liste der Anhänge anzeigen (Anzahl: 1)
Moinsen,
als altgedienter AV-Mensch (auch wenn ich seit einem reichlichen Jahr nicht mehr dabei bin), wollte ich mal ein paar Dinge einwerfen. Zitat:
Zitat:
Erkennungen (detections) verbreiten sich innerhalb der Industrie - leider rasend schnell. Auf VT hochladen ist auch nicht die geilste Idee, weil dort im Hintergrund Analysetools für alle AVler bereitstehen (ich habe noch Zugriff) und sowas selbst geflaggt werden könnte, denn auch Malwareautoren machen genau das (allerdings sind viele davon auf eigene Dienste "im Darknet" umgeschwenkt, welche - wie VT - die Kommandozeilenscanner o.ä. der jeweiligen AVs benutzen). Einerlei, Erkennungen verbreiten sich, egal ob Fehlalarm oder echt bösartig. Und das Problem ist, während sich mit VT und anderen Initiativen durchaus was herausgebildet hat, um innerhalb der Industrie Erkennungen zu teilen, gibt es keinerlei Möglichkeit allen Herstellern von AVs gleichzeitig die Meldung zukommen zu lassen, daß man Opfer eines Fehlalarms war. Hier hilft aus meiner Sicht mittelfristig nur eine Regulierung durch die Politik, ![]() Das Problem ist, daß Einspruch seitens der jeweiligen Autoren von - an sich - harmlosen Programmen nicht vorgesehen ist. Und da keiner für die Fehlalarme zur Verantwortung gezogen wird und bspw. die fälschliche Erkennung zu keinen negativen Folgen (außer bei AV-Test und Konsorten) führt, wird lieber "über-erkannt". Man kann also nur auf gesellschaftlicher Ebene einfordern, daß sich auch AV-Hersteller für von ihnen zu verantwortende Rufschädigung geradestehen müssen. Zitat:
Übrigens müssen die Catalog-Dateien bei Treibern genau aus diesem Grund von MS gegengezeichnet werden (früher nannte es sich Cross-Signing und stand nur zur Verfügung nachdem die WHQL-Tests durchlaufen wurden, jetzt gibt es auch die abgeschwächte Variante des Attestation Signing). Kurzum Microsoft sieht deine Treiber bevor sie dein Kunde zu Gesicht bekommt. Hat Vorteile. Bspw. bekommt man als Hersteller auch Zugriff auf die Minidumps von BSODs die der eigene Treiber mutmaßlich zu verantworten hatte. Zitat:
Und da die Heuristiken auch noch schnell sein sollen - und die AV-Engines ohnehin - werden auch gern Abkürzungen genommen. Jede Menge! Und da - wie oben geschrieben - keiner für Fehlalarme zur Verantwortung gezogen werden, es sei denn die treten ausgerechnet bei einem der, meiner Meinung nach extrem verzerrten, AV-Tests auch (z.B. von AV-Test, AV Comparatives, VB100). Kombiniert man das zu einem Gesamtbild, erklärt sich einem Betrachter von außen recht schnell, warum es so läuft wie's läuft. Signaturen (AuthentiCode) haben nicht viel gebracht und Packern wollte man ![]() ![]() Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Anhang 52464
Code:
... mit dem hier:
Result,Address A,Size A,Address B,Size B
Match,0h,BBE08h,0h,BBE08h Difference,BBE08h,5h,BBE08h,5h Match,BBE0Dh,13h,BBE0Dh,13h Difference,BBE20h,4h,BBE20h,4h Match,BBE24h,18Ch,BBE24h,18Ch Difference,BBFB0h,15h,BBFB0h,15h Match,BBFC5h,754900h,BBFC5h,754900h Difference,8108C5h,Dh,8108C5h,Dh Match,8108D2h,68h,8108D2h,68h Difference,81093Ah,55B1h,81093Ah,55B8h Match,815EEBh,B2625h,815EF2h,B2625h
Code:
... bekommen wir folgende Ausgabe (ok.exe/bad.exe ... in der Reihenfolge):
#!/usr/bin/env python3
import sys def main(*args): for fname in args: print("Datei %s" % (fname)) with open(fname) as f: md_dict = {} for line in f: tk = line.strip().split(",") assert len(tk) == 5 if tk[0] in {"Result"}: continue curr = [int(x.strip("h"), 16) for x in tk[1:]] tpname = tk[0] if tpname not in md_dict: md_dict[tpname] = [] md_dict[tpname].append((curr[1], curr[3],)) for k, v in md_dict.items(): first, second = sum([x[0] for x in v]), sum([x[1] for x in v]) print("{:10}: {:10} vs. {:10}".format(k, first, second)) if __name__ == "__main__": main(*sys.argv[1:])
Code:
Das ist ein schon recht kleiner Unterschied, oder?
$ ./compare.py Compare.csv
Datei Compare.csv Match : 9187124 vs. 9187124 Difference: 21980 vs. 21987 Fazit:
[1] Bei meiner Zwischenstation bei Lavasoft in Göteborg habe ich gelernt, daß eigentlich mehrfach wöchentlich Unterlassungsaufforderungen (cease & desist letters) ankamen, wenn sich einer der Adware-Hersteller auf den Schlips getreten fühlte. Bei AV-Herstellern war das bis vor ein paar Jahren alles immer recht schwarzweiß, bis man anfing Potenziell unerwünschte Anwendungen (PUA) auch mit aufzunehmen. Da stellt sich dann halt die Frage ob ![]() ![]() |
AW: InnoSetup und Trojaner-Heuristiken
Zitat:
Zitat:
Zitat:
Zitat:
![]() Heute läuft vieles über Sandkästen. ![]() 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. Zitat:
|
AW: InnoSetup und Trojaner-Heuristiken
Zitat:
Was AV-Hersteller überhaupt nicht mögen ist negative PR. Und die bekommen sie meistens maximal durch irgendwelche AV-Testveranstaltungen [1] und dort gemachte Fehlalarme. Aber wenn sich wirklich eine Menge von Entwicklern gemeinsam immer wieder über sowas aufregt, kann daraus etwas entstehen, was dazu führt, daß es einen Rechtfertigungsdruck gibt und daß die AV-Hersteller (das wäre meine Mindestforderung) den Betroffenen eine zentrale Anlaufstelle zur Verfügung stellen. Am besten direkt in ihr Programm eingebaut. Sprich: die Verteilung findet über die existierenden Mechanismen statt (bspw. hatte Norman da vor Jahren etwas etabliert) aber der einzelne Hersteller bekommt immer die Fehlalarmmeldungen seiner eigenen Kunden. Es gab vor Jahren mal eine Initiative von einem kleinen ISV (der Autor von PECompact), der eine "Hall of Shame" für die ganzen Fehlalarme etablieren wollte. Leider ist das Projekt eingeschlafen. Einerlei: als Entwickler von Software sind wir in einer speziellen Position. Wir sind gleichzeitig Anwender von AV-Software und Betroffene bei Fehlalarmen und zusätzlich sind unsere Anwender meistens auch die Anwender von anderen AV-Herstellern und dort Betroffene. Mit dieser Argumentation und den schwachen Argumenten der AV-Industrie sollte sich etwas machen lassen. [1] Die halte ich komplett für Schiebung mittlerweile. Ich sag nur AMTSO. Der Grundstein wurde damals auf Einladung von Friðrik in Reykjavík gelegt (2010/2011?). Ich war 2017, glaub ich, in Innsbruck bei einer Tagung dabei und bin seitdem etwas desillusioniert in Sachen AV-Tests. Zwar pochten einige der Tester durchaus auf gewisse Verfahrensweisen, aber erstens machen sich einige Tester durch Geldfluß von den AV-Herstellern abhängig und außerdem saßen da mehrere Dutzend AV-Mitarbeiter und vielleicht ein Dutzend Tester. |
AW: InnoSetup und Trojaner-Heuristiken
Zitat:
Übrigens: auch Zeitstempel (auch die von Signaturen, oder von den Datensätzen die zu den Debugsymbolen gehören oder der Zeitstempel im PE-Header - der allerdings nicht bei Delphi) sind Indikatoren bei den Heuristiken :zwinker: Frisch erstelltes Programm bei dem andere Indikatoren knapp unter der Schwelle für die Erkennung bleiben? Oh?! Frisch erstellt! Bingo ... Hauptgewinn für den Entwickler! :mrgreen: |
AW: InnoSetup und Trojaner-Heuristiken
Zitat:
Zitat:
Also erstens ist es meistens nicht gerade wenig Aufwand es einem Hersteller zu melden, sofern man das entsprechende Formular findet (und dieses auch funktioniert und man dutzendfach CAPTCHAs gelöst hat oder daran gescheitert ist). Aber während dieser Zeit tickt bereits die Uhr. Erstens wird der AV-Hersteller dem du den Fehlalarm meldest nicht einfach die Erkennung rausnehmen, sondern das wird einem anderen Prozeß zugeführt und nur in Ausnahmefällen guckt da mal ein Mensch drauf. Und bis dahin kann auch schonmal ne Woche oder zwei vergehen. Ach ja, macht dein AV-Hersteller auf der Formularseite ein Versprechen, man würde sich bei erfolgter Nachanalyse zurückmelden? Nicht? Tscha ... shit happens. Und in dem jeweiligen Prozeß wird wahrscheinlich dein Programm nicht nur den Analysewerkzeugen rund um VT zugeführt, aber auch. Und wenn derweil andere AV-Hersteller schon bei deinem Hersteller die Erkennung - pardon, den Fehlalarm - ![]() Ich hab das selber mit WinDirStat durch. Und zwar in zwei Richtungen. Einmal wollte ich eine trojanisierte Variante in Erkennung aufnehmen lassen. Das ging recht flott, auch da ich durch unser Virenlabor halt Zugang zu anderen Kanälen hatte als der Endanwender oder betroffene Softwareentwickler. Ein anderes Mal wurde leider fälschlich ein harmloses Kompilat erkannt. Ach ja, es gibt natürlich ![]() ![]() |
AW: InnoSetup und Trojaner-Heuristiken
Zitat:
Zitat:
Vor allem die Hintergründe zu VT und Co. Ein ungutes Bauchgefühl hatte ich eh bei dem Ansatz "so lange kleine Änderungen probieren, bis es passt." Das hat sich dann bestätigt, und ich werde das bleiben lassen, bzw. nur in Ausnahmefällen machen. Generell sind mir Fehlalarme bei den ganzen AV-Herstellern egal in dem Sinne, dass ich da keine Arbeit reinstecke, um die von meiner Seite zu beheben. Dafür ist mein Nutzerkreis zu klein, und die Schnittmenge zu Nutzern von Antivirus-Produkt-XY dürfte eher ein-, maximal zweistellig sein. Beim Windows Defender sieht das etwas anders aus, daher habe ich mich an der Stelle mal oberflächlich damit beschäftigt. Zum Begriff Schlangenöl: Ich bin da nicht so fanatisch wie z.B. fefe. Problematisch sehe bei AV-Software, dass sie unter Umständen bei einigen Usern ein (falsches) Gefühl der Sicherheit erzeugt, und im Ernstfall dann doch nicht hilft. Bei Sicherheits-Komplett-Paketen, die dann auch TLS-Verbindungen aufbrechen, werde ich aber wirklich skeptisch. Ein Virenscanner, der im Hintergrund läuft, ist schon sinnvoll denke ich. Ich bin da auch sehr dankbar, dass MS sowas bei Windows integriert hat, und dass deren Defender relativ unauffällig arbeitet. Und nicht regelmäßig Popups produziert wie "Alles OK, ich mache einen super Job!" und "Bitte hier klicken zum Kauf der Vollversion". |
AW: InnoSetup und Trojaner-Heuristiken
Zitat:
Den Anderen ist es wohl eher mehr egal, hauptsache "sicher". Wobei, viele der AV-Programmhersteller nutzen doch keine eigene Signaturen und verwenden die von wo anders, aber ich hätte dann eigentlich auch erwartet, dass es dort dann auch einfacher wird, wenn sich nur Einer oder eine Gruppe um die Befüllung/Bereinigung/Reparatur kümmern, anstatt jder Hersteller selbst. Zum Glück hatte ich selber noch nicht so große Probleme und die zwei/drei mal, war das Problem zwei Stunden bis paar Tage Später weg, nachdem ich den Fals-Positive hochgeladen hatte. Nur ein paar Neuerungen von Microsoft nerven, denn standardmäßig ist jetzt "Löschen" voreingestellt, statt den Kunden zu warnen nerven. Und dann diesee neue coole Funktion, wo ich grade wieder den Namen vergessen hab, da wird beim "ersten" Start die EXE ungefragt/heimlich in die Cloud hochgeladen, für x sekunden blockiert/verzögert und dann geperrt, oder wenn die Cloud nicht schnell genug reagiert nach 10 oder 30 Sekunden erst gestartet. [EDIT] OK, war zu einfach der Name: "block at first sight" :freak: ![]() ![]() Hatte ein Programm auf dem Server kompiliert, via RDP her geholt und wollte es lokal testen ... erst gefühlt ewig warten und dann der Sperrbildschrirm. |
AW: InnoSetup und Trojaner-Heuristiken
Zitat:
Für mich ist das eine Ähnlichkeit, vielleicht auf 'ner anderen Ebene, als bei Meier und Maier, aber es gibt halt eine bestimmte Menge an (algorithmischen) Übereinstimmungen. Zitat:
Nichtsdestotrotz: Deine Antworten sind hoch informativ und gegeben auch uns Laien einen kleinen Einblick in die Materie. Muchas gracias! |
AW: InnoSetup und Trojaner-Heuristiken
Zitat:
![]() AVs schützen vor Dingen, die den jeweiligen Herstellern bekannt sind, bzw. durch eine Heuristik erfaßt werden. So weit, so gut. Problem ist nur, daß in der Tat allein schon durch das Parsen von Dateien aller Couleur jede Menge Angriffsfläche frisch entsteht. Guck dir die mehr oder weniger regelmäßigen Schwachstellen in Sachen Archivformate an. Und wenn es dann an die Bearbeitung der gemeldeten Schwachstellen kommt, dann merkt man, daß es auch bei AV-Herstellern kein höheres Problembewußtsein für Schwachstellen gibt als anderswo. Die Kritik ist also durchaus berechtigt. Im Gegensatz zu den ganzen anderen im obigen Artikel verlinkten Programmen haben die meisten AVs aber durchaus auch eine Schutzwirkung. Daher finde ich den Begriff Schlangenöl - bei aller berechtigter Kritik! - unpassend. Zitat:
Leider ist es nicht im Interesse der AV-Hersteller Anwender zu schulen. Das wäre aus meiner Sicht die wirksamste Methode schlechthin. Aber als ehemaliger Admin weiß ich auch, daß die meisten Anwender auch keinen Bock haben geschult zu werden. Zitat:
![]() Zitat:
Zitat:
Erkennung ergibt sich grob gesagt aus: Engine (Code) + "Signaturen" (Daten). Meistens sind diese "Signaturen" nur zu jeweils einer Engine kompatibel. Aus Endanwendersicht gibt es also jene AV-Hersteller mit eigener Engine und jene ohne eigene Engine. Letztere bauen - auch wenn das jetzt etwas überspitzt und verkürzt ist - im Prinzip nur eine Benutzeroberfläche um eine existierende AV-Engine. Und ja, es kann sein daß ein solcher Hersteller seine eigenen "Signaturen" anbietet oder zusätzlich zu denen des Herstellers der AV-Engine eigene erstellt und anbietet (dazu gibt's dann Werkzeuge seitens des Herstellers der Engine). Bei VT kann man häufig an der gleichen Namensgebung erkennen ob sich mehrere AV-Produkte eine Engine teilen. Dann gibt es noch den Spezialfall mehrerer Engines. Meistens sind das dann Hersteller aus der zweiten Kategorie, denn die Engine-Hersteller befinden sich ja in einer natürlichen Konkurrenz zueinander. Meist wird die schnellste Engine vorgeschaltet. Zusätzliche Engines dienen dann der Verifikation. Denn allgemein galt bei uns immer: sobald wir etwas erkennen, geht's nicht mehr um Geschwindigkeit, sondern um Gründlichkeit. Bei mehreren Engines bekäme also die Engine 2 die Datei nochmal vorgelegt und so können dann bspw. Fehlalarme (False Positives) ausgeschlossen werden. Aber ich kann keine wirklichen Details nennen, da ich da nicht genug Einblick habe (Multi-Engine). Ich würde annehmen, daß der Produkt-Hersteller die eingesetzten Engines selbst bewertet und so quasi den Erkennungen eine Vertrauenswürdigkeit zuordnet und dementsprechend einen Gesamt-Score ermittelt. Also bspw. weiß der dann daß Engine 1 die schnellste ist, also wird die davorgeschnallt. Außerdem ist Engine 1 gut bei - sagen wir mal - Droppern. Hingegen bei PUA ergibt sich eine Diskrepanz zu den Bewertungskriterien von Engine-Hersteller und Produkt-Hersteller. Also werden PUA-Erkennungen von Engine 1 nochmal Engine 2 vorgelegt und dann ggf. "durchgelassen". Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz