【摘要】:如果受保护程序有未授权的篡改,就会触发守卫采取措施。其他情况下,守卫必须不能妨碍程序的基本功能。基于软件的守卫也能和基于硬件的保护联合使用,确保受保护的软件只有在授权的环境下才能运行。守卫应该对攻击具有适应能力。守卫允许开发者精确控制保护代码的放置。如果需要,守卫对攻击的反应可以灵活。也就是说,当检测到攻击时,守卫的反应取决于软件发行商的商业模式和预期敌手。
只使用一种简单的保护方案会增加漏洞,因为无论单一保护点多么有效,它会被定位,并处于危险境地。相反,为了提供强大的保护,多种保护技术(可能是简单的技术)应该协同使用,来抵制软件篡改、加强安全政策。这些小的安全单元称为守卫(Guards)。
一个守卫(Chang and Atallah,2001)是在程序运行时,负责执行某些安全相关操作的代码片段。守卫插入软件代码中,来保护代码的特定区域。在软件和其他对象(如硬件)的代码区能实现交叉保护(Cross-guarding)。如果受保护程序有未授权的篡改,就会触发守卫采取措施。其他情况下,守卫必须不能妨碍程序的基本功能。
这些守卫通过程序代码校验、代码修复等,为编程提供保护。大量的守卫可以组成网络(Chang和Atallah,2001),通过相互保护加强各自的安全。基于软件的守卫也能和基于硬件的保护联合使用,确保受保护的软件只有在授权的环境下才能运行。(www.xing528.com)
守卫能提供多层防御来化解攻击,例如它具有自愈能力、种类多样、随机执行。守卫应该对攻击具有适应能力(Resilient)。为抵御各种攻击,脚本稍作修改,会产生很不同的结构和代码流。使用高层脚本时,开发者可以选取哪一个特定守卫实例插入,或把哪一个特定序列用于变换。守卫允许开发者精确控制保护代码的放置。如果需要,守卫对攻击的反应可以灵活。也就是说,当检测到攻击时,守卫的反应取决于软件发行商的商业模式和预期敌手。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。