[发明专利]使软件程序免于弱点和攻击的约束注入系统有效
申请号: | 200680029009.9 | 申请日: | 2006-06-06 |
公开(公告)号: | CN101278260A | 公开(公告)日: | 2008-10-01 |
发明(设计)人: | 萨曼·P·阿马拉辛格;巴拉思·钱德拉莫汉;查尔斯·雷纳特;德里克·L·布鲁宁;弗拉迪米尔·L·基里安斯基;蒂姆·加尼特;桑迪·威尔伯恩;沃伦·吴 | 申请(专利权)人: | VM软件股份有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京市柳沈律师事务所 | 代理人: | 胡琪;黄小临 |
地址: | 美国加利*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 软件 程序 免于 弱点 攻击 约束 注入 系统 | ||
交叉参考相关申请
本申请要求2005年6月7日提出、发明名称为“使软件程序免于弱点和攻击的约束注入(injection)系统”的美国临时专利申请第60/688,099号的权益,特此引用以供参考。
环境技术
计算机主机遭受各种各样的攻击,譬如,服务的拒绝、特权提升、目录遍历、缓冲器溢出、未授权远程或本地执行/访问、信息泄漏等。这样的攻击对像公司那样的企业、政府、和其它大型机构特别有害和代价昂贵。其结果是,发展出防止这样攻击的行业。例如,通过预测未来攻击,主动地(proactively)开发出保护软件。尽管主动地保护可以防止一大类攻击,但主机入侵防御不能只依靠主动地保护。存在许多其它可在系统上获得的可能攻击向量,并且没有主动系统可以保证100%覆盖地防止已知和未知攻击,包括那些还未开发的系统。当前的应用程序和操作系统对于任何入侵防御系统来说都过于复杂,无法精确识别所有可能攻击向量。因此,需要一种可以及时地对任何可能弱点或攻击作出反应的宽广和灵活系统。
并且,反应性地处理弱点的当前最有效方法是修补系统。当发现弱点时,通常由独立软件销售商(ISV)创建一个补丁。典型的补丁替换可执行文件或动态链接库,需要重新启动应用程序或重新引导系统才能激活补丁。典型补丁进程包括修复代码中的故障,然后重新编译代码和发布带有必要模块的可执行文件。但是,补丁更新非常不利于软件升级:通常需要重新引导应用程序,其是对应用程序的单次整体改变并会改变正常操作行为,消除有问题补丁很麻烦,并且顾客看不见补丁的有效性。
需要一种解决了上述和其它问题的软件保护技术。
发明内容
这里粗略描述的技术提供了保护软件的约束注入系统和技术。
该约束注入系统和技术精确地保护应用程序存储器中弱点本身的附近,而不是系统或网络周围的应用程序存储器的外部。约束通常是插入程序中的少数几个机器指令。约束也可以插入到存储器中程序指令驻留的激活应用程序中。该系统和技术提供了在保持关键业务连续性的同时,解决任何已知类型的软件缺陷的能力,所述软件缺陷包括允许诸如服务的拒绝、特权提升、目录遍历、缓冲器溢出、未授权远程或本地执行/访问、信息泄漏等攻击的那些。该系统和技术对传统修补作了补充,并且由于可以快速部署,缩短了使程序面临攻击的时间。
新的约束可以不重新启动或重新引导地应用于正在运行的应用程序,和可以周期性地或在需要时提供更新。类似地,不需要升级硬件或其它程序。而且,约束注入技术可以以在启用约束之前精确指示用户/应用程序干扰的风险的直接方式运行,和以启用约束的保护方式运行。
约束注入系统和技术还通过,例如,服务器、群体或操作系统启用细粒度管理控制。
在一个实施例中,保护软件的计算机实现方法包括在计算机程序的指令之间的补丁点处将约束代码插入程序中,和当计算机程序的控制流到达补丁点时执行约束代码。约束代码可以包括,例如,汇编代码或机器指令。约束代码可以调用检测在计算机程序中是否调用了弱点的检测器,和响应检测器而调用补救器(remediator)以采取补救动作。在一种手段中,该插入包括将计算机程序的代码段复制到高速缓存,和将约束代码的至少一条指令插入高速缓存中计算机程序的指令之间的代码段中。在另一种手段中,该插入包括用约束代码的至少一条指令替换计算机程序的至少一条指令,和将至少一个替换指令存储在网关上,在这种情况下不需要高速缓存。
在另一个实施例中,保护软件的计算机实现方法包括识别计算机程序中的弱点,开发消除弱点的约束,该约束包含在特定点处插入计算机程序中的代码,和向至少一个顾客发布约束。
本发明还提供了相应系统和程序存储设备。
附图简述
图1例示了开发约束的进程;
图2例示了部署约束的进程;
图3例示了利用代码高速缓存在应用程序内部署约束的软件结构;
图4a例示了约束注入系统的信息流;
图4b例示了使用约束注入系统的网络环境(context);
图5例示了调用所部署约束时的控制流;
图6例示了加载新约束或模块时采用的进程;
图7例示了部署或移除补丁点时采用的进程;
图8例示了创建新片段时采用的进程;
图9提供了示范性约束代码的源代码(检测器和保护器函数);
图10提供了NTDLL.DLL,即,用于与Windows内核交互的核心操作系统组件中的图9的源代码的反汇编;
图11提供了生成和发送给顾客的带有约束代码的XML文件;和
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于VM软件股份有限公司,未经VM软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200680029009.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:光学玻璃
- 下一篇:通信方法和使用其的网络显示设备