Analyse statique (SAST)

Profitez de l'aperçu !

L'aperçu de Code Analysis est disponible.

Code Analysis n'est pas disponible pour le site .

Présentation

L’analyse statique (SAST) est une technique de test de logiciels qui analyse le code de préproduction d’un programme sans qu’il soit nécessaire de l’exécuter, ce qui signifie que le programme est statique parce qu’il ne s’exécute pas.

L’analyse statique vous aide à identifier les problèmes de maintenabilité et les failles de sécurité dès le début du cycle de vie du développement logiciel (SDLC), afin de garantir que seul le code de la plus haute qualité et le plus sûr soit mis en production. Les outils d’analyse statique qui recherchent les failles de sécurité sont aussi communément appelés outils de test statique de la sécurité des applications (SAST).

L’utilisation de l’analyse statique offre aux organisations les avantages suivants :

  • L’analyse statique élimine les incertitudes liées au respect des normes de code de l’entreprise, ce qui permet à l’équipe de développement de livrer un code conforme sans que cela n’impacte le temps des développeurs de manière significative.
  • Les applications d’une organisation sont moins vulnérables aux failles de sécurité au fil du temps, car les nouvelles vulnérabilités sont détectées par les analyses SAST avant que le code n’atteigne la production.
  • Les nouveaux développeurs d’une organisation sont capables de s’intégrer plus rapidement car l’analyse statique permet à une organisation de maintenir une base de code plus lisible au fil du temps.
  • Le logiciel d’une organisation devient plus fiable au fil du temps, car le code est plus facile à maintenir et le risque qu’un développeur introduise de nouveaux défauts dans le code est minimisé.

Mettre en place l’analyse statique

L’analyse statique permet de rechercher les mauvaises pratiques de codage et les failles de sécurité dans les langages et technologies suivants :

python
javascript
typescript
java
c sharp

go
ruby
php
docker
other

Pour commencer, vous pouvez configurer l’analyse statique sur la page Code Analysis ou consulter la documentation sur l’installation.

Intégrer l’analyse statique dans le cycle de développement de vos logiciels

Fournisseurs de CI

Vous pouvez exécuter une analyse statique sur n'importe quel fournisseur de plateforme CI de votre choix. Consultez la documentation spécifique au fournisseur pour configurer l'analyse statique dans vos pipelines CI :


Gestion du code source

Lors des revues de code sur GitHub, Datadog peut automatiquement signaler les non conformités de l'analyse statique dans les pull requests en ajoutant des commentaires de revue en ligne sur les lignes de code concernées. Le cas échéant, Datadog fournit également des correctifs suggérés pouvant être appliqués directement dans la pull request. Vous pouvez aussi ouvrir une pull request directement depuis Datadog pour corriger une vulnérabilité ou un problème de qualité.


IDE

Vous pouvez identifier des vulnérabilités dans le code en temps réel lors de l'édition d'un fichier dans votre environnement de développement intégré (IDE). Consultez la documentation spécifique à l'intégration pour plus d'informations :


Recherche et filtrage des résultats

Après avoir configuré vos pipelines CI pour exécuter l’analyseur statique Datadog, les non conformités sont résumées par référentiel sur la page Code Analysis Repositories. Cliquez sur un référentiel pour analyser les résultats de Code Vulnerabilities et de Code Quality de l’analyse statique.

Pour filtrer vos résultats, utilisez les facettes situées à gauche de la liste ou effectuez une recherche. Les résultats peuvent être filtrés par facettes de service ou d’équipe. Pour plus d’informations sur la façon dont les résultats sont liés aux services et équipes Datadog, consultez la section Débuter avec Code Analysis.

Chaque ligne représente une non conformité. Chaque non conformité est associée au commit spécifique et à la branche sélectionnée dans les filtres en haut de la page (par défaut, les résultats sont affichés pour le dernier commit sur la branche par défaut du référentiel que vous consultez).

Cliquez sur une non conformité pour ouvrir un panneau latéral contenant des informations sur la portée de la non conformité et son origine.

Panneau latéral pour une non conformité de l'analyse statique

Le contenu de la non conformité est affiché dans des onglets :

  • Details : une description de la non conformité et les lignes de code qui l’ont causée. Pour voir l’extrait de code en question, configurez l’app Datadog GitHub.
  • Remediation : un ou plusieurs correctifs de code qui peuvent résoudre la non conformité, avec des options de remédiation.
  • Event : métadonnées JSON concernant l’événement de non conformité de l’analyse statique.

Utilisation des corrections suggérées

Onglet Fixes d'une non conformité de l'analyse statique

Dans Datadog Static Analysis, il existe deux types de suggestions de correction :

  1. Correctif suggéré par défaut : pour les non conformités simples telles que les problèmes de linting, l’analyseur de règles fournit automatiquement des modèles de correction.
  2. Correctifs suggérés par l’IA : pour les non conformités complexes, les corrections ne sont généralement pas disponibles à l’avance. A la place, vous pouvez utiliser les corrections suggérées par l’IA, qui utilisent le GPT-4 d’OpenAI pour générer une suggestion de correction. Vous pouvez choisir entre les correctifs “Text” et “Unified Diff”, qui génèrent respectivement des instructions en texte clair ou une modification du code pour résoudre la non conformité.

Les deux types de correctifs sont distingués visuellement dans l’interface utilisateur par des tags différents.

Corrections suggérées par défaut :

Indicateur visuel d'un correctif suggéré par défaut de l'analyse statique

Corrections suggérées par l’IA :

Indicateur visuel d'un correctif suggéré par l'IA de l'analyse statique

Les corrections suggérées par l'IA sont en avant-première. Pour en demander l'accès, contactez le service d'assistance .

Correction d’une vulnérabilité ou d’un problème de qualité directement depuis Datadog

Exemple de correction en un clic pour Code Analysis

Vous pouvez pousser une modification de code pour corriger un problème détecté par Code Analysis directement depuis un résultat dans Datadog, de deux manières.

Ouvrir une pull request

Si l’autorisation Pull Requests de votre application GitHub est définie sur Read & Write, la correction en un clic est activée pour toutes les détections de Static Analysis disposant d’un correctif suggéré. Pour plus d’informations sur la configuration de l’intégration GitHub, consultez la section relative aux Pull Requests GitHub.

Suivez ces étapes pour corriger une vulnérabilité et ouvrir une pull request :

  1. Visualisez un résultat spécifique dans Code Analysis.
  2. Cliquez sur Fix Violation dans le panneau latéral du résultat.
  3. Sélectionnez Open a Pull Request.
  4. Entrez un titre pour la pull request et un message pour le commit.
  5. Cliquez sur Create PR.

Valider directement dans la branche actuelle

Vous pouvez également corriger une vulnérabilité en validant directement dans la branche où le résultat a été détecté.

Pour valider un correctif suggéré :

  1. Visualisez un résultat spécifique dans Code Analysis.
  2. Cliquez sur Fix Violation dans le panneau latéral du résultat.
  3. Cliquez sur Commit to current branch.

Personnaliser votre configuration

Pour personnaliser les règles de Static Analysis configurées dans vos référentiels, consultez la documentation relative à la configuration.

Signaler des faux positifs

Si vous pensez qu’une non conformité spécifique est un faux positif, vous pouvez la signaler comme tel en indiquant la raison du signalement, ce qui envoie un rapport à Datadog. Les soumissions sont examinées régulièrement afin d’améliorer la qualité du jeu de règles au fil du temps.

Bouton pour signaler une non conformité de Static Analysis comme faux positif

Pour aller plus loin