Dokumente entschärfen: Content Disarm and Reconstruction richtig gemacht

5 Min Lesezeit Serie: malware #malware#cdr#dangerzone#dateien

Wie Dernium Clean aus einem eingehenden Dokument ein sicheres PDF baut, ohne jemals Inhalte aus dem Original zu vertrauen. Was das Verfahren CDR (Content Disarm and Reconstruction) leistet und was seine Grenzen sind.

Problem

Eine Bewerbung als PDF, eine Rechnung als Word-Datei, ein Lageplan als DWG, eine Präsentation als PowerPoint: in allen Fällen ist das Dateiformat selbst ein Container für ausführbare Inhalte. PDFs kennen JavaScript, eingebettete Formulare, Actions beim Öffnen. Office-Dokumente kennen Makros, OLE-Einbettungen, externe Referenzen. SVG kennt Script-Tags. Archivformate können Pfad-Traversal-Angriffe oder Zip-Bomben enthalten.

Ein Virenscanner findet bekannte Muster. Zero-Day-Malware und geschickt obfuskierte Payloads passieren täglich die Virenscanner der Welt. Der strukturelle Schutzansatz von Dernium Clean liegt daher nicht im "Erkenne das Böse", sondern im "Baue die Datei von Grund auf neu auf und verwirf alles, was nicht pure Inhaltsdarstellung ist".

Diese Klasse von Verfahren heißt Content Disarm and Reconstruction (CDR). Dernium Clean ist eine CDR-Pipeline. Die folgende Beschreibung ist unsere Sicht auf das Verfahren und die konkrete Umsetzung, die hinter clean.dernium.de läuft.

Kurze Antwort

Eingehendes Dokument in eine abgeschirmte Umgebung ohne Netzzugang stellen. Dort wird es Seite für Seite in Pixel-Rasterbilder zerlegt und aus diesen Bildern ein neues PDF erzeugt. Alles, was aktiv war (Makros, JavaScript, Aktions-Trigger, Skript-Tags, OLE-Objekte, Hyperlinks, digitale Signaturen) fällt weg. Das Ergebnis enthält den visuellen Inhalt, aber keinen der Code-Pfade.

Tiefgang

Die Dernium-Clean-Pipeline

Die Umsetzung hinter Dernium Clean besteht aus drei Schritten, die in getrennten Prozessen ablaufen. Das Prinzip: kein Schritt vertraut der Ausgabe des vorherigen Schritts als Code.

Schritt 1 Format-Normalisierung. Office-Dokumente, ODF-Dateien, SVG, nicht-bereits-PDF-Formate werden in einer gVisor-gehärteten Sandbox mit libreoffice --headless --convert-to pdf in ein PDF konvertiert. Der Container hat keinen Netzzugang, kein Host-Filesystem ausser dem Input-Ordner und einem getrennten Output-Ordner. Bild-Dateien (JPEG, PNG, TIFF, BMP, GIF) überspringen diesen Schritt und gehen direkt in Schritt 2.

Schritt 2 Rasterisierung. Das PDF aus Schritt 1 wird mit pdftoppm in Einzelbilder (PNG, 150 dpi) zerlegt. Ab hier gibt es zwischen "vorher" und "nachher" nur noch Pixel, keine Datenstrukturen, die ein Exploit aus Schritt 1 weitertragen könnte. Für Bild-Uploads bleibt dieser Schritt konzeptionell identisch (das Bild ist bereits Pixel), wird aber durch einen Encode-Roundtrip geschickt.

Schritt 3 Neuaufbau. Die Pixelbilder werden mit python3 -m img2pdf zu einem frischen PDF zusammengefügt. Dieses PDF wird dem Nutzer als Download geliefert. Es hat mit dem Original bis auf den sichtbaren Inhalt nichts mehr gemeinsam.

Der schnelle Modus ("Metadaten")

Nicht alle Eingaben sind verdächtig. Für Fotos und bereits als PDF vorliegende Dateien bietet Dernium Clean einen zweiten Modus, der nur Metadaten entfernt und das Originalformat bewahrt. Das ist technisch exiftool -all= auf einer Kopie der Datei; es entfernt EXIF, XMP, IPTC, ICC-Profile, Bearbeitungs-Historien und Geolokalisierungs-Tags, lässt aber die Datenstruktur der Datei unverändert.

Der Modus ist bewusst eng gezogen: nur für Fotos und PDFs. Office-Dokumente, SVG und andere Formate, die aktive Inhalte tragen können, fallen nicht in diesen Pfad. Die UI führt den Nutzer hier explizit auf den umfassenden CDR-Modus.

Was wegfällt

Nach dem umfassenden CDR-Durchlauf sind alle der folgenden Punkte sicher entfernt, unabhängig vom Eingangsformat:

  • PDF-JavaScript, Actions, Formulare, eingebettete Dateien, externe Referenzen
  • Office-Makros (VBA, Office Scripts), OLE-Objekte, eingebettete Dokumente, externe Datenverbindungen
  • SVG-Script-Tags, externe Ressourcen-Referenzen
  • EXIF-, XMP-, IPTC-Metadaten und ICC-Profile
  • Alle digitalen Signaturen des Originals (lassen sich nicht rekonstruieren, weil die Datei strukturell eine andere ist)

Was bleibt

  • Der visuelle Inhalt, als Pixel gerendert
  • Die Seitenanzahl und Seitenreihenfolge

Die ehrlichen Grenzen

Dateigröße. Ein gerendertes PDF ist typischerweise drei- bis zehnmal größer als das Original.

Durchlaufzeit. Eine typische einseitige PDF-Datei braucht ein bis zwei Sekunden auf normaler CPU; eine vierzigseitige PowerPoint mit Bildern kann Minuten brauchen.

Nicht unterstützte Formate. Archive (ZIP, RAR, 7z), Videos, ausführbare Dateien. Clean lehnt diese beim Upload ab. Für Archive ist eine rekursive Pipeline denkbar, aber derzeit nicht implementiert.

Verlust der Edit-Fähigkeit. Ein entschärftes Dokument ist ein Pixel-PDF, kein editierbares Office-File. Empfänger, die weiterbearbeiten müssen, brauchen das Original oder einen anderen Workflow.

Formulare und interaktive Elemente. Hyperlinks, ausfüllbare Formularfelder, Dropdown-Listen: alles weg. Für viele Workflows ist das ein echtes Minus.

Wann CDR nicht reicht

  • Wenn der Hash des Originals zählt (Signatur-Prüfung, Bit-genauer Archivbeweis).
  • Wenn der Empfänger bearbeiten muss.
  • Bei Formaten, die die aktuelle Pipeline nicht beherrscht (RAW-Bilder, CAD-Dateien, Spezial-Container).
  • Wenn Metadaten für die Beweisführung relevant sind.

In diesen Fällen ist die Alternative eine isolierte Umgebung (Dernium Desk): das Original wird nicht entschärft, sondern nur in einer Sandbox geöffnet und dort bearbeitet, ohne dass es das lokale System je berührt.

Abgelehnte Alternativen und Mythen

"Virenscanner reicht." Virenscanner erkennen Signatur-bekannte Muster. Zero-Day-Malware ist konstruiert, um nicht in diesen Signaturen zu stehen. Ein Blick auf AV-Comparatives zeigt: selbst gute Scanner liegen bei brandneuen Samples oft nur im Erkennungsbereich von 40 bis 70 Prozent. Virenscan und CDR sind ergänzend, nicht austauschbar.

"VirusTotal.com als Service." VirusTotal ist für Malware-Forschung wertvoll, aber für Business-Workflows ungeeignet: jede hochgeladene Datei geht an US-Dienste und angeschlossene Forschungslabore. Für Dokumente mit Geschäftsinhalten ein Datenschutz-Problem, das die meisten Organisationen sich auch rechtlich nicht leisten sollten.

"Commercial Sanitization Gateways." Produkte wie Glasswall, Votiro, OPSWAT Deep CDR bieten kommerzielles CDR. Gut integriert, aber Closed Source, eher teuer und oft mit Cloud-Rückgriffen. Wer unbekannte Binärlogik auf sensiblen Dokumenten laufen lassen muss, sollte das abwägen.

"Dangerzone statt Eigenbau." Dangerzone der Freedom of the Press Foundation ist die bekannteste freie CDR-Lösung und ein wesentlicher konzeptioneller Impuls für dieses Themenfeld. Unterschiede zu Dernium Clean: Dangerzone ist ein Desktop-Werkzeug (Python-GUI plus Container-Sandbox) für Einzelnutzer-Rechner; Dernium Clean ist ein server-seitiger Dienst mit eigener Quota, Audit-Spur und Mandanten-Trennung. Beide folgen demselben CDR-Prinzip, sind aber verschiedene Produkte für verschiedene Betriebsmodelle.

Wie Dernium hier hilft

Dernium Clean ist der Produkt-Pfad für genau diese CDR-Pipeline: eingehende Dokumente (per Upload, perspektivisch auch per E-Mail-Weiterleitung) werden in isolierten gVisor-Sandboxen geöffnet, in Pixel zerlegt und zu einem frischen PDF zusammengebaut. Der schnelle Metadaten-Modus bleibt für Fotos und bereits bereinigte PDFs erhalten. Die hier genannten Grenzen (Dateigröße, verlorene Signaturen, Verlust der Edit-Fähigkeit) bleiben im Produkt-Pfad bestehen und werden in der UI ehrlich kommuniziert.

Verifikation

  • Implementierungscode im eigenen Forgejo: dernium-core/clean-service/ und infra/clean/convert.sh.
  • Werkzeuge im Convert-Container: libreoffice-writer/calc/impress/draw, poppler-utils (pdftoppm), python3-img2pdf, exiftool. Listing im Dockerfile unter infra/clean/Dockerfile.convert.
  • Dangerzone-Projekt als verwandte freie Alternative: dangerzone.rocks, Source auf GitHub freedomofpress/dangerzone.
  • ISO 32000 als Basis-Spezifikation für PDF.

Offene Punkte

Rekursives Entschärfen. Ein PDF-in-ZIP-in-RAR braucht mehrere CDR-Durchläufe. Die aktuelle Pipeline entpackt nicht rekursiv. Archive werden beim Upload abgelehnt; wer damit arbeitet, muss vor dem Upload selbst entpacken.

Durchsatz. Die Zwei-Schritte-Pipeline ist rechenintensiv. Für Organisationen mit hohem Volumen ist Orchestrierung über Worker-Pool Pflicht; in der Single-Node-Konfiguration reicht die aktuelle Queue für Einzelarbeitsplätze.