Ferramenta de análise estática para PHP que encontra bugs no código sem executá-lo.
BurtonQin/lockbud
Analisador estático que detecta deadlocks, use-after-free, invalid-free e possíveis pontos de panic em projetos Rust.
- Estrelas
- 590
- Forks
- 40
- Issues abertas
- 7
- Último commit
- há 7 dias
O que é?
lockbud é uma ferramenta de análise estática para Rust que procura bugs de concorrência e memória sem executar o programa. Ela acompanha os tempos de vida dos lock guards ao longo do grafo de chamadas de uma crate para sinalizar double-locks e ordens conflitantes de locks que podem causar deadlocks, além de verificar violações de atomicidade e uso incorreto de Condvar. Os detectores de memória cobrem use-after-free e invalid-free, e um modo separado informa possíveis pontos de panic.
A ferramenta é construída sobre os componentes internos do rustc e precisa ser executada com a mesma toolchain nightly para a qual foi direcionada, atualmente nightly-2026-02-07. Ela pode ser chamada diretamente por um script detect ou como subcomando do cargo (cargo lockbud), também está disponível como imagem Docker e pode ser executada em CI. O suporte a locks inclui os tipos Mutex e RwLock de std::sync, parking_lot e spin.
O projeto é o artefato de um artigo da TSE'24 sobre problemas de segurança reais em Rust. O autor observa que os detectores de memória e panic geram muitos falsos positivos na biblioteca padrão e em dependências, por isso recomenda filtrar para a sua própria crate com -l.
Recursos principais
- 01Detecta deadlocks causados por double-lock e por ordens conflitantes de locks std, parking_lot e spin.
- 02Detecta bugs de memória use-after-free e invalid-free.
- 03Sinaliza violações de atomicidade e uso incorreto de Condvar.
- 04Lista possíveis pontos de panic no código Rust.
- 05Pode ser executado como script independente, subcomando do cargo ou imagem Docker.
Casos de uso
- Auditar uma base de código Rust que usa Mutex ou RwLock em busca de possíveis deadlocks antes do lançamento.
- Adicionar uma verificação de deadlocks a pipelines de CI usando cargo lockbud ou a imagem Docker.
- Pesquisar técnicas de detecção estática de bugs de concorrência em Rust.
Início rápido
- 1
Instale os componentes necessários da toolchain nightly
rustup +nightly-2026-02-07 component add rust-src rustc-dev llvm-tools-preview - 2
Clone o repositório
git clone https://github.com/BurtonQin/lockbud.git - 3
Acesse o diretório do projeto
cd lockbud - 4
Instale o lockbud a partir do código-fonte local
cargo +nightly-2026-02-07 install --path .
Antes de usar
- Deve ser compilado com a versão exata do rustc nightly compatível, e essa mesma versão deve ser usada para analisar o projeto.
- A detecção de deadlock cobre apenas os tipos Mutex e RwLock de std, parking_lot e spin.
- Os detectores de memória e de panic geram muitos falsos positivos, e o detector de panic informa quase todos os locais em que ocorre um panic.
- A análise de pontos apontados é imprecisa, portanto os resultados podem incluir falsos positivos.
Em coleções
Tópicos
Perguntas frequentes
- O que é lockbud?
- Analisador estático que detecta deadlocks, use-after-free, invalid-free e possíveis pontos de panic em projetos Rust. lockbud é uma ferramenta de análise estática para Rust que procura bugs de concorrência e memória sem executar o programa. Ela acompanha os tempos de vida dos lock guards ao longo do grafo de chamadas de uma crate para sinalizar double-locks e ordens conflitantes de locks que podem causar deadlocks, além de verificar violações de atomicidade e uso incorreto de Condvar. Os detectores de memória cobrem use-after-free e invalid-free, e um modo separado informa possíveis pontos de panic.
- lockbud é gratuito? Qual é a licença?
- lockbud é open source sob a licença BSD-3-Clause. Confira os termos da licença antes de usá-lo em produtos comerciais.
- lockbud ainda é mantido?
- Manutenção ativa. O último commit de lockbud foi em 1 de nov. de 2026.
- Para que posso usar lockbud?
- Auditar uma base de código Rust que usa Mutex ou RwLock em busca de possíveis deadlocks antes do lançamento. Adicionar uma verificação de deadlocks a pipelines de CI usando cargo lockbud ou a imagem Docker. Pesquisar técnicas de detecção estática de bugs de concorrência em Rust.
- Como instalar lockbud?
- Instale os componentes necessários da toolchain nightly: rustup +nightly-2026-02-07 component add rust-src rustc-dev llvm-tools-preview Clone o repositório: git clone https://github.com/BurtonQin/lockbud.git Acesse o diretório do projeto: cd lockbud Instale o lockbud a partir do código-fonte local: cargo +nightly-2026-02-07 install --path .
- Onde consigo lockbud?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/BurtonQin/lockbud
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Uma implementação de C e C++ com segurança de memória, que compila código existente com poucas ou nenhuma alteração e transforma erros de memória em panics.
Ferramenta de análise estática que encontra e corrige problemas de segurança em configurações de CI/CD, como GitHub Actions, Dependabot e pre-commit.
Scanner de segredos em Rust que detecta credenciais vazadas, verifica quais estão ativas, mapeia seus acessos e permite revogá-las.
Scanner de segurança em Rust que audita servidores MCP e arquivos de skills de agentes de IA em busca de prompt injection, envenenamento de ferramentas, vazamento de segredos e riscos na cadeia de suprimentos.
Ferramenta de análise estática que verifica código Go em busca de vulnerabilidades de segurança comuns e padrões de codificação inseguros.