SlideShare a Scribd company logo
1 of 45
Download to read offline
Ciel ! Mon Kubernetes mine des
Bitcoins
1
~$ whoami
Denis GERMAIN
Senior SRE chez
Blog tech (et +) : blog.zwindler.fr*
@zwindler     denis-germain
#geek #SF #courseAPied
*Les slides de ce talk sont sur le blog
2
Ciel ! Mon Kubernetes mine des
Bitcoins
3
Docker / Kubernetes
: Outil de gestion
d'applications isolées via utilisation de
fonctionnalités du kernel Linux +
magasin d'images immutables
: Orchestrateur de containers,
inspiré par un outil interne de Google,
opensourcé et donné à la Linux
Foundation en 2015.

Abstrait l'infra avec du YAML
4
What could possibly go wrong ?
5
Un outil complexe ? Pas
grave, il y a une GUI !
Tesla ...
The hackers had infiltrated Tesla’s
Kubernetes console which was not
password protected / Source : redlock.io
6
Autre exemple : Kubeflow
Interface pour planifier des tâches de ML
Machine Learning ⇒ utilisation de GPUs
Gains bien plus importants
zdnet - Microsoft découvre un gang de
cryptomining détournant des clusters Kubernetes
7
Pas d'interfaces ouvertes sur Internet !!!
Les clouds providers les désactivent par défaut
Pour la gestion courante : des UIs locales (Lens, k9s , ...)
Pour la métrologie : Grafana + Prometheus, outils tiers
8
Sécuriser la plateforme
9
Architecture simplifiée de Kubernetes
10
Pas d'APIs sur Internet !
2000 Docker engines are insecurely exposed to the Internet unit42
: Docker API + Graboid
[...] but it was possible to connect from….the Internet
4armed : etcd + Digital Ocean
our coworker’s server was also publicly exposing the kubelet ports
Handy + kubelet
11
Contrôle d'accès dans Kubernetes
RBAC (Role-based access control) par défaut
Appliquez le principe de moindre privilège
     
12
Failles dans Kubernetes
Août 2019 : la CNCF a commandé un audit du code de Kubernetes
Quelques grosses CVE "récentes"
2018 / faille dans l'API server
ZDnet : La première grosse faille de sécurité est là (API server)
2019 / faille dans RunC pour sortir du container
Faille dans RunC (Docker, Kubernetes et Mesos concernés)
2020 / faille dans kubernetes controller manager
When it’s not only about a Kubernetes CVE…
13
Sécuriser les workloads
14
Pas de container exécuté en
tant que root !
Kubernetes utilise (pour l'instant) la même
table des ID utilisateurs que l'hôte Linux
Container lancé en tant que root == Binaire
lancé en root sur l'hôte
Kubecon EU 2018: The route to Rootless
Containers
@sylvielorxu
15
JW Player
Un service de supervision (Weave Scope) avait été créé avec des
privilèges et accessible depuis le net
How A Cryptominer Made Its Way in our k8s Clusters
Our deployment was missing the annotation to make the load
balancer internal

The weave-scope container is running with the --privileged flag

Files on the root file system were mounted onto the container

Containers are run as the  root user.
16
Pod Security Policy
Imposer des règles pour sécuriser l'utilisation du cluster
# Required to prevent escalations to root.
allowPrivilegeEscalation: false
runAsUser:
# Require the container to run without root privileges.
rule: 'MustRunAsNonRoot'
DEPRECATED depuis Kubernetes 1.21...
A remplacer par OPA (Open Policy Agent) ou Kyverno
17
Mon cluster lance des GCC ???
Il existe des Intrusion Detection System / runtime scanning
Utilise des programmes BPF dans le kernel pour détecter des
comportements anormaux
Cilium Uncovering a Sophisticated Kubernetes Attack in Real-Time
18
Sécuriser vos images Docker
Limitez le risque et l'impact d'une compromission :
Le moins de dépendances possibles et des composants à jour !
Ne pas ajouter des binaires utiles aux attaquants
oubliez ping , traceroute , gcc , ...
Pas de shell !
19
Conclusion
20
Conclusion
Ne déployez pas Kubernetes si vous n'en avez pas besoin !
Mais si vous en avez l'utilité, allez y !
Il y a beaucoup de choses à sécuriser dans Kube
Formez vos développeurs, pas seulement les Ops !
Sécurisez dès le début
Et après tout se passera bien
21
That's all folks
22
Backup slides
23
Kubernetes threat matrix
Microsoft Security Blog
24
There is a lot to Secure
Source: Kubernetes Security / Duffie Cooley 25
La mode des containers
Il existe de nombreuses implémentations des containers
est très utilisé depuis quelques années
utilise des fonctionnalités du kernel Linux
fourni une interface "simple" et un magasin d'images
Outil qui permet d'empaqueter une application et ses
dépendances. Elle pourra être exécuté sur n'importe quel serveur
26
Kubernetes, un outil puissant et complexe
pour abstraire l'infrastructure
Décrire l'état souhaité de notre application hautement disponible
27
RBAC dans la pratique
Le principe des moindres privilèges est un vrai chantier
à mettre en place dès le début du cycle de développement
plus difficile à appliquer a posteriori (sauf à tout bloquer)
Pour auditer le RBAC :
kubectl auth can-i
kubectl who-can
et plein d'autres
28
Utilisez une authentification tierce
Pas de gestion des (vrais) utilisateurs. Les applications/démons ont
des ServiceAccounts authentifiés par :
Tokens JWT
Certificats (difficilement révocables )
Ajouter une authentification tierce de type OIDC + RBAC
29
sac de nouilles Network Policies chez Monzo
Monzo Bank a mis en place des Network Policies pour la totalité de
ses 1500 microservices :
30
Ajouter des Network Policies
Par défaut, Kubernetes autorise tout container à se connecter à
n'importe quel autre #OpenBar
              
31
Service Mesh !
Mettre en place des
Network Policies peut
être complexe...
... mais on peut faire
encore plus complexe !
32
Service Mesh
Déléguer beaucoup d'aspects réseau+sécu au Service Mesh :
gestion TLS
firewalling / ACL
analyse temps réel des attaques
audit/forensics, DDOS mitigation, ...
33
Votre cluster respecte les bonnes pratiques ?
kube-hunter (scan de vulnérabilité triviales)
kube-bench (benchmark CSI de votre installation)
Exemple d'attaque via Unauthenticated Kubelet
34
Vérifiez vos applications
kubeaudit (audit des app déployées)
kube-scan (risk assessment du type CVSS)
35
Sources
36
Les best practices
Kubernetes.io : 11 ways not to get hacked
CNCF : Kubernetes security best practices
Rancher : More Kubernetes best practices
Stackrox
Jerry Jalava : Kubernetes Security Journey
Workshop Sécuriser son Kubernetes au DevFest Nantes 2019
Duffie Cooley (VMware) : Kubernetes Security
Kubecon EU 2018 - Zalando Continuously Deliver your K8s Infra
37
Les outils pour durcir Kube (1/2)
Scan de vulnérabilité triviales : kube-hunter
Benchmark CSI de votre installation : kube-bench
Audit des app déployées : kubeaudit
"Risk assessment" du type CVSS : kube-scan
OPA / OnePolicyAgent
blog.zwindler.fr - Vos politiques de conformité sur Kubernetes avec
OPA et Gatekeeper
Kyverno
38
Les outils pour durcir Kube (2/2)
Analyse statique : Clair
Analyse statique : Anchore
Analyse statique : Trivy
Analyse runtime : Falco
SELinux, Seccomp, Falco, a technical discussion
Access, Assert, Act. La sécurité à l'échelle avec Falco
CNI + analyse runtime : Cilium
39
Les failles de sécu récentes de K8s (&+)
Faille dans RunC (Docker, Kubernetes et Mesos concernés)
Liste des CVE Kubernetes
ZDnet : La première grosse faille de sécurité est là (API server)
L'exploit pour la faille dans l'API Server
40
Les sociétés hackées dans la presse (1/2)
2018 : Cryptojacking chez Tesla
2019 : Cryptojacking chez jwplayer
Plus d'infos sur le cryptominer XMrig
ZDNET : des hackers utilisent les API de management de Docker
exposées sur le net
zdnet - Microsoft découvre un gang de cryptomining détournant
des clusters Kubernetes
4armed : Server-Side Request Forgery + etcd accessible depuis
Internet chez Digital Ocean
41
Les sociétés hackées dans la presse (2/2)
Un cluster perso d'un employé de Handy laisse son kubelet ouvert
sur Internet
Azure Container Instance (docker managé Azure) permettait
l'accès cross account
42
Kubernetes Security Audit
Audit du code en aout 2019 : article principal
Audit du code en aout 2019 : audit en lui même
43
Autre (1/2)
Outil d'audit des rôles
Une liste d'outils permettant d'auditer le RBAC dans Kubernetes
Une image XMRig (Monero) sur le Dockerhub
Twitter : "There is a lot to Secure in Kubernetes"
DNS Spoofing on Kubernetes Clusters
Docker and Kubernetes Reverse shells
Exploiter un Tomcat Manager non sécurisé
Backdoor dans webmin
44
Autre (2/2)
Meetup Enix Jpetazzo - escalation via hostPath Volume
blog.zwindler.fr - Should we have containers ?
blog.zwindler.fr - Combien de problèmes ces stacks ont générés ?
45

More Related Content

What's hot

Kubernetes est-il soluble dans la sécurité ? Meetup Genève
Kubernetes est-il soluble dans la sécurité ? Meetup GenèveKubernetes est-il soluble dans la sécurité ? Meetup Genève
Kubernetes est-il soluble dans la sécurité ? Meetup GenèveNet4All
 
CloudExpo Europe 2017 - DevOps entre client et fournisseur
CloudExpo Europe 2017 - DevOps entre client et fournisseurCloudExpo Europe 2017 - DevOps entre client et fournisseur
CloudExpo Europe 2017 - DevOps entre client et fournisseurLudovic Piot
 
Joseph Glorieux & Mathieu Brun Maintenant que mon delivery pipeline est en pl...
Joseph Glorieux & Mathieu Brun Maintenant que mon delivery pipeline est en pl...Joseph Glorieux & Mathieu Brun Maintenant que mon delivery pipeline est en pl...
Joseph Glorieux & Mathieu Brun Maintenant que mon delivery pipeline est en pl...matteo mazzeri
 
Sw 100 fr docker conteneurisation des applications
Sw 100 fr docker conteneurisation des applicationsSw 100 fr docker conteneurisation des applications
Sw 100 fr docker conteneurisation des applicationsStephane Woillez
 
Opensource et AppSec : amis ou ennemis ?
Opensource et AppSec : amis ou ennemis ?Opensource et AppSec : amis ou ennemis ?
Opensource et AppSec : amis ou ennemis ?bertrandmeens
 
Microsoft Experiences 16, Vincent Thavonekham REX IoT Azure Large projects
Microsoft Experiences 16, Vincent Thavonekham REX IoT Azure Large projectsMicrosoft Experiences 16, Vincent Thavonekham REX IoT Azure Large projects
Microsoft Experiences 16, Vincent Thavonekham REX IoT Azure Large projectsFactoVia
 
Afterwork Devops : vision et pratiques
Afterwork Devops : vision et pratiquesAfterwork Devops : vision et pratiques
Afterwork Devops : vision et pratiquesOCTO Technology Suisse
 
Architecture microservices avec docker
Architecture microservices avec dockerArchitecture microservices avec docker
Architecture microservices avec dockergcatt
 
Orchestrating Docker in production - TIAD Camp Docker
Orchestrating Docker in production - TIAD Camp DockerOrchestrating Docker in production - TIAD Camp Docker
Orchestrating Docker in production - TIAD Camp DockerThe Incredible Automation Day
 
Dev ops - Contiuous delivery
Dev ops - Contiuous deliveryDev ops - Contiuous delivery
Dev ops - Contiuous deliveryPatrice Ferlet
 
Midi technique - présentation docker
Midi technique - présentation dockerMidi technique - présentation docker
Midi technique - présentation dockerOlivier Eeckhoutte
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinLudovic Piot
 
DevOps, quel futur pour les Ops ?
DevOps, quel futur pour les Ops ?DevOps, quel futur pour les Ops ?
DevOps, quel futur pour les Ops ?Ludovic Piot
 
Devoteam REX OpenShift DevOps - Red Hat Roadshow Paris - avril 2018
Devoteam REX OpenShift DevOps - Red Hat Roadshow Paris - avril 2018Devoteam REX OpenShift DevOps - Red Hat Roadshow Paris - avril 2018
Devoteam REX OpenShift DevOps - Red Hat Roadshow Paris - avril 2018Cedric Girard
 
Docker, une alternative aux machines virtuelles pour déployer ses services .N...
Docker, une alternative aux machines virtuelles pour déployer ses services .N...Docker, une alternative aux machines virtuelles pour déployer ses services .N...
Docker, une alternative aux machines virtuelles pour déployer ses services .N...Microsoft
 
REX sur l'outilage Continuous Delivery
REX sur l'outilage Continuous DeliveryREX sur l'outilage Continuous Delivery
REX sur l'outilage Continuous DeliveryDamien Goldenberg
 

What's hot (20)

Kubernetes est-il soluble dans la sécurité ? Meetup Genève
Kubernetes est-il soluble dans la sécurité ? Meetup GenèveKubernetes est-il soluble dans la sécurité ? Meetup Genève
Kubernetes est-il soluble dans la sécurité ? Meetup Genève
 
CloudExpo Europe 2017 - DevOps entre client et fournisseur
CloudExpo Europe 2017 - DevOps entre client et fournisseurCloudExpo Europe 2017 - DevOps entre client et fournisseur
CloudExpo Europe 2017 - DevOps entre client et fournisseur
 
Joseph Glorieux & Mathieu Brun Maintenant que mon delivery pipeline est en pl...
Joseph Glorieux & Mathieu Brun Maintenant que mon delivery pipeline est en pl...Joseph Glorieux & Mathieu Brun Maintenant que mon delivery pipeline est en pl...
Joseph Glorieux & Mathieu Brun Maintenant que mon delivery pipeline est en pl...
 
Sw 100 fr docker conteneurisation des applications
Sw 100 fr docker conteneurisation des applicationsSw 100 fr docker conteneurisation des applications
Sw 100 fr docker conteneurisation des applications
 
Opensource et AppSec : amis ou ennemis ?
Opensource et AppSec : amis ou ennemis ?Opensource et AppSec : amis ou ennemis ?
Opensource et AppSec : amis ou ennemis ?
 
Microsoft Experiences 16, Vincent Thavonekham REX IoT Azure Large projects
Microsoft Experiences 16, Vincent Thavonekham REX IoT Azure Large projectsMicrosoft Experiences 16, Vincent Thavonekham REX IoT Azure Large projects
Microsoft Experiences 16, Vincent Thavonekham REX IoT Azure Large projects
 
Afterwork Devops : vision et pratiques
Afterwork Devops : vision et pratiquesAfterwork Devops : vision et pratiques
Afterwork Devops : vision et pratiques
 
Architecture microservices avec docker
Architecture microservices avec dockerArchitecture microservices avec docker
Architecture microservices avec docker
 
Orchestrating Docker in production - TIAD Camp Docker
Orchestrating Docker in production - TIAD Camp DockerOrchestrating Docker in production - TIAD Camp Docker
Orchestrating Docker in production - TIAD Camp Docker
 
Cybersécurité des projets webs
Cybersécurité des projets websCybersécurité des projets webs
Cybersécurité des projets webs
 
SDN OpenDaylight
SDN OpenDaylightSDN OpenDaylight
SDN OpenDaylight
 
Dev ops - Contiuous delivery
Dev ops - Contiuous deliveryDev ops - Contiuous delivery
Dev ops - Contiuous delivery
 
Midi technique - présentation docker
Midi technique - présentation dockerMidi technique - présentation docker
Midi technique - présentation docker
 
Cyberun #12
Cyberun #12Cyberun #12
Cyberun #12
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
 
DevOps, quel futur pour les Ops ?
DevOps, quel futur pour les Ops ?DevOps, quel futur pour les Ops ?
DevOps, quel futur pour les Ops ?
 
Devoteam REX OpenShift DevOps - Red Hat Roadshow Paris - avril 2018
Devoteam REX OpenShift DevOps - Red Hat Roadshow Paris - avril 2018Devoteam REX OpenShift DevOps - Red Hat Roadshow Paris - avril 2018
Devoteam REX OpenShift DevOps - Red Hat Roadshow Paris - avril 2018
 
DevOps with OpenShift
DevOps with OpenShiftDevOps with OpenShift
DevOps with OpenShift
 
Docker, une alternative aux machines virtuelles pour déployer ses services .N...
Docker, une alternative aux machines virtuelles pour déployer ses services .N...Docker, une alternative aux machines virtuelles pour déployer ses services .N...
Docker, une alternative aux machines virtuelles pour déployer ses services .N...
 
REX sur l'outilage Continuous Delivery
REX sur l'outilage Continuous DeliveryREX sur l'outilage Continuous Delivery
REX sur l'outilage Continuous Delivery
 

Similar to Ciel ! Mon Kubernetes mine des bitcoins...

Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...MSDEVMTL
 
Reverse Engineering d'un ransomware
Reverse Engineering d'un ransomwareReverse Engineering d'un ransomware
Reverse Engineering d'un ransomwareNinaSAMMUT
 
Devoxx 2023 - Sécurisez votre software supply chain avec SLSA, Sigstore et K...
Devoxx 2023 - Sécurisez votre software supply chain avec SLSA, Sigstore et K...Devoxx 2023 - Sécurisez votre software supply chain avec SLSA, Sigstore et K...
Devoxx 2023 - Sécurisez votre software supply chain avec SLSA, Sigstore et K...Mohamed Abdennebi
 
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?ALTER WAY
 
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker  : des conteneurs pour tout faire ? Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker : des conteneurs pour tout faire ? ALTER WAY
 
Devenez l’Élu et maitrisez la Matrice AWS 🦸
Devenez l’Élu et maitrisez la Matrice AWS 🦸Devenez l’Élu et maitrisez la Matrice AWS 🦸
Devenez l’Élu et maitrisez la Matrice AWS 🦸Membré Guillaume
 
2018.02.06 commission sécurité cloud - Présentation Serge Hartmann
2018.02.06 commission sécurité cloud - Présentation Serge Hartmann2018.02.06 commission sécurité cloud - Présentation Serge Hartmann
2018.02.06 commission sécurité cloud - Présentation Serge HartmannTelecomValley
 
Docker le buzz est il justifié ?
Docker le buzz est il justifié ? Docker le buzz est il justifié ?
Docker le buzz est il justifié ? Romain Chalumeau
 
Patterns du continuous delivery avec azure dev ops et kubernetes
Patterns du continuous delivery avec azure dev ops et kubernetesPatterns du continuous delivery avec azure dev ops et kubernetes
Patterns du continuous delivery avec azure dev ops et kubernetesCEDRIC DERUE
 
Déploiement, orchestration & sécurisation d’APIs
Déploiement, orchestration & sécurisation d’APIsDéploiement, orchestration & sécurisation d’APIs
Déploiement, orchestration & sécurisation d’APIsNicolas Herbaut
 
Kubernetes est-il soluble dans la sécurité ? NBS System & Doctolib - Assises ...
Kubernetes est-il soluble dans la sécurité ? NBS System & Doctolib - Assises ...Kubernetes est-il soluble dans la sécurité ? NBS System & Doctolib - Assises ...
Kubernetes est-il soluble dans la sécurité ? NBS System & Doctolib - Assises ...NBS System
 
Fonctionnalites et performances des cni pour Kubernetes - devops d-day 2018
Fonctionnalites et performances des cni pour Kubernetes - devops d-day 2018Fonctionnalites et performances des cni pour Kubernetes - devops d-day 2018
Fonctionnalites et performances des cni pour Kubernetes - devops d-day 2018Alexis Ducastel
 
Configurer GitHub Actions avec Docker et DotNET 8.pdf
Configurer GitHub Actions avec Docker et DotNET 8.pdfConfigurer GitHub Actions avec Docker et DotNET 8.pdf
Configurer GitHub Actions avec Docker et DotNET 8.pdfHamida Rebai Trabelsi
 
Créer une IA capable de reconnaître des fleurs (ou autres)
Créer une IA capable de reconnaître des fleurs (ou autres)Créer une IA capable de reconnaître des fleurs (ou autres)
Créer une IA capable de reconnaître des fleurs (ou autres)Olivier Eeckhoutte
 
Présentation docker et kubernetes
Présentation docker et kubernetesPrésentation docker et kubernetes
Présentation docker et kubernetesKiwi Backup
 
Virt lightning-montreal-linux-meetup-2020-02
Virt lightning-montreal-linux-meetup-2020-02Virt lightning-montreal-linux-meetup-2020-02
Virt lightning-montreal-linux-meetup-2020-02Gonéri Le Bouder
 
Docker & son ecosystème
Docker & son ecosystèmeDocker & son ecosystème
Docker & son ecosystèmeAymen EL Amri
 

Similar to Ciel ! Mon Kubernetes mine des bitcoins... (20)

Kubernetes (k8s).pdf
Kubernetes (k8s).pdfKubernetes (k8s).pdf
Kubernetes (k8s).pdf
 
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
 
Reverse Engineering d'un ransomware
Reverse Engineering d'un ransomwareReverse Engineering d'un ransomware
Reverse Engineering d'un ransomware
 
Devoxx 2023 - Sécurisez votre software supply chain avec SLSA, Sigstore et K...
Devoxx 2023 - Sécurisez votre software supply chain avec SLSA, Sigstore et K...Devoxx 2023 - Sécurisez votre software supply chain avec SLSA, Sigstore et K...
Devoxx 2023 - Sécurisez votre software supply chain avec SLSA, Sigstore et K...
 
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
 
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker  : des conteneurs pour tout faire ? Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
 
Devenez l’Élu et maitrisez la Matrice AWS 🦸
Devenez l’Élu et maitrisez la Matrice AWS 🦸Devenez l’Élu et maitrisez la Matrice AWS 🦸
Devenez l’Élu et maitrisez la Matrice AWS 🦸
 
2018.02.06 commission sécurité cloud - Présentation Serge Hartmann
2018.02.06 commission sécurité cloud - Présentation Serge Hartmann2018.02.06 commission sécurité cloud - Présentation Serge Hartmann
2018.02.06 commission sécurité cloud - Présentation Serge Hartmann
 
DevOps 3 - Docker.pdf
DevOps 3 - Docker.pdfDevOps 3 - Docker.pdf
DevOps 3 - Docker.pdf
 
Docker le buzz est il justifié ?
Docker le buzz est il justifié ? Docker le buzz est il justifié ?
Docker le buzz est il justifié ?
 
What is Docker
What is Docker What is Docker
What is Docker
 
Patterns du continuous delivery avec azure dev ops et kubernetes
Patterns du continuous delivery avec azure dev ops et kubernetesPatterns du continuous delivery avec azure dev ops et kubernetes
Patterns du continuous delivery avec azure dev ops et kubernetes
 
Déploiement, orchestration & sécurisation d’APIs
Déploiement, orchestration & sécurisation d’APIsDéploiement, orchestration & sécurisation d’APIs
Déploiement, orchestration & sécurisation d’APIs
 
Kubernetes est-il soluble dans la sécurité ? NBS System & Doctolib - Assises ...
Kubernetes est-il soluble dans la sécurité ? NBS System & Doctolib - Assises ...Kubernetes est-il soluble dans la sécurité ? NBS System & Doctolib - Assises ...
Kubernetes est-il soluble dans la sécurité ? NBS System & Doctolib - Assises ...
 
Fonctionnalites et performances des cni pour Kubernetes - devops d-day 2018
Fonctionnalites et performances des cni pour Kubernetes - devops d-day 2018Fonctionnalites et performances des cni pour Kubernetes - devops d-day 2018
Fonctionnalites et performances des cni pour Kubernetes - devops d-day 2018
 
Configurer GitHub Actions avec Docker et DotNET 8.pdf
Configurer GitHub Actions avec Docker et DotNET 8.pdfConfigurer GitHub Actions avec Docker et DotNET 8.pdf
Configurer GitHub Actions avec Docker et DotNET 8.pdf
 
Créer une IA capable de reconnaître des fleurs (ou autres)
Créer une IA capable de reconnaître des fleurs (ou autres)Créer une IA capable de reconnaître des fleurs (ou autres)
Créer une IA capable de reconnaître des fleurs (ou autres)
 
Présentation docker et kubernetes
Présentation docker et kubernetesPrésentation docker et kubernetes
Présentation docker et kubernetes
 
Virt lightning-montreal-linux-meetup-2020-02
Virt lightning-montreal-linux-meetup-2020-02Virt lightning-montreal-linux-meetup-2020-02
Virt lightning-montreal-linux-meetup-2020-02
 
Docker & son ecosystème
Docker & son ecosystèmeDocker & son ecosystème
Docker & son ecosystème
 

More from Open Source Experience

GAFAM or not GAFAM dans les collectivités
GAFAM or not GAFAM dans les collectivitésGAFAM or not GAFAM dans les collectivités
GAFAM or not GAFAM dans les collectivitésOpen Source Experience
 
API != REST - procmail à la rescousse
API != REST - procmail à la rescousseAPI != REST - procmail à la rescousse
API != REST - procmail à la rescousseOpen Source Experience
 
Vous souhaitez passer votre projet en open source ?
Vous souhaitez passer votre projet en open source ?Vous souhaitez passer votre projet en open source ?
Vous souhaitez passer votre projet en open source ?Open Source Experience
 
Évolutions de la gouvernance des projets libres
Évolutions de la gouvernance des projets libresÉvolutions de la gouvernance des projets libres
Évolutions de la gouvernance des projets libresOpen Source Experience
 
Data in Motion : un enjeu pour la modernisation des systèmes d'information
Data in Motion : un enjeu pour la modernisation des systèmes d'informationData in Motion : un enjeu pour la modernisation des systèmes d'information
Data in Motion : un enjeu pour la modernisation des systèmes d'informationOpen Source Experience
 
Gérer vos clusters Kubernetes avec Flux 2 et la méthode GitOps
Gérer vos clusters Kubernetes avec Flux 2 et la méthode GitOpsGérer vos clusters Kubernetes avec Flux 2 et la méthode GitOps
Gérer vos clusters Kubernetes avec Flux 2 et la méthode GitOpsOpen Source Experience
 
Quelle est la valeur de l’open source ? Étude de l’UE sur l’impact de l’open ...
Quelle est la valeur de l’open source ? Étude de l’UE sur l’impact de l’open ...Quelle est la valeur de l’open source ? Étude de l’UE sur l’impact de l’open ...
Quelle est la valeur de l’open source ? Étude de l’UE sur l’impact de l’open ...Open Source Experience
 
La montée en puissance de l’infrastructure ouverte
La montée en puissance de l’infrastructure ouverteLa montée en puissance de l’infrastructure ouverte
La montée en puissance de l’infrastructure ouverteOpen Source Experience
 
L’Open Science au service des personnes atteintes d’épilepsie
L’Open Science au service des personnes atteintes d’épilepsieL’Open Science au service des personnes atteintes d’épilepsie
L’Open Science au service des personnes atteintes d’épilepsieOpen Source Experience
 
Une infrastructure Cloud et une solution IDaaS 100% libres
Une infrastructure Cloud et une solution IDaaS 100% libresUne infrastructure Cloud et une solution IDaaS 100% libres
Une infrastructure Cloud et une solution IDaaS 100% libresOpen Source Experience
 
Impliquer des contributeurs externes dans son projet open source
Impliquer des contributeurs externes dans son projet open sourceImpliquer des contributeurs externes dans son projet open source
Impliquer des contributeurs externes dans son projet open sourceOpen Source Experience
 
Conseils de survie pour hiérarchiser les cybermenaces
Conseils de survie pour hiérarchiser les cybermenacesConseils de survie pour hiérarchiser les cybermenaces
Conseils de survie pour hiérarchiser les cybermenacesOpen Source Experience
 
AliceVision : pipeline de reconstruction 3D open source
AliceVision : pipeline de reconstruction 3D open sourceAliceVision : pipeline de reconstruction 3D open source
AliceVision : pipeline de reconstruction 3D open sourceOpen Source Experience
 
Analyse de la composition logicielle à l’aide d’outils open source
Analyse de la composition logicielle à l’aide d’outils open sourceAnalyse de la composition logicielle à l’aide d’outils open source
Analyse de la composition logicielle à l’aide d’outils open sourceOpen Source Experience
 
E-commerce en 2021 : grandes tendances technologiques dans le développement d...
E-commerce en 2021 : grandes tendances technologiques dans le développement d...E-commerce en 2021 : grandes tendances technologiques dans le développement d...
E-commerce en 2021 : grandes tendances technologiques dans le développement d...Open Source Experience
 
Démo : comment sécuriser des milliers de serveurs gratuitement
Démo : comment sécuriser des milliers de serveurs gratuitementDémo : comment sécuriser des milliers de serveurs gratuitement
Démo : comment sécuriser des milliers de serveurs gratuitementOpen Source Experience
 
GNU/Linux ou Android comme système d'exploitation embarqué ?
GNU/Linux ou Android comme système d'exploitation embarqué ?GNU/Linux ou Android comme système d'exploitation embarqué ?
GNU/Linux ou Android comme système d'exploitation embarqué ?Open Source Experience
 
Démystifier les architectures orientées événements avec Apache Kafka
Démystifier les architectures orientées événements avec Apache KafkaDémystifier les architectures orientées événements avec Apache Kafka
Démystifier les architectures orientées événements avec Apache KafkaOpen Source Experience
 
Partagez votre code et non vos secrets
Partagez votre code et non vos secretsPartagez votre code et non vos secrets
Partagez votre code et non vos secretsOpen Source Experience
 

More from Open Source Experience (20)

GAFAM or not GAFAM dans les collectivités
GAFAM or not GAFAM dans les collectivitésGAFAM or not GAFAM dans les collectivités
GAFAM or not GAFAM dans les collectivités
 
API != REST - procmail à la rescousse
API != REST - procmail à la rescousseAPI != REST - procmail à la rescousse
API != REST - procmail à la rescousse
 
Vous souhaitez passer votre projet en open source ?
Vous souhaitez passer votre projet en open source ?Vous souhaitez passer votre projet en open source ?
Vous souhaitez passer votre projet en open source ?
 
Évolutions de la gouvernance des projets libres
Évolutions de la gouvernance des projets libresÉvolutions de la gouvernance des projets libres
Évolutions de la gouvernance des projets libres
 
Data in Motion : un enjeu pour la modernisation des systèmes d'information
Data in Motion : un enjeu pour la modernisation des systèmes d'informationData in Motion : un enjeu pour la modernisation des systèmes d'information
Data in Motion : un enjeu pour la modernisation des systèmes d'information
 
Gérer vos clusters Kubernetes avec Flux 2 et la méthode GitOps
Gérer vos clusters Kubernetes avec Flux 2 et la méthode GitOpsGérer vos clusters Kubernetes avec Flux 2 et la méthode GitOps
Gérer vos clusters Kubernetes avec Flux 2 et la méthode GitOps
 
Quelle est la valeur de l’open source ? Étude de l’UE sur l’impact de l’open ...
Quelle est la valeur de l’open source ? Étude de l’UE sur l’impact de l’open ...Quelle est la valeur de l’open source ? Étude de l’UE sur l’impact de l’open ...
Quelle est la valeur de l’open source ? Étude de l’UE sur l’impact de l’open ...
 
La montée en puissance de l’infrastructure ouverte
La montée en puissance de l’infrastructure ouverteLa montée en puissance de l’infrastructure ouverte
La montée en puissance de l’infrastructure ouverte
 
Mon application web en 20 minutes
Mon application web en 20 minutesMon application web en 20 minutes
Mon application web en 20 minutes
 
L’Open Science au service des personnes atteintes d’épilepsie
L’Open Science au service des personnes atteintes d’épilepsieL’Open Science au service des personnes atteintes d’épilepsie
L’Open Science au service des personnes atteintes d’épilepsie
 
Une infrastructure Cloud et une solution IDaaS 100% libres
Une infrastructure Cloud et une solution IDaaS 100% libresUne infrastructure Cloud et une solution IDaaS 100% libres
Une infrastructure Cloud et une solution IDaaS 100% libres
 
Impliquer des contributeurs externes dans son projet open source
Impliquer des contributeurs externes dans son projet open sourceImpliquer des contributeurs externes dans son projet open source
Impliquer des contributeurs externes dans son projet open source
 
Conseils de survie pour hiérarchiser les cybermenaces
Conseils de survie pour hiérarchiser les cybermenacesConseils de survie pour hiérarchiser les cybermenaces
Conseils de survie pour hiérarchiser les cybermenaces
 
AliceVision : pipeline de reconstruction 3D open source
AliceVision : pipeline de reconstruction 3D open sourceAliceVision : pipeline de reconstruction 3D open source
AliceVision : pipeline de reconstruction 3D open source
 
Analyse de la composition logicielle à l’aide d’outils open source
Analyse de la composition logicielle à l’aide d’outils open sourceAnalyse de la composition logicielle à l’aide d’outils open source
Analyse de la composition logicielle à l’aide d’outils open source
 
E-commerce en 2021 : grandes tendances technologiques dans le développement d...
E-commerce en 2021 : grandes tendances technologiques dans le développement d...E-commerce en 2021 : grandes tendances technologiques dans le développement d...
E-commerce en 2021 : grandes tendances technologiques dans le développement d...
 
Démo : comment sécuriser des milliers de serveurs gratuitement
Démo : comment sécuriser des milliers de serveurs gratuitementDémo : comment sécuriser des milliers de serveurs gratuitement
Démo : comment sécuriser des milliers de serveurs gratuitement
 
GNU/Linux ou Android comme système d'exploitation embarqué ?
GNU/Linux ou Android comme système d'exploitation embarqué ?GNU/Linux ou Android comme système d'exploitation embarqué ?
GNU/Linux ou Android comme système d'exploitation embarqué ?
 
Démystifier les architectures orientées événements avec Apache Kafka
Démystifier les architectures orientées événements avec Apache KafkaDémystifier les architectures orientées événements avec Apache Kafka
Démystifier les architectures orientées événements avec Apache Kafka
 
Partagez votre code et non vos secrets
Partagez votre code et non vos secretsPartagez votre code et non vos secrets
Partagez votre code et non vos secrets
 

Ciel ! Mon Kubernetes mine des bitcoins...

  • 1. Ciel ! Mon Kubernetes mine des Bitcoins 1
  • 2. ~$ whoami Denis GERMAIN Senior SRE chez Blog tech (et +) : blog.zwindler.fr* @zwindler     denis-germain #geek #SF #courseAPied *Les slides de ce talk sont sur le blog 2
  • 3. Ciel ! Mon Kubernetes mine des Bitcoins 3
  • 4. Docker / Kubernetes : Outil de gestion d'applications isolées via utilisation de fonctionnalités du kernel Linux + magasin d'images immutables : Orchestrateur de containers, inspiré par un outil interne de Google, opensourcé et donné à la Linux Foundation en 2015. Abstrait l'infra avec du YAML 4
  • 5. What could possibly go wrong ? 5
  • 6. Un outil complexe ? Pas grave, il y a une GUI ! Tesla ... The hackers had infiltrated Tesla’s Kubernetes console which was not password protected / Source : redlock.io 6
  • 7. Autre exemple : Kubeflow Interface pour planifier des tâches de ML Machine Learning ⇒ utilisation de GPUs Gains bien plus importants zdnet - Microsoft découvre un gang de cryptomining détournant des clusters Kubernetes 7
  • 8. Pas d'interfaces ouvertes sur Internet !!! Les clouds providers les désactivent par défaut Pour la gestion courante : des UIs locales (Lens, k9s , ...) Pour la métrologie : Grafana + Prometheus, outils tiers 8
  • 11. Pas d'APIs sur Internet ! 2000 Docker engines are insecurely exposed to the Internet unit42 : Docker API + Graboid [...] but it was possible to connect from….the Internet 4armed : etcd + Digital Ocean our coworker’s server was also publicly exposing the kubelet ports Handy + kubelet 11
  • 12. Contrôle d'accès dans Kubernetes RBAC (Role-based access control) par défaut Appliquez le principe de moindre privilège       12
  • 13. Failles dans Kubernetes Août 2019 : la CNCF a commandé un audit du code de Kubernetes Quelques grosses CVE "récentes" 2018 / faille dans l'API server ZDnet : La première grosse faille de sécurité est là (API server) 2019 / faille dans RunC pour sortir du container Faille dans RunC (Docker, Kubernetes et Mesos concernés) 2020 / faille dans kubernetes controller manager When it’s not only about a Kubernetes CVE… 13
  • 15. Pas de container exécuté en tant que root ! Kubernetes utilise (pour l'instant) la même table des ID utilisateurs que l'hôte Linux Container lancé en tant que root == Binaire lancé en root sur l'hôte Kubecon EU 2018: The route to Rootless Containers @sylvielorxu 15
  • 16. JW Player Un service de supervision (Weave Scope) avait été créé avec des privilèges et accessible depuis le net How A Cryptominer Made Its Way in our k8s Clusters Our deployment was missing the annotation to make the load balancer internal The weave-scope container is running with the --privileged flag Files on the root file system were mounted onto the container Containers are run as the  root user. 16
  • 17. Pod Security Policy Imposer des règles pour sécuriser l'utilisation du cluster # Required to prevent escalations to root. allowPrivilegeEscalation: false runAsUser: # Require the container to run without root privileges. rule: 'MustRunAsNonRoot' DEPRECATED depuis Kubernetes 1.21... A remplacer par OPA (Open Policy Agent) ou Kyverno 17
  • 18. Mon cluster lance des GCC ??? Il existe des Intrusion Detection System / runtime scanning Utilise des programmes BPF dans le kernel pour détecter des comportements anormaux Cilium Uncovering a Sophisticated Kubernetes Attack in Real-Time 18
  • 19. Sécuriser vos images Docker Limitez le risque et l'impact d'une compromission : Le moins de dépendances possibles et des composants à jour ! Ne pas ajouter des binaires utiles aux attaquants oubliez ping , traceroute , gcc , ... Pas de shell ! 19
  • 21. Conclusion Ne déployez pas Kubernetes si vous n'en avez pas besoin ! Mais si vous en avez l'utilité, allez y ! Il y a beaucoup de choses à sécuriser dans Kube Formez vos développeurs, pas seulement les Ops ! Sécurisez dès le début Et après tout se passera bien 21
  • 25. There is a lot to Secure Source: Kubernetes Security / Duffie Cooley 25
  • 26. La mode des containers Il existe de nombreuses implémentations des containers est très utilisé depuis quelques années utilise des fonctionnalités du kernel Linux fourni une interface "simple" et un magasin d'images Outil qui permet d'empaqueter une application et ses dépendances. Elle pourra être exécuté sur n'importe quel serveur 26
  • 27. Kubernetes, un outil puissant et complexe pour abstraire l'infrastructure Décrire l'état souhaité de notre application hautement disponible 27
  • 28. RBAC dans la pratique Le principe des moindres privilèges est un vrai chantier à mettre en place dès le début du cycle de développement plus difficile à appliquer a posteriori (sauf à tout bloquer) Pour auditer le RBAC : kubectl auth can-i kubectl who-can et plein d'autres 28
  • 29. Utilisez une authentification tierce Pas de gestion des (vrais) utilisateurs. Les applications/démons ont des ServiceAccounts authentifiés par : Tokens JWT Certificats (difficilement révocables ) Ajouter une authentification tierce de type OIDC + RBAC 29
  • 30. sac de nouilles Network Policies chez Monzo Monzo Bank a mis en place des Network Policies pour la totalité de ses 1500 microservices : 30
  • 31. Ajouter des Network Policies Par défaut, Kubernetes autorise tout container à se connecter à n'importe quel autre #OpenBar                31
  • 32. Service Mesh ! Mettre en place des Network Policies peut être complexe... ... mais on peut faire encore plus complexe ! 32
  • 33. Service Mesh Déléguer beaucoup d'aspects réseau+sécu au Service Mesh : gestion TLS firewalling / ACL analyse temps réel des attaques audit/forensics, DDOS mitigation, ... 33
  • 34. Votre cluster respecte les bonnes pratiques ? kube-hunter (scan de vulnérabilité triviales) kube-bench (benchmark CSI de votre installation) Exemple d'attaque via Unauthenticated Kubelet 34
  • 35. Vérifiez vos applications kubeaudit (audit des app déployées) kube-scan (risk assessment du type CVSS) 35
  • 37. Les best practices Kubernetes.io : 11 ways not to get hacked CNCF : Kubernetes security best practices Rancher : More Kubernetes best practices Stackrox Jerry Jalava : Kubernetes Security Journey Workshop Sécuriser son Kubernetes au DevFest Nantes 2019 Duffie Cooley (VMware) : Kubernetes Security Kubecon EU 2018 - Zalando Continuously Deliver your K8s Infra 37
  • 38. Les outils pour durcir Kube (1/2) Scan de vulnérabilité triviales : kube-hunter Benchmark CSI de votre installation : kube-bench Audit des app déployées : kubeaudit "Risk assessment" du type CVSS : kube-scan OPA / OnePolicyAgent blog.zwindler.fr - Vos politiques de conformité sur Kubernetes avec OPA et Gatekeeper Kyverno 38
  • 39. Les outils pour durcir Kube (2/2) Analyse statique : Clair Analyse statique : Anchore Analyse statique : Trivy Analyse runtime : Falco SELinux, Seccomp, Falco, a technical discussion Access, Assert, Act. La sécurité à l'échelle avec Falco CNI + analyse runtime : Cilium 39
  • 40. Les failles de sécu récentes de K8s (&+) Faille dans RunC (Docker, Kubernetes et Mesos concernés) Liste des CVE Kubernetes ZDnet : La première grosse faille de sécurité est là (API server) L'exploit pour la faille dans l'API Server 40
  • 41. Les sociétés hackées dans la presse (1/2) 2018 : Cryptojacking chez Tesla 2019 : Cryptojacking chez jwplayer Plus d'infos sur le cryptominer XMrig ZDNET : des hackers utilisent les API de management de Docker exposées sur le net zdnet - Microsoft découvre un gang de cryptomining détournant des clusters Kubernetes 4armed : Server-Side Request Forgery + etcd accessible depuis Internet chez Digital Ocean 41
  • 42. Les sociétés hackées dans la presse (2/2) Un cluster perso d'un employé de Handy laisse son kubelet ouvert sur Internet Azure Container Instance (docker managé Azure) permettait l'accès cross account 42
  • 43. Kubernetes Security Audit Audit du code en aout 2019 : article principal Audit du code en aout 2019 : audit en lui même 43
  • 44. Autre (1/2) Outil d'audit des rôles Une liste d'outils permettant d'auditer le RBAC dans Kubernetes Une image XMRig (Monero) sur le Dockerhub Twitter : "There is a lot to Secure in Kubernetes" DNS Spoofing on Kubernetes Clusters Docker and Kubernetes Reverse shells Exploiter un Tomcat Manager non sécurisé Backdoor dans webmin 44
  • 45. Autre (2/2) Meetup Enix Jpetazzo - escalation via hostPath Volume blog.zwindler.fr - Should we have containers ? blog.zwindler.fr - Combien de problèmes ces stacks ont générés ? 45