软件安全知识之​​减少漏洞利用

减少漏洞利用

即使有很好的技术来防止在新代码中引入漏洞,或者检测现有代码中的漏洞,也必然会有大量的遗留代码。在可预见的未来,漏洞正在积极使用。因此,漏洞预防和检测技术可以辅之以减轻对剩余漏洞的利用的技术。这种缓解技术通常在执行基础结构中实现,即硬件、操作系统、加载程序或虚拟机,或者由编译器(所谓的“内联引用监视器”)。这些技术的一个重要目标是限制对性能的影响,并最大限度地提高与旧程序的兼容性。

攻击的运行时检测

程序执行的运行时监视是检测攻击的强大技术。原则上,在测试期间检测漏洞的程序监视器(在3.2动态检测中讨论)也可以在运行时用于检测攻击。例如,动态污点分析与动态检查受污染的数据是否影响生成的输出的解析树相结合,也被提议作为SQL注入攻击的运行时缓解技术。

但是,测试期间使用的监视器(在主题3中讨论)和运行时用于缓解攻击的监视器的性能要求存在重要差异。对于攻击的运行时检测,挑战在于识别可有效检测的属性冲突,这些冲突预期在程序的执行跟踪中保持不变。使用了多种技术:

• 堆栈Canary检测调用堆栈上激活记录完整性的违规行为,从而检测一些利用内存管理漏洞修改返回地址的攻击。

• 无执行(NX)数据存储器检测到将程序计数器定向到数据存储器而不是代码存储器的尝试,因此可检测许多直接代码注入攻击。

• 控制流完整性(CFI)是一类技术,用于监视程序的运行时控制流是否符合预期控制流的某些规范,并且因此可以检测到许多代码重用攻击。

检测到攻击时,运行时监视器必须做出适当的反应,通常是终止受到攻击的程序。终止是确保攻击不会造成进一步损害的良好反应,但它当然会对可用性属性产生负面影响。

自动化软件多样性

漏洞的利用通常依赖于受攻击软件的实现细节。例如,利用内存管理漏洞通常依赖于运行时程序内存布局的详细信息。SQL注入攻击可能依赖于SQL查询发送到的数据库的详细信息。

因此,使漏洞更难利用的通用对策是使这些实现细节多样化。这以两种方式提高了攻击的标准。首先,攻击者更难在相同的系统上准备和测试他/她的攻击。由于多样化,针对攻击者计算机上安装的Web服务器的攻击可能会对受害计算机上的同一Web服务器失败。其次,构建同时针对多个系统的攻击更难。攻击者现在必须为他们想要攻击的每个系统构建定制的漏洞,而不是构建一次漏洞,然后对许多系统使用它。

这个想法最重要的实现是地址空间布局随机化(ASLR),其中代码,堆栈和/或堆内存的布局在加载或加载时随机化。运行。这种随机化可以是粗粒度的,例如,通过随机重新定位代码、堆栈和堆段的基址,或者细粒度地将代码存储器中各个函数的地址、激活记录在堆栈,或堆中的对象是随机选择的。

研究界已经研究了许多其他在编译时或安装时自动创建多样性的方法[28],但这种自动多样化也会给软件维护带来重要的挑战,如错误报告。可能更难解释,软件更新可能也必须多样化。

限制权限

利用软件漏洞会影响受攻击软件的行为,从而违反某些安全目标。通过对软件可以做什么施加一般限制,可以大大降低攻击的潜在损害。

沙盒是一种安全机制,其中软件在受控环境(“沙盒”)中执行,并且可以对沙盒中的软件可以访问的资源强制执行策略。沙盒可用于限制不受信任的软件,但也可用于减轻利用对易受攻击软件的影响:在成功利用软件后,攻击者仍受到沙盒。

沙盒的通用概念可以使用现代计算机系统提供的任何隔离机制进行实例化:沙盒可以是在虚拟机监视器的监督下运行的虚拟机,也可以是操作系统施加访问控制策略的进程。此外,已经为特定类别的软件开发了几种特定于目的的沙盒机制,例如,可以在虚拟主机环境中对网络和文件系统访问进行沙盒处理的监狱。Java运行时环境实现了一种沙盒机制,旨在包含不受信任的Java代码,或将代码与同一Java虚拟机中的不同利益相关者隔离开来,但多年来在该沙盒机制中发现了几个重大漏洞[29]。

分化是一种相关但更细粒度的安全机制,其中软件本身被划分为多个隔间,并且对每个隔间的特权强制执行一些界限。这再次需要一些底层机制来强制执行这些边界。例如,一个部分化的浏览器可以依靠操作系统进程访问控制,通过拒绝其文件系统访问来绑定其渲染引擎的权限。现在,渲染引擎中的软件漏洞利用已得到缓解,即使成功利用此漏洞,攻击者仍被阻止访问文件系统。非常细粒度的分化形式可以通过对象能力系统[22]实现,其中每个应用程序级对象都可以是一个单独的保护域。

为了缓解侧信道漏洞,可以将易受攻击的代码隔离在单独的内核或单独的硬件上,这样通过侧信道泄漏的信息就不再存在。攻击者可观察到。

软件完整性检查

在“可信计算”这一总称下,已经开发了广泛的技术来测量计算机系统的状态,并在该状态被认为不安全时采取适当的措施。一种代表性的技术是可信引导,其中为每个执行的程序累积测量值。对程序的任何修改(例如,由于成功的攻击)都将导致不同的测量。然后,可以强制规定,例如,只能从具有指定测量值的状态访问密钥。

Parnoetal.[30]对这类技术进行了很好的概述。

结论

软件实现漏洞有多种形式,可以通过各种对策来缓解。表1总结了本章中讨论的漏洞类别之间的关系,以及通常用于应对这些漏洞的相关预防、检测和缓解技术。

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/143601.html<

(0)
管理的头像管理
上一篇2025-03-09 18:51
下一篇 2025-03-09 18:53

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注