
Statisches Analysetool zur Erkennung von Homoglyph-Ersetzungsangriffen im Quellcode, das Python-Identifikatoren auf visuell ähnliche Unicode-Zeichen scannt, um Supply-Chain-Sicherheitslücken zu verhindern.
Dieses Skript implementiert ein Homoglyph-Erkennungstool, das hauptsächlich dazu dient, potenzielle CVE-2021-42694-Schwachstellen im Code zu erkennen. Lassen Sie mich seine Hauptfunktionen im Detail erklären:
Kernfunktionen: Erkennung von Homoglyph-Ersetzungsangriffen im Code Scannen von Python-Dateien auf Bezeichner wie Variablennamen, Funktionsnamen usw. Identifizierung von optisch ähnlichen, aber tatsächlich unterschiedlichen Unicode-Zeichen
Hauptkomponenten: HomoglyphDetector-Klasse: Die Hauptdetektorklasse Datenabruf: Abrufen der Confusables-Daten von der Unicode-Website Dateiscan: Unterstützt das Scannen einer einzelnen Datei oder eines gesamten Verzeichnisses
Arbeitsablauf: Automatisches Herunterladen der Unicode-Confusables-Daten beim ersten Start Analysieren der Daten und Erstellen einer Homoglyph-Referenztabelle Scannen der Code-Dateien auf Bezeichner Überprüfen jedes Bezeichners auf das Vorhandensein von Homoglyphen Generieren eines detaillierten Erkennungsberichts
Spezifischer Erkennungsprozess: Apply to homoglyph_de...
user_name = "John" # 正常代码 usеr_name = "John" # 包含同形文字的代码(е 是西里尔字母)
Ausgabeergebnisse: Anzeige verdächtiger Dateipfade Anzeige verdächtiger Bezeichner Anzeige der spezifischen Homoglyphen-Paare (z. B.: n -> η)
Sicherheitsmerkmale: Automatische Aktualisierung der Unicode-Daten Lokale Cache-Mechanismen Detaillierte Fehlerbehandlung
Der Hauptzweck dieses Tools ist es, Entwicklern zu helfen, potenzielle Homoglyphen-Angriffe im Code zu erkennen. Solche Angriffe können zu Folgendem führen: Code-Verschleierung Sicherheitslücken Wartungsprobleme Potenzielle Injektion von schädlichem Code
Durch die Verwendung dieses Tools können Entwickler: Sicherstellen, dass die im Code verwendeten Bezeichner sicher sind Homoglyphen-Ersetzungsangriffe verhindern Die Wartbarkeit und Sicherheit des Codes verbessern