Le développement continu et la livraison continue sont des pratiques de plus en plus répandus. Intégrer la sécurité dans ces cycles de développement rapide peut être un défi de taille. Lors de cette présentation, vous découvrirez une approche exprimée dans la publication de SAFECode : «Practical Security Stories and Security Tasks for Agile Development Environments». Cette approche peut être adaptée à votre contexte et permet d’intégrer des tâches ou des fonctionnalités liées à la sécurité dans votre Sprint. Cette approche offre une réponse à la question : Comment faire en sorte que les requis de sécurité ne soient pas seulement appliqués juste avant la sortie officielle du produit?
Guillaume Croteau
Ingénieur Logiciel Junior
Bentley Systems
2. Plan de la présentation
• Qui suis-je?
• Qu’est-ce que Bentley Systems?
• Introduction
• «Security Stories»
– L’approche de Bentley Systems
• Comment intégrer les «Security Stories»
– L’approche de Bentley Systems
• Conclusion
3. Qui suis-je?
• Guillaume Croteau Ing. Jr.
• Bac. Génie Logiciel, Université Laval
• GIAC-GWEB
• Travail dans l’équipe de sécurité
applicative chez Bentley Systems
depuis presque 2 ans
7. Introduction
• La plupart des organisations se contentent de
faire un «pentest» une fois de temps en temps
alors que le produit est prêt à être déployé.
• Réaction des développeurs:
10. Introduction
• Une solution: envoyer la sécurité le plus à
gauche possible dans le cycle de
développement.
– Non seulement pour le design, mais aussi pour le
développement continu.
– DevOps parle de «Shift-Left»
• Mais comment?
12. Security Stories
• Les «Security Stories» proviennent d’une
publication de SAFECode: «Practical Security
Stories and Security Tasks for Agile
Development Environments»
13. Security Stories
• Intégrer la sécurité dans le processus utilisé par les
développeurs: Agile
• Ajouter des tâches et/ou des fonctionnalités par
rapport à la sécurité dans le «backlog»
– Prioriser la sécurité comme le reste du «backlog»
• Standardise l’implémentation
• Sauver du temps: faire la recherche une seule fois
• Sauver de l’argent: faire la sécurité plus tôt dans le
cycle de développement
– «Story» tôt au lieu d’un bogue plus tard
17. Security Stories – L’approche de
Bentley Systems
• Au lieu de spécifier des rôles, les tâches sont
séparées par type.
– Architecture
– Implémentation
– Vérification
• Raisons:
– Une personne peut couvrir plusieurs rôles dans une
équipe.
– Plus facile de savoir quand exécuter une tâche.
18. Security Stories – L’approche de
Bentley Systems
• Les développeurs se sont plaints que les
«stories» proposées par SAFECode sont trop
générales.
– Ex: «Use one of the many available librairies and
frameworks that takes CSRF into account.»
19. Security Stories – L’approche de
Bentley Systems
• Amélioration des tâches:
– Ajout de tâches qui sont spécifiques à certaines
technologies.
• Ex: Protection contre le CSRF avec ASP.NET
– Ajout de détails
• Ex: Lien vers une ressource externe
– Ajout de notes
• Ex: Cette tâche ne s’applique pas si votre contexte est
[contexte]
– Ajout d’exemples
• Ex: Voici un exemple de «whitelist» [la «whitelist»]
20. Security Stories – L’approche de
Bentley Systems
• Système de «tag» adapté à la structure de nos
«backlog» pour bien identifier les tâches.
– Métriques
– Identification rapide des tâches liées à la sécurité
– Etc.
• Ne pas limiter les références aux CWE:
– SANS Top 25
– OWASP Top 10
– CAPEC
– RFC
– Etc.
21. Security Stories – L’approche de
Bentley Systems
• SAFECode ne propose que seulement 36
«stories»
– Ajout de «stories» manquantes et d’autres qui
sont spécifiques à notre contexte.
• Ex: CORS (manquante)
• Ex: OpenID et OAuth 2.0 (spécifique)
– Bentley Systems à maintenant plus de 70
«stories», et ce nombre continu à augmenter.
22. Security Stories – L’approche de
Bentley Systems
• Il est possible d’organiser les «stories» par groupe:
– Par concept:
• Cryptographie
• Web
• Autorisation
• Authentification
• Etc.
– Par OWASP Top 10
• 2013
• 2017
– Par SANS Top 25
– Etc.
23. Security Stories – L’approche de
Bentley Systems
• Exemple personnalisé:
• [Security Story] I want to verify graceful handling of all
exceptions.
• [Security Task] Ensure there is no information exposure
through error messages
– Note: Do not use the client to hide server-side error details
– ASP.NET
• Enable customErrors in Web.config
– Java Servlet
• Error handling in Java web.xml
26. Comment intégrer les «Security
Stories»
• Accès publique aux «Security Stories»
– Base de données
– Intranet
– SharePoint
– Etc.
• Automatiser l’intégration des tâches dans le
«backlog».
– Éviter le copier-coller à partir de la source
d’information.
27. Comment intégrer les «Security
Stories»
• Si la compagnie est petite:
– Un membre de l’équipe de sécurité applicative peut
guider l’équipe à choisir les tâches appropriées à
chaque sprint.
• Le «Threat Modeling» peut aider à identifier les
dangers potentiels, pour ensuite sélectionner les
bonnes tâches.
– «Threat model» au niveau de la fonctionnalité
• Par contre, si la compagnie est grande…?
29. Intégrer les «Security Stories» -
L’approche de Bentley Systems
• Bentley Systems:
– > 3000 employés
– Compagnie internationale
– +/- 500 produits actifs
– Centaines de champions de sécurité
– 10 membres permanent dans l’équipe de sécurité
applicative
30. Intégrer les «Security Stories» -
L’approche de Bentley Systems
• Approche «Security as a Service»
– Développent d’une application web interne. Cette
application s’inspire fortement des produits IriusRisk
et SD Elements.
– «Threat model» (du produit ou de la fonctionnalité)
basé sur un questionnaire interne.
– Avoir 80% des résultats d’un «threat model» complet
en 20% du temps.
– Accessible à tous les champions de sécurité de la
compagnie («scalable»)
– Niveau de connaissance requis en sécurité minimal
31. Intégrer les «Security Stories» -
L’approche de Bentley Systems
• Une fois le questionnaire rempli, il est analysé
et un rapport est généré.
– Ce rapport dirige le champion de sécurité vers les
«security stories» qui sont pertinentes selon les
réponses fournies.
42. Conclusion
• Avec l’avènement du DevOps, il faut penser au
DevSecOps
– Les «security stories» sont probablement une
partie de solution pour intégrer la sécurité dans
un cycle de développement rapide.
43. Pour me contacter
• @gcsofteng
• https://ca.linkedin.com/in/guillaumecroteau
• https://github.com/gctse
• https://www.gcthesoftwareengineer.com