main : pas infaillible et pas scalable - Utiliser des outils de détection au runtime : - plus proche de la réalité - souvent beaucoup de faux positifs, - détections tardives car après la phase de dév - Utiliser des outils utilisant l’analyse statique : - tout n’est pas détectable (e.g. input utilisateur malveillant) - MAIS la détection se fait pendant la phase de dév 6
Jakob Nielsen 9 L’analyse statique, comment ça marche ? Démarche de détection en analyse statique recherche de patterns intéressants dans l’AST On peut ensuite écrire nos propres règles, spécifiques à nos besoins
Jakob Nielsen 10 Exemples de détections possibles : - Détection de secrets dans le code : - recherche du pattern correspondant à une déclaration de string - mesure du “désordre” de la string (par exemple entropie de Shannon) & comparaison par rapport à un seuil
Jakob Nielsen 11 Exemples de détections possibles : - Détection de l’utilisation de fonctions de hashages pour les modèles : - comparaison des patterns rencontrés dans les fichiers de modèles de BDD avec un pattern correct
Jakob Nielsen 13 Petit rappel sur les XSS Injection de code potentiellement malveillant dans les pages Impact : vol possible de cookies mal protégés, de tokens JWT, et tout ce qui est possible de faire avec du code