Notre approche de la gestion des vulnérabilités
Notre approche de la gestion des failles de sécurité chez Atlassian
Atlassian reconnaît qu'à un certain niveau, les failles de sécurité font partie intégrante de tout processus de développement logiciel. Cependant, nous nous efforçons constamment de réduire à la fois la gravité et la fréquence des vulnérabilités dans nos propres produits et services.
Pour ce faire, nous avons mis en place une approche de gestion des vulnérabilités polyvalente, qui repose sur une combinaison de processus automatisés et manuels. Nous pensons que c'est le moyen le plus efficace de limiter le risque que des vulnérabilités « passent à travers les mailles du filet » et ne soient pas détectées pendant une longue période.
Dans cet article, nous vous donnons un aperçu de la façon dont nous gérons les vulnérabilités dans nos produits et notre infrastructure, et nous vous expliquons comment nous faisons constamment évoluer cette approche en intégrant les outils, les méthodes et les réflexions les plus récents pour nous assurer que notre gestion des vulnérabilités demeure efficace dans le futur.
Aperçu de notre processus d'identification et de résolution des vulnérabilités
Nous disposons d'un processus méthodique pour identifier, suivre et résoudre les vulnérabilités, quel qu'en soit leur type.
Découverte et attribution continues des actifs
Découverte continue des actifs internes : nous utilisons un système développé en interne pour répertorier tous nos actifs EC2 et AWS d'équilibrage de charge grâce à AWSConfig et les attribuer à leur propriétaire. Nous conservons l'équivalent d'une année d'actifs, soit un total de 50 à 60 millions.
Identification des vulnérabilités
Nous utilisons un large choix d'outils de détection des vulnérabilités de pointe, qui sont exécutés régulièrement dans nos produits et notre infrastructure, pour réaliser des analyses et identifier automatiquement les vulnérabilités. Sont notamment concernés les produits Atlassian Cloud et Data Center, les images d'app Docker, les apps mobiles et tierces, ainsi que notre infrastructure sur site et dans notre cloud. Ces outils recherchent et identifient automatiquement des vulnérabilités existantes, et incluent les fonctionnalités suivantes :
- Analyses basées sur l'hôte : nous utilisons actuellement Assetnote pour effectuer des analyses de sécurité continues de notre périmètre externe, et Tenable.io pour scanner en continu à la fois en interne et en externe. Ces outils permettent d'identifier les ports ouverts, les services et les apps s'exécutant dans notre environnement, ainsi que toute vulnérabilité au niveau des hôtes réseau.
- Analyses d'images de conteneurs : nous utilisons des conteneurs Docker pour déployer beaucoup de nos apps. Nous menons une analyse de sécurité des images de conteneurs dès qu'ils sont déployés dans nos environnements de pré-production ou de production. Pour ce faire, nous utilisons un outil appelé Snyk. Nous fournirons ultérieurement plus d'informations sur cette page.
- Analyses des dépendances open source : nous utilisons Snyk pour identifier les vulnérabilités dans les dépendances du code open source ou tiers. Nous fournirons ultérieurement plus d'informations sur cette page.
- Surveillance de la configuration AWS : nous déployons et intégrons Lacework dans l'environnement Atlassian AWS Cloud pour assurer la surveillance continue de la configuration par rapport à des références établies pour nos environnements AWS.
Nous passons continuellement en revue les derniers outils disponibles et les ajoutons à la suite que nous utilisons si nous estimons qu'ils amélioreront nos capacités de détection des vulnérabilités.
Nous disposons également d'une palette de moyens supplémentaires que nous utilisons pour identifier les vulnérabilités en combinaison avec les analyses automatisées que nous exécutons, notamment :
Notre programme Bug Bounty : nous utilisons Bugcrowd pour exécuter notre programme Bug Bounty. Bugcrowd nous donne accès à une communauté d'experts de confiance composée de dizaines de milliers de chercheurs en cybersécurité qui testent constamment nos produits et signalent toute vulnérabilité identifiée. Notre programme Bug Bounty a été reconnu comme le meilleur du secteur en 2018 et 2019.
Rapports clients et utilisateurs : les utilisateurs de nos produits peuvent signaler tout bug rencontré à tout moment via le support Atlassian. Nous travaillerons ensuite avec eux pour collecter tous les détails nécessaires afin de signaler la vulnérabilité et de la corriger en interne (sous réserve de validation pour s'assurer que la vulnérabilité est réelle, et non un faux positif). Cela inclut également le personnel d'Atlassian, qui peut signaler tous les problèmes observés dans nos produits (soit en externe, soit en interne) directement auprès de l'équipe de sécurité ou en créant un ticket de support.
Tests d'intrusion externes : nous faisons appel à des sociétés de conseil spécialisées dans la sécurité pour effectuer des tests d'intrusion en boîte blanche et assistés par le code sur des produits et des infrastructures à risque élevé. Pour plus de détails, reportez-vous à la page « Notre approche en matière de tests de sécurité externes ».
L'équipe de sécurité des produits Atlassian : nous effectuons des revues de code ciblées, à la fois manuelles et assistées par des outils, et travaillons en étroite collaboration avec nos équipes de développement produit pour améliorer leur capacité à détecter et à résoudre les vulnérabilités avant que le code ne nous parvienne.
L'équipe rouge Atlassian : nous avons formé une équipe rouge en interne qui a pour rôle de simuler des adversaires tentant d'identifier et d'exploiter les vulnérabilités qui existent dans nos systèmes, processus et environnements, afin de nous assurer qu'elles sont identifiées et traitées aussi rapidement que possible.
Suivi et résolution des vulnérabilités
Nous utilisons un système interne de gestion des tickets et de remontée pour suivre toutes les vulnérabilités que nous avons découvertes et que nous cherchons à corriger. Plus précisément, qu'une vulnérabilité soit identifiée par l'un de nos outils d'analyse ou par l'un des autres moyens évoqués ci-dessus, un ticket dédié est créé pour chaque vulnérabilité et assigné à l'équipe produit concernée pour résolution. Les SLO de remédiation que nous avons publiés dans notre politique de correction des bugs de sécurité font l'objet d'un suivi pour chaque vulnérabilité.
Notre équipe de sécurité supervise ce processus et travaille avec nos équipes produit et d'infrastructure pour s'assurer que les vulnérabilités sont précisément identifiées et que les questions liées à la remédiation trouvent une réponse.
Pour nos produits Cloud, une fois qu'une correction est développée pour une vulnérabilité, elle est testée en profondeur avant d'être intégrée à notre pipeline de CI/CD pour déploiement. Pour les produits Data Center, les corrections sont intégrées dans une nouvelle version et déployées avec d'autres sur une base régulière, conformément à notre cadence de livraison standard. Les tickets de vulnérabilité générés par les outils d'analyse sont automatiquement fermés si les analyses suivantes ne trouvent plus la vulnérabilité. Les tickets de vulnérabilité issus d'analyses manuelles sont fermés par les membres des équipes produit, d'infrastructure ou de sécurité lorsque la correction a été mise à la disposition des clients.
Prévention des vulnérabilités durant le processus de développement
Analyses d'images de conteneurs
Atlassian déploie la majorité de ses apps en utilisant des images de conteneur Docker. Les conteneurs Docker fournissent un environnement complet et autonome, composé de bibliothèques système pertinentes, d'outils, de paramètres de configuration et de toutes les autres dépendances nécessaires pour que nos produits puissent fonctionner quels que soient les paramètres de configuration de chaque machine. Le conteneur fournit une couche d'abstraction, dissociant ainsi le code logiciel de l'infrastructure sous-jacente afin que nos produits puissent fonctionner sans problème sur différentes machines.
Bien que les conteneurs offrent de nets avantages pour nos développeurs et nos clients en termes de capacité à déployer du code pouvant être utilisé dans divers environnements, ils peuvent être une source de vulnérabilités de sécurité si le contenu des images est constitué de bibliothèques ou de composants obsolètes ou peu sûrs.
Pour remédier à ce problème, Atlassian intègre un processus d'analyse de la sécurité des conteneurs basé sur des événements. Ce processus surveille les déploiements effectués via notre plateforme de déploiements Micros pour tous les conteneurs déployés dans nos environnements de production. En outre, les développeurs peuvent intégrer un processus d'analyse dans notre pipeline de CI/CD pour tous les conteneurs déployés dans nos environnements de développement. Nous utilisons le conteneur Snyk à cette fin. Snyk fournit un ensemble d'outils qui réalisent une inspection approfondie de toutes les images de conteneur déployées par nos développeurs. Cela inclut une analyse détaillée de ces images pour identifier les différents composants qu'elles contiennent et déterminer ceux qui présentent des vulnérabilités connues.
Dépendances open source
Bien qu'il soit important d'identifier et de corriger les vulnérabilités dans notre propre code, nos produits et services reposent également sur de nombreuses bibliothèques tierces. Il est donc tout aussi important que nous connaissions les bibliothèques utilisées et qu'elles soient à jour avec les dernières corrections de bugs de sécurité. Nous utilisons un outil appelé Snyk pour nous aider dans cette tâche. Snyk fournit un analyseur capable d'identifier les dépendances dans n'importe lequel de nos builds logiciels et de comparer ces bibliothèques à une base de données des failles de sécurité connues.
Toutes les vulnérabilités identifiées sont alors automatiquement signalées via un ticket Jira officiel auprès de l'équipe produit concernée, conformément au processus de gestion des vulnérabilités que nous avons décrit précédemment sur cette page.
Autres initiatives utilisées pour aider à combattre les vulnérabilités
Jusqu'à présent, nous avons largement décrit les mesures que nous avons prises pour gérer les vulnérabilités en arrière-plan, c'est-à-dire ce que nous faisons pour remédier à une vulnérabilité identifiée dans nos produits ou sur nos plateformes. Cependant et avant toute chose, nous nous efforçons constamment de réduire leur fréquence de survenue. Pour ce faire, nous avons intégré des initiatives uniques au début de notre processus de développement afin de nous assurer que nos produits sont développés à partir de zéro, dans une optique de sécurité.
Ingénieurs en sécurité des produits
Aucune discussion sur la gestion des vulnérabilités ne serait exhaustive sans expliquer le rôle clé que jouent nos ingénieurs en sécurité des produits dans l'élimination des bugs et la conception de meilleurs mécanismes pour y parvenir.
Nos ingénieurs en sécurité des produits effectuent le tri initial des dernières vulnérabilités signalées et collaborent avec nos équipes d'ingénierie produit pour identifier la meilleure correction à apporter. Ce sont des experts en sécurité applicative. Ils sont répartis dans le monde entier afin de pouvoir collaborer le plus efficacement possible avec nos ingénieurs produit selon les besoins.
Nos ingénieurs en sécurité jouent un rôle à la fois proactif et réactif par rapport au produit qui leur est assigné, y compris, mais sans s'y limiter :
- Examiner et analyser les modèles de menace actualisés pour les risques nouveaux et émergents
- Examiner et analyser la sécurité des nouvelles fonctionnalités
- Réaliser une revue de code manuelle
- Réaliser des tests d'intrusion
- Réaliser une revue de plateforme et d'architecture
- Assurer le suivi des principales activités liées aux projets et fournir des conseils au besoin
- Trier, classer, récompenser et assurer la résolution rapide des tickets signalés via notre programme Bug Bounty
- Programmer une nouvelle règle d'automatisation, et maintenir les règles d'automatisation et les outils existants pour maximiser la couverture et l'efficacité
Tableaux de bord de la sécurité
Grâce aux données recueillies à partir des systèmes décrits dans cet article, nous sommes en mesure de comparer les équipes et les produits les uns par rapport aux autres afin d'identifier de manière proactive les domaines d'amélioration.
En résumé
Atlassian adopte une approche de la gestion des vulnérabilités polyvalente pour l'ensemble de ses produits et plateformes. Celle-ci repose sur une combinaison d'outils d'analyse automatisés, un programme Bug Bounty et un éventail d'autres mécanismes en constante évolution pour nous assurer que nous identifions et résolvons les vulnérabilités le plus rapidement possible, et que nous réduisons leur fréquence avant toute chose.
Vous voulez aller plus loin ?
Vous voulez aller plus loin ?
Vous pouvez consulter une série d'autres ressources, en partie évoquées dans cet article, pour obtenir plus d'informations sur notre approche de la gestion des vulnérabilités, ainsi que de la sécurité en général.
- Atlassian Trust Center
- Politique de correction des bugs de sécurité d'Atlassian
- Approche en matière de tests de sécurité externes
- Livraison continue
- Avertissements de sécurité
- Programmes Bug Bounty d'Atlassian
- Programme Bug Bounty pour les apps du Marketplace développées par Atlassian
- Programme Bug Bounty pour les apps du Marketplace développées par des fournisseurs tiers
- Programme Bug Bounty pour Opsgenie
- Programme Bug Bounty pour Statuspage
- Programme Bug Bounty pour Trello
- Programme Bug Bounty d'Atlassian pour tous les autres produits (Jira, Confluence, Bitbucket, etc.)
Sur cette page, lorsque nous faisons référence aux vulnérabilités, ce terme peut être remplacé par « bugs », qui est le terme utilisé dans notre page distincte intitulée « Notre approche des tests de sécurité ».