Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Daniel González & Helena Jalain - DevSecOps y la caída de Babilonia: cómo olvidarse de lo básico [rooted2019]

125 views

Published on

Daniel González & Helena Jalain - DevSecOps y la caída de Babilonia: cómo olvidarse de lo básico [rooted2019]

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Daniel González & Helena Jalain - DevSecOps y la caída de Babilonia: cómo olvidarse de lo básico [rooted2019]

  1. 1. DevSecOps y la caída de Babilonia Cómo olvidarse de lo básico Helena Jalain Daniel González
  2. 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. 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.
  4. 4. (Sec)Dev(Sec)Ops(Sec)¿?¿? 3 17.600DevOpsSEC 55.700SECDevOps 2 920.000DevSECOps 1
  5. 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
  6. 6. Tendencia Entorno de desarrollo Protección del entorno Desarrollos seguros
  7. 7. Seguridad de los entornos de desarrollo
  8. 8. 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
  9. 9. 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
  10. 10. Información confidencial almacenada en las herramientas o en el propio código fuente: Búsqueda de secretos Usuarios Contraseñas Claves Tokens Certificados
  11. 11. 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
  12. 12. 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
  13. 13. Usuarios Proyectos Gestión de incidencias Administradores de tareas Nombres de usuario IDs internos Nombres y apellidos Emails Cuentas LDAP Nombres Categorías Descripciones Dashboards Agile Gestión de proyectos
  14. 14. 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
  15. 15. Información de usuarios – API Pero se pueden cambiar los permisos: Por defecto solo accesible por administradores o usuarios de Jira
  16. 16. Credenciales Infraestructura Código Usuarios Servidores de integración continua
  17. 17. Stage Build Test Deploy StepStep Step Jenkinsfile (Declarative Pipeline) pipeline { agent any stages { stage('Build') { steps { echo 'Building..' } } stage('Test') { steps { echo 'Testing..' } } stage('Deploy') { steps { echo 'Deploying....' } } } } Integración continua (CI) Pipeline Entrega continua (CD) Open Source Plugins
  18. 18. 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
  19. 19. Credenciales en logs Eliminar el build que contiene información sensible: ▪ Interfaz Gráfica ▪ Directorio del proyecto/builds/#nº
  20. 20. 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.
  21. 21. Credenciales almacenadas ▪ credentials.xml: – Secret text (API token) – username:password – Secret file – SSH public/private key pair – Certificate (PKCS#12) – Docker Host Certificate Authentication ▪ /job/job_name/config.xml
  22. 22. Credenciales en claro – Consola de scripts [5] https://wiki.jenkins.io/display/JENKINS/Jenkins+Script+Console
  23. 23. Consola de scripts- Jira [8] https://marketplace.atlassian.com/addons/app/jira/top-selling
  24. 24. Explotación de vulnerabilidades [6] https://www.cvedetails.com/vendor/15865/Jenkins.html [7] https://www.cvedetails.com/product/8170/Atlassian-Jira.html
  25. 25. Mal de muchos… consuelo de tontos
  26. 26. Explotación de vulnerabilidades - Jenkins Critical 3 High 24Medium 30 [9] https://nvd.nist.gov/vuln/search/results?form_type=Advanced&results_type=overview&query=Jenkins [10] https://blog.orange.tw/2019/01/hacking-jenkins-part-1-play-with-dynamic-routing.html [11] https://blog.orange.tw/2019/02/abusing-meta-programming-for-unauthenticated-rce.html
  27. 27. DEMO TIME
  28. 28. 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”
  29. 29. Permisos – Configuración por defecto
  30. 30. Permisos – Configuración por defecto
  31. 31. Interfaces expuestas 2.603 2 3 2.532 1 80.177
  32. 32. 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
  33. 33. Empresas afectadas… (muchas y variadas…) No se mostrará ninguna vulnerabilidad de empresas en concreto. Muchas de las vulnerabilidades se han detectado en terceros
  34. 34. DevSecOps Top 3 Fails
  35. 35. 3 Datos sensibles en incidencias
  36. 36. 2 Información de más de 1000 usuarios
  37. 37. EASY MODE 1
  38. 38. EASY MODE 1
  39. 39. EASY MODE 1
  40. 40. EASY MODE 1
  41. 41. EASY MODE 1
  42. 42. EASY MODE 1
  43. 43. EASY MODE 1
  44. 44. Conclusiones
  45. 45. Enlaces [1] https://github.com/techgaun/github-dorks [2] https://help.github.com/en/articles/removing-sensitive-data-from-a-repository [3] https://developer.atlassian.com/cloud/jira/platform/rest/v2/ [4] https://medium.com/@sector035/gathering-company-intel-the-agile-way-6db12ca031c9 [5] https://wiki.jenkins.io/display/JENKINS/Jenkins+Script+Console [6] https://www.cvedetails.com/vendor/15865/Jenkins.html [7] https://www.cvedetails.com/product/8170/Atlassian-Jira.html [8] https://marketplace.atlassian.com/addons/app/jira/top-selling [9] https://nvd.nist.gov/vuln/search/results?form_type=Advanced&results_type=overview&query=Jenkins [10] https://blog.orange.tw/2019/01/hacking-jenkins-part-1-play-with-dynamic-routing.html [11] https://blog.orange.tw/2019/02/abusing-meta-programming-for-unauthenticated-rce.html [12] http://stats.jenkins.io/plugin-installation-trend/installations.json [13] http://stats.jenkins.io/plugin-installation-trend/jenkins-version-per-plugin-version.json Otros enlaces de interés: http://www.exfiltrated.com/research/Continuous_Integration_Continous_Compromise_Bsides2017_Wesley_Wineberg.pdf https://www.youtube.com/watch?v=0H6jd5yG7_A
  46. 46. © 2019 Zerolynx S.L. Sociedad española de responsabilidad limitada.Todos los derechos reservados. Zerolynx y sus logotipos son marcas registradas por Zerolynx S.L. Diseño de iconos creado por Freepik para www.flaticon.com, licenciado bajo CC 3.0 BY. La información contenida es de carácter informativo. Para solicitar una cotización de un servicio debe contactar con el equipo comercial de Zerolynx. dgonzalez@zerolynx.com @dani_zerolynx ¡ Muchas gracias ! hjalain@zerolynx.com @hlna_jb

×