Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DOCKER. Seguridad y monitorización en contenedores e imágenes

DOCKER. Seguridad y monitorización en contenedores e imágenes

Este charla tiene como objetivo introducir los conocimientos para entender cómo gestiona Docker la seguridad tanto desde el punto de vista de la máquina donde lo ejecutamos, como desde el desarrollo y despliegue de imágenes.

Docker es una herramienta portable para virtualización basada en contenedores y permite también la portabilidad de las aplicaciones.Se comentarán el conjunto de buenas prácticas que minimicen en la medida de lo posible la exposición de nuestra aplicación ante posibles ataques.

Desde el punto de vista del análisis de imágenes comentaremos una serie de herramientas que permiten al usuario analizar cada una de las capas de las imágenes y contenedores en búsqueda de librerías desactualizadas, y vulnerabilidades y exposiciones comunes que podemos encontrar en la base de datos (CVE).

Entre los puntos a tratar podemos destacar:
- Introducción a la seguridad en docker
- Seguridad en contenedores e imágenes
- Monitorización en contenedores Docker
- Auditorías sobre imágenes y vulnerabilidades

Además he escrito un libro sobre este tema:
https://rclibros.es/producto/docker-seguridad-y-monitorizacion-en-contenedores-e-imagenes/

jmortegac

June 14, 2019
Tweet

More Decks by jmortegac

Other Decks in Technology

Transcript

  1. AGENDA INTRODUCCIÓN A LA PROGRAMACIÓN CON PYTHON METODOLOGÍA Y HERRAMIENTAS

    DE DESARROLLO LIBRERÍAS Y MÓDULOS PARA REALIZAR PETICIONES RECOLECCIÓN DE INFORMACIÓN CON PYTHON EXTRACCIÓN DE INFORMACIÓN CON PYTHON WEBSCRAPING CON PYTHON ESCANEO DE PUERTOS Y REDES CON PYTHON HERRAMIENTAS AVANZADAS
  2. AGENDA • Introducción a la seguridad en docker • Seguridad

    en contenedores e imágenes • Monitorización en contenedores Docker • Auditorías sobre imágenes y vulnerabilidades
  3. Introducción a la seguridad en docker • Linux kernel namespaces

    • Linux Control Groups (cgroups) • Docker daemon • Linux capabilities (libcap) • Mecanismos de seguridad en linux ◦ AppArmor, SELinux, Seccomp
  4. Introducción a la seguridad en docker docker run --name mysql

    --read-only -v /var/lib/mysql -v /tmp -d -e MYSQL_ROOT_PASSWORD=password mysql
  5. Docker Bench for Security docker run -it --net host --pid

    host --userns host --cap-add audit_control \ -e DOCKER_CONTENT_TRUST=$DOCKER_CONTENT_TRUST \ -v /var/lib:/var/lib \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /usr/lib/systemd:/usr/lib/systemd \ -v /etc:/etc --label docker_bench_security \ docker/docker-bench-security
  6. Docker Bench for Security • La configuración del host •

    La configuración del Daemon Docker • Los archivos de configuración de Docker Daemon • Contenedor de imágenes y archivos de compilación • Contenedor en tiempo de ejecución • Operaciones de seguridad de Docker
  7. Container image scanning • Comprobar paquetes de software, binarios, librerías,

    sistemas operativos y sus vulnerabilidades • Analizar dockerfile y metadatos • Políticas de usuario: blacklist, no permitir imágenes con determinado software
  8. Clair Scanner Quay.io registry # Descarga e instalación de la

    herramienta $ git clone https://github.com/hxquangnhat/clair-analyze-local-images. git $ cd clair-analyze-local-images/ $ docker-compose up -d # Análisis imagen Docker $ docker exec clair_clair analyzer <image_name>
  9. Anchore cli • pip install anchorecli • git clone https://github.com/anchore/anchore-cli

    cd anchore-cli pip install --user --upgrade . • python setup.py install
  10. Anchore cli # Disponibilizar una imagen a Anchore $ [docker

    run anchore-cli] anchore-cli image add <image_name> # Visualizar contenido de la imagen $ anchore-cli image content <image_name> os # Analizar contenido de la imagen $ anchore-cli image content <image_name> os # Evaluar en base al cumplimiento de la política $ anchore-cli evaluate check <image_name> os
  11. NVD

  12. NVD

  13. NVD

  14. Amenazas • Dirty cow exploit: Escalada de privilegios root en

    un host o contenedor • Buffer overflow en librerías de Python y Ruby permitiendo la ejecución maliciosa de código • Vulnerabilidades en glibc • OpenSSL heap corruption
  15. Docker Vulnerabilities CVE-2014-0160 Heartbleed struct { HeartbeatMessageType type; uint16 payload_length;

    opaque payload[HeartbeatMessage.payload_length]; opaque padding[padding_length]; } HeartbeatMessage