Les clients utilisant la plateforme DevSecOps de GitLab ont constaté qu'elle facilite le processus d'audit SOC 2. Découvrez dans cet article le framework SOC 2 et les fonctionnalités de GitLab qui aident les clients à se préparer à cet audit de conformité.
Introduction au SOC 2
Le framework SOC 2 (pour System and Organization Controls 2) est une norme de conformité volontaire qui précise les modalités de gestion des données clients dont les entreprises doivent faire preuve. Le rapport d'audit SOC 2 leur permet de certifier la fiabilité des logiciels qu'elles mettent à disposition de leurs clients professionnels.
Développé par l'Association of International Certified Professional Accountants (AICPA), le framework SOC 2 se concentre sur cinq critères de services de confiance (TSC) :
- La sécurité : protéger les données des clients contre les vulnérabilités et les accès non autorisés.
- La disponibilité : garantir que les systèmes sont tolérants aux pannes et performants, même sous des charges élevées, afin de respecter les accords de niveau de service en matière de disponibilité.
- L'intégrité du traitement des données : assurer que les systèmes fonctionnent comme prévu, sans vulnérabilités, erreurs ou bogues.
- La confidentialité : protéger les informations confidentielles telles que le code source de l'application, les noms d'utilisateur et les mots de passe, les informations de carte de crédit, etc., afin que seules les personnes autorisées puissent y accéder.
- Le respect de la vie privée : protéger l'accès aux informations personnelles sensibles (PII) contre les utilisateurs non autorisés.
La sécurité est le seul critère obligatoire pour tous les audits SOC 2. Les autres critères peuvent être pris en compte s'ils sont jugés critiques pour les services fournis.
TSC de sécurité
Ce critère concerne non seulement la sécurité des serveurs et des systèmes physiques, mais aussi des applications. Les vulnérabilités logicielles peuvent exposer une application aux attaques, mettant les données des clients en danger. Toutefois, GitLab peut vous apporter de l'aide dans ce domaine.
GitLab propose des scans de sécurité pour identifier les vulnérabilités potentielles dans les applications développées par une entreprise, notamment :
- Les tests statiques de sécurité des applications (SAST) : ils analysent le code source à la recherche de bogues et de vulnérabilités potentiels, tels qu'un code non sécurisé pouvant entraîner une exécution involontaire du code.
- L'analyse des dépendances : elle permet d'identifier les failles de sécurité dans les dépendances logicielles d'une application.
- L'analyse des conteneurs : elle met en lumière les failles de sécurité dans les dépendances du système d'exploitation d'une application conteneurisée.
- Les tests dynamiques de sécurité des applications (DAST) : ils détectent les failles de sécurité dans une application web en cours d'exécution qui la rendent vulnérable à une attaque.
- Le scanning d'infrastructure en tant que code (IaC) : il analyse les fichiers de configuration de l'infrastructure en tant que code, y compris les fichiers Terraform, Ansible, AWS CloudFormation et Kubernetes, pour identifier les failles de sécurité.
GitLab fournit également un rapport sur les vulnérabilités détaillé, qui présente toutes les failles de sécurité connues dans l'application actuelle, sur la base des scans mentionnés précédemment. De plus, GitLab met également à disposition une nomenclature logicielle (SBOM) au format JSON CycloneDX standard, qui révèle toutes les dépendances, tant au niveau du logiciel que du système d'exploitation, ainsi que les vulnérabilités connues associées.
Ces scans réguliers des vulnérabilités et les rapports de vulnérabilité complets répondent aux trois critères de sécurité suivants.
- CC7.1 : pour atteindre ces objectifs, l'entité met en place des procédures de détection et de surveillance permettant d'identifier (1) les modifications de configuration qui introduisent de nouvelles vulnérabilités et (2) les vulnérabilités récemment découvertes.
- CC4.1, principe n° 16 du COSO : l'entité sélectionne, développe et effectue des évaluations continues et/ou séparées pour déterminer si les composantes du contrôle interne sont présentes et fonctionnent.
- CC4.2, principe n° 17 du COSO : l'entité évalue et communique les déficiences du contrôle interne en temps opportun aux parties responsables de la prise des mesures correctives, y compris la haute direction et le conseil d'administration, le cas échéant.
La gouvernance et l'application des réglementations constituent l'élément fondamental des scans de sécurité. Les fonctionnalités de GitLab garantissent que les scans sont réalisés régulièrement et que les équipes de développement logiciel ne sont pas en mesure de les contourner. Parmi ces fonctionnalités figurent :
- Les contrôles d'accès basés sur les rôles pour limiter les utilisateurs pouvant apporter des modifications aux paramètres de configuration au niveau du projet.
- Les stratégies d'exécution des scans pour exécuter les scans sur chaque dépôt de code.
- Les politiques d'approbation des merge requests pour s'assurer que les résultats des scans sont examinés et validés par les parties prenantes responsables de la sécurité, afin d'éviter l'introduction de vulnérabilités nouvellement détectées dans le logiciel déployé.
- Les rapports de conformité mettent en évidence toute modification des configurations GitLab susceptible d'enfreindre les processus de sécurité en place.
Une fois ces configurations définies, les entreprises peuvent prouver qu'elles accordent la priorité à la sécurité de leurs applications et qu'elles appliquent des pratiques de sécurité strictes.
TSC de disponibilité et d'intégrité du traitement
GitLab peut également vous aider à appliquer les critères de services de confiance dans les domaines de la disponibilité et de l'intégrité du traitement. Ils mettent l'accent sur la qualité et les performances de l'application elle-même. Pour garantir la conformité à ces critères, GitLab fournit :
- Les résultats des tests unitaires et les modifications de la couverture du code, présentés sous la forme de rapports de couverture du code, qui garantissent que le code source est validé par une suite de tests rigoureux.
- L'analyse de la qualité du code, qui évalue la qualité et la complexité du code source pour en faciliter la lecture et sa maintenance.
Ces pratiques de développement logiciel mentionnées ici sont utilisées dès les premières étapes du cycle du développement pour garantir que le code est testé et de haute qualité. En outre, GitLab propose des modèles pour exécuter divers types de tests automatisés sur une application en cours d'exécution, afin de s'assurer qu'elle fonctionne comme prévu. Ces tests comprennent :
- Les tests de performances du navigateur, qui mesurent le temps de chargement des sites web tout au long du cycle de développement afin d'évaluer l'impact de toute modification du code sur les performances du navigateur.
- Les tests de charge, qui évaluent les performances système du backend d'une application au cours du cycle de développement pour mesurer l'impact de toute modification du code sur les performances générales.
- Les tests à données aléatoires guidés par la couverture de code, qui envoient des données inattendues, invalides ou aléatoires à une application et surveillent ensuite son comportement pour détecter d'éventuelles instabilités ou pannes.
- Les tests de l'API par injection de données aléatoires, qui envoient des données inattendues, invalides ou aléatoires aux points de terminaison de l'API pour rechercher des bogues et des failles de sécurité.
En se concentrant sur la mise en œuvre de pratiques DevSecOps solides avec GitLab visant à créer des applications sécurisées de haute qualité, les entreprises peuvent plus facilement réussir les audits SOC 2 et attester de la sécurité des données de leurs clients.
En savoir plus : Renforcez votre stratégie de cybersécurité avec le concept Secure by Design.