
Ferramenta de análise estática para detectar ataques de substituição de homóglifos em código-fonte, examinando identificadores Python em busca de caracteres Unicode visualmente semelhantes para prevenir vulnerabilidades na cadeia de suprimentos.
Este script implementa uma ferramenta de detecção de homoglifos (Homoglyph), principalmente para detectar a possível vulnerabilidade CVE-2021-42694 no código. Deixe-me explicar detalhadamente suas principais funcionalidades: Funcionalidades principais: Detectar ataques de substituição de homoglifos no código Escaneia identificadores como nomes de variáveis, nomes de funções em arquivos Python Identifica caracteres Unicode visualmente semelhantes, mas diferentes Componentes principais: Classe HomoglyphDetector: a classe detectora principal Aquisição de dados: obtém dados Confusables do site oficial da Unicode Escaneamento de arquivos: suporta escanear um único arquivo ou todo um diretório Fluxo de trabalho: Baixa automaticamente os dados Confusables da Unicode na primeira execução Analisa os dados e constrói uma tabela de correspondência de homoglifos Escaneia identificadores em arquivos de código Verifica a presença de homoglifos em cada identificador Gera um relatório detalhado de detecção Processo de detecção específico: Apply to homoglyph_de...
user_name = "John" # código normal usеr_name = "John" # código contendo homoglifo (е é a letra cirílica) Resultados da saída: Exibe caminhos de arquivos suspeitos Exibe identificadores suspeitos Exibe pares específicos de homoglifos (exemplo: n -> η) Recursos de segurança: Atualização automática dos dados Unicode Mecanismo de cache local Tratamento detalhado de erros O principal propósito desta ferramenta é ajudar desenvolvedores a descobrir possíveis ataques de homoglifos no código, que podem levar a: Ofuscação de código Vulnerabilidades de segurança Dificuldade de manutenção Potencial injeção de código malicioso Ao usar esta ferramenta, os desenvolvedores podem: Garantir que os identificadores usados no código sejam seguros Prevenir ataques de substituição de homoglifos Melhorar a manutenibilidade e segurança do código