Skip to content

Image-Scaling Angriffe

Die Beschäftigung mit dem Thema „automatischer Bildbeschnitt“ verschlägt einen bisweilen in recht obskure Gefilde. Vor kurzem stieß ich bei der Lektüre einschlägiger Fachartikel auf das Phänomen sogenannter „Image-Scaling Attacks“. Der Begriff beschreibt den Versuch, ein Bildmotiv durch Software-gesteuerte Skalierung in ein gänzlich anderes Bildmotiv zu verwandeln. Eine solche Technik kann u.a. zur Manipulation von Machine Learning Algorithmen missbraucht werden.

Zunächst zur Technik: ändert ein digitales Bild seine Grösse (in unserem Kontext geht es nicht um die physikalische Grösse des Bildes, sondern um die Anzahl von Pixeln im Bild), dann müssen entweder Pixel aus dem Bild entfernt (bei der Verkleinerung) oder hinzugefügt werden (bei der Vergrösserung). Für beide Vorgänge stehen der Industrie Standard-Algorithmen zur Verfügung, die nicht einfach nur jedes n-te Pixel entfernen, bzw verdoppeln, sondern auch die damit verbundenen Qualitätsverluste bestmöglich korrigieren. Bei der Verkleinerung findet dann z.B. typischerweise eine Nachschärfung des Motivs statt. Diese Algorithmen sind in allen gängigen Bildbearbeitungsprogrammen als Filter enthalten.

Die genaue Kenntnis dieser Algorithmen erlaubt es nun findigen Programmieren einen elektronischen Zaubertrick zu inszenieren: ein kleines Bild wird geschickt in ein grösseres Bild eingebettet, indem die Pixel aufgespreizt zwischen die Pixel des grossen Bildes gemischt werden. Die Manipulation ist nur bei sehr genauer Inspektion ersichtlich. Wir haben also nun ein Bildmotiv A und wenn dieses durch einen der gängigen Algorithmen herunterskaliert wird, bekommen wir als Ergebnis plötzlich ein vollkommen anderes Bildmotiv B. Aus offensichtlichen Gründen funktioniert dieses Verfahren nur bei der Verkleinerung, nicht bei der Vergrösserung. Mitarbeiter der Technischen Universität Braunschweig haben das Verfahren mit Beispielen und quelloffenem Code eindrucksvoll dargelegt.

Dieser Taschenspieler-Trick kann nun, zumindest theoretisch, zur Manipulation von Machine Learning benutzt werden. Machine Learning – als Teildisziplin der künstlichen Intelligenz – wird in der Informations-Technologie derzeit als Wundermittel für die elektronische Bilderkennung eingesetzt. Um dem Computer die Erkennung eines Gegenstandes anzutrainieren bekommt dieser eine grosse Menge von Bildmaterial vorgelegt, das in zwei Gruppen geteilt wurde: die eine Hälfte zeigt den zu lernenden Gegenstand (in allen möglichen Varianten), die andere Hälfte nicht. Die Machine Learning Software wendet nun hunderte von statistichen Verfahren auf die Bilder an und ermittelt schliesslich diejenigen Parameter, die beim zu lernenden Gegenstand häufiger auftreten. Werden dem Algorithmus nach Abschluss der Lernphase nun neue Bilder vorgelegt, kann er im Idealfall den erlernten Gegenstand mit einiger Sicherheit auch in anderen Erscheinungsformen erkennen. Eines der Probleme beim Machine Learning ist, dass der menschliche Benutzer die genauen Gründe des erfolgreichen oder fehlgeschlagenen Erkennungsvorgangs nicht bewerten kann, weil der Parametersatz zu komplex ist. Man muss dem Machine Learning Algorithmus also ein bestimmtes Vertrauen entgegenbringen und akzeptiert auch ein gewisses Maß an Fehlern.

Die elektronische Bilderkennung verfolgt natürlich konkrete Aufgabenstellungen, z.B. die Verschlagwortung von Bildarchiven oder die Erkennung von Personen im Sicherheitsbereich (Überwachung, Zugangskontrolle etc). Und diese Aufgabenstellungen eröffnen das Feld für Angriffe: wenn es gelingt die Lernphase des Machine Learning Algorithmus zu manipulieren, hat man auch die dahinterstehende Anwendung manipuliert. Die Idee der Image-Scaling Angriffe hat genau hier ihre Wurzeln: für die abermillionen Berechnungen, die der Machine Learning Algorithmus in der Trainingsphase absolvieren muss, werden die Trainingsbilder stark verkleinert, um die Rechenzeit akzeptabel zu halten. Und mit der Image-Scaling-Attacke sieht der Algorithmus dann aber ein gänzlich anderes Motiv, als der menschliche Benutzer.

Was hat das nun mit qCrop zu tun? Da qCrop in beliebige Zielgrössen zuschneiden kann, ist bei jedem Crop-Vorgang neben dem Bildbeschnitt auch eine Skalierung involviert. Es ist absolut denkbar, dass qCrop im Rahmen eines Machine Learning Projektes für das Down-Scaling der Trainingsbilder verwendet wird. Wir werden uns deshalb mit den von Quiring, Klein, Arp, Johns und Rieck vorgeschlagenen Abwehrtechniken zu den Image-Scaling-Attacken beschäftigen und diese in qCrop implementieren.

Vgl.: