Veille technologique cyberdéfense

Baptiste MOINE <contact@bmoine.fr>

@Creased_

Docker et intégration continue au cœur du développement sécurisé ?

ENSIBS CYBER 1
Promotion 2017-2020

Sommaire

  1. Méthodologie / Outils

    2

  2. Qu’est-ce que Docker ?

    3

  3. Différence avec la virtualisation ?

    4

  4. Fonctionnement de Docker

    5

  5. Sécurité au cœur du développement

    10

  6. Aller plus loin

    11

  7. Conclusion

    12

Veille technologique

1

Méthodologie / Outils

  • Collecte des données (Twitter, DockerCon, KubeCon)
  • Tri (étude d'applicabilité)
  • Application (PoC)
  • Retranscription (rapport)
  • Partage (vulgarisation, présentations)

Veille technologique

2

Qu’est-ce que Docker ?

  • « Build, Ship and Run Any App, Anywhere »
  • Services légers de gestion de conteneurs
  • Philosophie « environment as a code »
  • Extension du projet : Moby Project

Veille technologique

3

Différence avec la virtualisation

Veille technologique

4

Virtualization vs. Docker

CC-BY-NC-SA Baptiste MOINE – bmoine.fr

Fonctionnement de Docker

Veille technologique

5

Linux Containers vs. Docker

CC-BY-NC-SA Baptiste MOINE – bmoine.fr

Fonctionnement de Docker

  • runC (OCI-compliant runtime) + containerd (OCI interface)
  • COW FS (p. ex., AUFS)
  • Namespaces (e.g., socket, PID, UID)
  • CGroups (gestion des performances)
  • Capabilities (p. ex., CAP_NET_ADMIN, CAP_SYS_ADMIN)
  • Gestion de la sécurité (p. ex., AppArmor, SELinux, Seccomp)

Veille technologique

6

Fonctionnement de Docker

$> docker-compose pull
$> docker-compose build

Successfully built a4aea8a6250f
Successfully tagged creased/nginx:stable-alpine

$> docker-compose push
$> docker-compose up -d

Creating network "dockerdemo_front" with driver "bridge"
Creating demo-nginx ... done

$> docker-compose logs

Attaching to demo-nginx
demo-nginx | 127.0.0.1 - - [20/Feb/2018:05:20:00 +0000] "GET / HTTP/1.1" 200 612 "-" "Wget" "-"

$> docker-compose ps

   Name            Command          State         Ports       
--------------------------------------------------------------
demo-nginx   nginx -g daemon off;   Up      0.0.0.0:80->80/tcp

Veille technologique

7

Fonctionnement de Docker

  • Infrastructure as a code :
    • Versioning des données
    • Versioning des configurations
    • Multi-plateforme (Linux, OSX et même Windows !)
    • Multi-instance
  • Une modification, une nouvelle version (màj de l’image)

Veille technologique

8

Fonctionnement de Docker

Veille technologique

9

Docker storage

CC-BY-NC-SA Baptiste MOINE – bmoine.fr

#
# Nginx Dockerfile
#
# Written by:
#   Baptiste MOINE <contact@bmoine.fr>
#

# Pull base image.
FROM library/nginx:stable-alpine

# Describe image.
MAINTAINER Baptiste MOINE <contact@bmoine.fr>

# Copy startup script.
COPY ./start.sh /start.sh
RUN chmod +x /start.sh

# Define command and entrypoint.
CMD ["/start.sh"]

Sécurité au cœur du développement

  • Permissions (conteneurs et LSM)
  • Intégration continue (smoke testing et fuzzing)
  • Disponibilité (docker swarm, kubernetes)
  • Compatibilité (spécifications OCI)
  • Confiance (notary)

Veille technologique

10

Aller plus loin

Veille technologique

11

Conclusion

Veille technologique

12

  • Opportunités de formation et de partages
  • Suivi d'un projet constituant une rupture technologique
  • Expérimentation de nombreux projets
Made with Slides.com