Partage via


Analyse de code sans agent dans Microsoft Defender pour le cloud

L'analyse de code sans agent dans Microsoft Defender pour le cloud offre une couverture de sécurité rapide et évolutive pour tous les référentiels dans Azure DevOps. Il détecte rapidement les vulnérabilités dans le code et les configurations d'infrastructure en tant que code (IaC) sans nécessiter d'agents ou de modifications du pipeline d'intégration et de déploiement continus (CI/CD). Cette approche simplifie la configuration et la maintenance avec un seul connecteur Azure DevOps, et fournit une large couverture, des informations continues et des résultats de sécurité exploitables. Il permet aux équipes de sécurité et de développement de se concentrer sur la résolution des risques sans interrompre les flux de travail de développement.

Prérequis

Principaux avantages

  • Gestion proactive des risques : identifiez les risques au début du processus de développement. Cela permet de soutenir les pratiques de codage sécurisées et de réduire les vulnérabilités avant qu'elles n'atteignent la production.
  • Intégration sans effort : configurez rapidement avec une configuration minimale et aucun changement de pipeline.
  • Gestion centralisée à l’échelle de l’entreprise : analysez automatiquement le code sur plusieurs référentiels à l’aide d’un seul connecteur. Cela permet d'obtenir une couverture étendue pour les grands environnements.
  • Insights rapides pour une correction rapide : recevoir des insights sur les vulnérabilités actionnables juste après l’intégration. Cela permet d'apporter des solutions rapides et de réduire le temps d'exposition.
  • Compatible avec les développeurs et transparents : fonctionnent indépendamment des pipelines d’intégration continue et de déploiement continu (CI/CD), sans aucune modification ni intervention directe du développeur. Cela permet une surveillance continue de la sécurité sans perturber la productivité ou les flux de travail des développeurs.

Fonctionnalités de risques de détection

L'analyse de code sans agent améliore la sécurité en offrant des suggestions de sécurité ciblées pour le code et les modèles d'infrastructure en tant que code (IaC). Cela s'ajoute aux suggestions de sécurité de la gestion de la sécurité du cloud (CSPM) fournies par le biais du connecteur. Les principales capacités de détection sont les suivantes :

La création du connecteur renforce la sécurité en fournissant un ensemble fondamental de suggestions de sécurité pour les référentiels, les pipelines et les connexions de service.

Outils d'analyse

L’analyse du code sans agent utilise différents outils open source pour rechercher des vulnérabilités et des configurations incorrectes dans le code et les modèles IaC (Infrastructure-as-Code) :

Outil Langues ou IaC prises en charge Licence
Bandit Python Apache 2.0
Checkov Modèles IaC Terraform, fichiers de plan Terraform, modèles AWS CloudFormation, fichiers manifestes Kubernetes, fichiers graphiques Helm, fichiers Docker, modèles IaC Azure d’Azure Resource Manager (ARM), modèles IaC Azure Bicep, modèles AWS SAM (modèle d'application serverless), fichiers Kustomize, modèles de framework sans serveur, fichiers de spécification OpenAPI Apache 2.0
ESLint JavaScript, TypeScript, JSX, TSX MIT
Template Analyzer Modèles IaC ARM, modèles IaC Biceps MIT
Terrascan Modèles IaC Terraform (HCL2), fichiers manifestes Kubernetes (YAML/JSON), Dockerfiles, modèles AWS CloudFormation (YAML/JSON), modèles IaC Azure ARM, fichiers graphiques Helm (v3), fichiers Kustomize Apache 2.0

Ces outils prennent en charge un large éventail de langages et de cadres IaC, garantissant une analyse approfondie de la sécurité dans l'ensemble de votre base de code.

Plateformes et types de fichiers pris en charge

Système de gestion de versions

  • Azure DevOps : prise en charge complète des référentiels connectés via le connecteur Azure DevOps.

Langages de programmation

  • Python
  • JavaScript/TypeScript

Plateformes et configurations de l'infrastructure en tant que code (IaC)

Plateforme IaC Types de fichiers pris en charge Notes
Terraform .tf, .tfvars Prend en charge les modèles Terraform IaC dans le langage HCL2, y compris les fichiers variables dans .tfvars.
Terraform Plan Fichiers JSON Inclut des fichiers JSON représentant les configurations prévues, utilisés pour l'analyse et le balayage.
AWS CloudFormation Fichiers JSON, YAML Prend en charge les modèles AWS CloudFormation pour définir les ressources AWS.
Kubernetes Fichiers YAML, JSON Prise en charge des fichiers manifestes Kubernetes pour définir les configurations dans les clusters.
Helm Structure des répertoires de la carte Helm, fichiers YAML Respecte la structure graphique standard de Helm ; prend en charge les fichiers graphiques de Helm v3.
Docker Fichiers nommés Dockerfile Supporte les Dockerfiles pour les configurations de conteneurs.
Modèles ARM Azure Fichiers JSON Prise en charge des modèles IaC d’Azure Resource Manager (ARM) au format JSON.
Azure Bicep Fichiers .bicep Prend en charge les modèles Bicep IaC, un langage spécifique au domaine (DSL) pour ARM.
AWS SAM Fichiers YAML Prend en charge les modèles d'application sans serveur (SAM) d'AWS pour les ressources serverless.
Kustomize Fichiers YAML Prise en charge des fichiers de configuration pour la personnalisation de Kubernetes (Kustomize).
Serverless Framework Fichiers YAML Prend en charge les modèles pour le framework Serverless dans la définition des architectures sans serveur.
OpenAPI Fichiers YAML, JSON Prise en charge des fichiers de spécification OpenAPI pour la définition d'API RESTful.

Activer l'analyse de code sans agent sur vos organisations Azure DevOps

Pour connecter vos organisations Azure DevOps à Microsoft Defender pour le cloud et activer l’analyse du code sans agent, reportez-vous aux instructions de Connecter vos organisations Azure DevOps. L'illustration suivante montre le processus d'installation rapide et simple, en vous guidant à travers chaque étape pour une intégration transparente.

Image GIF montrant le processus de configuration pour activer la lecture de codes sans agent

Comment fonctionne l’analyse de code sans agent

L'analyse de code sans agent fonctionne indépendamment des pipelines CI/CD. Il utilise le connecteur Azure DevOps pour analyser automatiquement le code et les configurations de l'Infrastructure-as-Code (IaC). Vous n'avez pas besoin de modifier les pipelines ou d'ajouter des extensions. Cette configuration permet une analyse large et continue de la sécurité dans plusieurs référentiels. Les résultats sont traités et affichés directement dans Microsoft Defender pour le cloud.

Diagramme montrant l’architecture d’une analyse de code sans agent.

Processus d’analyse

Une fois que vous avez activé la fonction d'analyse de codes sans agent dans un connecteur, le processus d'analyse suit les étapes suivantes :

  1. Découverte du référentiel : le système identifie automatiquement tous les référentiels liés via le connecteur Azure DevOps juste après la création du connecteur, puis toutes les 8 heures.
  2. Récupération du code : il récupère en toute sécurité le dernier code de la branche par défaut (principale) de chaque référentiel à des fins d’analyse, d’abord après la configuration du connecteur, puis tous les 3 à 4 jours.
  3. Analyse : le système utilise un ensemble d’outils d’analyse intégrés gérés et mis à jour dans Microsoft Defender pour le cloud pour rechercher des vulnérabilités et des configurations incorrectes dans le code et les modèles IaC.
  4. Traitement des résultats : il traite les résultats de l’analyse par le biais du back-end de Microsoft Defender pour le cloud pour créer des suggestions de sécurité exploitables.
  5. Livraison des résultats : le système présente les résultats sous forme de recommandations de sécurité dans Microsoft Defender pour le cloud, ce qui permet aux équipes de sécurité de passer en revue et de résoudre les problèmes.

Fréquence et durée des analyses

  • Fréquence des analyses :
    • La sécurité des référentiels, des pipelines et des connexions de service est évaluée lors de la création du connecteur, puis toutes les 8 heures.
    • Le système analyse le code et les modèles d'infrastructure en tant que code (IaC) à la recherche de vulnérabilités après la création du connecteur, puis tous les 3 à 4 jours.
  • Durée de l’analyse : les analyses se terminent généralement dans les 15 à 60 minutes, en fonction de la taille et de la complexité du référentiel.

Afficher et gérer les résultats de l’analyse

Une fois les analyses terminées, vous pouvez accéder aux résultats de sécurité dans Microsoft Defender pour le cloud.

Résultats d’accès

  1. Accédez à l’onglet Recommandations de sécurité dans Microsoft Defender pour le cloud.

  2. Examinez la liste des suggestions, qui comprend des conclusions telles que :

  3. Sélectionnez une suggestion pour obtenir des informations détaillées, notamment sur les fichiers affectés, les niveaux de gravité et les conseils de remédiation.

Différence entre l'analyse de code sans agent et l'analyse in-pipeline

L'analyse de code sans agent et l'analyse en ligne à l'aide de l'extension Microsoft Security DevOps offrent toutes deux une analyse de sécurité au sein d’Azure DevOps. Ils répondent à des besoins différents mais fonctionnent bien ensemble. Le tableau suivant met en évidence les principales différences pour vous aider à choisir l'option qui correspond à vos besoins en matière de sécurité et de développement.

Aspect Analyse de code sans agent Analyse dans le pipeline
Ajuster le cas d’utilisation Offre une large couverture avec un minimum de perturbations pour les développeurs Fournit des analyses détaillées, intégrées au pipeline, avec des contrôles personnalisables
Étendue et couverture de l’analyse L'accent est mis sur l'infrastructure en tant que code (IaC) et l'analyse des vulnérabilités du code, programmée tous les 3 à 4 jours Offre une couverture étendue, y compris des binaires et des images de conteneurs, déclenchée à chaque exécution du pipeline
Installation et configuration Aucune autre configuration n'est nécessaire après la création du connecteur Nécessite une installation et une configuration manuelles dans chaque pipeline Azure CI/CD
Intégration de pipeline Fonctionne indépendamment des pipelines (CI/CD) sans modifier les flux de travail S'intègre dans le pipeline CI/CD, nécessitant une configuration YAML dans chaque pipeline
Personnalisation de l’analyseur Les scanners ne peuvent pas être personnalisés ou exécutés de manière sélective Permet la personnalisation avec des scanners spécifiques, des catégories, des langues, des niveaux de sensibilité et des outils non-Microsoft
Résultats et commentaires Permet d'accéder aux résultats dans Microsoft Defender pour le cloud Offre un retour d'information en temps quasi réel dans le pipeline CI/CD, les résultats étant également visibles dans Microsoft Defender pour le cloud
Critères d’arrêt et d’échec Les constructions ne peuvent pas être interrompues Peut être configuré pour interrompre les constructions en fonction de la gravité des découvertes en matière de sécurité

Extensibilité et impact de la performance

L'analyse de code sans agent évite de créer des ressources dans l'abonnement et ne nécessite pas d'analyse pendant le processus de pipeline. Il utilise l'API Azure DevOps REST pour extraire les métadonnées et le code. Cela signifie que les appels API sont pris en compte dans les limites de taux d’Azure DevOps, mais que vous n'avez pas à supporter de coûts directs de transfert de données. Le service gère les analyses pour s'assurer qu'elles restent dans les limites du taux Azure DevOps sans interrompre l'environnement de développement. Cette méthode permet une analyse efficace et performante des référentiels sans affecter les flux de travail DevOps. Pour plus d’informations, consultez Limites du débit et de l’utilisation d’Azure DevOps.

Sécurité des données, conformité et contrôle d'accès pour la lecture de codes sans agent

Le service d’analyse de code sans agent Microsoft Defender pour le cloud garantit une gestion sécurisée et conforme de votre code en implémentant des mesures strictes de sécurité et de confidentialité des données :

  • Chiffrement des données et contrôle d’accès : le système chiffre toutes les données en transit à l’aide de protocoles standard. Seuls les services autorisés de Microsoft Defender pour le cloud peuvent accéder à votre code.
  • Résidence et rétention des données : les analyses se produisent dans la même zone géographique que votre connecteur Azure DevOps (États-Unis ou Europe) pour se conformer aux lois de protection des données. Le système ne traite le code que pendant la numérisation et le supprime ensuite en toute sécurité, sans stockage à long terme.
  • Accès aux référentiels : le service génère un jeton d’accès sécurisé pour Azure DevOps afin d’effectuer des analyses. Ce jeton permet de récupérer les métadonnées et le code nécessaires sans créer de ressources dans votre abonnement. Seuls les composants de Microsoft Defender pour le cloud y ont accès, ce qui protège l'intégrité des données.
  • Prise en charge de la conformité : le service s’aligne sur les normes réglementaires et de sécurité pour la gestion et la confidentialité des données, garantissant ainsi un traitement et une analyse sécurisés du code client conformément aux exigences régionales en matière de protection des données.

Ces mesures garantissent un processus de lecture de codes sécurisé, conforme et efficace, tout en préservant la confidentialité et l'intégrité de vos données.

Limitations (préversion publique)

Pendant la phase de préversion publique, les limitations suivantes s’appliquent :

  • Aucune analyse binaire : le système analyse uniquement le code et les fichiers IaC (Infrastructure-as-Code).

  • Fréquence d’analyse : il analyse les référentiels tous les 3 à 4 jours.

  • Taille du référentiel : elle limite l’analyse aux référentiels de moins de 1 Go.

  • Couverture des branches : les analyses couvrent uniquement la branche par défaut (principale).

  • Personnalisation de l’outil : vous ne pouvez pas personnaliser les outils d’analyse.