Les “Security Champions” : votre première ligne de défense !
Tout au long du développement d'une application, l'équipe sera confrontée à de nombreuses problématiques de sécurité. Elle devra mettre en place les mesures de sécurité sans réellement avoir les connaissances nécessaires. Et dans le pire des cas, l’équipe n’aura même pas conscience des vulnérabilités de son application.
La présence d’une équipe sécurité au sein de l’entreprise ne permet pas de couvrir l’ensemble des problématiques de sécurité. En effet, l’équipe sécurité n’est pas dimensionnée pour accompagner chaque équipe de développement et leurs processus sont rarement adaptés au cycle de développement agile.
C’est pourquoi le rôle de Security Champion s’introduit petit à petit dans les équipes de développement pour constituer une première ligne de défense au sein de l’organisation. Mais alors qu’est-ce qu’un Security Champion et que fait-il ?
Un nouveau rôle
Pour le développement d’un produit, une équipe est constituée d’un ensemble de rôles : un Product Owner, un Tech Lead, des Dev et des Ops. Cet ensemble de compétences permet de créer une équipe multi-compétente (cross functional team) et autonome pour développer et déployer leur produit.
Toutefois, pour être réellement autonome, il manque un point important : la sécurité ! Dans la plupart des entreprises, il sera impossible de livrer en production sans la réalisation d’un test d’intrusion. L’organisation de ce test et les corrections des vulnérabilités reporteront la livraison de quelques mois.
C’est pourquoi est apparu le rôle de “Security Champion”. Dans la langue française, ce rôle serait presque prétentieux. Mais en anglais, le mot “Champion” a également le sens de “Advocate”. Le Security Champion n’est donc pas un expert en sécurité informatique mais il ou elle devra, avant tout, s’assurer que les sujets relatifs à la sécurité sont bien pris en compte.
Les fonctions du Security Champion
Le Security Champion a la responsabilité de traiter les nombreux sujets relatifs à la sécurité :
- Contribuer à la conception de l’architecture applicative ;
- Définir les bonnes pratiques de développement ;
- Effectuer ou vérifier les revues de code ;
- Effectuer la revue des User Stories ;
- Réaliser l’analyse de risques du produit ;
- ...
Pour cela, le Security Champion sera accompagné des experts en sécurité informatique de l’entreprise, mais il pourra également faire appel aux autres Security Champions, dans le cadre de communautés de pratique par exemple.
De plus, le Security Champion est un relais entre l’équipe sécurité centrale et l’équipe de développement. Cela permet notamment à l’équipe sécurité de collecter des indicateurs sur chaque produit et constituer des tableaux de bord sécurité.
Attribution du rôle
Le rôle de Security Champion devra être attribué à une personne volontaire au sein de l’équipe de développement. Il faut savoir que la charge liée à cette activité ne sera pas constante et dépendra des enjeux de sécurité du produit.
Il y a néanmoins quelques points d’attention à prendre en compte dans le cumul des rôles :
- La personne ne doit pas cumuler ce rôle avec un autre rôle majeur (exemple: Tech lead) au risque que le rôle de Security Champion passe au second plan.
- La personne ne doit pas cumuler des rôles avec des enjeux opposés. Par exemple, l’ops peut être amené à désactiver certaines mesures de sécurité (Web Application Firewall, filtrage par adresse IP, ...) pour garantir le fonctionnement de l’application.
Ainsi, l’idéal serait d’attribuer ce rôle à un développeur lui permettant ainsi d’avoir une bonne connaissance de l’application et de contribuer réellement au développement des fonctions de sécurité.
Devenir Security Champion
Le Security Champion doit avoir de bonnes connaissances techniques qui lui permettront de comprendre rapidement les attaques (XSS, CSRF, Session Fixation, …) et d’identifier les mesures à mettre en oeuvre pour s’en prémunir.
Pour aider les Security Champions à monter en compétence, il y a plusieurs moyens complémentaires:
- Programme de formation pour transmettre les bases de la sécurité informatique sur les sujets techniques et fonctionnels.
- Coaching par un expert en sécurité informatique présent au niveau de l’entreprise. Celui-ci apportera ses connaissances sur les exigences et la politique de sécurité de l’entreprise.
- Communauté regroupant les Security Champions permettant l’entraide et l’autoformation. Ainsi, un Security Champion expert sur un framework de sécurité (exemple : Spring Security) pourra former ses homologues.
Néanmoins, le Security Champion devra avoir un état d’esprit lui permettant d’imaginer le comportement malveillant d’un attaquant. Si la formation permet d’enrichir les compétences techniques, elle pourra difficilement apporter cet état d’esprit et la manière de penser comme un attaquant.
Déployer les Security Champions
Pour déployer ce nouveau rôle au sein d’une organisation, il est possible de s’inspirer de la démarche proposé par l’OWASP : Security Champions Playbook pour identifier les étapes suivantes :
- Identifier les équipes de développement et les produits
- Définir le rôle de Security Champion
- Identifier un Security Champion dans chaque équipe
- Mettre en place les moyens de communication entre le Security Champion et le Security Coach
- Construire une base de connaissances (wiki, forum, …) à disposition des Security Champion
- Animer la communauté des Security Champions pour maintenir l’intérêt (Security Workshop, Security clinic, Security Corner, …)
Conclusion
Contrairement aux idées reçues, le DevSecOps ne se résume pas à l’automatisation des tests de sécurité mais consiste en une intégration de la sécurité tout au long du cycle de vie des applications ou de l’infrastructure. Les Security Champions sont donc indispensables dans une organisation afin d’apporter la culture et la philosophie associées au DevSecOps. Leur présence au sein des équipes de développement leur permet d'identifier au plus tôt les vulnérabilités potentielles et d’y apporter des correctifs.
Cependant, les Security Champions ne peuvent y arriver seuls. Une équipe de sécurité centrale devra les soutenir (expertise, coaching, formation, …) mais également leur fournir les bons outils (application security testing, serveur OAuth2, PKI as a service, WAF…).