Sécurisez votre chaîne d'approvisionnement logicielle, du build au déploiement

Vérifiez chaque composant de votre pipeline
![[object Object]](https://assets.ovhcloud.com/1fitXw7nboFbjbnFuvgF3SzuC_sMTliYmQ0MDcwMTZlZGU4/b18ae264-0c9b-41c5-b6f9-05e25cbfa958_ima_0100bc39.png)
Une assurance de publication s’appuyant sur des contrôles vérifiables
Protéger chaque étape susceptible d’être ciblée par des attaques
Qu'est-ce que la sécurité de la chaîne d'approvisionnement dans un environnement de conteneurs moderne ?
Qu'est-ce que la sécurité de la chaîne d'approvisionnement dans un environnement de conteneurs moderne ? Elle permet de protéger le parcours depuis le code source et les dépendances tierces jusqu'aux systèmes de build, au stockage d'images et aux terminaux de déploiement. La sécurité de la chaîne d'approvisionnement logicielle considère ces processus comme étant connectés, car une attaque à une extrémité de la chaîne peut affaiblir tous les contrôles ultérieurs.
Protection du référentiel source
Un référentiel source est une cible évidente. Un hacker peut voler des identifiants, modifier le code, désactiver une règle de contrôle ou introduire une dépendance qui semble légitime. Des sources de téléchargement contrôlées, un contrôle obligatoire par les pairs et des branches protégées constituent la première ligne de défense. Les équipes doivent également verrouiller les versions des dépendances et vérifier les sommes de contrôle, les licences et les origines plutôt que d'accepter des entrées changeantes pour chaque build. De tels contrôles réduisent le risque d'importer des logiciels malveillants ou non autorisés provenant d'autres parties.
Chemins d'attaque de l'infrastructure de build
L'infrastructure de build présente différents chemins d'attaque. Des exécuteurs compromis, des secrets exposés ou des images de base mutables peuvent modifier un artefact après l’approbation de sa source par les développeurs. Isolez les processus de build, utilisez des identifiants à courte durée de vie et enregistrez des entrées exactes. Cette approche contribue à la sécurité des images de conteneurs en facilitant le traçage des modifications de code imprévues.
Contrôles du registre au cluster
Le parcours du registre au cluster nécessite des contrôles indépendants. Un hacker pourrait remplacer une image approuvée, réutiliser une ancienne balise ou exploiter des autorisations de déploiement excessives. Le principe du droit d’accès minimal limite ce qui peut être publié ou récupéré par chaque identité. Des références immuables connectent les manifestes à des images précises, tandis que Kyverno est capable de rejeter les versions qui manquent de preuves fiables ou ne respectent pas les exigences de sécurité.
Attribuez les responsabilités pour les quatre priorités de gouvernance
Code de confiance et gouvernance des fournisseurs
La personne désignée comme responsable doit définir les critères concernant les sources et fournisseurs de confiance, avec le soutien des services des achats, d'ingénierie et de sécurité. Utilisez le cadre de sécurité SLSA comme guide pour renforcer l’intégrité du build et la provenance sans présumer qu’un niveau donné sera atteint. Adaptez les revues à la taille de l'entreprise et aux risques de la chaîne d'approvisionnement logicielle.
Application des politiques et conformité de l’infrastructure
Les responsables de la sécurité et des plateformes doivent traduire les obligations de conformité en mesures quantifiables d’application des politiques pour le code, le cloud et l'infrastructure. Définissez qui peut approuver les exceptions, quelles preuves ces personnes doivent fournir et comment les contrôles répondent aux exigences internes.
Documentation, audits et preuves
Désignez une ressource chargée de conserver la documentation relative aux décisions, dépendances et changements de contrôle. Des audits réguliers doivent tester si les documents conservés correspondent à la pratique opérationnelle. Les réviseurs doivent bénéficier d’un soutien suffisant pour pouvoir retracer un problème jusqu'au/à la responsable concerné(e), à la version affectée et à sa résolution.
Préparation aux incidents et responsabilité quant aux mesures correctives
Une personne responsable de la sécurité doit coordonner les fonctions de réponse avant que des hackers ne les testent. Élaborez un plan permettant de traiter les problèmes potentiels, couvrant le triage, le confinement, la communication avec les parties prenantes et la reprise. Chaque action nécessite une personne responsable, des ressources de soutien et des délais adaptés à l'exposition au risque de l'entreprise.
Exploitez Harbor au regard de quatre axes de sécurité
Contrôlez les accès avec précision
Harbor prend en charge le contrôle d'accès fondé sur les rôles (RBAC) au niveau des projets et des équipes pour différencier les charges de travail et les responsabilités de l'entreprise. Émettez des comptes robots définis pour les tâches de push/pull de la chaîne CI/CD au lieu de partager des identifiants humains généraux. Faites correspondre chaque identité à un seul objectif, renouvelez son secret et supprimez les accès inutilisés. Cette pratique limite l'impact de l'exposition des identifiants, tout en sécurisant la publication quotidienne.
Détectez les composants non sécurisés en permanence
Associez des vérifications Trivy continues à l'analyse de la composition logicielle (SCA) et à la gestion des dépendances. Ces outils détectent les vulnérabilités connues, les paquets obsolètes et les indicateurs de code malveillant au sein de chaque composant. Produisez un rapport clair pour chaque version, incluant la gravité, l'emplacement et le statut des mesures correctives. Les équipes peuvent alors distinguer les résultats bloquants des exceptions acceptées et savoir si de nouvelles informations affectent les artefacts stockés.
Connectez les workflows de développement
Intégrez la plateforme à GitLab CI, Tekton et d'autres workflows de développement approuvés. Veillez à ce que les décisions de politique restent proches du pipeline, afin que l’échec d’un contrôle renvoie un retour utile avant la promotion. Les références de gestion du code source (SCM) doivent lier chaque artefact à sa validation, à son exécution de build et à la personne qui en est responsable. Les équipes DevSecOps disposent alors d'archives cohérentes plutôt que de preuves diverses dispersées à travers les systèmes.
Préparez la réponse opérationnelle
Mettez en place un plan d’intervention en cas d’incident pour les identifiants compromis, les images non sécurisées et les contrôles ayant échoué. Définissez les personnes compétentes pour suspendre la distribution, supprimer une version affectée, enquêter sur les accès et approuver la reprise. Une personne responsable et une procédure de réponse attendue sont nécessaires pour les alertes ; une simple génération d’alerte ne réduit pas le risque. Menez des exercices pour confirmer que les équipes de sécurité et des plateformes peuvent trouver le rapport pertinent, isoler le contenu et communiquer les décisions. Ce pilier opérationnel transforme la détection en mesures opportunes pour toute la plateforme de distribution.
Préservez des preuves fiables pour chaque version
![[object Object]](https://assets.ovhcloud.com/1fizSgoLX7LAb5m2AAqmCv3gA_sZTMwNzM1NGY2YWQ5N2M0/9f9bf6c7-1f30-418e-aec9-ae4917f627c3_ima_c561b8a0.png)