SlideShare une entreprise Scribd logo
Par	
  Sébas)en	
  Gioria	
  et	
  Freddy	
  Mallet	
  
La	
  quête	
  du	
  code	
  source	
  
maintenable,	
  fiable	
  et	
  sécurisé	
  
	
  
Sébas7en	
  Gioria	
  
•  h:p://www.google.fr/#q=sebas7en	
  gioria	
  
•  Innova7on	
  and	
  Technology	
  @Advens	
  &&	
  	
  Applica7on	
  
Security	
  Expert	
  
•  OWASP	
  France	
  Leader	
  &	
  Founder	
  &	
  Evangelist,	
  OWASP	
  ISO	
  
Project	
  &	
  OWASP	
  SonarQube	
  Project	
  Leader	
  
•  Applica7on	
  Security	
  group	
  leader	
  for	
  the	
  CLUSIF	
  
•  Proud	
  father	
  of	
  youngs	
  kids	
  trying	
  to	
  hack	
  my	
  digital	
  life.	
  	
  
@Spoint	
  et	
  @OWASP_France	
  	
  
Sebas7en.gioria@owasp.org	
  
Freddy	
  Mallet	
  
•  Créateur	
  de	
  la	
  plateforme	
  SonarQube	
  	
  
•  Co-­‐fondateur	
  de	
  la	
  société	
  SonarSource	
  
•  @FreddyMallet	
  
•  freddy.mallet@sonarsource.com	
  
Agenda	
  
•  Enjeux	
  autour	
  de	
  l’analyse	
  du	
  code	
  source	
  
•  Tout	
  ce	
  que	
  le	
  code	
  source	
  peut	
  dire	
  
•  Mise	
  en	
  œuvre	
  méthodologique	
  
•  SonarQube	
  /	
  projet	
  OWASP	
  /	
  Demo	
  
4	
  
Enjeux	
  autour	
  de	
  l’analyse	
  du	
  
code	
  source	
  
Enjeux	
  autour	
  de	
  l’analyse	
  du	
  code	
  source	
  
	
  
Beaucoup	
  de	
  défauts	
  pouvant	
  conduire	
  à	
  des	
  
problèmes	
  de	
  maintenabilité,	
  de	
  stabilité	
  et	
  de	
  
sécurité	
  peuvent	
  être	
  détectés	
  automa7quement.	
  
	
  
Et	
  tout	
  par7culièrement	
  les	
  plus	
  sournois	
  
Approche	
  boîte	
  noire	
  VS	
  
boîte	
  blanche	
  
Top10	
  Web	
   Tests	
  d’intrusion	
   Analyse	
  du	
  code	
  
A1	
  -­‐	
  Injec7on	
   ++	
   +++	
  
A2	
  –	
  Viola7on	
  de	
  Session	
  /	
  
Authen7fica7on	
  	
  
++	
   +	
  
A3	
  –	
  Cross	
  Site	
  Scrip7ng	
  	
   +++	
   +++	
  
A4	
  –	
  Références	
  Directes	
  	
   +	
   +++	
  
A5	
  –	
  Mauvaise	
  configura7on	
  	
  	
  	
   +	
   ++	
  
A6	
  –	
  Exposi7on	
  de	
  données	
  	
   ++	
   +	
  
A7	
  –	
  Probleme	
  d’habilita7on	
  
fonc7onnelle	
  	
  
+	
   +	
  
A8	
  -­‐	
  CSRF	
  	
   ++	
   +	
  
A9	
  –	
  U7lisa7on	
  de	
  Composants	
  
vulnérables	
  
+++	
  
A10	
  –	
  Redirec7on	
  et	
  transferts	
  	
   +	
   +	
  
L’	
  analyse	
  de	
  code	
  ou	
  le	
  test	
  d’intrusion	
  du	
  
point	
  de	
  vue	
  du	
  développeur	
  ?	
  
L’évolu7on	
  du	
  
développement	
  logiciel	
  
Vi / Emacs
Makefile
Version
Control
Building
Tools
Ticket
Tracking
Continuous
Integration
Refactoring
From the IDE
Unit Tests
Continuous
Inspection
Tout	
  ce	
  que	
  le	
  code	
  source	
  
peut	
  dire	
  
Les	
  principaux	
  types	
  
de	
  défauts	
  
Maintenabilité
???
Fiabilité
Multi-threadings, null pointers, buffer overflows, unclosed resources, …
Sécurité
OWASP Top 10, SANS TOP 25, …
Exemples	
  liés	
  à	
  la	
  
sécurité	
  
•  Injec7on	
  SQL,	
  LDAP,	
  …	
  
•  Login/mot	
  de	
  passe	
  en	
  dur	
  
•  U7lisa7on	
  d’algorithmes	
  de	
  hashage	
  trop	
  
faibles:	
  MD5,	
  SHA1,	
  …	
  
•  Injec7on	
  de	
  code	
  
•  Redirec7on	
  web	
  vers	
  un	
  site	
  inconnu	
  
•  …	
  
Exemples	
  liés	
  à	
  la	
  
fiabilité	
  
•  Déréférencement	
  de	
  pointeurs	
  null	
  
•  Débordement	
  d’en7er	
  
•  Condi7ons	
  invalides	
  
•  Assigna7on	
  d’une	
  variable	
  à	
  elle	
  même	
  
•  Ressources	
  non	
  libérées	
  
•  Assigna7on	
  d’une	
  valeur	
  jamais	
  u7lisée	
  	
  
•  …	
  
Quid	
  de	
  la	
  maintenabilité	
  ?	
  
•  ?	
  
•  ?	
  
•  ?	
  
•  ?	
  
•  ?	
  
•  ?	
  
Duplica7on	
  de	
  code	
  
Que	
  choisir	
  entre	
  la	
  peste	
  et	
  le	
  choléra	
  ?	
  
Mauvaise	
  distribu7on	
  de	
  la	
  
complexité	
  
Vaut-­‐il	
  mieux	
  une	
  méthode	
  d’une	
  complexité	
  
de	
  30	
  ou	
  10	
  méthodes	
  d’une	
  complexité	
  de	
  3	
  ?	
  
Pas	
  ou	
  peu	
  de	
  tests	
  unitaires	
  	
  
Mauvais	
  Design	
  
Quel	
  classe/package	
  	
  
est	
  responsable	
  de	
  quoi	
  ?	
  
Non	
  respect	
  des	
  standards	
  
Comme	
  par	
  exemple	
  la	
  stratégie	
  	
  
de	
  ges7on	
  des	
  excep7ons	
  
Pas	
  ou	
  peu	
  de	
  commentaires	
  
Ce:e	
  expression	
  régulière	
  “match”	
  quoi	
  	
  
par	
  exemple	
  ?	
  
Quid	
  de	
  la	
  maintenabilité	
  
•  Duplica7on	
  de	
  code	
  
•  Mauvaise	
  distribu7on	
  de	
  la	
  complexité	
  
•  Peu	
  ou	
  pas	
  de	
  tests	
  unitaires	
  
•  Mauvais	
  design	
  
•  Non	
  respect	
  des	
  standards	
  
•  Pas	
  ou	
  peu	
  de	
  commentaires	
  
Mise	
  en	
  oeuvre	
  
méthodologique	
  
Approche	
  
tradi7onnelle	
  
•  Retour	
  trop	
  tardif	
  
•  Manque	
  d’implica)on	
  des	
  
développeurs	
  
•  Pushback	
  de	
  ces	
  derniers	
  
•  Pas	
  de	
  réelle	
  douane	
  
applica7ve	
  
•  Ou)ls,	
  processus	
  et	
  personnes	
  
différentes	
  pour	
  chasser	
  les	
  
différents	
  types	
  de	
  défauts	
  
Comment	
  rembourser	
  la	
  
de:e	
  ?	
  
•  Le	
  montant	
  total	
  peut	
  être	
  déprimant	
  
•  Faut-­‐il	
  demander	
  un	
  budget	
  dédié	
  ?	
  
•  Le	
  risque	
  d’injec)on	
  d’une	
  régression	
  
fonc)onnelle	
  existe	
  
•  Ce	
  n’est	
  pas	
  très	
  “fun”	
  !	
  
Ce	
  qu’il	
  faut	
  changer	
  
•  La	
  boucle	
  de	
  rétroac7on	
  doit	
  être	
  beaucoup	
  
plus	
  rapide	
  
•  Une	
  douane	
  applica7ve	
  	
  
non	
  négociable	
  doit	
  exister	
  
•  Les	
  développeurs	
  doivent	
  être	
  au	
  coeur	
  du	
  
processus	
  
•  Le	
  coût	
  doit	
  être	
  non	
  significa7f	
  
•  L’approche	
  doit	
  être	
  unifiée	
  
Se	
  focaliser	
  sur	
  la	
  fuite	
  
La Quete du code source fiable et sécurisé - GSDAYS 2015
SonarQube	
  
OWASP	
  
Demo	
  	
  
SonarQube	
  
•  Intégrable	
  dans	
  la	
  chaine	
  de	
  build	
  
•  Support	
  de	
  nombreux	
  languages:	
  C/C++,	
  Java,	
  
PHP,	
  JavaScript,	
  COBOL,	
  C#,	
  PL/SQL,	
  …	
  
•  Support	
  du	
  concept	
  de	
  douane	
  applica7ve	
  
•  Extensible:	
  nombreux	
  plugins	
  
•  Ges7on	
  temporelle	
  des	
  défauts	
  
•  Open-­‐Source	
  
SonarQube	
  pour	
  la	
  
sécurité	
  applica7ve	
  
•  S’intègre	
  dans	
  le	
  SDLC	
  
– liens	
  possible	
  avec	
  Jenkins/Hudson/Bamboo	
  
– Repor7ng	
  sur	
  les	
  défauts	
  
– Possibilité	
  d’ajouter	
  des	
  règles	
  (en	
  XPath)	
  
•  Dispose	
  de	
  règles	
  perme:ant	
  de	
  couvrir	
  
– non	
  respect	
  des	
  regles	
  de	
  codage	
  
– découverte	
  de	
  bugs	
  sécurité(XSS,	
  SQl-­‐Injec7on)	
  
SonarQube	
  pour	
  la	
  
sécurité	
  applica7ve	
  
•  Ce	
  n’est	
  pas	
  un	
  ou7l	
  de	
  revue	
  de	
  code	
  !	
  
– Il	
  fonc7onne	
  sur	
  la	
  viola7on	
  de	
  règles;	
  détec7on	
  de	
  
pa:erns	
  uniquement	
  
•  Il	
  	
  7re	
  toute	
  sa	
  puissance	
  	
  
– si	
  vous	
  disposez	
  d’une	
  poli7que	
  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	
  viola7ons	
  de	
  secure	
  
coding.	
  
Le	
  projet	
  OWASP	
  
SonarQube	
  
•  Collabora7on	
  OWASP	
  /	
  SonarSource	
  
–  Me:re	
  a	
  disposi7on	
  de	
  la	
  communauté	
  un	
  ensemble	
  de	
  
règles,	
  profils,	
  et	
  plugins	
  pour	
  analyser	
  la	
  sécurité	
  avec	
  
SonarQube.	
  
•  Plusieurs	
  objec7fs	
  prévus	
  
–  Lier	
  les	
  règles	
  au	
  référen7el	
  MITRE	
  CWE	
  	
  
–  Tagguers	
  les	
  règles	
  suivant	
  les	
  catégories	
  OWASP	
  Top	
  10	
  
2013	
  
–  Développement	
  de	
  nouvelles	
  règles	
  “sécurité”	
  
–  Nouveau	
  widget	
  pour	
  offrir	
  une	
  perspec7ve	
  “sécurité”	
  sur	
  
le	
  code	
  source	
  
–  Etendre	
  ces	
  objec7fs	
  à	
  tous	
  les	
  plugins	
  langage	
  
La Quete du code source fiable et sécurisé - GSDAYS 2015
35	
  
@Spoint
@FreddyMallet
@OWASPSonarQube
@OWASP_France

Contenu connexe

PDF
Securing your API and mobile application - API Connection FR
Sebastien Gioria
 
PPTX
Securite des Applications dans le Cloud
Sebastien Gioria
 
PDF
SonarQube et la Sécurité
Sébastien GIORIA
 
PPTX
L'analyse de code au service de la qualité
Stephane Leclercq
 
PDF
Securite applicative et SDLC - OWASP Quebec - 15 avril 2014
Patrick Leclerc
 
PPTX
Sécurité des Développements Webs et Mobiles
Phonesec
 
PPTX
Les 5 risques les plus critiques des applications Web selon l'OWASP
yaboukir
 
PPTX
Les principales failles de sécurité des applications Web actuelles
Xavier Kress
 
Securing your API and mobile application - API Connection FR
Sebastien Gioria
 
Securite des Applications dans le Cloud
Sebastien Gioria
 
SonarQube et la Sécurité
Sébastien GIORIA
 
L'analyse de code au service de la qualité
Stephane Leclercq
 
Securite applicative et SDLC - OWASP Quebec - 15 avril 2014
Patrick Leclerc
 
Sécurité des Développements Webs et Mobiles
Phonesec
 
Les 5 risques les plus critiques des applications Web selon l'OWASP
yaboukir
 
Les principales failles de sécurité des applications Web actuelles
Xavier Kress
 

Tendances (20)

PDF
OWASP TOP 10 Proactive
Abdessamad TEMMAR
 
PDF
2013 03-01 automatiser les tests sécurité
Sébastien GIORIA
 
PPTX
Durcissement de code - Sécurité Applicative Web
Cyrille Grandval
 
PPTX
Présentation Top10 CEGID Lyon
Sébastien GIORIA
 
PPTX
Sécurité des applications Web
Klee Group
 
PDF
Sécurité des applications web
Guillaume Grégoire
 
PDF
OWASP Quebec: "Security Stories" par Guillaume Croteau
Patrick Leclerc
 
PDF
Analyser la sécurité de son code source avec SonarSource
Sébastien GIORIA
 
PDF
OWASP Top10 2013 - Présentation aux RSSIA 2013
Sébastien GIORIA
 
PDF
Sécurité des applications web: attaque et défense
Antonio Fontes
 
PPTX
Owasp top 10 2010 Resist toulouse
Sébastien GIORIA
 
PDF
Sécurité des Applications WEB -LEVEL1
Tarek MOHAMED
 
PDF
ASFWS 2012 - Les utilités d’un pare-feu applicatif Web (WAF) par Jonathan Marcil
Cyber Security Alliance
 
PDF
Les menaces applicatives
Bee_Ware
 
PDF
La sécurité applicative par le design
Christophe Villeneuve
 
PDF
Les principales failles de sécurité des applications web actuelles
Bee_Ware
 
PPT
2010 02 09 Ms Tech Days Owasp Asvs Sgi V01
Sébastien GIORIA
 
PPTX
Introduction vulnérabilité web
davystoffel
 
PDF
Comprendre la securite web
Christophe Villeneuve
 
PPT
Failles de sécurité
Guillaume Harry
 
OWASP TOP 10 Proactive
Abdessamad TEMMAR
 
2013 03-01 automatiser les tests sécurité
Sébastien GIORIA
 
Durcissement de code - Sécurité Applicative Web
Cyrille Grandval
 
Présentation Top10 CEGID Lyon
Sébastien GIORIA
 
Sécurité des applications Web
Klee Group
 
Sécurité des applications web
Guillaume Grégoire
 
OWASP Quebec: "Security Stories" par Guillaume Croteau
Patrick Leclerc
 
Analyser la sécurité de son code source avec SonarSource
Sébastien GIORIA
 
OWASP Top10 2013 - Présentation aux RSSIA 2013
Sébastien GIORIA
 
Sécurité des applications web: attaque et défense
Antonio Fontes
 
Owasp top 10 2010 Resist toulouse
Sébastien GIORIA
 
Sécurité des Applications WEB -LEVEL1
Tarek MOHAMED
 
ASFWS 2012 - Les utilités d’un pare-feu applicatif Web (WAF) par Jonathan Marcil
Cyber Security Alliance
 
Les menaces applicatives
Bee_Ware
 
La sécurité applicative par le design
Christophe Villeneuve
 
Les principales failles de sécurité des applications web actuelles
Bee_Ware
 
2010 02 09 Ms Tech Days Owasp Asvs Sgi V01
Sébastien GIORIA
 
Introduction vulnérabilité web
davystoffel
 
Comprendre la securite web
Christophe Villeneuve
 
Failles de sécurité
Guillaume Harry
 
Publicité

En vedette (20)

PPTX
Audit technique de code
Mehdi TAZI
 
PDF
Join(sql)
인 이
 
PPTX
Integrated Compliance
Kimberly Simon MBA
 
PDF
Devops mycode devoxx-france-2015-v2
waizou
 
PDF
Whitepaper - Application Delivery in PCI DSS Compliant Environments
Jason Dover
 
PDF
PCI DSS Success: Achieve Compliance and Increase Web Application Security
Citrix
 
PPTX
Presentation_Borne
P. Neil Borne CISSP,CEH,CHFI
 
PPT
Writing Secure Code – Threat Defense
amiable_indian
 
PDF
Monitoring threats for pci compliance
Shiva Hullavarad
 
PPTX
An Introduction to PCI Compliance on IBM Power Systems
HelpSystems
 
PDF
PCI-DSS_Overview
sameh Abulfotooh
 
PDF
Work With Federal Agencies? Here's What You Should Know About FedRAMP Assessm...
Schellman & Company
 
PDF
How the latest trends in data security can help your data protection strategy...
Ulf Mattsson
 
PDF
Determining Scope for PCI DSS Compliance
Schellman & Company
 
PDF
Reduce PCI Scope - Maximise Conversion - Whitepaper
Shaun O'keeffe
 
PPTX
Top PCI Pitfalls and How to Avoid Them: The QSA’s Perspective
AlgoSec
 
PDF
PCI Compliance NOT for Dummies epb 30MAR2016
Erika Powell-Burson, MSIA, CISSP, CISA
 
PPTX
PCI DSS 3.2
Kimberly Simon MBA
 
PPTX
Reaching PCI Nirvana: Ensure a Successful Audit & Maintain Continuous Compliance
AlgoSec
 
PPTX
CRS Company Overview -Feb 6 2017
Joseph John
 
Audit technique de code
Mehdi TAZI
 
Join(sql)
인 이
 
Integrated Compliance
Kimberly Simon MBA
 
Devops mycode devoxx-france-2015-v2
waizou
 
Whitepaper - Application Delivery in PCI DSS Compliant Environments
Jason Dover
 
PCI DSS Success: Achieve Compliance and Increase Web Application Security
Citrix
 
Presentation_Borne
P. Neil Borne CISSP,CEH,CHFI
 
Writing Secure Code – Threat Defense
amiable_indian
 
Monitoring threats for pci compliance
Shiva Hullavarad
 
An Introduction to PCI Compliance on IBM Power Systems
HelpSystems
 
PCI-DSS_Overview
sameh Abulfotooh
 
Work With Federal Agencies? Here's What You Should Know About FedRAMP Assessm...
Schellman & Company
 
How the latest trends in data security can help your data protection strategy...
Ulf Mattsson
 
Determining Scope for PCI DSS Compliance
Schellman & Company
 
Reduce PCI Scope - Maximise Conversion - Whitepaper
Shaun O'keeffe
 
Top PCI Pitfalls and How to Avoid Them: The QSA’s Perspective
AlgoSec
 
PCI Compliance NOT for Dummies epb 30MAR2016
Erika Powell-Burson, MSIA, CISSP, CISA
 
PCI DSS 3.2
Kimberly Simon MBA
 
Reaching PCI Nirvana: Ensure a Successful Audit & Maintain Continuous Compliance
AlgoSec
 
CRS Company Overview -Feb 6 2017
Joseph John
 
Publicité

Similaire à La Quete du code source fiable et sécurisé - GSDAYS 2015 (20)

PDF
2014 11-06-sonarqube-asfws-141110031042-conversion-gate01
Cyber Security Alliance
 
PPTX
20131024 qualité de code et sonar - mug lyon
Clement Bouillier
 
PPTX
Owasp geneva-201102-trouvez vosbugslepremier
Thomas Hofer
 
PDF
Soirée Qualité Logicielle avec Sonar
ElsassJUG
 
PDF
Sonar 2.0 au JUG Genève
Freddy Mallet
 
PDF
Sonar 2.0 au GenevaJUG par Freddy Mallet
GenevaJUG
 
PDF
Solutions Linux2008 Construire Sa Vision Qualite
francois.le.droff
 
PDF
La voie vers une application sécurisée
Rational_France
 
PPTX
Secure Software Development Life Cycle (SSDLC)
Aymeric Lagier
 
PDF
Klee Group Présentation Urbanisation DIRISI
Samuel Mingot
 
PDF
2010 03-11-sdlc-v02
Sébastien GIORIA
 
PDF
TuleapCon2017-Pull Requests for easy code review
Tuleap
 
PDF
TuleapCon 2017-Easy-Code-review
Tuleap
 
ZIP
Epitech securite-2012.key
Damien Seguy
 
PPTX
1-Introduction genie logiciel-fondements.pptx
YounessABOUQORA
 
PDF
Présentation au CRI-Ouest
Sébastien GIORIA
 
PPTX
#MSDEVMTL Introduction à #SonarQube
Vincent Biret
 
PPTX
Qu'est ce qu'un logiciel de qualité
Sylvain Leroy
 
PDF
Qualité de code et bonnes pratiques
ECAM Brussels Engineering School
 
PDF
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?
XP Day CH
 
2014 11-06-sonarqube-asfws-141110031042-conversion-gate01
Cyber Security Alliance
 
20131024 qualité de code et sonar - mug lyon
Clement Bouillier
 
Owasp geneva-201102-trouvez vosbugslepremier
Thomas Hofer
 
Soirée Qualité Logicielle avec Sonar
ElsassJUG
 
Sonar 2.0 au JUG Genève
Freddy Mallet
 
Sonar 2.0 au GenevaJUG par Freddy Mallet
GenevaJUG
 
Solutions Linux2008 Construire Sa Vision Qualite
francois.le.droff
 
La voie vers une application sécurisée
Rational_France
 
Secure Software Development Life Cycle (SSDLC)
Aymeric Lagier
 
Klee Group Présentation Urbanisation DIRISI
Samuel Mingot
 
2010 03-11-sdlc-v02
Sébastien GIORIA
 
TuleapCon2017-Pull Requests for easy code review
Tuleap
 
TuleapCon 2017-Easy-Code-review
Tuleap
 
Epitech securite-2012.key
Damien Seguy
 
1-Introduction genie logiciel-fondements.pptx
YounessABOUQORA
 
Présentation au CRI-Ouest
Sébastien GIORIA
 
#MSDEVMTL Introduction à #SonarQube
Vincent Biret
 
Qu'est ce qu'un logiciel de qualité
Sylvain Leroy
 
Qualité de code et bonnes pratiques
ECAM Brussels Engineering School
 
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?
XP Day CH
 

Plus de Sebastien Gioria (10)

PDF
La Sécurité des CMS ?
Sebastien Gioria
 
PDF
2015 09-18-jug summer camp
Sebastien Gioria
 
PDF
42 minutes to secure your code....
Sebastien Gioria
 
PDF
Secure Coding For Java - Une introduction
Sebastien Gioria
 
PPTX
CLUSIR INFONORD OWASP iot 2014
Sebastien Gioria
 
PDF
2014 06-05-mozilla-afup
Sebastien Gioria
 
PDF
OWASP, PHP, life and universe
Sebastien Gioria
 
PDF
Sécurité des applications mobiles
Sebastien Gioria
 
PDF
Secure Coding for Java - An introduction
Sebastien Gioria
 
PDF
Secure Coding for Java - An Introduction
Sebastien Gioria
 
La Sécurité des CMS ?
Sebastien Gioria
 
2015 09-18-jug summer camp
Sebastien Gioria
 
42 minutes to secure your code....
Sebastien Gioria
 
Secure Coding For Java - Une introduction
Sebastien Gioria
 
CLUSIR INFONORD OWASP iot 2014
Sebastien Gioria
 
2014 06-05-mozilla-afup
Sebastien Gioria
 
OWASP, PHP, life and universe
Sebastien Gioria
 
Sécurité des applications mobiles
Sebastien Gioria
 
Secure Coding for Java - An introduction
Sebastien Gioria
 
Secure Coding for Java - An Introduction
Sebastien Gioria
 

La Quete du code source fiable et sécurisé - GSDAYS 2015

  • 1. Par  Sébas)en  Gioria  et  Freddy  Mallet   La  quête  du  code  source   maintenable,  fiable  et  sécurisé    
  • 2. Sébas7en  Gioria   •  h:p://www.google.fr/#q=sebas7en  gioria   •  Innova7on  and  Technology  @Advens  &&    Applica7on   Security  Expert   •  OWASP  France  Leader  &  Founder  &  Evangelist,  OWASP  ISO   Project  &  OWASP  SonarQube  Project  Leader   •  Applica7on  Security  group  leader  for  the  CLUSIF   •  Proud  father  of  youngs  kids  trying  to  hack  my  digital  life.     @Spoint  et  @OWASP_France     [email protected]  
  • 3. Freddy  Mallet   •  Créateur  de  la  plateforme  SonarQube     •  Co-­‐fondateur  de  la  société  SonarSource   •  @FreddyMallet   •  [email protected]  
  • 4. Agenda   •  Enjeux  autour  de  l’analyse  du  code  source   •  Tout  ce  que  le  code  source  peut  dire   •  Mise  en  œuvre  méthodologique   •  SonarQube  /  projet  OWASP  /  Demo   4  
  • 5. Enjeux  autour  de  l’analyse  du   code  source  
  • 6. Enjeux  autour  de  l’analyse  du  code  source    
  • 7. Beaucoup  de  défauts  pouvant  conduire  à  des   problèmes  de  maintenabilité,  de  stabilité  et  de   sécurité  peuvent  être  détectés  automa7quement.     Et  tout  par7culièrement  les  plus  sournois  
  • 8. Approche  boîte  noire  VS   boîte  blanche   Top10  Web   Tests  d’intrusion   Analyse  du  code   A1  -­‐  Injec7on   ++   +++   A2  –  Viola7on  de  Session  /   Authen7fica7on     ++   +   A3  –  Cross  Site  Scrip7ng     +++   +++   A4  –  Références  Directes     +   +++   A5  –  Mauvaise  configura7on         +   ++   A6  –  Exposi7on  de  données     ++   +   A7  –  Probleme  d’habilita7on   fonc7onnelle     +   +   A8  -­‐  CSRF     ++   +   A9  –  U7lisa7on  de  Composants   vulnérables   +++   A10  –  Redirec7on  et  transferts     +   +  
  • 9. L’  analyse  de  code  ou  le  test  d’intrusion  du   point  de  vue  du  développeur  ?  
  • 10. L’évolu7on  du   développement  logiciel   Vi / Emacs Makefile Version Control Building Tools Ticket Tracking Continuous Integration Refactoring From the IDE Unit Tests Continuous Inspection
  • 11. Tout  ce  que  le  code  source   peut  dire  
  • 12. Les  principaux  types   de  défauts   Maintenabilité ??? Fiabilité Multi-threadings, null pointers, buffer overflows, unclosed resources, … Sécurité OWASP Top 10, SANS TOP 25, …
  • 13. Exemples  liés  à  la   sécurité   •  Injec7on  SQL,  LDAP,  …   •  Login/mot  de  passe  en  dur   •  U7lisa7on  d’algorithmes  de  hashage  trop   faibles:  MD5,  SHA1,  …   •  Injec7on  de  code   •  Redirec7on  web  vers  un  site  inconnu   •  …  
  • 14. Exemples  liés  à  la   fiabilité   •  Déréférencement  de  pointeurs  null   •  Débordement  d’en7er   •  Condi7ons  invalides   •  Assigna7on  d’une  variable  à  elle  même   •  Ressources  non  libérées   •  Assigna7on  d’une  valeur  jamais  u7lisée     •  …  
  • 15. Quid  de  la  maintenabilité  ?   •  ?   •  ?   •  ?   •  ?   •  ?   •  ?  
  • 16. Duplica7on  de  code   Que  choisir  entre  la  peste  et  le  choléra  ?  
  • 17. Mauvaise  distribu7on  de  la   complexité   Vaut-­‐il  mieux  une  méthode  d’une  complexité   de  30  ou  10  méthodes  d’une  complexité  de  3  ?  
  • 18. Pas  ou  peu  de  tests  unitaires    
  • 19. Mauvais  Design   Quel  classe/package     est  responsable  de  quoi  ?  
  • 20. Non  respect  des  standards   Comme  par  exemple  la  stratégie     de  ges7on  des  excep7ons  
  • 21. Pas  ou  peu  de  commentaires   Ce:e  expression  régulière  “match”  quoi     par  exemple  ?  
  • 22. Quid  de  la  maintenabilité   •  Duplica7on  de  code   •  Mauvaise  distribu7on  de  la  complexité   •  Peu  ou  pas  de  tests  unitaires   •  Mauvais  design   •  Non  respect  des  standards   •  Pas  ou  peu  de  commentaires  
  • 23. Mise  en  oeuvre   méthodologique  
  • 24. Approche   tradi7onnelle   •  Retour  trop  tardif   •  Manque  d’implica)on  des   développeurs   •  Pushback  de  ces  derniers   •  Pas  de  réelle  douane   applica7ve   •  Ou)ls,  processus  et  personnes   différentes  pour  chasser  les   différents  types  de  défauts  
  • 25. Comment  rembourser  la   de:e  ?   •  Le  montant  total  peut  être  déprimant   •  Faut-­‐il  demander  un  budget  dédié  ?   •  Le  risque  d’injec)on  d’une  régression   fonc)onnelle  existe   •  Ce  n’est  pas  très  “fun”  !  
  • 26. Ce  qu’il  faut  changer   •  La  boucle  de  rétroac7on  doit  être  beaucoup   plus  rapide   •  Une  douane  applica7ve     non  négociable  doit  exister   •  Les  développeurs  doivent  être  au  coeur  du   processus   •  Le  coût  doit  être  non  significa7f   •  L’approche  doit  être  unifiée  
  • 27. Se  focaliser  sur  la  fuite  
  • 30. SonarQube   •  Intégrable  dans  la  chaine  de  build   •  Support  de  nombreux  languages:  C/C++,  Java,   PHP,  JavaScript,  COBOL,  C#,  PL/SQL,  …   •  Support  du  concept  de  douane  applica7ve   •  Extensible:  nombreux  plugins   •  Ges7on  temporelle  des  défauts   •  Open-­‐Source  
  • 31. SonarQube  pour  la   sécurité  applica7ve   •  S’intègre  dans  le  SDLC   – liens  possible  avec  Jenkins/Hudson/Bamboo   – Repor7ng  sur  les  défauts   – Possibilité  d’ajouter  des  règles  (en  XPath)   •  Dispose  de  règles  perme:ant  de  couvrir   – non  respect  des  regles  de  codage   – découverte  de  bugs  sécurité(XSS,  SQl-­‐Injec7on)  
  • 32. SonarQube  pour  la   sécurité  applica7ve   •  Ce  n’est  pas  un  ou7l  de  revue  de  code  !   – Il  fonc7onne  sur  la  viola7on  de  règles;  détec7on  de   pa:erns  uniquement   •  Il    7re  toute  sa  puissance     – si  vous  disposez  d’une  poli7que  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  viola7ons  de  secure   coding.  
  • 33. Le  projet  OWASP   SonarQube   •  Collabora7on  OWASP  /  SonarSource   –  Me:re  a  disposi7on  de  la  communauté  un  ensemble  de   règles,  profils,  et  plugins  pour  analyser  la  sécurité  avec   SonarQube.   •  Plusieurs  objec7fs  prévus   –  Lier  les  règles  au  référen7el  MITRE  CWE     –  Tagguers  les  règles  suivant  les  catégories  OWASP  Top  10   2013   –  Développement  de  nouvelles  règles  “sécurité”   –  Nouveau  widget  pour  offrir  une  perspec7ve  “sécurité”  sur   le  code  source   –  Etendre  ces  objec7fs  à  tous  les  plugins  langage