Le fuzzing est une technique efficace pour identifier des vulnérabilités dans des logiciels complexes, comme les pilotes de systèmes d'exploitation.
En particulier, le fuzzing des extensions du noyau de macOS (Kernel Extensions, ou kext) pose des défis uniques, liés aux nouvelles puces ARM d'Apple, aux mesures de sécurité matérielle comme l'authentification de pointeur (PA) et à l'impossibilité d'accéder au code source pour la plupart des kexts.
Cet article examine les principaux obstacles liés au fuzzing des \kext, tels que l'identification et la création d'une grammaire pour fuzzer les kexts, l'instrumentation pour obtenir la couverture du code et détecter les bugs, et les limitations inhérentes à l'architecture ARM.
En outre, une analyse approfondie des fuzzers existants a permis de mettre en avant leurs avancées et limites.
Pour conclure, nous proposons des pistes d'amélioration pour le fuzzing des kexts de macOS, telles que la coopération de plusieurs fuzzers, l'optimisation de la détection des bugs et l'évaluation des fuzzers sous différents angles.
- Poster