[发明专利]检查应用程序漏洞的方法、装置和系统有效
申请号: | 200910143827.7 | 申请日: | 2009-05-31 |
公开(公告)号: | CN101901184A | 公开(公告)日: | 2010-12-01 |
发明(设计)人: | 汪涛;胡建钧 | 申请(专利权)人: | 西门子(中国)有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100102 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 检查 应用程序 漏洞 方法 装置 系统 | ||
技术领域
本发明涉及软件安全技术,具体涉及一种用于检查应用程序漏洞(vulnerability)的方法、装置和系统。
技术背景
软件的安全问题主要来源于外部的输入数据。攻击者可通过输入恶意的数据对软件系统进行攻击。由外部输入恶意数据导致的软件安全漏洞有:命令注入(Command Injection)、SQL注入(SQL Injection)、跨站脚本(Cross-SiteScripting)和路径操纵(Path Manipulation)等。
对外部的输入数据进行输入验证(validation),是保证软件安全的一种有效途径。目前,输入验证的主要方法,包括:静态的代码分析方法和动态的污染传播方法。
静态的代码分析方法,是通过对软件系统的源代码进行扫描,根据应用程序中的数据流、控制流和语义等信息与具体的软件安全规则库进行配对,找出该源代码中的潜在的安全漏洞。动态的污染传播方法,是通过在应用程序的数据入口点,模拟攻击者输入不正确的数据,找出运行时刻所存在的安全漏洞。
静态的代码分析方法,适于开发阶段。然而,在测试阶段,应用程序有可能变化巨大。并且,多数时候,得到完整的应用程序的源代码不是件易事。动态的污染传播方法,由于在运行时刻很难枚举全部应用程序的数据入口点,因而,模拟的测试数据只能达到有限的测试点。相比于静态的代码分析方法,动态的污染传播方法,漏报率较高。
需要一种有效的检查应用程序漏洞的方法和装置。
发明内容
本发明的一个目的是提供一种用于检查应用程序漏洞的方法和装置。利用该方法和装置,不需要应用程序的源代码,也不需要输入攻击性测试数据,即可提供一份有关应用程序潜在的安全漏洞的详细报告。
按照本发明的一种用于检查应用程序漏洞的方法,包括:对于该应用程序的一个函数,检查在该函数体内是否存在一个引爆点;若存在该引爆点,则判断传入该引爆点的输入数据是否带有污染标记;若该输入数据带有污染标记,则确定该引爆点存在安全漏洞;将该函数及其相应的漏洞模式添加到一个危险函数库中,该漏洞模式至少包括用于指示该函数的可污染参数的指示符。
按照本发明的一种用于检查应用程序漏洞的方法,包括:扫描该应用程序以搜索至少一个该应用程序的调用函数(calling function),该调用函数调用该应用程序的一个函数;根据该被调函数(called function)的属性,确定该被调函数是否与一个危险函数库中的危险函数相匹配;若匹配,则基于该危险函数的漏洞模式,确定传入该被调函数的输入数据是否会导致一个安全漏洞;若该输入数据会导致安全漏洞,则将该调用函数及其相应的漏洞模式添加到该危险函数库中。
按照本发明的一种用于检查应用程序漏洞的装置,包括:对于该应用程序的一个函数,检查在函数体内是否存在一个引爆点的单元;若存在该引爆点,则判断传入该引爆点的输入数据是否带有污染标记的单元;若该输入数据带有污染标记,则确定该引爆点存在安全漏洞的单元;将该函数及其相应的漏洞模式添加到一个危险函数库中的单元,该漏洞模式至少包括用于指示该函数的可污染参数的指示符。
按照本发明的一种用于检查应用程序漏洞的装置,包括:扫描该应用程序以搜索至少一个该应用程序的调用函数的单元,该调用函数调用该应用程序的一个函数;根据该被调函数的属性,确定该被调函数是否与一个危险函数库中的危险函数相匹配的单元;若匹配,则基于该危险函数的漏洞模式,确定传入该被调函数的输入数据是否会导致一个安全漏洞的单元;若该输入数据会导致安全漏洞,则将该调用函数及其相应的漏洞模式添加到该危险函数库中的单元。
通过参考以下结合附图的说明以及权利要求书中的内容,并且随着对本发明的更全面的理解,本发明的其他目的及效果将变得更加清楚和易于理解。
附图说明
以下将参照附图,通过实施例详细地描述本发明,其中:
图1是按照本发明一个实施例的构建基础危险函数库的方法的流程图;
图2是按照本发明一个实施例的检查应用程序漏洞的方法的示意图;
图3是按照本发明另一个实施例的检查应用程序漏洞的方法的示意图。
在所有附图中,相同的标号表示相似或相应的特征或功能。
具体实施方式
附图1是按照本发明一个实施例的用于构建基础危险函数库的方法的流程图。在这个实施例中,该应用程序是将JAVA编程语言与web技术相结合的J2EE应用程序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西门子(中国)有限公司,未经西门子(中国)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910143827.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种通过分组实现大规模棋牌比赛的方法
- 下一篇:显示快捷键的电子装置及方法