U6liser 
SonarQube 
pour 
la 
Sécurité 
Application Security Forum West 
Switzerland 
6 
Novembre 
2014 
Yverdon 
les 
bains 
Sébas&en 
Gioria 
Sebas6en.Gioria@owasp.org 
Chapter 
Leader 
& 
Evangelist 
OWASP 
France
2 
http://www.google.fr/#q=sebastien gioria 
‣ Innovation and Technology @Advens && 
Application Security Expert 
‣ OWASP France Leader & Founder & 
Evangelist, 
‣ OWASP ISO Project & OWASP SonarQube Project 
Leader 
‣ Application Security group leader for the 
CLUSIF 
‣ Proud father of youngs kids trying to hack my 
digital life. 
Twitter :@SPoint/@OWASP_France 
2
Agenda 
• L’analyse 
de 
code 
source 
• Qualité/Sécurité 
• SonarQube 
• Le 
projet 
OWASP 
SonarQube 
3
L’analyse 
de 
code 
source 
résumée
L’analyse 
de 
code 
source 
• Iden6fier 
toutes 
les 
occurrences 
d’une 
faille 
• Évaluer 
des 
facteurs 
contribuant 
à 
la 
sécurité 
• Étudier 
l’applica6on 
dans 
le 
détail 
• Détecter 
les 
erreurs 
d’implémenta6on 
sournoises
Analyse 
du 
code 
vs 
Test 
d’intrusion 
applica6f 
(pour 
un 
CISO) 
Top10 
Web 
Tests 
d’intrusion 
Analyse 
du 
code 
A1 
-­‐ 
Injec6on 
++ 
+++ 
A2 
– 
Viola6on 
de 
Session 
/ 
Authen6fica6on 
++ 
+ 
A3 
– 
Cross 
Site 
Scrip6ng 
+++ 
+++ 
A4 
– 
Référence 
Directes 
+ 
+++ 
A5 
– 
Mauvaise 
configura6on 
+ 
++ 
A6 
– 
Exposi6on 
de 
données 
++ 
+ 
A7 
– 
Probleme 
d’habilita6on 
fonc6onnelle 
+ 
+ 
A8 
-­‐ 
CSRF 
++ 
+ 
A9 
– 
U6lisa6on 
de 
Composants 
vulnérables 
+++ 
A10 
– 
Redirec6on 
et 
transferts 
+ 
+
L’ 
analyse 
de 
code 
ou 
le 
test 
d’intrusion 
pour 
un 
développeur
L’évolu6on 
du 
développement 
logiciel 
Gestionnaire de code 
Makefile" Intégration continue" Tests unitaires" Inspection continue" 
source"
Les 
7 
péchés 
capitaux 
du 
développeur
Duplica6on 
de 
code....
1x30 
ou 
10x3 
?
Mauvais 
Design
Super 
l’objet...
Non 
Respect 
des 
standards
Commentaire
Les 
tests 
unitaires 
? 
• En 
programma6on 
informa6que, 
le 
test 
unitaire 
(ou 
"T.U.") 
est 
une 
procédure 
permejant 
de 
vérifier 
le 
bon 
fonc6onnement 
d'une 
par6e 
précise 
d'un 
logiciel 
ou 
d'une 
por6on 
d'un 
programme 
(appelée 
« 
unité 
» 
ou 
« 
module 
»). 
(c) 
Wikipedia
7 
axes 
pour 
couvrir 
la 
qualité 
d’un 
code 
Architecture 
et 
Concep6on 
Code 
Source 
Code 
dupliqué 
Test 
unitaires 
Bugs 
Complexité 
Commentaires 
Règle 
de 
codage 
• Bugs 
• Non 
respect 
des 
standards 
de 
codage 
• Duplica6on 
de 
code 
• Manque 
de 
tests 
unitaires 
• Code 
trop 
complexe 
• Concep6on 
spagheq 
( 
mauvais 
design) 
• Trop 
ou 
pas 
assez 
de 
code 
commenté.
SonarQube 
• Plateforme 
centralisé 
de 
ges6on 
de 
la 
qualité 
: 
– Profils 
de 
qualité 
– Intégrable 
dans 
la 
chaine 
de 
build 
– Support 
de 
nombreux 
languages 
(C/C++, 
java, 
php, 
javascript, 
...) 
– Plugins/extensions 
disponibles 
– Ges6on 
de 
rapports 
et 
visualisa6on 
de 
l’évolu6on 
– Existe 
en 
version 
Open-­‐Source
SonarQube 
pour 
la 
sécurité 
applica6ve 
• S’intègre 
dans 
le 
SDLC 
– liens 
possible 
avec 
Jenkins/Hudson 
– Repor6ng 
sur 
les 
viola6ons 
– Possibilité 
d’ajouter 
des 
règles 
• Dispose 
de 
règles 
permejant 
de 
couvrir 
– non 
respect 
des 
regles 
de 
codage 
– découverte 
de 
bugs 
sécurité(XSS, 
SQl-­‐Injec6on)
SonarQube 
pour 
la 
sécurité 
applica6ve 
• Ce 
n’est 
pas 
un 
ou6l 
de 
revue 
de 
code 
! 
– Il 
fonc6onne 
sur 
la 
viola6on 
de 
règles; 
détec6on 
de 
pajerns 
uniquement 
• Il 
6re 
toute 
sa 
puissance 
– si 
vous 
disposez 
d’une 
poli6que 
de 
Secure 
Coding 
– si 
vous 
démarrer 
un 
nouveau 
projet 
• Il 
n’est 
pas 
“tres” 
orienté 
sécurité 
actuellement 
– peu 
de 
plugins 
de 
sécurité 
– pas 
de 
profils 
type 
pour 
les 
viola6ons 
de 
secure 
coding.
Le 
projet 
OWASP 
SonarQube 
• Collabora6on 
OWASP 
/ 
SonarSource 
– Mejre 
a 
disposi6on 
de 
la 
communauté 
un 
ensemble 
de 
règles, 
profils, 
et 
plugins 
pour 
analyser 
la 
sécurité 
avec 
SonarQube. 
• Plusieurs 
buts 
prévus 
– Livraison 
d’un 
profil 
OWASP 
Top10 
supporté 
et 
maintenu 
par 
le 
projet 
début 
Octobre 
2014 
vis 
a 
vis 
du 
langage 
Java. 
– Livraison 
d’autres 
profils 
(probablement 
en 
2015): 
• ASVS 
• ISO 
27034-­‐5 
• CERT 
Secure 
Coding 
– Développement 
de 
plugins 
spécifiques 
OWASP 
• pour 
les 
autres 
langages
Démo
License 
23 
@SPoint 
sebas6en.gioria@owasp.org

Analyser la sécurité de son code source avec SonarSource

  • 1.
    U6liser SonarQube pour la Sécurité Application Security Forum West Switzerland 6 Novembre 2014 Yverdon les bains Sébas&en Gioria Sebas6en.Gioria@owasp.org Chapter Leader & Evangelist OWASP France
  • 2.
    2 http://www.google.fr/#q=sebastien gioria ‣ Innovation and Technology @Advens && Application Security Expert ‣ OWASP France Leader & Founder & Evangelist, ‣ OWASP ISO Project & OWASP SonarQube Project Leader ‣ Application Security group leader for the CLUSIF ‣ Proud father of youngs kids trying to hack my digital life. Twitter :@SPoint/@OWASP_France 2
  • 3.
    Agenda • L’analyse de code source • Qualité/Sécurité • SonarQube • Le projet OWASP SonarQube 3
  • 4.
    L’analyse de code source résumée
  • 5.
    L’analyse de code source • Iden6fier toutes les occurrences d’une faille • Évaluer des facteurs contribuant à la sécurité • Étudier l’applica6on dans le détail • Détecter les erreurs d’implémenta6on sournoises
  • 6.
    Analyse du code vs Test d’intrusion applica6f (pour un CISO) Top10 Web Tests d’intrusion Analyse du code A1 -­‐ Injec6on ++ +++ A2 – Viola6on de Session / Authen6fica6on ++ + A3 – Cross Site Scrip6ng +++ +++ A4 – Référence Directes + +++ A5 – Mauvaise configura6on + ++ A6 – Exposi6on de données ++ + A7 – Probleme d’habilita6on fonc6onnelle + + A8 -­‐ CSRF ++ + A9 – U6lisa6on de Composants vulnérables +++ A10 – Redirec6on et transferts + +
  • 7.
    L’ analyse de code ou le test d’intrusion pour un développeur
  • 8.
    L’évolu6on du développement logiciel Gestionnaire de code Makefile" Intégration continue" Tests unitaires" Inspection continue" source"
  • 9.
    Les 7 péchés capitaux du développeur
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
    Non Respect des standards
  • 15.
  • 16.
    Les tests unitaires ? • En programma6on informa6que, le test unitaire (ou "T.U.") est une procédure permejant de vérifier le bon fonc6onnement d'une par6e précise d'un logiciel ou d'une por6on d'un programme (appelée « unité » ou « module »). (c) Wikipedia
  • 17.
    7 axes pour couvrir la qualité d’un code Architecture et Concep6on Code Source Code dupliqué Test unitaires Bugs Complexité Commentaires Règle de codage • Bugs • Non respect des standards de codage • Duplica6on de code • Manque de tests unitaires • Code trop complexe • Concep6on spagheq ( mauvais design) • Trop ou pas assez de code commenté.
  • 18.
    SonarQube • Plateforme centralisé de ges6on de la qualité : – Profils de qualité – Intégrable dans la chaine de build – Support de nombreux languages (C/C++, java, php, javascript, ...) – Plugins/extensions disponibles – Ges6on de rapports et visualisa6on de l’évolu6on – Existe en version Open-­‐Source
  • 19.
    SonarQube pour la sécurité applica6ve • S’intègre dans le SDLC – liens possible avec Jenkins/Hudson – Repor6ng sur les viola6ons – Possibilité d’ajouter des règles • Dispose de règles permejant de couvrir – non respect des regles de codage – découverte de bugs sécurité(XSS, SQl-­‐Injec6on)
  • 20.
    SonarQube pour la sécurité applica6ve • Ce n’est pas un ou6l de revue de code ! – Il fonc6onne sur la viola6on de règles; détec6on de pajerns uniquement • Il 6re toute sa puissance – si vous disposez d’une poli6que de Secure Coding – si vous démarrer un nouveau projet • Il n’est pas “tres” orienté sécurité actuellement – peu de plugins de sécurité – pas de profils type pour les viola6ons de secure coding.
  • 21.
    Le projet OWASP SonarQube • Collabora6on OWASP / SonarSource – Mejre a disposi6on de la communauté un ensemble de règles, profils, et plugins pour analyser la sécurité avec SonarQube. • Plusieurs buts prévus – Livraison d’un profil OWASP Top10 supporté et maintenu par le projet début Octobre 2014 vis a vis du langage Java. – Livraison d’autres profils (probablement en 2015): • ASVS • ISO 27034-­‐5 • CERT Secure Coding – Développement de plugins spécifiques OWASP • pour les autres langages
  • 22.
  • 23.
    License 23 @SPoint sebas6en.gioria@owasp.org