一种工程文件的扫描方法、装置、电子设备及存储介质制造方法及图纸

技术编号:22330539 阅读:42 留言:0更新日期:2019-10-19 12:21
本公开实施例公开了一种工程文件的扫描方法、装置、电子设备及存储介质;该方法包括:获取待扫描的软件工程以及与所述软件工程匹配的探针服务,并将所述探针服务植入所述软件工程中;所述软件工程包括至少一个隶属同一工程框架的工程文件;启动所述软件工程,并通过所述软件工程在执行过程中启动所述探针服务;通过所述探针服务在所述软件工程的执行过程中,对所述软件工程中的全部工程文件进行一致性扫描,得到对所述软件工程的扫描结果。本公开实施例的技术方案,通过在软件工程中植入探针服务,并通过探针服务对全部工程文件进行扫描,以获取该软件工程的扫描结果,在未对原工程文件造成侵害的前提下,实现了代码的安全缺陷检测。

A scanning method, device, electronic equipment and storage medium for engineering documents

【技术实现步骤摘要】
一种工程文件的扫描方法、装置、电子设备及存储介质
本公开实施例涉及网络
,尤其涉及一种工程文件的扫描方法、装置、电子设备及存储介质。
技术介绍
随着网络技术的迅速发展,越来越多的软件开始走进人们的视线中,为人们提供了各种各样的网络服务,而作为软件技术的重要组成部分,软件的代码审计也变得越来越重要。代码审计是软件业务发展到一定阶段,解决性能、稳定和安全等问题常见的措施,一般分为人工审查和自动化审查;人工审查,是通过人工校对的方式,对代码进行逐条检查和分析,查找代码中是否存在的安全漏洞;自动化审查,则是通过关键词匹配的方式,将软件代码与预先设置的关键词进行比对,进而查找代码中存在的安全漏洞。专利技术人在实现本公开的过程中,发现现有技术有如下缺陷:人工审查代码需要耗费大量的人力成本和时间成本,而且审查效率较低;通过关键词匹配的自动化审查方式,需要维护大量的关键词,不在维护范围内的词汇则不在审查的范围内,并且关键词能够被轻易绕开,使用相似表述的其它词汇时无法被检测为该关键词,可靠性较低。
技术实现思路
本公开实施例提供了一种工程文件的扫描方法、装置、电子设备及存储介质,通过在软件工程中植入探针服务,并通过探针服务对工程文件进行一致性扫描,实现了对代码的安全缺陷检测。第一方面,本公开实施例提供了一种工程文件的扫描方法,包括:获取待扫描的软件工程以及与所述软件工程匹配的探针服务,并将所述探针服务植入所述软件工程中;所述软件工程包括至少一个隶属同一工程框架的工程文件;启动所述软件工程,并通过所述软件工程在执行过程中启动所述探针服务;通过所述探针服务在所述软件工程的执行过程中,对所述软件工程中的全部工程文件进行一致性扫描,得到对所述软件工程的扫描结果。第二方面,本公开实施例提供了一种工程文件的扫描装置,包括:探针服务植入模块,用于获取待扫描的软件工程以及与所述软件工程匹配的探针服务,并将所述探针服务植入所述软件工程中;所述软件工程包括至少一个隶属同一工程框架的工程文件;启动模块,用于启动所述软件工程,并通过所述软件工程在执行过程中启动所述探针服务;扫描执行模块,用于通过所述探针服务在所述软件工程的执行过程中,对所述软件工程中的全部工程文件进行一致性扫描,得到对所述软件工程的扫描结果。第三方面,本公开实施例提供了一种电子设备,包括存储器、处理装置及存储在存储器上并可在处理装置上运行的计算机程序,所述处理装置执行所述程序时实现本公开任意实施例所述的工程文件的扫描方法。第四方面,本公开实施例提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行本公开任意实施例所述的工程文件的扫描方法。本公开实施例的技术方案,通过在软件工程中植入探针服务,并通过探针服务对全部工程文件进行扫描,以获取该软件工程的扫描结果,在未对原工程文件造成侵害的前提下,实现了代码的安全缺陷检测,同时,探针服务对全部工程文件进行组合抽象语法树分析,根据代码运行的上下文环境以及代码之间的语义联系,实现了对全部代码的精确审计,提高了检测的准确性。附图说明图1是本公开实施例一中的一种工程文件的扫描方法的流程图;图2A是本公开实施例二中的一种工程文件的扫描方法的流程图;图2B是本公开具体应用场景一中的一种工程文件的扫描方法的流程图;图3是本公开实施例三中的一种工程文件的扫描装置的结构框图;图4是本公开实施例四中的一种电子设备的结构框图。具体实施方式下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本公开,而非对本公开的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本公开相关的部分而非全部结构。实施例一图1为本公开实施例一提供的一种工程文件的扫描方法,本实施例可适用于对软件工程进行代码扫描的情况,该方法可以由工程文件的扫描装置来执行,该装置可以通过软件和/或硬件实现,并一般可以集成在代码检测服务器中,该方法具体包括如下步骤:S110、获取待扫描的软件工程以及与所述软件工程匹配的探针服务,并将所述探针服务植入所述软件工程中;所述软件工程包括至少一个隶属同一工程框架的工程文件。软件工程是软件开发人员根据获取的用户需求,分析后遵循一定的开发原理,采取相对应的编写方法,最终开发出的软件项目,可以是软件系统也可以是系统中的软件部分。软件工程可以是系统软件、应用软件或者介于系统软件与应用软件之间的中间件,在本公开实施例中,可选的,对软件工程的类型不作具体限定。在本公开实施例中,可选的,获取与所述软件工程匹配的工程框架;根据工程框架与探针服务之间的映射关系,获取与所述软件工程匹配的工程框架匹配的探针服务。一个软件工程可能是由一种或多种编程语言编写而成,而每一种编程语言都有一个或多个对应的工程框架,也即编程框架;例如,Python语言,其包括Django、Flask和Web.py等多种不同的工程框架。使用工程框架进行程序设计,可以针对程序的特点提取共同特性,并且能够进行多次的开发利用,提高了软件工程的开发效率。探针服务是一段检测程序,用来获取软件工程中的漏洞,检查软件工程的程序代码是否存在安全隐患,或者查找代码编写不规范的地方。不同的工程框架,预先编写有对应的探针服务程序,且工程框架与探针服务之间是一一对应关系,每一种工程框架匹配一种探针服务。每一个工程框架下都有至少一个隶属于该工程框架的工程文件;由于软件工程的代码量巨大,通常情况下,一个工程框架下实际包括了多个工程文件,因此,在每个工程框架中植入匹配的探针服务,并利用该探针服务对该工程框架下的所有工程文件进行代码扫描。可选的,在本公开实施例中,在所述软件工程包括的各工程文件中,获取与所述软件工程匹配的入口文件;将所述探针服务植入所述入口文件中。入口文件是工程框架的入口,也是该工程框架下所有文件的起始执行文件,每一个工程框架都包括至少一个入口文件,例如,上述Python语言的Django工程框架下包括入口文件settings.py和url.py,只要在该工程框架下的任意入口文件中植入探针服务,便可以通过遍历该工程框架暴露接口的方式获取所有的代码。特别的,当工程框架下包括多个入口文件时,可以通过指定的方式,例如,指定文件名的方式,指定在多个入口文件中的哪一个入口文件中植入探针服务。S120、启动所述软件工程,并通过所述软件工程在执行过程中启动所述探针服务。软件工程启动后,由于探针服务已植入入口文件处,在软件工程启动后,探针服务会随着软件工程的启动而启动。S130、通过所述探针服务在所述软件工程的执行过程中,对所述软件工程中的全部工程文件进行一致性扫描,得到对所述软件工程的扫描结果。具体的,通过所述探针服务遍历所述软件工程中的全部工程文件,得到组合工程文件;通过所述探针服务生成与所述组合工程文件对应的组合抽象语法树;通过所述探针服务根据所述组合抽象语法树进行扫描,得到对所述软件工程的扫描结果。抽象语法树(AbstractSyntaxTree,AST)是源代码语法结构的一种抽象表示,以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。现有技术一般是以各工程文件为处理对象,利用抽象语法树解析各工程文件,但是这样的本文档来自技高网...

【技术保护点】
1.一种工程文件的扫描方法,其特征在于,包括:获取待扫描的软件工程以及与所述软件工程匹配的探针服务,并将所述探针服务植入所述软件工程中;所述软件工程包括至少一个隶属同一工程框架的工程文件;启动所述软件工程,并通过所述软件工程在执行过程中启动所述探针服务;通过所述探针服务在所述软件工程的执行过程中,对所述软件工程中的全部工程文件进行一致性扫描,得到对所述软件工程的扫描结果。

【技术特征摘要】
1.一种工程文件的扫描方法,其特征在于,包括:获取待扫描的软件工程以及与所述软件工程匹配的探针服务,并将所述探针服务植入所述软件工程中;所述软件工程包括至少一个隶属同一工程框架的工程文件;启动所述软件工程,并通过所述软件工程在执行过程中启动所述探针服务;通过所述探针服务在所述软件工程的执行过程中,对所述软件工程中的全部工程文件进行一致性扫描,得到对所述软件工程的扫描结果。2.根据权利要求1所述的方法,其特征在于,获取与所述软件工程匹配的探针服务,包括:获取与所述软件工程匹配的工程框架;根据工程框架与探针服务之间的映射关系,获取与所述软件工程匹配的工程框架匹配的探针服务。3.根据权利要求1或2所述的方法,其特征在于,将所述探针服务植入所述软件工程中,包括:在所述软件工程包括的各工程文件中,获取与所述软件工程匹配的入口文件;将所述探针服务植入所述入口文件中。4.根据权利要求1所述的方法,其特征在于,通过所述探针服务在所述软件工程的执行过程中,对所述软件工程中的全部工程文件进行一致性扫描,得到对所述软件工程的扫描结果,包括:通过所述探针服务遍历所述软件工程中的全部工程文件,得到组合工程文件;通过所述探针服务生成与所述组合工程文件对应的组合抽象语法树;通过所述探针服务根据所述组合抽象语法树进行扫描,得到对所述软件工程的扫描结果。5.根据权利要求1所述的方法,其特征在于,在通过所述软件工程在执行过程中启动所述探针服务之后,包括:通过所述探针服务采用预先配置的命令行接口和/或应用程序编程接口,接收扫描命令;通过所述探针服务根据所述扫描命令对所述软件工程进行定制化扫描,得到定制扫描结果;通...

【专利技术属性】
技术研发人员:马鹏
申请(专利权)人:北京字节跳动网络技术有限公司
类型:发明
国别省市:北京,11

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

1