[English]Heute können wir das Türchen mit der Nummer 20 im Sicherheits-Adventskalender öffnen. Dahinter verbirgt sich heute mal ein Beispiel, wie Virenscanner ein Softwaretool fälschlich als gefährlich einstufen und einen falschen Alarm auslösen. Stefan Kanthak hat mir dies an Hand seines Tools CPUID Enumerator and Decoder demonstriert.
Anzeige
CPUID Enumerator and Decoder
Der CPUID Enumerator and Decoder ist ein Befehlszeilen-Alias-Konsolenprogramm für Microsoft® Windows® NT und neuer, der auf dieser Webseite beschrieben wird. Das Programm CPUPRINT.EXE dekodiert und druckt die aus den CPUID- und XGETBV-Anweisungen des Prozessors gewonnenen Informationen. Damit erhält der Nutzer einen Überblick, welche Features eine CPU erstellt:
- IBRS, STIBP, IBPB, L1D_FLUSH und SSBD,
- sowie das Vorhandensein der modellspezifischen Register IA32_ARCH_CAPABILITIES und IA32_FLUSH_CMD
Letztere wurden von AMD und Intel mit Firmware alias Microcode-Updates eingeführt, um die Schwachstellen
- CVE-2017-5715 alias Branch Target Injection,
- CVE-2017-5753 alias Bounds Check Bypass,
- CVE-2017-5754 alias Rogue Data Cache Load,
- CVE-2018-3639 alias Speculative Store Bypass,
- CVE-2018-3640 alias Rogue System Register Read,
- CVE-2018-3693 alias Bounds Check Bypass Store, und C
- VE-2018-3615, CVE-2018-3620 plus CVE-2018-3646 alias L1 Termination Fault, besser bekannt unter ihren Spitznamen Meltdown, Spectre, Spectre-NG und Foreshadow zu fixen.
Außerdem werden die Alias-Merkmale für Prozessorfähigkeiten PCID, das 2010 in der ersten Generation von Intel Core-Prozessoren mit Westmere-Mikroarchitektur eingeführt wurde, und INVPCID, das 2013 in der vierten Generation von Intel Core-Prozessoren mit Haswell-Mikroarchitektur eingeführt wurde, aufgezählt. Also ein sehr sinnvolles Tool, wenn man sich über die Fähigkeiten einer CPU informieren möchte.
Garantiert virenfrei, aber Scanner schlagen Alarm
Stefan Kanthak schrieb mir die Tage in einer Mail: Meinen CPUID-Decoder baue ich garantiert virenfrei mit dem Microsoft C-Compiler aus dem Quellcode und meiner NOMSVCRT.LIB (anstelle der MSVCRT) . Es werden dabei die folgenden 4 Varianten erstellt:
Anzeige
Lädt man dann die betreffenden .exe-Dateien auf Virustotal hoch, erhält man einen Weihnachtsbau an "roten Warnungen", wie gefährlich die Programme doch seien. Hier die Links:
- www.virustotal.com Beispiel 1: 34 von 73
- www.virustotal.com Beispiel 2: 12 von 70
- www.virustotal.com Beispiel 3: 1 von 70
- www.virustotal.com Beispiel 4: 0 von 71
Virustotal Fehlalarme
Das Tool wird in den betreffenden Virenscannern untersucht, und diese sprechen auf bestimmte Codefolgen an, die dann als schädlich gemeldet werden. Man beachte aber, dass die obigen vier Links im Grunde den gleichen Code, nur als 32 oder 64 Bit und mit UTF-16 oder ASCII-Ausgabe bewerten.
Da alle 4 Programme dieselben Zugriffe auf CPUID-Funktionen ausführen, müssten sie gleichermassen als schädlich eingestuft werden. Der Unterschied zwischen den ASCII- und UNICODE-Varianten ist jedoch, dass erstere ASCII-Zeichenketten und die ASCII-Funktionen des Win32-API verwenden, letztere UNICODE-Zeichenketten und die UNICODE-Funktionen.
Während im ersten Link noch 34 von 71 Virenscanner anschlagen, herrscht beim letzten Link eitel Sonnenschein – kein Virenscanner meckert.
Ergänzung: Stefan hat noch zwei weitere Varianten (32-, 64-Bit) gebaut, die keine Decodierung als ASCII oder UNICODE vornehmen. Bei einer Variante schlagen 5 von 71 Scanner an, bei der anderen Variante meinen 0 von 71 Scannern, dass die Datei bösartig ist.
Ein Beispiel, dass man den Virenscannern von Virustotal (bzw. den dort teilnehmenden Herstellern) nicht trauen sollte – die sind schlicht in manchen Fällen ein Schätzinstrument, was irgend etwas anzeigt.
Artikel des Security-Adventskalenders
1. Microsoft Defender Version 1.353.1874.0 meldet fälschlich Trickbot/Emotet
2. Windows 10/11: Falle beim "trusted" Apps-Installer; Emotet nutzt das
3. Beispiele für Viren-Mails nach Übernahme eines Exchange-Servers
4. Phishing-Angriffe von Staatshackern über neue RTF-Template-Injection-Technik
5. BSI-Empfehlung: Reagiert nicht auf SPAM-Mails
6. Android App Barcode Scanner Lite mit Trojaner – öffnet zufällige Webseiten
7. Cyberangriff auf SPAR-Lebensmittelgeschäfte in Yorkshire/England
8. Excel XLL-Addins für Malware-Installation missbraucht
9. Hellmann Logistics Opfer eines Cyberangriffs
10. Cloud-Dienste über USB-over-Ethernet-Schwachstellen angreifbar
11. Malware in Android Apps am Beispiel von GriftHorse
12. Azure Privilege Escalation durch Missbrauch der Azure API-Permissions
13. Phishing-Angriffe auf deutsche Kunden nutzen QR-Codes, um Bankdaten zu stehlen
14. Mirai Botnet Moobot zielt auf Hikvision-Kamerasysteme
15. Windows, TPM, MEM, und Intune: Hürden beim Motherboard-Wechsel
16: Häufige Login-Versuche an Routern (FRITZ!Box)
17: Insides zu Irelands Public Healthcare Ransomware-Fall
18: Sennheiser legt Kundendaten über alte Cloud-Instanz offen
19: Analyse, wie TeamTNT Docker-Hub-Konten kompromittiert
20: CPUID Enumerator and Decoder: Virenfrei, aber von Virustotal geflaggt
21: Google Play Protect: Bei Android-Sicherheitstests im Sommer 2021 durchgefallen
22: Tipps für mehr Schutz gegen Smishing-Attacken
23: BSI warnt: Erhöhte Bedrohung durch Ransomware-Angriffe zu Weihnachten
24: Google Zweifaktor-Authentifizierung (2FA), was man wissen sollte
Anzeige
Ich habe solche seltsamen Fehlalarme vor einigen Jahren mit dem kostenlosen Avira Virenscanner erlebt, als ich selbst entwickelte C-Programme mit der damals aktuellen Version von MinGW übersetzt habe. Die Debug Builds wurden von Avira als Malware-verseucht gemeldet, die Release Builds wurden nicht beanstandet. Ein Kollege hatte es zu einem noch früheren Zeitpunkt gerade anders herum erlebt.
Man muss bei all diesen Schutzprogrammen berücksichtigen, dass sie heuristisch arbeiten. Das ist im Grunde genommen lediglich die vornehme Bezeichnung für "sie raten Pi mal dicker Daumen zum Quadrat".
Grundlage für Heuristiken sind bestimmte Muster im Maschinen-Code der ausführbaren Dateien. Die automatische Erkennung der Zeichencodierung bei Textdateien arbeitet nach dem gleichen Prinzip – der Dateiinhalt wird auf bestimmte Muster untersucht. Meistens funktioniert das, aber eben nicht immer. Wer mit Textdateien aus unterschiedlichsten Quellen (Herkunftsland, Zeitraum der Erstellung, ursprüngliche Rechnerplattform) arbeiten muss, kann ein Lied davon singen.
Das ist ein bekanntes Problem und betrifft nicht nur Software, welche man selbst erstellt. In der Sysinternals Suite gibt es das schöne Programm Autoruns, welches alle Programme und Dienste auflistet, welche Windows beim Starten so lädt.
Man kann dann alle Hashes dieser Programme automatisch gegen Virustotal prüfen lassen. Da kommt es regelmäßig zu False Positives. So wird z.B. das Programme Zahlungserinnerung aus der Banking Software Windata oder der NetPhone Client der Deutschen Telekom von einzelnen Scannern als infiziert markiert.
Auf der anderen Seite werden verseuchte Anhänge aus Mails oft als völlig virenfrei bewertet. Das ändert sich erst nach einigen Stunden. Erst nach ca. einer Woche haben dann die meisten Scanner ihre Erkennung angepasst.
Die Ergebnisse bedürfen immer der Interpretation. Bei Mail-Anhängen suchen wir aus Gründen des Datenschutzes immer nur nach dem Hashwert. Die "Bewerbung" könnte ja auch echt sein und dann wäre der Upload ohne Zustimmung ein ernstes Problem.
Bestes Indiz für eine Infektion ist, dass der SHA-256 Hash bereits bekannt ist. Das jemand anders die identische Datei erhalten hat, zeigt dass da etwas faul sein muss. Das Ergebnis des eigentlichen Scans intessiert meist weniger.
Gruß Singlethreaded
> Bei Mail-Anhängen suchen wir aus Gründen des Datenschutzes immer nur nach dem Hashwert.
Tipp aus der Realität: Zeitgemässe Spam Kampagnen versenden an niemanden die exakt binärgleiche Datei. Selbst einfachste PHP Spamscripts auf irgendwelchen gehackten Servern sind in der Lage, ein paar Bytes im Anhang zu randomisieren. Nur Hashwert prüfen ist trügerische, wenn nicht planlose Pseudosicherheit. Klingt hart, ist aber so.
Es kommt in der Tat erstaunlich oft vor, dass die Dateien bereits bekannt sind und mehrfach verwendet wurden. Das es natürlich auch anders geht, ist mir durchaus bewusst und spätestens bei einer gezielten Attacke wird das Ganze "maßgeschneidert" sein.
Ich wollte nur darauf hinweisen, dass man Virustotal mit Vorsicht nutzen sollte, da die Ergebnisse immer im Kontext zu bewerten sind. Wie geschrieben sind als infiziert gemeldete Dateien oft in Ordnung und nicht als infiziert markierte Dateien sind aber in Wirklichkeit Viren/Malware.
Aber: Hat jemand anderes z.B. eine Bewerbung mit dem gleichen Hash erhalten, dann wird die Datei direkt gelöscht, selbst wenn Virustotal diese Datei als virenfrei listet. Es ist einfach nicht plausibel, dass die Datei auch an andere Stellen gesendet wurde. Daraus darf aber im Umkehrschluss nicht gefolgert werden, dass die Datei in Ordnung ist, nur weil noch nicht bekannt.
Wir filtern einige tausend Malware-Samples im Jahr und das ist nur dass, was nicht im ersten Anlauf vom Virenscanner erkannt wurde. In einem gewissen Rahmen kann Virustotal dabei als zusätzliches Werkzeug dienen, aber es ist nur ein kleiner Baustein.
Gruß Singlethreaded
Es könnte typisch, dass bei 64-bit-Software ("neu") die Erkennungsraten niedriger sind.
Leider kann ich nicht auf S.Kanthaks Webseite zugreifen, unser Proxy sperrt diese Seite wegen dem Eicar-Test-Ding. Das ist völliger Irrsinn.
naja dazu muss man halt Ergebnisse eines Scanners auch lesen und deuten können!
Heuristik und PUP verursachen oft False Positives, lassen sich aber mit etwas Ahnung auch leicht als solche erkennen.
Macht der Microsoft Defender sogar noch mieser: bei selbstgeschriebenen (absolut sauberen Code) stuft der den als gefährlich ein weil er nirgends verbreitet ist! Somit aus seiner Sicht suspekt.
Virenscanner sind eben nur ein einzelnes Zahnrad im Getriebe Sicherheit … und man sollte mit den Ergebnissen schon auch was anfangen können.
Luzifer sagte:
Virenscanner sind eben nur ein einzelnes Zahnrad im Getriebe Sicherheit … und man sollte mit den Ergebnissen schon auch was anfangen können.
———————————————-
Virenscanner sind ein Zahnrad nicht im Getriebe "Sicherheit", sondern im Getriebe "Malware". Schraubt man sich sowas ins System, hat man einen Netto-Verlust an Sicherheit, das System ist dann unsicherer als es vorher war – und deren Ergebnisse taugen genau gar nichts.