Cas pratique sur la sécurisation d'un cluster Kubernetes

Magazine
Marque
MISC
Numéro
112
Mois de parution
novembre 2020
Domaines


Résumé

Cet article présente trois exemples de problèmes de sécurité rencontrés sur des clusters Kubernetes, causés par un manque de maîtrise des applications déployées sur un cluster par ses administrateurs ou par les développeurs des applications s’y exécutant. Nous donnons ensuite des pistes afin de mieux maîtriser et sécuriser ces applications.


1. Présentation de la machinerie Kubernetes

Kubernetes est un orchestrateur de conteneurs, qui exécute des applications – typiquement distribuées sous forme d'images Docker – sur un ensemble de machines appelées cluster. Nous présenterons d'abord les objets contenant les données qui définissent entièrement la configuration du cluster, accessibles via des API. Ces objets sont créés et consommés par la machinerie (extensible) de Kubernetes, que nous présenterons ensuite. Pour terminer cette présentation de Kubernetes, nous présenterons différents modes d'installation et leurs impacts sur la sécurité.

1.1 API Server et Custom Resource Definitions

La pierre angulaire de Kubernetes est son API server, qui offre l'accès aux objets décrivant la configuration du cluster. Ces données sont stockées dans une base de données distribuée clef-valeur etcd [1].

Les principaux types d'objets qui seront utilisés dans cet article sont :

  • Les Pods, qui...
Cet article est réservé aux abonnés. Il vous reste 96% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite
Références

[1] Stockage clef-valeur distribué etcd : https://etcd.io/

[2] Documentation Kubernetes : https://kubernetes.io/docs

[3] Opérateur Prometheus : https://github.com/prometheus-operator/prometheus-operator

[4] Collecte de métriques Prometheus : https://prometheus.io/

[5] Documentation RBAC : https://kubernetes.io/docs/reference/access-authn-authz/rbac/

[6] Cluster de développement et test minikube : https://minikube.sigs.k8s.io/docs/

[7] Définition de politiques de sécurité avec Open Policy Agent : https://www.openpolicyagent.org/

[8] Intégration continue / déploiement continu avec Jenkins : https://www.jenkins.io/

[9] Intégration continue / déploiement continu avec ArgoCD : https://argoproj.github.io/argo-cd/

[10] Webshell GoTTY : https://github.com/yudai/gotty

[11] Dépôt d'images Docker open source Harbor : https://goharbor.io/

[12] Tracing distribué Jaeger : https://www.jaegertracing.io/

[13] Service mesh Istio : https://istio.io/

[14] Console d’administration Kubernetes : https://github.com/kubernetes/dashboard

[15] Overlay network Flannel : https://github.com/coreos/flannel

[16] Exemples de NetworkPolicies : https://github.com/ahmetb/kubernetes-network-policy-recipes

[17] Analyse statique d'images Docker avec Clair : https://github.com/quay/clair

[18] Client en ligne de commandes pour Clair, Klar : https://github.com/optiopay/klar/

[19] Revue de configuration d'un Pod avec kubesec : https://github.com/controlplaneio/kubesec

[20] Analyse de configuration d'un cluster avec kube-bench : https://github.com/aquasecurity/kube-bench

[21] Écosystème « cloud-native » : https://landscape.cncf.io/

[22] Environnement Kubernetes vulnérable kubernetes-goat : https://github.com/madhuakula/kubernetes-goat



Articles qui pourraient vous intéresser...

Introduction au dossier : Puces sécurisées - À la découverte de la sécurité matérielle

Magazine
Marque
MISC
Numéro
114
Mois de parution
mars 2021
Domaines
Résumé

Le grand public est familiarisé, ne serait-ce qu’inconsciemment, au concept de puce de sécurité de par l’usage quotidien et depuis de nombreuses années des cartes à puce dans le domaine bancaire ou des cartes SIM dans la téléphonie mobile. Des puces dédiées à la sécurité ont également fait leur apparition dans certains de nos équipements du quotidien (ordinateur portable, smartphone), qu’il s’agisse de microcontrôleur dédié disposant de fonctionnalités liées à la cryptographie (stockage de clef de chiffrement) tel un TPM, ou d’un mode d’exécution sécurisé intégré au processeur principal, à l’instar de SGX pour Intel, de TrustZone chez ARM et de PSP pour AMD.

Monter son lab virtuel avec Kali Linux et VulnHub sous VirtualBox

Magazine
Marque
Linux Pratique
HS n°
Numéro
50
Mois de parution
février 2021
Domaines
Résumé

Dans cet article, nous allons mettre en place un virtual lab, un environnement de travail virtuel. Cet environnement vous permettra de créer, exécuter et détruire à volonté des VM vulnérables. Tout ceci sera fait dans un réseau virtuel, que nous allons créer, afin que ces machines vulnérables ne soient pas exposées sur Internet ni même sur votre réseau LAN, et éviter qu’un pirate puisse les retourner contre vous. Votre machine d’attaque sera également une machine virtuelle, sous Kali Linux, afin de ne pas utiliser votre machine de tous les jours pour vous connecter aux machines vulnérables, pour les mêmes raisons de sécurité. Kali Linux sera dans le réseau virtuel protégé pour pouvoir communiquer avec les VM vulnérables, et aura une carte réseau supplémentaire pour pouvoir accéder à Internet, être mise à jour, etc.

Qu’est-ce que le chiffrement ?

Magazine
Marque
Linux Pratique
HS n°
Numéro
50
Mois de parution
février 2021
Domaines
Résumé

Les protocoles de chiffrement de données, tels que SSL et son successeur TLS, sont au cœur des problématiques de la sécurisation des échanges sur les réseaux informatiques (dont Internet est le plus vaste représentant). Pour un développeur, comme pour un administrateur système, il est donc essentiel de bien comprendre à quoi ils servent, ce qu’ils font, et aussi quand s’en servir. Dans cet article, nous nous proposons de revenir sur toutes ces notions afin de s’assurer de leur bonne compréhension.

Sûreté mémoire : le temps des cerises

Magazine
Marque
MISC
Numéro
113
Mois de parution
janvier 2021
Domaines
Résumé

L’étude et la compréhension des buffer overflow datent de 1972, et leurs premiers usages documentés de 1988 [1]. Près de 50 ans plus tard, où en sommes-nous ? Il nous faut bien admettre que la situation est déprimante : Microsoft et Google reconnaissent chacun ([2], [3]) que près de 2/3 des attaques utilisent à un moment ou un autre une vulnérabilité mémoire. Le ver Morris, qui n’était au départ qu’une preuve de concept, avait quand même coûté la bagatelle de quelques millions de dollars à l’époque… Aujourd’hui, les coûts sont abyssaux : sur le plan financier bien sûr, mais aussi pour nos vies privées, voire nos vies tout court. Face à ce problème, de nombreuses approches sont possibles : analyse statique du code, instrumentation et vérification à l’exécution, langages « sûrs »… Je vous propose d’explorer dans cet article un vieux concept remis au goût du jour, les capabilities, et tout ce qu’elles pourraient nous permettre de faire.