Programmation orientée sécurité

Cette page contient les supports de cours et de TPs dispensés dans le cadre du module POS du parcours FIIL de l'université ParisSud et du module 4INFOS8ProSec de l'INSA de Rennes (syllabus du module). Ces supports servent aussi de base à quelques interventions de la VAP (voie d'approfondissement) SSR (sécurité systèmes et réseaux) du cursus d'ingénieur à Télécom SudParis.


Cours

TP sur les vulnérabilités

On considère tout d'abord des programmes d'authentification en ligne (un attaquant ne peut interagir avec eux que via l'entrée et la sortie standard).

Étudiez chaque programme d'authentification ci-dessous pour en trouver la faille et l'exploiter. Expliquez ensuite comment corriger le programme pour qu'il ne soit plus vulnérable:

Les programmes suivants présentent chacun un défaut classique de programmation. Identifiez le problème et trouvez un moyen de le détecter à l'aide du compilateur (gcc ou clang).

Un exemple pas-à-pas d'une race condition:

Un nouveau défi avec un programme d'authentification, dans un premier temps avec un accès aux sources, puis sur un programme compilé:

On s'intéresse à un nouveau programme d'authentification qui supporte des domaines (realms). Pour cela, vous aurez besoin des fichiers suivants:

On suppose que le programme suivant tourne sous l'identité root, et que vous pouvez lui fournir les arguments de votre choix. Il contient une faille assez classique, que l'on trouve souvent dans le monde web. Quelle est cette faille ? À quoi peut-elle servir pour un attaquant ? Proposez des contremesures (dans le code et dans l'architecture).

TP sur les dépassements de tampon

TP noté

Quelques fichiers en noir et blanc que mon implémentation accepte (sur certains fichiers, votre interprétation peut diverger) :

Quelques fichiers en noir et blanc que mon implémentation refuse (là encore, il y a au moins un fichier qui est discutable) :

Des exemples en niveaux de gris, en couleur et avec palette (le dernier est a priori invalide) :

Biblio

Quelques références

Études sur les langages à l'ANSSI

Autres ressources