Herramienta de análisis estático para PHP que detecta errores en el código sin ejecutarlo.
BurtonQin/lockbud
Analizador estático que detecta interbloqueos, use-after-free, invalid-free y posibles ubicaciones de panic en proyectos Rust.
- Estrellas
- 590
- Forks
- 40
- Issues abiertos
- 7
- Último commit
- hace 7 días
¿Qué es?
lockbud es una herramienta de análisis estático para Rust que busca errores de concurrencia y memoria sin ejecutar el programa. Sigue los tiempos de vida de los guards de los locks a través del grafo de llamadas de un crate para detectar dobles bloqueos y órdenes de bloqueo conflictivos que pueden causar interbloqueos, y comprueba violaciones de atomicidad y usos incorrectos de Condvar. Los detectores de memoria cubren use-after-free e invalid-free, y un modo independiente informa de posibles ubicaciones de panic.
La herramienta se basa en componentes internos de rustc y debe ejecutarse con la misma toolchain nightly para la que está compilada; actualmente, nightly-2026-02-07. Se puede invocar directamente mediante un script detect o como subcomando de cargo (cargo lockbud). También está disponible como imagen de Docker y puede ejecutarse en CI. Es compatible con los tipos Mutex y RwLock de std::sync, parking_lot y spin.
El proyecto es el artefacto de un artículo de TSE'24 sobre problemas de seguridad reales en Rust. El autor señala que los detectores de memoria y panic generan muchos falsos positivos procedentes de la biblioteca estándar y de las dependencias, por lo que recomienda filtrar los resultados para analizar solo el crate propio con -l.
Funciones clave
- 01Detecta dobles bloqueos e interbloqueos por órdenes de bloqueo conflictivos en locks de std, parking_lot y spin.
- 02Informa de errores de memoria use-after-free e invalid-free.
- 03Detecta violaciones de atomicidad y usos incorrectos de Condvar.
- 04Enumera posibles ubicaciones de panic en código Rust.
- 05Se ejecuta como script independiente, subcomando de cargo o imagen de Docker.
Casos de uso
- Auditar antes del lanzamiento una base de código Rust que use Mutex o RwLock para detectar posibles interbloqueos.
- Añadir una comprobación de interbloqueos a los pipelines de CI mediante cargo lockbud o la imagen de Docker.
- Investigar técnicas de detección estática de errores de concurrencia en Rust.
Inicio rápido
- 1
Instala los componentes necesarios de la toolchain nightly
rustup +nightly-2026-02-07 component add rust-src rustc-dev llvm-tools-preview - 2
Clona el repositorio
git clone https://github.com/BurtonQin/lockbud.git - 3
Entra en el directorio del proyecto
cd lockbud - 4
Instala lockbud desde el código fuente local
cargo +nightly-2026-02-07 install --path .
Antes de usarlo
- Debe compilarse con la versión exacta de rustc nightly compatible, y debe usarse esa misma versión para analizar el proyecto.
- La detección de interbloqueos solo cubre los tipos Mutex y RwLock de std, parking_lot y spin.
- Los detectores de memoria y de panic generan muchos falsos positivos, y el detector de panic informa de casi todos los puntos donde se produce un panic.
- El análisis de puntos a los que se apunta es impreciso, por lo que los resultados pueden incluir falsos positivos.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es lockbud?
- Analizador estático que detecta interbloqueos, use-after-free, invalid-free y posibles ubicaciones de panic en proyectos Rust. lockbud es una herramienta de análisis estático para Rust que busca errores de concurrencia y memoria sin ejecutar el programa. Sigue los tiempos de vida de los guards de los locks a través del grafo de llamadas de un crate para detectar dobles bloqueos y órdenes de bloqueo conflictivos que pueden causar interbloqueos, y comprueba violaciones de atomicidad y usos incorrectos de Condvar. Los detectores de memoria cubren use-after-free e invalid-free, y un modo independiente informa de posibles ubicaciones de panic.
- ¿lockbud es gratuito? ¿Qué licencia tiene?
- lockbud es open source bajo la licencia BSD-3-Clause. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿lockbud sigue mantenido?
- Mantenimiento activo. El último commit de lockbud fue el 1 nov 2026.
- ¿Para qué puedo usar lockbud?
- Auditar antes del lanzamiento una base de código Rust que use Mutex o RwLock para detectar posibles interbloqueos. Añadir una comprobación de interbloqueos a los pipelines de CI mediante cargo lockbud o la imagen de Docker. Investigar técnicas de detección estática de errores de concurrencia en Rust.
- ¿Cómo se instala lockbud?
- Instala los componentes necesarios de la toolchain nightly: rustup +nightly-2026-02-07 component add rust-src rustc-dev llvm-tools-preview Clona el repositorio: git clone https://github.com/BurtonQin/lockbud.git Entra en el directorio del proyecto: cd lockbud Instala lockbud desde el código fuente local: cargo +nightly-2026-02-07 install --path .
- ¿Dónde consigo lockbud?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/BurtonQin/lockbud
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Una implementación de C y C++ segura para la memoria que compila código existente con pocos cambios o ninguno y convierte los errores de memoria en pánicos.
Herramienta de análisis estático que detecta y corrige problemas de seguridad en configuraciones de CI/CD, como GitHub Actions, Dependabot y pre-commit.
Un escáner de secretos basado en Rust que detecta credenciales filtradas, valida cuáles siguen activas, determina a qué recursos dan acceso y permite revocarlas.
Escáner de seguridad en Rust que audita servidores MCP y archivos de skills para detectar prompt injection, envenenamiento de herramientas, filtraciones de secretos y riesgos de la cadena de suministro.
Herramienta de análisis estático que busca vulnerabilidades de seguridad comunes y patrones de código inseguros en código Go.