Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

OWASP Quebec: "Security Stories" par Guillaume Croteau

349 views

Published on

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

Published in: Software
  • Login to see the comments

OWASP Quebec: "Security Stories" par Guillaume Croteau

  1. 1. Security Stories Comment intégrer la sécurité dans un cycle de développement logiciel rapide
  2. 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. 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
  4. 4. Qu’est-ce que Bentley Systems?
  5. 5. Qu’est-ce que Bentley Systems?
  6. 6. Introduction
  7. 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:
  8. 8. Introduction • Résultat: introduction de dettes techniques par rapport à la sécurité.
  9. 9. Introduction • Effectuer la sécurité plus tôt est un investissement.
  10. 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?
  11. 11. Security Stories
  12. 12. Security Stories • Les «Security Stories» proviennent d’une publication de SAFECode: «Practical Security Stories and Security Tasks for Agile Development Environments»
  13. 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
  14. 14. Security Stories • Sécurité «baked in» vs «bolted on»
  15. 15. Security Stories • La structure proposée par SAFECode:
  16. 16. Security Stories – L’approche de Bentley Systems
  17. 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. 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. 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. 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. 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. 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. 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
  24. 24. Security Stories – L’approche de Bentley Systems
  25. 25. Comment intégrer les «Security Stories»
  26. 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. 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…?
  28. 28. Intégrer les «Security Stories» - L’approche de Bentley Systems
  29. 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. 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. 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.
  32. 32. Intégrer les «Security Stories» - L’approche de Bentley Systems
  33. 33. Intégrer les «Security Stories» - L’approche de Bentley Systems
  34. 34. Intégrer les «Security Stories» - L’approche de Bentley Systems
  35. 35. Intégrer les «Security Stories» - L’approche de Bentley Systems
  36. 36. Intégrer les «Security Stories» - L’approche de Bentley Systems
  37. 37. Intégrer les «Security Stories» - L’approche de Bentley Systems
  38. 38. Intégrer les «Security Stories» - L’approche de Bentley Systems
  39. 39. Intégrer les «Security Stories» - L’approche de Bentley Systems
  40. 40. Intégrer les «Security Stories» - L’approche de Bentley Systems
  41. 41. Conclusion
  42. 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. 43. Pour me contacter • @gcsofteng • https://ca.linkedin.com/in/guillaumecroteau • https://github.com/gctse • https://www.gcthesoftwareengineer.com
  44. 44. Merci!

×