Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
bidi_char_detector — Verifica seus arquivos quanto à existência de caracteres Unicode BIDI que podem ser mal utilizados para ataques à cadeia de suprimentos. Veja CVE-2021-42574 | Kitploit
Ferramentas/GitHubGitHub/maweil/bidi_char_detector
Análise EstáticaAnálise de VulnerabilidadesAnálise de CódigoDetecção de SegredosSegurança da Cadeia de SuprimentosConfiguração IncorretaArchived
GitHubmaweil/bidi_char_detector

bidi_char_detector

Verifica seus arquivos quanto à existência de caracteres Unicode BIDI que podem ser mal utilizados para ataques à cadeia de suprimentos. Veja CVE-2021-42574

Ver Repositório
63há 3 anosAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Detector de Caracteres BIDI

Esta ferramenta verifica seus arquivos quanto à existência de caracteres Unicode BIDI que podem ser mal utilizados em ataques à cadeia de suprimentos para mitigar CVE-2021-42574. Esta ferramenta foi escrita em Rust e é distribuída como um contêiner docker pequeno (< 3MB) compatível para permitir uso rápido e fácil.

Para uma explicação do ataque, veja a entrada do blog do GitHub ou o artigo original onde o ataque foi publicado.

Instalação

Este pacote é principalmente destinado a ser usado por meio de seu contêiner docker. Mas a instalação local é possível, claro. A compilação requer pelo menos Rust 1.56.0 porque usa a Edição Rust 2021. Clone este repositório e execute cargo install --path . para instalar o binário para seu usuário atual. Depois disso, você pode invocar o comando bidi_detector.

Uso

Executar a ferramenta por meio de seu contêiner docker oficial é provavelmente a maneira mais fácil de começar. Para executá-la via docker, o seguinte comando deve funcionar para escanear todos os arquivos dentro do seu diretório de trabalho atual:

root@kitploit:~
docker run --rm -it -v $(pwd):/data ghcr.io/maweil/bidi_char_detector:latest

Dependendo do seu sistema, pode ser necessário adaptar ligeiramente este comando. Se você usa, por exemplo, podman e tem o SELinux habilitado, tente o seguinte comando:

root@kitploit:~
podman run --rm -it -v $(pwd):/data:Z ghcr.io/maweil/bidi_char_detector:latest

Configuração

Por padrão, todos os arquivos serão verificados. Se você tiver arquivos binários dentro do diretório atual, o comando falhará porque não consegue decodificar um arquivo codificado que não seja UTF-8. Para adaptar o comando às suas necessidades, coloque um arquivo chamado bidi_config.toml na raiz do seu projeto. Você pode encontrar um exemplo para ele neste repositório, veja um exemplo abaixo. As opções serão descritas em mais detalhes abaixo do exemplo:

root@kitploit:~
[general]
includes = [ 
    "src/**/*",
    "**/*.patch",
    "**/*.json",
    "**/Dockerfile",
    "test/*.js"
]
excludes = [
    ".git/*",
    "target/*"
]

[display]
show_details = true

Configurações Gerais

Esta seção inclui dois arrays (includes e excludes) onde você pode especificar padrões de arquivos a serem escaneados (ou a serem excluídos da verificação). Certifique-se de que seus padrões correspondam aos arquivos dentro do diretório, não ao nome do diretório em si, caso contrário seus arquivos não serão escaneados. Se você quiser escanear todos os arquivos e excluir apenas, por exemplo, seu diretório .git, a seguinte configuração resolveria:

root@kitploit:~
[general]
includes = [ 
    "**/*"
]
excludes = [
    ".git/*",
]

[display]
show_details = true

Se você quiser, em vez disso, definir explicitamente qual pasta contém seus arquivos fonte, o seguinte exemplo de configuração escanearia todos os arquivos no diretório src (sem ignorar nada):

root@kitploit:~
[general]
includes = [ 
    "src/**/*"
]
excludes = [
]

[display]
show_details = true

Configurações de Exibição

As seguintes configurações estão disponíveis nesta seção:

Exemplo: show_details = true, verbose = true

root@kitploit:~
src/lib.rs - 0 BIDI characters
src/main.rs - 0 BIDI characters
test/example-commenting-out.js - 6 BIDI characters
Found character RLO (Right-to-Left Override), test/example-commenting-out.js:4:3
Found character LRI (Left-to-Right Isolate), test/example-commenting-out.js:4:7
Found character PDI (Pop Directional Isolate), test/example-commenting-out.js:4:20
Found character LRI (Left-to-Right Isolate), test/example-commenting-out.js:4:22
Found character RLO (Right-to-Left Override), test/example-commenting-out.js:6:20
Found character LRI (Left-to-Right Isolate), test/example-commenting-out.js:6:24
Found 6 potentially dangerous Unicode BIDI characters!

Exemplo: show_details = false, verbose = true

root@kitploit:~
src/lib.rs - 0 BIDI characters
src/main.rs - 0 BIDI characters
test/example-commenting-out.js - 6 BIDI characters
Found 6 potentially dangerous Unicode BIDI characters!

Exemplo: show_details = false, verbose = false

root@kitploit:~
test/example-commenting-out.js - 6 BIDI characters
Found 6 potentially dangerous Unicode BIDI characters!

Créditos

Todos os créditos pela detecção do ataque, incluindo a lista de caracteres BIDI relevantes, vão para os autores originais do artigo correspondente. Por favor, cite o artigo original ao desenvolver seu trabalho.

O arquivo test/example-commenting-out.js neste repositório é uma cópia de commenting-out.js em seu repositório original. Seu licenciamento segue o repositório original (Licença MIT). Ele é usado apenas para fins de teste aqui.

root@kitploit:~
@article{boucher_trojansource_2021,
    title = {Trojan {Source}: {Invisible} {Vulnerabilities}},
    author = {Nicholas Boucher and Ross Anderson},
    year = {2021},
    journal = {Preprint},
    eprint = {2111.00169},
    archivePrefix = {arXiv},
    primaryClass = {cs.CR},
    url = {https://arxiv.org/abs/2111.00169}
}
Baixar ferramenta
ConfiguraçãoDescriçãoOpcionalPadrãoIntroduzido em
show_detailsDecide se deve exibir linha/posição e tipo do caractere BIDI detectado, se encontrado (veja exemplos abaixo)Não-v0.1.1
ignore_invalid_dataSe deve exibir uma mensagem de erro quando arquivos binários/não-UTF8 são detectadosSimtruev0.1.2
verboseSe deve exibir o nome do arquivo mesmo se nenhum caractere suspeito for encontradoSimtruev0.1.2