您的当前位置:首页 >系统运维 >软件安全知识之减少漏洞利用 正文
时间:2025-11-05 11:22:12 来源:网络整理编辑:系统运维
减少漏洞利用即使有很好的技术来防止在新代码中引入漏洞,或者检测现有代码中的漏洞,也必然会有大量的遗留代码。在可预见的未来,漏洞正在积极使用。因此,漏洞预防和检测技术可以辅之以减轻对剩余漏洞的利用的技术
减少漏洞利用
即使有很好的软件技术来防止在新代码中引入漏洞,或者检测现有代码中的安全漏洞,也必然会有大量的知识之遗留代码。在可预见的减未来,漏洞正在积极使用。少漏因此,洞利漏洞预防和检测技术可以辅之以减轻对剩余漏洞的软件利用的技术。这种缓解技术通常在执行基础结构中实现,安全即硬件、知识之操作系统、减加载程序或虚拟机,少漏或者由编译器(所谓的洞利“内联引用监视器”)。这些技术的软件一个重要目标是限制对性能的影响,并最大限度地提高与旧程序的安全兼容性。

攻击的知识之运行时检测
程序执行的运行时监视是检测攻击的强大技术。原则上,在测试期间检测漏洞的程序监视器(在3.2动态检测中讨论)也可以在运行时用于检测攻击。例如,IT技术网动态污点分析与动态检查受污染的数据是否影响生成的输出的解析树相结合,也被提议作为SQL注入攻击的运行时缓解技术。
但是,测试期间使用的监视器(在主题3中讨论)和运行时用于缓解攻击的监视器的性能要求存在重要差异。对于攻击的运行时检测,挑战在于识别可有效检测的属性冲突,这些冲突预期在程序的执行跟踪中保持不变。使用了多种技术:
• 堆栈Canary检测调用堆栈上激活记录完整性的违规行为,从而检测一些利用内存管理漏洞修改返回地址的攻击。
• 无执行(NX)数据存储器检测到将程序计数器定向到数据存储器而不是代码存储器的尝试,因此可检测许多直接代码注入攻击。
• 控制流完整性(CFI)是一类技术,用于监视程序的运行时控制流是否符合预期控制流的某些规范,源码库并且因此可以检测到许多代码重用攻击。
检测到攻击时,运行时监视器必须做出适当的反应,通常是终止受到攻击的程序。终止是确保攻击不会造成进一步损害的良好反应,但它当然会对可用性属性产生负面影响。
自动化软件多样性
漏洞的利用通常依赖于受攻击软件的实现细节。例如,利用内存管理漏洞通常依赖于运行时程序内存布局的详细信息。SQL注入攻击可能依赖于SQL查询发送到的数据库的详细信息。
因此,使漏洞更难利用的通用对策是使这些实现细节多样化。这以两种方式提高了攻击的标准。首先,攻击者更难在相同的系统上准备和测试他/她的攻击。由于多样化,针对攻击者计算机上安装的Web服务器的云南idc服务商攻击可能会对受害计算机上的同一Web服务器失败。其次,构建同时针对多个系统的攻击更难。攻击者现在必须为他们想要攻击的每个系统构建定制的漏洞,而不是构建一次漏洞,然后对许多系统使用它。
这个想法最重要的实现是地址空间布局随机化(ASLR),其中代码,堆栈和/或堆内存的布局在加载或加载时随机化。运行。这种随机化可以是粗粒度的,例如,通过随机重新定位代码、堆栈和堆段的基址,或者细粒度地将代码存储器中各个函数的地址、激活记录在堆栈,或堆中的对象是随机选择的。
研究界已经研究了许多其他在编译时或安装时自动创建多样性的方法[28],但这种自动多样化也会给软件维护带来重要的挑战,如错误报告。可能更难解释,软件更新可能也必须多样化。
限制权限
利用软件漏洞会影响受攻击软件的行为,从而违反某些安全目标。通过对软件可以做什么施加一般限制,可以大大降低攻击的潜在损害。
沙盒是一种安全机制,其中软件在受控环境(“沙盒”)中执行,并且可以对沙盒中的软件可以访问的资源强制执行策略。沙盒可用于限制不受信任的软件,但也可用于减轻利用对易受攻击软件的影响:在成功利用软件后,攻击者仍受到沙盒。
沙盒的通用概念可以使用现代计算机系统提供的任何隔离机制进行实例化:沙盒可以是在虚拟机监视器的监督下运行的虚拟机,也可以是操作系统施加访问控制策略的进程。此外,已经为特定类别的软件开发了几种特定于目的的沙盒机制,例如,可以在虚拟主机环境中对网络和文件系统访问进行沙盒处理的监狱。Java运行时环境实现了一种沙盒机制,旨在包含不受信任的Java代码,或将代码与同一Java虚拟机中的不同利益相关者隔离开来,但多年来在该沙盒机制中发现了几个重大漏洞[29]。
分化是一种相关但更细粒度的安全机制,其中软件本身被划分为多个隔间,并且对每个隔间的特权强制执行一些界限。这再次需要一些底层机制来强制执行这些边界。例如,一个部分化的浏览器可以依靠操作系统进程访问控制,通过拒绝其文件系统访问来绑定其渲染引擎的权限。现在,渲染引擎中的软件漏洞利用已得到缓解,即使成功利用此漏洞,攻击者仍被阻止访问文件系统。非常细粒度的分化形式可以通过对象能力系统[22]实现,其中每个应用程序级对象都可以是一个单独的保护域。
为了缓解侧信道漏洞,可以将易受攻击的代码隔离在单独的内核或单独的硬件上,这样通过侧信道泄漏的信息就不再存在。攻击者可观察到。
软件完整性检查
在“可信计算”这一总称下,已经开发了广泛的技术来测量计算机系统的状态,并在该状态被认为不安全时采取适当的措施。一种代表性的技术是可信引导,其中为每个执行的程序累积测量值。对程序的任何修改(例如,由于成功的攻击)都将导致不同的测量。然后,可以强制规定,例如,只能从具有指定测量值的状态访问密钥。
Parnoetal.[30]对这类技术进行了很好的概述。
结论
软件实现漏洞有多种形式,可以通过各种对策来缓解。表1总结了本章中讨论的漏洞类别之间的关系,以及通常用于应对这些漏洞的相关预防、检测和缓解技术。
固态硬盘导入系统教程(使用固态硬盘(SSD)为你的电脑带来飞跃性能提升)2025-11-05 11:02
解决电脑XP系统错误的重装方法(快速恢复电脑XP系统并修复各种错误问题)2025-11-05 10:48
华为电脑MateBookXPro使用教程(轻松掌握华为MateBookXPro的使用技巧与窍门)2025-11-05 10:41
余额宝的安全性及其优势剖析(探讨余额宝的投资安全性与风险防范措施)2025-11-05 10:37
以MaliT860玩游戏的优势和劣势分析(探索MaliT860在游戏领域的性能表现及局限性)2025-11-05 09:57
轻松掌握Windows10操作——以电脑ws10使用教程为主题(逐步学习ws10操作,提高电脑使用效率)2025-11-05 09:45
电脑QQ老显示密码错误的原因和解决方法(密码错误问题分析及解决办法)2025-11-05 09:02
HTCE9pw(重新定义高性能与时尚的完美结合)2025-11-05 09:00
如何去掉Word文档中的空白页?(简单有效的方法帮助您轻松处理Word文档中的无用空白页)2025-11-05 08:36
详解如何使用U盘重装戴尔系统(一步步教你重装戴尔系统,轻松搞定电脑问题)2025-11-05 11:10
解决电脑上网弹出证书错误的方法(探索证书错误的原因及应对之道)2025-11-05 11:07
以k快启动安装教程(轻松安装k快启动,提升系统启动速度)2025-11-05 10:54
课桌电脑置物架的安装教程(简单易懂的步骤让你轻松安装电脑置物架)2025-11-05 10:52
联想B680(高性能配置、便携轻薄、出色的商务应用体验)2025-11-05 09:34
手机信号满格却无法连接网络的解决方法(遇到手机信号满格但无法上网的情况?试试这些方法!)2025-11-05 09:24
电脑关机提示端口错误的原因及解决方法(探究电脑关机时显示端口错误的常见原因和解决办法)2025-11-05 09:14
Win10无法进入安全模式的解决办法(修复Win10无法进入安全模式的常见问题及解决方法)2025-11-05 09:11
百发100怎么样?(探索百发100对于个人成长的影响)2025-11-05 08:39
解决电脑启动风扇错误的方法(常见电脑风扇错误及其解决办法)2025-11-05 08:38