applications en conteneur Sécurité réseau pour

48
CONFIDENTIAL Designator Sécurité réseau pour applications en conteneur Martin Ouimet Solution Architect, Cloud Specialist 1

Transcript of applications en conteneur Sécurité réseau pour

Page 1: applications en conteneur Sécurité réseau pour

CONFIDENTIAL Designator

Sécurité réseau pour applications en conteneur

Martin OuimetSolution Architect, Cloud Specialist

1

Page 2: applications en conteneur Sécurité réseau pour

Sécurité réseau pour applications en conteneur

2

Agenda- Kubernetes et SDN- Questions relatives à la sécurité des réseaux en entreprise

- Restriction du trafic entre les différents “Tiers”- Micro-segmentation- Sécuriser le trafic sortant- Sécuriser le trafic entrant

- Securité des applications avec Service Mesh

Page 3: applications en conteneur Sécurité réseau pour

Sécurité réseau pour applications en conteneur

Kubernetes est clairement le gagnant de l’orchestration des conteneurs à travers le monde.

3

Page 4: applications en conteneur Sécurité réseau pour

Que manque-t-il pour rendre Kubernetes prêt pour les entreprises ?

Sécurité réseau pour applications en conteneur

4

Kubernetes

Page 5: applications en conteneur Sécurité réseau pour

Un système d’exploitation sécuritaire, conçu pour

les entreprises et optimisé pour les conteneurs

5

Kubernetes

Red Hat Enterprise Linux CoreOS

Page 6: applications en conteneur Sécurité réseau pour

Interface moderne et flexible de gestion du réseau

6

Kubernetes

Red Hat Enterprise Linux CoreOS

Container Network Interface (CNI)

Software Defined Network (SDN)

Page 7: applications en conteneur Sécurité réseau pour

Interface moderne et flexible de gestion du stockage

7

Kubernetes

Red Hat Enterprise Linux CoreOS

Container Network Interface (CNI) Container Storage Interface (CSI)

Software Defined Network (SDN) Software Defined Storage (SDS)

Page 8: applications en conteneur Sécurité réseau pour

Outils de gestion du cluster et du cycle de vie des composantes logiciels.

8

Kubernetes

Red Hat Enterprise Linux CoreOS

Container Network Interface (CNI) Container Storage Interface (CSI)

Software Defined Network (SDN) Software Defined Storage (SDS)

Console développeurs et opérateurs et automatisation

Page 9: applications en conteneur Sécurité réseau pour

Registre de conteneurs sécurisé, journaux, métriques, outils de facturation (chargeback)

9

Kubernetes

Red Hat Enterprise Linux CoreOS

Container Network Interface (CNI) Container Storage Interface (CSI)

Software Defined Network (SDN) Software Defined Storage (SDS)

Console développeurs et opérateurs et automatisation

Services clusterRégistre d’image Métriques

Journaux Facturation

Page 10: applications en conteneur Sécurité réseau pour

Standardiser la couche logicielle “Middleware”, avoir un catalogue de service et des outils de gestion pour micro-services

10

Kubernetes

Red Hat Enterprise Linux CoreOS

Container Network Interface (CNI) Container Storage Interface (CSI)

Software Defined Network (SDN) Software Defined Storage (SDS)

Services applications

Console développeurs et opérateurs et automatisation

Services clusterRégistre d’image Métriques

Journaux Facturation

Serverless Catalogue de services

Service-MeshApplications

intégrés Middleware

Page 11: applications en conteneur Sécurité réseau pour

Développeurs ont besoin de IDE, gestionnaire de compilation, CI/CD, utilitaires de debuggage et plus encore !

11

Kubernetes

Red Hat Enterprise Linux CoreOS

Container Network Interface (CNI) Container Storage Interface (CSI)

Software Defined Network (SDN) Software Defined Storage (SDS)

Services applications

Console développeurs et opérateurs et automatisation

Services cluster Services développeursRégistre d’image Métriques

Journaux Facturation

Serverless Catalogue de services

Service-MeshApplications

intégrés Middleware

IDE Outils de compilation

CI/CD Outils de debuggage

Page 12: applications en conteneur Sécurité réseau pour

12

Kubernetes

Red Hat Enterprise Linux CoreOS

Container Network Interface (CNI) Container Storage Interface (CSI)

Software Defined Network (SDN) Software Defined Storage (SDS)

Services applications

Console développeurs et opérateurs et automatisation

Services cluster Services développeursRégistre d’image Métriques

Journaux Facturation

Serverless Catalogue de services

Service-MeshApplications

intégrés Middleware

IDE Outils de compilation

CI/CD Outils de debuggage

Plateforme d’orchestration de conteneurs pour entreprises

Page 13: applications en conteneur Sécurité réseau pour

Plateforme d’orchestration de conteneurs pour entreprises

13

Kubernetes

Red Hat Enterprise Linux CoreOS

Container Network Interface (CNI) Container Storage Interface (CSI)

Software Defined Network (SDN) Software Defined Storage (SDS)

Services applications

Console développeurs et opérateurs et automatisation

Services cluster Services développeursRégistre d’image Métriques

Journaux Facturation

Serverless Catalogue de services

Service-MeshApplications

intégrés Middleware

IDE Outils de compilation

CI/CD Outils de debuggage

Page 14: applications en conteneur Sécurité réseau pour

Qu’est-ce que

Software Defined Network ?

Et pourquoi est-ce

important ?14

Page 15: applications en conteneur Sécurité réseau pour

15

OpenShift SDN

(OVS)

Openshift

Kubernetes Container Network Interface (CNI)

Flannel NuageTigera

Calico & CNX

JuniperContrail

CiscoContiv &

Contiv-ACIBig Switch

Supporté Solution vérifiée

VMwareNSX-T

En cours de développement

kuryr-kubernetes

OpenShift SDN

(OVN)

OpenDaylight(CNI & Kuryr)

RH-OSPNeutronPlugin

Connecteurs réseau pour Openshift

Page 16: applications en conteneur Sécurité réseau pour

Isoler les zones

16

Page 17: applications en conteneur Sécurité réseau pour

Sécurité réseau pour applications en conteneur

17

Restreindre le trafic entre les “tiers”

Base de données

Application

Présentation

X

Page 18: applications en conteneur Sécurité réseau pour

Sécurité réseau pour applications en conteneur

18

Les coupe-feux externes sont requis entre les zones

Base de données

Application

DMZLe trafic provenant de Internet est permis vers la zone délimitarizée.

Ouverture coupe-feu pour permettre les flows suivants:

Zone DMZ vers la zone applicative

Zone applicative vers la zone de base de données.

Comment accomplir un montage similaire avec Kubernetes ?

Page 19: applications en conteneur Sécurité réseau pour

Base de données

Application

DMZ

Sécurité réseau pour applications en conteneur

Les coupe-feux externes sont requis entre les zones

Montage aligné avec les standards de sécurité établis

Le coupe-feu ne prévient pas nécessairement l’accès aux outils de gestion du Cluster et demande des configurations additionnelles.

Coûts d’opérations et de maintenance d’une telle infrastructure sont élevés.

Cluster

Cluster

Cluster

Page 20: applications en conteneur Sécurité réseau pour

Base de données

Application

DMZ

Sécurité réseau pour applications en conteneur

Les coupe-feux externes sont requis entre les zones

Un seul cluster à gérer

Utilisation des Network Policy Object pour effectuer la micro-segmentation

Les Infra Nodes exécutent les fonctions de Ingress et Egress spécifiques à chaque zone.

Cluster

Micro-segmentation

Micro-segmentation

InfraNode

InfraNode

InfraNode

POD POD

POD POD

POD

Page 21: applications en conteneur Sécurité réseau pour

Sécurité réseau pour applications en conteneur

Network Policy Objects

21

Gestion de la micro-segmentation

Appliquées sur trafic entrant des services et des PODs

Configurer des politiques individuelles au niveau des PODs

Permet le trafic d’un autre projet vers un POD spécifique

Restreint le trafic entre les PODs à l’intérieur du projet

Page 22: applications en conteneur Sécurité réseau pour

Et la micro-segmentation… est-ce mieux que la sécurité traditionnelle telle qu’on la connaît depuis des années ?

22

Page 23: applications en conteneur Sécurité réseau pour

Sécurité réseau pour applications en conteneur

23

PROJECT A

POD

POD

POD

POD

PROJECT B

POD

POD

POD

POD

Examples de Policy Objects● Permettre tout le trafic à l’intérieur du projet● Permettre le trafic de Vert vers Gris● Permettre le trafic vers Violet sur le port 8080

8080 ✓

apiVersion: extensions/v1beta1kind: NetworkPolicymetadata: name: allow-to-purple-on-8080spec: podSelector: matchLabels: color: purple ingress: - ports: - protocol: tcp port: 8080

Network Policy Objects

3306

✓ ✓

Page 24: applications en conteneur Sécurité réseau pour

Sécurité réseau pour applications en conteneur

24

Exemple: Application web typique avec séparation du frontal et api

Page 25: applications en conteneur Sécurité réseau pour

Sécurité réseau pour applications en conteneur

25

Exemple: Un fichier malicieux est exécuté sur le serveur PHP

Page 26: applications en conteneur Sécurité réseau pour

Sécurité réseau pour applications en conteneur

26

Les Network Policy Objects a la rescousse !

kind: NetworkPolicyapiVersion: extensions/v1beta1metadata: name: allow-3306spec: podSelector: matchLabels: app: mysql ingress: - from: - podSelector: matchLabels: app: emailsvc ports: - protocol: TCP port: 3306

Permettre la connexion à MySQL uniquement depuis le service email.

Page 27: applications en conteneur Sécurité réseau pour

Sécurité réseau pour applications en conteneur

27

Commencez avec un “Deny” par défaut

Page 28: applications en conteneur Sécurité réseau pour

Sécurité réseau pour applications en conteneur

28

Utilisez les Network Policy pour permettre les flows spécifiques

Page 29: applications en conteneur Sécurité réseau pour

Sécuriser le trafic en sortie

Egress

29

Page 30: applications en conteneur Sécurité réseau pour

Contrôler le trafic sortant avec le Egress Router

30

NODEIP1

EGRESSROUTER

PODIP1

EGRESS SERVICEINTERNAL-IP:8080

EXTERNAL SERVICE

Whitelist: IP1

POD

POD

POD

Contrôler la DESTINATION IP

Page 31: applications en conteneur Sécurité réseau pour

Controller le trafic sortant (Egress)

31

Contrôler la SOURCE IP

Comment reconnaître le trafic de sortie du cluster Openshift ?

Node 1

Node 2

Projet A

Projet A

Projet B

Projet B

Eth010.56.56.101

Eth010.56.56.102

podspodspods

podspodspods

podspodspods

podspodspods

?

Page 32: applications en conteneur Sécurité réseau pour

Controller le trafic sortant (Egress)

32

Contrôler la SOURCE IP

Comment reconnaître le trafic de sortie du cluster Openshift ?

Node 1

Node 2

Projet A

Projet A

Projet B

Projet B

Static IP projet A10.56.56.8/29

podspodspods

podspodspods

podspodspods

podspodspods

Static IP projet A10.56.56.8/29

Static IP projet B10.56.56.16/29

Static IP projet B10.56.56.16/29

Source IP Dest IP Port

10.56.56.8/29 * 443 Allow

Action

10.56.56.16/29 * 443 Deny

Page 33: applications en conteneur Sécurité réseau pour

Sécuriser le trafic en entré

Ingress

33

Page 34: applications en conteneur Sécurité réseau pour

Sécurité réseau pour applications en conteneur

Configurer ce qui doit être exposé

34

La sécurité commence par exposer uniquement ce qui doit être accessible depuis l’extérieur du cluster.

Service

Un service est un balanceur de charge qui crée un point

d’entrée vers un ou plusieurs PODs. Le service peut

être exposé à l’externe du cluster ou non.

Route

Une route est un point d’entré publique HTTP ou

HTTPS vers un service.

Page 35: applications en conteneur Sécurité réseau pour

35

OPENSHIFT & KUBERNETES CONCEPTS

Le Service est un balanceur de charge interne qui découvre automatiquement les pods

POD

SERVICE“backend”

CONTAINER

10.110.1.11

role:backend

POD

CONTAINER

10.120.2.22

role:backend

POD

CONTAINER

10.130.3.33

role:backend

POD

CONTAINER

10.140.4.44

role:frontend

role:backend

Page 36: applications en conteneur Sécurité réseau pour

36

OPENSHIFT & KUBERNETES CONCEPTS

Les applications peuvent communiquer entre eux via les services

POD

SERVICE“backend”

CONTAINER

10.110.1.11

role:backend

POD

CONTAINER

10.120.2.22

role:backend

POD

CONTAINER

10.130.3.33

role:backend

POD

CONTAINER

10.140.4.44

role:frontend

role:backend

Page 37: applications en conteneur Sécurité réseau pour

OpenShift Concepts

37

Les routes rendent les services accessibles au clients à l’extérieur de l'environnement en utilisant

des URLs

> curl http://app-prod.mycompany.com

POD

SERVICE“frontend”

CONTAINERrole:frontend

POD

CONTAINERrole:frontend

POD

CONTAINERrole:frontend

role:frontend

ROUTE

app-prod.mycompany.com

Page 38: applications en conteneur Sécurité réseau pour

L’administrateur du cluster définit une plage d’adresses IP qui peuvent être assignées à des noeuds ou des services.

Opensihft assigne l’adresse IP privée et publique au service.

Le noeud sur lequel l’adresse IP est assignée agit de point d’entré pour le service.

L’adresse IP externe peut être une VIP. En configurant ip-failover, la VIP peut être réassignée à d’autre noeuds.

Contrôler le trafic en entrée ( Ingress )

38

Un service peut être exposé directement sur un port TCP.

Node 1

POD

Node 2

POD

Node 3

POD

ServiceIP interne du Service: 172.1.0.30IP externe: 202.122.15.1

Page 39: applications en conteneur Sécurité réseau pour

Sécuriser les routes avec un “whitelist”

39

- L’accès à la route est restreinte aux adresses IP définies par le whitelist- Configuration simple via annotations- La connexion à la route par d’autres adresses IP sont bloqués

metadata:

annotations:

haproxy.router.openshift.io/ip_whitelist: 192.168.1.10 192.168.1.11

Page 40: applications en conteneur Sécurité réseau pour

Encryption SSL sur les routes HTTP

40

HTTPSRouteOpenshift

ApplicationTerminaison SSL au niveau de la route(Certificat sur la route uniquement)

HTTPSRouteOpenshift

ApplicationSSL Passthrough(Certificat géré par l’application)

HTTPSRouteOpenshift

ApplicationRéencryption(Certificat sur la route + dans l’application)

Page 41: applications en conteneur Sécurité réseau pour

Sécuriser au niveau de l’application

Service Mesh

41

Page 42: applications en conteneur Sécurité réseau pour

Red Hat Openshift

Qu’est ce que Istio ?

42

Service Mesh

Control Plane Pilot

Data Plane

Mixer Auth

Pod

App

Envoy

Pod

App

Envoy

Pod

App

Envoy

Pod

App

Envoy

Page 43: applications en conteneur Sécurité réseau pour

Sécuriser les applications avec Service Mesh

43

Authentification mutuelle TLS

POD

SERVICEA

ENVOY

POD

SERVICEB

ENVOY

POD

SERVICEC

ENVOYmTLS mTLS

Page 44: applications en conteneur Sécurité réseau pour

Sécuriser les applications avec Service Mesh

44

Rate limit

POD

SERVICEA

ENVOY

POD

SERVICEB

ENVOY

POD

SERVICEC

ENVOYMax 100

connections par seconde

Max 20 connections par

seconde

Page 45: applications en conteneur Sécurité réseau pour

Sécuriser les applications avec Service Mesh

45

Contrôler le flow

POD

SERVICEA

ENVOY

POD

SERVICEB

ENVOY

POD

SERVICEC

ENVOYPermit Permit

X

Page 46: applications en conteneur Sécurité réseau pour

DémoNetwork Policy Object

46

Page 47: applications en conteneur Sécurité réseau pour

DémoNetwork Policy Object

47

Page 48: applications en conteneur Sécurité réseau pour

linkedin.com/company/red-hat

youtube.com/user/RedHatVideos

facebook.com/redhatinc

twitter.com/RedHat

Red Hat is the world’s leading provider of enterprise

open source software solutions. Award-winning

support, training, and consulting services make

Red Hat a trusted adviser to the Fortune 500.

Merci

48