Aller au contenu principal

R2DevOps sécurise la supply chain

· 4 minutes de lecture
Stéphane ROBERT
Consultant DevOps

Il y a un an, je vous présentais R2DevOps, un outil de gestion des templates de pipeline CI/CD de Gitlab. Un an après et à l'occasion d'une nouvelle rencontre, j'ai l'occasion de l'ajouter à la stack d'outils de l'usine logicielle. Cela m'a permis de voir que R2Devops a beaucoup évolué !

Lors de mon précédent billet seule la partie de création des pipelines de CI/CD de Gitlab existait. Je ne vous apprendrai rien en disant que maintenir le code de nos pipelines à jour n'est pas une mince affaire. En effet, il nous manque dans Gitlab un tableau de bord centralisant toutes les informations nécessaires. C'est ce trou que R2Devops vient combler.

Désormais R2Devops s'est doté d'un outil d'analyse et d'un tableau de bord centralisant beaucoup d'informations dont nous allons en faire le tour. Je vais l'utiliser sur un groupe de mes projets persos, que je ne maintiens pas par manque de temps.

Cette copie d'écran est partielle, car les parties manquantes seront expliquées plus loin dans ce billet.

Vous remarquez que cet écran regroupe plusieurs onglets :

  • Overview : qui permet de rapidement identifier l'état de santé l'ensemble des pipelines de vos projets. On y trouve des indicateurs sur la sécurité, la maintenabilité, la conformité et des runners.
  • Maintainability : L'outil d'analyse recherche et quantifie tout ce qui peut ajouter des problèmes à la maintenance du code des pipelines.
  • Compliance : (en cours de développement) L'outil d'analyse va permettre de contrôler la présence de l'ensemble des jobs nécessaires pour rendre le pipeline conforme.
  • Security : L'outil d'analyse recense l'ensemble des mauvaises pratiques qui conduisent à des problèmes de sécurité.
  • Runners : Des infos sur les runners (partagés ou dédiés)
info

Toutes ces informations sont fournies pour l'ensemble des projets sur lesquels vous avez les droits d'accès (via cotre compte).

Maintenabilité du code des pipelines

La maintenabilité des codes de pipelines peut être compliquée par le manque de recours à des templates de CI. En effet, cela peut introduire à devoir soutenir un nombre très important de code dupliqué dans plusieurs projets.

On voit que dans cet onglet, on peut facilement détecter les jobs hardcodés (ne faisant pas appel à des templates), ou dupliqués (identiques, mais pas templatisé.)

Sur mon compte mes templates perso ne sont pas versionnés, mais si c'était le cas R2Devops indiquerait si les versions utilisées sont bien les dernières disponibles.

Une feature qui me plait beaucoup : Si une nouvelle version d'un template est détecté sur un projet, il est possible de le mettre à jour directement. Ce qui me plait, c'est que cette mise à jour se fait via à une merge request, comme avec Renovate.

Conformité du code des pipelines

Pour le moment cet onglet est en cours de développement et sera bientôt disponible.

Qu'est-ce qu'un pipeline CI/CD conforme ? Et bien, c'est un pipeline qui remplit les critères que vous avez définit. C'est par exemple, l'utilisation de jobs de lint, de tests, d'analyse de code, de signature, ...

Problème de Sécurité du code des pipelines

R2Devops analyse ici que vos pipelines de CI/CD ne contiennent des failles de sécurité. Pour le moment, il indique si votre code contient des secrets, mais aussi des variables pouvant être récupérés par l'absence de masquage ou qui ne sont pas protégées.

Le reste des sous-onglets est inaccessible pour le moment mais devrait permettre d'identifier des problèmes de sécurité sur les dépendances, des images de containers non conforme et dans les scripts des jobs.

Et les runners ?

Comment cela les runners ? Et oui le fait de recourir à des vielles versions du runner gitlab peut poser des problèmes de sécurité. Des personnes malveillantes pourraient exploiter des failles de sécurité, bien souvent oublié.

La première partie de cet onglet permet d'avoir un compte rendu rapide de possibilités d'upgrade des runners Gitlab. On voit ici, que 50% des runners sont inaccessibles, qu'une partie d'entre eux peuvent être mis à jour.

Conclusion

Pour ceux qui sont sensibles à la sécurisation de la supply chain, R2Devops vient combler un manque. R2Devops est donc devenu un outil incontournable !

Pour rappel, il existe une version online de R2Devops qui fonctionne avec gitlab.com. Si vous souhaitez l'utiliser sur votre serveur Gitlab, il faudra l'installer. Deux modes d'installation sont disponibles : Helm et Docker-compose. Dans un prochain billet, je vous détaillerai comment l'installer sur un cluster Kubernetes avec une base de données Postgresql externe.

Les liens