“研究人员找到了一种在具有Intel解决器的系统上运行恶意代码的做法”
通过这种方法,防病毒软件不会分解或识别恶意软件,而是使用解决方案本身的功能来保护坏代码。 恶意行为者不仅难以进行恶意软件的常规检查,还可以利用这种保护创建不向可读存储器公开加密密钥的威胁软件等应用程序,从而大大难以从攻击中恢复。
这项研究由格拉茨理工大学的迈克尔·施瓦茨、塞缪尔·韦瑟和丹尼尔·格尔斯(去年幽灵攻击的背后研究者之一)进行,采用了英特尔在skylake解决方案中引入的sgx )的功能。 。 使用sgx,程序可以开拓飞地,保护与代码和代码一起采用的数据,确保机密性(系统上的其他东西无法监视它们)和完整性(可以检测对代码和数据的篡改)。 隔离区的副本每次写入ram时都是透明加密的,读取时会解密。 解决方案控制对安全区存储器的访问。 没有任何尝试阻止从安全区外部代码访问安全区存储器。 解密和加密只通过比较安全区域中的代码来进行。
当开发人员试图保护代码和数据免受窥视时,sgx升级为处理一系列安全问题的处理方式。 例如,可以使用在云平台上运行的sgx飞地来执行自己的算法。 这样,云提供商也无法明确算法到底在做什么。 在客户端计算机中,可以用同样的方法采用sgx安全区来实施drm (数字版权管理)的限制。 drm使用的解密过程和密钥可以保留在安全的区域中,以免系统的其余部分被读取。 市场上有采用sgx飞地解决生物认证数据,安全保存以免被篡改的生物认证产品。
sgx是与这个特定的威胁模型进行比较设计的。 这个飞地很可靠,包含机密拷贝,但所有其他拷贝(应用程序、操作系统、甚至虚拟机管理程序)都可能存在敌意。 虽然该威胁模型已经受到攻击,但例如,创建错误的sgx安全区可能会更容易受到定时攻击和基于meltdown的攻击。 但是,只要遵循一些最佳实践,它似乎很强大。
无视英特尔的威胁模式吧
研究人员将这种鲁棒性用于恶意目的,设计出考虑了在飞地代码为恶意时会发生什么的问题的sgx,恶意软件就无法检查或分解正在运行的恶意软件。 这将成为放置恶意代码的有前途的地方。 但是,飞地的代码非常有限。 特别是没有做好操作系统呼叫的准备; 不能打开文件,不能从磁盘读取数据,也不能将数据写入磁盘。 这些事件都必须在飞地之外执行。 这样,天真的是,基于sgx的恐吓软件虚拟应用程序需要大量的外部代码sgx飞地。 列出所有文档,读取它们,以加密版本复盖的片段不受保护。 只有加密操作本身发生在安全区域内。
但是,安全区代码确实具有读取、写入未加密的进程存储器内的任意位置的能力; 飞地的外部看不到内部,但飞地的内部可以自由地看到外部。 研究人员利用这一能力扫描进程的内存,发现了为执行所选代码构建返回导向编程( rop )比较有效载荷所需的新闻。 这将链接作为主机应用程序一部分的可执行代码的小片段,从而允许主机应用程序执行意想不到的事件。
执行这个浏览和写入需要一点妙招。 当安全区代码试图读取未分配的内存,或者写入未分配的内存或只读内存时,典型的行为是生成异常,然后将求解器从安全区中退出以解决该异常。 这样就无法扫描主机的内存。 因为如果发生例外,恶意包围将失去作用,程序很可能崩溃。 为了处理这个问题,研究人员重新研究了对meltdown攻击也有用的技术。 他们采用了另一个英特尔解决方案功能——事务同步扩展( tsx )。
免责声明:雪球目录网免费收录各个行业的优秀中文网站,提供网站分类目录检索与关键字搜索等服务,本篇文章是在网络上转载的,本站不为其真实性负责,只为传播网络信息为目的,非商业用途,如有异议请及时联系btr2031@163.com,本站的工作人员将予以删除。