Si vous êtes impliqué dans la sécurisation des applications développées par votre organisation, il ne fait aucun doute que les solutions Static Application Security Testing (SAST) constituent un élément important d’une stratégie complète de sécurité des applications. SAST sécurise les logiciels, prend en charge les entreprises de manière plus sécurisée, réduit les coûts, réduit les risques et accélère le développement, la livraison et le déploiement des applications critiques.
SAST analyse le code au début du développement, afin que votre équipe AppSec ne se démène pas pour corriger des vulnérabilités inattendues juste avant la planification de ce grand lancement. Vous éviterez les surprises et les retards de lancement sans diffuser par inadvertance des logiciels risqués aux clients ou en production.
Mais si vous considérez SAST comme faisant partie d’une plus grande plate-forme AppSec, cruciale pour ceux qui souhaitent déplacer la sécurité partout possible dans le cycle de vie du développement logiciel (SDLC), certaines solutions SAST en surpassent d’autres.
Savoir sur quoi se concentrer
Avec une pléthore d’acteurs sur le marché, faisant parfois des revendications concurrentes, il est déroutant de savoir ce qu’il faut rechercher lors de la sélection d’une solution SAST. Il est important de comprendre ce qui se cache derrière chaque affirmation et de voir si cela correspond à la réalité.
Parfois, la solution avec laquelle une organisation démarre initialement n’est pas la bonne à mesure que l’organisation se développe ou que d’autres équipes commencent à utiliser la solution.
Par conséquent, la vraie question est « Quelle solution SAST convient le mieux à mon organisation? »
Que rechercher dans une solution SAST
S’intégrer dans votre programme AppSec
Une plate-forme complète de sécurité des applications vous permet de simplifier la sécurité – dans le code applicatif, les dépendances open source, les chaînes d’approvisionnement, l’IaC, les API, les conteneurs, etc. – le tout à partir d’une seule analyse. Une plate-forme fournit des résultats rapides, corrélés et précis pour accélérer la correction.
Lorsque vous recherchez une solution SAST, si elle fait partie d’une plate-forme AppSec unifiée, elle offrira la meilleure valeur pour sécuriser les applications modernes. Une plate-forme complète doit fournir une gestion centralisée pour SAST, SCA, SCS, la sécurité des API, DAST, la sécurité IaC et la sécurité des conteneurs.
Une plateforme doit pouvoir évoluer avec vous à mesure que vos besoins évoluent. Lorsque vous comparez des approches d’AppSec basées sur une plate-forme, assurez-vous qu’elles peuvent corréler les résultats d’analyse sur différents moteurs d’analyse afin d’obtenir une évaluation globale des risques sur l’ensemble des projets et des applications, au lieu d’essayer d’agréger manuellement les résultats de diverses solutions AST autonomes.
La flexibilité est cruciale
Aucune application ne se ressemble et les différentes parties prenantes, telles que les RSSI, les équipes de sécurité des applications et les développeurs, ont des besoins uniques.
Parfois, ils ont besoin d’avoir une vue d’ensemble des risques d’une application et d’effectuer une « analyse large », tandis qu’à d’autres moments, ils doivent « analyser en profondeur » une partie spécifique d’une application ou explorer des risques très spécialisés.
Avoir la flexibilité d’analyser en profondeur et d’analyser en profondeur couvre tous les cas d’utilisation. Il offre une flexibilité permettant aux organisations de se standardiser sur une plate-forme unique qui couvre tous les cas d’utilisation.
Les préréglages (également appelés ensembles de règles) sont des groupes de règles d’analyse prêtes à l’emploi qui peuvent être appliquées à diverses analyses. Les solutions SAST doivent être préemballées avec une gamme de préréglages pour prendre en charge les principaux cas d’utilisation, y compris l’obtention d’une vue d’ensemble des risques et des vulnérabilités de leur code, ainsi que la garantie de la conformité réglementaire.
Parfois, quelle que soit leur taille, les ensembles de règles pré-emballés ne suffisent pas et une organisation souhaite modifier ou créer des ensembles de règles personnalisés. Cela permet d’améliorer la précision et de minimiser les faux positifs.
La précision compte dans SAST
Pour qu’une solution SAST soit utile, elle doit être précise.
Lorsqu’on parle de SAST, les « faux positifs » – c’est-à-dire les éléments signalés qui ne sont pas de vrais risques – sont souvent mentionnés. Le moyen de contourner ceux-ci est des préréglages flexibles et des requêtes ou des règles personnalisées.
Mais les « faux négatifs » sont encore plus inquiétants, c’est-à-dire les risques dans votre code qui sont négligés et non identifiés par votre scanner SAST. Avec les faux négatifs, vous libérez sans le savoir des vulnérabilités sans même avoir la possibilité de les explorer et de les rectifier. Vous volez à l’aveuglette.
Une façon de réduire les risques de faux négatifs consiste à utiliser une solution « centrée sur l’application » qui comprend le fonctionnement de votre application. Cette solution peut suivre le flux de données à travers le code et exécuter le code avec des entrées symboliques, lui permettant d’explorer tous les chemins à travers le code pour trouver ceux qui sont exploitables. Bien que s’appuyer sur des outils basés sur regex puisse sembler pratique – ils sont, après tout, plus légers et plus rapides – cela ne sera pas le cas une fois que votre entreprise fera la une des journaux en raison du code vulnérable qui a été publié dans la nature.
Une autre solution consiste à utiliser le bon profil pour votre base de code et à créer des requêtes personnalisées si nécessaire. Par exemple, si une organisation a développé son propre désinfectant personnalisé, informer le SAST de ce désinfectant en ajustant les requêtes peut éliminer les faux positifs. Avoir un langage de requête personnalisable est essentiel pour réduire les faux positifs sans activer les faux négatifs.
Trouver une solution SAST qui fonctionne pour les développeurs
Comme mentionné ci-dessus, résoudre les problèmes à leur source, et pas simplement corriger les erreurs de syntaxe, est plus rapide et permet d’économiser de l’argent à long terme. Les analyses rapides qui manquent des vulnérabilités parce qu’elles ne comprennent pas comment le code se rapporte aux applications ne sont pas l’objectif. Mais cela n’oblige pas non plus les développeurs déjà pressés à passer chaque erreur au peigne fin.
Il est essentiel de résoudre les problèmes rapidement. La façon de le faire est de fournir un « meilleur emplacement fixe. » Cela indique aux développeurs l’emplacement exact où corriger une vulnérabilité, ce qui leur fait gagner du temps et de l’énergie. Et souvent, en modifiant le code au meilleur emplacement de correctif, ce correctif unique peut éliminer plusieurs vulnérabilités et réduire le nombre de corrections de code nécessaires.
La plupart des développeurs ne sont pas des experts en sécurité, mais une bonne solution SAST peut les transformer en héros de la sécurité.
Recherchez une solution qui montre aux développeurs comment corriger les vulnérabilités, explique la signification et l’impact de la vulnérabilité, et les aide à écrire du code plus sécurisé à l’avenir. Certaines solutions fournissent ou intègrent une formation au code qui enseigne aux développeurs comment identifier et écrire un code sécurisé et de qualité.
Une formation à la sécurité du code simplifiée et ludique permet un apprentissage facile et rapide qui augmente l’adoption par les développeurs, et cette approche peut même améliorer la rétention des employés.
Avec la bonne solution SAST, vos développeurs n’auront pas besoin d’aller sur Stack Overflow ou Reddit pour demander des conseils sur la façon de résoudre un problème.
SAST qui prend en charge votre cycle de vie de développement logiciel existant
Les langages et les frameworks changent. Votre solution SAST ne devrait pas. Par conséquent, il est important de disposer d’une solution SAST qui suit les dernières mises à jour linguistiques et prend en charge les langues les plus récentes. Cela vous permet de soutenir vos développeurs, où qu’ils choisissent d’aller.
Une large prise en charge linguistique est également essentielle pour permettre à une organisation de se standardiser sur une seule solution pour toutes les équipes et dans toute l’organisation.
Par exemple, si vous êtes dans la finance, l’organisation peut avoir besoin de prendre en charge des langages hérités tels que COBOL, qui alimente encore de nombreuses transactions bancaires, ainsi que des langages de développement d’applications mobiles émergents tels que Flutter. Même si différents développeurs peuvent travailler sur les deux composants, les organisations peuvent maximiser l’efficacité en standardisant sur une seule plate-forme de sécurité des applications, plutôt que de recourir à un méli-mélo de fournisseurs.
Découvrir les API dans le code source
En raison des récentes violations de données très médiatisées, les API sont de plus en plus reconnues comme des points d’entrée potentiels dans vos applications. L’OWASP a même un « Top 10 de la sécurité des API », où ils couvrent les principales façons dont les API peuvent être violées, y compris l’injection, la mauvaise configuration de la sécurité et l’autorisation au niveau de l’objet cassé.
L’un des défis de la plupart des solutions de sécurité des API aujourd’hui est qu’elles sont toutes décalées vers la droite. Par exemple, les WAF protègent l’environnement d’exécution tandis que DAST teste les applications compilées. Alors qu’il peut dire que « une bonne sécurité commence par un bon code », les API testent cet adage dans une certaine mesure, car chaque API est différente et présente ses propres défis de sécurité. Les solutions existantes exigent également que les développeurs documentent leurs API afin que les solutions WAF et DAST sachent quoi protéger et tester. Cependant, les développeurs sont souvent incohérents avec la documentation de l’API, ce qui conduit à des API fantômes.
La bonne nouvelle est que chaque API d’une application est écrite en code. Au minimum, votre solution SAST doit être capable de découvrir les points de terminaison d’API définis dans le code et de les inventorier. Mais idéalement, il devrait également être en mesure de vous montrer quelles vulnérabilités sont présentes dans chaque API, vous pouvez donc maintenant hiérarchiser les vulnérabilités à corriger en fonction de la valeur commerciale de l’API.
Avoir SAST + DAST ensemble sur une seule plateforme
Quiconque a passé du temps à développer des logiciels ou a été chargé de sécuriser des millions de lignes de code qui composent une application moderne, comprend qu’il existe de nombreuses méthodes acceptées par l’industrie pour analyser et tester les applications. Le but de l’analyse du code avec SAST est de détecter les erreurs de codage qui pourraient potentiellement conduire à des vulnérabilités exploitables – et tout le monde sait que le code vulnérable est la principale cause de chaque violation connue aujourd’hui. Mais l’intérêt d’utiliser à la fois les outils SAST et DAST est qu’ils trouvent tous deux des vulnérabilités différentes.
Cependant, si vous avez des outils disparates, cela signifie que vous les gérez séparément via différentes interfaces, vous devez vous rendre à des endroits différents pour voir les vulnérabilités détectées, vous devez analyser et trier les vulnérabilités différemment, et vous suivez les vulnérabilités corrigées séparément.
Avoir SAST et DAST sur la même plate-forme signifie que vous pouvez voir vos vulnérabilités en un seul endroit, les gérer et les trier via un flux de travail/processus unique, et les envoyer à vos développeurs pour qu’ils les corrigent via le même flux de travail. Vous pouvez également les intégrer à différents points de votre SDLC à l’aide d’un ensemble commun d’intégrations.
Et en prime, si votre SAST peut découvrir et inventorier des API dans le code source et trouver des API non documentées, vous pouvez également tester ces API non documentées à l’aide de DAST. Cela vous aide à tirer le meilleur parti de votre solution SAST en prenant ses conclusions et en améliorant les résultats de sécurité dans d’autres domaines d’une manière 1+1=3.
Trouvez une solution SAST qui vous permet de faire bouger les choses
Au cours de vos recherches sur les solutions SAST, vous entendrez sans aucun doute de nombreuses promesses de déplacer votre AppSec vers la gauche. Mais cela ne suffit plus. Alors que les pratiques modernes de développement d’applications augmentent l’utilisation des API, du code open source et d’autres innovations, de nouveaux risques apparaissent. Aujourd’hui, tout est une application. Vous avez maintenant besoin de la sécurité de votre application pour déplacer partout.
Remarque : cet article perspicace a été écrit de manière experte et a été rédigé avec soin par Avi Hein, responsable du marketing produit chez Checkmarx.