chapter meeting 17 février 2011 @ heig-vd yverdon-les-bains code source : soyez le premier à...
TRANSCRIPT
![Page 1: Chapter meeting 17 février 2011 @ HEIG-VD Yverdon-Les-Bains Code source : Soyez le premier à trouver vos failles de sécurité! Durée: 45 minutes Thomas](https://reader035.vdocuments.site/reader035/viewer/2022062622/551d9da2497959293b8d1fd9/html5/thumbnails/1.jpg)
Chapter meeting17 février 2011
@ HEIG-VD Yverdon-Les-Bains
Code source :Soyez le premier à trouver vos failles de sécurité!Durée: 45 minutes
Thomas HoferConsultant @ blue-infinity (Genève, Suisse)
![Page 2: Chapter meeting 17 février 2011 @ HEIG-VD Yverdon-Les-Bains Code source : Soyez le premier à trouver vos failles de sécurité! Durée: 45 minutes Thomas](https://reader035.vdocuments.site/reader035/viewer/2022062622/551d9da2497959293b8d1fd9/html5/thumbnails/2.jpg)
OWASP Switzerland – Geneva Chapter Meeting @ HEIG-VD (Yverdon-Les-Bains) – Feb.20112
Qui suis-je?
• Thomas Hofer• Consultant (blue-infinity, Genève)
• Compétences:– Analyse statique– Architecture de solutions– Développement (Java – Rails – PHP)
![Page 3: Chapter meeting 17 février 2011 @ HEIG-VD Yverdon-Les-Bains Code source : Soyez le premier à trouver vos failles de sécurité! Durée: 45 minutes Thomas](https://reader035.vdocuments.site/reader035/viewer/2022062622/551d9da2497959293b8d1fd9/html5/thumbnails/3.jpg)
OWASP Switzerland – Geneva Chapter Meeting @ HEIG-VD (Yverdon-Les-Bains) – Feb.20113
Agenda
Des moyens simples d’améliorer votre code!
1. Introduction1. Motivation2. Outils d’analyse statique
2. Recommendations1. Nos critères2. Outils sélectionnés
3. Informations complémentaires
![Page 4: Chapter meeting 17 février 2011 @ HEIG-VD Yverdon-Les-Bains Code source : Soyez le premier à trouver vos failles de sécurité! Durée: 45 minutes Thomas](https://reader035.vdocuments.site/reader035/viewer/2022062622/551d9da2497959293b8d1fd9/html5/thumbnails/4.jpg)
OWASP Switzerland – Geneva Chapter Meeting @ HEIG-VD (Yverdon-Les-Bains) – Feb.20114
Pourquoi ce projet?
• Le CERN est une cible de choix– Renom– Internet Exchange Point
• Mais: tout site web peut être ciblé par une attaque!
• Conséquences potentiellement sérieuses d’une attaque– Perte de données,– Accès à des informations confidentielles,– Dommages à l’image…
![Page 5: Chapter meeting 17 février 2011 @ HEIG-VD Yverdon-Les-Bains Code source : Soyez le premier à trouver vos failles de sécurité! Durée: 45 minutes Thomas](https://reader035.vdocuments.site/reader035/viewer/2022062622/551d9da2497959293b8d1fd9/html5/thumbnails/5.jpg)
OWASP Switzerland – Geneva Chapter Meeting @ HEIG-VD (Yverdon-Les-Bains) – Feb.20115
Quand se soucier de sécurité?
• Création / Gestion– Documents– Pages Web– Machines
• Services• Développement
– Logiciels– Applications Web
![Page 6: Chapter meeting 17 février 2011 @ HEIG-VD Yverdon-Les-Bains Code source : Soyez le premier à trouver vos failles de sécurité! Durée: 45 minutes Thomas](https://reader035.vdocuments.site/reader035/viewer/2022062622/551d9da2497959293b8d1fd9/html5/thumbnails/6.jpg)
OWASP Switzerland – Geneva Chapter Meeting @ HEIG-VD (Yverdon-Les-Bains) – Feb.20116
Développement et sécurité
• Formation (avant)
• Revue de code (juste après)• Scan de vulnérabilités (après)
![Page 7: Chapter meeting 17 février 2011 @ HEIG-VD Yverdon-Les-Bains Code source : Soyez le premier à trouver vos failles de sécurité! Durée: 45 minutes Thomas](https://reader035.vdocuments.site/reader035/viewer/2022062622/551d9da2497959293b8d1fd9/html5/thumbnails/7.jpg)
OWASP Switzerland – Geneva Chapter Meeting @ HEIG-VD (Yverdon-Les-Bains) – Feb.20117
Développement et sécurité
• Formation (avant)• Analyse statique de code source (pendant et
après)• Revue de code (juste après)• Scan de vulnérabilités (après)
![Page 8: Chapter meeting 17 février 2011 @ HEIG-VD Yverdon-Les-Bains Code source : Soyez le premier à trouver vos failles de sécurité! Durée: 45 minutes Thomas](https://reader035.vdocuments.site/reader035/viewer/2022062622/551d9da2497959293b8d1fd9/html5/thumbnails/8.jpg)
OWASP Switzerland – Geneva Chapter Meeting @ HEIG-VD (Yverdon-Les-Bains) – Feb.20118
La sécurité et moi
• Que pouvez-VOUS faire…• … sans dépasser les échéances imposées?
• Analyse statique• Le plus tôt un bug est trouvé, le moins cher il
coûte!
![Page 9: Chapter meeting 17 février 2011 @ HEIG-VD Yverdon-Les-Bains Code source : Soyez le premier à trouver vos failles de sécurité! Durée: 45 minutes Thomas](https://reader035.vdocuments.site/reader035/viewer/2022062622/551d9da2497959293b8d1fd9/html5/thumbnails/9.jpg)
OWASP Switzerland – Geneva Chapter Meeting @ HEIG-VD (Yverdon-Les-Bains) – Feb.20119
Analyse statique de code source
Un analyseur statique de code source:• Lira votre code mais:
… ne l’exécutera et ne le compilera pas!• Cherchera des bugs et failles possibles
– Sécurité– Fiabilité– Fonctionnalité
![Page 10: Chapter meeting 17 février 2011 @ HEIG-VD Yverdon-Les-Bains Code source : Soyez le premier à trouver vos failles de sécurité! Durée: 45 minutes Thomas](https://reader035.vdocuments.site/reader035/viewer/2022062622/551d9da2497959293b8d1fd9/html5/thumbnails/10.jpg)
OWASP Switzerland – Geneva Chapter Meeting @ HEIG-VD (Yverdon-Les-Bains) – Feb.201110
Que peuvent-ils faire?
Un analyseur statique de code source peut:• Chercher des erreurs connues et communes• Eventuellement, proposer des solutions
• Aider à trouver des bugs…• Ils trouvent toutes sortes de bugs, pas
uniquement liés à la sécurité
![Page 11: Chapter meeting 17 février 2011 @ HEIG-VD Yverdon-Les-Bains Code source : Soyez le premier à trouver vos failles de sécurité! Durée: 45 minutes Thomas](https://reader035.vdocuments.site/reader035/viewer/2022062622/551d9da2497959293b8d1fd9/html5/thumbnails/11.jpg)
OWASP Switzerland – Geneva Chapter Meeting @ HEIG-VD (Yverdon-Les-Bains) – Feb.201111
Que ne peuvent-ils pas faire?
Un analyseur statique ne peut pas:• Réparer les bugs « automagiquement »
• Trouver TOUS les bugs (i.e. faux positifs)• Ne trouver QUE des bugs (i.e. faux négatifs)
![Page 12: Chapter meeting 17 février 2011 @ HEIG-VD Yverdon-Les-Bains Code source : Soyez le premier à trouver vos failles de sécurité! Durée: 45 minutes Thomas](https://reader035.vdocuments.site/reader035/viewer/2022062622/551d9da2497959293b8d1fd9/html5/thumbnails/12.jpg)
OWASP Switzerland – Geneva Chapter Meeting @ HEIG-VD (Yverdon-Les-Bains) – Feb.201112
Agenda
Des moyens simples d’améliorer votre code!
1. Introduction1. Motivation2. Outils d’analyse statique
2. Recommendations1. Nos critères2. Outils sélectionnés
3. Informations complémentaires
![Page 13: Chapter meeting 17 février 2011 @ HEIG-VD Yverdon-Les-Bains Code source : Soyez le premier à trouver vos failles de sécurité! Durée: 45 minutes Thomas](https://reader035.vdocuments.site/reader035/viewer/2022062622/551d9da2497959293b8d1fd9/html5/thumbnails/13.jpg)
OWASP Switzerland – Geneva Chapter Meeting @ HEIG-VD (Yverdon-Les-Bains) – Feb.201113
Nos critères / Exigences
• Des résultats rapides• Peu de fausses alertes• Facilité d’utilisation
• Au moins quelques résultats…
![Page 14: Chapter meeting 17 février 2011 @ HEIG-VD Yverdon-Les-Bains Code source : Soyez le premier à trouver vos failles de sécurité! Durée: 45 minutes Thomas](https://reader035.vdocuments.site/reader035/viewer/2022062622/551d9da2497959293b8d1fd9/html5/thumbnails/14.jpg)
OWASP Switzerland – Geneva Chapter Meeting @ HEIG-VD (Yverdon-Les-Bains) – Feb.2011
14
Aperçu des outils sélectionnés
• C / C++– Flawfinder– RATS– Coverity
• Python– RATS– pychecker– pylint
• Perl– Perl::Critic– RATS
• Java– FindBugs– CodePro Analyser
• PHP– Pixy– RATS
![Page 15: Chapter meeting 17 février 2011 @ HEIG-VD Yverdon-Les-Bains Code source : Soyez le premier à trouver vos failles de sécurité! Durée: 45 minutes Thomas](https://reader035.vdocuments.site/reader035/viewer/2022062622/551d9da2497959293b8d1fd9/html5/thumbnails/15.jpg)
OWASP Switzerland – Geneva Chapter Meeting @ HEIG-VD (Yverdon-Les-Bains) – Feb.201115
Flawfinder
• C / C++• Freeware / Unix• Appel à des fonctions communément mal
utilisées
• http://cern.ch/security/recommendations/en/codetools/flawfinder.shtml
![Page 16: Chapter meeting 17 février 2011 @ HEIG-VD Yverdon-Les-Bains Code source : Soyez le premier à trouver vos failles de sécurité! Durée: 45 minutes Thomas](https://reader035.vdocuments.site/reader035/viewer/2022062622/551d9da2497959293b8d1fd9/html5/thumbnails/16.jpg)
OWASP Switzerland – Geneva Chapter Meeting @ HEIG-VD (Yverdon-Les-Bains) – Feb.201116
FindBugs
• Java• Freeware / Plugin Eclipse• Très flexible, possibilité de définir des règles
soi-même
• http://cern.ch/security/recommendations/en/codetools/findbugs.shtml
![Page 17: Chapter meeting 17 février 2011 @ HEIG-VD Yverdon-Les-Bains Code source : Soyez le premier à trouver vos failles de sécurité! Durée: 45 minutes Thomas](https://reader035.vdocuments.site/reader035/viewer/2022062622/551d9da2497959293b8d1fd9/html5/thumbnails/17.jpg)
OWASP Switzerland – Geneva Chapter Meeting @ HEIG-VD (Yverdon-Les-Bains) – Feb.201117
FindBugs
![Page 18: Chapter meeting 17 février 2011 @ HEIG-VD Yverdon-Les-Bains Code source : Soyez le premier à trouver vos failles de sécurité! Durée: 45 minutes Thomas](https://reader035.vdocuments.site/reader035/viewer/2022062622/551d9da2497959293b8d1fd9/html5/thumbnails/18.jpg)
OWASP Switzerland – Geneva Chapter Meeting @ HEIG-VD (Yverdon-Les-Bains) – Feb.201118
CodePro Analytix
• Java• Freeware / Google Web Toolkit• Très flexible, possibilité de définir des règles
soi-même
• http://code.google.com/javadevtools/codepro/doc/index.html
![Page 19: Chapter meeting 17 février 2011 @ HEIG-VD Yverdon-Les-Bains Code source : Soyez le premier à trouver vos failles de sécurité! Durée: 45 minutes Thomas](https://reader035.vdocuments.site/reader035/viewer/2022062622/551d9da2497959293b8d1fd9/html5/thumbnails/19.jpg)
OWASP Switzerland – Geneva Chapter Meeting @ HEIG-VD (Yverdon-Les-Bains) – Feb.201119
Perl::Critic
• perl• Freeware / Unix – Module perl• Best Practices: style et sécurité
• Demo• http
://cern.ch/security/recommendations/en/codetools/perl_critic.shtml
![Page 20: Chapter meeting 17 février 2011 @ HEIG-VD Yverdon-Les-Bains Code source : Soyez le premier à trouver vos failles de sécurité! Durée: 45 minutes Thomas](https://reader035.vdocuments.site/reader035/viewer/2022062622/551d9da2497959293b8d1fd9/html5/thumbnails/20.jpg)
OWASP Switzerland – Geneva Chapter Meeting @ HEIG-VD (Yverdon-Les-Bains) – Feb.201120
Pixy
• PHP• Freeware / Unix• XSS & SQLi
• http://cern.ch/security/recommendations/en/codetools/pixy.shtml
![Page 21: Chapter meeting 17 février 2011 @ HEIG-VD Yverdon-Les-Bains Code source : Soyez le premier à trouver vos failles de sécurité! Durée: 45 minutes Thomas](https://reader035.vdocuments.site/reader035/viewer/2022062622/551d9da2497959293b8d1fd9/html5/thumbnails/21.jpg)
OWASP Switzerland – Geneva Chapter Meeting @ HEIG-VD (Yverdon-Les-Bains) – Feb.201121
RATS
• C / C++ / Perl, (et partiellement) Python, PHP• Freeware• Appel à des fonctions communément mal
utilisées
• http://cern.ch/security/recommendations/en/codetools/rats.shtml
![Page 22: Chapter meeting 17 février 2011 @ HEIG-VD Yverdon-Les-Bains Code source : Soyez le premier à trouver vos failles de sécurité! Durée: 45 minutes Thomas](https://reader035.vdocuments.site/reader035/viewer/2022062622/551d9da2497959293b8d1fd9/html5/thumbnails/22.jpg)
OWASP Switzerland – Geneva Chapter Meeting @ HEIG-VD (Yverdon-Les-Bains) – Feb.201122
Agenda
Des moyens simples d’améliorer votre code!
1. Introduction1. Motivation2. Outils d’analyse statique
2. Recommendations1. Nos critères2. Outils sélectionnés
3. Informations complémentaires
![Page 23: Chapter meeting 17 février 2011 @ HEIG-VD Yverdon-Les-Bains Code source : Soyez le premier à trouver vos failles de sécurité! Durée: 45 minutes Thomas](https://reader035.vdocuments.site/reader035/viewer/2022062622/551d9da2497959293b8d1fd9/html5/thumbnails/23.jpg)
OWASP Switzerland – Geneva Chapter Meeting @ HEIG-VD (Yverdon-Les-Bains) – Feb.201123
Mais encore?
• « Bon, ben maintenant que j’ai utilisé tel outil, je suis tranquille… »
• Les outils ne suffisent pas!• Même les meilleurs outils passeront à côté
des erreurs les plus complexes!• Les projets les plus sensibles méritent une
revue de code « à la main »!
![Page 24: Chapter meeting 17 février 2011 @ HEIG-VD Yverdon-Les-Bains Code source : Soyez le premier à trouver vos failles de sécurité! Durée: 45 minutes Thomas](https://reader035.vdocuments.site/reader035/viewer/2022062622/551d9da2497959293b8d1fd9/html5/thumbnails/24.jpg)
OWASP Switzerland – Geneva Chapter Meeting @ HEIG-VD (Yverdon-Les-Bains) – Feb.201124
A Fool with a Tool is still a Fool!
• « A fool with a tool is still a fool! », D. Wheeler
• L’extrait de code suivant a été trouvé dans la source de RealPlayer, en 2005. (CVE-2005-0455)
char tmp [256]; /* Flawfinder : ignore */strcpy (tmp , pScreenSize ); /* Flawfinder : ignore */
![Page 25: Chapter meeting 17 février 2011 @ HEIG-VD Yverdon-Les-Bains Code source : Soyez le premier à trouver vos failles de sécurité! Durée: 45 minutes Thomas](https://reader035.vdocuments.site/reader035/viewer/2022062622/551d9da2497959293b8d1fd9/html5/thumbnails/25.jpg)
OWASP Switzerland – Geneva Chapter Meeting @ HEIG-VD (Yverdon-Les-Bains) – Feb.201125
Plus d’informations
• http://cern.ch/security/recommendations/en/code_tools.shtml
– Présentation des outils,– Conseils d’installation, configuration et utilisation– Explication de certaines failles communes– Conseils pour le développement d’applications
plus sûres…
![Page 26: Chapter meeting 17 février 2011 @ HEIG-VD Yverdon-Les-Bains Code source : Soyez le premier à trouver vos failles de sécurité! Durée: 45 minutes Thomas](https://reader035.vdocuments.site/reader035/viewer/2022062622/551d9da2497959293b8d1fd9/html5/thumbnails/26.jpg)
OWASP Switzerland – Geneva Chapter Meeting @ HEIG-VD (Yverdon-Les-Bains) – Feb.201126
Questions?
© flickr.com
/people/eleaf
![Page 27: Chapter meeting 17 février 2011 @ HEIG-VD Yverdon-Les-Bains Code source : Soyez le premier à trouver vos failles de sécurité! Durée: 45 minutes Thomas](https://reader035.vdocuments.site/reader035/viewer/2022062622/551d9da2497959293b8d1fd9/html5/thumbnails/27.jpg)
OWASP Switzerland – Geneva Chapter Meeting @ HEIG-VD (Yverdon-Les-Bains) – Feb.201127
Merci!
Pour me contacter: