【 https://r3li4nt.github.io/tools/RulesAudit 】
RulesAudit es una herramienta desarrollada en Python para analizar configuraciones inseguras en reglas de Firewalls.
Cuenta con un motor propio de vulnerabilidades basado en el archivo vulns.json, completamente personalizable, que permite clasificar los hallazgos en distintos niveles de severidad según su tipo: Crítica, Alta, Media, Baja e Informativa.
El archivo mapeo\csv_to_excel permite convertir una o varias reglas CSV a un formato más legible (Excel).
Utiliza Pandas para estructurar los datos del Excel en diferentes headers según su tipo: Policy, Source, Destination, Schedule, Service, Action, IP Pool, NAT, Type, Security Profiles, Log, Bytes, Extra_13.
En caso de que las reglas exportadas del cliente tenga diferentes formatos, pueden modificar los archivos csv_to_excel y analyzer.py para especificarle los headers.
Luego de mapear los resultados, el módulo analyzer\audit.py se encarga de tomar las reglas y analizarlas en busca de configuración insegura basandose en el motor vulns.json.
Los resultados se guardan en formatos html interactivo, excel, csv y json para su posterior análisis:
RulesAudit cuenta con una aplicación web desarrollada con el framework Flask diseñada para auditar y analizar las reglas de firewall de manera eficiente y profesional.
| Componente | Tecnología |
|---|---|
| Backend | Flask (Python) |
| Frontend | HTML5, CSS3, JavaScript |
| Estilos | Google Fonts, Font Awesome |
| Procesamiento | Pandas (análisis de Excel) |
| Templates | Jinja2 |
| Sesiones | Flask-Login |
Instalar dependencias antes de iniciar la aplicación:
pip3 install -r requirements.txtEjecutar:
python3 app.pyDirección donde corre: http://127.0.0.1:5000/admin/login
Credenciales por defecto:
| Usuario | Contraseña |
|---|---|
| admin | rulesaudit |
Se desarrollo una aplicación de GUI segmentación/segm_analyzer.py con Tkinter para analizar las conexiones de origen y destino por segmento. Esto permite verificar que conexiones deben ser aceptadas (seguras) y cuáles no (inseguras).
Contiene tres modos de verificación:
[MODO-1]: Desde redes CDE -> redes CNTO
[MODO-2]: Desde redes CNTO -> redes CDE
[MODO-3]: Desde redes NO-PCI -> redes CNTO/CDE
Para que los archivos de texto puedan ser cargados, los segmentos deben estar estructurados de la siguiente manera:
192.168.123.
192.168.180.Evitar agregar .0/24 al final ya que retorna error de mapeo.
Permite exportar el resultado en formato HTML interactivo.
En caso de que necesiten realizar pruebas de segmentación entre distintos segmentos de red y verificar si existen puertos abiertos entre ellos, pueden utilizar el script: segmentacion/nmap/SegmentacionNmapCLI.py, el cual permite automatizar el proceso de escaneo.
La función nmap_cmd permite especificarle a nmap que parámetros debe utilizar, estos pueden ser modificables.
En la variable segmentos_lista especifican aquellos segmentos que se desea testear.
En caso de querer especificarle un archivo.txt con una lista de segmentos, pueden utilizar el parámetro -a/--archivo.
python3 SegmentacionNmapCLI --archivos segmentos.txtCon el parámetro --interfaz se especificar porque interfaz de red se desea salir, por defecto es la eth0.
python3 SegmentacionNmapCLI --archivos segmentos.txt --interfaz wlan1Los reportes XML (crudos) se almacenan en la carpeta nmap_resultados, pero pueden especificar otro directorio con el parámetro --resultado.
python3 SegmentacionNmapCLI --archivos segmentos.txt --resultados /home/usuario/Desktop/my-folder
Si desean utilizar el modo GUI, pueden ejecutar el siguiente script: segmentacion/nmap/SegmentacionNmapGUI.py.
El motor construido se basa en la lógica del Analista, usted debe analizar si las configuraciones inseguras encontradas son válidas y si corresponden a la severidad clasificada. Siéntase libre de optimizar y ampliar el archivo vulns.json para mejorar la precisión en la detección y clasificación de vulnerabilidades.
¿Te gustaría contribuir con la herramienta? Envíame un correo:
