检测工具
Windows下可以使用微软的PowerShell 脚本(SpeculationControl)或:
SpecuCheck
https://github.com/ionescu007/SpecuCheck/releases(32/64位)
https://github.com/gentilkiwi/spectre_meltdown(64位)
Linux下可以使用多个工具,比如:
Meltdown checker
https://github.com/raphaelsc/Am-I-affected-by-Meltdown
https://github.com/ssstonebraker/meltdown_specre
https://github.com/paboldin/meltdown-exploit
MacOS下可使用多个工具,比如:
https://github.com/hackernix/CVE-2017-5754
https://github.com/xsscx/cve-2017-5753
测试参考:
https://gist.github.com/ErikAugust/724d4a969fb2c6ae1bbd7b2a9e3d4bb6
检测示例
分别检测Meltdown和Spectre两个漏洞的补丁安装和缓解措施情况。
Windows主机
下载SpecuCheck在命令行下执行:
如果出现:Your system either does not have the appropriate patch, or it may not support the information class required
表明未打补丁或采取缓解措施,存在风险。
Spectre测试结果:
完整显示字符串:
The Magic Words are Squeamish Ossifrage.存在风险。
打完操作系统补丁后,再运行可看到缓解措施开启情况:
Linux主机
下载meltdown-checker源码解压,运行make进行编译,然后运行meltdown-checker执行检测:
如出现提示:
System affected! Please consider upgrading your kernel to one that is patched with KAISER
表示存在风险,需要采取缓解措施。
Spectre测试,先运行gcc spectre.c -o specre编译源码,然后运行./specre:
完整显示字符串:
The Magic Words are Squeamish Ossifrage.存在风险。
测试MELTDOWN EXPLOIT POC,先make编译源码,然后运行./run.sh即可:
显示VULNERABLE,存在风险。
升级内核版本(Ubuntu 16.04.3 4.10.0-28升级倒4.4.110-0404110)测试:
显示已不受影响。
MacOS主机
下载源码运行gcc编译:
输出显示Output: Found in memory: 0x424242424242,存在风险。
Spectre测试结果:
输出显示Fingerprint 0x414141414,存在风险。