Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
bidi-guard — Escanea código en busca de caracteres Unicode bidireccionales invisibles (prevención de ataques Trojan Source, CVE-2021-42574) | Kitploit
Herramientas/GitHubGitHub/moshe-ship/bidi-guard
Análisis EstáticoAnálisis de VulnerabilidadesAnálisis de CódigoDevSecOpsSeguridad de Cadena de SuministroAprendizaje y Educación
GitHubmoshe-ship/bidi-guard

bidi-guard

Escanea código en busca de caracteres Unicode bidireccionales invisibles (prevención de ataques Trojan Source, CVE-2021-42574)

Ver Repositorio
5hace 4 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Sitio web

bidi-guard

Escanea código en busca de caracteres Unicode bidireccionales invisibles

MIT License Python 3.9+


Por Qué Existe Esto

Los caracteres Unicode bidireccionales invisibles pueden hacer que el código fuente se muestre de forma distinta a como se ejecuta. Esto es CVE-2021-42574 — el ataque Trojan Source.

Un atacante incrusta caracteres que invierten la dirección del texto. En una revisión de código, ves:

root@kitploit:~
access_level = "admin"

Pero el compilador ve:

root@kitploit:~
access_level = "user"

Los caracteres son invisibles. Tu editor no los mostrará. Tu revisor no los detectará. bidi-guard sí lo hará.

Instalación

root@kitploit:~
pip install bidi-guard

Inicio Rápido

root@kitploit:~
# Scan current directory recursively
bidi-guard scan .

# Scan a specific file
bidi-guard scan src/auth.py

Encuentra todos los caracteres Unicode bidireccionales, muestra su posición exacta, contexto y severidad.

Comandos

Integración con CI

GitHub Action

root@kitploit:~
name: BiDi Guard
on: [push, pull_request]
jobs:
  bidi-scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: "3.11"
      - run: pip install bidi-guard
      - run: bidi-guard ci .

Pre-commit

Añade a tu .pre-commit-config.yaml:

root@kitploit:~
repos:
  - repo: https://github.com/Moshe-ship/bidi-guard
    rev: v0.1.0
    hooks:
      - id: bidi-guard

Caracteres Detectados

Los 16 caracteres de control Unicode bidireccionales:

Los caracteres con severidad Alta o Crítica pueden reordenar activamente el texto mostrado: estos son los que se utilizan en los ataques Trojan Source.

Como Biblioteca

root@kitploit:~
from bidi_guard import scan_file, Finding

findings = scan_file("src/auth.py")
for f in findings:
    print(f"{f.char_name} at line {f.line}:{f.col} — severity: {f.severity}")

¿Por Qué No Usar Simplemente grep?

Estos caracteres son invisibles. Literalmente invisibles:

root@kitploit:~
grep "RLO" file.py    # finds nothing
cat file.py            # looks completely normal

bidi-guard te muestra lo que grep no puede: el carácter exacto, su posición, el contexto circundante, el nivel de severidad y qué hace. También puede corregir automáticamente eliminándolos.

Licencia

MIT — Musa the Carpenter


Presentado por la Comunidad de IA de Arabia Saudita — para los árabes primero, y para el mundo en general.

Descargar herramienta
ComandoQué hace
scanEscanea archivos en busca de caracteres bidi y muestra los hallazgos con contexto
ciModo CI — sale con código distinto de cero si se encuentra algún carácter peligroso
fixElimina todos los caracteres bidi de los archivos (interactivo por defecto)
explainMuestra qué hace cada carácter bidi con ejemplos visuales
initGenera un archivo de configuración .bidi-guard.yml para tu proyecto
Punto de CódigoNombreAbreviaturaSeveridad
U+200EMarca de Izquierda a DerechaLRMBaja
U+200FMarca de Derecha a IzquierdaRLMBaja
U+061CMarca de Letra ÁrabeALMBaja
U+200DConector de Ancho CeroZWJBaja
U+200CNo Conector de Ancho CeroZWNJBaja
U+2066Aislamiento de Izquierda a DerechaLRIMedia
U+2067Aislamiento de Derecha a IzquierdaRLIAlta
U+2068Aislamiento Fuerte InicialFSIAlta
U+2069Aislamiento Direccional de CierrePDIMedia
U+202AIncrustación de Izquierda a DerechaLREMedia
U+202BIncrustación de Derecha a IzquierdaRLEAlta
U+202CFormato Direccional de CierrePDFMedia
U+202DAnulación de Izquierda a DerechaLROAlta
U+202EAnulación de Derecha a IzquierdaRLOCrítica
U+2028Separador de LíneaLSMedia
U+2029Separador de PárrafoPSMedia