CN111709026A - 静态安全检测方法、装置、计算机设备和存储介质 - Google Patents

静态安全检测方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN111709026A
CN111709026A CN202010523982.8A CN202010523982A CN111709026A CN 111709026 A CN111709026 A CN 111709026A CN 202010523982 A CN202010523982 A CN 202010523982A CN 111709026 A CN111709026 A CN 111709026A
Authority
CN
China
Prior art keywords
security detection
interface
information
static security
description
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.)
Granted
Application number
CN202010523982.8A
Other languages
English (en)
Other versions
CN111709026B (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.)
Shenzhen Zhishi Network Technology Co ltd
Original Assignee
Stalemate Software Shenzhen Co ltd
Xc5 Hong Kong 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 Stalemate Software Shenzhen Co ltd, Xc5 Hong Kong Ltd filed Critical Stalemate Software Shenzhen Co ltd
Priority to CN202010523982.8A priority Critical patent/CN111709026B/zh
Publication of CN111709026A publication Critical patent/CN111709026A/zh
Application granted granted Critical
Publication of CN111709026B publication Critical patent/CN111709026B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Stored Programmes (AREA)

Abstract

本发明适用于计算机技术领域,提供了一种静态安全检测方法、装置、计算机设备和存储介质,所述方法包括:获取与待检测软件相关联的关联软件的接口信息;根据与业务逻辑相关的建模描述和规则描述对接口信息进行选择标注,得到关联软件的接口语义信息;根据接口语义信息进行静态安全检测,并输出安全检测结果。本发明提供的静态安全检测方法,由于预设了与业务逻辑相关的建模描述和规则描述,在对关联软件的接口信息进行标注时只需选择标注就能确定接口的执行语义信息,操作方便简单,在标注之后只需根据接口语义信息对待检测软件进行静态安全检测,有效地提高了语义标注和静态安全检测的效率,同时还能检测出与业务逻辑相关的漏洞。

Description

静态安全检测方法、装置、计算机设备和存储介质
技术领域
本发明属于计算机技术领域,尤其涉及一种静态安全检测方法、装置、计算机设备和存储介质。
背景技术
随着软件规模增大,软件面临的安全威胁类型也日益增加,如银行和互联网金融软件中存储的用户隐私数据的安全、代码逻辑漏洞如银行账户余额计算的溢出、资源未释放导致系统资源耗尽等问题。静态安全检测工具可以帮助用户及早发现软件的潜在漏洞,从而保证软件的正常运行。现有技术通常是采用语义标注接口的方式来进行静态安全检测,可以有效解决扫描代码规模大的问题。
然而在现有的对接口进行语义标注的方案中,通常都是采用形式化的标注方法,形式化的标注方式对用户的要求高,适用性差,尤其是对大规模使用第三方接口的源代码,由于形式化描述的复杂性,通常都无法在有限的时间内完成对接口的语义标注,并且使用形式化方法描述的语义更偏向于函数的通用语义,不能有效表达与业务逻辑相关的语义,严重影响了静态安全检测的覆盖率及检测有效性。
可见,现有的对接口进行语义标注的技术方案,还存在着对用户要求高、适用性差、不能有效标注与业务逻辑相关语义导致静的语义标注效率和检测效率低的技术问题。
发明内容
本发明实施例的目的在于提供一种静态安全检测方法,旨在解决现有的对接口进行语义标注的技术方案中,还存在的对用户要求高、适用性差、不能有效标注与业务逻辑相关语义导致静的语义标注效率和检测效率低的技术问题。
本发明实施例是这样实现的,一种静态安全检测方法,包括:
获取与待检测软件相关联的关联软件的接口信息;
根据预设的建模描述和规则描述对所述接口信息进行选择标注,得到所述关联软件的接口语义信息;所述建模描述和规则描述是预先根据业务逻辑所自定义构建的;
根据所述接口语义信息对所述待检测软件进行静态安全检测,并输出安全检测结果。
本发明实施例的另一目的在于提供一种静态安全检测装置,包括:
接口信息获取单元,获取与待检测软件相关联的关联软件的接口信息;
选择标注单元,用于根据预设的建模描述和规则描述对所述接口信息进行选择标注,得到所述关联软件的接口语义信息;所述建模描述和规则描述是预先根据业务逻辑所自定义构建的;
静态安全检测单元,用于根据所述接口语义信息对所述待检测软件进行静态安全检测,并输出安全检测结果。
本发明实施例的另一目的在于提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如上述所述静态安全检测方法的步骤。
本发明实施例的另一目的在于提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如上述所述静态安全检测方法的步骤。
本发明实施例提供的一种静态安全检测方法,通过获取与待检测软件相关联的关联软件的接口信息,并直接利用预设的建模描述和规则描述对所述接口信息进行选择标注,由于所述建模描述和规则描述是预先根据业务逻辑所自定义构建的,因此标注的过程只需要选择相应的建模描述和规则描述,在标注完成之后,直接根据接口语义信息对待检测软件进行静态安全检测,从而实现了对软件的静态安全检测。本发明提供的静态安全检测方法,通过预先自定义构建建模描述和规则描述,在标注的过程只需要选择相应的建模描述和规则描述,而无需进行形式化描述,相对于现有语义标注方法,操作简单方便,易用性高,可以高效的批量标注,从而有效地提高了静态安全检测的效率。
附图说明
图1为本发明实施例提供的一种静态安全检测方法的步骤流程图;
图2为本发明实施例提供的一种得到关联软件的接口信息的方法的步骤流程图;
图3为本发明实施例提供的一种对接口信息进行选择标注的方法的步骤流程图;
图4为本发明实施例提供的一种进行静态安全检测的步骤流程图;
图5为本发明实施例提供的一种执行静态安全检测方法的源代码示例图;
图6为本发明实施例提供的一种静态安全检测装置的结构示意图;
图7为本发明实施例提供的一种接口执行语义信息确定单元的结构示意图;
图8为本发明实施例提供的另一种接口执行语义信息确定单元的结构示意图;
图9为本发明实施例提供的一种静态安全检测单元的结构示意图;
图10为本发明实施例提供的一种用于执行静态安全检测方法的计算机设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1为本发明实施例提供的一种静态安全检测方法的步骤流程图,具体包括以下步骤:
步骤S102,获取与待检测软件相关联的关联软件的接口信息。
在本发明实施例中,所述接口信息包括接口名称,参数信息,属性等等。
在本发明实施例中,获取所述接口信息的步骤请参阅图2及其解释说明的内容。
步骤S104,根据预设的建模描述和规则描述对所述接口信息进行选择标注,得到所述关联软件的接口语义信息。
在本发明实施例中,所述建模描述和规则描述是预先根据业务逻辑所自定义构建的。
在本发明实施例中,所述接口语义信息包括建模描述信息以及规则描述信息。
在本发明实施例中,建模描述信息可以理解为对关联软件的建模描述,也就是指对软件程序执行语义的归纳和抽象描述。通常可以是预先定义的一些信息,也可以是根据用户实际需求自定义的信息,例如数据在软件程序当中是否被改写、数据在软件程序当中是否被引用、数据在软件程序当中是否被传递、数据在软件程序执行后是否被赋予了某种属性等等。
在本发明实施例中,规则描述信息可以理解为对检测用户所关注的软件漏洞或缺陷的规则描述,同样的,规则描述语义信息可以是一些常见的基础检测规则,也可以是根据用户的实际需求所自定义的一些新的检测规则,例如下标访问不能越界、不能引用空指针等等。
在本发明实施例中,根据预设的建模描述和规则描述对所述接口信息进行选择标注的具体步骤,请参阅图3及其解释说明。
步骤S106,根据所述接口语义信息对所述待检测软件进行静态安全检测,并输出安全检测结果。
在本发明实施例中,接口语义信息通常需要被静态安全检测软件可识别才能实现对待检测软件的静态安全检测,而根据接口执行语义信息以及规则描述语义信息对所述待检测软件进行静态安全检测的具体步骤可以参阅图4及其解释说明的内容。
本发明实施例提供的一种静态安全检测方法,通过获取与待检测软件相关联的关联软件的接口信息,并直接利用预设的建模描述和规则描述对所述接口信息进行选择标注,由于所述建模描述和规则描述是预先根据业务逻辑所自定义构建的,因此标注的过程只需要选择相应的建模描述和规则描述,在标注完成之后,直接根据接口语义信息对待检测软件进行静态安全检测,从而实现了对软件的静态安全检测。本发明提供的静态安全检测方法,通过预先自定义构建建模描述和规则描述,在标注的过程只需要选择相应的建模描述和规则描述,而无需进行形式化描述,相对于现有语义标注方法,操作简单方便,易用性高,可以高效的批量标注,从而有效地提高了静态安全检测的效率。
如图2所示,为本发明实施例提供的一种得到接口执行语义信息的方法的步骤流程图,具体包括以下步骤:
步骤S202,获取关联软件的源代码。
在本发明实施例中,所述关联软件的源代码的获取方式有很多实现方式,比如通过读入第三方库代码或者通过上传、下载的方式,不同获取源代码的实现方式对最终得到的接口执行语义信息没有影响,在此不再赘述。
步骤S204,根据所述源代码构建关联软件的语法树。
在本发明实施例中,对源代码进行语法分析就可以得到所述关联软件的语法树,而具体可以构建语法树的程序工具有很多种,例如esprima、v8、SpiderMonkey、UglifyJS、AST explorer等等,在此并不限制具体构建语法树的所使用的工具。
步骤S206,根据所述语法树获取所述关联软件的接口信息。
在本发明实施例中,根据语法树就可以获取到所述关联软件的接口信息。
如图3所示,为本发明实施例提供的对接口信息进行选择标注的方法的步骤流程图,具体包括以下步骤:
步骤S302,构建与静态安全检测关联的语义信息列表。
在本发明实施例中,所述语义信息列表包括建模描述列表和规则描述列表,其中建模描述列表提供了多个与静态安全检测关联的建模描述,而规则描述列表提供了多个与静态安全检测关联的规则描述。
步骤S304,根据用户对所述语义信息列表的选择操作确定用户选择的建模描述和规则描述。
在本发明实施例中,由于语义信息列表包括了建模描述列表和规则描述列表,根据用户对建模描述列表和规则描述列表的选择操作可以分别确定用户选择的建模描述和规则描述。
步骤S306,根据所述建模描述和规则描述对所述接口信息进行标注,得到所述关联软件的接口语义信息。
在本发明实施例中,在确定了用户选择的建模描述和规则描述之后,就可以直接对接口信息进行标注,从而得到关联软件的接口语义信息。
如图4所示,为本发明实施例提供的一种进行静态安全检测的步骤流程图,具体包括以下步骤:
步骤S402,将所述接口语义信息转化为支持静态安全检测的内部表示形式。
在本发明实施例中,结合前述说明可知,所述接口执行语义信息以及所述规则描述语义信息属于描述类信息,其并不属于形式化的语言代码,为实现静态安全检测过程,通常需要将接口执行语义信息和规则描述语义信息转化为静态安全检测软件可以读取的程序化语言形式,也就是转化为支持静态安全检测的内部表示形式,从而实现静态安全检测过程。
步骤S404,根据所述建模描述信息以及规则描述信息在所述内部表示形式上进行静态安全检测。
在本发明实施例中,当需要调用关联软件时,直接利用接口语义信息也就是建模描述信息以及规则描述信息,在内部表示形式进行抽象解释和语义推导,从而快速接测出待检测软件是否有代码违反规则。
为便于理解本发明所提供的静态安全检测方法的完整实施过程,以下述检测SQL注入漏洞的实现过程为例,具体请参阅图5及其解释说明。
SQL注入漏洞是通过将恶意的SQL查询或添加语句插入到应用的输入参数中,如果应用程序没有对输入的数据进行过滤或验证就直接执行SQL语句,将可能会获取或篡改数据库中的信息。
如图5中的软件源代码为例,提供了一段实现根据用户名和密码查询用户信息的功能的源代码,如果有恶意攻击者调用SqlInjection.query函数,并且传入userName=‘user’或者‘1’=‘1’将会绕过查询语句的条件判断,从而获取用户“user”的所有信息。为了检测该漏洞,可以按照以下步骤来操作:
定义检测漏洞需要的接口语义信息,包括建模描述以及规则描述。
其中规则描述是基于检测目的所确定的用户自定义的检测规则Check(Object,“untrust”,“SQLInjection”),即用来检查数据的来源是否可信,如果不可信,则报告“SQLInjection”错误。
其中建模描述信息是从上述代码在运行时所调用的Java运行时库代码中所提取出的,包括接口SqlInjection::query用于描述获取的数据是否来源于外部,是否为不可信的数据;接口Statement::executeQuery用于描述需要查询字符串str是从未知来源的话,那么需要报告“SQL Injection”的漏洞以提醒用户在查询数据库之前要对未知来源的数据进行检查;接口StringBuilder::append(string str)描述了参数str的值会被追加到返回值。
则此时通过建模描述以及规则描述对待检测软件进行静态安全检测的完整扫描过程为:
扫描到接口SQLInjection.query识别到该接口上标准的参数为“untrust”,给变量userName标记“untrust”属性;
扫描待检测软件将userName添加到变量sqlString中;
识别到接口StringBuilder::append(string str),将“untrust”属性传递给sqlString变量;
扫描待检测软件将“untrust”传递给第一个参数str;
识别到接口Statement::executeQuery,判断此时第一个参数str上带有“untrust”标记,报告错误代码“SQL Injection”,从而实现静态安全检测。
如图6所示,为本发明实施例提供的一种静态安全检测装置的结构示意图,详述如下。
在本发明实施例中,所述静态安全检测装置具体包括:
接口信息获取单元610,获取与待检测软件相关联的关联软件的接口信息。
在本发明实施例中,所述接口信息包括接口名称,参数信息,属性等等。
选择标注单元620,用于根据预设的建模描述和规则描述对所述接口信息进行选择标注,得到所述关联软件的接口语义信息。
在本发明实施例中,所述建模描述和规则描述是预先根据业务逻辑所自定义构建的。
在本发明实施例中,所述接口语义信息包括建模描述信息以及规则描述信息。
在本发明实施例中,建模描述信息可以理解为对关联软件的建模描述,也就是指对软件程序执行语义的归纳和抽象描述。通常可以是预先定义的一些信息,也可以是根据用户实际需求自定义的信息,例如数据在软件程序当中是否被改写、数据在软件程序当中是否被引用、数据在软件程序当中是否被传递、数据在软件程序执行后是否被赋予了某种属性等等。
在本发明实施例中,规则描述信息可以理解为对检测用户所关注的软件漏洞或缺陷的规则描述,同样的,规则描述语义信息可以是一些常见的基础检测规则,也可以是根据用户的实际需求所自定义的一些新的检测规则,例如下标访问不能越界、不能引用空指针等等。
静态安全检测单元630,用于根据所述接口语义信息对所述待检测软件进行静态安全检测,并输出安全检测结果。
在本发明实施例中,接口语义信息通常需要被静态安全检测软件可识别才能实现对待检测软件的静态安全检测,而根据接口执行语义信息以及规则描述语义信息对所述待检测软件进行静态安全检测的具体步骤可以参阅图4及其解释说明的内容。
本发明实施例提供的一种静态安全检测装置,通过获取与待检测软件相关联的关联软件的接口信息,并直接利用预设的建模描述和规则描述对所述接口信息进行选择标注,由于所述建模描述和规则描述是预先根据业务逻辑所自定义构建的,因此标注的过程只需要选择相应的建模描述和规则描述,在标注完成之后,直接根据接口语义信息对待检测软件进行静态安全检测,从而实现了对软件的静态安全检测。本发明提供的静态安全检测装置,通过预先自定义构建建模描述和规则描述,在标注的过程只需要选择相应的建模描述和规则描述,而无需进行形式化描述,相对于现有语义标注方法,操作简单方便,易用性高,可以高效的批量标注,从而有效地提高了静态安全检测的效率。
如图7所示,为本发明实施例提供的一种接口信息获取单元的结构示意图,详述如下。
在本发明实施例中,所述接口信息获取单元包括:
源代码获取模块710,用于获取关联软件的源代码。
在本发明实施例中,所述关联软件的源代码的获取方式有很多实现方式,比如通过读入第三方库代码或者通过上传、下载的方式,不同获取源代码的实现方式对最终得到的接口执行语义信息没有影响,在此不再赘述。
语法树构建模块720,用于根据所述源代码构建关联软件的语法树。
在本发明实施例中,对源代码进行语法分析就可以得到所述关联软件的语法树,而具体可以构建语法树的程序工具有很多种,例如esprima、v8、SpiderMonkey、UglifyJS、AST explorer等等,在此并不限制具体构建语法树的所使用的工具。
接口信息提取模块730,用于根据所述语法树获取所述关联软件的接口信息。
在本发明实施例中,根据语法树就可以获取到所述关联软件的接口信息。
如图8所示,为本发明实施例提供的一种选择标注单元的结构示意图,详述如下。
在本发明实施例中,所述选择标注单元包括:
语义信息列表构建模块810,用于构建与静态安全检测关联的语义信息列表。
在本发明实施例中,所述语义信息列表包括建模描述列表和规则描述列表,其中建模描述列表提供了多个与静态安全检测关联的建模描述,而规则描述列表提供了多个与静态安全检测关联的规则描述。
语义信息列表选择模块820,用于根据用户对所述语义信息列表的选择操作确定用户选择的建模描述和规则描述。
在本发明实施例中,由于语义信息列表包括了建模描述列表和规则描述列表,根据用户对建模描述列表和规则描述列表的选择操作可以分别确定用户选择的建模描述和规则描述。
标注模块830,用于根据所述建模描述和规则描述对所述接口信息进行标注,得到所述关联软件的接口语义信息。
在本发明实施例中,在确定了用户选择的建模描述和规则描述之后,就可以直接对接口信息进行标注,从而得到关联软件的接口语义信息。
如图9所示,为本发明实施例提供的一种静态安全检测单元的结构示意图,详述如下。
在本发明实施例中,所述静态安全检测单元包括:
内部表示形式转化模块910,用于将所述接口语义信息转化为支持静态安全检测的内部表示形式。
在本发明实施例中,结合前述说明可知,所述接口执行语义信息以及所述规则描述语义信息属于描述类信息,其并不属于形式化的语言代码,为实现静态安全检测过程,通常需要将接口执行语义信息和规则描述语义信息转化为静态安全检测软件可以读取的程序化语言形式,也就是转化为支持静态安全检测的内部表示形式,从而实现静态安全检测过程。
静态安全检测模块920,用于根据所述建模描述信息以及规则描述信息在所述内部表示形式上进行静态安全检测。
在本发明实施例中,当需要调用关联软件时,直接利用接口语义信息也就是建模描述信息以及规则描述信息,在内部表示形式进行抽象解释和语义推导,从而快速接测出待检测软件是否有代码违反规则。
图10示出了一个实施例中计算机设备的内部结构图。如图10所示,该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现静态安全检测方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行静态安全检测方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的静态安全检测装置可以实现为一种计算机程序的形式,计算机程序可在如图10所示的计算机设备上运行。计算机设备的存储器中可存储组成该静态安全检测装置的各个程序模块,比如,图6所示的接口信息获取单元610、选择标注单元620以及静态安全检测单元630。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的静态安全检测方法中的步骤。
例如,图10所示的计算机设备可以通过如图6所示的静态安全检测装置中的接口信息获取单元610执行步骤S102;计算机设备可通过选择标注单元620执行步骤S104;计算机设备可通过静态安全检测单元630执行步骤S106。
在一个实施例中,提出了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取与待检测软件相关联的关联软件的接口信息;
根据预设的建模描述和规则描述对所述接口信息进行选择标注,得到所述关联软件的接口语义信息;所述建模描述和规则描述是预先根据业务逻辑所自定义构建的;
根据所述接口语义信息对所述待检测软件进行静态安全检测,并输出安全检测结果。
在一个实施例中,提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:
获取与待检测软件相关联的关联软件的接口信息;
根据预设的建模描述和规则描述对所述接口信息进行选择标注,得到所述关联软件的接口语义信息;所述建模描述和规则描述是预先根据业务逻辑所自定义构建的;
根据所述接口语义信息对所述待检测软件进行静态安全检测,并输出安全检测结果。
应该理解的是,虽然本发明各实施例的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,各实施例中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种静态安全检测方法,其特征在于,包括:
获取与待检测软件相关联的关联软件的接口信息;
根据预设的建模描述和规则描述对所述接口信息进行选择标注,得到所述关联软件的接口语义信息;所述建模描述和规则描述是预先根据业务逻辑所自定义构建的;
根据所述接口语义信息对所述待检测软件进行静态安全检测,并输出安全检测结果。
2.根据权利要求1所述的静态安全检测方法,其特征在于,所述获取与待检测软件相关联的关联软件的接口信息的步骤,具体包括:
获取关联软件的源代码;
根据所述源代码构建关联软件的语法树;
根据所述语法树获取所述关联软件的接口信息。
3.根据权利要求1所述的静态安全检测方法,其特征在于,所述根据预设的建模描述和规则描述对所述接口信息进行选择标注,得到所述关联软件的接口语义信息的步骤,具体包括:
构建与静态安全检测关联的语义信息列表;所述语义信息列表包括建模描述列表和规则描述列表;
根据用户对所述语义信息列表的选择操作确定用户选择的建模描述和规则描述;
根据所述建模描述和规则描述对所述接口信息进行标注,得到所述关联软件的接口语义信息。
4.根据权利要求1所述的一种静态安全检测方法,其特征在于,所述接口语义信息包括建模描述信息以及规则描述信息;所述根据所述接口语义信息对所述待检测软件进行静态安全检测的步骤,具体包括:
将所述接口语义信息转化为支持静态安全检测的内部表示形式;
根据所述建模描述信息以及规则描述信息在所述内部表示形式上进行静态安全检测。
5.一种静态安全检测装置,其特征在于,包括:
接口信息获取单元,获取与待检测软件相关联的关联软件的接口信息;
选择标注单元,用于根据预设的建模描述和规则描述对所述接口信息进行选择标注,得到所述关联软件的接口语义信息;所述建模描述和规则描述是预先根据业务逻辑所自定义构建的;
静态安全检测单元,用于根据所述接口语义信息对所述待检测软件进行静态安全检测,并输出安全检测结果。
6.根据权利要求5所述的一种静态安全检测装置,其特征在于,所述接口信息获取单元包括:
源代码获取模块,用于获取关联软件的源代码;
语法树构建模块,用于根据所述源代码构建关联软件的语法树;
接口信息提取模块,用于根据所述语法树获取所述关联软件的接口信息。
7.根据权利要求5所述的一种静态安全检测装置,其特征在于,所述选择标注单元包括:
语义信息列表构建模块,用于构建与静态安全检测关联的语义信息列表;所述语义信息列表包括建模描述列表和规则描述列表;
语义信息列表选择模块,用于根据用户对所述语义信息列表的选择操作确定用户选择的建模描述和规则描述;
标注模块,用于根据所述建模描述和规则描述对所述接口信息进行标注,得到所述关联软件的接口语义信息。
8.根据权利要求5所述的一种静态安全检测装置,其特征在于,所述静态安全检测单元包括:
内部表示形式转化模块,用于将所述接口语义信息转化为支持静态安全检测的内部表示形式;
静态安全检测模块,用于根据所述建模描述信息以及规则描述信息在所述内部表示形式上进行静态安全检测。
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行权利要求1至5中任一项权利要求所述静态安全检测方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行权利要求1至5中任一项权利要求所述静态安全检测方法的步骤。
CN202010523982.8A 2020-06-10 2020-06-10 静态安全检测方法、装置、计算机设备和存储介质 Active CN111709026B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010523982.8A CN111709026B (zh) 2020-06-10 2020-06-10 静态安全检测方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010523982.8A CN111709026B (zh) 2020-06-10 2020-06-10 静态安全检测方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN111709026A true CN111709026A (zh) 2020-09-25
CN111709026B CN111709026B (zh) 2023-10-24

Family

ID=72539435

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010523982.8A Active CN111709026B (zh) 2020-06-10 2020-06-10 静态安全检测方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN111709026B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112235149A (zh) * 2020-12-15 2021-01-15 广东省新一代通信与网络创新研究院 一种网络功能单元仿真建模的方法及系统、网络功能单元
CN115828248A (zh) * 2023-02-17 2023-03-21 杭州未名信科科技有限公司 基于可解释性深度学习的恶意代码检测方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101017458A (zh) * 2007-03-02 2007-08-15 北京邮电大学 基于源代码静态分析的软件安全代码分析器及其检测方法
US20130014093A1 (en) * 2010-03-29 2013-01-10 Soft4Soft Co., Ltd. Code inspection executing system for performing a code inspection of abap source codes
CN106354632A (zh) * 2016-08-24 2017-01-25 北京奇虎测腾科技有限公司 一种基于静态分析技术的源代码检测系统及方法
CN106709333A (zh) * 2015-11-16 2017-05-24 华为技术有限公司 一种应用编程的安全性检测方法及装置
CN111026663A (zh) * 2019-12-09 2020-04-17 Xc5香港有限公司 一种软件缺陷检测方法、装置、计算机设备和存储介质
CN111158667A (zh) * 2020-01-02 2020-05-15 广州虎牙科技有限公司 代码注入方法和装置、电子设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101017458A (zh) * 2007-03-02 2007-08-15 北京邮电大学 基于源代码静态分析的软件安全代码分析器及其检测方法
US20130014093A1 (en) * 2010-03-29 2013-01-10 Soft4Soft Co., Ltd. Code inspection executing system for performing a code inspection of abap source codes
CN106709333A (zh) * 2015-11-16 2017-05-24 华为技术有限公司 一种应用编程的安全性检测方法及装置
CN106354632A (zh) * 2016-08-24 2017-01-25 北京奇虎测腾科技有限公司 一种基于静态分析技术的源代码检测系统及方法
CN111026663A (zh) * 2019-12-09 2020-04-17 Xc5香港有限公司 一种软件缺陷检测方法、装置、计算机设备和存储介质
CN111158667A (zh) * 2020-01-02 2020-05-15 广州虎牙科技有限公司 代码注入方法和装置、电子设备及存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112235149A (zh) * 2020-12-15 2021-01-15 广东省新一代通信与网络创新研究院 一种网络功能单元仿真建模的方法及系统、网络功能单元
CN112235149B (zh) * 2020-12-15 2021-03-02 广东省新一代通信与网络创新研究院 一种网络功能单元仿真建模的方法及系统、网络功能单元
CN115828248A (zh) * 2023-02-17 2023-03-21 杭州未名信科科技有限公司 基于可解释性深度学习的恶意代码检测方法及装置

Also Published As

Publication number Publication date
CN111709026B (zh) 2023-10-24

Similar Documents

Publication Publication Date Title
CN107832619B (zh) Android平台下应用程序漏洞自动化挖掘系统及方法
US8635602B2 (en) Verification of information-flow downgraders
CN109684607B (zh) Json数据解析方法、装置、计算机设备和存储介质
Alkhalaf et al. Verifying client-side input validation functions using string analysis
US20130081000A1 (en) Test failure bucketing
KR101507469B1 (ko) 소스 코드 분석 서비스 제공 방법
CN104881608A (zh) 一种基于模拟浏览器行为的xss漏洞检测方法
CN104881607A (zh) 一种基于模拟浏览器行为的xss漏洞检测系统
CN108256322B (zh) 安全测试方法、装置、计算机设备和存储介质
CN113139192B (zh) 基于知识图谱的第三方库安全风险分析方法及系统
Møller et al. Automated detection of client-state manipulation vulnerabilities
CN111709026B (zh) 静态安全检测方法、装置、计算机设备和存储介质
US11816479B2 (en) System and method for implementing a code audit tool
Schneider et al. Automatic extraction of security-rich dataflow diagrams for microservice applications written in Java
CN112817877B (zh) 异常脚本检测方法、装置、计算机设备和存储介质
CN112767155B (zh) 智能合约安全交易序列生成方法、装置、介质和设备
CN110719344B (zh) 域名获取方法、装置、电子设备及存储介质
CN116361793A (zh) 代码检测方法、装置、电子设备及存储介质
CN111459793B (zh) 一种全生命周期的软件自动化测试方法和装置
Xiong et al. Static taint analysis method for intent injection vulnerability in android applications
CN111191235B (zh) 可疑文件分析方法、装置和计算机可读存储介质
CN113139184A (zh) 基于静态分析的Binder通信过载漏洞的检测方法
CN116049823B (zh) 一种内存马检测方法、装置、计算机设备及存储介质
CN116881930B (zh) 一种基于orm框架的sql注入漏洞的分析方法与装置
CN112202822B (zh) 数据库注入检测方法、装置、电子设备及存储介质

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
CB02 Change of applicant information

Address after: Room 1405, 135 Wenham East Street Commercial Centre, 135 Wenham East Street, Sheung Wan, Hong Kong, China

Applicant after: XC5 Hong Kong Ltd.

Applicant after: Jianshi Technology (Shenzhen) Co.,Ltd.

Address before: 14 / F, Hong Kong tower, 8 Hennessy Road, Wanchai, Hong Kong, China

Applicant before: XC5 Hong Kong Ltd.

Applicant before: Stalemate software (Shenzhen) Co.,Ltd.

CB02 Change of applicant information
TA01 Transfer of patent application right

Effective date of registration: 20230421

Address after: LB505, Building 1, Shenye Shangcheng (South District) Commercial Complex Building, No. 5001 Huanggang Road, Lianhua Yicun Community, Huafu Street, Futian District, Shenzhen City, Guangdong Province, 518000, self-made 05B002

Applicant after: Jianshi Technology (Shenzhen) Co.,Ltd.

Address before: Room 1405, 135 Wenham East Street Commercial Centre, 135 Wenham East Street, Sheung Wan, Hong Kong, China

Applicant before: XC5 Hong Kong Ltd.

Applicant before: Jianshi Technology (Shenzhen) Co.,Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20230525

Address after: B1301, Lenovo Houhai Center, 3288 Houhaibin Road, Haizhu Community, Yuehai Street, Nanshan District, Shenzhen, Guangdong Province, 518000

Applicant after: Shenzhen Zhishi Network Technology Co.,Ltd.

Address before: LB505, Building 1, Shenye Shangcheng (South District) Commercial Complex Building, No. 5001 Huanggang Road, Lianhua Yicun Community, Huafu Street, Futian District, Shenzhen City, Guangdong Province, 518000, self-made 05B002

Applicant before: Jianshi Technology (Shenzhen) Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant