
Herramienta de análisis estático para detectar ataques de sustitución de homoglifos en código fuente, escaneando identificadores de Python en busca de caracteres Unicode visualmente similares para prevenir vulnerabilidades en la cadena de suministro.
Este script implementa una herramienta de detección de homoglifos (Homoglyph), utilizada principalmente para detectar posibles vulnerabilidades CVE-2021-42694 en el código. Permíteme explicar en detalle sus funciones principales: Funciones principales: Detección de ataques de sustitución por homoglifos en el código Escaneo de identificadores como nombres de variables y funciones en archivos Python Identificación de caracteres Unicode visualmente similares pero realmente diferentes Componentes principales: Clase HomoglyphDetector: la clase detectora principal Obtención de datos: descarga los datos de Confusables desde el sitio oficial de Unicode Escaneo de archivos: admite escanear un solo archivo o un directorio completo Flujo de trabajo: Descarga automática de los datos de Confusables de Unicode en la primera ejecución Análisis de los datos y creación de la tabla de correspondencias de homoglifos Escaneo de identificadores en los archivos de código Comprobación de la presencia de homoglifos en cada identificador Generación de un informe de detección detallado Proceso de detección específico: Apply to homoglyph_de...
user_name = "John" # código normal usеr_name = "John" # código con homoglifos (е es una letra cirílica) Resultados de salida: Muestra las rutas de archivo sospechosas Muestra los identificadores sospechosos Muestra los pares de homoglifos específicos (por ejemplo: n -> η) Características de seguridad: Actualización automática de los datos de Unicode Mecanismo de caché local Manejo detallado de errores Esta herramienta se utiliza principalmente para ayudar a los desarrolladores a descubrir posibles ataques de homoglifos en el código, los cuales pueden provocar: Ofuscación del código Vulnerabilidades de seguridad Dificultades de mantenimiento Posible inyección de código malicioso Mediante el uso de esta herramienta, los desarrolladores pueden: Garantizar que los identificadores utilizados en el código sean seguros Prevenir ataques de sustitución por homoglifos Mejorar la mantenibilidad y la seguridad del código