Cette politique décrit les procédures formelles de gestion des changements et des versions au sein de Cenareo.
Elle garantit un développement, des tests, un déploiement et une gestion sécurisés et contrôlés des modifications apportées à nos applications logicielles, à nos systèmes et à notre infrastructure.
Elle fait l'objet d'une révision et d'une mise à jour périodiques afin de refléter les changements technologiques, les meilleures pratiques de l'industrie et les exigences réglementaires.
Norme du cycle de développement des logiciels (SDLC)
Cenareo maintient une norme documentée sur le cycle de vie du développement logiciel (SDLC). Cette norme définit une approche structurée pour le développement, le test, le déploiement et la maintenance des applications logicielles. Le SDLC intègre les meilleures pratiques en matière de sécurité à toutes les phases du développement.
Processus de contrôle des changements
Un processus formel de gestion de la configuration (CM) régit toutes les modifications apportées au matériel, aux logiciels et aux microprogrammes sur les plates-formes physiques et virtuelles. Ce processus comprend
- Demande de changement : Toutes les modifications proposées doivent être soumises dans le cadre d'une procédure formelle de demande de modification. La demande détaillera la nature du changement, son objectif et son impact potentiel.
- Analyse d'impact : L'équipe chargée de la sécurité de l'information évaluera les implications de la modification proposée sur le plan de la sécurité.
- Processus d'approbation : Les changements seront examinés et approuvés par un comité d'approbation des changements (CAB) désigné, sur la base d'une évaluation des risques et de l'alignement sur les objectifs de l'entreprise.
- Mise en œuvre et vérification : Les modifications approuvées seront mises en œuvre conformément aux procédures documentées et testées de manière approfondie afin de garantir leur fonctionnalité et leur sécurité.
- Documentation et contrôle des versions : Toutes les modifications seront documentées et suivies dans le cadre d'un système de contrôle des versions.
Gestion de la configuration de base
Nous maintenons des configurations de base documentées pour tous les systèmes et applications critiques. Ces configurations de base définissent l'état autorisé et sécurisé du système, en intégrant les meilleures pratiques de sécurité et les normes industrielles. Tout écart par rapport à la configuration de base doit être justifié et approuvé dans le cadre du processus de contrôle des modifications.
Pratiques de codage sécurisées
Nous nous engageons à adopter des pratiques de codage sécurisées.
Il s'agit notamment :
- Tests statiques de sécurité des applications (SAST) : Nous utilisons des outils SAST automatisés pour identifier les failles de sécurité potentielles dans le code source au cours du développement.
- Revue du code : Outre les outils automatisés, nous utilisons également des examens manuels du code par du personnel qualifié afin de détecter les défauts de sécurité et de promouvoir des pratiques de codage sécurisées au sein des équipes de développement.
Gestion des versions
Les versions des nouvelles applications et des mises à jour sont contrôlées par le processus de gestion des versions suivant.
Ce processus garantit que les procédures de test, d'emballage, de déploiement et de retour en arrière sont suivies de manière appropriée afin de minimiser les perturbations et de maintenir la stabilité du système.
Planification de la mise à disposition
- Initiation : L'équipe chargée du produit ou du développement soumet une demande formelle de mise à disposition décrivant les caractéristiques, les fonctionnalités et la date de mise à disposition prévue.
- Revue des exigences : L'équipe chargée de la sécurité de l'information examine la demande afin d'évaluer les implications en matière de sécurité et de s'assurer qu'elle est conforme aux politiques et aux normes de sécurité.
Réunion de planification de la diffusion
Une équipe interfonctionnelle, comprenant du personnel chargé du développement, des tests, des opérations et de la sécurité, participe à une réunion de planification de la mise en production afin de définir :
- Champ d'application et caractéristiques de la version.
- Calendrier et étapes du développement.
- Stratégie et critères de test.
- Plan de déploiement et procédures de retour en arrière.
- Plan de communication pour les parties prenantes.
Priorités de publication
Les mises à jour de sécurité critiques ou les fonctionnalités ayant un impact important sur l'activité peuvent faire l'objet d'une procédure accélérée, tandis que les versions à plus faible risque suivent un calendrier standard.
Nous établissons des priorités en tenant compte des facteurs suivants :
- Gravité de la sécurité des vulnérabilités traitées.
- L'impact commercial des nouvelles fonctionnalités ou des mises à jour.
- Dépendances par rapport à d'autres versions.
Développement et tests
- Développement : Les équipes de développement créent de nouvelles fonctionnalités ou des mises à jour sur la base du plan de diffusion approuvé.
- Tests de sécurité :
- Tests statiques de sécurité des applications (SAST) : Les outils automatisés de SAST sont utilisés tout au long du développement pour identifier les failles de sécurité potentielles dans le code.
- Test dynamique de la sécurité des applications (DAST) : Au fur et à mesure que le développement progresse, les outils DAST sont utilisés pour simuler des attaques réelles et identifier les vulnérabilités de la fonctionnalité.
- Test d'unité : Les développeurs effectuent des tests unitaires pour s'assurer que les modules de code individuels fonctionnent comme prévu.
- Tests d'intégration : Les tests d'intégration vérifient la fonctionnalité de différents modules fonctionnant ensemble.
- Test du système : Le test du système évalue la fonctionnalité et les performances globales de la version dans un environnement de production simulé.
- Test d'acceptation par l'utilisateur (UAT): Le cas échéant, l'UAT implique que les utilisateurs finaux testent la version pour s'assurer qu'elle répond à leurs besoins et à leurs attentes.
- Révision de la sécurité : L'équipe chargée de la sécurité de l'information procède à un examen final de la sécurité de la version candidate, en corrigeant toutes les vulnérabilités identifiées avant le déploiement.
Préparation de la mise en circulation
- Lancement Build : Une version finale est créée, incorporant toutes les fonctionnalités approuvées et les corrections de bogues.
- Documentation et notes de mise à jour : Une documentation complète et des notes de mise à jour sont préparées, détaillant les nouvelles caractéristiques, les fonctionnalités, les problèmes connus et les instructions de mise à niveau.
- Examen préalable au déploiement : L'équipe interfonctionnelle chargée de la mise en production procède à un examen final afin de s'assurer que tous les critères sont remplis pour le déploiement.
Déploiement
- Fenêtre de déploiement : Les versions sont déployées au cours de fenêtres de déploiement prédéfinies afin de minimiser les perturbations des systèmes de production.
- Stratégie de déploiement : Une approche de déploiement par étapes peut être utilisée, en déployant la version dans un environnement limité pour des tests avant le déploiement complet de la production.
- Plan de retour en arrière : Un plan de retour en arrière est en place en cas de problèmes imprévus après le déploiement.
Post-déploiement
- Suivi et assistance : Les fonctionnalités et les performances de la version publiée sont contrôlées. Des canaux d'assistance sont disponibles pour les utilisateurs qui rencontrent des problèmes.
- Bilan post-déploiement : Une revue post-déploiement est effectuée pour évaluer le succès de la diffusion, identifier les leçons apprises et améliorer les processus de diffusion futurs.
Communication et formation
L'équipe chargée de la sécurité de l'information assure une communication et une formation permanentes aux développeurs, aux administrateurs de système et aux autres membres du personnel concernés sur les pratiques de codage sécurisé, les procédures de contrôle des modifications et l'importance du développement de logiciels sécurisés.
Suivi et amélioration
Les processus de gestion des changements et des versions seront régulièrement contrôlés et examinés pour en vérifier l'efficacité. Nous nous efforçons en permanence d'améliorer ces processus sur la base des enseignements tirés et des meilleures pratiques du secteur.