CN111309631B - 一种代码审计方法、装置、设备及计算机可读存储介质 - Google Patents
一种代码审计方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111309631B CN111309631B CN202010181266.6A CN202010181266A CN111309631B CN 111309631 B CN111309631 B CN 111309631B CN 202010181266 A CN202010181266 A CN 202010181266A CN 111309631 B CN111309631 B CN 111309631B
- Authority
- CN
- China
- Prior art keywords
- judged
- data stream
- audit
- code
- target object
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000012550 audit Methods 0.000 claims abstract description 224
- 238000012545 processing Methods 0.000 claims abstract description 34
- 238000012986 modification Methods 0.000 claims abstract description 14
- 230000004048 modification Effects 0.000 claims abstract description 14
- 238000007792 addition Methods 0.000 claims abstract description 13
- 238000012217 deletion Methods 0.000 claims abstract description 13
- 230000037430 deletion Effects 0.000 claims abstract description 13
- 238000004590 computer program Methods 0.000 claims description 42
- 230000000875 corresponding effect Effects 0.000 description 18
- 230000006870 function Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012038 vulnerability analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种代码审计方法、装置、设备及计算机可读存储介质,获取对预设代码审计系统中的目标对象的操作指令;按照操作指令对目标对象进行操作,将包含操作后的目标对象的预设代码审计系统作为目标代码审计系统;基于目标代码审计系统进行代码审计,得到审计结果;其中,目标对象的类型包括待判定输入集合、危险操作集合、安全处理操作集合;操作指令的类型包括添加、删除、修改。本申请中,可以借助操作指令对预设代码审计系统中的目标对象进行操作,并且将包含操作后的目标对象的预设代码审计系统作为目标代码审计系统,从而使得用户可以根据需要灵活调整预设代码审计系统,增强了代码审计系统的适应性,提高了代码审计的可扩展性。
Description
技术领域
本申请涉及计算机安全技术领域,更具体地说,涉及一种代码审计方法、装置、设备及计算机可读存储介质。
背景技术
代码审计指的是检查源代码中的安全缺陷,检查程序源代码是否存在安全隐患,或者有编码不规范的地方,通过自动化工具或者人工审查的方法,对程序源代码逐条进行检查和分析,发现这些源代码缺陷引发的安全漏洞,并提供代码修订措施和建议。代码审计在漏洞挖掘、安全开发流程等场景中被广泛应用,市面上也有一些自动化代码审计工具供企业或个人使用,但是这些自动化工具的可扩展性差,往往不能适应项目本身的代码风格,甚至流行的开源研发框架都无法适应,这就导致扫描结果出现大量误报和漏洞。
综上所述,如何提高代码审计的可扩展性是目前本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种代码审计方法,其能在一定程度上解决如何提高代码审计的可扩展性的技术问题。本申请还提供了一种代码审计装置、设备及计算机可读存储介质。
为了实现上述目的,本申请提供如下技术方案:
一种代码审计方法,包括:
获取对预设代码审计系统中的目标对象的操作指令;
按照所述操作指令对所述目标对象进行操作,将包含操作后的所述目标对象的所述预设代码审计系统作为目标代码审计系统;
基于所述目标代码审计系统进行代码审计,得到审计结果。
优选的,所述目标对象的形式包括插件形式;
所述基于所述目标代码审计系统进行代码审计之前,还包括:
为所述目标对象添加白名单限制,以使所述目标代码审计系统跳过对所述目标对象的解析。
优选的,所述基于所述目标代码审计系统进行代码审计,得到审计结果,包括:
在待判定输入集合中获取待判定输入信息;
基于所述目标代码审计系统对所述待判定输入信息进行污点追踪,得到待判定数据流;
基于所述目标代码审计系统对所述待判定数据流进行代码审计,得到所述审计结果。
优选的,所述基于所述目标代码审计系统对所述待判定数据流进行代码审计,得到所述审计结果,包括:
基于所述目标代码审计系统中的危险操作集合,判断所述待判定数据流中是否包含危险操作;
若所述待判定数据流中包含所述危险操作,则基于所述目标代码审计系统中的安全处理操作集合,判断所述待判定数据流中是否包含与所述危险操作对应的安全操作;
若所述待判定数据流中包含所述安全操作,则生成表征所述待判定数据流经过安全处理的审计结果;
若所述待判定数据流中未包含所述安全操作,则生成表征所述待判定数据流存在漏洞的审计结果;
若所述待判定数据流中未包含所述危险操作,则生成表征所述待判定数据流安全的审计结果。
优选的,所述待判定数据流中包含所述危险操作之后,还包括:
对所述待判定输入集合进行全局搜索,得到所述待判定输入集合中的调用点;
将所述危险操作及所述危险操作对应的调用点作为所述审计结果的审计信息。
优选的,所述在待判定输入集合中获取待判定输入信息,包括:
在所述待判定输入集合中,删除与所述白名单限制不相符的输入信息;
在剩下的所述待判定输入集合中,获取所述待判定输入信息。
优选的,所述生成表征所述待判定数据流安全的审计结果之后,还包括:
判断所述待判定数据流是否属于文件操作数据流;
若是,则在所述待判定数据流的审计结果中添加文件操作信息。
优选的,所述生成表征所述待判定数据流安全的审计结果之后,还包括:
判断所述待判定数据流是否属于数据库操作数据流;
若是,则在所述待判定数据流的审计结果中添加数据库操作信息。
一种代码审计装置,包括:
第一获取模块,用于获取对预设代码审计系统中的目标对象的操作指令;
第一操作模块,用于按照所述操作指令对所述目标对象进行操作,将包含操作后的所述目标对象的所述预设代码审计系统作为目标代码审计系统;
第一审计模块,用于基于所述目标代码审计系统进行代码审计,得到审计结果。
一种代码审计设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上任一所述代码审计方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序时实现如上任一所述代码审计方法的步骤。
本申请提供的一种代码审计方法,获取对预设代码审计系统中的目标对象的操作指令;按照操作指令对目标对象进行操作,将包含操作后的目标对象的预设代码审计系统作为目标代码审计系统;基于目标代码审计系统进行代码审计,得到审计结果;其中,目标对象的类型包括待判定输入集合、危险操作集合、安全处理操作集合;操作指令的类型包括添加、删除、修改。本申请中,可以借助操作指令对预设代码审计系统中的目标对象进行操作,并且将包含操作后的目标对象的预设代码审计系统作为目标代码审计系统,从而使得用户可以根据需要灵活调整预设代码审计系统,增强了代码审计系统的适应性,提高了代码审计的可扩展性。本申请提供的一种代码审计装置、设备及计算机可读存储介质也解决了相应技术问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种代码审计方法的第一流程图;
图2为本申请实施例提供的一种代码审计方法的第二流程图;
图3为本申请实施例提供的一种代码审计方法的第三流程图;
图4为本申请实施例提供的一种代码审计方法的第四流程图;
图5为本申请实施例提供的一种代码审计装置的结构示意图;
图6为本申请实施例提供的一种代码审计设备的结构示意图;
图7为本申请实施例提供的一种代码审计设备的另一结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参阅图1,图1为本申请实施例提供的一种代码审计方法的第一流程图。
本申请实施例提供的一种代码审计方法,可以包括以下步骤:
步骤S101:获取对预设代码审计系统中的目标对象的操作指令。
实际应用中,可以先获取对预设代码审计系统中的目标对象的操作指令,目标对象的类型可以包括待判定输入集合、危险操作集合、安全处理操作集合等,其中,待判定输入集合中存储有安全性未知的待判定数据,危险操作集合中存储有已知的危险操作,安全处理操作结合中存储有对危险操作的安全处理操作;且操作指令的类型可以包括添加、删除、修改等;也即用户可以根据自身需要对预设代码审计系统中的目标对象进行处理。应当指出,预设代码审计系统中还可以包括代码审计框架。
步骤S102:按照操作指令对目标对象进行操作,将包含操作后的目标对象的预设代码审计系统作为目标代码审计系统。
实际应用中,在接收到操作指令之后,便可以按照操作指令对目标对象进行操作,并将包含操作后的目标对象的预设代码审计系统作为符合用户需求的目标代码审计系统,使得目标代码审计系统可以更好的适应用户。
步骤S103:基于目标代码审计系统进行代码审计,得到审计结果;其中,目标对象的类型包括待判定输入集合、危险操作集合、安全处理操作集合;操作指令的类型包括添加、删除、修改。
实际应用中,在得到目标代码审计系统之后,便可以基于目标代码审计系统进行代码审计,得到审计结果;审计结果所包含的数据信息可以根据实际需要确定,比如审计结果中可以包含是否安全、是否经过安全处理、危险类型等信息。且具体应用场景中,在得到审计结果之后,可以将审计结果发送至用户客户端,使得用户可以借助客户端随时随地查询审计结果等。
本申请提供的一种代码审计方法,获取对预设代码审计系统中的目标对象的操作指令;按照操作指令对目标对象进行操作,将包含操作后的目标对象的预设代码审计系统作为目标代码审计系统;基于目标代码审计系统进行代码审计,得到审计结果;其中,目标对象的类型包括待判定输入集合、危险操作集合、安全处理操作集合;操作指令的类型包括添加、删除、修改。本申请中,可以借助操作指令对预设代码审计系统中的目标对象进行操作,并且将包含操作后的目标对象的预设代码审计系统作为目标代码审计系统,从而使得用户可以根据需要灵活调整预设代码审计系统,增强了代码审计系统的适应性,提高了代码审计的可扩展性。
本申请实施例提供的一种代码审计方法中,当目标对象的表述较为复杂时,可以通过插件形式进行定义,因此,本申请中目标对象的形式可以包括插件形式;此时,代码审计系统在进行语义解析时,解析到插件时可能无法继续解析,为了保证代码审计系统可以成功解析插件,在基于目标代码审计系统进行代码审计之前,还可以为目标对象添加白名单限制,白名单限制也即属于白名单的目标对象会直接跳过解析过程。为目标对象添加白名单限制之后,代码审计系统在语义解析到插件时,便可以根据白名单限制获知插件的信息,从而可以跳过插件继续进行语义解析,保证了代码审计系统语义解析的成功率。
请参阅图2,图2为本申请实施例提供的一种代码审计方法的第二流程图。
本申请实施例提供的一种代码审计方法,可以包括以下步骤:
步骤S201:获取对预设代码审计系统中的目标对象的操作指令;其中,目标对象的类型包括待判定输入集合、危险操作集合、安全处理操作集合;操作指令的类型包括添加、删除、修改。
步骤S202:按照操作指令对目标对象进行操作,将包含操作后的目标对象的预设代码审计系统作为目标代码审计系统。
步骤S203:在待判定输入集合中获取待判定输入信息。
步骤S204:基于目标代码审计系统对待判定输入信息进行污点追踪,得到待判定数据流。
步骤S205:基于目标代码审计系统对待判定数据流进行代码审计,得到审计结果。
实际应用中,代码数据是否有危险,可以根据该代码数据的运行情况来进行相应判断,所以基于目标代码审计系统进行代码审计,得到审计结果的过程,可以具体为:在待判定输入集合中获取待判定输入信息;基于目标代码审计系统对待判定输入信息进行污点追踪,得到待判定数据流;基于目标代码审计系统对待判定数据流进行代码审计,得到审计结果。应当指出,污点追踪是一种跟踪并分析污点信息在程序中流动的技术,在漏洞分析中,使用污点追踪技术将所感兴趣的数据(通常来自程序的外部输入)标记为污点数据,然后通过跟踪和污点数据相关的信息的流向,可以知道它们是否会影响某些关键的程序操作,进而挖掘程序漏洞;漏洞是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问、控制或破坏系统。
应当指出,待判定输入集合、待判定输入信息及待判定数据流的信息类型可以根据实际需要确定,比如待判定输入集合中可以包括用户输入的用户名、用户密码、待访问网页地址等,待判定输入信息可以为待判定输入集合中的一个或多个信息,待判定数据量可以为目标代码审计系统对待判定输入信息进行污点追踪生成的信息;以待判定输入信息为用户名,且用户名为邮箱地址为例,目标代码审计系统在对该邮箱地址进行污点追踪时,可以将邮箱地址分为两部分,第一部分为@之前的信息,第二部分为@之后的信息,基于第二部分确定邮箱地址的邮箱属性信息,基于第一部分确定邮箱地址的用户名信息,并基于邮箱属性信息及用户名信息查看该邮箱地址是否存在、是否合规等判定信息,则目标代码审计系统可以将该邮箱地址、第一部分、第二部分、判定信息等作为待判定数据流。
请参阅图3,图3为本申请实施例提供的一种代码审计方法的第三流程图。
本申请实施例提供的一种代码审计方法,可以包括以下步骤:
步骤S301:获取对预设代码审计系统中的目标对象的操作指令;其中,目标对象的类型包括待判定输入集合、危险操作集合、安全处理操作集合;操作指令的类型包括添加、删除、修改。
步骤S302:按照操作指令对目标对象进行操作,将包含操作后的目标对象的预设代码审计系统作为目标代码审计系统。
步骤S303:在待判定输入集合中获取待判定输入信息。
步骤S304:基于目标代码审计系统对待判定输入信息进行污点追踪,得到待判定数据流。
步骤S305:基于危险操作集合,判断待判定数据流中是否包含危险操作;若待判定数据流中包含危险操作,则执行步骤S306;若待判定数据流中未包含危险操作,则执行步骤S309。
步骤S306:基于安全处理操作集合,判断待判定数据流中是否包含与危险操作对应的安全操作;若待判定数据流中包含安全操作,则执行步骤S307;若待判定数据流中未包含安全操作,则执行步骤S308。
步骤S307:生成表征待判定数据流经过安全处理的审计结果。
步骤S308:生成表征待判定数据流存在漏洞的审计结果。
步骤S309:生成表征待判定数据流安全的审计结果。
实际应用中,当待判定数据流中包含危险操作时,且待判定数据流中未包含与危险操作对应的安全操作时,才能判定待判定数据流存在漏洞,因此为了提高审计结果的准确性,基于目标代码审计系统对待判定数据流进行代码审计,得到审计结果的过程,可以具体为:基于危险操作集合,判断待判定数据流中是否包含危险操作;若待判定数据流中包含危险操作,则基于安全处理操作集合,判断待判定数据流中是否包含与危险操作对应的安全操作;若待判定数据流中包含安全操作,则生成表征待判定数据流经过安全处理的审计结果;若待判定数据流中未包含安全操作,则生成表征待判定数据流存在漏洞的审计结果;若待判定数据流中未包含危险操作,则生成表征待判定数据流安全的审计结果。
实际应用场景中,代码数据的类型可以包括参数、函数、方法、插件等,所以本申请中危险操作及安全操作的操作信息类型可以包括参数、函数、方法、插件等。
具体应用场景中,为了便于确定待判定数据量的状态,在基于目标代码审计系统对待判定输入信息进行污点追踪,得到待判定数据流之后,还可以将待判定数据量标记为无敏感信息,而在待判定数据流中包含危险操作且待判定数据流中包含安全操作时,可以将待判定数据流的标记修改为经过安全处理;相应的,在待判定数据流中包含危险操作且待判定数据流中未包含安全操作时,可以将待判定数据流的标记修改为存在漏洞;在待判定数据量中未包含危险操作时,可以保持待判定数据流的标记保持为无敏感信息等。
实际应用中,为了便于用户准确了解待判定数据流的危险信息,待判定数据流中包含危险操作之后,还可以对待判定输入集合进行全局搜索,得到待判定输入集合中的调用点;将危险操作及危险操作对应的调用点作为审计结果的审计信息;其中,调用点的类型包括:参数调用点、函数调用点、方法调用点。也即,可以将危险操作及危险操作对应的调用点一同写入审计结果中,使得用户可以根据审计结果准确获知待判定数据流的危险信息,便于用户了解待判定数据流的危险信息。
实际应用中,为了提高本申请的运行效率,在待判定输入集合中获取待判定输入信息的过程,可以具体为:在待判定输入集合中,删除与白名单限制不相符的输入信息;在剩下的待判定输入集合中,获取待判定输入信息。由于与白名单限制不相符的输入信息无法被代码审计系统解析,无法被代码审计系统动态调用,所以可以直接在待判定输入集合中,删除掉与白名单限制不相符的输入信息,以此降低待判定输入信息的数量,进而加快本申请提供的代码审计方法的运行效率。
实际应用中,为了进一步增强代码审计结果所能反应的审计信息的丰富度,可以在代码审计结果中增加数据操作信息,比如增加文件操作信息或者数据库操作信息等,以此表示待判定输入信息属于对文件进行操作,或者对数据库进行操作等,也即在生成表征待判定数据流安全的审计结果之后,还可以判断待判定数据流是否属于文件操作数据流;若是,则在待判定数据流的审计结果中添加文件操作信息;或者在生成表征待判定数据流安全的审计结果之后,判断待判定数据流是否属于数据库操作数据流;若是,则在待判定数据流的审计结果中添加数据库操作信息。
应当指出,实际应用中,可以根据需要灵活应用本申请提供的上述实施例中的步骤。请参阅图4,图4为本申请实施例提供的一种代码审计方法的第四流程图。
本申请实施例提供的一种代码审计方法,可以包括以下步骤:
步骤S401:获取对预设代码审计系统中的目标对象的操作指令;目标对象的类型包括待判定输入集合、危险操作集合、安全处理操作集合;操作指令的类型包括添加、删除、修改。
步骤S402:按照操作指令对目标对象进行操作,将包含操作后的目标对象的预设代码审计系统作为目标代码审计系统;并为目标对象添加白名单限制。
步骤S403:在待判定输入集合中,删除与白名单限制不相符的输入信息;在剩下的待判定输入集合中,获取待判定输入信息。
步骤S404:基于目标代码审计系统对待判定输入信息进行污点追踪,得到待判定数据流。
步骤S405:基于危险操作集合,判断待判定数据流中是否包含危险操作;若待判定数据流中包含危险操作,则执行步骤S406;若待判定数据流中未包含危险操作,则执行步骤S408。
步骤S406:基于安全处理操作集合,判断待判定数据流中是否包含与危险操作对应的安全操作;若待判定数据流中包含安全操作,则执行步骤S407;若待判定数据流中未包含安全操作,则执行步骤S407。
步骤S406:生成表征待判定数据流经过安全处理的审计结果,执行步骤S409。
步骤S407:生成表征待判定数据流存在漏洞的审计结果,执行步骤S409。
步骤S408:生成表征待判定数据流安全的审计结果,执行步骤S409。
步骤S409:判断待判定数据流是否属于文件操作数据流;若是,则执行步骤S410,若否,则执行步骤S411。
步骤S410:在待判定数据流的审计结果中添加文件操作信息,执行步骤S411。
步骤S411:判断待判定数据流是否属于数据库操作数据流;若是,则执行步骤S412。
步骤S412:在待判定数据流的审计结果中添加数据库操作信息。
请参阅图5,图5为本申请实施例提供的一种代码审计装置的结构示意图。
本申请实施例提供的一种代码审计装置,可以包括:
第一获取模块101,用于获取对预设代码审计系统中的目标对象的操作指令;
第一操作模块102,用于按照操作指令对目标对象进行操作,将包含操作后的目标对象的预设代码审计系统作为目标代码审计系统;
第一审计模块103,用于基于目标代码审计系统进行代码审计,得到审计结果;其中,目标对象的类型包括待判定输入集合、危险操作集合、安全处理操作集合;操作指令的类型包括添加、删除、修改。
本申请实施例提供的一种代码审计装置,目标对象的形式可以包括插件形式;
还可以包括:
第一添加模块,用于第一审计模块基于目标代码审计系统进行代码审计之前,为目标对象添加白名单限制,以使目标代码审计系统跳过对目标对象的解析。
本申请实施例提供的一种代码审计装置,第一审计模块可以包括:
第一获取子模块,用于在待判定输入集合中获取待判定输入信息;
第一追踪子模块,用于基于目标代码审计系统对待判定输入信息进行污点追踪,得到待判定数据流;
第一审计子模块,用于基于目标代码审计系统对待判定数据流进行代码审计,得到审计结果。
本申请实施例提供的一种代码审计装置,第一审计子模块可以包括:
第一判断单元,用于基于目标代码审计系统中的危险操作集合,判断待判定数据流中是否包含危险操作;若待判定数据流中包含危险操作,则基于目标代码审计系统中的安全处理操作集合,判断待判定数据流中是否包含与危险操作对应的安全操作;若待判定数据流中包含安全操作,则生成表征待判定数据流经过安全处理的审计结果;若待判定数据流中未包含安全操作,则生成表征待判定数据流存在漏洞的审计结果;若待判定数据流中未包含危险操作,则生成表征待判定数据流安全的审计结果。
本申请实施例提供的一种代码审计装置,危险操作及安全操作的操作信息类型可以包括参数、函数、方法、插件。
本申请实施例提供的一种代码审计装置,还可以包括:
第一搜索单元,用于待判定数据流中包含危险操作之后,对待判定输入集合进行全局搜索,得到待判定输入集合中的调用点;
第一设置单元,用于将危险操作及危险操作对应的调用点作为审计结果的审计信息;
其中,调用点的类型包括:参数调用点、函数调用点、方法调用点。
本申请实施例提供的一种代码审计装置,第一获取子模块可以包括:
第一删除单元,用于在待判定输入集合中,删除与白名单限制不相符的输入信息;
第一获取单元,用于在剩下的待判定输入集合中,获取待判定输入信息。
本申请实施例提供的一种代码审计装置,还可以包括:
第二判断单元,用于第一判断单元生成表征待判定数据流安全的审计结果之后,判断待判定数据流是否属于文件操作数据流;若是,则在待判定数据流的审计结果中添加文件操作信息。
本申请实施例提供的一种代码审计装置,还可以包括:
第三判断单元,用于第一判断单元生成表征待判定数据流安全的审计结果之后,判断待判定数据流是否属于数据库操作数据流;若是,则在待判定数据流的审计结果中添加数据库操作信息。
本申请还提供了一种代码审计设备及计算机可读存储介质,其均具有本申请实施例提供的一种代码审计方法具有的对应效果。请参阅图6,图6为本申请实施例提供的一种代码审计设备的结构示意图。
本申请实施例提供的一种代码审计设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:
获取对预设代码审计系统中的目标对象的操作指令;
按照操作指令对目标对象进行操作,将包含操作后的目标对象的预设代码审计系统作为目标代码审计系统;
基于目标代码审计系统进行代码审计,得到审计结果;
其中,目标对象的类型包括待判定输入集合、危险操作集合、安全处理操作集合;操作指令的类型包括添加、删除、修改。
本申请实施例提供的一种代码审计设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:目标对象的形式包括插件形式;基于目标代码审计系统进行代码审计之前,为目标对象添加白名单限制,以使目标代码审计系统跳过对目标对象的解析。
本申请实施例提供的一种代码审计设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:在待判定输入集合中获取待判定输入信息;基于目标代码审计系统对待判定输入信息进行污点追踪,得到待判定数据流;基于目标代码审计系统对待判定数据流进行代码审计,得到审计结果。
本申请实施例提供的一种代码审计设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:基于目标代码审计系统中的危险操作集合,判断待判定数据流中是否包含危险操作;若待判定数据流中包含危险操作,则基于目标代码审计系统中的安全处理操作集合,判断待判定数据流中是否包含与危险操作对应的安全操作;若待判定数据流中包含安全操作,则生成表征待判定数据流经过安全处理的审计结果;若待判定数据流中未包含安全操作,则生成表征待判定数据流存在漏洞的审计结果;若待判定数据流中未包含危险操作,则生成表征待判定数据流安全的审计结果。
本申请实施例提供的一种代码审计设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:危险操作及安全操作的操作信息类型包括参数、函数、方法、插件。
本申请实施例提供的一种代码审计设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:待判定数据流中包含危险操作之后,对待判定输入集合进行全局搜索,得到待判定输入集合中的调用点;将危险操作及危险操作对应的调用点作为审计结果的审计信息;其中,调用点的类型包括:参数调用点、函数调用点、方法调用点。
本申请实施例提供的一种代码审计设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:在待判定输入集合中,删除与白名单限制不相符的输入信息;在剩下的待判定输入集合中,获取待判定输入信息。
本申请实施例提供的一种代码审计设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:生成表征待判定数据流安全的审计结果之后,判断待判定数据流是否属于文件操作数据流;若是,则在待判定数据流的审计结果中添加文件操作信息。
本申请实施例提供的一种代码审计设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:生成表征待判定数据流安全的审计结果之后,判断待判定数据流是否属于数据库操作数据流;若是,则在待判定数据流的审计结果中添加数据库操作信息。
请参阅图7,本申请实施例提供的另一种代码审计设备中还可以包括:与处理器202连接的输入端口203,用于传输外界输入的命令至处理器202;与处理器202连接的显示单元204,用于显示处理器202的处理结果至外界;与处理器202连接的通信模块205,用于实现代码审计设备与外界的通信。显示单元204可以为显示面板、激光扫描使显示器等;通信模块205所采用的通信方式包括但不局限于移动高清链接技术(HML)、通用串行总线(USB)、高清多媒体接口(HDMI)、无线连接:无线保真技术(WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:
获取对预设代码审计系统中的目标对象的操作指令;
按照操作指令对目标对象进行操作,将包含操作后的目标对象的预设代码审计系统作为目标代码审计系统;
基于目标代码审计系统进行代码审计,得到审计结果;
其中,目标对象的类型包括待判定输入集合、危险操作集合、安全处理操作集合;操作指令的类型包括添加、删除、修改。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:目标对象的形式包括插件形式;基于目标代码审计系统进行代码审计之前,为目标对象添加白名单限制,以使目标代码审计系统跳过对目标对象的解析。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:在待判定输入集合中获取待判定输入信息;基于目标代码审计系统对待判定输入信息进行污点追踪,得到待判定数据流;基于目标代码审计系统对待判定数据流进行代码审计,得到审计结果。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:基于目标代码审计系统中的危险操作集合,判断待判定数据流中是否包含危险操作;若待判定数据流中包含危险操作,则基于目标代码审计系统中的安全处理操作集合,判断待判定数据流中是否包含与危险操作对应的安全操作;若待判定数据流中包含安全操作,则生成表征待判定数据流经过安全处理的审计结果;若待判定数据流中未包含安全操作,则生成表征待判定数据流存在漏洞的审计结果;若待判定数据流中未包含危险操作,则生成表征待判定数据流安全的审计结果。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:危险操作及安全操作的操作信息类型包括参数、函数、方法、插件。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:待判定数据流中包含危险操作之后,对待判定输入集合进行全局搜索,得到待判定输入集合中的调用点;将危险操作及危险操作对应的调用点作为审计结果的审计信息;其中,调用点的类型包括:参数调用点、函数调用点、方法调用点。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:在待判定输入集合中,删除与白名单限制不相符的输入信息;在剩下的待判定输入集合中,获取待判定输入信息。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:生成表征待判定数据流安全的审计结果之后,判断待判定数据流是否属于文件操作数据流;若是,则在待判定数据流的审计结果中添加文件操作信息。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:生成表征待判定数据流安全的审计结果之后,判断待判定数据流是否属于数据库操作数据流;若是,则在待判定数据流的审计结果中添加数据库操作信息。
本申请所涉及的计算机可读存储介质包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
本申请实施例提供的一种代码审计装置、设备及计算机可读存储介质中相关部分的说明请参见本申请实施例提供的一种代码审计方法中对应部分的详细说明,在此不再赘述。另外,本申请实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (9)
1.一种代码审计方法,其特征在于,包括:
获取对预设代码审计系统中的目标对象的操作指令;
按照所述操作指令对所述目标对象进行操作,将包含操作后的所述目标对象的所述预设代码审计系统作为目标代码审计系统;
基于所述目标代码审计系统进行代码审计,得到审计结果;
其中,所述目标对象的类型包括待判定输入集合、危险操作集合、安全处理操作集合;所述操作指令的类型包括添加、删除、修改;
其中,所述基于所述目标代码审计系统进行代码审计,得到审计结果,包括:
在所述待判定输入集合中获取待判定输入信息;
基于所述目标代码审计系统对所述待判定输入信息进行污点追踪,得到待判定数据流;
基于所述目标代码审计系统中的危险操作集合,判断所述待判定数据流中是否包含危险操作;
若所述待判定数据流中包含所述危险操作,则基于所述目标代码审计系统中的安全处理操作集合,判断所述待判定数据流中是否包含与所述危险操作对应的安全操作;
若所述待判定数据流中包含所述安全操作,则生成表征所述待判定数据流经过安全处理的审计结果;
若所述待判定数据流中未包含所述安全操作,则生成表征所述待判定数据流存在漏洞的审计结果;
若所述待判定数据流中未包含所述危险操作,则生成表征所述待判定数据流安全的审计结果。
2.根据权利要求1所述的方法,其特征在于,所述目标对象的形式包括插件形式;
所述基于所述目标代码审计系统进行代码审计之前,还包括:
为所述目标对象添加白名单限制,以使所述目标代码审计系统跳过对所述目标对象的解析。
3.根据权利要求2所述的方法,其特征在于,所述待判定数据流中包含所述危险操作之后,还包括:
对所述待判定输入集合进行全局搜索,得到所述待判定输入集合中的调用点;
将所述危险操作及所述危险操作对应的调用点作为所述审计结果的审计信息。
4.根据权利要求2所述的方法,其特征在于,所述在所述待判定输入集合中获取待判定输入信息,包括:
在所述待判定输入集合中,删除与所述白名单限制不相符的输入信息;
在剩下的所述待判定输入集合中,获取所述待判定输入信息。
5.根据权利要求2至4任一项所述的方法,其特征在于,所述生成表征所述待判定数据流安全的审计结果之后,还包括:
判断所述待判定数据流是否属于文件操作数据流;
若是,则在所述待判定数据流的审计结果中添加文件操作信息。
6.根据权利要求2至4任一项所述的方法,其特征在于,所述生成表征所述待判定数据流安全的审计结果之后,还包括:
判断所述待判定数据流是否属于数据库操作数据流;
若是,则在所述待判定数据流的审计结果中添加数据库操作信息。
7.一种代码审计装置,其特征在于,包括:
第一获取模块,用于获取对预设代码审计系统中的目标对象的操作指令;
第一操作模块,用于按照所述操作指令对所述目标对象进行操作,将包含操作后的所述目标对象的所述预设代码审计系统作为目标代码审计系统;
第一审计模块,用于基于所述目标代码审计系统进行代码审计,得到审计结果;
其中,所述目标对象的类型包括待判定输入集合、危险操作集合、安全处理操作集合;所述操作指令的类型包括添加、删除、修改;
其中,所述第一审计模块包括:
第一获取子模块,用于在所述待判定输入集合中获取待判定输入信息;
第一追踪子模块,用于基于所述目标代码审计系统对所述待判定输入信息进行污点追踪,得到待判定数据流;
第一审计子模块,用于基于所述目标代码审计系统中的危险操作集合,判断所述待判定数据流中是否包含危险操作;若所述待判定数据流中包含所述危险操作,则基于所述目标代码审计系统中的安全处理操作集合,判断所述待判定数据流中是否包含与所述危险操作对应的安全操作;若所述待判定数据流中包含所述安全操作,则生成表征所述待判定数据流经过安全处理的审计结果;若所述待判定数据流中未包含所述安全操作,则生成表征所述待判定数据流存在漏洞的审计结果;若所述待判定数据流中未包含所述危险操作,则生成表征所述待判定数据流安全的审计结果。
8.一种代码审计设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述代码审计方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序时实现如权利要求1至6任一项所述代码审计方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010181266.6A CN111309631B (zh) | 2020-03-16 | 2020-03-16 | 一种代码审计方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010181266.6A CN111309631B (zh) | 2020-03-16 | 2020-03-16 | 一种代码审计方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111309631A CN111309631A (zh) | 2020-06-19 |
CN111309631B true CN111309631B (zh) | 2024-04-09 |
Family
ID=71158724
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010181266.6A Active CN111309631B (zh) | 2020-03-16 | 2020-03-16 | 一种代码审计方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111309631B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103092761A (zh) * | 2013-02-05 | 2013-05-08 | 烽火通信科技股份有限公司 | 基于差异信息文件识别和检查修改代码块的方法及装置 |
CN109359251A (zh) * | 2018-09-26 | 2019-02-19 | 江苏神州信源系统工程有限公司 | 应用系统使用情况的审计预警方法、装置和终端设备 |
CN110059006A (zh) * | 2019-03-29 | 2019-07-26 | 北京创鑫旅程网络技术有限公司 | 代码审计方法及装置 |
CN110231937A (zh) * | 2019-05-20 | 2019-09-13 | 平安科技(深圳)有限公司 | 脚本缺陷扫描方法、装置、计算机设备和存储介质 |
CN110704297A (zh) * | 2019-08-15 | 2020-01-17 | 平安普惠企业管理有限公司 | 代码评审方法、装置、计算机设备及存储介质 |
-
2020
- 2020-03-16 CN CN202010181266.6A patent/CN111309631B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103092761A (zh) * | 2013-02-05 | 2013-05-08 | 烽火通信科技股份有限公司 | 基于差异信息文件识别和检查修改代码块的方法及装置 |
CN109359251A (zh) * | 2018-09-26 | 2019-02-19 | 江苏神州信源系统工程有限公司 | 应用系统使用情况的审计预警方法、装置和终端设备 |
CN110059006A (zh) * | 2019-03-29 | 2019-07-26 | 北京创鑫旅程网络技术有限公司 | 代码审计方法及装置 |
CN110231937A (zh) * | 2019-05-20 | 2019-09-13 | 平安科技(深圳)有限公司 | 脚本缺陷扫描方法、装置、计算机设备和存储介质 |
CN110704297A (zh) * | 2019-08-15 | 2020-01-17 | 平安普惠企业管理有限公司 | 代码评审方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111309631A (zh) | 2020-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20150220739A1 (en) | Global Variable Security Analysis | |
TWI575397B (zh) | 利用運行期代理器及動態安全分析之應用程式逐點保護技術 | |
US10025694B1 (en) | Monitoring activity of software development kits using stack trace analysis | |
US20130117855A1 (en) | Apparatus for automatically inspecting security of applications and method thereof | |
US9280665B2 (en) | Fast and accurate identification of message-based API calls in application binaries | |
US10754717B2 (en) | Fast and accurate identification of message-based API calls in application binaries | |
CN111416811A (zh) | 越权漏洞检测方法、系统、设备及存储介质 | |
CN112257054B (zh) | 一种软件应用越权风险检测方法、电子设备及存储介质 | |
US9087137B2 (en) | Detection of custom parameters in a request URL | |
CN113449310A (zh) | 一种应用程序漏洞检测方法、装置及设备 | |
CN110727476A (zh) | 一种授权配置文件的生成方法、装置、设备及存储介质 | |
CN111309631B (zh) | 一种代码审计方法、装置、设备及计算机可读存储介质 | |
CN112748930B (zh) | 编译检测方法、装置、设备及存储介质 | |
CN114117434A (zh) | 检测方法及装置 | |
CN113377376A (zh) | 数据包生成方法、数据包生成装置、电子设备及存储介质 | |
CN112632550A (zh) | 口令和密钥的应用安全的检测方法及其电子设备 | |
CN112906404A (zh) | 翻译文案校验方法及电子设备和可读存储介质 | |
CN111124423A (zh) | 一种基于多平台的编译检测方法、装置、服务器及介质 | |
CN116049823B (zh) | 一种内存马检测方法、装置、计算机设备及存储介质 | |
EP4273726A1 (en) | Risk assessment based on augmented software bill of materials | |
CN112000573B (zh) | 代码质量的监控方法、装置、计算机设备及介质 | |
Saltaformaggio | Forensic carving of wireless network information from the android linux kernel | |
Park et al. | Automatic generation of maec and stix standards for android malware threat intelligence | |
CN108052319B (zh) | 脚本模块引用原生资源的方法、装置及终端设备 | |
Kong et al. | Automatic Generation Of Mobile Application Behavior Statement Template Based On API Call Graph |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |