与硬件无关的边信道攻击:操作系统页缓存泄露数据
作者:星期二, 一月 8, 20190

去年披露预测执行漏洞的计算机安全专家再揭新型边信道攻击方法,可绕过?#25191;?#35745;算机系统的安全防护。

幽灵和熔断这样的边信道攻击利用芯片设计缺陷收集特权信息,新披露的方法则与硬件无关,只涉及Windows和Linux操作系统页缓存,一定条件下可远程利用。

?#33455;?#20154;员在论文中描述了通过操作系统页缓存监视特定进程内存访问的方法。

我们呈现了一组不需要任何计时器的本地攻击,利用操作系统调用(Linux上的mincore和Windows上的QueryWorkingSetEx)诱出页缓存信息。我们还证明了页缓存元数据可向远程攻击者泄露信息,在恶意本地发送者进程和外部攻击者之间形成隐秘信道。

获取到这些本应保密的信息后,攻击者便可用PHP口令生成脚本执行沙箱保护规避、接口修改和击键计时?#32570;?#22320;攻击。该技术还可用于执行远程攻击,但需要根据具体目标和硬件做些调整,可能要加入硬件计时测量操作。?#33455;?#20154;员认为该页缓存边信道攻击的性能可与硬件缓存攻击相媲美。

简言之,恶意用户和脆弱系统中的恶意软件均可利用该边信道攻击篡改软件或抽取其他应用的秘密数据,或在特定条件下远程操作。

Windows内核已针对该攻击做了更新,用户很快就会收到更新推送。

操作系统的页缓存在RAM中存储应用程序和操作系统经常用到的大量可执行程序、库和各种各样的数据,省去不停从硬盘存取的开销,能够大幅提升计算机的作业速?#21462;?/p>

缓存页可被同时?#25104;?#21040;多个进程的虚拟内存区。比如说,一个代码库可只载入物理内存一次,而被?#25104;?#21040;多个应用的虚拟内存空间,省出物理RAM和加载时间。

这种内存共享和缓存的按需载入载出机制便为攻击打开了大?#29275;?#21487;以窥探其他进程的访问模式,基于硬盘和缓存间复制或移动的信息抽取出数据。

本地还是远程?

本地攻击中,该边信道攻击技术假定黑客和受害者在同一个操作系统或在共享文件的不同沙箱中运行进程。确定内存中哪些页面被调入页缓存时,若是Linux操作系统,便用mincore系统调用;若是Windows系统,便用QueryWorkingSetEx。

远程攻击需测定软页面错误:应用程序访问的内存?#34892;?#20294;当时并未给该内存分配物理页面,导致操作系统调入必要页面时发生的错误。攻击者在远程服务器上执行程序测量公共文件访?#25163;?#30340;?#26144;佟?/p>

?#33455;?#20154;员表示,此项?#33455;?#20027;要出于学术目的,已经做了负责?#38395;?#38706;,目前至少Windows系统是打了补丁的。

本?#33455;?#34920;明,在操作系统层面,我们遇到了硬件层面上相同的问题。

Windows 10 内部预览版 Build 18305 ?#30740;?#22797;了该漏洞,但补丁?#38382;?#20844;开发布?#24418;?#21487;知。

修复要求QueryWorkingSetEx系统调用设置PROCESS_QUERY_INFORMATION标志位而非PROCESS_QUERY_LIMITED_INFORMATION标志,让权限较小的进程无法直接访问页缓存信息。另外还需隐去 Share Count (共享计数)信息,让攻击者无法通过页面工作区的进程数间接观测其他进程的变动。

Linux安全团队据称也注意到了该问题,但?#33455;?#20154;员的论文?#32961;?#26410;提到相关缓解工作。曾演示过PHP口令生成攻击的phpMyFAQ开发人员也被告知了该新边信道攻击问题,正在开发修复补丁。

相关阅读

如何发现防不胜防的边信道攻击?

网页缓存中毒?#21644;?#25918;恶意代码新方法

 

分享:
0

相关文章

写一条评论

 

 

0条评论