
Scanner basé sur des expressions régulières pour détecter les identifiants codés en dur dans les bases de code, conçu pour l'intégration CI/CD avec prise en charge des commentaires de suppression et de faibles taux de faux positifs.
Ce script est destiné à analyser une base de code large et diversifiée pour détecter des identifiants codés en dur, ou des identifiants présents dans des fichiers de configuration. Ceux-ci représentent un problème de sécurité sérieux, et peuvent être extrêmement difficiles à détecter et à gérer.
L'objectif particulier de ce script est de créer un outil qui peut être utilisé directement par les équipes de développement dans un pipeline CI/CD, pour gérer le processus de correction de ce problème en alertant l'équipe lorsque des identifiants sont présents dans le code, afin que l'équipe puisse immédiatement corriger les problèmes dès qu'ils surviennent.
Il est possible d'utiliser l'outil comme un scanner ponctuel pour ce problème, mais – comme les identifiants ont tendance à réapparaître dans la base de code au fil du temps – nous recommandons fortement d'intégrer le script dans le processus CI/CD, le mécanisme de construction automatisé ou tout autre processus d'analyse automatisée régulièrement programmé que l'équipe effectue.
Le script est écrit avec les objectifs suivants en tête :
Le script tente de fournir une certaine compatibilité avec d'autres outils SAST populaires.
Le texte '# noqa file' au début ou près du début d'un fichier empêchera le signalement de tout problème supplémentaire dans ce fichier, de même que le texte 'flake8: noqa'.
Le texte '# noqa' sur une ligne individuelle empêchera le signalement des problèmes sur cette ligne. De nombreux autres commentaires de suppression courants fonctionneront également ; la liste actuelle est :
# noinspection
# noqa
#noqa
@SuppressWarnings
DevSkim
NOLINT
NOSONAR
checkmarx
coverity
fortify
noinspection
nosec
safesql
veracode
Nous recommandons également l'utilisation du commentaire '# noqa cred', pour indiquer clairement aux membres de l'équipe que c'est spécifiquement la présence d'un identifiant qui est la raison du faux positif. Plusieurs des outils référencés ici (par exemple, devskim) utilisent des codes d'erreur spécifiques liés aux outils pertinents pour le langage ou la plateforme utilisée, qui servent le même objectif. Il est possible que la même ligne de code comporte plusieurs erreurs de types différents.
Nous mettons en garde contre le fait de supprimer une alerte d'un outil SAST qui est un vrai positif. Il est de bonne pratique de réviser périodiquement les commentaires de suppression SAST/lint dans une base de code pour s'assurer qu'aucun « vrai positif » n'a été supprimé.
Le drapeau de ligne de commande '-nosuppress' fait en sorte que le script ignore tous les commentaires de suppression.