Tutoriales

Herramienta de análisis de código estático basada en Elastic Search

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.

┌─[[email protected]]─[/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
┌─[✗]─[[email protected]]─[/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:

┌─[✗]─[[email protected]]─[/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
┌─[[email protected]]─[/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.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba