Configurer GitHub Advanced Security pour GitHub et Azure DevOps

Effectué

GitHub Advanced Security est une suite de fonctionnalités de sécurité offertes par GitHub pour aider les organisations à identifier et atténuer les vulnérabilités de sécurité, à sécuriser leur code et à protéger leur chaîne d’approvisionnement logicielle. Elle se compose des composants clés suivants :

  • L’analyse de code analyse automatiquement le code dans les référentiels pour détecter les vulnérabilités de sécurité et les erreurs de codage à l’aide de techniques d’analyse statique fournies par CodeQL ou des outils tiers. Elle identifie les vulnérabilités de sécurité potentielles, y compris celles liées aux dépendances obsolètes et aux chiffrements faibles.
  • L’analyse des secrets détecte et aide à corriger la présence de secrets, tels que des jetons d’API et des clés de chiffrement dans les référentiels et les validations. Elle analyse automatiquement le contenu des référentiels et génère des alertes en fonction de ses découvertes.
  • Les revues de dépendances aident à identifier et à gérer les dépendances dans les projets logiciels, en fonction des dépendances directes et transitives récupérées à partir des manifestes de package et d’autres fichiers config. Ils vous permettent d’évaluer l’impact total des modifications apportées aux dépendances, y compris les détails des versions vulnérables avant de fusionner une demande de tirage (pull request).
  • Les règles de tri automatique personnalisées vous aident à gérer les alertes Dependabot à grande échelle. Avec des règles de tri automatique personnalisées, vous contrôlez les alertes qui peuvent être ignorées et qui nécessitent l’application d’un correctif de sécurité.
  • Les avis de sécurité fournissent des avis de sécurité actualisés et des alertes sur les vulnérabilités découvertes dans les dépendances open source.

GitHub Advanced Security s’intègre en mode natif avec GitHub et Azure DevOps.

GitHub

GitHub met ses fonctionnalités de sécurité avancées à la disposition des référentiels privés sur la base de la licence Advanced Security. Une fois que vous avez acheté des licences GitHub Advanced Security pour votre organisation, vous pouvez activer et désactiver ces fonctionnalités au niveau de l’organisation ou du référentiel. Ces fonctionnalités sont également activées définitivement dans les référentiels publics sur GitHub.com sans aucune condition de licence et ne peuvent être désactivées que si vous modifiez la visibilité du projet.

Pour configurer GitHub Advanced Security pour votre organisation, dans le coin supérieur droit de GitHub.com, sélectionnez l'icône de votre profil, puis Vos organisations. Ensuite, sélectionnez Paramètres et, dans la section Sécurité de la barre latérale, sélectionnez Sécurité et analyse du code. Cette opération affiche la page qui vous permet d’activer ou de désactiver toutes les fonctionnalités de sécurité et d’analyse pour les référentiels de votre organisation.

L’impact des modifications de configuration est déterminé par la visibilité des référentiels dans votre organisation :

  • Rapports de vulnérabilités privées : référentiels publics uniquement.
  • Graphique de dépendance : seuls les référentiels privés, car la fonctionnalité est toujours activée pour les référentiels publics.
  • Alertes Dependabot : tous les référentiels.
  • Correctifs de sécurité Dependabot : tous les référentiels.
  • GitHub Advanced Security : seuls les référentiels privés, car GitHub Advanced Security et les fonctionnalités associées sont toujours activés pour les référentiels publics.
  • Analyse des secrets : référentiels publics et privés où GitHub Advanced Security est activé. Cette option permet d'activer ou non les alertes d'analyse des secrets pour les utilisateurs.
  • Analyse du code : référentiels publics et privés où GitHub Advanced Security est activé.

Vous pouvez également gérer les fonctionnalités de sécurité et d’analyse des référentiels privés individuels. Pour ce faire, à partir de GitHub.com, accédez à la page principale du référentiel et sélectionnez Paramètres. Dans la section Sécurité de la barre latérale, sélectionnez Sécurité et analyse du code. Dans le volet Sécurité et analyse du code, désactivez ou activez des fonctionnalités individuelles. Le contrôle pour GitHub Advanced Security est désactivé si votre entreprise n’a pas acheté les licences requises.

Notez que si vous désactivez GitHub Advanced Security, la revue des dépendances, les alertes d’analyse des secrets pour les utilisateurs et l’analyse du code sont désactivées en pratique. Par conséquent, tous les flux de travail qui incluent l’analyse du code échouent.

Une fois activées, les fonctionnalités de sécurité sont intégrées directement à la plateforme GitHub, fournissant une surveillance et des alertes de sécurité continues directement dans l’interface GitHub. Les administrateurs de référentiels et les développeurs peuvent accéder à des informations sur la sécurité, à des recommandations et à des mesures concrètes pour remédier aux vulnérabilités identifiées et renforcer l’état de la sécurité global de leurs projets logiciels. En outre, les organisations peuvent personnaliser des stratégies de sécurité, configurer des flux de travail automatisés et intégrer GitHub Advanced Security à d’autres outils et services de sécurité pour répondre à leurs besoins de sécurité et de conformité spécifiques.

Azure DevOps

GitHub Advanced Security pour Azure DevOps cible Azure Repos et inclut :

  • La protection push d’analyse des secrets vérifie si les Push de code incluent des validations qui exposent des secrets.
  • L’analyse du référentiel d’analyse des secrets recherche les secrets exposés dans les référentiels.
  • L’analyse des dépendances identifie les vulnérabilités directes et transitives dans les dépendances open source.
  • L’analyse du code utilise l’analyse statique CodeQL pour identifier les vulnérabilités d’application au niveau du code, telles que l’injection SQL et le contournement de l’authentification.

Vous pouvez activer la sécurité avancée au niveau de l’organisation, du projet ou du dépôt. Cela active automatiquement la protection push de l’analyse des secrets et l’analyse du référentiel. En pratique, les notifications push futures contenant des secrets sont automatiquement bloquées pendant que l’analyse des secrets s’exécute en arrière-plan.

L’analyse des dépendances est un outil d’analyse basé sur un pipeline. Les résultats sont agrégés par référentiel. Il est recommandé d’ajouter la tâche d’analyse des dépendances à tous les pipelines que vous souhaitez analyser. Pour obtenir les résultats d’analyse les plus précis, veillez à ajouter la tâche d’analyse des dépendances en suivant les étapes de génération d’un pipeline qui génère le code que vous souhaitez analyser. Vous pouvez ajouter la tâche Advanced Security Dependency Scanning (AdvancedSecurity-Dependency-Scanning@1) directement à votre fichier pipeline YAML ou la sélectionner dans l'assistant de tâches.

L’analyse du code est également un outil d’analyse basé sur un pipeline où les résultats sont agrégés par référentiel. Il s’agit généralement d’une tâche de build chronophage. Envisagez donc d'ajouter la tâche d'analyse du code à un pipeline distinct, cloné, de votre pipeline de production principal, ou de créer un nouveau pipeline. Dans le pipeline, ajoutez les tâches dans l’ordre suivant :

  • Advanced Security Initialize CodeQL (AdvancedSecurity-Codeql-Init@1)
  • Vos étapes de génération personnalisées
  • Sécurité avancée Effectuer une analyse CodeQL (AdvancedSecurity-Codeql-Analyze@1)

En outre, vous devez inclure une liste des langues, séparées par des virgules, que vous analysez à l’aide de la tâche Advanced Security Initialize CodeQL. Les langages pris en charge incluent csharp, cpp, go, java, JavaScript, python, ruby et swift.