您现在的位置是:网络安全 >>正文
操作系统/虚拟化安全知识域:系统强化之控制流限制
网络安全3345人已围观
简介控制流限制正交防线是调节操作系统的控制流。通过确保攻击者无法将控制权转移到他们选择的代码上,即使我们不删除内存错误,我们也使利用内存错误变得更加困难。最好的例子被称为控制流完整性CFI),现在许多编译 ...
正交防线是操作调节操作系统的控制流。通过确保攻击者无法将控制权转移到他们选择的系统虚拟系统限制代码上,即使我们不删除内存错误 ,化安我们也使利用内存错误变得更加困难 。全知强化最好的识域例子被称为控制流完整性(CFI),现在许多编译器工具链(如LLVM和微软的控制流VisualStudio),并于2017年以ControlFlowGuard的操作名义并入Windows内核-另见软件安全CyBOK知识领域。
从概念上讲,系统虚拟系统限制CFI非常简单 :我们确保代码中的化安控制流始终遵循静态控制流图。例如,亿华云全知强化一个函数的识域返回指令应该只允许返回到它的调用站点,而使用C中的控制流函数指针或C++中的虚函数的间接调用应该只能够定位它应该能够调用的合法函数的入口点。为了实现这种保护 ,操作我们可以标记间接控制转移指令的系统虚拟系统限制所有合法目标(返回 、间接调用和间接跳转),化安并将这些标签添加到特定于此指令的集合 。在运行时 ,服务器租用我们检查指令即将进行的控制转移是否是到集合中的目标。否则 ,CFI会发出警报和/或使程序崩溃 。
与ASLR一样,CFI有多种口味 ,从粗粒度到细粒度,从上下文敏感到上下文不敏感。就像在ASLR中一样,今天的大多数实现只采用最简单 ,最粗粒度的保护。高防服务器粗粒度CFI意味着为了性能而稍微放宽规则。例如,它不是将函数的返回指令限制为可能调用此函数的仅目标合法调用站点,而是可以针对任何调用站点。虽然不如细粒度CFI安全,但它仍然极大地限制了攻击者的回旋余地 ,并且具有更快的运行时检查。
在现代机器上,某些形式的CFI甚至(或将要)得到硬件的建站模板支持 。例如 ,英特尔控制流强制技术(CET)支持影子堆栈和间接分支跟踪 ,以帮助分别强制实施退货和前向控制传输的完整性(以非常粗粒度的方式) 。ARM也不甘示弱,它提供了指针身份验证,以防止对指针值进行非法修改—主要是通过使用指针的上位来存储指针身份验证代码(PAC) ,其功能类似于加密指针值上的签名(除非您获得正确的PAC,否则您的指针无效) 。香港云服务器
遗憾的是,CFI只能通过破坏返回地址 、函数指针和跳转目标等控制数据来帮助抵御改变控制流的攻击,但对非控制数据攻击却无能为力 。例如,它无法阻止覆盖当前进程的权限级别并将其设置为“root”的内存损坏(例如 ,通过将有效用户ID设置为root用户的ID)。但是,如果对控制流的源码下载限制在实践中如此成功,您可能想知道数据流是否也可以进行类似的限制。事实上,它们确实如此,这被称为数据流完整性(DFI)。在DFI中 ,我们静态地确定每个加载指令(即从内存中读取的指令)存储指令可能合法地产生了数据,并且我们标记这些指令并将这些标签保存在一组中 。在运行时 ,对于内存中的每个字节 ,我们记住该位置的最后一个存储的标签。当我们遇到加载指令时,我们会检查该地址的最后一个存储是否在合法存储集中,如果不是,我们会发出警报。与CFI不同 ,DFI在实践中并未被广泛采用,可能是因为其显著的性能开销。
Tags:
转载:欢迎各位朋友分享到网络,但转载请说明文章出处“算法与编程”。http://www.bzli.cn/news/237b699756.html
相关文章
五种顶级欺骗工具以及它们如何让网络攻击者落入陷阱
网络安全精通安全的企业应该明白,需要假设他们的系统可能遭到破坏。这是零信任架构如今受到如此多关注的原因之一,这也是越来越多的企业拥有威胁猎手以寻找已经在其网络上活跃的攻击者的原因。这种做法越来越流行,因为网络 ...
【网络安全】
阅读更多win10多任务按键怎么设置在底部详细方法
网络安全在使用电脑时候,任务视图按钮被用户们从键盘上不小心的移除了,导致使用起来非常的不方便,需要去解决,那么这个问题需要怎么去解决呢,快来看看详细的教程吧~win10多任务按键怎么设置在底部详细方法:1、我 ...
【网络安全】
阅读更多雨林木风win10系统怎么安装
网络安全当我们使用win10操作系统的时候电脑出现了各种无法修复的故障时,很多小伙伴可能会想要重装自己的操作系统。那么对于雨林木风win10系统怎么安装这个问题,小编觉得我们在电脑技术网 Tagxp.com下 ...
【网络安全】
阅读更多