CVE-2021-42694
Этот скрипт реализует инструмент для обнаружения гомоглифов (Homoglyph), в основном предназначенный для выявления возможной уязвимости CVE-2021-42694 в коде. Позвольте подробно объяснить его основные функции:
Основные возможности:
- Обнаружение атак с заменой символов на гомоглифы в коде
- Сканирование идентификаторов (имён переменных, функций и т.д.) в Python-файлах
- Распознавание визуально похожих, но фактически различных символов Unicode
Основные компоненты:
- Класс
HomoglyphDetector: основной класс детектора
- Получение данных: загрузка данных Confusables с официального сайта Unicode
- Сканирование файлов: поддержка сканирования одного файла или целого каталога
Рабочий процесс:
- При первом запуске автоматически загружает данные Unicode Confusables
- Анализирует данные и создаёт таблицу соответствия гомоглифов
- Сканирует идентификаторы в файлах кода
- Проверяет каждый идентификатор на наличие гомоглифов
- Формирует подробный отчёт об обнаружении
Конкретный процесс обнаружения:
Apply to homoglyph_de...
例如检测这样的代码:
user_name = "John" # 正常代码
usеr_name = "John" # 包含同形文字的代码(е 是西里尔字母)
Результаты вывода:
- Показывает подозрительные пути к файлам
- Показывает подозрительные идентификаторы
- Показывает конкретные пары гомоглифов (например: n -> η)
Особенности безопасности:
- Автоматическое обновление данных Unicode
- Механизм локального кеширования
- Детальная обработка ошибок
Основное назначение этого инструмента — помочь разработчикам обнаружить возможные атаки с использованием гомоглифов в коде. Такие атаки могут привести к:
- Запутыванию кода
- Уязвимостям безопасности
- Проблемам с сопровождением
- Потенциальному внедрению вредоносного кода
Используя этот инструмент, разработчики могут:
- Убедиться, что используемые идентификаторы в коде безопасны
- Предотвратить атаки с заменой на гомоглифы
- Повысить сопровождаемость и безопасность кода