
上QQ阅读APP看书,第一时间看更新
2.6 运行时保护策略
2.6.1 检测和恢复
检测和恢复的缓解策略通常要求对运行时环境做出一定的改变,以便可以在缓冲区溢出发生时对其进行检测,以便应用程序或操作系统可以从错误中恢复(或者至少“安全地”失效)。由于在发生缓冲区溢出后攻击者有很多种方式控制程序的执行,因此和预防性策略相比,检测和恢复的策略并不算有效,而且也不应该作为系统唯一可依赖的缓解策略。然而,在最外层的防线被攻击突破的情况下,检测和恢复的策略通常能够形成第二道防线。存在这样一种危险,即程序员可能相信他们通过使用一个不完整的检测和恢复策略已经解决了这个问题,从而使他们对脆弱的软件存在错误的信心。为了避免这种偏见,应采用这种策略,然后忘记它。
缓冲区溢出的缓解策略,可以根据整个系统提供的缓解机制的组件进行分类:
·开发人员通过输入验证
·编译器及其相关的运行时系统
·操作系统