social.sokoll.com

Leserbrief zu "deine Domain hat Malware" von einem Demo-Coder:
Zum Thema "Schlangenöl nimmt Webseite als Geisel und verhindert, dass Leute mit gängigen Browsern sie überhaupt zu Gesicht bekommen" möchte ich dir über meine Erlebnisse erzählen. Betrachte dich also bitte als Kummerkasten ;) Vielleicht findest du aber auch den ein oder anderen (Ab-)Satz für deine Leser interessant; in diesem Falle: bedien dich. (Und spring' von mir aus gleich zum TL;DR am Ende :)

Im Vorfeld: Ich bin, was amoklaufende Virenscanner angeht, schon einiges gewohnt. Ich bin in der Demoszene aktiv (also jetzt nicht der mit den brennenden Autos, sondern der mit den Grafikdemos), insbesondere im Bereich 4k- und 64k-Intros, also Demos mit einer Größenbeschränkung auf wenige Kilobyte. Da kommen praktisch immer sehr spezielle Laufzeitpacker wie "Crinkler" (http://www.crinkler.net/) und "kkrunchy" (http://www.farbrausch.de/~fg/kkrunchy/) zum Einsatz, um noch das letzte Byte herauszukitzeln. Dummerweise haben wohl auch mal Malware-Autoren diese Packer zur Obfuscation benutzt, und da Schlangenöl-Hersteller das Brett an der dünnsten Stelle bohren, haben sie, anstatt die Malware ordentlich zu analysieren, einfach die Packer auf die schwarze Liste gesetzt. Da ich selbst ein paar mit besagten Packern komprimierte, aber an sich völlig harmlose 4k- und 64k-Intros auf meiner Webseite hoste, habe ich schon mehrfach von meinem Hosting-Provider böse Mails bekommen, ich möge doch binnen X Stunden meine Site saubermachen, sonst wird sie vom Netz genommen. Bisher ist das immer mit einer erklärenden Mail aufzulösen gewesen, zum Glück.

Andere Demoszener haben übrigens angefangen, ihre Intros in einer Form zum Download anzubieten, die automatisches Scanning unmöglich macht. Standard sind inzwischen ZIP-Archive, in denen die EXE-Dateien verschlüsselt abgelegt sind, und der Key steht in einer readme.txt oder so. Oder, ein besonders schräger Hack: Da liegt das Executable im Download-Archiv einfach ohne die "MZ"-Signatur (also die ersten zwei Bytes jedes Windows-Executables) vor. Erst eine mitgelieferte .bat-Datei klebt Header und Rest wieder zusammen und erzeugt eine gültige Windows-EXE.

Aber ich schweife ab.

Irgendwann wurde es jedenfalls mit den Fehldetektionen noch schlimmer und Nutzer wurden daran gehindert, auch meine "normalen" Utilities, die nichts mit der Demoszene zu tun haben, herunterzuladen. Beliebte Ziele sind ein Tool, das in Python geschrieben ist und das ich für faule Windows-Nutzer mit einem Standard-Programm(!) in eine einzelne EXE verpackt habe. Oder ganz normale, mit Microsoft Visual C++ compilierte Executables.

Auch Google hatte mich schon immer auf dem Kieker. Der Aufruf des Verzeichnisses auf dem Server, in dem die Downloads lagen, führte schon länger bei Chrome-Nutzern zum gefürchteten "roten Bildschirm". Das war mir noch egal, aber vor zwei Wochen begann Google damit, meine gesamte .de-Domain als gefährlich einzustufen — einschließlich *aller* Subdomains, nicht nur der, wo das (angeblich) gefährliche Zeug lagert! Selbstverständlich wurde ich darüber nicht informiert (Mail an webmaster@meinedomain.de oder so? I wo!), ich habe es von Nutzern meiner anderen Webdienste erfahren, die auf anderen Subdomains liegen sind als der persönliche und Demoszenen-Kram.

Nun gibt es bei Google keine öffentliche, funktionierende Möglichkeit, "false positives" zu melden. Es gibt Dokumentation für Webmaster, was man tun soll, wenn Google Malware auf der eigenen Domain erkannt hat, aber die geht stets davon aus, dass man wirklich mit irgend einem Wurm infiziert ist. Die Option auf eigenen Irrtum scheint Google gar nicht zu kennen. Vor allem kriegt man nicht einmal heraus, *welche* konkreten Inhalte denn als schädlich erkannt wurden.

Es gibt aber eine Möglichkeit, nämlich die "Search Console". Um die zu nutzen, muss man sich gegenüber Google mit einem permanentem DNS-TXT-Record als Besitzer der Domain ausweisen (wohl dem, der die DNS-Records seiner Webseite unter Kontrolle hat!). Die Console selbst ist eher für SEO-Kram gedacht, aber da gibt es auch einen Menüpunkt "security issues" und tatsächlich stehen dort mal ein paar konkrete URLs von angeblich bösen Inhalten. Überraschenderweise waren das bei mir nicht die erwartete Handvoll Demoszenen-Intros, sondern nur eine zehn Jahre alte .tar-Datei mit einer Library, die als Beispielprogramm ein kkrunchy-gepacktes Windows-Executable enthielt. (Das Programm selbst war völlig harmlos: Es handelte sich um einen schlichten MP3-Player.) Nun ja, da gibt es einen "I have fixed the issues, request review"-Button, also hab' ich den mal gedrückt und im Freitextfeld eingegeben, dass es ein "false positive" ist (mitsamt ein paar Erläuterungen, wie was wo warum). Zwei Tage später die Antwort: Meinem Review Request konnte nicht stattgegeben werden, die Malware sei immer noch da. Die haben meine Erklärung gar nicht gelesen! Also habe ich die inkriminierende EXE-Datei aus dem Archiv entfernt und das Archiv zudem umbenannt (die ganze Library ist eh' obsolet). Nochmal "request review" gemacht, mit Freitext "ich hab's jetzt entfernt, aber ehrlich jetzt, Jungs, das wäre gar nicht nötig gewesen, weil …". Daraufhin: Nichts. Eine Woche lang keine Reaktion. Nach einer anderthalben Woche schaue ich nochmal in die Search Console, und siehe da: Jetzt ist ein anderes Programm der Stein des Anstoßes. Eins, das vorher schon da war. Eins, das nichtmal Crinkler oder kkrunchy benutzt, sondern schlicht UPX, den bekanntesten Executable-Packer überhaupt. Ein Bildbetrachter, in C++ geschrieben, mit Visual Studio compiliert und statisch gegen libjpeg-turbo und die Microsoft Visual C++ Runtime gelinkt. Das reicht also heutzutage aus, um mit einer ganzen Domain auf dem Malware-Index zu landen!

Zum Glück war das nur eine Testversion, also konnte ich die gefahrlos löschen und wieder den "request review"-Affentanz aufführen. Jetzt ist meine Domain erstmal wieder als unbedenklich markiert, aber für wie lange?

TL;DR: Alles Scheiße.

Takeaway #1: Wenn Google deine Domain wegen angeblicher Malware-Infektion hops nimmt, erfährst du es nur indirekt von deinen Nutzern (außer du nutzt selbst Chrome mit aktiviertem "ich schicke erstmal jede aufgerufene URL an Google"-Phishing-Schutz, aber hey, das tust du natürlich nicht). Wenn du wissen willst, wo Google denn nun genau Malware auf deiner Domain gefunden hat, musst du an deinem DNS herummanipulieren und einen Google-Account haben, um die "Search Console" benutzen zu können. "False Positives" reporten geht nicht: Derlei Anfragen werden ignoriert, also lösch den Kram oder fuck you.

Takeaway #2: Es braucht nicht viel, um Schlangenöl zu triggern, deine (Windows-)Software als Malware zu erkennen.
  • Laufzeit-Packer verwendet? Verdächtig!
  • C-Library statisch gelinkt? Verdächtig! (siehe https://twitter.com/KeyJ_trbl/status/1138885991517839360 — selbst ein verdammtes "Hello World"-Programm wird schon von diversen Schlangenöl-Anbietern als Malware erkannt!)
  • Python-Software mit PyInstaller (einem Standard-Paket in der Python-Welt) in eine einzelne Windows-EXE verpackt? Verdächtig! Wenn man (wie ich) möglichst kompakte Software für Windows (nur eine EXE-Datei, keine weiteren Dependencies) schreiben und veröffentlichen möchte, ist man quasi am Arsch.
Lacher am Rande: Die Schlangenöl-Community macht das auch so. Die müssen sich ja auch ihre Samples gegenseitig zuschicken. Die tun das auch in ZIP-Files mit Standardpasswort.

Ich hab mich da immer aus der Ferne drüber totgelacht.

Mal ganz neutral analysiert ist das natürlich ein weiterer Fall von Externalisierung von Kosten. Wenn ich mir einen wirtschaftlichen Vorteil verschaffe, indem ich die durch meine Aktivitäten entstehenden Kosten Anderen aufdrücke. Wie bei Umweltverschmutzung und Atommüll. Die Tech-Riesen bieten einen Mail-Service an, und externalisieren die Spam-Kosten auf den Rest der Welt.

Ach ICH soll mir jetzt irgendwelche DNS-Records anlegen, und meine Mails vom Mailserver mit einem Domainkey digital signieren lassen, um EUER Spamproblem für euch einfacher lösbar zu machen? Go fuck yourself!

Oh aber selbst habt ihr nicht mal eine funktionierende abuse@-Adresse, wo man sich über von euch ausgehenden Spam beklagen könnte? Go fuck yourself!

Ihr verkauft Schlangenöl, das prinzipiell seine Funktion nicht erfüllen kann, und die Kosten für False Positives externalisiert ihr an … mich? Go fuck yourself!

Ich glaube, wir brauche mal eine Behörde für Digitalumweltschutz, die solche Geschäftsmodelle systematisch aus dem Verkehr zieht. Alle solche Firmen systematisch zumachen. Eine nach der anderen. Wer Kosten externalisiert, wird zugemacht. Und der Aufsichtsrat / der CEO / die Gründer / die Investoren sind persönlich haftbar für die Verfahrenskosten.

Ja aber Fefe wenn wir die ganzen Kosten selber tragen müssten, dann würde sich unser Geschäftsmodell nicht tragen!!1!

Wenn sich euer Geschäftsmodell nur durch Externalisierung von Kosten trägt, DANN TRÄGT ES SICH GAR NICHT. Man stelle sich mal vor, ein Wurstproduzent würde so argumentieren! Ja klar könnte ich hier Hygienestandards erfüllen, aber dann wäre das nicht profitabel!!1! Da würde doch niemand auch nur eine halbe Sekunde zögern, den aus dem Verkehr zu ziehen!

Ja klar könnten wir auch Bremsen in die Autos einbauen, aber dann wären wir preislich nicht mehr konkurrenzfähig!1!!

Unfassbar.

#fefebot #EU #malware #twitter #google #microsoft