Le CERT-XMCO vous partage une information ayant fait l’actualité durant la semaine écoulée. Nous vous proposons de revenir sur la publication d’une nouvelle attaque innovante contre le mécanisme de sécurité ASLR.
Description :
Des chercheurs travaillant pour le laboratoire universitaire VuSec, à Amsterdam, viennent de publier le fruit de leur recherche. Baptisée « AnC » (pour ASLR XOR Cache), cette attaque porte sur le fonctionnement intrinsèque des ordinateurs et des systèmes d’exploitation disponibles aujourd’hui. Plus précisément, l’attaque repose sur le fonctionnement d’un composant bas niveau appelé la MMU (Memory Management Unit), qui fournit au système la capacité de disposer de différents espaces mémoire virtuels à partir d’un seul et unique espace mémoire disponible physiquement. Il s’agit d’un composant essentiel de l’architecture PC, permettant d’isoler et de cloisonner les programmes exécutés les uns des autres.
Concrètement, cette MMU dispose d’un cache pour accélérer le traitement des calculs devant être réalisés. C’est sur la gestion de ce cache que repose l’attaque AnC proposée. Le problème vient du fait que, contrairement à l’espace mémoire qui est bien distinct entre 2 programmes, le cache est lui partagé entre différentes applications qui sont considérées comme n’étant pas de confiance. On parle ici par exemple du moteur JavaScript d’un navigateur.
À partir de l’analyse du fonctionnement de ce cache et du système de manière générale, les chercheurs ont été en capacité de réaliser une attaque de type « EVICT+TIME » sur le cache. Cette attaque leur permet ainsi de connaitre les offsets utilisés pour accéder aux informations désirées au travers des 4 niveaux de « table de pages » existant sur l’architecture x86_64 et du cache associé. Cette information leur permet ensuite de réduire de 9 bits l’entropie existante sur une adresse mémoire, ce qui rendrait inefficace même un mécanisme d’ASLR s’appuyant sur 36 bits, donc considéré comme étant parfait.
Afin de démontrer les résultats obtenus, les chercheurs ont développé deux preuves de concept : l’une sous la forme d’un binaire natif, et l’autre sous la forme d’un script JavaScript pour être exécuté au travers d’un navigateur Web. D’après leur expérimentation, l’entropie est divisée par 3 en moins de 10s dans le cas d’une attaque réalisée via JavaScript, contre 30 à 45 min pour obtenir le même résultat avec la dernière attaque similaire en date (Dedup Est Machina).
Par ailleurs, ces résultats tiennent compte des récentes modifications apportées aux moteurs JavaScript justement pour limiter la capacité d’un attaquant à réaliser ce type même d’attaque, que les chercheurs ont été en mesure de contourner entièrement…
Selon les chercheurs, les résultats obtenus dans le cadre de ces travaux montrent que les différents mécanismes d’ASLR implémentés au sein des systèmes d’exploitation et s’appuyant sur les capacités du matériel sous-jacent sont désormais inefficaces, et qu’elles ne doivent pas être considérées comme étant une barrière efficace pour rendre impossible l’exploitation d’une faille de sécurité dans un logiciel.
Les chercheurs ont pris le soin de divulguer l’existence de cette nouvelle attaque de manière responsable. Depuis octobre 2016, ils ont contacté à cette occasion les différents intervenants concernés par cette faille : des fondeurs de processeurs jusqu’aux éditeurs de navigateurs web, en passant par les éditeurs de système d’exploitation.
Plusieurs références CVE ont été assignées pour suivre ce sujet :
- CVE-2017-5925 (Intel)
- CVE-2017-5926 (AMD)
- CVE-2017-5927 (ARM)
- CVE-2017-5928 (Navigateurs web)
Avis d’expert :
Bien que cette annonce soit préoccupante, il n’y a pour l’heure rien à faire pour s’en protéger. En effet, la seule solution permettant de rendre impossible ce type d’attaque consiste à revoir l’architecture et le fonctionnement des ordinateurs et des systèmes d’exploitation.
Tant que ces travaux n’auront pas été réalisés, il conviendra de pousser les éditeurs de logiciels à adopter les meilleures pratiques en matière de développement sécurisé et de durcissement des systèmes.
Référence :
- https://www.vusec.net/projects/anc/
- https://github.com/vusec/revanc
- http://www.cs.vu.nl/~herbertb/download/papers/anc_ndss17.pdf
- http://www.cs.vu.nl/~herbertb/download/papers/revanc_ir-cs-77.pdf
Référence CERT-XMCO :
CXA-2017-0539