SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
Sécuriser un site Drupal
Meetup Drupal Lyon - 03/07/2014
@AurelienNavarre / @DrupalFacile
En un mot...
N'importe quel site semble sécurisé
jusqu'au moment où il sera effectivement
compromis.
Votre mission est de retarder ce moment et
de protéger vos clients du mieux que vous
le pouvez.
Cela arrive même aux meilleurs.
Quelques exemples depuis début 2014...
• Mot de passe
• Numéro de téléphone
• Adresse e-mail
• 4.6 de comptes piratés
• Identifiant utilisateur
• Numéro de téléphone
• 200M de comptes piratés
• Identifiant utilisateur
• Etat civil
• Adresse
• Téléphone
• Mot de passe
• Numéro de téléphone
• Adresse e-mail
• Identifiant utilisateur
• Mot de passe
• Adresse e-mail
• DDoS massives et successives
• Interruption complète de service
• Demande de rançon !
Quelques types d’attaques...
• CSRF: vol de cookie, détournement HTTP
• XSS: injection de code dans une page
• SQL Injection: requête SQL dans un champ
de formulaire non protégé
• Access bypass: infos privées accessibles
• (Distr.) Denial of Service: faire tomber un
site par une attaque coordonnée et ciblée
il y en a bien plus !
Comment arrive une attaque ?
• SA-CORE / SA-CONTRIB non suivis
• Permissions du site trop ouvertes
• Mauvaises pratiques (PHP Filter, hacks...)
• Attaque ciblée (Brute Force, XSS…)
• Identifiants compromis (admin/azerty)
• Serveur(s) vulnérable(s)
• Sauvegardes non-encryptées et volées ou
partagées avec des infos confidentielles
Les plus de Drupal 7
• Meilleur stockage des mots de passe en
base de données (SHA512)
• Prévention des attaques XSS et SQL
• Prévention du “flooding”
• Accès restreint à cron.php (clé unique)
• Prévention (D)DoS sur les miniatures
d’images (tokens) depuis 7.20
API Drupal
• check_url: nettoie les tags d’une URL
• check_plain*: échap. texte brut vers HTML
• check_markup: texte riche vers HTML
• filter_xss*: filtre le HTML
• Fonctions preprocess* (theming)
• Utilisez Form API et Database API (PDO)
* supprimé et/ou modifié dans Drupal 8
Quelques modules
• Security Review: audit de sécurité
• Security Kit: hardening avancé
• Password Policy: force l’utilisation de mots
de passe complexes (pas suffisant !)
• Permissions Lock: permissions renforcées
• Username Enumeration Prevention: évite
les attaques par dictionnaire
• Secure Pages: force une connexion SSL
C’est quoi un bon mot de passe ?
http://xkcd.com/936
Tester un mot de passe
Fichiers et dossiers
• Fichiers (644)
• /default (755)
• /default/files (744 ou 755)
• /default/themes (755)
• /default/modules (755)
• /default/settings.php (444)
www-data:sitename
Dans un monde idéal
• HTTPS, SSH et SFTP en standard
• Git pour le contrôle de version
• Encryptez les données utilisateurs :
modules AES, dbee, Encryption...
• 2FA: de plus en plus utilisé et populaire
• Stratégie fail-over: HA, active/hot-spare
• Protections DDoS, CDN, multi-region
• Penetration testing et Load testing
Et Drupal 8 là-dedans ?
• Module PHP enfin supprimé du coeur !
• Twig : moteur de template sécurisé par
défaut via sa fonction d’autoescaping
• CKEditor intégré dans le coeur
• Local image filter pour limiter l’utilisation
du tag <img> au nom de domaine courant
• Protection CSRF par défaut via le
composant Routing de Symfony
Si vous savez...
• Rester informé (RSS, Twitter…)
• Installer et configurer des modules
• Suivre les bonnes pratiques Drupal
• Limiter le code PHP dans votre thème
• Utiliser l’API Drupal et des modules contrib
• Suivre le principe KISS
Alors vous avez fait 98% du travail !
Et les 2% restants alors ?
• Expertise Drupal
• Expertise PHP
• Expertise système et réseau
• Expertise en sécurité
• ...
...beaucoup d’expertise pour 2%
Comment gérer un piratage ?
• Communiquez rapidement via les réseaux
sociaux...et soyez transparent !
• Forcez la réinitialisation des mots de passe
• Analysez vos logs système / Drupal
• Réparer la faille est le strict minimum. Allez
plus loin et devenez un exemple à suivre !
• Module Paranoia...si vous le devenez.
...apprenez de vos erreurs !
Quelques ressources
• https://www.drupal.org/writing-secure-code
• https://drupal.org/security-team
• https://drupal.org/security/secure-
configuration
• https://github.com/greggles/vulnerable
• http://crackingdrupal.com
• http://www.ubuntu.com/usn/
Merci. Questions ?

Más contenido relacionado

La actualidad más candente

Initiation à Express js
Initiation à Express jsInitiation à Express js
Initiation à Express jsAbdoulaye Dieng
 
08 04 mise en place d'un serveur mandataire (proxy)
08 04 mise en place d'un serveur mandataire (proxy)08 04 mise en place d'un serveur mandataire (proxy)
08 04 mise en place d'un serveur mandataire (proxy)Noël
 
Automatisez votre gestion de MongoDB avec MMS
Automatisez votre gestion de MongoDB avec MMSAutomatisez votre gestion de MongoDB avec MMS
Automatisez votre gestion de MongoDB avec MMSMongoDB
 
Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)Alexandre Marie
 
201211 drupagora hostingdrupal
201211 drupagora hostingdrupal201211 drupagora hostingdrupal
201211 drupagora hostingdrupalOxalide
 
08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur web08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur webNoël
 
Support Formation vidéo: MongoDB pour débutant
Support Formation vidéo: MongoDB pour débutantSupport Formation vidéo: MongoDB pour débutant
Support Formation vidéo: MongoDB pour débutantSmartnSkilled
 
08 02 mise en place de serveurs virtuels apache 2
08 02 mise en place de serveurs virtuels apache 208 02 mise en place de serveurs virtuels apache 2
08 02 mise en place de serveurs virtuels apache 2Noël
 
Sécuriser & chiffrer Mariadb - JDLL 2017
Sécuriser & chiffrer Mariadb - JDLL 2017Sécuriser & chiffrer Mariadb - JDLL 2017
Sécuriser & chiffrer Mariadb - JDLL 2017Christophe Villeneuve
 
Réu technodejs
Réu technodejsRéu technodejs
Réu technodejsnaholyr
 
Optimiser WordPress
Optimiser WordPressOptimiser WordPress
Optimiser WordPressChi Nacim
 
Scalabilité de MongoDB
Scalabilité de MongoDBScalabilité de MongoDB
Scalabilité de MongoDBMongoDB
 
Usages autour d’Ansible chez ikoula
Usages autour d’Ansible chez ikoulaUsages autour d’Ansible chez ikoula
Usages autour d’Ansible chez ikoulaNicolas Trauwaen
 

La actualidad más candente (19)

Initiation à Express js
Initiation à Express jsInitiation à Express js
Initiation à Express js
 
Chiffrer et sécuriser MariaDB
Chiffrer et sécuriser MariaDBChiffrer et sécuriser MariaDB
Chiffrer et sécuriser MariaDB
 
08 04 mise en place d'un serveur mandataire (proxy)
08 04 mise en place d'un serveur mandataire (proxy)08 04 mise en place d'un serveur mandataire (proxy)
08 04 mise en place d'un serveur mandataire (proxy)
 
Automatisez votre gestion de MongoDB avec MMS
Automatisez votre gestion de MongoDB avec MMSAutomatisez votre gestion de MongoDB avec MMS
Automatisez votre gestion de MongoDB avec MMS
 
Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)
 
201211 drupagora hostingdrupal
201211 drupagora hostingdrupal201211 drupagora hostingdrupal
201211 drupagora hostingdrupal
 
Squid squid guard
Squid squid guardSquid squid guard
Squid squid guard
 
08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur web08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur web
 
WordPress Jurassique
WordPress JurassiqueWordPress Jurassique
WordPress Jurassique
 
Support Formation vidéo: MongoDB pour débutant
Support Formation vidéo: MongoDB pour débutantSupport Formation vidéo: MongoDB pour débutant
Support Formation vidéo: MongoDB pour débutant
 
08 02 mise en place de serveurs virtuels apache 2
08 02 mise en place de serveurs virtuels apache 208 02 mise en place de serveurs virtuels apache 2
08 02 mise en place de serveurs virtuels apache 2
 
Sécuriser & chiffrer Mariadb - JDLL 2017
Sécuriser & chiffrer Mariadb - JDLL 2017Sécuriser & chiffrer Mariadb - JDLL 2017
Sécuriser & chiffrer Mariadb - JDLL 2017
 
Réu technodejs
Réu technodejsRéu technodejs
Réu technodejs
 
Optimiser wordpress
Optimiser wordpressOptimiser wordpress
Optimiser wordpress
 
Optimiser WordPress
Optimiser WordPressOptimiser WordPress
Optimiser WordPress
 
Haute Disponibilité et Disaster Recovery
Haute Disponibilité et Disaster RecoveryHaute Disponibilité et Disaster Recovery
Haute Disponibilité et Disaster Recovery
 
Serveur Web (1)
Serveur Web (1)Serveur Web (1)
Serveur Web (1)
 
Scalabilité de MongoDB
Scalabilité de MongoDBScalabilité de MongoDB
Scalabilité de MongoDB
 
Usages autour d’Ansible chez ikoula
Usages autour d’Ansible chez ikoulaUsages autour d’Ansible chez ikoula
Usages autour d’Ansible chez ikoula
 

Similar a Meetup Drupal Lyon - Sécuriser un site drupal

Webinar bonnes pratiques securite
Webinar   bonnes pratiques securiteWebinar   bonnes pratiques securite
Webinar bonnes pratiques securitejumeletArnaud
 
Securitedesapplications 091011120426-phpapp02
Securitedesapplications 091011120426-phpapp02Securitedesapplications 091011120426-phpapp02
Securitedesapplications 091011120426-phpapp02Asma Messaoudi
 
Toutes les raisons d'adopter MongoDB
Toutes les raisons d'adopter MongoDBToutes les raisons d'adopter MongoDB
Toutes les raisons d'adopter MongoDBContent Square
 
Sécurité: Ne soyez pas à risque
Sécurité: Ne soyez pas à risqueSécurité: Ne soyez pas à risque
Sécurité: Ne soyez pas à risqueMaxime Jobin
 
Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022Laurent Guérin
 
Alphorm.com Formation OpenSSL : Cryptage des données
Alphorm.com Formation OpenSSL : Cryptage des donnéesAlphorm.com Formation OpenSSL : Cryptage des données
Alphorm.com Formation OpenSSL : Cryptage des donnéesAlphorm
 
Hacking Open source et Sécurité, préconisations
Hacking Open source et Sécurité, préconisationsHacking Open source et Sécurité, préconisations
Hacking Open source et Sécurité, préconisationsCertilience
 
Comprendre, utiliser et créer une API
Comprendre, utiliser et créer une APIComprendre, utiliser et créer une API
Comprendre, utiliser et créer une APIOlivia Reaney
 
Xebicon architectures microservices azure v1.0
Xebicon   architectures microservices azure v1.0Xebicon   architectures microservices azure v1.0
Xebicon architectures microservices azure v1.0Michel HUBERT
 
Wbm11 formation-webmaster-expert-responsive-web-design-rwd-microdata-schema-o...
Wbm11 formation-webmaster-expert-responsive-web-design-rwd-microdata-schema-o...Wbm11 formation-webmaster-expert-responsive-web-design-rwd-microdata-schema-o...
Wbm11 formation-webmaster-expert-responsive-web-design-rwd-microdata-schema-o...CERTyou Formation
 
Récupération d’un Active Directory: comment repartir en confiance après une c...
Récupération d’un Active Directory: comment repartir en confiance après une c...Récupération d’un Active Directory: comment repartir en confiance après une c...
Récupération d’un Active Directory: comment repartir en confiance après une c...Identity Days
 
Réussir son projet Drupal
Réussir son projet DrupalRéussir son projet Drupal
Réussir son projet DrupalAdyax
 
Alphorm.com Formation Hacking et Sécurité 2020 (4of4) : Attaques AD et Web
Alphorm.com Formation Hacking et Sécurité 2020 (4of4) : Attaques AD et WebAlphorm.com Formation Hacking et Sécurité 2020 (4of4) : Attaques AD et Web
Alphorm.com Formation Hacking et Sécurité 2020 (4of4) : Attaques AD et WebAlphorm
 
Alphorm.com Formation CND 2/2: Réussir la certification
Alphorm.com Formation CND 2/2: Réussir la certificationAlphorm.com Formation CND 2/2: Réussir la certification
Alphorm.com Formation CND 2/2: Réussir la certificationAlphorm
 
Webinaire : sécurité informatique sur le web - Jérôme Thémée
Webinaire : sécurité informatique sur le web - Jérôme ThéméeWebinaire : sécurité informatique sur le web - Jérôme Thémée
Webinaire : sécurité informatique sur le web - Jérôme ThéméeMarie Tapia
 
XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de ...
XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de ...XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de ...
XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de ...Publicis Sapient Engineering
 
Etat des Lieux DANE (DNS Based Authentication of Named Entities)
Etat des Lieux DANE (DNS Based Authentication of Named Entities)Etat des Lieux DANE (DNS Based Authentication of Named Entities)
Etat des Lieux DANE (DNS Based Authentication of Named Entities)Afnic
 

Similar a Meetup Drupal Lyon - Sécuriser un site drupal (20)

Webinar bonnes pratiques securite
Webinar   bonnes pratiques securiteWebinar   bonnes pratiques securite
Webinar bonnes pratiques securite
 
Securitedesapplications 091011120426-phpapp02
Securitedesapplications 091011120426-phpapp02Securitedesapplications 091011120426-phpapp02
Securitedesapplications 091011120426-phpapp02
 
Toutes les raisons d'adopter MongoDB
Toutes les raisons d'adopter MongoDBToutes les raisons d'adopter MongoDB
Toutes les raisons d'adopter MongoDB
 
Sécurité: Ne soyez pas à risque
Sécurité: Ne soyez pas à risqueSécurité: Ne soyez pas à risque
Sécurité: Ne soyez pas à risque
 
Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022
 
Alphorm.com Formation OpenSSL : Cryptage des données
Alphorm.com Formation OpenSSL : Cryptage des donnéesAlphorm.com Formation OpenSSL : Cryptage des données
Alphorm.com Formation OpenSSL : Cryptage des données
 
Hacking Open source et Sécurité, préconisations
Hacking Open source et Sécurité, préconisationsHacking Open source et Sécurité, préconisations
Hacking Open source et Sécurité, préconisations
 
Sécurité informatique mobile cloud astoine maroc francais
Sécurité informatique mobile cloud astoine maroc francaisSécurité informatique mobile cloud astoine maroc francais
Sécurité informatique mobile cloud astoine maroc francais
 
Comprendre, utiliser et créer une API
Comprendre, utiliser et créer une APIComprendre, utiliser et créer une API
Comprendre, utiliser et créer une API
 
Xebicon architectures microservices azure v1.0
Xebicon   architectures microservices azure v1.0Xebicon   architectures microservices azure v1.0
Xebicon architectures microservices azure v1.0
 
Wbm11 formation-webmaster-expert-responsive-web-design-rwd-microdata-schema-o...
Wbm11 formation-webmaster-expert-responsive-web-design-rwd-microdata-schema-o...Wbm11 formation-webmaster-expert-responsive-web-design-rwd-microdata-schema-o...
Wbm11 formation-webmaster-expert-responsive-web-design-rwd-microdata-schema-o...
 
Récupération d’un Active Directory: comment repartir en confiance après une c...
Récupération d’un Active Directory: comment repartir en confiance après une c...Récupération d’un Active Directory: comment repartir en confiance après une c...
Récupération d’un Active Directory: comment repartir en confiance après une c...
 
Réussir son projet Drupal
Réussir son projet DrupalRéussir son projet Drupal
Réussir son projet Drupal
 
Alphorm.com Formation Hacking et Sécurité 2020 (4of4) : Attaques AD et Web
Alphorm.com Formation Hacking et Sécurité 2020 (4of4) : Attaques AD et WebAlphorm.com Formation Hacking et Sécurité 2020 (4of4) : Attaques AD et Web
Alphorm.com Formation Hacking et Sécurité 2020 (4of4) : Attaques AD et Web
 
Alphorm.com Formation CND 2/2: Réussir la certification
Alphorm.com Formation CND 2/2: Réussir la certificationAlphorm.com Formation CND 2/2: Réussir la certification
Alphorm.com Formation CND 2/2: Réussir la certification
 
OWASP Quebec ce que vous devriez savoir sur le Cloud Computing
OWASP Quebec ce que vous devriez savoir sur le Cloud ComputingOWASP Quebec ce que vous devriez savoir sur le Cloud Computing
OWASP Quebec ce que vous devriez savoir sur le Cloud Computing
 
Webinaire : sécurité informatique sur le web - Jérôme Thémée
Webinaire : sécurité informatique sur le web - Jérôme ThéméeWebinaire : sécurité informatique sur le web - Jérôme Thémée
Webinaire : sécurité informatique sur le web - Jérôme Thémée
 
XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de ...
XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de ...XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de ...
XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de ...
 
technologie web
technologie webtechnologie web
technologie web
 
Etat des Lieux DANE (DNS Based Authentication of Named Entities)
Etat des Lieux DANE (DNS Based Authentication of Named Entities)Etat des Lieux DANE (DNS Based Authentication of Named Entities)
Etat des Lieux DANE (DNS Based Authentication of Named Entities)
 

Meetup Drupal Lyon - Sécuriser un site drupal

  • 1.
  • 2. Sécuriser un site Drupal Meetup Drupal Lyon - 03/07/2014 @AurelienNavarre / @DrupalFacile
  • 3. En un mot... N'importe quel site semble sécurisé jusqu'au moment où il sera effectivement compromis. Votre mission est de retarder ce moment et de protéger vos clients du mieux que vous le pouvez.
  • 4. Cela arrive même aux meilleurs. Quelques exemples depuis début 2014...
  • 5. • Mot de passe • Numéro de téléphone • Adresse e-mail
  • 6. • 4.6 de comptes piratés • Identifiant utilisateur • Numéro de téléphone
  • 7. • 200M de comptes piratés • Identifiant utilisateur • Etat civil • Adresse • Téléphone
  • 8. • Mot de passe • Numéro de téléphone • Adresse e-mail
  • 9. • Identifiant utilisateur • Mot de passe • Adresse e-mail
  • 10. • DDoS massives et successives • Interruption complète de service • Demande de rançon !
  • 11. Quelques types d’attaques... • CSRF: vol de cookie, détournement HTTP • XSS: injection de code dans une page • SQL Injection: requête SQL dans un champ de formulaire non protégé • Access bypass: infos privées accessibles • (Distr.) Denial of Service: faire tomber un site par une attaque coordonnée et ciblée il y en a bien plus !
  • 12. Comment arrive une attaque ? • SA-CORE / SA-CONTRIB non suivis • Permissions du site trop ouvertes • Mauvaises pratiques (PHP Filter, hacks...) • Attaque ciblée (Brute Force, XSS…) • Identifiants compromis (admin/azerty) • Serveur(s) vulnérable(s) • Sauvegardes non-encryptées et volées ou partagées avec des infos confidentielles
  • 13. Les plus de Drupal 7 • Meilleur stockage des mots de passe en base de données (SHA512) • Prévention des attaques XSS et SQL • Prévention du “flooding” • Accès restreint à cron.php (clé unique) • Prévention (D)DoS sur les miniatures d’images (tokens) depuis 7.20
  • 14. API Drupal • check_url: nettoie les tags d’une URL • check_plain*: échap. texte brut vers HTML • check_markup: texte riche vers HTML • filter_xss*: filtre le HTML • Fonctions preprocess* (theming) • Utilisez Form API et Database API (PDO) * supprimé et/ou modifié dans Drupal 8
  • 15.
  • 16. Quelques modules • Security Review: audit de sécurité • Security Kit: hardening avancé • Password Policy: force l’utilisation de mots de passe complexes (pas suffisant !) • Permissions Lock: permissions renforcées • Username Enumeration Prevention: évite les attaques par dictionnaire • Secure Pages: force une connexion SSL
  • 17. C’est quoi un bon mot de passe ? http://xkcd.com/936
  • 18. Tester un mot de passe
  • 19. Fichiers et dossiers • Fichiers (644) • /default (755) • /default/files (744 ou 755) • /default/themes (755) • /default/modules (755) • /default/settings.php (444) www-data:sitename
  • 20. Dans un monde idéal • HTTPS, SSH et SFTP en standard • Git pour le contrôle de version • Encryptez les données utilisateurs : modules AES, dbee, Encryption... • 2FA: de plus en plus utilisé et populaire • Stratégie fail-over: HA, active/hot-spare • Protections DDoS, CDN, multi-region • Penetration testing et Load testing
  • 21. Et Drupal 8 là-dedans ? • Module PHP enfin supprimé du coeur ! • Twig : moteur de template sécurisé par défaut via sa fonction d’autoescaping • CKEditor intégré dans le coeur • Local image filter pour limiter l’utilisation du tag <img> au nom de domaine courant • Protection CSRF par défaut via le composant Routing de Symfony
  • 22. Si vous savez... • Rester informé (RSS, Twitter…) • Installer et configurer des modules • Suivre les bonnes pratiques Drupal • Limiter le code PHP dans votre thème • Utiliser l’API Drupal et des modules contrib • Suivre le principe KISS Alors vous avez fait 98% du travail !
  • 23. Et les 2% restants alors ? • Expertise Drupal • Expertise PHP • Expertise système et réseau • Expertise en sécurité • ... ...beaucoup d’expertise pour 2%
  • 24. Comment gérer un piratage ? • Communiquez rapidement via les réseaux sociaux...et soyez transparent ! • Forcez la réinitialisation des mots de passe • Analysez vos logs système / Drupal • Réparer la faille est le strict minimum. Allez plus loin et devenez un exemple à suivre ! • Module Paranoia...si vous le devenez. ...apprenez de vos erreurs !
  • 25. Quelques ressources • https://www.drupal.org/writing-secure-code • https://drupal.org/security-team • https://drupal.org/security/secure- configuration • https://github.com/greggles/vulnerable • http://crackingdrupal.com • http://www.ubuntu.com/usn/