Haben Sie auch Hacker in die Teeküche eingeladen?

Wichtige Mitteilung! Bitte auf keinen Fall kritische Sicherheitslücken in Exchange-Servern löschen!

Sonst hab ich nix mehr, über das ich mich lustig machen kann.

Liebe Admins. Corona hin oder her: Kritische Sicherheitslücken, für die seit Februar Patches bereitstehen, und die einem Angreifer ermöglichen, Ihr System zu übernehmen, also quasi eine Einladung in die Teeküche Ihrer Firma – wo Sie sicher auch diverse Rechner ohne Passwortschutz herumstehen haben, nicht wahr? So sieht’s aus. Kommt, liebe Hacker, wir haben nix zu verbergen, wir brauchen unsere Daten nicht, verschlüsselt sie ruhig, unsere Vorstände zahlen auch gerne das Lösegeld, das ist immer noch billiger als Leute einzustellen, die sich ordentlich um die IT-Sicherheit kümmern.

Ach, und übrigens soll es auch Mail-Systeme geben, die ganz grundsätzlich weniger anfällig sind als jene von Microsoft. Und nix kosten. Open Source nennt man das, klingelt’s?

Weitere Infos beim BSI

Warum KIs schlechter sind als ihr Ruf

KI hier, KI da – Autos sollen sie fahren, in der Medizin beraten oder gleich den ganzen Laden übernehmen. Wie schlecht Deep Learning dazu geeignet ist, zeigt sich immer wieder daran, wie leicht man eine KI überlisten kann. Letztlich vergleicht sie nur eine Eingabe mit immensen Mengen “gelernter” Daten und gibt eine Schätzung ab. Vor einiger Zeit habe ich hier einen Karton gezeigt, den eine KI mit sehr hoher Wahrscheinlichkeit als Nacktfoto identifiziert haben wollte.

Hier nun ein weiterer Test, diesmal mit how-old.net, einer KI von Microsoft, die “gelernt” hat, aus Fotos auf das Alter von Personen zu schließen.

Das Ergebnis schwankt offenbar abhängig von Brille und Gesichtsausdruck (also Faltentiefe) zwischen “ich fühle mich geschmeichelt” und “ok dann geh ich meine Rente beantragen”.

Wenn man sich einmal vage vorstellt, wieviel Entwicklungsarbeit und letztlich Daten- und Energieverbrauch hinter so einem Projekt steckt, muss man ernsthaft die Frage stellen, ob das nicht einfach nur groteske Verschwendung von Ressourcen ist. Nichts gegen Grundlagenforschung: Aber solche Ergebnisse sollten eigentlich nahelegen, dass Deep Learning vielleicht doch einfach zu dumm für die meisten ernsthafte Einsätze ist, und dass es vielleicht in vielen Bereichen doch die bessere Idee ist, menschliche Arbeitsplätze nicht vorschnell durch bräsige, CO2 produzierende Software zu ersetzen.

Selbstversuch: Erkennt KI meine Nacktfotos?

Da ja bekanntlich demnächst künstliche Intelligenzen die Macht übernehmen, Arbeitsplätze wegnehmen und ein bisschen besser Auto fahren als wir (da wird man natürlich neidisch, siehe dazu auch hier über Vandalismus gegen selbstfahrende Autos), habe ich mal einen Selbversuch gewagt.

Ich habe mir Tensorflow installiert, dazu die Anwendung nudeNet, sowie einen fertigen Classifier Dataset, der mit insgesamt ungefähr 711.000 Bildern trainiert wurde (20 GB Nacktbilder und Nichtnacktbilder). Das ist ein typisches Beispiel für Machine Learning, das beispielsweise bei Uploadfiltern eingesetzt wird, bloß bei den großen Diensten mit noch mehr Bildern. Zur Erinnerung: Ein System wie dieses braucht optimalerweise Millionen von Fotos, um zu lernen, Esel und Hasen voneinander zu unterscheiden (ein Kleinkind nur zwei oder drei), und man braucht ein zweites System, um Penisse von Schraubenziehern unterscheiden zu können und so weiter (etwas vereinfacht gesagt). Nur die ganz großen Dienstleister verfügen über solche Datenmengen!

Mit einem kleinen Python-Skript habe ich mein ganzes Home-Verzeichnis auf meinem PC nach Nacktbildern abgesucht, d.h. nach Bildern, die nudeNet mit >90% Sicherheit für nackt hält.

Das Resultat ist ernüchternd. So hielt die KI beispielsweise fast alle Einzelframes eines meiner Animationsvideos für nackt, und mit einer Sicherheit von 99,1% auch dieses höchst versaute Foto (Kinder bitte Augen zu!):

Bei dieser nackten Verpackung eines Billy-Regals sieht man eindeutig die Genitalien, oder etwa nicht?

Nichts gegen Maschinenlernen und künstliche Intelligenzen, aber man darf eines nicht vergessen: Sie sind nicht wirklich “intelligent”. Man kann sie mit verwirrenden Eingaben sehr leicht verarschen. Und umso mehr Maschinenlernen unseren Alltag erobert, desto mehr Menschen werden versuchen, genau das zu tun.

Das Resultat ist so vorhersehbar wie die Klimakatastrophe.

Fundstücke (Ausgabe Februar ’19)

Natürlich völlig anonymisiert und verfremdet präsentiere ich mal wieder einige aktuelle Fundstücke aus meiner Tätigkeit als gefürchteter Softwarequälitäts-Ganzgenauhinschauerundbesserwisser. Manchmal läuft einem ein Schauer über den Rücken, wenn man den Kontext kennt, aus dem der fragliche Code stammt (den ich freilich nicht verraten darf, weil ich meterlange Verschwiegenheitserklärungen unterschrieben habe). Funktioniert diese Software wirklich genau so, wie sie soll? Und wenn ja: Wie lange noch?

package com.companyname.classesToDeleteWhenUsingJava6;
// TODO delete as soon as Java 1.6 available

Java 1.6, auch bekannt als 6.0, erschien Ende 2006, also vor 13 Jahren.

Nun ja, es hat sich wohl noch nicht überall herumgesprochen, dass Code auch nach Inbetriebnahme gewisser Pflege bedarf. Nur einer der Gründe, wieso Softwarekosten häufig zu niedrig angesetzt werden.

////// ????? ask norbert

Ja, über lustige Kommentare und deren (Un)Zulässigkeit kann man trefflich streiten. Nicht streiten kann man über TODOs, die nicht einmal als solche gekennzeichnet sind. Wenn hier tatsächlich fachlicher Klärungsbedarf besteht oder bestand, dann gehört die eigentliche Frage (die hier zudem nicht einmal hier steht!) nicht in den Code, wo sie ganz offensichtlich in Vergessenheit geriet, sondern in eine Mail an Norbert, in ein Ticket oder von mir aus auf ein Post-it, obwohl die den Nachteil haben, beim Durchlüften verloren zu gehen, und die positive Wirkung von Frischluft aufs Denkvermögen sollte man nicht unterschätzen. The answer my friend is blowing in the wind. But not in the code.

Hier mal kein Codebeispiel, sondern eine Auswirkung: Der direkte Weg in die Programmiererhölle, sogar im wahrsten Sinne des Wortes. Wer auch immer da bei Spotify (oder bei einem Musikverlag, von dem die Daten ursprünglich stammen) eine Art Metadaten-Migration von “V2 to V3” implementiert hat: Er hat irgendeinen Spezialfall nicht berücksichtigt, so dass beim Copyright dieses Albums ein unsinniger Default-Wert (“Default-C Credit”) eingesetzt wurde. Metadaten-Fehler sind auf den ersten Blick harmlos, weil an sie meist keine kritische Geschäftslogik geknüpft ist. Aus leidvoller Erfahrung mit dem Thema Musik-Metadaten kann ich jedoch verraten: Obacht! Es kann passieren, dass durch ähnliche Fehler ein Titel gar nicht erst in einem Suchindex landet und folglich nicht auffindbar ist. Bei einigen Songs für die Nicht-Hörer sicher verschmerzbar, nicht aber für den Künstler. Jedenfalls ein Fehler, der nicht hätte passieren müssen. Spätestens bei einem Codereview hätte jemand feststellen müssen, dass so etwas wie “Default-Credits” überhaupt keinen Sinn ergeben. Der Bug kann Stand heute (Februar 2019) übrigens weiterhin im Spotify-Webplayer besichtigt werden.

DeltaCam auf F-Droid

Nach und nach bringe ich einige meiner Open Source-Apps bei F-Droid.org online. Den Anfang macht die DeltaCam, die Bewegungen im Bild festhält. So hinterlassen laufende Ameisen schwarze Spuren auf dem Foto.

Es ist wirklich nicht ganz trivial, eine App bei F-Droid online zu bringen. Deshalb wird es in der nächsten (8.) Auflage von Android Apps entwickeln für Einsteiger ein eigenes Kapitel mit einer Schritt-für-Schritt-Anleitung geben.

Als nächstes soll der “Malkasten für Kids” erscheinen. Wird aber noch ein paar Tage dauern.

Ach ja: F-Droid kann man als zusätzliche Shop-App installieren. Alle angebotenen Apps sind kostenlos und (soweit ich weiß) werbefrei. Eine Wohltat! Und somit die einzige echte Alternative zu Google Play, zumindest für einfache Apps wie Notizblock, Karten, Dateimanager, Mail, Multimedia, Cryptowährungen, Cloud-Synchronisation.