L'AppSec est le processus de recherche, de correction et de prévention des vulnérabilités de sécurité au niveau de l'application, dans le cadre des processus de développement de logiciels. Il s'agit notamment d'ajouter des mesures d'application tout au long du cycle de développement, de la planification de l'application à l'utilisation en production. Dans le passé, la sécurité n'intervenait qu'après la conception et le développement de application. Aujourd'hui, la sécurité sedéplace vers la gaucheet devient un élément à part entière du processus de développement et de test. En ajoutant AppSec dès le départ, les organisations peuvent réduire de manière significative la probabilité d'une vulnérabilité de sécurité dans leur propre code ou dans les composants tiers utilisés dans application.
D’innombrables menaces de sécurité affectent les applications logicielles. Toutefois, la liste des dix principales menaces d’application du projet Open Web Application Security Project (OWASP, projet de sécurité ouvert d’application web) compile les menaces pesant sur les applications qui sont les plus répandues et les plus graves, et qui sont les plus susceptibles d’affecter les applications en production.
Les initiatives AppSec doivent au moins se concentrer sur ces menaces à profil élevé pour les applications modernes :
Un processus AppSec de base implique les étapes suivantes :
Il existe trois catégories principales d'outils dans la boîte à outils AppSec : SAST, DAST et IAST.
Les outils SAST permettent le test en boîte blanche. Ils évaluent le code d’application et l’analysent pour identifier les bogues, les vulnérabilités ou d’autres faiblesses qui peuvent créer un problème de sécurité. SAST peut s’exécuter sur un code compilé, un code non compilé ou les deux.
L’analyse SAST peut identifier des problèmes tels que :
Les outils DAST utilisent des méthodes de test de la boîte noire pour tester les applications en cours d’exécution pour des problèmes de sécurité. Ils effectuent une analyse dynamique du code source lorsqu’il est en cours d’exécution. DAST utilise généralement des tests à données aléatoires, ce qui implique d’atteindre l’application avec un grand nombre de demandes aléatoires et inattendues.
DAST peut détecter des conditions qui indiquent des vulnérabilités de sécurité, par exemple :
IAST est une approche hybride qui combine SAST et DAST. L’approche interactive des tests de sécurité combine les analyses statique et dynamique, ce qui permet d’identifier les vulnérabilités connues et de voir si elles sont réellement utilisées dans l’application en cours d’exécution et peuvent être exploitées.
Les outils IAST recueillent des informations détaillées sur le flux d’exécution de l’application et les flux de données, et peuvent simuler des modèles d’attaque complexes. Lorsqu’ils effectuent une analyse dynamique d’une application en cours d’exécution, ils peuvent vérifier les réponses de l’application et ajuster leurs tests en conséquence. Cela peut être utilisé pour créer automatiquement de nouveaux cas de test, etc (comme un testeur de pénétration humaine).
Grâce à cette approche, les outils IAST peuvent enquêter en profondeur sur des problèmes de sécurité suspectés, ce qui réduit le nombre de faux positifs. Ils s’intègrent également beaucoup plus naturellement dans un processus de développement agile avec des lancements rapides.
Un WAF est une solution déployée à la périphérie du réseau, qui inspecte le trafic entrant et sortant du réseau et tente d'identifier et de bloquer le trafic malveillant.
Les WAF traditionnels, basés sur des règles, constituent un outil à maintenance élevée qui oblige les organisations à définir méticuleusement un ensemble de règles correspondant à leurs modèles de trafic et d’application spécifiques. De plus, les WAF basés sur des règles ont une couverture limitée des vecteurs d’attaque en constante évolution.
En outre, les WAF traditionnels ne peuvent pas protéger automatiquement les nouveaux microservices, car chaque nouveau microservice déployé nécessite un important travail supplémentaire de définition de nouvelles règles et politiques. En termes pratiques, cela signifie que les nouveaux systèmes déployés par l’organisation ne seront pas protégés dans de nombreux cas.
Voici quelques bonnes pratiques que vous pouvez utiliser pour mettre en œuvre efficacement AppSec dans votre organisation.
Examinez les principaux points d’entrée que les attaquants peuvent utiliser pour violer vos applications, les mesures de sécurité qui sont en place et déterminez si elles sont adéquates. Définissez des objectifs et des jalons raisonnables au fil du temps, pour le niveau de sécurité que vous souhaitez atteindre pour chaque type de menace.
Les tests de sécurité doivent être entièrement intégrés au cycle de vie du développement logiciel (SDLC), de l’étape de planification au développement, aux tests et au déploiement en passant par la production.
Utilisez des outils automatisés pour vous assurer que application est testé le plus tôt possible dans le processus, et à plusieurs points de contrôle tout au long du pipeline CI/CD. Par exemple, lorsqu'un développeur livre du code et déclenche une compilation, ce code devrait automatiquement subir une forme de test de sécurité, ce qui permettrait au développeur de corriger immédiatement les problèmes de sécurité dans son code.
Ce même code doit être testé de nouveau, de manière plus exhaustive, lorsqu’il est promu à un environnement de test et de production.
La sécurité des applications entraînera la découverte de vulnérabilités dans vos applications, et vous ne pourrez pas toutes les corriger. La hiérarchisation est essentielle pour assurer que les vulnérabilités critiques sont corrigées rapidement, sans nuire à la productivité des développeurs.
Votre processus de test de sécurité doit inclure des mesures automatisées indiquant la gravité et l’exploitabilité de la vulnérabilité et, si nécessaire, une évaluation manuelle indiquant si la vulnérabilité présente réellement un risque commercial. Les composants vulnérables qui ne sont pas en cours d’exécution en production ne sont pas une priorité.
Assurez-vous que les développeurs savent qu’ils travaillent sur des vulnérabilités réelles et à profil élevé, et qu’ils ont le temps de les corriger partout où elles se produisent dans le SDLC.
Un programme AppSec nécessite un investissement majeur en temps et en ressources, ainsi que des changements culturels et organisationnels. Il est important de comprendre l’impact du programme sur la sécurité pour justifier le programme et s’assurer qu’il est soutenu par la direction.
Mesures importantes que vous pouvez suivre et partager pour démontrer le succès d’AppSec : une tendance hebdomadaire ou mensuelle peut montrer l’impact de l’introduction des mesures de sécurité des applications :
Tout ce qui est lié à un programme de sécurité des applications est constitué de données sensibles qui pourraient être extrêmement utiles à un attaquant. Assurez-vous de gérer soigneusement les éléments suivants :
Utilisez le principe du moindre privilège et veillez à ce que chaque utilisateur n'ait accès qu'aux données et aux systèmes dont il a absolument besoin pour faire son travail. Utilisez les principes de confiance zéro entre les systèmes intégrés, en veillant à ce que chaque système ne dispose que des autorisations minimales dont il a besoin pour fonctionner.
CloudGuard de Check Point comprend une solution de sécurité d’application à configuration nulle qui fournit les éléments suivants :
Alimenté par un moteur contextuel IA en instance de brevet, CloudGuard application Security est entièrement automatisé et peut être déployé dans n'importe quel environnement.