SlideShare une entreprise Scribd logo
Pourquoi durcir son code?
Quand le faire?
Comment s’y prendre?
12.06.2014
1er WebDay ESGI
Paris
Cyrille Grandval
Consultant Sécurité Applicative
Maxence Perrin
Développeur PHP Sécurisé
Durcissement de code
Qui sommes nous?
Cyrille Grandval
Directeur général
Consultant sécurité Applicative
cgrandval@darkmira.fr
@CyrilleGrandval
linkedin.com/in/cyrillegrandval
Maxence Perrin
Développeur PHP
sécurisé
mperrin@darkmira.fr
@Maxence_Perrin
Darkmira
Développement PHP sécurisé
Confiance – Elitisme – Qualité
Développement d’applications pérennes, fiables et sécurisées
Industrialisation du développement
• Bonnes pratiques
• Méthodes de type Agiles
• Frameworks Symfony et Zend
www.darkmira.fr
Introduction
Quelques faits
Pourquoi durcir son code?
2011 :
Piratage du
Playstation
Network, 77
millions de
comptes volés
Juin 2014 :
Piratage du
système “Pay
by Phone” à
Nice pour le
paiement des
places de
Parking
Avril 2014 :
Vol d’une
partie des RIB
des abonnés de
MediaPart
Février 2014 :
Piratage des
données
personnelles
des clients
d’Orange, 800
000 comptes
volés
Janvier 2014
: vol de 4,6
millions de
pseudos et
numéros de
téléphone de
Snapchat
Mars 2013 :
50 millions
de mots de
passes volés
chez Evernote
Avril 2014 :
HeartBleed
Faille de
sécurité
découverte
dans OpenSSL
qui affectent
⅔ des sites
internet
Avril 2014 :
Piratage des
données
personnelles
des clients
d’Orange, 1,3
millions de
comptes volés
Risques et impacts d’une attaque
Piratage
Vol de données Altération de données Indisponibilité de
l’application
Vol de propriété
intellectuelle
Perte d’image
Perte de confiance / crédibilité
Perte financière Responsabilité pénale / civile
DEPOT DE BILAN
RISQUESIMPACTS
Un très grand % de business sont basés sur une application Web
Constat
design dev test prod
Coût
PROACTIF REACTIF
Application web
Réseau système
%
attaques
Source
Gartner
%
budget
75%
25%
10%
90%
Evolution des attaques
• Basé sur les CVE
http://cve.mitre.org/cve/
• Baisse de moitié du nombre
de vulnérabilités jusqu’à 2011
• Augmentation jusqu’au
niveau de 2009 à partir de
2012
• 90% des failles ont une sévérité de
moyenne à élevée
• Baisse significative des failles de
sévérité élevée jusqu’à 2011 et
stagnation
Evolution des attaques mobiles
2012 2013
99 96
%
Applications testées
vulnérables
2012 2013
13 14
Vulnérabilités moyennes par
application
Source : Cenzic - Application Vulnerability Trends Report : 2014
Contexte juridique
Un accroissement des responsabilités des dirigeants face à la sécurité des
informations numériques
• + de protection des données
• + de traçabilité
• Nul n’est censé ignorer la loi
• Sensibilisation du personnel interne / externe
• Mettre l’entreprise en conformité avec la législation
Engagement de la responsabilité civile et / ou pénale
• Directive européenne : jusqu’à 5 ans d’emprisonnement et 300 000 euros
d’amendes
L’intégration de la
sécurité
Présentation de l’OWASP
OWASP : Open Web Application Security Project - Organisation
mondiale à but non lucratif http://www.owasp.org
Son rôle : sensibiliser à la sécurité applicative pour aider à prendre les bonnes décisions en
matière de sécurité des applications
Evènements et présence :
• Des conférences à travers le monde
• Des listes de diffusion spécifiques
• Des chapitres locaux
Liste des projets de l’OWASP :
https://www.owasp.org/index.php/Category:OWASP_Project
Des matériels :
• 50% de documentations (Top10, Cheats
Sheets, Normes, Guides, …)
• 40% d’outils (Samy, ZAP)
• 10% de code (Librairies)
Cycle de vie de l’application
Intégrer les préoccupations de sécurité dès le début du
cycle et non à la fin
Définition des besoins
Détermination des
besoins sécurité
Revue de code
sécurité
Tests de
sécurité
Sécurité du
déploiement
Audit de
sécurité
Cycle de vie de développement
Cycle de vie de sécurité
Architecture et
conception
Développement Test Déploiement Maintenance
Revue sécurité
de conception
Processus de contrôle de la sécurité d’une
application web en 4 niveaux :
• Niveau 0 (Superficiel) : critères minimums
de vérification définie par chaque société
• Niveau 1 (Opportuniste) : protège contre
les failles faciles à découvrir
• Niveau 2 (Standard) : défend contre les
failles courantes avec un risque de modéré à
sérieux
• Niveau 3 (Avancé) : défend contre les
failles avancées et démontre de bonnes
pratiques de conception sécurisé
Source : OWASP ASVS 2013 bêta -
https://docs.google.com/document/d/1B5Ho1iapIEIgxdyua_A7TxwyrY-ts7qUz9NEdxj8tZ4/edit
OWASP : Standard de Vérification de la Sécurité des Applications (2013)
Qualifier l’application avec l’ASVS
Qualifier l’application avec l’ASVS
L’ASVS définit 13 groupes d’exigences de vérification et des points de vérification par groupes
pour un ou plusieurs niveaux.
Vulnérabilités des
applications Web
Top 10 des attaques les plus répandues
A1 - Injections
A10 –
Redirections et
renvois non
validés
A4 - Références
directes non
sécurisées à un
objet
A7 – Manque de
contrôle d’accès
au niveau
fonctionnel
A2 - Violation de
Gestion
d'Authentification
et de Session
A5 – Mauvaise
configuration
Sécurité
A3 - Cross-Site
Scripting (XSS)
A6 – Exposition
de données
sensibles
A8 - Falsification
de requête
intersite (CSRF)
A9 - Utilisation de
composants avec
des vulnérabilités
connues
Owasp Top 10 – 2013
• Liste des attaques les plus
répandues par catégorie
• Explication, exemples
d’exploitations et contremesures
• Document mis à jour tous les 3
ans
Objectifs :
1/ Sensibiliser les acteurs du SI
2/ Fournir des techniques de
bases pour se protéger
Injection SQL
Définition
• Injection de code SQL
• Altération de la requête d’origine
Requête d’origine
SELECT * FROM user WHERE login = ‘“ . $_POST[‘login’] . “‘ AND password = ‘“ .
$_POST[‘password’] . “‘
Injection : ‘OR ‘1’ = ‘1
SELECT * FROM user WHERE login = ‘‘ OR ‘1’ = ‘1’ AND password = ‘‘ OR ‘1’ = ‘1‘
Injection SQL
• Faille toujours d’actualité
• S’en prémunir
Ne pas afficher vos messages d’erreurs
Requête préparée, Procédure stockée
• Démonstration fin de séance
Définition
Insertion de code malveillant (Javascript, VBScript, …) dans application Web
Script interprété côté client
Action possible :
Vol de cookie de session mais pas que…
Trois types d’attaque
• Reflected
• Permanent
• DOM-based
XSS
XSS - Reflected
Le code malveillant de l’attaquant est intégré sans contrôle, dans la
page web par le serveur
XSS - Permanent
Le code malveillant de l’attaquant est stocké dans un backend puis
retourné par le serveur dans la page web
XSS - Permanent
XSS – DOM based
Le code malveillant de l’attaquant est intégré́ dans les données
générées directement par le navigateur (côté client)
Contre-mesures
• Valider les données d’entrée
• Encoder les données de sortie
Quelques outils
• OWASP ESAPI Project (https://www.owasp.org/index.php/ESAPI)
• OWASP AntiSamy Project
(https://www.owasp.org/index.php/Category:OWASP_AntiSamy_Project)
• Librairies et bibliothèques par technologies
XSS
Chiffrez vos données
Crypter : une arme de guerre
• Jusqu’en 1996 (128 bits)
• 2004 : Loi pour la confiance dans l’économie numérique
Crypter n’est pas hasher
Hashage salt statique / salt dynamique
N’oubliez pas les utilisateurs
• Impliquez l’utilisateur dans la sécurité
• Conception sécurisée
CSRF
Définition
Faire réaliser des actions à l’insu des utilisateurs
Mise en œuvre
• Utilisateur A est administrateur d’un site voyage et est connecté dessus
• Grâce à un phishing, il se connecte sur le site de l’attaquant
• Ce site comprend une image dont l’url est la page de modification d’un des
voyages
• Le navigateur de l’Utilisateur A charge l’url de l’image et donc la page de
modification du voyage à son insu
• L’utilisateur A ayant une session active sur son site, le prix du voyage est modifié
CSRF Exploitation
Balise IMG invisible (GET)
<img src=http://myvoyage.com/voyage.php?id=78&action=modify&amount=10
width=”1” height=“1” />
Formulaire (POST)
<form name=“form” method=“post” action=“http://myvoyage.com/voyage.php“>
<input type=“hidden” name=“id” value=“78”>
<input type=“hidden” name=“action” value=“modify”>
<input type=“hidden” name=“amount” value=“10”>
</form>
<script>document.form.submit()</script>
CSRF
Contrer cette attaque
• Jeton unique passé sur chaque action (formulaire, url)
• Jeton limité dans le temps
• Session limité dans le temps
• Forcer une nouvelle authentification avant toute action critique
• CAPTCHA
• Vérifier le referer
Quelques outils
• OWASP CSRF Guard Project
(https://www.owasp.org/index.php/Category:OWASP_CSRFGuard_Project)
• OWASP CSRF Tester Project
(https://www.owasp.org/index.php/Category:OWASP_CSRFTester_Project)
Une attaque en cache une autre
Démonstration
Démonstration
Exemples d'une attaque SQL Injection
• Code en PHP
• Base de données MySQL
• Site de voyage minimaliste
-Liste des voyages
-Information sur un voyage
-Mon compte
• Déroulement de l’attaque
-Prise d’empreinte
-Exploitation basique
-Utilisation de l’outil sqlmap (http://sqlmap.org)
Conclusion
Conclusion
Pourquoi ne pas durcir le code (Les mythes) ?
1/ Ma société n’a pas d’informations sensibles
2/ Mon application est interne à mon entreprise
3/ Mon application est derrière un firewall et / ou utilise HTTPS
4/ Mes développeurs réalisent des applications sécurisées
5/ Les attaques Web ne sont exploitées que part une élite de
hackers
Si vous avez compris l’ironie de cette conclusion,
vous êtes sur la bonne voie
Continuez ;-)
Conclusion
Questions, Commentaires, Sujets de discussions ?
Twitter : @Darkmira1
Facebook : darkmira
Linkedin : darkmira

Contenu connexe

Tendances

Installation et configuration d'apache tomcat
Installation et configuration d'apache tomcatInstallation et configuration d'apache tomcat
Installation et configuration d'apache tomcat
Manassé Achim kpaya
 
Cybernode.se: Securing the software supply chain (CRA)
Cybernode.se: Securing the software supply chain (CRA)Cybernode.se: Securing the software supply chain (CRA)
Cybernode.se: Securing the software supply chain (CRA)
Olle E Johansson
 
Presentation JEE et son écossystéme
Presentation JEE et son écossystémePresentation JEE et son écossystéme
Presentation JEE et son écossystéme
Algeria JUG
 
Open Vulnerability Assesment System (OpenVAS)
Open Vulnerability Assesment System (OpenVAS)Open Vulnerability Assesment System (OpenVAS)
Open Vulnerability Assesment System (OpenVAS)
Information Technology Inistitute
 
Introduction à La Sécurité Informatique 1/2
Introduction à La Sécurité Informatique 1/2Introduction à La Sécurité Informatique 1/2
Introduction à La Sécurité Informatique 1/2
Sylvain Maret
 
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce  Basé sur Spring IOC MVC Security JPA HibernateSite JEE de ECommerce  Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
ENSET, Université Hassan II Casablanca
 
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiJava entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
ENSET, Université Hassan II Casablanca
 
Sécurité des Applications WEB -LEVEL1
 Sécurité des Applications WEB-LEVEL1 Sécurité des Applications WEB-LEVEL1
Sécurité des Applications WEB -LEVEL1
Tarek MOHAMED
 
Vue d'ensemble et retour d'expérience déploiement SCCM 2012
Vue d'ensemble et retour d'expérience déploiement SCCM 2012Vue d'ensemble et retour d'expérience déploiement SCCM 2012
Vue d'ensemble et retour d'expérience déploiement SCCM 2012
Microsoft Technet France
 
Les attaques
Les attaquesLes attaques
Les attaques
nadia sassi
 
Formation JAVA/J2EE
Formation JAVA/J2EEFormation JAVA/J2EE
Formation JAVA/J2EE
Ines Ouaz
 
Comment analyser une machine linux compromise
Comment analyser une machine linux compromiseComment analyser une machine linux compromise
Comment analyser une machine linux compromise
Tarek MOHAMED
 
Rapport atelier Web App Security 2015
Rapport atelier Web App Security 2015Rapport atelier Web App Security 2015
Rapport atelier Web App Security 2015
Hamza Ben Marzouk
 
Concevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootConcevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring Boot
DNG Consulting
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
ENSET, Université Hassan II Casablanca
 
Cấu hình giao thức ldaps cho việc change password của ad từ các hệ thống vpn
Cấu hình giao thức ldaps cho việc change password của ad từ các hệ thống vpnCấu hình giao thức ldaps cho việc change password của ad từ các hệ thống vpn
Cấu hình giao thức ldaps cho việc change password của ad từ các hệ thống vpn
laonap166
 
IBM 보안솔루션 앱스캔_AppScan Standard 소개
IBM 보안솔루션 앱스캔_AppScan Standard 소개IBM 보안솔루션 앱스캔_AppScan Standard 소개
IBM 보안솔루션 앱스캔_AppScan Standard 소개
은옥 조
 
JNDI Java Naming Derectory Interfaces
JNDI Java Naming Derectory InterfacesJNDI Java Naming Derectory Interfaces
JNDI Java Naming Derectory Interfaces
benouini rachid
 
Présentation de JEE et de son écosysteme
Présentation de JEE et de son écosystemePrésentation de JEE et de son écosysteme
Présentation de JEE et de son écosysteme
Stéphane Traumat
 
Alphorm.com Support de la Formation VMware vSphere 6, Les machines virtuelles
Alphorm.com Support de la Formation VMware vSphere 6, Les machines virtuellesAlphorm.com Support de la Formation VMware vSphere 6, Les machines virtuelles
Alphorm.com Support de la Formation VMware vSphere 6, Les machines virtuelles
Alphorm
 

Tendances (20)

Installation et configuration d'apache tomcat
Installation et configuration d'apache tomcatInstallation et configuration d'apache tomcat
Installation et configuration d'apache tomcat
 
Cybernode.se: Securing the software supply chain (CRA)
Cybernode.se: Securing the software supply chain (CRA)Cybernode.se: Securing the software supply chain (CRA)
Cybernode.se: Securing the software supply chain (CRA)
 
Presentation JEE et son écossystéme
Presentation JEE et son écossystémePresentation JEE et son écossystéme
Presentation JEE et son écossystéme
 
Open Vulnerability Assesment System (OpenVAS)
Open Vulnerability Assesment System (OpenVAS)Open Vulnerability Assesment System (OpenVAS)
Open Vulnerability Assesment System (OpenVAS)
 
Introduction à La Sécurité Informatique 1/2
Introduction à La Sécurité Informatique 1/2Introduction à La Sécurité Informatique 1/2
Introduction à La Sécurité Informatique 1/2
 
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce  Basé sur Spring IOC MVC Security JPA HibernateSite JEE de ECommerce  Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
 
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiJava entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
 
Sécurité des Applications WEB -LEVEL1
 Sécurité des Applications WEB-LEVEL1 Sécurité des Applications WEB-LEVEL1
Sécurité des Applications WEB -LEVEL1
 
Vue d'ensemble et retour d'expérience déploiement SCCM 2012
Vue d'ensemble et retour d'expérience déploiement SCCM 2012Vue d'ensemble et retour d'expérience déploiement SCCM 2012
Vue d'ensemble et retour d'expérience déploiement SCCM 2012
 
Les attaques
Les attaquesLes attaques
Les attaques
 
Formation JAVA/J2EE
Formation JAVA/J2EEFormation JAVA/J2EE
Formation JAVA/J2EE
 
Comment analyser une machine linux compromise
Comment analyser une machine linux compromiseComment analyser une machine linux compromise
Comment analyser une machine linux compromise
 
Rapport atelier Web App Security 2015
Rapport atelier Web App Security 2015Rapport atelier Web App Security 2015
Rapport atelier Web App Security 2015
 
Concevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootConcevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring Boot
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
 
Cấu hình giao thức ldaps cho việc change password của ad từ các hệ thống vpn
Cấu hình giao thức ldaps cho việc change password của ad từ các hệ thống vpnCấu hình giao thức ldaps cho việc change password của ad từ các hệ thống vpn
Cấu hình giao thức ldaps cho việc change password của ad từ các hệ thống vpn
 
IBM 보안솔루션 앱스캔_AppScan Standard 소개
IBM 보안솔루션 앱스캔_AppScan Standard 소개IBM 보안솔루션 앱스캔_AppScan Standard 소개
IBM 보안솔루션 앱스캔_AppScan Standard 소개
 
JNDI Java Naming Derectory Interfaces
JNDI Java Naming Derectory InterfacesJNDI Java Naming Derectory Interfaces
JNDI Java Naming Derectory Interfaces
 
Présentation de JEE et de son écosysteme
Présentation de JEE et de son écosystemePrésentation de JEE et de son écosysteme
Présentation de JEE et de son écosysteme
 
Alphorm.com Support de la Formation VMware vSphere 6, Les machines virtuelles
Alphorm.com Support de la Formation VMware vSphere 6, Les machines virtuellesAlphorm.com Support de la Formation VMware vSphere 6, Les machines virtuelles
Alphorm.com Support de la Formation VMware vSphere 6, Les machines virtuelles
 

En vedette

Sécuriser mes applications avec ZF2
Sécuriser mes applications avec ZF2Sécuriser mes applications avec ZF2
Sécuriser mes applications avec ZF2
Cyrille Grandval
 
PACE-IT: Network Access Control
PACE-IT: Network Access ControlPACE-IT: Network Access Control
PACE-IT: Network Access Control
Pace IT at Edmonds Community College
 
ASFWS 2011 : CAS, OpenID, SAML concepts, différences et exemples
ASFWS 2011 : CAS, OpenID, SAML  concepts, différences et exemplesASFWS 2011 : CAS, OpenID, SAML  concepts, différences et exemples
ASFWS 2011 : CAS, OpenID, SAML concepts, différences et exemples
Cyber Security Alliance
 
CAS, OpenID, SAML : concepts, différences et exemples
CAS, OpenID, SAML : concepts, différences et exemplesCAS, OpenID, SAML : concepts, différences et exemples
CAS, OpenID, SAML : concepts, différences et exemples
Clément OUDOT
 
Clusif 2014 scada panorama des referentiels sécurité système information ind...
Clusif 2014  scada panorama des referentiels sécurité système information ind...Clusif 2014  scada panorama des referentiels sécurité système information ind...
Clusif 2014 scada panorama des referentiels sécurité système information ind...
echangeurba
 
2014 NAC candidate orientation presentation
2014 NAC candidate orientation presentation 2014 NAC candidate orientation presentation
2014 NAC candidate orientation presentation
MedCouncilCan
 
Network Access Control as a Network Security Solution
Network Access Control as a Network Security SolutionNetwork Access Control as a Network Security Solution
Network Access Control as a Network Security Solution
Conor Ryan
 
Physical/Network Access Control
Physical/Network Access ControlPhysical/Network Access Control
Physical/Network Access Control
jwpiccininni
 
Clusif 2014 Annexes référentiels de sécurité système information industriel /...
Clusif 2014 Annexes référentiels de sécurité système information industriel /...Clusif 2014 Annexes référentiels de sécurité système information industriel /...
Clusif 2014 Annexes référentiels de sécurité système information industriel /...
echangeurba
 
BPM & Workflow
BPM & WorkflowBPM & Workflow
BPM & Workflow
François Charoy
 
CAS, OpenID, Shibboleth, SAML : concepts, différences et exemples
CAS, OpenID, Shibboleth, SAML : concepts, différences et exemplesCAS, OpenID, Shibboleth, SAML : concepts, différences et exemples
CAS, OpenID, Shibboleth, SAML : concepts, différences et exemples
Clément OUDOT
 
Génération d'applications web avec Bonita
Génération d'applications web avec BonitaGénération d'applications web avec Bonita
Génération d'applications web avec Bonita
rlg
 
Introduction à BPMN 2.0 - Business Process Modeling Notation
Introduction à BPMN 2.0 - Business Process Modeling NotationIntroduction à BPMN 2.0 - Business Process Modeling Notation
Introduction à BPMN 2.0 - Business Process Modeling Notation
Sanae BEKKAR
 
Le BPM facile avec Bonita Open Solution
Le BPM facile avec Bonita Open SolutionLe BPM facile avec Bonita Open Solution
Le BPM facile avec Bonita Open Solution
Bonitasoft
 
LES SYSTEMES DE GESTION DES IDENTITES ET DES ACCES : MISE EN ŒUVRE ET APPORT ...
LES SYSTEMES DE GESTION DES IDENTITES ET DES ACCES : MISE EN ŒUVRE ET APPORT ...LES SYSTEMES DE GESTION DES IDENTITES ET DES ACCES : MISE EN ŒUVRE ET APPORT ...
LES SYSTEMES DE GESTION DES IDENTITES ET DES ACCES : MISE EN ŒUVRE ET APPORT ...
Danny Batomen Yanga
 
Balises iBeacon : 26 cas concrets d'utilisation !
Balises iBeacon : 26 cas concrets d'utilisation !Balises iBeacon : 26 cas concrets d'utilisation !
Balises iBeacon : 26 cas concrets d'utilisation !
Christophe Robinet
 
Le processus de gestion des habilitations
Le processus de gestion des habilitationsLe processus de gestion des habilitations
Le processus de gestion des habilitations
emc 2p
 
2013 03-01 automatiser les tests sécurité
2013 03-01 automatiser les tests sécurité2013 03-01 automatiser les tests sécurité
2013 03-01 automatiser les tests sécurité
Sébastien GIORIA
 
Atelier9 gestion des_identites_et_sso
Atelier9 gestion des_identites_et_ssoAtelier9 gestion des_identites_et_sso
Atelier9 gestion des_identites_et_sso
Said Benadir
 
Architecture of a Modern Web App
Architecture of a Modern Web AppArchitecture of a Modern Web App
Architecture of a Modern Web App
scothis
 

En vedette (20)

Sécuriser mes applications avec ZF2
Sécuriser mes applications avec ZF2Sécuriser mes applications avec ZF2
Sécuriser mes applications avec ZF2
 
PACE-IT: Network Access Control
PACE-IT: Network Access ControlPACE-IT: Network Access Control
PACE-IT: Network Access Control
 
ASFWS 2011 : CAS, OpenID, SAML concepts, différences et exemples
ASFWS 2011 : CAS, OpenID, SAML  concepts, différences et exemplesASFWS 2011 : CAS, OpenID, SAML  concepts, différences et exemples
ASFWS 2011 : CAS, OpenID, SAML concepts, différences et exemples
 
CAS, OpenID, SAML : concepts, différences et exemples
CAS, OpenID, SAML : concepts, différences et exemplesCAS, OpenID, SAML : concepts, différences et exemples
CAS, OpenID, SAML : concepts, différences et exemples
 
Clusif 2014 scada panorama des referentiels sécurité système information ind...
Clusif 2014  scada panorama des referentiels sécurité système information ind...Clusif 2014  scada panorama des referentiels sécurité système information ind...
Clusif 2014 scada panorama des referentiels sécurité système information ind...
 
2014 NAC candidate orientation presentation
2014 NAC candidate orientation presentation 2014 NAC candidate orientation presentation
2014 NAC candidate orientation presentation
 
Network Access Control as a Network Security Solution
Network Access Control as a Network Security SolutionNetwork Access Control as a Network Security Solution
Network Access Control as a Network Security Solution
 
Physical/Network Access Control
Physical/Network Access ControlPhysical/Network Access Control
Physical/Network Access Control
 
Clusif 2014 Annexes référentiels de sécurité système information industriel /...
Clusif 2014 Annexes référentiels de sécurité système information industriel /...Clusif 2014 Annexes référentiels de sécurité système information industriel /...
Clusif 2014 Annexes référentiels de sécurité système information industriel /...
 
BPM & Workflow
BPM & WorkflowBPM & Workflow
BPM & Workflow
 
CAS, OpenID, Shibboleth, SAML : concepts, différences et exemples
CAS, OpenID, Shibboleth, SAML : concepts, différences et exemplesCAS, OpenID, Shibboleth, SAML : concepts, différences et exemples
CAS, OpenID, Shibboleth, SAML : concepts, différences et exemples
 
Génération d'applications web avec Bonita
Génération d'applications web avec BonitaGénération d'applications web avec Bonita
Génération d'applications web avec Bonita
 
Introduction à BPMN 2.0 - Business Process Modeling Notation
Introduction à BPMN 2.0 - Business Process Modeling NotationIntroduction à BPMN 2.0 - Business Process Modeling Notation
Introduction à BPMN 2.0 - Business Process Modeling Notation
 
Le BPM facile avec Bonita Open Solution
Le BPM facile avec Bonita Open SolutionLe BPM facile avec Bonita Open Solution
Le BPM facile avec Bonita Open Solution
 
LES SYSTEMES DE GESTION DES IDENTITES ET DES ACCES : MISE EN ŒUVRE ET APPORT ...
LES SYSTEMES DE GESTION DES IDENTITES ET DES ACCES : MISE EN ŒUVRE ET APPORT ...LES SYSTEMES DE GESTION DES IDENTITES ET DES ACCES : MISE EN ŒUVRE ET APPORT ...
LES SYSTEMES DE GESTION DES IDENTITES ET DES ACCES : MISE EN ŒUVRE ET APPORT ...
 
Balises iBeacon : 26 cas concrets d'utilisation !
Balises iBeacon : 26 cas concrets d'utilisation !Balises iBeacon : 26 cas concrets d'utilisation !
Balises iBeacon : 26 cas concrets d'utilisation !
 
Le processus de gestion des habilitations
Le processus de gestion des habilitationsLe processus de gestion des habilitations
Le processus de gestion des habilitations
 
2013 03-01 automatiser les tests sécurité
2013 03-01 automatiser les tests sécurité2013 03-01 automatiser les tests sécurité
2013 03-01 automatiser les tests sécurité
 
Atelier9 gestion des_identites_et_sso
Atelier9 gestion des_identites_et_ssoAtelier9 gestion des_identites_et_sso
Atelier9 gestion des_identites_et_sso
 
Architecture of a Modern Web App
Architecture of a Modern Web AppArchitecture of a Modern Web App
Architecture of a Modern Web App
 

Similaire à Durcissement de code - Sécurité Applicative Web

Sécurité des applications web: attaque et défense
Sécurité des applications web: attaque et défenseSécurité des applications web: attaque et défense
Sécurité des applications web: attaque et défense
Antonio Fontes
 
Les principales failles de sécurité des applications web actuelles
Les principales failles de sécurité des applications web actuellesLes principales failles de sécurité des applications web actuelles
Les principales failles de sécurité des applications web actuelles
Bee_Ware
 
Owasp top 10 2010 Resist toulouse
Owasp top 10   2010  Resist toulouseOwasp top 10   2010  Resist toulouse
Owasp top 10 2010 Resist toulouse
Sébastien GIORIA
 
2010 02 09 Ms Tech Days Owasp Asvs Sgi V01
2010 02 09 Ms Tech Days Owasp Asvs Sgi V012010 02 09 Ms Tech Days Owasp Asvs Sgi V01
2010 02 09 Ms Tech Days Owasp Asvs Sgi V01
Sébastien GIORIA
 
Première rencontre d'owasp québec
Première rencontre d'owasp québecPremière rencontre d'owasp québec
Première rencontre d'owasp québec
Patrick Leclerc
 
Sécurisation d'un site internet
Sécurisation d'un site internetSécurisation d'un site internet
Sécurisation d'un site internet
waggaland
 
Sécurité des Développements Webs et Mobiles
Sécurité des Développements Webs et MobilesSécurité des Développements Webs et Mobiles
Sécurité des Développements Webs et Mobiles
Phonesec
 
Les principales failles de sécurité des applications Web actuelles
Les principales failles de sécurité des applications Web actuellesLes principales failles de sécurité des applications Web actuelles
Les principales failles de sécurité des applications Web actuelles
Xavier Kress
 
Securitedesapplications 091011120426-phpapp02
Securitedesapplications 091011120426-phpapp02Securitedesapplications 091011120426-phpapp02
Securitedesapplications 091011120426-phpapp02
Asma Messaoudi
 
Starc by Exaprobe
Starc by ExaprobeStarc by Exaprobe
Starc by Exaprobe
Exaprobe
 
GS Days 2017 - La sécurité des APIs
GS Days 2017 - La sécurité des APIsGS Days 2017 - La sécurité des APIs
GS Days 2017 - La sécurité des APIs
Bertrand Carlier
 
Atelier Technique RAPID7 ACSS 2018
Atelier Technique RAPID7 ACSS 2018Atelier Technique RAPID7 ACSS 2018
Atelier Technique RAPID7 ACSS 2018
African Cyber Security Summit
 
Développement sécurisé
Développement sécuriséDéveloppement sécurisé
Développement sécurisé
facemeshfacemesh
 
OWASP TOP 10 Proactive
OWASP TOP 10 ProactiveOWASP TOP 10 Proactive
OWASP TOP 10 Proactive
Abdessamad TEMMAR
 
2014 09-25-club-27001 iso 27034-presentation-v2.2
2014 09-25-club-27001 iso 27034-presentation-v2.22014 09-25-club-27001 iso 27034-presentation-v2.2
2014 09-25-club-27001 iso 27034-presentation-v2.2
Sébastien GIORIA
 
20090929 04 - Securité applicative, hacking et risque applicatif
20090929 04 - Securité applicative, hacking et risque applicatif20090929 04 - Securité applicative, hacking et risque applicatif
20090929 04 - Securité applicative, hacking et risque applicatif
LeClubQualiteLogicielle
 
Securite des Applications dans le Cloud
Securite des Applications dans le CloudSecurite des Applications dans le Cloud
Securite des Applications dans le Cloud
Sebastien Gioria
 
2011 02-08-ms tech-days-sdl-sgi-v02
2011 02-08-ms tech-days-sdl-sgi-v022011 02-08-ms tech-days-sdl-sgi-v02
2011 02-08-ms tech-days-sdl-sgi-v02
Sébastien GIORIA
 
La Sécurité Sur Le Web
La Sécurité Sur Le WebLa Sécurité Sur Le Web
La Sécurité Sur Le Web
Groupe Revolution 9
 

Similaire à Durcissement de code - Sécurité Applicative Web (20)

Sécurité des applications web: attaque et défense
Sécurité des applications web: attaque et défenseSécurité des applications web: attaque et défense
Sécurité des applications web: attaque et défense
 
Les principales failles de sécurité des applications web actuelles
Les principales failles de sécurité des applications web actuellesLes principales failles de sécurité des applications web actuelles
Les principales failles de sécurité des applications web actuelles
 
Owasp top 10 2010 Resist toulouse
Owasp top 10   2010  Resist toulouseOwasp top 10   2010  Resist toulouse
Owasp top 10 2010 Resist toulouse
 
2010 02 09 Ms Tech Days Owasp Asvs Sgi V01
2010 02 09 Ms Tech Days Owasp Asvs Sgi V012010 02 09 Ms Tech Days Owasp Asvs Sgi V01
2010 02 09 Ms Tech Days Owasp Asvs Sgi V01
 
Première rencontre d'owasp québec
Première rencontre d'owasp québecPremière rencontre d'owasp québec
Première rencontre d'owasp québec
 
Sécurisation d'un site internet
Sécurisation d'un site internetSécurisation d'un site internet
Sécurisation d'un site internet
 
Sécurité des Développements Webs et Mobiles
Sécurité des Développements Webs et MobilesSécurité des Développements Webs et Mobiles
Sécurité des Développements Webs et Mobiles
 
Les principales failles de sécurité des applications Web actuelles
Les principales failles de sécurité des applications Web actuellesLes principales failles de sécurité des applications Web actuelles
Les principales failles de sécurité des applications Web actuelles
 
Securitedesapplications 091011120426-phpapp02
Securitedesapplications 091011120426-phpapp02Securitedesapplications 091011120426-phpapp02
Securitedesapplications 091011120426-phpapp02
 
Starc by Exaprobe
Starc by ExaprobeStarc by Exaprobe
Starc by Exaprobe
 
GS Days 2017 - La sécurité des APIs
GS Days 2017 - La sécurité des APIsGS Days 2017 - La sécurité des APIs
GS Days 2017 - La sécurité des APIs
 
Atelier Technique RAPID7 ACSS 2018
Atelier Technique RAPID7 ACSS 2018Atelier Technique RAPID7 ACSS 2018
Atelier Technique RAPID7 ACSS 2018
 
Développement sécurisé
Développement sécuriséDéveloppement sécurisé
Développement sécurisé
 
OWASP TOP 10 Proactive
OWASP TOP 10 ProactiveOWASP TOP 10 Proactive
OWASP TOP 10 Proactive
 
2014 09-25-club-27001 iso 27034-presentation-v2.2
2014 09-25-club-27001 iso 27034-presentation-v2.22014 09-25-club-27001 iso 27034-presentation-v2.2
2014 09-25-club-27001 iso 27034-presentation-v2.2
 
20090929 04 - Securité applicative, hacking et risque applicatif
20090929 04 - Securité applicative, hacking et risque applicatif20090929 04 - Securité applicative, hacking et risque applicatif
20090929 04 - Securité applicative, hacking et risque applicatif
 
Securite des Applications dans le Cloud
Securite des Applications dans le CloudSecurite des Applications dans le Cloud
Securite des Applications dans le Cloud
 
2011 02-08-ms tech-days-sdl-sgi-v02
2011 02-08-ms tech-days-sdl-sgi-v022011 02-08-ms tech-days-sdl-sgi-v02
2011 02-08-ms tech-days-sdl-sgi-v02
 
La Sécurité Sur Le Web
La Sécurité Sur Le WebLa Sécurité Sur Le Web
La Sécurité Sur Le Web
 
SRI.pdf
SRI.pdfSRI.pdf
SRI.pdf
 

Durcissement de code - Sécurité Applicative Web

  • 1. Pourquoi durcir son code? Quand le faire? Comment s’y prendre? 12.06.2014 1er WebDay ESGI Paris Cyrille Grandval Consultant Sécurité Applicative Maxence Perrin Développeur PHP Sécurisé Durcissement de code
  • 2. Qui sommes nous? Cyrille Grandval Directeur général Consultant sécurité Applicative cgrandval@darkmira.fr @CyrilleGrandval linkedin.com/in/cyrillegrandval Maxence Perrin Développeur PHP sécurisé mperrin@darkmira.fr @Maxence_Perrin
  • 3. Darkmira Développement PHP sécurisé Confiance – Elitisme – Qualité Développement d’applications pérennes, fiables et sécurisées Industrialisation du développement • Bonnes pratiques • Méthodes de type Agiles • Frameworks Symfony et Zend www.darkmira.fr
  • 5. Quelques faits Pourquoi durcir son code? 2011 : Piratage du Playstation Network, 77 millions de comptes volés Juin 2014 : Piratage du système “Pay by Phone” à Nice pour le paiement des places de Parking Avril 2014 : Vol d’une partie des RIB des abonnés de MediaPart Février 2014 : Piratage des données personnelles des clients d’Orange, 800 000 comptes volés Janvier 2014 : vol de 4,6 millions de pseudos et numéros de téléphone de Snapchat Mars 2013 : 50 millions de mots de passes volés chez Evernote Avril 2014 : HeartBleed Faille de sécurité découverte dans OpenSSL qui affectent ⅔ des sites internet Avril 2014 : Piratage des données personnelles des clients d’Orange, 1,3 millions de comptes volés
  • 6. Risques et impacts d’une attaque Piratage Vol de données Altération de données Indisponibilité de l’application Vol de propriété intellectuelle Perte d’image Perte de confiance / crédibilité Perte financière Responsabilité pénale / civile DEPOT DE BILAN RISQUESIMPACTS
  • 7. Un très grand % de business sont basés sur une application Web Constat design dev test prod Coût PROACTIF REACTIF Application web Réseau système % attaques Source Gartner % budget 75% 25% 10% 90%
  • 8. Evolution des attaques • Basé sur les CVE http://cve.mitre.org/cve/ • Baisse de moitié du nombre de vulnérabilités jusqu’à 2011 • Augmentation jusqu’au niveau de 2009 à partir de 2012 • 90% des failles ont une sévérité de moyenne à élevée • Baisse significative des failles de sévérité élevée jusqu’à 2011 et stagnation
  • 9. Evolution des attaques mobiles 2012 2013 99 96 % Applications testées vulnérables 2012 2013 13 14 Vulnérabilités moyennes par application Source : Cenzic - Application Vulnerability Trends Report : 2014
  • 10. Contexte juridique Un accroissement des responsabilités des dirigeants face à la sécurité des informations numériques • + de protection des données • + de traçabilité • Nul n’est censé ignorer la loi • Sensibilisation du personnel interne / externe • Mettre l’entreprise en conformité avec la législation Engagement de la responsabilité civile et / ou pénale • Directive européenne : jusqu’à 5 ans d’emprisonnement et 300 000 euros d’amendes
  • 12. Présentation de l’OWASP OWASP : Open Web Application Security Project - Organisation mondiale à but non lucratif http://www.owasp.org Son rôle : sensibiliser à la sécurité applicative pour aider à prendre les bonnes décisions en matière de sécurité des applications Evènements et présence : • Des conférences à travers le monde • Des listes de diffusion spécifiques • Des chapitres locaux Liste des projets de l’OWASP : https://www.owasp.org/index.php/Category:OWASP_Project Des matériels : • 50% de documentations (Top10, Cheats Sheets, Normes, Guides, …) • 40% d’outils (Samy, ZAP) • 10% de code (Librairies)
  • 13. Cycle de vie de l’application Intégrer les préoccupations de sécurité dès le début du cycle et non à la fin Définition des besoins Détermination des besoins sécurité Revue de code sécurité Tests de sécurité Sécurité du déploiement Audit de sécurité Cycle de vie de développement Cycle de vie de sécurité Architecture et conception Développement Test Déploiement Maintenance Revue sécurité de conception
  • 14. Processus de contrôle de la sécurité d’une application web en 4 niveaux : • Niveau 0 (Superficiel) : critères minimums de vérification définie par chaque société • Niveau 1 (Opportuniste) : protège contre les failles faciles à découvrir • Niveau 2 (Standard) : défend contre les failles courantes avec un risque de modéré à sérieux • Niveau 3 (Avancé) : défend contre les failles avancées et démontre de bonnes pratiques de conception sécurisé Source : OWASP ASVS 2013 bêta - https://docs.google.com/document/d/1B5Ho1iapIEIgxdyua_A7TxwyrY-ts7qUz9NEdxj8tZ4/edit OWASP : Standard de Vérification de la Sécurité des Applications (2013) Qualifier l’application avec l’ASVS
  • 15. Qualifier l’application avec l’ASVS L’ASVS définit 13 groupes d’exigences de vérification et des points de vérification par groupes pour un ou plusieurs niveaux.
  • 17. Top 10 des attaques les plus répandues A1 - Injections A10 – Redirections et renvois non validés A4 - Références directes non sécurisées à un objet A7 – Manque de contrôle d’accès au niveau fonctionnel A2 - Violation de Gestion d'Authentification et de Session A5 – Mauvaise configuration Sécurité A3 - Cross-Site Scripting (XSS) A6 – Exposition de données sensibles A8 - Falsification de requête intersite (CSRF) A9 - Utilisation de composants avec des vulnérabilités connues Owasp Top 10 – 2013 • Liste des attaques les plus répandues par catégorie • Explication, exemples d’exploitations et contremesures • Document mis à jour tous les 3 ans Objectifs : 1/ Sensibiliser les acteurs du SI 2/ Fournir des techniques de bases pour se protéger
  • 18. Injection SQL Définition • Injection de code SQL • Altération de la requête d’origine Requête d’origine SELECT * FROM user WHERE login = ‘“ . $_POST[‘login’] . “‘ AND password = ‘“ . $_POST[‘password’] . “‘ Injection : ‘OR ‘1’ = ‘1 SELECT * FROM user WHERE login = ‘‘ OR ‘1’ = ‘1’ AND password = ‘‘ OR ‘1’ = ‘1‘
  • 19. Injection SQL • Faille toujours d’actualité • S’en prémunir Ne pas afficher vos messages d’erreurs Requête préparée, Procédure stockée • Démonstration fin de séance
  • 20. Définition Insertion de code malveillant (Javascript, VBScript, …) dans application Web Script interprété côté client Action possible : Vol de cookie de session mais pas que… Trois types d’attaque • Reflected • Permanent • DOM-based XSS
  • 21. XSS - Reflected Le code malveillant de l’attaquant est intégré sans contrôle, dans la page web par le serveur
  • 22. XSS - Permanent Le code malveillant de l’attaquant est stocké dans un backend puis retourné par le serveur dans la page web
  • 24. XSS – DOM based Le code malveillant de l’attaquant est intégré́ dans les données générées directement par le navigateur (côté client)
  • 25. Contre-mesures • Valider les données d’entrée • Encoder les données de sortie Quelques outils • OWASP ESAPI Project (https://www.owasp.org/index.php/ESAPI) • OWASP AntiSamy Project (https://www.owasp.org/index.php/Category:OWASP_AntiSamy_Project) • Librairies et bibliothèques par technologies XSS
  • 26. Chiffrez vos données Crypter : une arme de guerre • Jusqu’en 1996 (128 bits) • 2004 : Loi pour la confiance dans l’économie numérique Crypter n’est pas hasher Hashage salt statique / salt dynamique N’oubliez pas les utilisateurs • Impliquez l’utilisateur dans la sécurité • Conception sécurisée
  • 27. CSRF Définition Faire réaliser des actions à l’insu des utilisateurs Mise en œuvre • Utilisateur A est administrateur d’un site voyage et est connecté dessus • Grâce à un phishing, il se connecte sur le site de l’attaquant • Ce site comprend une image dont l’url est la page de modification d’un des voyages • Le navigateur de l’Utilisateur A charge l’url de l’image et donc la page de modification du voyage à son insu • L’utilisateur A ayant une session active sur son site, le prix du voyage est modifié
  • 28. CSRF Exploitation Balise IMG invisible (GET) <img src=http://myvoyage.com/voyage.php?id=78&action=modify&amount=10 width=”1” height=“1” /> Formulaire (POST) <form name=“form” method=“post” action=“http://myvoyage.com/voyage.php“> <input type=“hidden” name=“id” value=“78”> <input type=“hidden” name=“action” value=“modify”> <input type=“hidden” name=“amount” value=“10”> </form> <script>document.form.submit()</script>
  • 29. CSRF Contrer cette attaque • Jeton unique passé sur chaque action (formulaire, url) • Jeton limité dans le temps • Session limité dans le temps • Forcer une nouvelle authentification avant toute action critique • CAPTCHA • Vérifier le referer Quelques outils • OWASP CSRF Guard Project (https://www.owasp.org/index.php/Category:OWASP_CSRFGuard_Project) • OWASP CSRF Tester Project (https://www.owasp.org/index.php/Category:OWASP_CSRFTester_Project) Une attaque en cache une autre
  • 31. Démonstration Exemples d'une attaque SQL Injection • Code en PHP • Base de données MySQL • Site de voyage minimaliste -Liste des voyages -Information sur un voyage -Mon compte • Déroulement de l’attaque -Prise d’empreinte -Exploitation basique -Utilisation de l’outil sqlmap (http://sqlmap.org)
  • 33. Conclusion Pourquoi ne pas durcir le code (Les mythes) ? 1/ Ma société n’a pas d’informations sensibles 2/ Mon application est interne à mon entreprise 3/ Mon application est derrière un firewall et / ou utilise HTTPS 4/ Mes développeurs réalisent des applications sécurisées 5/ Les attaques Web ne sont exploitées que part une élite de hackers Si vous avez compris l’ironie de cette conclusion, vous êtes sur la bonne voie Continuez ;-)
  • 34. Conclusion Questions, Commentaires, Sujets de discussions ? Twitter : @Darkmira1 Facebook : darkmira Linkedin : darkmira