26
p. 1 Julien Cayssol, Certilience, Juin 2013 Hacking: sécurité avec les logiciels libres

Hacking Open source et Sécurité, préconisations

Embed Size (px)

DESCRIPTION

Présentation des techniques de hacking et préconisations en OpenSource

Citation preview

Page 1: Hacking Open source et Sécurité, préconisations

p. 1

Julien Cayssol, Certilience, Juin 2013

Hacking: sécurité avec les logiciels libres

Page 2: Hacking Open source et Sécurité, préconisations

p. 2

Agenda

• Les vulnérabilités dans les produits

• Présentation des attaques– XSS (Réfléchi, Permanente, ...) – Injections ( SQL, LDAP, … )

– ...

• Démonstration

• Scénario

• Les Solutions

Page 3: Hacking Open source et Sécurité, préconisations

p. 3

Des Vulnérabilités dans l'Opensource

• 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...

Page 4: Hacking Open source et Sécurité, préconisations

p. 4

Les Attaques

Page 5: Hacking Open source et Sécurité, préconisations

p. 5

XSS ( Cross Site Scripting )

• Réfléchi– Exemple : Echange d'un lien

• Www.banque.com/?msg='Erreur Mot de passe'

• Exploitation simple :

– Www.banque.com?msg=<script>alert('Test')</script>

• Exploitation d'une vulnérabilité sur le navigateur

Page 6: Hacking Open source et Sécurité, préconisations

p. 6

XSS ( Cross Site Scripting )

• Permanente– Exemple : Un Forum.

• Une personne dépose un commentaire « <script>alert('Bonjour')</script> »

• A la consultation du forum le code s’exécute sur le poste client.

Page 7: Hacking Open source et Sécurité, préconisations

p. 7

Injection SQL

• Détourner une requête– Portail d'authentification– Fiche Article

• Conséquences :– Bypass d'authentification– Récupération de données d'autres tables– Exécution de code

Page 8: Hacking Open source et Sécurité, préconisations

p. 8

Injection SQL (Fonctionnement)

• Authentification– Requête :

• SELECT * from users where username='$username' and password = '$password'

– Cas 1 : Username = test & password = test• SELECT * from users where username='test' and

password = 'test'– Cas 2 : Username = test & password = admin' or 1='1

• SELECT * from users where username='test' and password = 'admin' or 1='1'

Page 9: Hacking Open source et Sécurité, préconisations

p. 9

Injection SQL

• Fiche article :– Requête :

• http://url/fiche.php?id=1–Select titre,description from articles where id =$id

– Cas 1 : id=1 • Select titre,description from articles where id =1

– Cas 2 : id=999999 union select user,password from users where user='admin'• Select titre,description from articles where id =999999 union

select user,password from users where user='admin'

Page 10: Hacking Open source et Sécurité, préconisations

p. 10

Pas uniquement SQL

• Détourner des requêtes sur LDAP– ( ) | * &–

• Détourner des commandes systèmes– &, ;, |

Page 11: Hacking Open source et Sécurité, préconisations

p. 11

Démonstration

Page 12: Hacking Open source et Sécurité, préconisations

p. 12

Scénario

• Recherche d'informations sur le site pour identifier les technologies.– Php ? MySQL ? Linux ? Firewall ? Dmz ?

• 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, ...)

Page 13: Hacking Open source et Sécurité, préconisations

p. 13

Scénario

• Dépose du code adapté (Normalement des privilèges limités : apache,tomcat, …)

• Elévation de privilèges :– Vuln kernel?

– Backup, script ? Clef ?

Page 14: Hacking Open source et Sécurité, préconisations

p. 14

Scénario

• Dépose du code adapté (Normalement des privilèges limités : apache,tomcat, …)

• Elévation de privilèges :– Vuln kernel?

– Backup, script ? Clef ?

Page 15: Hacking Open source et Sécurité, préconisations

p. 15

Scénario

• 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

Page 16: Hacking Open source et Sécurité, préconisations

p. 16

Préconisations

Page 17: Hacking Open source et Sécurité, préconisations

p. 17

Correction de code

• Utilisation de guides, – OWASP (Projet Opensource) www.owasp.org

TOP 10 2013, version française cette semaine

• Tests pour valider le niveau de sécurité de mon application.

• Les bonnes solutions.•

Page 18: Hacking Open source et Sécurité, préconisations

p. 18

Architecture

• Firewall

• DMZ de services

• Limiter les flux in/out du serveur

Page 19: Hacking Open source et Sécurité, préconisations

p. 19

Architecture

Syslog/Logstash+kibana/Apache/pfsense/

Page 20: Hacking Open source et Sécurité, préconisations

p. 20

Hardening système

• Bonne configuration du serveur– Restriction des services– Minimum de privilèges– Restrictions sur le SSH ( root / password /

users)

Page 21: Hacking Open source et Sécurité, préconisations

p. 21

Hardening système

• Bonne configuration du serveur– Restriction des services– Minimum de privilèges– Restrictions sur le SSH ( root / password /

users)

Page 22: Hacking Open source et Sécurité, préconisations

p. 22

Hardening Apache

• Directive – ServerTokens– ServerSignature

• Désactiver le listage des répertoires

• Désactivation de certains modules

Page 23: Hacking Open source et Sécurité, préconisations

p. 23

Hardening de l'application (ex : php)

• Désactivation des erreurs PHP

• Bannière expose_php

• Restriction des include

• ...

Page 24: Hacking Open source et Sécurité, préconisations

p. 24

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

• Monitoring– Disponibilité des services

– Sécurité : fichiers modifiés, accès...

Page 25: Hacking Open source et Sécurité, préconisations

p. 25

Veille sécurité

• Tracking sur vos produits

• Procédure de mise à jour :– Sur le système– Sur les CMS (Attention aux plugins)

Page 26: Hacking Open source et Sécurité, préconisations

p. 26

Des Questions ?

Merci,

Www.certilience.fr