La lecture manuelle du code est un processus qui prend du temps. Il est également sujet aux erreurs, car il est facile de manquer des détails importants. En tant que développeurs et testeurs d'intrusion, nous devons trouver un moyen d'automatiser ce processus. SAST est une technique qui peut nous aider dans cette tâche. Il n'est utilisable que pour les cas d'utilisation avec accès au code source pour les projets open source ou les tests d'intrusion en boîte blanche. Cependant, cela peut vous aider à trouver des fruits à portée de main et à gagner du temps. SAST n’est pas une solution miracle. Qu’est-ce que le SAST ? Les tests de sécurité des applications statiques (SAST) sont un sous-ensemble de l'analyse de code statique utilisé pour augmenter la sécurité et la fiabilité du code. SAST détecte les anciennes dépendances, la détection des secrets, les erreurs logiques conduisant à des vulnérabilités, etc. SAST comprend des tests qui affectent secondairement la cybersécurité, tels que la complexité visuelle du code, l'ambiguïté du code et les pratiques non intuitives pouvant conduire à des vulnérabilités. Outils en pratique Les outils SAST sont généralement des comparateurs de modèles d'expressions régulières sous stéroïdes qui recherchent des vulnérabilités connues dans le code. Par exemple, un outil SAST peut rechercher l'utilisation de , ou dans le code Python, ces fonctions peuvent être utilisées pour exécuter du code arbitraire. eval exec pickle Piratage et SAST Je diviserais mon approche du SAST en trois catégories : : J'utilise des outils comme , pour trouver des vecteurs d'attaque dans le code. Vous pouvez généralement trouver des fruits faciles à trouver, tels que des entrées non nettoyées, une mauvaise cryptographie ou des bibliothèques vulnérables. À propos, la version Semgrep PRO a plus de règles ; c'est gratuit s'il n'y a pas plus de 10 développeurs sur le projet. Détection de vulnérabilités Semgrep , Bandit Nodejsscan : , ou peuvent vous aider à trouver des secrets dans le code. Ceci est important car les secrets peuvent être utilisés pour élever des privilèges ou accéder à des données sensibles. Habituellement, les chaînes de connexion à la base de données, les clés API ou les mots de passe sont stockés dans le code. Détection de secrets Gitleaks Trufflehog Grep : des outils comme ou peuvent vous aider à trouver des erreurs de configuration. Les erreurs de configuration se trouvent généralement dans les fichiers « Infrastructure as Code » (IaC), mais peuvent également se trouver dans le code lui-même. Un exemple serait un fichier docker-compose mal configuré qui expose une base de données à Internet. Pour analyser les Dockerfiles, je recommande une combinaison de et Mauvaises configurations Checkov Trivy hadolint grype Plus d'informations : https://dkb-zh.gitlab-pages.ics.muni.cz/vulnerability-management/web-guides-external/docs/guide_iac_sast/#docker Les outils SAST ne sont pas parfaits. Ils vous donneront des faux positifs et des faux négatifs. **Cependant, cela permet de gagner beaucoup de temps par rapport à l'exploitation aléatoire de certaines applications. J'ai utilisé les outils SAST dans mes missions et concours de tests d'intrusion. Cela m'a aidé à démarrer avec la base de code et m'a donné quelques indices sur où rechercher les vulnérabilités. Comment se former à l'utilisation de SAST en hacking Je vous recommande de commencer par . Cette plateforme présente des défis, tels que l'obtention du code source et la recherche de vulnérabilités. Ensuite, exploitez-les sur une vraie machine. C'est un excellent moyen d'apprendre à utiliser les outils SAST dans la pratique. Hack The Box Ou, si vous êtes développeur, vous pouvez utiliser les outils SAST dans votre pipeline CI/CD. De cette façon, vous pourrez vous habituer aux outils et à leurs résultats. Simultanément, vous améliorerez la sécurité de votre application. Recommandation des guides J'ai préparé une liste de guides pour vous aider à démarrer avec SAST et la détection secrète. Ces guides sont rédigés dans le cadre de ma thèse et constituent un excellent point de départ pour toute personne intéressée par les outils SAST. Comment démarrer avec la détection secrète. Lorsque vous détectez des secrets, n'oubliez pas : ce n'est pas un secret si les pirates le connaissent. Même les développeurs chevronnés peuvent accidentellement insérer des mots de passe ou des chaînes de connexion dans le contrôle de source à distance. À l’aide de divers outils, ce guide propose des méthodes simples et rapides pour atténuer ce risque. Comment automatiser la détection des secrets Ce guide se concentre sur la compréhension de la détection des secrets à l'aide de hooks de pré-validation et de pipelines CI/CD. Bien que le code se concentre principalement sur GitLab, la dernière section couvrira également GitHub. Comment démarrer avec les pipelines SAST Ce guide décrit efficacement les étapes de lancement des tests de sécurité des applications statiques (SAST) dans GitLab. SAST est un processus qui utilise l'analyse statique du code pour identifier les vulnérabilités potentielles. Comment démarrer avec IaC SAST Cette aide-mémoire présente des outils utiles pour analyser les artefacts Infrastructure as Code (IaC) et fournit des exemples sur la façon de les intégrer dans votre pipeline CI/CD. Outil personnalisé dans Golang J'ai créé un outil personnalisé dans Golang qui m'aide à faire correspondre rapidement les expressions rationnelles avec d'énormes bases de code. Il existe un compromis infini entre précision et variance. Supposons que vous ayez besoin de plus de variance et que cela ne vous dérange pas de procéder à davantage de révisions manuelles. Dans ce cas, vous pouvez essayer , qui est comme mais plus adapté à la détection de secrets (plus rapide dans les dépôts plus importants, sortie claire, ignorant certaines extensions de fichiers). Ou vous pouvez utiliser grep directement. , et non l'outil que vous utiliserez. RegFinder grep Les expressions rationnelles du dépôt sont les plus précieuses Cloner ce référentiel Exécutez grep -n -r your_app/ -Ef regex_dir/general.txt Ou Exécutez ./regfinder.elf -d your_app/ -f regex_dir/general.txt Il est simple d’étendre les modèles d’expression régulière existants. Cet outil n'est pas réalisable pour les pipelines automatisés. Cependant, cela s'avère pratique si vous avez besoin de trouver un secret non standard ou dans d'autres évaluations, telles que les examens de sécurité, où davantage de travail manuel est attendu. . Merci pour la lecture. Commentez si vous avez une grande expérience avec d’autres outils