Description de la sécurité - Sskiizens/DevSecOps GitHub Wiki

Tests de sécurité

Les tests sont au centre de l'implémentation de la sécurité dans le DevOps. Ils existent différents types et familles de tests qui sont complémentaires et permettent de tester la sécurité sur l'ensemble des points de défaillances(code, réseau, données, cve, ...). Pour autant, ces tests doivent être mit en place avec précaution, avec notamment le respect de certaines règles dont:

  • L'automatisation des tests. En effet, l'automatisation est le mot d'ordre lorsque l'on parle de Devops, pour optimiser le temps et permettre une exécution rapide il faut que les tests soient le plus possible lancés automatiquement.
  • L'intégration des tests aux outils existants. On en le répétera jamais assez, la sécurité ne doit pas être une contrainte pour les équipes DevOps. Il faut donc que l’exécution des tests mais surtout la disponibilité des résultats soit sur les dashboards et pipelines existants. Il ne faut pas que la consultation et la compréhension des résultats soient une contrainte. En conservant les outils existants on facilite l'appropriation des outils par les équipes.
  • Exécution des tests le plus tôt possible dans le cycle de développement. favorisé les tests tôt et les rendre le plus efficace possible pour minimiser l'impact et le cout.

Définition SCA

L'analyse du code source est le test automatisé du code source dans le but de déboguer un programme ou une application informatique avant sa distribution ou sa vente. Le code source est constitué d'instructions créées à l'aide d'un éditeur de texte ou d'un outil de programmation visuel, puis enregistrées dans un fichier. Le code source est la forme la plus permanente d'un programme, même si le programme peut être modifié, amélioré ou mis à niveau ultérieurement.

L'analyse du code source peut être statique ou dynamique. Dans l'analyse statique, le débogage est effectué en examinant le code sans exécuter le programme. Cela permet de révéler les erreurs à un stade précoce du développement du programme, éliminant souvent la nécessité de multiples révisions ultérieures.

Définition SAST

L’audit du code source (SAST) des applications est important si l'on souhaite détecter et corriger leurs vulnérabilités pendant la phase de développement : plus tôt une vulnérabilité est découverte et moins elle sera couteuse à corriger. Un audit SAST est non intrusif par nature. On peut donc scanner en toute sécurité nos applications les plus critiques sans risque d’impacter leur performance.

Un tel audit permet de détecter un grand nombre de vulnérabilités présentes dans le code source des applications

Définition DAST

Un audit dynamique (DAST) consiste à se servir d’un scanner pour interagir avec l’application comme un hacker le ferait sur internet : en envoyant un grand nombre de requêtes malicieuses vers l’application auditée afin d’y trouver des failles. Un scanner de vulnérabilité DAST permet de détecter un certain nombre de vulnérabilités pouvant être découvertes lors d’un audit de code source (SAST) sans pour autant atteindre la même efficacité.

Là ou un scanner de vulnérabilité DAST se démarque c’est dans sa capacité à découvrir des problèmes de configuration relatifs au serveur web sur lequel est installée l’application.

Un audit DAST est intrusif par nature. Il peut détériorer l'application. Il est donc préférable de scanner dynamiquement une application dans un environnement de pré production. Si l'on ne dispose pas d’un environnement de pré production, nous conseillons de réaliser un scan DAST léger couplé à un audit de code source (SAST).

De cette manière on découvrira un maximum de vulnérabilités sans pour autant impacter notre application.

Définition IAST

Les solutions de test interactif de la sécurité des applications (IAST) aident les organisations à identifier et à gérer les risques de sécurité associés aux vulnérabilités découvertes dans les applications Web en cours d'exécution à l'aide de techniques de test dynamique (souvent appelé test d'exécution).

L'IAST fonctionne grâce à l'instrumentation logicielle, c'est-à-dire l'utilisation d'instruments pour surveiller une application en cours d'exécution et recueillir des informations sur ce qu'elle fait et comment elle fonctionne. Les solutions IAST instrumentent les applications en déployant des agents et des capteurs dans les applications en cours d'exécution et en analysant en permanence toutes les interactions de l'application initiées par des tests manuels, des tests automatisés ou une combinaison des deux afin d'identifier les vulnérabilités en temps réel.

En outre, certaines solutions intègrent des outils d'analyse de la composition logicielle (SCA) pour traiter les vulnérabilités connues dans les composants et les frameworks open source.