X9: Cómo Resultados Digitais puede detectar automáticamente datos confidenciales datos en sus repositorios de código

Publicado el

(Vitoria Rio) (9 de octubre de 2020)

A medida que las empresas se hacen más grandes, con una cantidad cada vez mayor de funciones, los desarrolladores crean e integran constantemente nuevos fragmentos de código como confirmaciones, solicitudes de extracción , etc. Con el aumento de la popularidad de las metodologías ágiles, una solución más rápida para el análisis de vulnerabilidades se está convirtiendo en una necesidad. Tan pronto como el código se envía al repositorio, si ese compromiso contiene información confidencial, se deben tomar acciones para abordarlo de inmediato, ya que eventualmente puede conducir a fugas de datos.

Sin embargo, profundizar en cientos de confirmaciones y Las solicitudes de extracción no son una tarea fácil incluso para un equipo de ingenieros de seguridad capacitados, ahí es donde entra en juego X9. X9 es una herramienta de código abierto creada para automatizar la detección de información confidencial en los repositorios de GitHub de la organización. Puede analizar código automáticamente y crear notificaciones a través de Slack casi en tiempo real.

Arquitectura

Github nos permite leer varios eventos como confirmaciones y solicitudes de extracción mediante el uso de Github Webhooks . Por ejemplo, cuando un desarrollador crea un PR, se crea un evento en la plataforma Github, que luego envía un mensaje de carga útil a una ruta preconfigurada (en este caso, la interfaz X9) que contiene información detallada sobre ese evento. Este enfoque funciona mejor cuando consideramos que Github nos permite configurar webhooks para toda la organización, permitiendo que X9 analice todos los repositorios desde este alcance.

Al configurar los eventos para toda la organización, X9 no solo garantiza que todos los repositorios se están analizando, pero también agiliza el proceso de análisis, lo que brinda a los ingenieros de seguridad más flexibilidad y control sobre las posibles amenazas de seguridad de la empresa.

Al recibir la carga útil del evento, la aplicación clona la rama del repositorio y realiza varias tareas de seguridad. pruebas. Cada evento es procesado por un trabajador independiente que puede ampliarse en caso de mayor rendimiento. Luego, todas las vulnerabilidades analizadas se almacenan en una base de datos PostgreSQL y se notifican en un canal de Slack. La interfaz de Slack permite crear directamente un problema en Github o marcar la vulnerabilidad como un falso positivo.

Análisis

X9 usa firmas y patrones específicos para detectar datos sensibles en el código. Estas firmas son expresiones regulares diseñadas para este propósito específico, como r"[a-zA-Z0-9]*\@emailexample.com" que puede detectar correos electrónicos personales o lo siguiente, que detecta claves de acceso de AWS dentro del contenido del archivo (definido más adelante):

La aplicación también permite al usuario configurar expresiones regulares, lo que permite un enfoque más orientado al dominio. Hay cuatro tipos de contextos de firma para X9:

  • filename : busca nombres de archivo completos
  • extension : busca extensiones específicas (por ejemplo: .pem, .db)
  • ruta : busca la ruta completa de una carpeta predeterminada de un archivo en el repositorio
  • contenido : busca patrones dentro de los archivos

Notificaciones y acciones

A través de Slack Webhooks , X9 envía información detallada de cada hallazgo a un canal definido por el usuario. Es importante tener en cuenta que cualquier información posiblemente confidencial está correctamente ofuscada, como se ve a continuación:

Los componentes interactivos ( problema abierto y Falso positivo botones) permiten la creación directa de problemas en GitHub y descartan la vulnerabilidad como un falso positivo respectivamente. Si es necesario crear un problema a partir del mensaje, se crea el siguiente formato de problema en el repositorio vulnerable:

Tablero

X9 también tiene un tablero para visualización de vulnerabilidades. Este panel es una aplicación separada opcional que no interfiere con el análisis de seguridad. Utiliza OpenID Connect para la autenticación de inicio de sesión.

El tablero es una vista de tabla que permite filtrar por nombre de repositorio y tipo de vulnerabilidad. Si se crea, también se mostrará el vínculo del problema.

Pensamientos finales

X9 todavía es un trabajo en progreso y se está actualizando activamente, las contribuciones son bienvenidas :).

Échale un vistazo en github.com/ResultadosDigitais/ x9 .

Referencias

Este proyecto se inspiró en Shhgit y Gitleaks , que proporcionó la mayoría de las firmas y la estrategia analítica.

Deja una respuesta

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