Programmation sécurisée
Classes de vulnérabilités
«If builders built buildings the way programmers wrote programs, then
the first woodpecker that came along would destroy civilization. »
-- Gerald Weinberg - http://en.wikipedia.org/wiki/Gerald_Weinberg
V3.1
Conception
www.failblog.org
Conception
•Vulnérabilité de conception : vulnérabilité
dans l’architecture de l’application ou les choix
« stratégiques » de l’application
–Agencement des composants
–Choix des modèles d’application / des protocoles
Conception
•Exemples de cas d’erreur de conception :
–Faible séparation des tâches et des opérations
Si une opération est compromise alors l’ensemble des
opérations est impacté
–Absence d’approche modulaire
Périmètre du programme à sécuriser est plus
important / fragmenté
Redondance du code et donc des vulnérabilités
–Mauvais choix des algorithmes et des normes
utilisées
Implémentation
•Erreur dans l’implémentation: écart entre les spécifications
et l’implémentation d’une fonctionnalité
–Un attaquant va exploiter un défaut d’implémentation
d’un protocole réseau, d’un algorithme, etc.
–Il est nécessaire de connaitre parfaitement le langage de
programmation et ses pièges
•Certains langages plus « faciles » que d’autres
–Exemple: C vs Java
•Importance de la relecture du code
–Exemple MS : 1 développeur = 1 relecteur
–Adhérence à la sécurité du système d’exploitation :
•Utilisation des bibliothèques spécifiques au système
1 / 36 100%