Vorabanmerkungen: Eine (lange nicht erschöpfende) Presseschau habe ich anlässlich meiner Gastvorlesung zum Thema hier zusammengestellt. Ich bin selbst überrascht, wie viele Artikel es gibt.

Eine Zeitleiste der ganzen Angelegenheit gibt es weiter unten. Darin kann man sich einen Überblick verschaffen, und findet auch die relevanten Blogartikel verlinkt. Daraus geht auch klar hervor, dass ich Xerox sehr viel Zeit gelassen habe, also nicht einfach mit der Sache an die Öffentlichkeit gegangen bin. Das ist mir wichtig, weil ich erstmal versuche, im nicht-öffentlich auf Leute zuzugehen, wenn ich etwas zu beanstanden habe.

Video und Folien zu meinem Vortrag "Traue keinem Scan, den du nicht selbst gefälscht hast" (31C3)

Einleitung

In diesem Artikel dokumentiere ich ausführlich, wie weit verbreitete Firmen-Scankopierer der Firma Xerox bei gescannten Seiten Ziffern, Zahlenreihen oder andere Bildfragmente unvorhersehbar vertauschen/ersetzen – und zwar nicht aufgrund irgendwelcher Texterkennung, sondern richtig hart in den Pixeldaten. Das Ergebnis sind Dokumente, die subtil falsch sind, aber perfekt aussehen – so, dass man es auf den ersten Blick nicht bemerkt. So etwas kann extrem gefährlich sein oder sogar Menschenleben kosten. Der Phantasie sind keine Grenzen gesetzt: Abrechnungen, die plötzlich nicht mehr stimmen. Baupläne mit vertauschten Quadratmeterzahlen. Falsche Ingenieurspläne, die wiederum Menschenleben gefährden würden (stellt euch vor, eine Autobahnbrücke hat in der Statik einen Zahlendreher verbaut). Arzneimitteldosierungen mit Zahlendrehern, eigentlich noch schlimmer. Ihr seht schon: Was sich zunächst locker anhört, ist absolut kritisch und kann schnell lebensgefährlich werden. Es handelt sich um einen acht (!) Jahre alten Bug, der nach Händlerinformationen hunderttausende Xerox-Multifunktionskopierer weltweit betrifft. Mehrere große Gerätefamilien sind betroffen (eine Liste gibt es weiter unten). Jeder, der diese in den letzten acht Jahren eingesetzt hat oder jetzt noch einsetzt, muss sich fragen: Wieviele fehlerhafte Unterlagen, die auf den ersten Blick richtig aussehen, habe ich in den letzten Jahren gespeichert oder gar an dritte herausgegeben?

Sind durch diese denkbaren Fehler Menschen oder Vermögenswerte gefährdet?

Kann ich für diese Fehler verantwortlich gemacht werden? Bis zur Behandlung des Fehlers in meinem Blog war er nicht entdeckt oder veröffentlicht. Seine Tragweite entfaltete sich auch erst in Laufe meiner verschiedenen Blogartikel, die von den Massenmedien aufgegriffen und verbreitet wurden. In welcher Reihenfolge was geschah, lässt sich anhand der nachfolgenden Zeitleiste sehen. Es waren zwei interessante Wochen, das kann ich euch versprechen. Der Rest des Artikels ist wie folgt gegliedert. Es wird an einer Zeitleiste beschrieben, wie die Angelegenheit sich entfaltet hat

Es wird an konkreten Beispielen beschrieben, wie der Fehler entdeckt wurde, und wie subtil er auftritt. Weil schwer zu glauben ist, dass ein Scankopierer Zahlen verdreht, liefere ich natürlich Beweismaterial mit.

Danach kommt eine Liste der betroffenen Kopierer.

Es folgt eine grobe Anleitung, wie sich der Fehler reproduzieren lässt.

Zuletzt gibt es eine kurze, laienhafte rechtliche Würdigung der rechtlichen Folgen. Kurzform: Die letzten 8 Jahre an PDF-Scans von betroffenen Geräten kann nicht nur Fehler enthalten, sie sind anscheinend auch rechtlich komplett wertlos, und zwar unabhängig davon, ob Fehler tatsächlich nachgewiesen werden.

Kurze Zeitleiste, was wann geschah

Fallbeispiele und Entdeckung des Fehlers

Das erste mal aufgefallen ist dem betroffenen Unternehmen der Fehler am vergangenen Mittwoch, als ein Bauplan zu einem PDF gescannt und wieder gedruckt wurde. Baupläne enthalten für jeden Raum des zu bauenden Hauses Boxen mit Quadratmeterzahlen, die irgendwie in den betreffenden Raum hineinlayoutet sind. In einigen Räumen standen nun sauber layoutete, jedoch schlicht falsche Quadratmeterzahlen – man muss wirklich die Zahlen lesen, um den Fehler zu bemerken. Der Fehler ist nur entdeckt worden, weil man hier nicht tatsächlich die Originalzahlen auswendig kennen musste, sondern es hat sich einfach jemand gewundert, warum ein Raum mit angeblich 14 Quadratmetern deutlich größer ist, als der danebenliegende 22-Quadratmeter-Raum. Vorab hier eine Komplettansicht der Originalversion der betroffenen Seite – zu den Unterschieden kommen wir danach. Ich musste die Seite natürlich teilweise schwärzen. Klickt zum vergrößern drauf. Die gelben Markierungen habe ich zugefügt, das werden meine Beispielfehlerstellen sein. Achtet auf die Quadratmeterzahlen in den Boxen – diese sind mies aufgelöst, aber lesbar. Ich nummeriere sie für spätere Nennung durch, sei die obere „Stelle 1“, die untere linke „Stelle 2“ und die untere rechte „Stelle 3“. Jetzt scannen wir den Bauplan auf dem Scankopierer als PDF ein. Ohne Texterkennung oder sonstige Späße. Dann stehen an den drei Stellen andere Nummernwerte . Ich liefere Screenshots der drei Stellen in den PDFs als Tabelle. Die Originale sind zur direkten Vergleichbarkeit in einer Zusatztabellenzeile eingeblendet. Das Xerox WorkCentre 7535 produzierte immer dieselben Fehler, weswegen hier nur eine Tabellenzeile notwendig ist; das WorkCentre 7556 produzierte immer andere Fehler, hier sind einfach zur Demonstration drei Durchläufe abgebildet: Durchlauf / Gerät Stelle 1 Stelle 2 Stelle 3 Original, aus einem Tif-Scan entnommen, Korrektheit verifiziert Xerox WorkCentre 7535 Xerox WorkCentre 7556, Durchlauf 1 Xerox WorkCentre 7556, Durchlauf 2 Xerox WorkCentre 7556, Durchlauf 3 Die Auflösung ist gering, aber die Zahlen sind deutlich lesbar. Zudem werden hier offensichtlich ganze Bild-Patches vertauscht und/oder mehrfach verwendet. Ich wiederhole, dass das kein OCR-Problem ist, oder zumindest haben wir OCR extra ausgeschaltet, und man sieht ja auch ganz deutlich, wie Pixeldaten durch die Gegend kopiert wurden. Man kann auch nicht einfach sagen „ja, dann nutzt doch eine andere DPI-Zahl“, weil das auch nicht ausschließt, dass irgendwo Bilddaten durcheinandergewürfelt werden. Nächstes Beispiel: Ein Kostenregister auf dem WorkCentre 7535. Auch hier wieder ein plausibel aussehender Scan, aber bei näherem Hinsehen fällt ein Zahlenfehler auf. In diesem Fall wurde er gefunden, weil Zahlen in Kostenregistern aufsteigend sortiert sind: Vorher Nachher Man beachte, wie aus der 65 eine 85 geworden ist (zweite Spalte, dritte Zeile). Edit: Ich werde gerade darauf hingewiesen, dass oben rechts auch noch aus einer 60 eine 80 geworden ist. Das ist auch nicht einfach ein Pixelfehler, man kann ganz deutlich sehen, wie die 8 im unterschied zur 6 auf der linken Seite die charakteristische mittige Einbeulung hat. Der Scan war schon mehrere Wochen alt zum Zeitpunkt des Entdeckens, der Fehler ist also auch nicht erst eben aufgetreten. Wer weiß, wieviele Unterlagen schon subtil falsch sind.

Betroffene Geräte

Als die Sache sich noch entfaltete, habe ich in diesem Abschnitt eine „Hörensagen-Liste betroffener Geräte“ anhand Mails von Lesern aufgebaut. Da der Bug mittlerweile von Xerox bestätigt ist, ist die folgende Liste nun keine Hörensagen-Liste mehr, sondern offiziell. Der Buchstabe x kann für beliebige Ziffern stehen, hier sind ganze Gerätefamilien betroffen: WorkCentre-Reihe 232, 238, 245, 255, 265, 275, 5030, 5050, 51xx, 56xx, 57xx, 58xx, 6400, 7220, 7225, 75xx, 76xx, 77xx, 78xx WorkCentre Bookmark-Reihe 40, 55 WorkCentre Pro-Reihe 232, 238, 245, 255, 265, 275 ColorQube-Reihe 8700, 8900, 92xx, 93xx

Fehler selbst reproduzieren

Nach dem Kostenregister habe ich nach einem Weg gesucht, den Fehler zu reproduzieren. Der Weg ist naheliegend: Zahlenkolonnen generieren, drucken, scannen, OCR drüberjagen und mit der Ausgangszahlenkolonne vergleichen. Da das OCR auch selbst Fehler machen kann, muss man die gefundenen Stellen natürlich noch mal von Hand überprüfen. Die Schriftart für die ich den Fehler hier reproduzieren konnte, war Arial 7pt, mit den Scaneinstellungen wie oben und der neueren Softwareversion des 7535er Workcentres. Und siehe da, aus 6en werden wieder 8en (Beispiele gelb markiert, nicht erschöpfend): Vorher Nachher Man beachte, wie die 6en drumrum korrekt aussehen und die falschen 8en wieder die charakteristische 8-Eindellung erhalten, es sind also nicht nur einfach wieder irgendwelche falschen Pixel, sondern ausgetauschte Ziffern. Es ist also nicht die Originaldatei (wenn auch die Bilder darin die Originalpixel sind). Falls ihr mal selbst gucken wollt: Hier ist ein Tif-Scan der Seite, fehlerfrei . DEN KÖNNT IHR DRUCKEN UND ALS TESTDOKUMENT NUTZEN. Dass der dann schon mal gescannt und gedruckt ist, ist gewollt – das verrauscht die ziffern leicht, sie sind aber noch gut lesbar. So tritt der Fehler häufiger auf, so dass ihr besser sehen könnt ob ihr betroffen seid.

Hier ein PDF-Scan mit ein paar für euch vormarkierten falschen Achten auf dem 7535er. Das OCR habe ich nachträglich gemacht, um die Ziffern sauber markieren zu können.

Auf vielfachen Wunsch: Der gesamte PDF-Scan ohne jegliches Postprocessing meinerseits. Einfach so, wie er aus dem 7535er herausgekommen ist. Viele Seiten.

Ursache und rechtliche Folgen

Der Fehler tritt auf, weil Bildbestandteile, die der Kopierer für gleich hält, nur einmal gespeichert und dann immer wieder verwendet werden. Irrt sich das Ähnlichkeitsmeßverfahren (Pattern Matching) der kopierer, werden eben Zeichenblöcke durch andere ersetzt, zum Beispiel eine 6 durch eine 8. Anders als von Xerox im Rahmen der – verständlichen – PR-Bemührungen suggeriert, tritt der Fehler nicht nur bei schwer lesbaren Ziffern auf (7pt-Schrift auf 300 DPI würde wohl kaum jemand als schwer lesbar bezeichnen), auch wenn die Zeichen relativ klein sind. Es ist wichtig zu beachten, dass das in den betroffenen PDFs benutzte JBIG2 ein Bildformat ist, und kein Kompressionsalgorithmus, also eine Vorschrift, wie die Kompression eines Bildes an sich erfolgen soll, es definiert nur, wie es danach gespeichert werden soll. Es ist also sozusagen eine Dekompressionsvorschrift, während die kompressionsweise flexibel ist. JBIG2 wurde eigens entwickelt, um effizient Bilder zu speichern, die gescannten Text enthalten. Dafür wird es auch üblicherweise benutzt und so haben sich auch einige übliche Vorgehensweisen der Kompression etabliert, die wir uns in den folgenden Absätzen ansehen können, ohne den Sourcecode von Xeroxmaschinen oder denen anderer Hersteller zu kennen. Insbesondere kann, wie wir gleich sehen werden, das Komprimieren verlustbehaftet und verlustfrei erfolgen. Also bedeutet die folgend beschriebene Fehlerursache, dass nicht JBIG2 der Grund für die bei Xerox aufgetretenen Verfälschungen ist, sondern fehlerhafte Parametrierung beim Kodieren in JBIG2. Der Fehler liegt nicht in JBIG2 selbst. Es wurden durch einen Bug Verluste eingebaut, wo keine hätten sein dürfen. „Pattern Matching & Substitution“ (PM&S) ist eine der Standardvorgehensweisen bei lossy JBIG2, und „Soft Pattern Matching“ (SPM) die bei lossless JBIG2 (Infos hier oder in den Veröffentlichungen von Paul Howard et al.1)). Im JBIG2-Standard heißt das ganze „Symbol Matching“. PM&S ist verlustbehaftet, SPM verlustfrei. Beide Kompressionsmodi von JBIG2 arbeiten zunächst nach dem gleichen Schema: Das Bild wird in Symbole zerlegt, diese werden nach Ähnlichkeit gruppiert. Für jede Gruppe werden dann nur Repräsentanten gespeichert und diese wiederverwendet. Im Unterschied zu PM&S werden bei SPM aber die so entstandenen Pixelfehler korrigiert, indem ein Differenzbild zum Original dazugespeichert wird. Dieser Korrekturschritt scheint bei Xerox weggelassen worden zu sein. Da nun für die PDFs, die mit den Geräten in den letzten 8 Jahren erzeugt wurden, nicht mehr nachgewiesen werden kann, was eigentlich auf dem Blatt Papier stand, dürfte der rechtliche Wert aller dieser gescannten PDFs gegen null gehen! Das bedeutet, dass es eigentlich egal ist, ob tatsächlich Fehler auftreten – bei keinem PDF, wo ganze Bildsegmente wiederverwendet werden, kann der Originalinhalt noch nachgewiesen werden.

Ist Ihr Unternehmen vom Xerox Scanning-Bug betroffen?

Bei mir melden sich gerade immer mehr namhafte Unternehmen, die sich fragen, ob sie erhebliche Probleme haben, jedoch Angst vor Publicity verspüren. Manche sind sich auch schon sicher, dass sie Probleme haben, teils in sicherheitskritischen Tätigkeitsfeldern. Betroffene Unternehmen haben in der Regel drei Ziele: Sie wollen das Problem lösen, nach Möglichkeit rückwirkend Sie wollen keine Publicity, bei vielen Angestellten nach Möglichkeit nicht einmal intern Sie wollen eligible für Schadenersatz bleiben, müssen also aufpassen, nicht im Überschwang Beweismittel für die Fehlfunktion zu vernichten. Diese Ziele widersprechen teilweise einander; auch große Unternehmen sind nicht gefeit vor Anfängerfehlern. Darum pauschal: Jeder, der sich bei mir meldet, um überhaupt erst einmal die Lage einzuschätzen, kann sich darauf verlassen, dass ich seine Identität nicht preisgebe. Das habe ich über die ganze Angelegenheit so gehandhabt, und damit höre ich jetzt auch nicht auf. Kontaktdaten stehen im Impressum.

Aufgrund von Caching kann es bis zu zwei Minuten dauern, bis ein Kommentar erscheint!

Da ich gerade ziemlich viel manuellen Spam aus Russland und Pakistan bekomme und keine Zeit habe, da wirksam gegen anzugehen, ist die Kommentarfunktion bis auf weiteres abgeschaltet. Wenn's pressiert, mailt mir!