
Outil d'analyse statique pour détecter les attaques de substitution homoglyphe dans le code source, en scannant les identifiants Python pour des caractères Unicode visuellement similaires afin de prévenir les vulnérabilités de la chaîne d'approvisionnement.
Ce script implémente un outil de détection d'homoglyphes, principalement conçu pour détecter les vulnérabilités CVE-2021-42694 potentielles dans le code. Voici une explication détaillée de ses principales fonctionnalités : Fonctionnalités principales : Détecte les attaques par substitution d'homoglyphes dans le code Analyse les identifiants (noms de variables, noms de fonctions, etc.) dans les fichiers Python Identifie les caractères Unicode visuellement similaires mais en réalité différents Composants principaux : Classe HomoglyphDetector : la classe de détection principale Acquisition des données : télécharge les données Confusables depuis le site officiel d'Unicode Analyse des fichiers : prend en charge l'analyse d'un seul fichier ou d'un répertoire entier Flux de travail : Télécharge automatiquement les données Unicode Confusables au premier lancement Analyse les données et construit une table de correspondance des homoglyphes Analyse les identifiants dans les fichiers de code Vérifie la présence d'homoglyphes dans chaque identifiant Génère un rapport de détection détaillé Processus de détection spécifique : Apply to homoglyph_de...
user_name = "John" # code normal usеr_name = "John" # code contenant un homoglyphe (е est une lettre cyrillique) Résultats de sortie : Affiche les chemins de fichiers suspects Affiche les identifiants suspects Affiche les paires d'homoglyphes spécifiques (par exemple : n -> η) Caractéristiques de sécurité : Mise à jour automatique des données Unicode Mécanisme de cache local Gestion détaillée des erreurs L'objectif principal de cet outil est d'aider les développeurs à détecter les attaques par homoglyphes susceptibles d'être présentes dans le code. Ces attaques peuvent entraîner : Obfuscation du code Failles de sécurité Difficultés de maintenance Injection potentielle de code malveillant Grâce à cet outil, les développeurs peuvent : S'assurer que les identifiants utilisés dans le code sont sûrs Prévenir les attaques par substitution d'homoglyphes Améliorer la maintenabilité et la sécurité du code