基于参数和信息流的源代码越权检测方法及装置制造方法及图纸

技术编号:16153615 阅读:45 留言:0更新日期:2017-09-06 18:41
本发明专利技术提供了一种基于参数和信息流的源代码越权检测方法及装置,该方法包括:对应用平台源代码进行解析,并将解析到的源代码信息采用语法树表示;对语法树进行信息流分析,以获得信息流信息;根据预设的越权检测策略和信息流信息,对应用平台源代码进行越权检测;输出越权高风险的参数及相关信息。由于采用信息流对参数进行越权检测,与应用平台业务逻辑紧密相关,能够对源代码的逻辑进行深入分析,所以能够减少误报率,提高检测的准确率,并且实现了基于业务逻辑的越权漏洞的检测,使应用平台的源代码在银行等业务场景广泛的行业能被安全使用。

【技术实现步骤摘要】
基于参数和信息流的源代码越权检测方法及装置
本专利技术实施例涉及计算机
,尤其涉及一种基于参数和信息流的源代码越权检测方法及装置。
技术介绍
随着网络技术和应用平台的飞速发展,信息安全正面临着前所未有的挑战。信息系统与互联网或其他网络的互连,使信息系统遭受攻击的概率增加。近年来,重大安全事件的频频发生揭示了当前信息系统安全形式的严峻性。应用平台源代码是构建信息的基础组件,应用平台源代码中安全漏洞的存在是安全事件频繁发生的根源。因此多种应用平台源代码的安全检测软件应运而生。目前主流的应用平台源代码检测的开源软件包括:Checkstyle,FindBugs,PMD,Jtest等,商业软件包括:Foritify,CheckMarx和CodeSecure等。其中,Checkstyle是开源软件开发平台SourceForge的开源Java代码静态检测项目,通过分析应用平台源代码的多个方面进行代码规范和风格检查。如编码格式、命名约定、Javadoc、类设计等,进而约束代码编写者遵循代码编写规范。FindBugs是马里兰大学的一款Java静态检测分析开源工具,通过对软件的类文件或JAR文件的字节码和缺陷模式进行对比进而发现软件代码中的缺陷。PMD与CheckStyle相同,该工具也是开源软件开发平台SourceForge的开源Java代码静态检测工具,通过内置编码规则对Java源代码进行是否存在未使用代码、重复代码、潜在漏洞、循环体创建新对象等安全编码问题静态检测。Jtest是Parasoft公司推出的针对Java语言源代码的自动化优化和检测工具,该工具利用其内置的近千条Java编码规范对Java代码进行检测,得到程序中的编码错误。Fortify是提供应用软件安全开发工具和管理方案的厂商,为应用软件开发组织、安全审计人员和应用安全管理人员提供工具并确立最佳的应用软件安全实践和策略。Checkmarx是以色列的一家高科技软件公司,其产品CheckmarxCxSuite可识别、跟踪和修复软件源代码上的技术和逻辑方面的安全风险,以查询语言定位代码安全问题,其采用独特的词汇分析技术和CxQL专利查询技术来扫描和分析源代码中的安全漏洞和弱点。CodeSecure内建语法剖析功能无需依赖编译环境,任何人员均可利用Web操作与集成开发环境双接口,找出存在信息安全问题的源代码,并提供修补建议进行调整。现有的应用平台源代码检测的开源软件和商业软件并没有严格的信息流机制,会产生极高的误报率,并且均主要关注常规的代码缺陷,只能检测如跨站脚本(简称:XSS),结构化查询语言(简称:SQL),密码管理,危险API接口等缺陷,对于应用平台源代码中的业务逻辑并不了解,不能检测基于业务逻辑而产生的越权的漏洞,使应用平台源代码在银行等业务场景广泛的行业不能被安全使用。
技术实现思路
本专利技术实施例提供一种基于参数和信息流的源代码越权检测方法及装置,该方法解决了现有技术中对源代码检测的开源软件和商业软件不能检测基于业务逻辑而产生的越权的漏洞,使应用平台源代码在银行等业务场景广泛的行业不能被安全使用的技术问题。本专利技术实施例提供一种基于参数和信息流的源代码越权检测方法,包括:对应用平台源代码进行解析,并将解析到的源代码信息采用语法树表示;对所述语法树进行信息流分析,以获得信息流信息;根据预设的越权检测策略和所述信息流信息,对所述应用平台源代码进行越权检测;输出越权高风险的参数及相关信息。本专利技术实施例提供一种基于参数和信息流的源代码越权检测装置,包括:源代码解析模块,用于对应用平台源代码进行解析,并将解析到的源代码信息采用语法树表示;信息流分析模块,用于对所述语法树进行信息流分析,以获得信息流信息;越权检测模块,用于根据预设的越权检测策略和所述信息流信息,对所述应用平台源代码进行越权检测;越权参数输出模块,用于输出越权高风险的参数及相关信息。本专利技术实施例提供一种基于参数和信息流的源代码越权检测方法及装置,通过对应用平台源代码进行解析,并将解析到的源代码信息采用语法树表示;对语法树进行信息流分析,以获得信息流信息;根据预设的越权检测策略和信息流信息,对应用平台源代码进行越权检测;输出越权高风险的参数及相关信息。由于采用信息流对参数进行越权检测,与应用平台业务逻辑紧密相关,能够对源代码的逻辑进行深入分析,所以能够减少误报率,提高检测的准确率,并且实现了基于业务逻辑的越权漏洞的检测,使应用平台的源代码在银行等业务场景广泛的行业能被安全使用。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术基于参数和信息流的源代码越权检测方法实施例一的流程图;图2为本专利技术基于参数和信息流的源代码越权检测方法实施例二的流程图;图3为本专利技术基于参数和信息流的源代码越权检测方法实施例二中步骤204的流程图;图4为本专利技术基于参数和信息流的源代码越权检测方法实施例二中步骤205的流程图;图5为本专利技术基于参数和信息流的源代码越权检测方法实施例二中步骤205中各参数关系的示意图;图6为本专利技术基于参数和信息流的源代码越权检测装置实施例一的结构示意图;图7为本专利技术基于参数和信息流的源代码越权检测装置实施例二的结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。图1为本专利技术基于参数和信息流的源代码越权检测方法实施例一的流程图,本实施例的执行主体为基于参数和信息流的源代码越权检测装置,该基于参数和信息流的源代码越权检测装置可以安装或集成在计算机或服务器上,如图1所示,则本实施例提供的基于参数和信息流的源代码越权检测方法包括以下几个步骤。步骤101,对应用平台源代码进行解析,并将解析到的源代码信息采用语法树表示。其中,应用平台可以为科蓝平台或其他应用平台,本实施例中对此不做限定。具体地,本实施例中,对应用平台的源代码进行词法、语法、语义解析,将得到的源代码信息用语法树表示,该语法树可以为抽象语法树或其他语法树,本实施例中对此不做限定。解析到的语法树中包括:包信息、类信息、方法信息、本文档来自技高网
...
基于参数和信息流的源代码越权检测方法及装置

【技术保护点】
一种基于参数和信息流的源代码越权检测方法,其特征在于,包括:对应用平台源代码进行解析,并将解析到的源代码信息采用语法树表示;对所述语法树进行信息流分析,以获得信息流信息;根据预设的越权检测策略和所述信息流信息,对所述应用平台源代码进行越权检测;输出越权高风险的参数及相关信息。

【技术特征摘要】
1.一种基于参数和信息流的源代码越权检测方法,其特征在于,包括:对应用平台源代码进行解析,并将解析到的源代码信息采用语法树表示;对所述语法树进行信息流分析,以获得信息流信息;根据预设的越权检测策略和所述信息流信息,对所述应用平台源代码进行越权检测;输出越权高风险的参数及相关信息。2.根据权利要求1所述的方法,其特征在于,所述对所述语法树进行信息流分析,以获得信息流信息,具体包括:对所述语法树进行控制流分析,以获得控制流信息,所述控制流信息至少包括:类间关系信息、方法间关系信息;对所述语法树进行数据流分析,以获得数据流信息,所述数据流信息至少包括:类信息、方法信息、参数信息、常量信息、表达式信息;其中,所述信息流信息包括:控制流信息和数据流信息。3.根据权利要求2所述的方法,其特征在于,所述根据预设的越权检测策略和所述信息流信息,对所述应用平台源代码进行越权检测,具体包括:对所述信息流信息进行分析,识别出所述信息流信息中的每个参数对应的参数获取方法,判断每个参数获取方法是否存在于易发生越权方法列表中;获取所述参数获取方法存在于易发生越权方法列表中的第一参数,判断所述第一参数是否存在于易发生越权列表中;获取第一参数中存在于易发生越权列表中的第二参数及对应的交易标识码,判断所述第二参数及对应的交易标识码是否关联存在于越权处理表中;获取所述第二参数中所述第二参数及对应的交易标识码不关联存在于所述越权处理表中的第三参数及所述第三参数对应的前端页面,根据所述前端页面判断所述第三参数是否通过用户输入;获取所述第三参数中不通过用户输入的第四参数及所述第四参数对应的java处理类的信息流信息;对所述第四参数对应的java处理类的信息流信息进行分析,若所述第四参数是从前端页面传递到服务器的参数,则判断所述第四参数和参数标识是否符合预设的越权检测对应关系;获取所述第四参数和参数标识不符合预设的越权检测对应关系的第五参数及所述第五参数对应的java处理类的信息流信息;对所述第五参数对应的java处理类的信息流信息进行分析,判断所述第五参数是否和会话相关;获取所述第五参数中不与会话相关的第六参数。4.根据权利要求3所述的方法,其特征在于,所述输出越权高风险的参数及相关信息,具体包括:输出越权高风险的参数名及越权高风险的参数对应的配置文件的XML文本的行号、交易标识码、java处理类、前端页面;其中,所述越权高风险的参数为第六参数。5.根据权利要求4所述的方法,其特征在于,所述对应用平台源代码进行解析,并将解析到的源代码信息采用语法树表示之前,还包括:获取应用平台源代码;对所述应用平台源代码...

【专利技术属性】
技术研发人员:张磊高晓梦吕晓强李吉慧
申请(专利权)人:中国民生银行股份有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1