El documento discute los riesgos de seguridad asociados con DevSecOps, incluyendo la exposición de información confidencial en herramientas de desarrollo como repositorios de código, sistemas de tickets, servidores de integración continua y consolas de scripts. También analiza cómo vulnerabilidades en estas plataformas podrían permitir la ejecución de código malicioso u obtención de acceso no autorizado. Concluye resaltando la importancia de aplicar el principio del mínimo privilegio y realizar configuraciones seguras
1. DevSecOps y la caída de Babilonia
Cómo olvidarse de lo básico
Helena Jalain
Daniel González
2. Net user
Daniel González
@dani_zerolynx
• Co-fundador de ZEROLYNX
• Socio director de ciberinteligencia de OSANE
Consulting
• Profesor oficial del certificado CSX y
coordinador de las formaciones de
ciberseguridad de ISACA Madrid
Helena Jalain
@hlna_jb
• Security Researcher en ZEROLYNX
• Experiencia en consultoría de ciberseguridad,
hacking ético y desarrollo seguro
• Ingeniera de Telecomunicación y anteriormente
investigadora en la Universidad Politécnica de
Madrid
3. DevOps + Sec
Security
• Requisitos
• Análisis
• Pentest
Operations
• Monitorización
• Configuración
• Integración
Developement
• Diseño
• Desarrollo
• Tests
▪ Más facilidad para desarrollar, mayor número de
cambios que se pueden hacer.
▪ Nuevos gestores de dependencias (Maven, NPM,
Composer…) facilitan la integración con otras
tecnologías.
▪ Ofrecer nuevas funcionalidades más rápido.
▪ Capacidad de subir a producción de manera
automática.
▪ Integra garantías de seguridad en todo el proceso.
▪ Reducir costes a nivel de desarrollo, incluyendo el
coste de solucionar problemas de seguridad o
vulnerabilidades.
5. Ciclo de desarrollo DevOps
Diseño IDE CI Desarrollo Test Producción
• Revisión de requisitos
• Revisión de código
• Análisis de código estático
• Análisis de código estático
• Escaneo de vulnerabilidades
• Test unitarios de seguridad
• Escaneo periódico de
infraestructura
• Pentest activo
• Análisis SSL
• Pentest pasivo
• Escaneo periódico de la infraestructura
9. Escenario
Controlador de versión
Servidor de integración continua
Administrador de tareas
Sistema de mensajería en tiempo
real
Update TicketsPush commit
Trigger Build
Post Message
10. Riesgos y criticidades
Dependiendo de los siguientes factores:
Información y secretos
Vulnerabilidades: Evasión de la autenticación,
ejecución de código…
Permisos: Autenticación y Autorización
Exposición: Acceso interno o externo
11. Información confidencial almacenada en
las herramientas o en el propio código
fuente:
Búsqueda de secretos
Usuarios
Contraseñas
Claves
Tokens
Certificados
12. Repositorios de código
Credenciales
Infraestructura
Código
Claves criptográficas
Credenciales BBDD
API tokens (AWS, etc)
Bash history
Claves SSH
Configuración servicios (DHCP, SMTP, etc)
IPs y URLs internas
Puertos
Commits
History
Comentarios
Dependencias
Vulnerabilidades
[1] https://github.com/techgaun/github-dorks
13. Secretos en el código…Ups
[2] https://help.github.com/en/articles/removing-sensitive-data-from-a-repository
Buenas prácticas:
Para evitar subir info sensible:
✓ git-secrets
Para eliminar la info de la history del repositorio:
✓ git filter-branch
✓ BFG Repo-Cleaner
15. Información de proyectos
[4] https://medium.com/@sector035/gathering-company-intel-the-agile-way-6db12ca031c9
[3] https://developer.atlassian.com/cloud/jira/platform/rest/v2/
- API
16. Información de usuarios – API
Pero se pueden cambiar los permisos:
Por defecto solo accesible por administradores
o usuarios de Jira
19. Código fuente
Workspace de Jenkins:
• Directorio “temporal” de archivos
específico para cada Job
• Se crea al clonar el código del
repositorio para procesarlo
20. Credenciales en logs
Eliminar el build que contiene información sensible:
▪ Interfaz Gráfica
▪ Directorio del proyecto/builds/#nº
21. Credenciales en logs
Jenkins dispone de plugins (Credentials Binding Plugin,
Mask Passwords Plugin) para gestionar las
credenciales de aplicaciones de terceros y evitar que
éstas aparezcan embebidas en logs y archivos de
configuración.
29. Gestión de permisos
Cada plataforma tiene una gestión de permisos diferente con mayor o menor capacidad de
configuración.
Principio de mínimo privilegio
Matriz de roles y permisos
Configuración por defecto
Cambios por “necesidad”
33. Jenkins en datos
6.543
Sin autenticación
[11] http://stats.jenkins.io/plugin-installation-trend/jenkins-version-per-plugin-version.json
80.177
Servidores expuestos
228.825
TOTAL instalaciones
[12] http://stats.jenkins.io/plugin-installation-trend/installations.json
~35 % del total
73.539
Vulnerables CVE-2018-1000861
(versión < 2.138/2.121.3 LTS)
29.593
Vulnerables CVE-2018-1000861
(versión < 2.138/2.121.3 LTS)
~31% de los vulnerables
(stats)
~41 % de los expuestos
48.096
Vulnerables (CVE-2018-1000861
y CVE-2019-1003001)
~66% de los vulnerables a
CVE 2018 -1000861
~21% del total
~8% de los expuestos
~3% del total
49% expuestos
34% del total
Sin autenticación +CVE 2018 -
1000861
Peor escenario de autenticación
34. Empresas afectadas…
(muchas y variadas…)
No se mostrará ninguna vulnerabilidad de empresas en concreto.
Muchas de las vulnerabilidades se han detectado en terceros