反病毒软件捕捉不到Rowhammer及类似边信道攻击,于是,一组美国科学家着手研究该怎样捕获这些攻击的特征。
一旦考虑到实验室环境和间谍工具之类的东西,边信道攻击就是很具体的事儿了。举个例子,Rowhammer攻击。这是一个通过快速重写RAM行,以纯软件方式翻转RAM上邻近存储单元的攻击方法。最终,Rowhammer能使攻击者搞崩内核进程,获取到root权限。
美国马萨诸塞州伍斯特理工学院(WPI)的3名研究员,在国际密码研究学会(IACR)发表了一篇论文,展示了类似病毒扫描的边信道攻击检测技术。
他们在文章中指出,标准反病毒软件检测不了Rowhammer之类的漏洞利用,因为此类攻击“明显基于无辜的指令集”。
虽然防御此类“微架构”攻击是可能的,但这3名研究人员提出的方法,是在边信道恶意代码部署之前(比如投送到应用商店),就扫描软件以确保二进制代码干净。
他们的工具名为MASScan(微架构静态扫描),基于对恶意边信道攻击方式的分析:
缓存攻击——通过制造缓存争用起效。此类攻击的共同特征,是对高分辨率计时器的需求;它们使用内存屏蔽来连续针对性读取操作;利用共享的内存刷新指令等实现缓存驱逐。
DRAM访问攻击——造成系统内存冲突。此类攻击与缓存攻击类似,共享计时器、内存屏蔽和缓存驱逐特征。
Rowhammer攻击——仅有缓存驱逐一个明显特征。
通过阻断内存总线制造隐秘信道——高分辨率计时器和锁定指令的组合,目的是拖住内存总线以在两个共存进程间建立隐秘信道。
MASScan的重点在于分析二进制文件以发现这些特征——当今病毒扫描器发现不了的特征。MASScan是一组 IDA Pro 反汇编调试器脚本集,可被转译成适用于其他二进制分析器的代码。
比如说,cflush指令本身不是恶意的,那么MASScan寻找的就是cflush指令的循环执行——也就是缓存攻击、DRAM访问攻击和Rowhammer攻击全都利用的操作。
比较遗憾的是:除了资本化,MASScan同时也是 Errata Security 出品的一款声名狼藉的端口扫描器的名字,那款扫描器名为Masscan,仅仅是大小写不同而已。希望WPI三人组发布代码的时候能改个名字,免得撞名。