outils_devsecops

13 juin 2023

Le DevSecOps met en évidence l'importance de la sécurité dans le DevOps. Cela consiste à responsabiliser les développeurs quant aux problèmes de sécurité de leur code selon trois axes : les personnes, les processus et les outils.

L'outillage permet aux développeurs de déplacer la sécurité vers la gauche dans le cadre du cycle de vie DevSecOps.

Dependency Check: l'un des outils DevSecOps les plus importants

Qu'est-ce que c'est ?

L'un des outils les plus critiques du DevSecOps est un vérificateur de dépendances (dependency checker). Cela s'explique par le fait que la plupart des projets logiciels incluent au moins 80 % de dépendances externes, qui peuvent introduire des vulnérabilités de sécurité dans votre code source. Un rapport de Snyk a révélé que 78 % des vulnérabilités sont trouvées dans des dépendances indirectes.

Vous pouvez consulter leur rapport complet sur "The state of open source security - 2019".

Comment cela fonctionne-t-il ?

Un vérificateur de dépendances analyse la version des dépendances externes installées dans votre code source et les recherche dans une base de données externe de vulnérabilités comme NVD ou CVE. Si la version que vous avez installée est liée à une CVE (Common Vulnerabilities and Exposures), en fonction du score CVE (de 0 pour un impact faible à 10 pour un impact critique), l'outil alerte votre équipe DevSecOps.

Ces analyses peuvent être lancées localement dans le processus de développement ou par un pipeline CI/CD. Configurez votre pipeline pour qu'il échoue si le score CVE est trop élevé.

L'article suivant vous explique tout ce que vous devez savoir sur le pipeline CI/CD.

Outils

Les outils que vous pouvez utiliser dépendent de votre code source. Voici quelques exemples :

Tests de sécurité statiques d'application (SAST)

Qu'est-ce que c'est ?

Les tests de sécurité statiques d'application ou SAST sont une partie essentielle des outils DevSecOps. Ils permettent aux équipes de développement de scanner le code tout en travaillant pour identifier et remédier aux éventuelles failles de sécurité. Ces menaces sont classées selon leur niveau de gravité pour aider à déterminer la priorité des corrections.

Comment cela fonctionne-t-il ?

Dans les pipelines CI/CD, la configuration SAST contient des "gates" qui permettent de configurer le nombre de vulnérabilités autorisées avant de faire échouer le pipeline.

Outils

Les outils dépendent du code source :

Pour plus d'outils et d'informations, consultez le site web OWASP.

Analyse des images

Qu'est-ce que c'est ?

Les ingénieurs déploient chaque jour des images Docker. Dans un environnement DevSecOps, la principale préoccupation est d'identifier les vulnérabilités au sein de ces images. Les vérificateurs de dépendances aident à éliminer les problèmes de sécurité du code source, mais vous vous reposez toujours sur l'image Docker pour héberger votre code. C'est l'image de base définit cette configuration.

Cette image de base est un environnement prêt à l'emploi pour votre code, mais vous devez mettre à jour fréquemment la version de l'image de base pour vous assurer que les dépendances de cet environnement ne sont pas vulnérables.

Comment cela fonctionne-t-il ?

L'analyse des images intervient dans l'environnement DevSecOps lors du pipeline CI/CD. Les outils d'automatisation analysent chaque couche de l'image. Si cela ne vous dit rien, vous devriez lire cet article sur les conteneurs.

Outils

Pour les images Docker, je trouve que Clair est l'un des meilleurs produits pour analyser vos images. Il s'intègre aux registres de conteneurs.

Ils analysent votre image dès qu'elle est téléchargée.

Le DevSecOps est de plus en plus crucial pour maintenir un code source sécurisé au sein de votre organisation. La gestion des accès est un aspect important du DevSecOps ; consultez l'article suivant pour en savoir plus sur l'utilisation de Terraform avec les comptes AWS.

Conclusion

Aujourd'hui, nous déployons plusieurs fois par jour, et les problèmes de sécurité peuvent s'infiltrer à tout moment. Ces outils aident les développeurs à visualiser et à agir sur ces vulnérabilités le plus rapidement possible, car savoir est déjà la moitié de la bataille.

Tous ces outils sont des tests de type "boîte blanche". Si vous souhaitez aller plus loin, vous pouvez mettre en œuvre des tests de type "boîte noire" avec ZAP ou Burp.