· 7 min read
CSV-Formel-Injection bei Telefonlisten: Dateien sicher prüfen
Ein Zwei-Kopien-Prozess zur Überprüfung nicht vertrauenswürdiger Telefon-CSV-Daten ohne Veränderung des Maschinen-Uploads.
Eine CSV-Formel-Injection bei Telefonlisten stellt ein Risiko dar, wenn nicht vertrauenswürdiger Zelltext in Tabellenkalkulationsprogrammen geöffnet und als Formel interpretiert wird. Prüfen Sie eine geschützte, für Menschen lesbare Arbeitskopie und erstellen Sie separat eine Kopie für den Maschinen-Upload, die ausschließlich den beabsichtigten Telefonnummerntext enthält. Eine legitime internationale Rufnummer kann mit einem Pluszeichen beginnen; entfernen Sie dieses Zeichen daher nicht blind. Überprüfen Sie die endgültige Upload-Datei vor einer Massenprüfung als Klartext.
Warum eine Telefon-CSV zwei verschiedene Prüfschritte erfordert
Eine CSV-Datei ist eine Textdatei, aber ein Tabellenkalkulationsprogramm behandelt deren Zellen unter Umständen nicht nur als reinen Text. Die OWASP CSV Injection-Richtlinie erläutert, dass Zellen, die mit Zeichen wie einem Gleichheitszeichen, Pluszeichen, Minuszeichen oder At-Zeichen beginnen, in manchen Tabellenkalkulationsumgebungen als Formeln interpretiert werden können. Ein schädlicher Wert kann zudem Trennzeichen oder Anführungszeichen nutzen, um ein gefährliches Zeichen an den Anfang einer neuen Zelle zu setzen. Ein unbedarfter Doppelklick auf einen nicht vertrauenswürdigen Export ist daher eine unzureichende Prüfungsmethode.
Telefondaten erzeugen hierbei ein spezifisches Spannungsverhältnis. Ein Pluszeichen ist ein übliches Präfix für internationale Rufnummern, steht jedoch zugleich auf der OWASP-Liste formelauslösender Zeichen. Würde jeder Wert mit vorangestelltem Pluszeichen als bösartig eingestuft, beschädigte dies legitime Rufnummern. Würde jeder derartige Wert als sicher eingestuft, nur weil er einer Telefonnummer ähnelt, bliebe der Unterschied zwischen der rohen CSV-Zelle und ihrer dargestellten Interpretation unberücksichtigt. Die Lösung besteht darin, die manuelle Prüfung von der maschinellen Übermittlung zu trennen und den Inhalt für den jeweiligen Verwendungszweck separat zu validieren.
Hierbei handelt es sich um eine kundenseitige Herausforderung bei der Dateiverarbeitung. CheckNumber unterstützt Massen-Uploads von CSV- oder TXT-Listen, aber die dokumentierte Prüffunktion erhebt nicht den Anspruch, die Tabellenkalkulation eines Analysten vor einer nicht vertrauenswürdigen Quelldatei zu schützen. Belassen Sie den Quellexport unverändert und führen Sie die Prüfung an einer kontrollierten Kopie durch.
Eine sichere Prüfkopie für Personen erstellen
Kennzeichnen Sie die Quelldatei zunächst als nicht vertrauenswürdig, bis ihre Herkunft und Inhalte geprüft sind. Verwenden Sie einen Prüf-Workflow, der importierte Felder als Text behandelt, statt eine automatische Formelinterpretation zuzulassen. Die Power Query-Dokumentation zu Text/CSV von Microsoft beschreibt, wie die Erkennung von Datentypen deaktiviert werden kann, sodass Spalten standardmäßig als Text formatiert werden. Die genaue Prüfmethode sollte mit der im Team verwendeten Tabellenkalkulationsversion und dem Dateityp getestet werden; eine Anzeigeeinstellung ist kein Beleg dafür, dass ein späterer Speichervorgang jedes Zeichen unverändert beibehält.
Wenden Sie für das Artefakt zur manuellen Prüfung tabellenkalkulationsspezifische Schutzmaßnahmen gemäß den Sicherheitsrichtlinien Ihrer Organisation an. OWASP weist darauf hin, dass manche Escaping-Ansätze nach dem Speichern und erneuten Öffnen einer CSV fehlschlagen können und dass eine tabulatorbasierte Absicherung nachgelagerte Datenkompromisse mit sich bringt. Aus diesem Grund sollte das Prüfartefakt nicht als Eingabe für die Prüfung wiederverwendet werden. Ein Sicherheitspräfix oder Escape-Zeichen, das für die Tabellenkalkulation eines Menschen gedacht ist, könnte sonst Teil der Daten werden, die eine Maschine verarbeitet.
Untersuchen Sie verdächtige Felder und Zellgrenzen. Eine Zeile, die neben einem Telefonfeld beliebige Notizen, eingebettete Trennzeichen oder Steuerzeichen enthält, erfordert eine manuelle Prüfung. Halten Sie die Originalzeile zum Abgleich bereit, verlangen Sie jedoch von Analysten nicht, Warnungen auszuführen oder wegzuklicken, nur um sie einzusehen. Wenn die Prüfkopie den sichtbaren Telefontext verändert hat, greifen Sie auf das Quellsystem zurück, um den beabsichtigten Wert zu ermitteln.
Eine separate Maschinen-Upload-Kopie aus genehmigten Rufnummern erstellen
Erzeugen Sie die Eingabedaten für die Prüfung aus Werten, die die Quellen- und Länderprüfung bestanden haben, nicht aus der gespeicherten Prüfkopie einer Tabellenkalkulation. Führen Sie eine lokale Zuordnung von jeder Quellsatz-ID zum genehmigten Telefonnummern-String. Falls eine Normalisierung erforderlich ist, bewahren Sie sowohl die ursprünglichen als auch die aufbereiteten Werte auf. Der kostenlose Dashboard-Number Cleaner von CheckNumber kann Rufnummern nach E.164 normalisieren sowie Duplikate und ungültige Einträge vor einer kostenpflichtigen Prüfung entfernen; er kann jedoch keine Ziffern wiederherstellen, die bei einer früheren Tabellenkalkulationskonvertierung verloren gegangen sind.
Für den Upload von Telefonlisten ist das dokumentierte Format ein Land pro Datei und eine Nummer pro Zeile mit Ländercode; das Pluszeichen ist optional. Das bedeutet, dass Kunden eine ordnungsgemäß aufbereitete Rufnummer im Upload-Format mit oder ohne dieses führende Vorzeichen verwenden können. Entfernen Sie das Vorzeichen nicht als pauschale Maßnahme gegen CSV-Injection, da die Upload-Datei und die manuelle Prüfdatei unterschiedlichen Zwecken dienen. Eine Rufnummer mit Ländercode muss dennoch auf tatsächliche Ziffern, Länderkontext und unerwarteten Text hin überprüft werden.
Führen Sie eine Klartextprüfung der endgültigen Maschinendatei durch. Vergewissern Sie sich, dass jede Zeile ausschließlich den beabsichtigten Telefonwert im gewählten Upload-Format enthält – ohne Präfixe aus Tabellenkalkulations-Schutzmaßnahmen, ohne Formeltext, ohne zusätzliche Notizen und ohne unbeabsichtigte Zeilenumbrüche oder Trennzeichen. Vergleichen Sie eine Stichprobe von Zeilen mit der genehmigten Arbeitstabelle und der unveränderten Quelle. Eine Datei, die in einer Tabellenkalkulation korrekt aussieht, kann auf Byte-Ebene dennoch veränderte Daten enthalten.
Prüf- und Upload-Entscheidungen nachvollziehbar halten
Eine nützliche, kundenverwaltete Prüftabelle erfasst Quellsatz-ID, ursprünglichen Zelltext, genehmigten Telefonnummern-String, Land, Begründung für eventuelle Transformationen und den Haltestatus der Zeile. Hierbei handelt es sich um vorgeschlagene lokale Felder, nicht um ein zugesichertes Produktausgabeschema. Eine Zeile, die sich nicht auflösen lässt, sollte vom Upload ausgeschlossen bleiben, anstatt sie gewaltsam in eine plausibel wirkende Telefonnummer umzuwandeln.
Der Produktkatalog von CheckNumber hilft Teams dabei, diejenige Telefonprüfung auszuwählen, die zur jeweiligen Fragestellung passt – beispielsweise eine dokumentierte Gültigkeit oder eine Registrierung auf einer bestimmten Plattform. Der CSV-Sicherheitsprozess selbst begründet keines dieser Ergebnisse. Ein wohlgeformter Upload stellt der Prüffunktion lediglich eine zweckmäßige Eingabe bereit. Verwenden Sie für API-Workflows die aktuelle API-Dokumentation des jeweiligen unterstützten Produkts, anstatt davon auszugehen, dass CSV-Regeln einem API-Schema entsprechen.
Sobald ein produktspezifischer Export vorliegt, gleichen Sie die Ergebnisse mit der genehmigten Telefonnummern-Zuordnung und anschließend wieder mit den ursprünglichen Datensatz-IDs ab. Verlassen Sie sich nicht auf die Reihenfolge der Ausgabe. Wenn sich mehrere Kontakte eine Rufnummer teilen, bewahren Sie deren getrennte Quell- und Einwilligungshistorien. Ein technisches Signal zum Prüfzeitpunkt sollte nicht in einen Identitäts- oder Einwilligungsnachweis umgedeutet werden – ungeachtet dessen, wie sorgfältig die CSV-Datei vorbereitet wurde.
Den Zwei-Kopien-Prozess vor dem Routineeinsatz testen
Erstellen Sie synthetische interne Testdatensätze für einen regulären Telefonwert mit Ländercode und Plus-Präfix, einen Wert ohne Plus-Präfix, einen fehlerhaften Wert mit zusätzlichem Text sowie eine Zeile mit Trennzeichen oder Anführungszeichen an unerwarteter Stelle. Hierbei handelt es sich um Prüftestfälle, nicht um tatsächliche Prüfergebnisse. Stellen Sie sicher, dass der manuelle Prüfprozess keine Tabellenkalkulationsformeln ausführt und die Datei für den Maschinen-Upload ausschließlich genehmigten Telefontext enthält. Derselbe Quellsatz sollte in beiden Kopien rückverfolgbar sein, ohne dass reine Prüf-Escape-Zeichen in den Upload übernommen werden.
Öffnen Sie die Prüfkopie erneut im tatsächlichen Tabellenkalkulations-Workflow des Teams und untersuchen Sie, wie verdächtiger Text gehandhabt wird. Prüfen Sie die Maschinendatei anschließend mit einem textbasierten Leseprogramm und vergleichen Sie deren Zeichen mit den genehmigten Werten. Der Hinweis von OWASP zum Verhalten beim Speichern und erneuten Öffnen macht diesen zweiten Durchgang erforderlich. Falls ein Workflow die Kopien nicht zuverlässig erhalten oder unterscheiden kann, passen Sie den kundenseitigen Prozess an, bevor Sie produktive Kontaktdaten prüfen.
Gleichen Sie abschließend Quellzeilen, zurückgestellte Ausnahmen, genehmigte Nummern, übermittelte Zeilen und zugeordnete Ergebnisse ab. Gehen Sie jeder unerklärten Diskrepanz nach. Das praktische Ziel ist eine sichere manuelle Überprüfung für Analysten und eine saubere Eingabe für die maschinelle Prüfung – jeweils auf ihren Zweck zugeschnitten. Weder ein Escape-Zeichen für die Tabellensicherheit noch eine Registrierungsprüfung ersetzt die separaten Einwilligungs- und Kontaktierungsrichtlinien des Teams.
FAQ
Wie können Teams eine nicht vertrauenswürdige Telefon-CSV ohne Formelausführung prüfen?
Verwenden Sie eine kontrollierte Arbeitskopie zur manuellen Prüfung, die Felder als Text importiert und die Tabellenkalkulations-Sicherheitsverfahren der Organisation anwendet. Halten Sie diese Kopie strikt von der Datei für den Maschinen-Upload getrennt.
Sollte ein führendes Pluszeichen von jeder Telefonnummer entfernt werden?
Nein. Es kann sich um ein legitimes internationales Präfix handeln. CheckNumber-Telefonlisten-Uploads erlauben das Vorhandensein oder Fehlen des Pluszeichens; der endgültige Wert muss jedoch als beabsichtigter Telefonnummerntext überprüft werden.
Warum sollte die tabellensichere Prüfkopie nicht hochgeladen werden?
Für die Tabellensicherheit hinzugefügte Escape- oder Präfixzeichen können in den zugrunde liegenden Daten verbleiben. Erstellen Sie eine separate Maschinendatei aus den genehmigten Werten und prüfen Sie diese als Klartext.
Validiert die CSV-Sicherheitsprüfung die Rufnummer oder das Vorliegen einer Einwilligung?
Nein. Sie sichert lediglich einen lokalen Schritt bei der Dateiverarbeitung ab. Eine ausgewählte Prüffunktion liefert ihr dokumentiertes Signal, während die Einwilligung eine eigenständige Entscheidung des Kunden bleibt.