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
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"
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