Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

Elias Grande - Dagda [rootedvlc4]

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Hier ansehen

1 von 39 Anzeige

Elias Grande - Dagda [rootedvlc4]

Vivimos en una época en donde los ""as a Service"" han pasado de ser Infraestructura, Plataforma y Servicio, a una cantidad tan ingente de ellos que ya es imposible acotarlos a un conjunto conocido por todos. Sin embargo, y aunque el marketing inunde de términos el mundo de IT, todos ellos se basan en la automatización y en el uso de contenedores para desplegar todas las aplicaciones y servicios.

En esta charla se mostrará Dagda, una herramienta completamente Open Source que permite el análisis estático de vulnerabilidades conocidas en contenedores Docker y la monitorización de comportamientos anómalos dentro de contenedores en ejecución. Además, en la charla se incluirán, entre otros temas, cómo realizar un perfilado a nivel de capabilities de Linux sobre los contenedores sin necesidad de SELinux o AppArmor, y una introducción a los unikernels.

Vivimos en una época en donde los ""as a Service"" han pasado de ser Infraestructura, Plataforma y Servicio, a una cantidad tan ingente de ellos que ya es imposible acotarlos a un conjunto conocido por todos. Sin embargo, y aunque el marketing inunde de términos el mundo de IT, todos ellos se basan en la automatización y en el uso de contenedores para desplegar todas las aplicaciones y servicios.

En esta charla se mostrará Dagda, una herramienta completamente Open Source que permite el análisis estático de vulnerabilidades conocidas en contenedores Docker y la monitorización de comportamientos anómalos dentro de contenedores en ejecución. Además, en la charla se incluirán, entre otros temas, cómo realizar un perfilado a nivel de capabilities de Linux sobre los contenedores sin necesidad de SELinux o AppArmor, y una introducción a los unikernels.

Anzeige
Anzeige

Weitere Verwandte Inhalte

Diashows für Sie (20)

Ähnlich wie Elias Grande - Dagda [rootedvlc4] (20)

Anzeige

Weitere von RootedCON (20)

Aktuellste (20)

Anzeige

Elias Grande - Dagda [rootedvlc4]

  1. 1. Dagda Elías Grande @3grander
  2. 2. Agenda • Introducción – Docker y sus otros “amigos” – Unikernels • Estado del arte • Dagda • Conclusiones 2
  3. 3. Introducción a los contenedores 3
  4. 4. ¿Qué es una imagen Docker? (I) 4 redis 83d6014ac5c8193fa43dd16b161f0e524141800f10cff44d7bad3b637991cf16.json manifest.json repositories 7e9bdae05c6e53ac1a37c5b21f5f8a8126dbf1f51813733eea24174e1321e25c json layer.tar VERSION … f47c5f0297b5d302565174c3abaa3c37296dd8bba41ed4ed97121001f4f21695 json layer.tar VERSION
  5. 5. ¿Qué es una imagen Docker? (II) 5 redis 83d6014ac5c8193fa43dd16b161f0e524141800f10cff44d7bad3b637991cf16.json manifest.json repositories 7e9bdae05c6e53ac1a37c5b21f5f8a8126dbf1f51813733eea24174e1321e25c json layer.tar VERSION … f47c5f0297b5d302565174c3abaa3c37296dd8bba41ed4ed97121001f4f21695 json layer.tar VERSION Metadatos Globales • Info global de la imagen • Histórico modificaciones • SHA256 de cada capa guardadas en orden
  6. 6. ¿Qué es una imagen Docker? (III) 6 redis 83d6014ac5c8193fa43dd16b161f0e524141800f10cff44d7bad3b637991cf16.json manifest.json repositories 7e9bdae05c6e53ac1a37c5b21f5f8a8126dbf1f51813733eea24174e1321e25c json layer.tar VERSION … f47c5f0297b5d302565174c3abaa3c37296dd8bba41ed4ed97121001f4f21695 json layer.tar VERSION Manifiesto • Ref. al fichero de config global • Lista de tags de la imagen • Lista de capas en orden
  7. 7. ¿Qué es una imagen Docker? (IV) 7 redis 83d6014ac5c8193fa43dd16b161f0e524141800f10cff44d7bad3b637991cf16.json manifest.json repositories 7e9bdae05c6e53ac1a37c5b21f5f8a8126dbf1f51813733eea24174e1321e25c json layer.tar VERSION … f47c5f0297b5d302565174c3abaa3c37296dd8bba41ed4ed97121001f4f21695 json layer.tar VERSION Repositorios • Repositorio al que pertenece la imagen • Tags disponibles en el repo • Ref. a la última capa
  8. 8. ¿Qué es una imagen Docker? (V) 8 redis 83d6014ac5c8193fa43dd16b161f0e524141800f10cff44d7bad3b637991cf16.json manifest.json repositories 7e9bdae05c6e53ac1a37c5b21f5f8a8126dbf1f51813733eea24174e1321e25c json layer.tar VERSION … f47c5f0297b5d302565174c3abaa3c37296dd8bba41ed4ed97121001f4f21695 json layer.tar VERSION Capas de la imagen • Una o más capas cada una en su propia carpeta • Cada capa tiene 3 ficheros: • json (Metadatos) • Layer.tar (filesystem bundle) • VERSION
  9. 9. Runtime de Docker (I) • Runc (container runtime) – Namespace Isolation (PID, MNT, IPC, NET, …) – Cgroups (CPU, BLKIO, MEM, PIDS, …) • Containerd (supervisor) – Gestiona ciclo de vida completo de los contenedores 9
  10. 10. Runtime de Docker (II) 10
  11. 11. Runtime de Docker (III) 11
  12. 12. Runtime de Docker (IV) 12
  13. 13. Runtime de Docker (V) 13
  14. 14. Runtime de Docker (VI) 14
  15. 15. Runtime de Docker (VII) 15
  16. 16. 2013 2014 2015 2016 2017 16
  17. 17. ¿UniK? 17
  18. 18. Unik (I) • Sistema operativo + app • Corre sobre Hypervisor o Bare metal • Contiene sólo lo que usas • Uni-proceso (pero multi-hilo) • Espacio de memoria único (Uni-usuario) 18
  19. 19. Unik (II) 19
  20. 20. Proyectos Unik Proyecto Lenguaje Objetivo MirageOS Ocaml Xen, POSIX, (KVM) Rumprun C Xen, KVM POSIX ClickOS C++ Xen LING Erlang Xen Osv C/Java Xen, KVM IncludeOS C++ KVM HaLVM Haskel Xen Clive Go Xen, KVM, POSIX Drawbridge C Windows Runtime.js JavaScript KVM 20
  21. 21. Herramientas Seg. Docker • Open Source – OpenSCAP/oscap-docker – CoreOS/Clair – Anchore • Productos comerciales – Docker Security Scanning – Aqua – Twistlock 21
  22. 22. Anchore 22
  23. 23. Docker Security Scanning 23
  24. 24. Twistlock 24
  25. 25. Aqua 25
  26. 26. Introducción a Dagda • Suite de seguridad Docker – Análisis estático de vulnerabilidades conocidas, troyanos, virus, malware, … – Detección de actividades anómalas en runtime • Proyecto 100% Open Source • Accesible mediante: – API REST o CLI [Nativo] – UI Web [Community Edition] 26
  27. 27. Análisis estático de vuln. & malw. • Múltiples imágenes base Linux – Red Hat/CentOS/Fedora – Debian/Ubuntu – OpenSUSE – Alpine • Múltiples dependencias (deepfence_depcheck): – Javascript / Node.js – Java – Python – Ruby – Php 27 • Detección de malware (clamav): – Troyanos – Virus – Malware – …
  28. 28. Detección de act. anómalas (I) 28 • Integrado con Sysdig/Falco • Sysdig/Falco soporta de manera nativa: – Docker – Apache Mesos – Kubernetes
  29. 29. Detección de act. anómalas (II) 29
  30. 30. • Ejemplo regla comportamiento Reglas Sysdig/Falco 30 - macro: elasticsearch_cluster_port condition: fd.sport=9300 - macro: elasticsearch_api_port condition: fd.sport=9200 - macro: elasticsearch_port condition: elasticsearch_cluster_port or elasticsearch_api_port - rule: Elasticsearch unexpected network inbound traffic desc: inbound network traffic to elasticsearch on a port other than the standard ports condition: user.name = elasticsearch and inbound and not elasticsearch port output: “Inbound network traffic to Elasticsearch on unexpected port (connection=%fd.name)” priority: WARNING
  31. 31. • --cap-drop: Drop Linux capabilities Linux capabilities [docker run] 31 Capability Key Capability Description DAC_OVERRIDE Bypass file read, write, and execute permission checks. FOWNER Bypass permission checks on operations that normally require the file system UID of the process to match the UID of the file. KILL Bypass permission checks for sending signals. NET_BIND_SERVICE Bind a socket to internet domain privileged ports (port numbers less than 1024). NET_RAW Use RAW and PACKET sockets. … …
  32. 32. Arquitectura de Dagda 32
  33. 33. API 33 • Doc [ https://github.com/eliasgranderubio/dagda/wiki/REST-API ] – /check/<[images|containers]>/<id> – /docker/<[images|containers]> – /history/<image_name> – /monitor/containers/<id>/[start|stop] – /vuln/[cve|bid|exploit|…] /<id>[/details]
  34. 34. • Doc [ https://github.com/eliasgranderubio/dagda/wiki/CLI-Usage ] Command Line Interface 34 usage: dagda.py [--version] [--help] <command> [args] Dagda Commands: agent run a remote agent for performing the analysis of known vulnerabilities, trojans, viruses, malware & other malicious threats in docker images/containers check perform the analysis of known vulnerabilities, trojans, viruses, malware & other malicious threats in docker images/containers docker list all docker images/containers history retrieve the analysis history for the docker images monitor perform the monitoring of anomalous activities in running docker containers start start the Dagda server vuln perform operations over your personal CVE, BID & ExploitDB database
  35. 35. UI Web - Dashboard 35
  36. 36. Dagda Roadmap 2017 2018 Dagda 0.0.5 (Mínima pero funcional) Nov 16 Mar 17 Dagda 0.0.6 - Detalles de las vuln. - Falsos Positivos - Análisis estático remoto Dagda 0.0.7 (WIP) - ClamAV (Malware) - Dagda UI (CE) - Dep. Check propio Ago 17 Sep 17 36
  37. 37. Conclusiones 37 • Docker, Rocket, Mesos Containerizer, … los contenedores son una realidad en el mundo IT • Contenedor ≠ Unikernel • Para cubrir el ciclo de vida de nuestros Docker no es necesario el uso de suites de terceros. • En seguridad en contenedores aun existen vías de mejora e innovación.
  38. 38. Referencias • https://github.com/eliasgranderubio/dagda • https://www.docker.com/ • https://coreos.com/rkt/ • https://github.com/kubernetes-incubator/cri-o • http://mesos.apache.org/documentation/latest/mesos-containerizer/ • http://unikernel.org/ • https://www.opencontainers.org/ • https://www.twistlock.com/ • https://www.aquasec.com/ • https://anchore.io/ • https://www.sysdig.org/falco/ • https://www.clamav.net/ 38
  39. 39. 39

Hinweis der Redaktion

  • Presentado en la DockerCon de Abril 17-20, 2017 en AUSTIN, TX
  • # Contenedores
    - Docker 2013
    - Rkt 2014 (Por defecto: verificación de firma, no usuario root, arquitectura modular como ahora Docker con Moby, …)
    - Original Mesos Containerizer [DCOS/Mesosphere 2015]
    - OCI 2015 (Open Container Initiative: runtime-spec & image-spec)
    - CRI-o 2016 (Justo cuando docker incluye Docker Swarm)
    - Universal Container Runtime (UCR) Mesos [finales 2016 - inicios 2017] (Experimental) [Removes your dependency on the Docker daemon]

    # Unikernels (Nacen 2013 - 2014)
    - Mirage 2013
    - IncludeOS 2014
  • Análisis estático SOLO
    Discover: Search for images across multiple public registries and your own private registries.
    Analyze: Perform deep analysis on images
    Certify: Define policies to certify images including security vulnerabilities, package whitelists, blacklists, configuration files, …

  • Análisis estático SOLO
    Docker Cloud and Docker Hub can scan images in private repositories to verify that they are free from known security vulnerabilities or exposures, and report the results of the scan for each image tag.
  • Análisis estático + runtime
    Compliance (Buenas prácticas de configuración)
    Vulnerability detection (Análisis estático) + CI Integration
    Runtime protection (monitor container activities, detect policy violations, report anomalies, and execute corrective actions)

  • Análisis estático + runtime
    - Funcionalidades similares a Twistlock

×