Sécurité du développement chez Atlassian
Chez Atlassian, la sécurité est intégrée à chaque phase du cycle de vie du développement afin de garantir la protection de nos clients, de nos produits et de notre code. Nous appliquons des pratiques de développement sécurisées à toutes les phases du cycle de vie du développement.
- Le développement est soutenu par des programmes de formation à la sécurité des applications ainsi que par une base de connaissances sur la sécurité gérée par l'équipe de sécurité.
- Lors de la phase de design, les pratiques comprennent la modélisation des menaces, la revue de design, ainsi que notre bibliothèque de normes de sécurité régulièrement mise à jour, qui garantit que les exigences de sécurité appropriées sont prises en compte.
- Lors du développement, nous comptons sur un processus de revue par les pairs obligatoire comme première ligne d'examen de la sécurité. Cette approche est soutenue par des contrôles automatisés d'analyse statique (SAST) et des tests de sécurité manuels (réalisés par des équipes internes et des experts tiers, comme déterminé par notre processus d'évaluation des risques).
- Des processus formels de préparation opérationnelle et de contrôle des changements garantissent ensuite que seuls les changements approuvés sont déployés en production. Après le déploiement, nous utilisons régulièrement une analyse automatisée des vulnérabilités ainsi que le programme Bug Bounty leader dans le secteur pour garantir l'assurance continue de nos applications. Nous évaluons en permanence les pratiques de sécurité de nos produits au fil du temps à l'aide d'un système de tableaux de bord de la sécurité.
Culture
Engagement
Formation
Standards
Bonnes pratiques
POINTS DE CONTRÔLE
Examen de la sécurité
Amélioration de la sécurité
Développer une culture de la sécurité
Atlassian développe une culture de la sécurité en responsabilisant ses équipes grâce à une formation de sécurité robuste.
Formation des développeurs à la sécurité
Nous utilisons du contenu développé en interne ainsi que du contenu tiers pour les formations afin que nos équipes de développement disposent des connaissances nécessaires en matière de sécurité pour développer des applications sécurisées. Notre programme de formation est surveillé en continu pour assurer son intégrité et évolue pour répondre aux menaces changeantes.
Phase de design
Lors de la phase de design, nous utilisons la modélisation des menaces, la revue de design ainsi que notre bibliothèque de normes de sécurité pour garantir que les exigences de sécurité appropriées sont prises en compte.
Modélisation des menaces
Nous utilisons la modélisation des menaces pour mieux comprendre les risques de sécurité lorsque les projets sont confrontés à des menaces complexes ou modifient des fonctionnalités critiques pour la sécurité. Cela implique une session de brainstorming entre nos ingénieurs, nos ingénieurs en sécurité, nos architectes et nos responsables produit afin d'identifier et de prioriser les menaces pertinentes. Ces informations servent au processus de conception et assurent l'implémentation de contrôles appropriés. Elles soutiennent également la revue et les tests ciblés dans les phases de développement ultérieures.
Notre modélisation des menaces comprend :
- l'application d'une approche basée sur les risques pour déterminer la nécessité de modéliser les menaces ;
- un processus mûr pour modéliser les menaces, y compris les supports et les outils ;
- des vidéos de formation et des articles pour aider les équipes de développement à modéliser les menaces.
Phase de développement
Tout au long du processus de développement, nous utilisons un certain nombre de processus et de pratiques de sécurité pour garantir la protection de notre code.
Examen de la sécurité
L'équipe de sécurité pilote un processus d'examen de la sécurité afin de fournir une garantie de sécurité pour tous les projets de développement chez Atlassian. Un processus d'évaluation des risques sert à définir les priorités des examens de la sécurité et à déterminer les activités nécessaires pour atténuer les risques liés au projet. Selon le niveau de risque identifié, les activités d'assurance de la sécurité combinent les éléments suivants :
- Revue de design et modélisation des menaces
- Revue de code et tests de sécurité
- Garantie indépendante faisant appel à des chercheurs et des consultants tiers experts
Revue par des pairs
Lors du développement, tout le code est soumis à notre processus de test « Peer Review, Green Build » (Examen par les pairs, build vert ou PRGB). Ce processus nécessite plusieurs développeurs en chef ou expérimentés pour examiner tous les commits avant qu'ils ne soient pushés en production. Cette approche est par ailleurs soutenue par des contrôles automatisés d'analyse statique (SAST) et des tests de sécurité manuels (réalisés par des équipes internes et des experts tiers, comme déterminé par notre processus d'évaluation des risques). Le développement est également appuyé par des programmes de formation à la sécurité des applications ainsi que par une base de connaissances sur la sécurité gérée par l'équipe de sécurité.
Cloisonnement des environnements
Nous maintenons également un cloisonnement logique et physique entre les environnements de production et hors production (développement) pour tous nos services critiques. Notre environnement de staging est séparé logiquement mais pas physiquement. Il est géré par des processus de contrôle des changements et d'accès de niveau production.
Atlassian dispose également de politiques de sécurité qui interdisent l'utilisation de données de production dans des environnements hors production. Nous tenons à jour des lignes directrices expliquant comment rendre neutres ou protéger des données restreintes, y compris des données personnelles, à l'aide de techniques d'anonymisation, de hachage et de tokénisation.
Phase de maintenance
Avant d'être pushé en production, le code doit être validé par nos processus formels de préparation opérationnelle et de contrôle des changements.
Une fois qu'un système est déployé, nous exécutons régulièrement des analyses de vulnérabilité automatisées. Comme nous l'indiquons dans nos pratiques de sécurité, nous avons également mis en place un programme Bug Bounty leader dans le secteur, qui fournit une garantie de sécurité continue avec l'aide d'un groupe crowdsourcé et fiable constitué de chercheurs en sécurité.
Tableaux de bord de la sécurité
Nous avons créé un système de responsabilisation et de surveillance appelé « tableaux de bord de la sécurité des produits ». Ces tableaux sont utilisés pour évaluer la sécurité de tous les produits Atlassian. Nous nous servons d'un large éventail de critères axés sur la sécurité tels que les vulnérabilités actuelles, la couverture de la formation et les incidents de sécurité récents, afin d'obtenir un score de sécurité quotidien global pour chacun de nos produits.
Ce processus d'évaluation donne à chacune de nos équipes produit une vue objective des domaines de sécurité qui nécessitent une attention particulière et identifie les lacunes existantes ainsi que les mesures à prendre pour les combler. Le processus des tableaux de bord de la sécurité permet également à l'équipe Atlassian chargée de la sécurité de suivre facilement tous les produits du point de vue de la sécurité au fil du temps, en particulier à mesure que notre suite de produits continue à s'agrandir.