
Perro doblado es una herramienta de análisis de código estático de código abierto que analiza su código y envía los resultados a Elasticsearch y Kibana para obtener información útil sobre las posibles vulnerabilidades en su código.
Bughound tiene su propia imagen de Elasticsearch y Kibana Docker que está preconfigurada con paneles para brindarle una visualización significativa de los resultados.
Puede detectar varios tipos de vulnerabilidades, como:
- Mando de inyección.
- XX.
- Deserialización insegura.
- ¡Y más!
Bughound puede analizar PHP
y JAVA
Code por ahora y contiene un grupo de funciones inseguras para estos lenguajes.
Me aseguraré de que se cubran más y más características / idiomas con el tiempo, pero por ahora el enfoque principal está en la estabilidad del proyecto en sí.
Tenga en cuenta que los resultados de Bughound no son 100% precisos. Están diseñados para ayudarlo a identificar posibles puntos débiles durante su análisis.
¿Cómo funciona?
Bughound primero crea una lista de todos los archivos de su proyecto en función de la extensión de los archivos que desea verificar, luego lee cada archivo e intenta encontrar cualquier función insegura predefinida para el idioma de su proyecto.
La fase de análisis depende de expresiones regulares preconfiguradas y algunas coincidencias de texto personalizadas para identificar las vulnerabilidades potenciales. Por lo tanto, también deberá realizar el análisis manual aquí para ver si estos resultados se pueden aprovechar.
Finalmente, los resultados se envían a la imagen de Bughound Docker, que tiene un Elasticsearch y Kibana prediseñados que contienen los paneles personalizados para sus resultados.
Los paneles le brindan detalles sobre los resultados, como:
- Nombre de la función.
- Categoría de vulnerabilidad.
- Número de línea.
- ¡Y mucho más!
Si está utilizando Kibana, puede ver el fragmento de código potencialmente vulnerable para comenzar su fase de análisis y seguimiento para ver si es explotable o no.
Por supuesto, puede usar su propia pila ELK si lo desea y Bughound hará la configuración inicial por usted, pero no tiene los paneles preconfigurados en ese caso.
requisito
Puede instalar todos los requisitos para ejecutar código Bughound con el siguiente comando:
pip3 install -r requirements.txt
Esto garantizará que se instalen todos los requisitos del código.
Además, deberá instalar Docker para ejecutar la imagen de bowound, ¡más sobre eso en la siguiente sección!
Si desea utilizar sus propias instancias de Elasticsearch y Kibana, omita el paso de instalación de Docker
instalación
Asegúrese de descargar la última versión de Bughound con el siguiente comando:
git clone https://github.com/mhaskar/Bughound
Y después de instalar los requisitos en el paso anterior, puede ejecutar Bughound con el siguiente comando:
./bughound.py
Obtendrá la pantalla principal de Bughound.
┌─[askar@hackbook]─[/opt/bughound]
└──╼ $. / Bughound.py
_ _ _ _ _ ._ . _
| | | | | / || | | | / | | | | | | | |
| |) | | | | | | | _ | || | | | | | | | | | | | | | .–. | | _ <| | | | | | | _ | | | | | | | | | | | | . | | | | | | |_) | |
– ‘| | || | | | | | | --' | |
– ‘| | | | | ‘-‘ | | / _____/ ______ | || || ______ / ______ / || __ | |/
/
estas
___XXX/
XXXXX
/ XXXXX
/ XXX
V V1.0 Beta
[+] Ejemplo: ./bughound3.py –path vulnerable_code / –language php –extension .php –name testproject
Uso: bughound.py [-h] [–path PATH] [–git GIT] -Idioma idioma
– Extensión EXTENSION – Nombre NAME [–verbose [VERBOSE]]
bughound.py: Error: Argument –Language is required
┌─[✗]─[askar@hackbook]─[/opt/bughound]
PS
Instalación de la imagen de Docker
Para instalar la imagen de Bughound Docker, simplemente puede hacer lo siguiente:
docker pull bughound/bughound
Esto obtendrá la última versión de la imagen y la guardará en su computadora.
Una vez que hemos extraído la imagen, podemos ejecutarla con el siguiente comando:
docker run --name bughound -p5601:5601 -p 9200:9200 bughound/bughound
Esto colocará la imagen en un nuevo contenedor llamado. ejecutado bughound
y proporcione los puertos que Bughound necesita para permitir que Elasticsearch y Kibana se comuniquen con su host.
Es posible que deba aumentar la memoria virtual máxima para usar la imagen, así que asegúrese de ejecutar este comando:
sysctl -w vm.max_map_count=262144
Después de hacer dos cosas, ¡ya está listo para usar Bughound!
usar
Para iniciar el proceso de análisis de su código, debe Bughound.py
Archivo que contiene algunas opciones para mostrar estas opciones a través del banner de ayuda, puede usar el siguiente comando:
┌─[✗]─[askar@hackbook]─[/opt/bughound]
└──╼ $. / Bughound.py -h
._ _ _ _ _ ._ . _
| | | | | / || | | | / | | | | | | | |
| |) | | | | | | | _ | || | | | | | | | | | | | | | .–. | | _ <| | | | | | | _ | | | | | | | | | | | | . | | | | | | |_) | |
– ‘| | || | | | | | | --' | |
– ‘| | | | | ‘-‘ | | / _____/ ______ | || || ______ / ______ / || __ | |/
/
estas
___XXX/
XXXXX
/ XXXXX
/ XXX
V V1.0 Beta
[+] Ejemplo: ./bughound3.py –path vulnerable_code / –language php –extension .php –name testproject
Uso: bughound.py [-h] [–path PATH] [–git GIT] -Idioma idioma
– Extensión EXTENSION – Nombre NAME [–verbose [VERBOSE]]
Argumentos opcionales:
-h, –help Muestra este mensaje de ayuda y sale
–Path PATH ruta local del código fuente
–Git GIT URL del repositorio de Git
–Language LANGUAGE el lenguaje de programación utilizado
–Expansion EXTENSION
Para buscar extensión
–Name NAME nombre del proyecto que se utilizará
– en detalle [VERBOSE] Mostrar mensajes de depuración
┌─[askar@hackbook]─[/opt/bughound]
PS
Escanear proyecto local
Por ejemplo, para escanear un proyecto PHP local, puede usar el siguiente comando:
./bughound.py --path /opt/dummyproject --language php --extension .php --name dummyproject
Este comando crea un nuevo proyecto llamado «dummyproject» en el índice de Elasticsearch, rastrea todos los archivos locales con la extensión «.php» en la ruta local «/ opt / dummyproject» y envía los resultados a Elasticsearch.
Escanear el repositorio remoto de git
También puede arrastrar un proyecto remoto desde el repositorio de Git con --git
cambiar de la siguiente manera:
./bughound.py --git https://github.com/DummyCode/DummyProject --language php --extension .php --name dummyproject
Bughound clona el código y lo almacena en projects
Directorio y luego escanéelo.
Paneles de control preconfigurados
Cuando haya decidido utilizar la imagen oficial de Bughound Docker, recibirá algunos paneles de control listos para usar que le ayudarán con su análisis.
Los siguientes paneles están disponibles actualmente:
- Tablero principal de Bughound
- Panel de control de inyección
- Panel de deserialización
- Tablero XXE
Estos paneles le proporcionan estadísticas sobre las funciones y los fragmentos de código que se encuentran en el código para que pueda iniciar su proceso de análisis.