p. 1
Open Source et Sécurité
Solutions Linux / Mai 2013
Open Source et Sécurité
p. 2
Agenda
• Introduction
• Les attaques (Extract)
– XSS (Permanente, réfléchi, DOM)
– Injections ( SQL, LDAP, … )
– ...
• Démonstration
• Scénario
• Préconisations
p. 3
Des Vulnérabilités ?
• Dans les CMS :
– En Mai sur Wordpress Core + plugins > 25
vulnérabilités
– En Avril sur Drupal + Modules > 5 vulnérabilités
• Nginx ? DoS (ref : CVE-2013-2028)
Focus Web...
p. 4
Les Attaques
p. 5
XSS ( Cross Site Scripting )
• Contrôler le contenu de la page
• Permanente
– Exemple : Commentaire sans filtrage dans un CMS ou
un Forum
• Réfléchi
– Exemple : Echange d'un lien
http://www.banque.com/?href=[CHARGE]
• Redirection ?
• Exploitation d'une vulnérabilité sur le navigateur
p. 6
Injection SQL
• Détourner une requête
– Portail d'authentification
– Fiche Article
• Ex :
– SELECT * from users where username='$username' and password =
'$password'
– =>
– SELECT * from users where username='test' and password = 'test' or username
= 'admin'
p. 7
Injection LDAP, Sys
• Détourner une requête
– LDAP, caractères : ( ) | *
– Sys : ; & |
p. 8
Démonstration
p. 9
Scénario 1/2
• Recherche d'informations sur le site
• Identification d'une vulnérabilité :
– Injection SQL ? Dépose de fichiers ? Mot de
passe faible ? Recherche des répertoires.
• Dépose du code (Normalement des
privilèges limités : apache,tomcat, ...)
p. 10
Scénario 2/2
• Elévation de privilèges :
– Vuln kernel?
– Backup, script ? Clef ?
• La machine est compromise.
• Dépose d'une backdoor sur la machine
– Rootkit dans les couches du noyau
– Rootkit pour remplacer les commandes
– On efface les traces
p. 11
Préconisations
p. 12
Correction de code
• Utilisation de guides, ex : OWASP
– TOP10
• Tests pour valider la niveau de sécurité de mon
application.
• Les bonnes solutions (whitelist, …)
• ...
p. 13
Architecture
• Firewall
• DMZ de services
• Limiter les flux in/out du serveur
p. 14
Hardening système
• Bonne configuration du serveur
– Restriction des services
– Minimum de privilèges
– Restrictions sur le SSH ( root / password /
users)
p. 15
Hardening Apache
• Directive
– ServerTokens
– ServerSignature
• Désactiver le listage des répertoires
• Désactivation de certains modules
p. 16
Hardening de l'application (ex : php)
• Désactivation des erreurs PHP
• Bannière expose_php
• Restriction des include
• ...
p. 17
Ajoutons une couche
• mod_security : Le WAF OpenSource
– Validation des variables
– Détection d'erreurs
• Fail2ban : Regex on logs
– Il est possible de le coupler à mod_security
p. 18
Veille sécurité
• Tracking sur vos produits
• Procédure de mise à jour :
– Sur le système
– Sur les CMS
p. 19
Merci,
contact@certilience.fr
CERTILIENCE
513, rue Sans Souci
69760 LIMONEST -France

Hacking, Open Source et sécurité Par Certilience, solutions linux, Mai 2013

  • 1.
    p. 1 Open Sourceet Sécurité Solutions Linux / Mai 2013 Open Source et Sécurité
  • 2.
    p. 2 Agenda • Introduction •Les attaques (Extract) – XSS (Permanente, réfléchi, DOM) – Injections ( SQL, LDAP, … ) – ... • Démonstration • Scénario • Préconisations
  • 3.
    p. 3 Des Vulnérabilités? • Dans les CMS : – En Mai sur Wordpress Core + plugins > 25 vulnérabilités – En Avril sur Drupal + Modules > 5 vulnérabilités • Nginx ? DoS (ref : CVE-2013-2028) Focus Web...
  • 4.
  • 5.
    p. 5 XSS (Cross Site Scripting ) • Contrôler le contenu de la page • Permanente – Exemple : Commentaire sans filtrage dans un CMS ou un Forum • Réfléchi – Exemple : Echange d'un lien http://www.banque.com/?href=[CHARGE] • Redirection ? • Exploitation d'une vulnérabilité sur le navigateur
  • 6.
    p. 6 Injection SQL •Détourner une requête – Portail d'authentification – Fiche Article • Ex : – SELECT * from users where username='$username' and password = '$password' – => – SELECT * from users where username='test' and password = 'test' or username = 'admin'
  • 7.
    p. 7 Injection LDAP,Sys • Détourner une requête – LDAP, caractères : ( ) | * – Sys : ; & |
  • 8.
  • 9.
    p. 9 Scénario 1/2 •Recherche d'informations sur le site • Identification d'une vulnérabilité : – Injection SQL ? Dépose de fichiers ? Mot de passe faible ? Recherche des répertoires. • Dépose du code (Normalement des privilèges limités : apache,tomcat, ...)
  • 10.
    p. 10 Scénario 2/2 •Elévation de privilèges : – Vuln kernel? – Backup, script ? Clef ? • La machine est compromise. • Dépose d'une backdoor sur la machine – Rootkit dans les couches du noyau – Rootkit pour remplacer les commandes – On efface les traces
  • 11.
  • 12.
    p. 12 Correction decode • Utilisation de guides, ex : OWASP – TOP10 • Tests pour valider la niveau de sécurité de mon application. • Les bonnes solutions (whitelist, …) • ...
  • 13.
    p. 13 Architecture • Firewall •DMZ de services • Limiter les flux in/out du serveur
  • 14.
    p. 14 Hardening système •Bonne configuration du serveur – Restriction des services – Minimum de privilèges – Restrictions sur le SSH ( root / password / users)
  • 15.
    p. 15 Hardening Apache •Directive – ServerTokens – ServerSignature • Désactiver le listage des répertoires • Désactivation de certains modules
  • 16.
    p. 16 Hardening del'application (ex : php) • Désactivation des erreurs PHP • Bannière expose_php • Restriction des include • ...
  • 17.
    p. 17 Ajoutons unecouche • mod_security : Le WAF OpenSource – Validation des variables – Détection d'erreurs • Fail2ban : Regex on logs – Il est possible de le coupler à mod_security
  • 18.
    p. 18 Veille sécurité •Tracking sur vos produits • Procédure de mise à jour : – Sur le système – Sur les CMS
  • 19.