CSV-Injection gefährdet Datenbanken |Computersicherheit

CSV-Injection Sicherheit

Eine CSV-Datei ist gewissermaßen die Rohform einer Tabelle. Alle Werte sind darin – durch Kommata separiert – in Textform gespeichert. Werden diese Informationen nun in eine Software eingelesen, zum Beispiel Microsoft Excel, wird beispielsweise jede Zelle, deren Wert mit einem „=“ beginnt, als Formel interpretiert.

Schaden bei Nutzern kann erzeugt werden durch

  • Ausnutzung von Schwachstellen in der Tabellenkalkulationssoftware, wie z. B. der Sicherheitslücke „CVE-2014-3524
  • Die Angewohnheit des Benutzers, Sicherheitswarnungen in Tabellenkalkulationen zu ignorieren
  • Herausfiltern von Inhalten aus der Tabelle oder anderen geöffneten Kalkulationstabellen

Stelle zur Abwehr möglicher Angriffe sicher, dass keine Zellen der CSV-Datei mit einem der folgenden Zeichen beginnen:

  • Ist gleich (=)
  • Plus (+)
  • Minus (-)
  • @
  • Registerkarte (0x09)
  • Wagenrücklauf (0x0D)

Zusätzlich muss unbedingt auf Feldtrennzeichen (z. B. ‚ ,‘, oder ‚ ;‘) geachtet werden. Angreifer können damit eine neue Zelle beginnen und das „gefährliche“ Zeichen am Anfang einer neuen Zelle platzieren.

Eine Möglichkeit besteht darin, jedem Zellenfeld ein einfaches Anführungszeichen voranstellen, damit deren Inhalt vom Tabellenkalkulationseditor als Text gelesen wird und NICHT als Formel (Makro) ausgeführt wird.