Vous êtes ici

Analyse de vulnérabilité dans des systèmes embarqués face à des attaques en force brute

Equipe et encadrants
Département / Equipe: 
Site Web Equipe: 
https://team.inria.fr/tamis/
Directeur de thèse
Jean-louis LANET
Co-directeur(s), co-encadrant(s)
Contact(s)
NomAdresse e-mailTéléphone
Jean-louis LANET
jean-louis.lanet@inria.fr
(+33)(0)2 99 84 73 38
Sujet de thèse
Descriptif

Une classe d’attaque par force brute permet d’évaluer la résistance d’un produit et de découvrir des points d’accès non prévus. Pour cela, la technique dite de fuzzing produit des entrées à un système et évalue les retours obtenus. En fournissant des entrées en dehors des domaines prévus ou dans un état non prévu il est possible d’avoir accès soit à des ressources soit des privilèges permettant de créer de nouvelles attaques.

Pour se prémunir contre ce type d’attaque, la solution simple est de filtrer les entrées comme le préconise OWASP avec a minima une API de filtrage. Cette spécification permet de traiter la plupart des types de paramètre mais ne prend pas en compte l’état dans lequel se trouve un système. Un paramètre peut avoir un domaine valide dans un état mais invalide dans un autre état. Cette solution ne garantit pas non plus que le développeur a filtré toutes les entrées de son système, ni que ses filtres soient correctement implémentés.

Plusieurs défis sont à résoudre : comment s’assurer que mes entrées soient toutes filtrées, comment réduire l’impact sur les performances lors de l’exécution, peut-on optimiser le mécanisme de filtrage (la donnée utilisée ne révèle aucun secret, je peux ne pas la filtrer,…).

La technique de fuzzing est utilisée par les attaquants mais aussi par les défenseurs comme un moyen d’analyse de vulnérabilité. Une solution serait donc de développer un fuzzer par rétroaction (ayant un retour sur l’action réalisée) afin d’analyser l’application. Cependant, lors de la mise à jour de l’application cette analyse doit être refaite sur des systèmes ayant évolués différemment. Le déploiement d’une telle solution n’est donc pas envisageable dans un tel cadre.

Des solutions d’analyse statique ont été mises au point pour un problème proche, la défense contre les attaques par XSS sur les serveurs Web. Nous proposons de nous intéresser à ces techniques de défense généralement hybride (statique et dynamique) basée en partie par une analyse de causalité pour optimiser le placement des défenses.

Bibliographie

[1] Chin, E., Wagner, D.: Efficient character-level taint tracking for java. In: Proceed-
ings of the 2009 ACM workshop on Secure web services. pp. 3{12. ACM (2009)

[2] Chess, B., West, J.: Dynamic taint propagation: Finding vulnerabilities without
attacking. Information Security Technical Report 13(1), 33{39 (2008)

[3] Xu, W., Bhatkar, S., Sekar, R.: Taint-enhanced policy enforcement: A practical
approach to defeat a wide range of attacks. In: Usenix Security. pp. 121{136 (2006)

[4] Shahriar, H., Zulkernine, M.: Music: Mutation-based sql injection vulnerability checking. In: Quality Software, 2008. QSIC'08. The Eighth International Conference on. pp. 77{86. IEEE (2008)

[5] Livshits, V.B., Lam, M.S.: Finding security vulnerabilities in java applications with
static analysis. In: Usenix Security. vol. 2013 (2005)

[6] Martin, M., Livshits, B., Lam, M.S.: Finding application errors and security flaws using pql: a program query language. In: ACM SIGPLAN Notices. vol. 40, pp.
365{383. ACM (2005)

[7] Kiezun, A., Ganesh, V., Guo, P.J., Hooimeijer, P., Ernst, M.D.: Hampi: a solver
for string constraints. In: Proceedings of the eighteenth international symposium
on Software testing and analysis. pp. 105{116. ACM (2009)

[8] Yamaguchi, F., Maier, A., Gascon, H., Rieck, K.: Automatic inference of search
patterns for taint-style vulnerabilities. In: Security and Privacy (SP), 2015 IEEE
Symposium on. pp. 797{812. IEEE (2015)

Début des travaux: 
dès que possible
Mots clés: 
analyse vulnerabilité système embarqué
Lieu: 
IRISA - Campus universitaire de Beaulieu, Rennes