CN106033516B - 一种检测终端源代码安全的方法、装置及系统 - Google Patents

一种检测终端源代码安全的方法、装置及系统 Download PDF

Info

Publication number
CN106033516B
CN106033516B CN201510119196.0A CN201510119196A CN106033516B CN 106033516 B CN106033516 B CN 106033516B CN 201510119196 A CN201510119196 A CN 201510119196A CN 106033516 B CN106033516 B CN 106033516B
Authority
CN
China
Prior art keywords
source code
defect
detected
point
dependency graph
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510119196.0A
Other languages
English (en)
Other versions
CN106033516A (zh
Inventor
苏郁
成方军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Mobile Group Shanxi Co Ltd
Original Assignee
China Mobile Group Shanxi Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Mobile Group Shanxi Co Ltd filed Critical China Mobile Group Shanxi Co Ltd
Priority to CN201510119196.0A priority Critical patent/CN106033516B/zh
Publication of CN106033516A publication Critical patent/CN106033516A/zh
Application granted granted Critical
Publication of CN106033516B publication Critical patent/CN106033516B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明提供了一种检测终端源代码安全的方法、装置及系统,其中,方法包括:获取待检测源代码,对所述待检测源代码进行词法和语法解析,将所述待检测源代码转化为控制流程图;根据预设的缺陷规则集,从所述控制流程图中提取预定缺陷的缺陷点集合,并为每个预定缺陷构建缺陷点的程序依赖图;遍历每个预定缺陷的缺陷点的程序依赖图,判断所述程序依赖图中存在未经过净化的数据污染点时,进一步将所述未经过净化的数据污染点作为潜在缺陷点。本发明实现了对待检测源代码的自动分析,发现了应用系统现有和潜在的安全问题,在有效的降低缺陷分析误报率和漏报率的同时,提高了检测效率。

Description

一种检测终端源代码安全的方法、装置及系统
技术领域
本发明涉及互联网安全领域,尤其是涉及一种检测终端源代码安全的方法、装置及系统。
背景技术
在应用系统软件中很多地方都有可能存在安全缺陷(漏洞),代码审核是对应用系统的源代码进行全方位的检查,从而实现对应用系统安全性的检测。现有的解决方案主要是通过源码服务,使用Fortify和Coverity进行源码缺陷分析,确保每次上线代码的合法合规。但是Fortify和Coverity两种工具误报漏报率高,检测效率低,经常出现扫描过程中崩溃的现象。
发明内容
为了能够实现对待检测源代码的自动分析,发现应用系统现有和潜在的安全问题,在有效的降低缺陷分析误报率和漏报率的同时,提高检测效率,本发明提供了一种检测终端源代码安全的方法、装置及系统。
为了实现上述目的,本发明提供了一种检测终端源代码安全的方法,其中,所述方法包括:
获取待检测源代码,对所述待检测源代码进行词法和语法解析,将所述待检测源代码转化为控制流程图;
根据预设的缺陷规则集,从所述控制流程图中提取预定缺陷的缺陷点集合,并为每个预定缺陷构建缺陷点的程序依赖图;
遍历每个预定缺陷的缺陷点的程序依赖图,判断所述程序依赖图中存在未经过净化的数据污染点时,进一步将所述未经过净化的数据污染点作为潜在缺陷点。
可选的,所述获取待检测源代码的具体步骤为:接收集中调度平台根据待检测源代码的缺陷类型下发的待检测源代码。
可选的,所述对所述待检测源代码进行词法和语法解析,将所述待检测源代码转化为控制流程图的具体步骤为:对所述待检测源代码进行词法和语法解析,将所述待检测源代码生成抽象语法树,然后进一步将所述抽象语法树生成控制流程图。
可选的,所述进一步将所述未经过净化的数据污染点作为潜在缺陷点之后,所述方法还包括:将所述潜在缺陷点形成缺陷报告,得到分析结果。
可选的,所述将所述潜在缺陷点形成缺陷报告,得到分析结果之后,所述方法还包括:将所述分析结果上传至文件服务器,由所述文件服务器将所述分析结果回传至所述集中调度平台,由所述集中调度平台将所述分析结果进行分类,存入至数据库。
依据本发明的另一个方面,还提供了一种用于检测终端源代码安全的装置,所述装置包括:解析模块,用于获取待检测源代码,对所述待检测源代码进行词法和语法解析,将所述待检测源代码转化为控制流程图;第一处理模块,用于根据预设的缺陷规则集,从所述控制流程图中提取预定缺陷的缺陷点集合,并为每个预定缺陷构建缺陷点的程序依赖图;第二处理模块,用于遍历每个预定缺陷的缺陷点的程序依赖图,判断所述程序依赖图中存在未经过净化的数据污染点时,进一步将所述未经过净化的数据污染点作为潜在缺陷点。
可选的,所述装置还包括接收模块,用于接收集中调度平台根据待检测源代码的缺陷类型下发的待检测源代码。
可选的,所述解析模块进一步用于,对所述待检测源代码进行词法和语法解析,将所述待检测源代码生成抽象语法树,然后进一步将所述抽象语法树生成控制流程图。
可选的,所述装置还包括输出模块,用于将所述潜在缺陷点形成缺陷报告,得到分析结果。
可选的,所述装置还包括上传模块,用于将所述分析结果上传至文件服务器,由所述文件服务器将所述分析结果回传至所述集中调度平台,由所述集中调度平台将所述分析结果进行分类,存入至数据库。
依据本发明的另一个方面,还提供了一种用于检测终端源代码安全的系统,所述系统包括一个或多个用于检测终端源代码安全的装置,每一所述装置的所述第一处理模块中所提取的所述预定缺陷的缺陷点集合,形成为预设的缺陷规则集的扩展缺陷规则集。
可选的,所述系统还包括:包含有待检测源代码的终端;集中调度平台,用于接收所述终端上传的待检测源代码,并分析所述待检测源代码的缺陷类型,根据所述待检测源代码的缺陷类型将所述待检测源代码下发至一个或多个所述装置;文件服务器,用于接收一个或多个的所述装置上传的分析结果,并将所述分析结果回传至所述集中调度平台;数据库,用于接收并存储所述集中调度平台进行分类后的分析结果。
本发明的有益效果是:
本发明通过预设的缺陷规则集,从待检测源代码的控制流程图中提取预定缺陷的缺陷点集合,并通过遍历每个预定缺陷的缺陷点的程序依赖图,找到程序依赖图中的未经过净化的数据污染点,最后将该数据污染点作为潜在缺陷点输出。本发明通过预设的缺陷规则集,能够实现对待检测源代码的自动分析,发现待检测源代码中的潜在缺陷点即发现应用系统中潜在的安全问题。另外,通过遍历预定缺陷的缺陷点的程序依赖图,可以有效降低缺陷分析的误报率和漏报率,提高待检测源代码的检测效率。
附图说明
图1表示本发明的实施例中检测终端源代码安全的方法的主要步骤流程图;
图2表示本发明的实施例中检测终端源代码安全的方法的详细步骤流程图;
图3表示本发明的实施例中用于检测终端源代码安全的装置的结构框图;以及
图4表示本发明的实施例中用于检测终端源代码安全的系统的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
如图1所示,为本发明的实施例中检测终端源代码安全的方法的主要步骤流程图,该方法主要包括如下步骤:
步骤S101,获取待检测源代码,对待检测源代码进行词法和语法解析,将待检测源代码转化为控制流程图。
在本步骤中,对终端源代码进行安全检测的首要任务是对待检测源代码进行词法和语法解析,将待检测源代码转化为控制流程图。具体的,在对待检测源代码进行词法和语法解析时,可以先将待检测源代码转化为抽象语法树,然后进一步将抽象语法树生成控制流程图,其中,控制流程图描述了程序的潜在可执行路径,且控制流程图更易于进行静态分析;此外,还可以在控制流程图上进行数据流和控制流分析,其中,基于语义的缺陷分析能够发现变量未初始化、变量未使用、函数未使用以及死代码等代码质量问题,而基于数据流和控制流分析结果的污染传播分析能够发现SQL注入、XSS、命令注入和DOS等常见的安全缺陷。在此需要说明的是,待检测源代码可以是C、C++、Java、PHP、Python、Perl、JavaScript、JSP等多种语言的待检测源代码。
具体的,在对终端源代码进行安全检测之前,首先需要获取待检测源代码。可选的,在获取待检测源代码的过程中,终端将待检测源代码上传至集中调度平台,由集中调度平台根据待检测源代码的缺陷类型进行分类;最后接收集中调度平台根据待检测源代码的缺陷类型下发的待检测源代码。
步骤S102,根据预设的缺陷规则集,从控制流程图中提取预定缺陷的缺陷点集合,并为每个预定缺陷构建缺陷点的程序依赖图。
在本步骤中,首先需要获取预设的缺陷规则集,具体的,可以根据不同的检测需求提供不同的预设的缺陷规则集,例如可以提供结构化查询语言SQL、跨站脚本攻击XSS、命令注入和DOS等常见的安全缺陷的缺陷规则集。在此需要说明的是,由于缺陷规则集为一些预先收集并配置的编程规范,因此,缺陷规则集是可以进行扩展的。
在获取预设的缺陷规则集之后,就可以根据预设的缺陷规则集从待检测源代码的控制流程图中提取预定缺陷的缺陷点集合,并为每个预定缺陷的缺陷点集合中的每个缺陷点构建程序依赖图,该程序依赖图记录了可能影响缺陷点执行的语句集合,并且描述了这些语句之间的控制依赖关系和数据依赖关系;并且该程序依赖图是在待检测源代码的控制流程图的基础上生成的,待检测源代码的安全检测就是在每个缺陷点的程序依赖图上进行的。其中,具体的,预定缺陷指的是不同缺陷类型的程序缺陷,例如变量未初始化、变量未使用、函数未使用及时死代码等代码质量问题的程序缺陷,再例如,SQL注入、XSS、命令注入和DOS等常见的安全缺陷。另外,预定缺陷的缺陷点集合中的缺陷点表示可能会存在安全隐患的函数调用或其他操作,例如,函数strcpy()如果使用不当可能会造成缓冲区溢出漏洞,因此调用strcpy()的语句会被认为是缺陷点;而对数组的引用,如果下标的数值大于数组本身的大小,可能会造成数组越界,因此数组引用语句也会被认为是缺陷点。
步骤S103,遍历每个预定缺陷的缺陷点的程序依赖图,判断程序依赖图中存在未经过净化的数据污染点时,进一步将未经过净化的数据污染点作为潜在缺陷点。
在本步骤中,遍历每个预定缺陷的缺陷点集合中每个缺陷点的程序依赖图,判断程序依赖图中是否存在未经过净化的数据污染点,若判断程序依赖图中存在未经过净化的程序污染点,则将未经过净化的数据污染点作为潜在缺陷点。具体的,数据污染点指的是那些可以被恶意用户控制的数据,如用户输入、网络数据包、用户控制的文件等,而未经过净化的数据污染点指的是那些未经过过滤操作的数据污染点,过滤操作用于消除数据污染点中的不可信部分,使得经过过滤操作后的数据污染点在传递给缺陷点时,不会引发错误。
具体的,将未经过净化的数据污染点作为潜在缺陷点之后,可以将潜在缺陷点形成缺陷报告,得到分析结果。其中,可以将潜在缺陷点结合完整的缺陷规则集生成待检测源代码的缺陷报告,然后将缺陷报告的详细信息展示给用户,在缺陷报告中,可以详细列出缺陷类型、缺陷的危害程度、缺陷所违反的规则、缺陷传播路径、缺陷的触发途径,缺陷点、数据污染点在待检测源代码中的位置、数据从数据污染点传递到缺陷点的路径信息和可行的解决方案等。此外,在得到分析结果之后,可以将分析结果上传至文件服务器,由文件服务器将分析结果回传至集中调度平台,由集中调度平台将分析结果进行分类,并存入至数据库。
在对待检测源代码进行安全检测的过程中,通过预设的缺陷规则集,实现了待检测源代码的自动分析,发现了待检测源代码中的潜在缺陷点。另外,通过遍历预定缺陷的缺陷点的程序依赖图,有效降低了程序缺陷分析的误报率和漏报率,提高了待检测源代码的检测效率。
下面,更加系统的介绍检测终端源代码安全的方法。
如图2所示,为本发明的实施例中检测终端源代码安全的方法的详细步骤流程图。
步骤S201,解析待检测源代码。
在本步骤中,对终端源代码进行安全检测的首要任务是对待检测源代码进行词法和语法解析,生成中间表达形式,以方便后续的待检测源代码分析。其中,中间表达形式有抽象语法树、控制流程图和程序依赖图,抽象语法树是待检测源代码的树状表示,控制流程图描述了程序的潜在可执行路径,程序依赖图则描述了程序语句之间的控制依赖和数据依赖关系。具体的,在对待检测源代码进行词法和语法解析时,可以先将待检测源代码转化为抽象语法树,然后进一步将抽象语法树生成控制流程图,其中,控制流程图描述了程序的潜在可执行路径,且控制流程图更易于进行静态分析;此外,还可以在控制流程图上进行数据流和控制流分析,其中,基于语义的缺陷分析能够发现变量未初始化、变量未使用、函数未使用以及死代码等代码质量问题,而基于数据流和控制流分析结果的污染传播分析能够发现SQL注入、XSS、命令注入和DOS等常见的安全缺陷。在此需要说明的是,待检测源代码可以是C、C++、Java、PHP、Python、Perl、JavaScript、JSP等多种语言的待检测源代码。
具体的,在对终端源代码进行安全检测之前,首先需要获取待检测源代码。可选的,在获取待检测源代码的过程中,终端将待检测源代码上传至集中调度平台,由集中调度平台根据待检测源代码的缺陷类型进行分类;最后接收集中调度平台根据待检测源代码的缺陷类型下发的待检测源代码。
步骤S202,根据预设的缺陷规则集,提取预定缺陷的缺陷点集合。
在本步骤中,首先需要获取预设的缺陷规则集,具体的,可以根据不同的检测需求提供不同的预设的缺陷规则集,例如可以提供结构化查询语言SQL、跨站脚本攻击XSS、命令注入和DOS等常见的安全缺陷的缺陷规则集。在此需要说明的是,由于缺陷规则集为一些预先收集并配置的编程规范,因此,缺陷规则集是可以进行扩展的。
在获取预设的缺陷规则集之后,就可以根据预设的缺陷规则集从待检测源代码的控制流程图中提取预定缺陷的缺陷点集合。具体的,预定缺陷指的是不同缺陷类型的程序缺陷,例如变量未初始化、变量未使用、函数未使用及时死代码等代码质量问题的程序缺陷,再例如,SQL注入、XSS、命令注入和DOS等常见的安全缺陷。另外,预定缺陷的缺陷点集合中的缺陷点表示可能会存在安全隐患的函数调用或其他操作,例如,函数strcpy()如果使用不当可能会造成缓冲区溢出漏洞,因此调用strcpy()的语句会被认为是缺陷点;而对数组的引用,如果下标的数值大于数组本身的大小,可能会造成数组越界,因此数组引用语句也会被认为是缺陷点。
步骤S203,为每个预定缺陷的缺陷点构建程序依赖图,并遍历程序依赖图。
在本步骤中,若缺陷点集合内没有缺陷点,即缺陷点集合为空,则检测终端源代码安全的过程结束;若缺陷点集合内具有缺陷点,即缺陷点集合不为空,则为每个预定缺陷的缺陷点集合中的缺陷点构建程序依赖图,并遍历程序依赖图。具体的,程序依赖图记录了可能影响缺陷点执行的语句集合,并且描述了这些语句之间的控制依赖关系和数据依赖关系;并且该程序依赖图是在待检测源代码的控制流程图的基础上生成的,待检测源代码的安全检测就是在每个缺陷点的程序依赖图上进行的。
步骤S204,将未经过净化的数据污染点作为潜在缺陷点。
判断程序依赖图中是否存在未经过净化的数据污染点,如果不存在,则进入判断缺陷点集合是否为空的过程;如果存在,则将未经过净化的数据污染点作为潜在缺陷点。具体的,数据污染点指的是那些可以被恶意用户控制的数据,如用户输入、网络数据包、用户控制的文件等,而未经过净化的数据污染点指的是那些未经过过滤操作的数据污染点,过滤操作用于消除数据污染点中的不可信部分,使得经过过滤操作后的数据污染点在传递给缺陷点时,不会引发错误。
步骤S205,将潜在缺陷点形成缺陷报告。
在本步骤中,可以将潜在缺陷点形成缺陷报告,得到分析结果。其中,可以将潜在缺陷点结合完整的缺陷规则集生成待检测源代码的缺陷报告,然后将缺陷报告的详细信息展示给用户,在缺陷报告中,可以详细列出缺陷类型、缺陷的危害程度、缺陷所违反的规则、缺陷传播路径、缺陷的触发途径,缺陷点、数据污染点在待检测源代码中的位置、数据从数据污染点传递到缺陷点的路径信息和可行的解决方案等。此外,在得到分析结果之后,可以将分析结果上传至文件服务器,由文件服务器将分析结果回传至集中调度平台,由集中调度平台将分析结果进行分类,并存入至数据库。
在对待检测源代码进行安全检测的过程中,通过预设的缺陷规则集,实现了待检测源代码的自动分析,发现了待检测源代码中的潜在缺陷点。另外,通过遍历预定缺陷的缺陷点的程序依赖图,有效降低了程序缺陷分析的误报率和漏报率,提高了待检测源代码的检测效率。
如图3所示,为本发明的实施例中用于检测终端源代码安全的装置300的结构框图,该装置300包括:
解析模块301,用于获取待检测源代码,对待检测源代码进行词法和语法解析,将待检测源代码转化为控制流程图;第一处理模块302,用于根据预设的缺陷规则集,从控制流程图中提取预定缺陷的缺陷点集合,并为每个预定缺陷构建缺陷点的程序依赖图;第二处理模块303,用于遍历每个预定缺陷的缺陷点的程序依赖图,判断程序依赖图中存在未经过净化的数据污染点时,进一步将未经过净化的数据污染点作为潜在缺陷点。
可选的,装置还包括接收模块,用于接收集中调度平台根据待检测源代码的缺陷类型下发的待检测源代码。
可选的,解析模块301进一步用于,对待检测源代码进行词法和语法解析,将待检测源代码生成抽象语法树,然后进一步将抽象语法树生成控制流程图。
可选的,装置还包括输出模块,用于将潜在缺陷点形成缺陷报告,得到分析结果。
可选的,装置还包括上传模块,用于将分析结果上传至文件服务器,由文件服务器将分析结果回传至集中调度平台,由集中调度平台将分析结果进行分类,存入至数据库。
如图4所示,为本发明的实施例中用于检测终端源代码安全的系统400的结构框图,系统400包括:
一个或多个用于检测终端源代码安全的装置300,每一装置的第一处理模块301中所提取的预定缺陷的缺陷点集合,形成为预设的缺陷规则集的扩展缺陷规则集。
可选的,系统400还包括:包含有待检测源代码的终端401;集中调度平台402,用于接收终端401上传的待检测源代码,并分析待检测源代码的缺陷类型,根据待检测源代码的缺陷类型将待检测源代码下发至一个或多个装置;文件服务器403,用于接收一个或多个的装置上传的分析结果,并将分析结果回传至集中调度平台402;数据库404,用于接收并存储集中调度平台402进行分类后的分析结果。
在本系统中,终端401将待检测源代码上传至集中调度平台402,以供集中调度平台402对待检测源代码进行进一步处理。集中调度平台402接收终端401上传的待检测源代码,分析待检测源代码的缺陷类型,并根据待检测源代码的缺陷类型将待检测源代码下发至一个或多个用于检测终端源代码安全的装置300,具体的,每个用于检测终端源代码安全的装置300依据装置的多少可以检测一种或多种预定缺陷,当用于检测终端源代码安全的装置300的数量足够时,每个装置可以检测一种预定缺陷;而当用于检测终端源代码安全的装置300的数据不足时,每个装置可以检测多种类型的预定缺陷。当每个用于检测终端源代码安全的装置300完成集中调度平台402下发的任务后,将得到的分析结果上传至文件服务器403,文件服务器403用于存储分析结果,并将分析结果回传至集中调度平台402,在不影响待检测源代码安全检测工作的情况下,文件服务器403和用于检测终端源代码安全的装置300可以部署在同一台服务器上。集中调度平台402接收分析结果,并执行去重操作,即将重复的分析结果删除,最后,集中调度平台402将收集到的程序缺陷根据类型进行分类,并将分类后的程序缺陷存储至数据库404中。可选的,由于文件服务器403和数据库404均为存储设备,因此,文件服务器403和数据库404也可以设置在同一个存储设备上。可选的,集中调度平台402可以将程序缺陷返回至终端401,由终端401进行程序缺陷的展示,终端401可以展示待检测源代码的检测结果,其中,展示的内容可以包括:程序缺陷类型、缺陷的危害程度、缺陷所违反的规则、缺陷传播路径、可执行的解决方案等。
用于检测终端源代码安全的系统支持了集群的方式部署了检测终端源代码安全的装置,使得检测终端源代码安全的装置由集中调度平台统一管理,实现了管理的统一化;另外,集中调度平台接收并分发检测任务,充分利用了现有资源,实现了高度并行化,提高了检测效率;此外,该系统中的检测终端源代码安全的装置具有程序缺陷检测的功能、集中调度平台具有缺陷审计的功能,便于各检测任务的检测和管理;此外,该系统能够支持C、C++、Java、PHP、Python、Perl、JavaScript、JSP等多种语言的程序缺陷检测。
以上所述的是本发明的优选实施方式,应当指出对于本技术领域的普通人员来说,在不脱离本发明所述的原理前提下还可以作出若干改进和润饰,这些改进和润饰也在本发明的保护范围内。

Claims (12)

1.一种检测终端源代码安全的方法,其特征在于,所述方法包括:
获取待检测源代码,对所述待检测源代码进行词法和语法解析,将所述待检测源代码转化为控制流程图;
根据预设的缺陷规则集,从所述控制流程图中提取预定缺陷的缺陷点集合,并为每个预定缺陷构建缺陷点的程序依赖图;所述程序依赖图记录了影响所述缺陷点执行的语句集合,描述了语句之间的控制依赖关系和数据依赖关系;
遍历每个预定缺陷的缺陷点的程序依赖图,判断所述程序依赖图中存在未经过净化的数据污染点时,进一步将所述未经过净化的数据污染点作为潜在缺陷点。
2.根据权利要求1所述的方法,其特征在于,所述获取待检测源代码的具体步骤为:
接收集中调度平台根据待检测源代码的缺陷类型下发的待检测源代码。
3.根据权利要求1所述的方法,其特征在于,所述对所述待检测源代码进行词法和语法解析,将所述待检测源代码转化为控制流程图的具体步骤为:
对所述待检测源代码进行词法和语法解析,将所述待检测源代码生成抽象语法树,然后进一步将所述抽象语法树生成控制流程图。
4.根据权利要求2所述的方法,其特征在于,所述进一步将所述未经过净化的数据污染点作为潜在缺陷点之后,所述方法还包括:
将所述潜在缺陷点形成缺陷报告,得到分析结果。
5.根据权利要求4所述的方法,其特征在于,所述将所述潜在缺陷点形成缺陷报告,得到分析结果之后,所述方法还包括:
将所述分析结果上传至文件服务器,由所述文件服务器将所述分析结果回传至所述集中调度平台,由所述集中调度平台将所述分析结果进行分类,存入至数据库。
6.一种用于检测终端源代码安全的装置,其特征在于,所述装置包括:
解析模块,用于获取待检测源代码,对所述待检测源代码进行词法和语法解析,将所述待检测源代码转化为控制流程图;
第一处理模块,用于根据预设的缺陷规则集,从所述控制流程图中提取预定缺陷的缺陷点集合,并为每个预定缺陷构建缺陷点的程序依赖图;所述程序依赖图记录了影响所述缺陷点执行的语句集合,描述了语句之间的控制依赖关系和数据依赖关系;
第二处理模块,用于遍历每个预定缺陷的缺陷点的程序依赖图,判断所述程序依赖图中存在未经过净化的数据污染点时,进一步将所述未经过净化的数据污染点作为潜在缺陷点。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括接收模块,用于接收集中调度平台根据待检测源代码的缺陷类型下发的待检测源代码。
8.根据权利要求6所述的装置,其特征在于,所述解析模块进一步用于,对所述待检测源代码进行词法和语法解析,将所述待检测源代码生成抽象语法树,然后进一步将所述抽象语法树生成控制流程图。
9.根据权利要求7所述的装置,其特征在于,所述装置还包括输出模块,用于将所述潜在缺陷点形成缺陷报告,得到分析结果。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括上传模块,用于将所述分析结果上传至文件服务器,由所述文件服务器将所述分析结果回传至所述集中调度平台,由所述集中调度平台将所述分析结果进行分类,存入至数据库。
11.一种用于检测终端源代码安全的系统,其特征在于,所述系统包括一个或多个如权利要求6所述的用于检测终端源代码安全的装置,每一所述装置的所述第一处理模块中所提取的所述预定缺陷的缺陷点集合,形成为预设的缺陷规则集的扩展缺陷规则集。
12.如权利要求11所述的系统,其特征在于,所述系统还包括:
包含有待检测源代码的终端;
集中调度平台,用于接收所述终端上传的待检测源代码,并分析所述待检测源代码的缺陷类型,根据所述待检测源代码的缺陷类型将所述待检测源代码下发至一个或多个所述装置;
文件服务器,用于接收一个或多个的所述装置上传的分析结果,并将所述分析结果回传至所述集中调度平台;
数据库,用于接收并存储所述集中调度平台进行分类后的分析结果。
CN201510119196.0A 2015-03-18 2015-03-18 一种检测终端源代码安全的方法、装置及系统 Active CN106033516B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510119196.0A CN106033516B (zh) 2015-03-18 2015-03-18 一种检测终端源代码安全的方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510119196.0A CN106033516B (zh) 2015-03-18 2015-03-18 一种检测终端源代码安全的方法、装置及系统

Publications (2)

Publication Number Publication Date
CN106033516A CN106033516A (zh) 2016-10-19
CN106033516B true CN106033516B (zh) 2019-04-23

Family

ID=57150954

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510119196.0A Active CN106033516B (zh) 2015-03-18 2015-03-18 一种检测终端源代码安全的方法、装置及系统

Country Status (1)

Country Link
CN (1) CN106033516B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106815145A (zh) * 2016-12-22 2017-06-09 合肥安珀信息科技有限公司 一种基于分析目标驱动的代码分析方法和系统
CN109462583B (zh) * 2018-10-31 2021-04-20 南京邮电大学 一种基于静态和动态相结合的反射型漏洞检测方法
CN109857641B (zh) * 2018-12-29 2022-09-13 奇安信科技集团股份有限公司 对程序源文件进行缺陷检测的方法及装置
CN109977205B (zh) * 2019-03-08 2021-06-22 中南大学 一种计算机自主学习源代码的方法
CN110765003B (zh) * 2019-09-24 2023-06-02 贝壳技术有限公司 代码检测方法、装置以及设备、存储介质
CN110764760B (zh) * 2019-10-29 2023-09-05 中国工商银行股份有限公司 用于绘制程序流程图的方法、装置、计算机系统和介质
CN110879722B (zh) * 2019-11-27 2020-12-22 京东数字科技控股有限公司 生成逻辑示意图的方法及装置、计算机可存储介质
CN111459826B (zh) * 2020-04-03 2023-03-21 建信金融科技有限责任公司 代码缺陷识别方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101241532A (zh) * 2008-02-15 2008-08-13 北京邮电大学 面向源代码的基于不等式组求解的缓冲区溢出检测方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102750475B (zh) * 2012-06-07 2017-08-15 中国电子科技集团公司第三十研究所 基于虚拟机内外视图交叉比对恶意代码行为检测方法及系统
CN103793652A (zh) * 2012-10-29 2014-05-14 广东电网公司信息中心 一种基于静态分析的应用系统代码安全扫描装置
CN104021084A (zh) * 2014-06-19 2014-09-03 国家电网公司 一种Java源代码缺陷检测方法及装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101241532A (zh) * 2008-02-15 2008-08-13 北京邮电大学 面向源代码的基于不等式组求解的缓冲区溢出检测方法

Also Published As

Publication number Publication date
CN106033516A (zh) 2016-10-19

Similar Documents

Publication Publication Date Title
CN106033516B (zh) 一种检测终端源代码安全的方法、装置及系统
RU2613535C1 (ru) Способ обнаружения вредоносных программ и элементов
CN102195992B (zh) 用于对从网络下载的数据进行反病毒扫描的系统及方法
US9462009B1 (en) Detecting risky domains
CN108471429B (zh) 一种网络攻击告警方法及系统
CN108881263B (zh) 一种网络攻击结果检测方法及系统
CN107241296B (zh) 一种Webshell的检测方法及装置
KR20200052881A (ko) 멀웨어 호스트 넷플로우 분석 시스템 및 방법
WO2017152877A1 (zh) 网络威胁事件评估方法及装置
CN106357689A (zh) 威胁数据的处理方法及系统
WO2015062541A1 (zh) 对抗免杀测试的云查杀方法、装置及系统
CN104008038B (zh) 软件的评测方法及装置
CN107103237A (zh) 一种恶意文件的检测方法及装置
CN106850647A (zh) 基于dns请求周期的恶意域名检测算法
CN111447224A (zh) web漏洞扫描方法及漏洞扫描器
RU148692U1 (ru) Система мониторинга событий компьютерной безопасности
CN114024761B (zh) 网络威胁数据的检测方法、装置、存储介质及电子设备
CN108804501B (zh) 一种检测有效信息的方法及装置
CN112565164A (zh) 危险ip的识别方法、装置和计算机可读存储介质
CN114372519A (zh) 模型训练方法、api请求过滤方法、装置和存储介质
CN106101086A (zh) 程序文件的云检测方法及系统、客户端、云端服务器
CN107229865B (zh) 一种解析Webshell入侵原因的方法及装置
US20220272125A1 (en) Systems and methods for malicious url pattern detection
CN104363256B (zh) 一种手机病毒的识别和控制方法、设备与系统
CN111416812B (zh) 一种恶意脚本检测方法、设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant