SlideShare une entreprise Scribd logo
1  sur  49
Télécharger pour lire hors ligne
Drupagora 2018
Mon site est hacké ! 

Que faire ?
SOMMAIRE
1. Intro : comme un lundi
2. Prendre un cliché de la situation
3. Maintenir une présence en ligne
4. Communiquer pendant la crise
5. Redéployer, pas réparer
6. Enquêter
7. Revenir en production
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 2
1. Intro
Comme un lundi…
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 3
1.1 Petite vérification préalable
• Dans cette pièce …
• Qui a déjà été victime d’intrusion ?
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 4
1.1 Petite vérification préalable
• Dans cette pièce …
• Qui a déjà été victime d’intrusion ?
• Qui se sent prêt à faire face à un serveur hacké ?
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 5
1.1 Petite vérification préalable
• Dans cette pièce …
• Qui a déjà été victime d’intrusion ?
• Qui se sent prêt à faire face à un serveur hacké ?
• Qui a déjà un Plan de Reprise sur Incident en place ?
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 6
1.1 Petite vérification préalable
• Dans cette pièce …
• Qui a déjà été victime d’intrusion ?
• Qui se sent prêt à faire face à un serveur hacké ?
• Qui a déjà un Plan de Reprise sur Incident en place ?
• Qui a déjà un Plan de Reprise sur Incident conforme au RGPD
en place ?
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 7
1.1 Petite vérification préalable
• Dans cette pièce …
• Qui a déjà été victime d’intrusion ?
• Qui se sent prêt à faire face à un serveur hacké ?
• Qui a déjà un Plan de Reprise sur Incident en place ?
• Qui a déjà un Plan de Reprise sur Incident conforme au RGPD
en place ?
• Qui a lu https://drupal.org/node/2365547 ?
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 8
1.1 Petite vérification préalable
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 9
1.2 Comment dit on, déjà ?
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 10


I.A.N.A.L.
je ne suis ni avocat, ni juriste, ni conseil juridique, 

ceci ne constitue pas un conseil ou une offre de conseil
juridique, mais uniquement une opinion personnelle 

sur un processus technique



Donc première étape: votre juriste !

(sans attendre d’être hacké)
1.1 Petite vérification préalable
• Core contributor depuis 2005 (fgm)
• Provisional member de la 

Security Team Drupal
• En urgence sur les sites en
difficultés depuis 2008
• Audits perfs / qualité / sécurité
• Problèmes techniques
• Intrusions / pénétrations
• Surtout média, gouvernement (.fr),
et grande distribution
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 11
fgm@osinet.fr
1.4 Donc, comme un lundi…
• 10:00 Le daily standup vient de commencer
• 10:01 Dring ! le site n’a pas l’air normal ?
• 10:02 Le buzz commence sur Twitter/Reddit
• 10:05 Cacophonie d’appels, de toute la chaîne
hiérarchique comme des journalistes et blogueurs
en mal de scoop, évoquant le RGPD Art. 33/34
• Que faites-vous maintenant ?
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 12
1.5 Préparation
• Bloc 1 : journal d’enquête

• toutes les étapes du
processus
• toutes les observations /
découvertes
• horodatées, numérotées

• Bloc 2 : idées de corrections

• toutes les idées pour
corriger le problème
• toutes les idées de
durcissement à venir
• référençant les numéros du
bloc 1
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 13
2. Clichés
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 14
2.1 Le cliché d’enquête
• Première tentation : restaurer et reprendre
• Mais toujours vulnérable à la même pénétration
• Donc il faut diagnostiquer et remédier

• Analyser implique de modifier
• Donc préserver la « scène de crime »
• Clichés de /tout/
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 15
2.2 Clichés: « débranche… »
•Pas d’interférences:
•handlers d’arrêt,
SIGPWR
•code auto-destructeur à
la perte de connectivité
•Facile à simuler sur des
VMs, instances cloud

• Mais…
• Serveurs physiques
• Pertes de données
• Systèmes de fichiers
non journalisés
• Bases de données
• Interruption de service
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 16
2.3 Clichés: tout === ?
•Pas que la DB principale:
•Reverse Proxy
•Frontaux web (Apache)
•Serveurs DB autres
•Serveurs de fichiers

• Et aussi…
• Journaux tiers (SaaS)
• Transactions externes
• Journaux IDS / pare-
feu / WAF
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 17
** Le site peut n’être qu’un vecteur d’attaque **
3. Présence
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 18
3.1 Rester en ligne [1]
• Pour
• Ne pas alerter les intrus
• Continuer la génération
de valeur à court terme

• Contre
• Dommages accrus
• Responsabilité
• Légale (RGPD)
• Financières
• Morale
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 19
Comme si l’intrusion n’avait pas été détectée
3.2 Intermède: Workflows d’attaque
•Evolué
•Pénétrer
•Chercher quoi exploiter
•Implanter un zombie
•Attendre l’archivage des
versions zombie
•Activer
•Profiter

• Alt : Need for Speed
• Exploiter sans tarder
• Tant que ça dure
• Pertes les plus faibles

• Alt : masquer l’acte
• Contenu valorisé
• Données perso.
• Fermer la porte
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 20
(➡ enquête)(➡ restaurer)
3.3 Rester en ligne [2]
•Site statique limité
•Travail préalable
•Sous-ensemble minimal
•Cache de RP
•Charge très faible
•peut être servie sur les
serveurs de RP seuls

• Site réel limité
• Infra alternative
• Tech alternative
• Mises à jour ?
• Contenu créé durant le
repli
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 21
Mode de repli sécurisé
Plus facile avec préparation. Utile pour RGPD Art 41.2b
3.4 Rester en ligne [3]
• Réseaux sociaux
• Toujours là
• Valeur d’autorité pour l’audience

• Préparation nécessaire
• Accès au(x) compte(s)
• Les inclure dans le plan de
communication à long terme
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 22
Quand tout a échoué…
https://xenomorph01.deviantart.com/art/Deadpool-tis-but-a-scratch-479338640
4. Communiquer
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 23
4.1 Communiquer: au-delà de la tech
• Parties prenantes internes
• Le DPO si des données personnelles sont concernées
• Niveau CxO la plupart du temps
• Peur des représailles ?
• « Procédures baillons », « Gag orders », « SLAPP »
• Protection des lanceurs d’alerte
• France : Sapin 2 art. 6 vs Directive 2016/943 = LSA
• Italy : Dec. 385 01/09/93 sect 52bis (banques)
• US : Anti-SLAPP
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 24
4.2 : Communiquer : exécutif
• DPO / Juridique(en premier)
• Spécialistes en gestion de crise (coûts)
• Forces de l’ordre
• CNIL sous 72h (RGPD Art. 33, Rec. 85)
• ANSSI http://www.ssi.gouv.fr/
• Autres sites
• Sur le même serveur
• Sur le même réseau
• Partenaires en ligne: clients/fournisseurs.
• ➡ RGPD: tiers vs sous-traitants
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 25
4.3 Communiquer : données personnelles
• Fuites de données personnelles
• ont généralement lieu
• ou il n’est pas possible de
prouver le contraire
• Contraintes réglementaires
• Commerce : PCI/DSS (12
steps etc)
• Health : (US) HIPAA Subtitle
D E2.80.93
• Dégâts d’image. Exemple.
• RGPD: obligation ET
interdiction de diffusion
• Délai CNIL de 72h: données
sensibles ou risque élevé,
• Blocage pour les délais
d’enquête de police
• ➡ La police l’emporte (Rec. 86)
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 26
5. Refaire
Réparer, redéployer, reconstruire, refaire ?
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 27
5.1 Refaire: garder, restaurer, ou ?
• Restaurer et redémarrer ?
• Plus vulnérable qu’avant:
faille connue
• Garder et corriger ?
• temps et effort de la revue
de code
• jamais totalement fiable:
Drupal n’est qu’un maillon de
la chaîne

• Jeter ?
• Sites événementiels,
anciennes lignes de
produits, après-fusion/
acquisition…
• Pourquoi pas un simple site
statique ?
• Depuis les clichés RP:
contenu récent seulement
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 28
Mieux vaut reconstruire/redéployer
5.2 Refaire : restaurer
• Sauvegardes antérieures à l’intrusion
• Quand a-t-elle eu lieu ?
• Indice: « workflows évolué »
• GFS, incrémental continu, 15 min ?
• Qu’est-il acceptable de perdre ?
• Solutions libres:
• Amanda, Bacula, maison
• Urgence sans préparation ?
• Préproduction, images de CI…
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 29
(➡ workflow évolué)
5.3 Refaire : sources + export
• Facile et fiable, mais suppose:
• Développement dirigé par le code
• Système fiables d’export des données déjà en place
• Export accessible (fichiers plats, journaux)
• Dépôts de contenus et assets
• Mécanique opérationnelle (ex. D8 entity_staging)
• Ajouter les correctifs
• Le délai peut être un problème sur les sites à fort trafic
• Traitements par lot
• Chargement incrémental
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 30
5.4 Refaire : autres cas
• Reconstruction ad hoc « traditionnelle »
• Plus long, moins fiable
• Trop long pour en profiter pour améliorer le processus
• Ex nihilo
• Fiable, mais presque toujours trop long
• Complément utile après la réparation
• Pas MAINTENANT
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 31
6. Enquête
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 32
Changement de casquette
6.1 Enquête : d’abord, réfléchir!
• Comment avez-vous eu
connaissance de l’intrusion ?
• Pourquoi a-t-elle pu réussir ?
• Penser divergence, hors cadre
• Improbable <> impossible
• Priorités :
• Les attaques les plus simples
en premier
• OWASP 10
• Google :
• les motifs relevés sur le bloc 1
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 33


« Once you eliminate the
impossible, whatever remains,
no matter how improbable,
must be the truth. » 



Arthur Conan Doyle «The sign
of the four »

6.2 Enquête: garder en tête
• /tout/ peut avoir été effacé par l’intrus
• Mais la plupart du temps /tout/ ne l’est pas
• Chaque action d’enquête ajoute ses traces
• Travailler sur des copies des clichés
• Permet de recommencer sur des copies
fraîches autant de fois que nécessaire
• Il n’y a pas nécessairement eu une seule
intrusion réussie
• Exploits nettoyeurs de Drupalgeddon 1
• Workflow d’attaque « masquer l’acte »
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 34
(➡masquer)
6.3 Enquête : les classiques
• Code source :
• permissions trop étendues
• failles de parcours de système de fichiers
• Exécution distante de code téléversé
• Nginx sans durcissement complémentaire
• .htaccess ne sert à rien
• PHP dans la base de données
• Le module PHP
• Code eval-ué
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 35
6.4 Enquête : empreintes hors Drupal
• Système de fichiers:
• <user>/www-data hors de /sites
• cibler www-data/www-data
• Le bit x (0111) sur des fichiers sous docroot
• Horodatage
• horodatage(hors sites/*/files) = horodatage(install)
• horodatage(exploits) > horodatage(install)
• Comparer avec un build frais à partir des sources
• Vérifier aussi hors de la docroot / racine de projet
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 36
6.5 Enquête : modules Drupal
• Signature et comparaison de code:
• Hacked! limitations
• D7 : md5check, file_integrity
• Trouver le PHP en base de données
• OSInet QA (github)
• Divers
•security_review
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 37
6.6 Enquête : base de données
• Coups d’oeil rapides :
• users_field_data.email != users_field_data.init 

(D6/D7: users)
• Contrôler d’abord les rôles et comptes à privilèges étendus
• En intranet, vérifier les domaines de users_field_data.email
• Associer les comptes aux données du SSO
• Comparer un cliché DB avec la base courante
• D7 menu_router / D8 router.route :
• file_put_contents, assert
• D8: vendor/bin/drupal debug:router plutôt que DB
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 38
6.7 Enquête : sessions
• Les sessions doivent être en stockage persistant
• Souvenez-vous, vous avez débranché.
• Et si vos sessions étaient dans Memcached ou un Redis
mémoire seule ?
• Contrôles rapides:
• sessions.timestamp vs users_field_data : created /
changed / access / login
• en intranet : sessions.hostname
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 39
6.8 Enquête : journaux (logs)
• Vos logs sont bien hors site en
écriture seule ?
• SaaS: Loggly, Logmatic,
Logsene, Logz.io,
Papertrail, Scalyr…
• Interne: Remote ELK.
• RGPD vous savez où:
• Contraintes S.T. (Rec. 81)
• Registre des traitements
(art 24/30)
• Sur site ?
•dblog {watchdog}
• syslog → suivre la chaîne
de renvoi
• mongodb_watchdog,
redis_watchdog
• GELF/Graylog, Logstash
• Journaux d’applications,
services, APIs
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 40
6.9 Enquête : outils de police
• Logiciels
• OpenText (Guidance
Software) : Encase
• AccessData : Forensic
Toolkit (FTK)
• Consultants spécialisés
• ANSSI
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 41
7. En prod
Revenir en production
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 42
7.1 Retour vers la production
• Refaire une passe d du bloc 1 sur la nouvelle version
• 99 fois sur 100, réinitialiser les mots de passe.
• D8: mass_pwreset
• D7 sur MySQL/MariaDB:
•update users 

set pass = concat('ZZZ', sha(concat(pass, md5(rand()))));
• RGPD: rapport d’intrusion (art. 34)
• Préparer les rédactionnels pour le marketing et les réseaux
sociaux
• Préparer la suite
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 43
7.2 L8R: Préparer la suite
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 44
7.3 L8R : se préparer
• Formation Développeurs à la sécurité
• Security Team mailing list
• https://twitter.com/drupalsecurity
• https://www.drupal.org/security/
rss.xml
• http://crackingdrupal.com/ ?
• Aide d’état
• RGPD: les AC doivent fournir ces
formations (Art. 57, Rec. 122, 132)
• ANSSI MOOC
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 45
7.4 L8R: Le MOOC de l’ANSSI
• MOOC de l’ANSSI

https://www.secnumacademie.gouv.fr/
• 4 modules:
• Panorama de la SSI
• Sécurité de l’authentification
• Sécurité sur Internet
• Sécurité du poste de travail et nomadisme
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 46
7.4 L8R : processus de prévention
• Processus de sécurité
• Analyser chaque release
de sécurité pour
comprendre ce qu’elle
corrige et comment
• Rechercher des failles
similaires dans le code
spécifique
• Contribuer à Drupal core
pour acquérir de l’expertise
• Processus de qualité
• Revue de code croisée
systématique
• Maintenance et
développement dirigés par
le code
• Contrôle automatique de
qualité sur les chaînes CI
• Planning des mises à jour
de contribution
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 47
7.5 L8R: Amélioration continue
• On ne peut améliorer que ce qu’on mesure
• Relever les métriques du bloc 1
• Construire une architecture d’observabilité 

(operational visibility): logs, métriques, APM, alertes
• Construire un Plan de Reprise sur Incident à partir du bloc 2
• Planifier des simulations d’intrusion périodiques
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 48
RGPD: art 32.1.d: « une procédure visant à tester, à analyser et à
évaluer régulièrement l’efficacité des mesures techniques et
organisationnelles pour assurer la sécurité du traitement. »
MERCI
49
twitter : @drupagor a
Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 49

Contenu connexe

Similaire à Mon site web est hacké ! Que faire ?

Proposez le WIFI à vos clients, comment faire ? - Destination Brocéliande
Proposez le WIFI à vos clients, comment faire ? - Destination BrocéliandeProposez le WIFI à vos clients, comment faire ? - Destination Brocéliande
Proposez le WIFI à vos clients, comment faire ? - Destination BrocéliandeDestination Brocéliande
 
Quels outils pour construire sa stratégie digitale ?
Quels outils pour construire sa stratégie digitale ?Quels outils pour construire sa stratégie digitale ?
Quels outils pour construire sa stratégie digitale ?Ouest Online
 
Formation M2i - Le big bang du tracking digital
Formation M2i - Le big bang du tracking digitalFormation M2i - Le big bang du tracking digital
Formation M2i - Le big bang du tracking digitalM2i Formation
 
Zimbra Forum France 2016 - Vaderetro
Zimbra Forum France 2016 - VaderetroZimbra Forum France 2016 - Vaderetro
Zimbra Forum France 2016 - VaderetroZimbra
 
BIG DATA - Cloud Computing
BIG DATA - Cloud ComputingBIG DATA - Cloud Computing
BIG DATA - Cloud Computingsenejug
 
Webinar une journee dans la peau d'un directeur artistique
Webinar   une journee dans la peau d'un directeur artistiqueWebinar   une journee dans la peau d'un directeur artistique
Webinar une journee dans la peau d'un directeur artistiqueJulien Dereumaux
 
REX LEAN- Créer un SaaS et être rentable après 6 mois
REX LEAN- Créer un SaaS et être rentable après 6 moisREX LEAN- Créer un SaaS et être rentable après 6 mois
REX LEAN- Créer un SaaS et être rentable après 6 moisFrançois-Guillaume Ribreau
 
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveurXebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveurPublicis Sapient Engineering
 
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?Publicis Sapient Engineering
 
POSS19 - Publier du code Open Source dans une banque : Mission impossible ?
POSS19 - Publier du code Open Source dans une banque : Mission impossible ?POSS19 - Publier du code Open Source dans une banque : Mission impossible ?
POSS19 - Publier du code Open Source dans une banque : Mission impossible ?Fabien Baligand
 
#OSSPARIS19 : Publier du code Open Source dans une banque : Mission impossibl...
#OSSPARIS19 : Publier du code Open Source dans une banque : Mission impossibl...#OSSPARIS19 : Publier du code Open Source dans une banque : Mission impossibl...
#OSSPARIS19 : Publier du code Open Source dans une banque : Mission impossibl...Paris Open Source Summit
 
[Webinar] Cybersécurité : risques et ressources pour les startups @DGE
[Webinar] Cybersécurité : risques et ressources pour les startups @DGE [Webinar] Cybersécurité : risques et ressources pour les startups @DGE
[Webinar] Cybersécurité : risques et ressources pour les startups @DGE FrenchTechCentral
 
Performance des tiers : combien coûte cet emplacement pub ?
Performance des tiers : combien coûte cet emplacement pub ?Performance des tiers : combien coûte cet emplacement pub ?
Performance des tiers : combien coûte cet emplacement pub ?Jean-Pierre Vincent
 
Introduction à Drupal. Pourquoi Drupal est, en toute objectivité, le meilleur...
Introduction à Drupal. Pourquoi Drupal est, en toute objectivité, le meilleur...Introduction à Drupal. Pourquoi Drupal est, en toute objectivité, le meilleur...
Introduction à Drupal. Pourquoi Drupal est, en toute objectivité, le meilleur...drupagora
 
Mercredis de La french tech Morbihan : réseaux sociaux et entreprise
Mercredis de La french tech Morbihan : réseaux sociaux et entreprise Mercredis de La french tech Morbihan : réseaux sociaux et entreprise
Mercredis de La french tech Morbihan : réseaux sociaux et entreprise La French Tech Morbihan
 
QUELLE SÉCURITÉ POUR UNE VILLE DU FUTUR ?
QUELLE SÉCURITÉ POUR UNE VILLE DU FUTUR ?QUELLE SÉCURITÉ POUR UNE VILLE DU FUTUR ?
QUELLE SÉCURITÉ POUR UNE VILLE DU FUTUR ?TelecomValley
 
Les bonnes pratiques RGPD complient pour sa prospection digitale
Les bonnes pratiques RGPD complient pour sa prospection digitale Les bonnes pratiques RGPD complient pour sa prospection digitale
Les bonnes pratiques RGPD complient pour sa prospection digitale Julien Dereumaux
 

Similaire à Mon site web est hacké ! Que faire ? (20)

Le prix de la pub
Le prix de la pubLe prix de la pub
Le prix de la pub
 
Proposez le WIFI à vos clients, comment faire ? - Destination Brocéliande
Proposez le WIFI à vos clients, comment faire ? - Destination BrocéliandeProposez le WIFI à vos clients, comment faire ? - Destination Brocéliande
Proposez le WIFI à vos clients, comment faire ? - Destination Brocéliande
 
Quels outils pour construire sa stratégie digitale ?
Quels outils pour construire sa stratégie digitale ?Quels outils pour construire sa stratégie digitale ?
Quels outils pour construire sa stratégie digitale ?
 
Formation M2i - Le big bang du tracking digital
Formation M2i - Le big bang du tracking digitalFormation M2i - Le big bang du tracking digital
Formation M2i - Le big bang du tracking digital
 
Zimbra Forum France 2016 - Vaderetro
Zimbra Forum France 2016 - VaderetroZimbra Forum France 2016 - Vaderetro
Zimbra Forum France 2016 - Vaderetro
 
BIG DATA - Cloud Computing
BIG DATA - Cloud ComputingBIG DATA - Cloud Computing
BIG DATA - Cloud Computing
 
Webinar une journee dans la peau d'un directeur artistique
Webinar   une journee dans la peau d'un directeur artistiqueWebinar   une journee dans la peau d'un directeur artistique
Webinar une journee dans la peau d'un directeur artistique
 
REX LEAN- Créer un SaaS et être rentable après 6 mois
REX LEAN- Créer un SaaS et être rentable après 6 moisREX LEAN- Créer un SaaS et être rentable après 6 mois
REX LEAN- Créer un SaaS et être rentable après 6 mois
 
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveurXebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
 
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
 
POSS19 - Publier du code Open Source dans une banque : Mission impossible ?
POSS19 - Publier du code Open Source dans une banque : Mission impossible ?POSS19 - Publier du code Open Source dans une banque : Mission impossible ?
POSS19 - Publier du code Open Source dans une banque : Mission impossible ?
 
#OSSPARIS19 : Publier du code Open Source dans une banque : Mission impossibl...
#OSSPARIS19 : Publier du code Open Source dans une banque : Mission impossibl...#OSSPARIS19 : Publier du code Open Source dans une banque : Mission impossibl...
#OSSPARIS19 : Publier du code Open Source dans une banque : Mission impossibl...
 
[Webinar] Cybersécurité : risques et ressources pour les startups @DGE
[Webinar] Cybersécurité : risques et ressources pour les startups @DGE [Webinar] Cybersécurité : risques et ressources pour les startups @DGE
[Webinar] Cybersécurité : risques et ressources pour les startups @DGE
 
Performance des tiers : combien coûte cet emplacement pub ?
Performance des tiers : combien coûte cet emplacement pub ?Performance des tiers : combien coûte cet emplacement pub ?
Performance des tiers : combien coûte cet emplacement pub ?
 
Introduction à Drupal. Pourquoi Drupal est, en toute objectivité, le meilleur...
Introduction à Drupal. Pourquoi Drupal est, en toute objectivité, le meilleur...Introduction à Drupal. Pourquoi Drupal est, en toute objectivité, le meilleur...
Introduction à Drupal. Pourquoi Drupal est, en toute objectivité, le meilleur...
 
Organiser sa veille documentaire
Organiser sa veille documentaireOrganiser sa veille documentaire
Organiser sa veille documentaire
 
Mercredis de La french tech Morbihan : réseaux sociaux et entreprise
Mercredis de La french tech Morbihan : réseaux sociaux et entreprise Mercredis de La french tech Morbihan : réseaux sociaux et entreprise
Mercredis de La french tech Morbihan : réseaux sociaux et entreprise
 
Gérer sa vie privée numérique
Gérer sa vie privée numérique Gérer sa vie privée numérique
Gérer sa vie privée numérique
 
QUELLE SÉCURITÉ POUR UNE VILLE DU FUTUR ?
QUELLE SÉCURITÉ POUR UNE VILLE DU FUTUR ?QUELLE SÉCURITÉ POUR UNE VILLE DU FUTUR ?
QUELLE SÉCURITÉ POUR UNE VILLE DU FUTUR ?
 
Les bonnes pratiques RGPD complient pour sa prospection digitale
Les bonnes pratiques RGPD complient pour sa prospection digitale Les bonnes pratiques RGPD complient pour sa prospection digitale
Les bonnes pratiques RGPD complient pour sa prospection digitale
 

Plus de OSInet

Interface texte plein écran en Go avec TView
Interface texte plein écran en Go avec TViewInterface texte plein écran en Go avec TView
Interface texte plein écran en Go avec TViewOSInet
 
Scaling up and accelerating Drupal 8 with NoSQL
Scaling up and accelerating Drupal 8 with NoSQLScaling up and accelerating Drupal 8 with NoSQL
Scaling up and accelerating Drupal 8 with NoSQLOSInet
 
Faster Drupal sites using Queue API
Faster Drupal sites using Queue APIFaster Drupal sites using Queue API
Faster Drupal sites using Queue APIOSInet
 
Life after the hack
Life after the hackLife after the hack
Life after the hackOSInet
 
Delayed operations with queues for website performance
Delayed operations with queues for website performanceDelayed operations with queues for website performance
Delayed operations with queues for website performanceOSInet
 
Drupal 8 : regards croisés
Drupal 8 : regards croisésDrupal 8 : regards croisés
Drupal 8 : regards croisésOSInet
 
Cache speedup with Heisencache for Drupal 7 and Drupal 8
Cache speedup with Heisencache for Drupal 7 and Drupal 8Cache speedup with Heisencache for Drupal 7 and Drupal 8
Cache speedup with Heisencache for Drupal 7 and Drupal 8OSInet
 
Recueil des mauvaises pratiques constatées lors de l'audit de sites Drupal 7
Recueil des mauvaises pratiques constatées lors de l'audit de sites Drupal 7Recueil des mauvaises pratiques constatées lors de l'audit de sites Drupal 7
Recueil des mauvaises pratiques constatées lors de l'audit de sites Drupal 7OSInet
 
Le groupe PHP-FIG et les standards PSR
Le groupe  PHP-FIG et les standards PSRLe groupe  PHP-FIG et les standards PSR
Le groupe PHP-FIG et les standards PSROSInet
 
Les blocs Drupal de drop.org à Drupal 8
Les blocs Drupal de drop.org à Drupal 8Les blocs Drupal de drop.org à Drupal 8
Les blocs Drupal de drop.org à Drupal 8OSInet
 
Utiliser drupal
Utiliser drupalUtiliser drupal
Utiliser drupalOSInet
 
Equipe drupal
Equipe drupalEquipe drupal
Equipe drupalOSInet
 
Pourquoi choisir un CMS Open Source ?
Pourquoi choisir un CMS Open Source ?Pourquoi choisir un CMS Open Source ?
Pourquoi choisir un CMS Open Source ?OSInet
 
Drupal et le NoSQL - drupagora 2011
Drupal et le NoSQL - drupagora 2011Drupal et le NoSQL - drupagora 2011
Drupal et le NoSQL - drupagora 2011OSInet
 
Drupal Views development
Drupal Views developmentDrupal Views development
Drupal Views developmentOSInet
 

Plus de OSInet (15)

Interface texte plein écran en Go avec TView
Interface texte plein écran en Go avec TViewInterface texte plein écran en Go avec TView
Interface texte plein écran en Go avec TView
 
Scaling up and accelerating Drupal 8 with NoSQL
Scaling up and accelerating Drupal 8 with NoSQLScaling up and accelerating Drupal 8 with NoSQL
Scaling up and accelerating Drupal 8 with NoSQL
 
Faster Drupal sites using Queue API
Faster Drupal sites using Queue APIFaster Drupal sites using Queue API
Faster Drupal sites using Queue API
 
Life after the hack
Life after the hackLife after the hack
Life after the hack
 
Delayed operations with queues for website performance
Delayed operations with queues for website performanceDelayed operations with queues for website performance
Delayed operations with queues for website performance
 
Drupal 8 : regards croisés
Drupal 8 : regards croisésDrupal 8 : regards croisés
Drupal 8 : regards croisés
 
Cache speedup with Heisencache for Drupal 7 and Drupal 8
Cache speedup with Heisencache for Drupal 7 and Drupal 8Cache speedup with Heisencache for Drupal 7 and Drupal 8
Cache speedup with Heisencache for Drupal 7 and Drupal 8
 
Recueil des mauvaises pratiques constatées lors de l'audit de sites Drupal 7
Recueil des mauvaises pratiques constatées lors de l'audit de sites Drupal 7Recueil des mauvaises pratiques constatées lors de l'audit de sites Drupal 7
Recueil des mauvaises pratiques constatées lors de l'audit de sites Drupal 7
 
Le groupe PHP-FIG et les standards PSR
Le groupe  PHP-FIG et les standards PSRLe groupe  PHP-FIG et les standards PSR
Le groupe PHP-FIG et les standards PSR
 
Les blocs Drupal de drop.org à Drupal 8
Les blocs Drupal de drop.org à Drupal 8Les blocs Drupal de drop.org à Drupal 8
Les blocs Drupal de drop.org à Drupal 8
 
Utiliser drupal
Utiliser drupalUtiliser drupal
Utiliser drupal
 
Equipe drupal
Equipe drupalEquipe drupal
Equipe drupal
 
Pourquoi choisir un CMS Open Source ?
Pourquoi choisir un CMS Open Source ?Pourquoi choisir un CMS Open Source ?
Pourquoi choisir un CMS Open Source ?
 
Drupal et le NoSQL - drupagora 2011
Drupal et le NoSQL - drupagora 2011Drupal et le NoSQL - drupagora 2011
Drupal et le NoSQL - drupagora 2011
 
Drupal Views development
Drupal Views developmentDrupal Views development
Drupal Views development
 

Mon site web est hacké ! Que faire ?

  • 1. Drupagora 2018 Mon site est hacké ! 
 Que faire ?
  • 2. SOMMAIRE 1. Intro : comme un lundi 2. Prendre un cliché de la situation 3. Maintenir une présence en ligne 4. Communiquer pendant la crise 5. Redéployer, pas réparer 6. Enquêter 7. Revenir en production Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 2
  • 3. 1. Intro Comme un lundi… Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 3
  • 4. 1.1 Petite vérification préalable • Dans cette pièce … • Qui a déjà été victime d’intrusion ? Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 4
  • 5. 1.1 Petite vérification préalable • Dans cette pièce … • Qui a déjà été victime d’intrusion ? • Qui se sent prêt à faire face à un serveur hacké ? Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 5
  • 6. 1.1 Petite vérification préalable • Dans cette pièce … • Qui a déjà été victime d’intrusion ? • Qui se sent prêt à faire face à un serveur hacké ? • Qui a déjà un Plan de Reprise sur Incident en place ? Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 6
  • 7. 1.1 Petite vérification préalable • Dans cette pièce … • Qui a déjà été victime d’intrusion ? • Qui se sent prêt à faire face à un serveur hacké ? • Qui a déjà un Plan de Reprise sur Incident en place ? • Qui a déjà un Plan de Reprise sur Incident conforme au RGPD en place ? Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 7
  • 8. 1.1 Petite vérification préalable • Dans cette pièce … • Qui a déjà été victime d’intrusion ? • Qui se sent prêt à faire face à un serveur hacké ? • Qui a déjà un Plan de Reprise sur Incident en place ? • Qui a déjà un Plan de Reprise sur Incident conforme au RGPD en place ? • Qui a lu https://drupal.org/node/2365547 ? Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 8
  • 9. 1.1 Petite vérification préalable Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 9
  • 10. 1.2 Comment dit on, déjà ? Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 10 
 I.A.N.A.L.
je ne suis ni avocat, ni juriste, ni conseil juridique, 
 ceci ne constitue pas un conseil ou une offre de conseil juridique, mais uniquement une opinion personnelle 
 sur un processus technique
 
 Donc première étape: votre juriste !
 (sans attendre d’être hacké)
  • 11. 1.1 Petite vérification préalable • Core contributor depuis 2005 (fgm) • Provisional member de la 
 Security Team Drupal • En urgence sur les sites en difficultés depuis 2008 • Audits perfs / qualité / sécurité • Problèmes techniques • Intrusions / pénétrations • Surtout média, gouvernement (.fr), et grande distribution Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 11 fgm@osinet.fr
  • 12. 1.4 Donc, comme un lundi… • 10:00 Le daily standup vient de commencer • 10:01 Dring ! le site n’a pas l’air normal ? • 10:02 Le buzz commence sur Twitter/Reddit • 10:05 Cacophonie d’appels, de toute la chaîne hiérarchique comme des journalistes et blogueurs en mal de scoop, évoquant le RGPD Art. 33/34 • Que faites-vous maintenant ? Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 12
  • 13. 1.5 Préparation • Bloc 1 : journal d’enquête
 • toutes les étapes du processus • toutes les observations / découvertes • horodatées, numérotées
 • Bloc 2 : idées de corrections
 • toutes les idées pour corriger le problème • toutes les idées de durcissement à venir • référençant les numéros du bloc 1 Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 13
  • 14. 2. Clichés Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 14
  • 15. 2.1 Le cliché d’enquête • Première tentation : restaurer et reprendre • Mais toujours vulnérable à la même pénétration • Donc il faut diagnostiquer et remédier
 • Analyser implique de modifier • Donc préserver la « scène de crime » • Clichés de /tout/ Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 15
  • 16. 2.2 Clichés: « débranche… » •Pas d’interférences: •handlers d’arrêt, SIGPWR •code auto-destructeur à la perte de connectivité •Facile à simuler sur des VMs, instances cloud
 • Mais… • Serveurs physiques • Pertes de données • Systèmes de fichiers non journalisés • Bases de données • Interruption de service Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 16
  • 17. 2.3 Clichés: tout === ? •Pas que la DB principale: •Reverse Proxy •Frontaux web (Apache) •Serveurs DB autres •Serveurs de fichiers
 • Et aussi… • Journaux tiers (SaaS) • Transactions externes • Journaux IDS / pare- feu / WAF Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 17 ** Le site peut n’être qu’un vecteur d’attaque **
  • 18. 3. Présence Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 18
  • 19. 3.1 Rester en ligne [1] • Pour • Ne pas alerter les intrus • Continuer la génération de valeur à court terme
 • Contre • Dommages accrus • Responsabilité • Légale (RGPD) • Financières • Morale Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 19 Comme si l’intrusion n’avait pas été détectée
  • 20. 3.2 Intermède: Workflows d’attaque •Evolué •Pénétrer •Chercher quoi exploiter •Implanter un zombie •Attendre l’archivage des versions zombie •Activer •Profiter
 • Alt : Need for Speed • Exploiter sans tarder • Tant que ça dure • Pertes les plus faibles
 • Alt : masquer l’acte • Contenu valorisé • Données perso. • Fermer la porte Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 20 (➡ enquête)(➡ restaurer)
  • 21. 3.3 Rester en ligne [2] •Site statique limité •Travail préalable •Sous-ensemble minimal •Cache de RP •Charge très faible •peut être servie sur les serveurs de RP seuls
 • Site réel limité • Infra alternative • Tech alternative • Mises à jour ? • Contenu créé durant le repli Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 21 Mode de repli sécurisé Plus facile avec préparation. Utile pour RGPD Art 41.2b
  • 22. 3.4 Rester en ligne [3] • Réseaux sociaux • Toujours là • Valeur d’autorité pour l’audience
 • Préparation nécessaire • Accès au(x) compte(s) • Les inclure dans le plan de communication à long terme Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 22 Quand tout a échoué… https://xenomorph01.deviantart.com/art/Deadpool-tis-but-a-scratch-479338640
  • 23. 4. Communiquer Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 23
  • 24. 4.1 Communiquer: au-delà de la tech • Parties prenantes internes • Le DPO si des données personnelles sont concernées • Niveau CxO la plupart du temps • Peur des représailles ? • « Procédures baillons », « Gag orders », « SLAPP » • Protection des lanceurs d’alerte • France : Sapin 2 art. 6 vs Directive 2016/943 = LSA • Italy : Dec. 385 01/09/93 sect 52bis (banques) • US : Anti-SLAPP Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 24
  • 25. 4.2 : Communiquer : exécutif • DPO / Juridique(en premier) • Spécialistes en gestion de crise (coûts) • Forces de l’ordre • CNIL sous 72h (RGPD Art. 33, Rec. 85) • ANSSI http://www.ssi.gouv.fr/ • Autres sites • Sur le même serveur • Sur le même réseau • Partenaires en ligne: clients/fournisseurs. • ➡ RGPD: tiers vs sous-traitants Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 25
  • 26. 4.3 Communiquer : données personnelles • Fuites de données personnelles • ont généralement lieu • ou il n’est pas possible de prouver le contraire • Contraintes réglementaires • Commerce : PCI/DSS (12 steps etc) • Health : (US) HIPAA Subtitle D E2.80.93 • Dégâts d’image. Exemple. • RGPD: obligation ET interdiction de diffusion • Délai CNIL de 72h: données sensibles ou risque élevé, • Blocage pour les délais d’enquête de police • ➡ La police l’emporte (Rec. 86) Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 26
  • 27. 5. Refaire Réparer, redéployer, reconstruire, refaire ? Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 27
  • 28. 5.1 Refaire: garder, restaurer, ou ? • Restaurer et redémarrer ? • Plus vulnérable qu’avant: faille connue • Garder et corriger ? • temps et effort de la revue de code • jamais totalement fiable: Drupal n’est qu’un maillon de la chaîne
 • Jeter ? • Sites événementiels, anciennes lignes de produits, après-fusion/ acquisition… • Pourquoi pas un simple site statique ? • Depuis les clichés RP: contenu récent seulement Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 28 Mieux vaut reconstruire/redéployer
  • 29. 5.2 Refaire : restaurer • Sauvegardes antérieures à l’intrusion • Quand a-t-elle eu lieu ? • Indice: « workflows évolué » • GFS, incrémental continu, 15 min ? • Qu’est-il acceptable de perdre ? • Solutions libres: • Amanda, Bacula, maison • Urgence sans préparation ? • Préproduction, images de CI… Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 29 (➡ workflow évolué)
  • 30. 5.3 Refaire : sources + export • Facile et fiable, mais suppose: • Développement dirigé par le code • Système fiables d’export des données déjà en place • Export accessible (fichiers plats, journaux) • Dépôts de contenus et assets • Mécanique opérationnelle (ex. D8 entity_staging) • Ajouter les correctifs • Le délai peut être un problème sur les sites à fort trafic • Traitements par lot • Chargement incrémental Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 30
  • 31. 5.4 Refaire : autres cas • Reconstruction ad hoc « traditionnelle » • Plus long, moins fiable • Trop long pour en profiter pour améliorer le processus • Ex nihilo • Fiable, mais presque toujours trop long • Complément utile après la réparation • Pas MAINTENANT Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 31
  • 32. 6. Enquête Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 32 Changement de casquette
  • 33. 6.1 Enquête : d’abord, réfléchir! • Comment avez-vous eu connaissance de l’intrusion ? • Pourquoi a-t-elle pu réussir ? • Penser divergence, hors cadre • Improbable <> impossible • Priorités : • Les attaques les plus simples en premier • OWASP 10 • Google : • les motifs relevés sur le bloc 1 Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 33 
 « Once you eliminate the impossible, whatever remains, no matter how improbable, must be the truth. » 
 
 Arthur Conan Doyle «The sign of the four »

  • 34. 6.2 Enquête: garder en tête • /tout/ peut avoir été effacé par l’intrus • Mais la plupart du temps /tout/ ne l’est pas • Chaque action d’enquête ajoute ses traces • Travailler sur des copies des clichés • Permet de recommencer sur des copies fraîches autant de fois que nécessaire • Il n’y a pas nécessairement eu une seule intrusion réussie • Exploits nettoyeurs de Drupalgeddon 1 • Workflow d’attaque « masquer l’acte » Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 34 (➡masquer)
  • 35. 6.3 Enquête : les classiques • Code source : • permissions trop étendues • failles de parcours de système de fichiers • Exécution distante de code téléversé • Nginx sans durcissement complémentaire • .htaccess ne sert à rien • PHP dans la base de données • Le module PHP • Code eval-ué Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 35
  • 36. 6.4 Enquête : empreintes hors Drupal • Système de fichiers: • <user>/www-data hors de /sites • cibler www-data/www-data • Le bit x (0111) sur des fichiers sous docroot • Horodatage • horodatage(hors sites/*/files) = horodatage(install) • horodatage(exploits) > horodatage(install) • Comparer avec un build frais à partir des sources • Vérifier aussi hors de la docroot / racine de projet Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 36
  • 37. 6.5 Enquête : modules Drupal • Signature et comparaison de code: • Hacked! limitations • D7 : md5check, file_integrity • Trouver le PHP en base de données • OSInet QA (github) • Divers •security_review Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 37
  • 38. 6.6 Enquête : base de données • Coups d’oeil rapides : • users_field_data.email != users_field_data.init 
 (D6/D7: users) • Contrôler d’abord les rôles et comptes à privilèges étendus • En intranet, vérifier les domaines de users_field_data.email • Associer les comptes aux données du SSO • Comparer un cliché DB avec la base courante • D7 menu_router / D8 router.route : • file_put_contents, assert • D8: vendor/bin/drupal debug:router plutôt que DB Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 38
  • 39. 6.7 Enquête : sessions • Les sessions doivent être en stockage persistant • Souvenez-vous, vous avez débranché. • Et si vos sessions étaient dans Memcached ou un Redis mémoire seule ? • Contrôles rapides: • sessions.timestamp vs users_field_data : created / changed / access / login • en intranet : sessions.hostname Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 39
  • 40. 6.8 Enquête : journaux (logs) • Vos logs sont bien hors site en écriture seule ? • SaaS: Loggly, Logmatic, Logsene, Logz.io, Papertrail, Scalyr… • Interne: Remote ELK. • RGPD vous savez où: • Contraintes S.T. (Rec. 81) • Registre des traitements (art 24/30) • Sur site ? •dblog {watchdog} • syslog → suivre la chaîne de renvoi • mongodb_watchdog, redis_watchdog • GELF/Graylog, Logstash • Journaux d’applications, services, APIs Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 40
  • 41. 6.9 Enquête : outils de police • Logiciels • OpenText (Guidance Software) : Encase • AccessData : Forensic Toolkit (FTK) • Consultants spécialisés • ANSSI Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 41
  • 42. 7. En prod Revenir en production Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 42
  • 43. 7.1 Retour vers la production • Refaire une passe d du bloc 1 sur la nouvelle version • 99 fois sur 100, réinitialiser les mots de passe. • D8: mass_pwreset • D7 sur MySQL/MariaDB: •update users 
 set pass = concat('ZZZ', sha(concat(pass, md5(rand())))); • RGPD: rapport d’intrusion (art. 34) • Préparer les rédactionnels pour le marketing et les réseaux sociaux • Préparer la suite Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 43
  • 44. 7.2 L8R: Préparer la suite Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 44
  • 45. 7.3 L8R : se préparer • Formation Développeurs à la sécurité • Security Team mailing list • https://twitter.com/drupalsecurity • https://www.drupal.org/security/ rss.xml • http://crackingdrupal.com/ ? • Aide d’état • RGPD: les AC doivent fournir ces formations (Art. 57, Rec. 122, 132) • ANSSI MOOC Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 45
  • 46. 7.4 L8R: Le MOOC de l’ANSSI • MOOC de l’ANSSI
 https://www.secnumacademie.gouv.fr/ • 4 modules: • Panorama de la SSI • Sécurité de l’authentification • Sécurité sur Internet • Sécurité du poste de travail et nomadisme Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 46
  • 47. 7.4 L8R : processus de prévention • Processus de sécurité • Analyser chaque release de sécurité pour comprendre ce qu’elle corrige et comment • Rechercher des failles similaires dans le code spécifique • Contribuer à Drupal core pour acquérir de l’expertise • Processus de qualité • Revue de code croisée systématique • Maintenance et développement dirigés par le code • Contrôle automatique de qualité sur les chaînes CI • Planning des mises à jour de contribution Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 47
  • 48. 7.5 L8R: Amélioration continue • On ne peut améliorer que ce qu’on mesure • Relever les métriques du bloc 1 • Construire une architecture d’observabilité 
 (operational visibility): logs, métriques, APM, alertes • Construire un Plan de Reprise sur Incident à partir du bloc 2 • Planifier des simulations d’intrusion périodiques Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 48 RGPD: art 32.1.d: « une procédure visant à tester, à analyser et à évaluer régulièrement l’efficacité des mesures techniques et organisationnelles pour assurer la sécurité du traitement. »
  • 49. MERCI 49 twitter : @drupagor a Drupagora 2018 - ©2018 OSInet - Licensed under Creative Commons CC-BY-SA 4.0 Twitter: @osinet | #drupagora 49