CN115600216B - 检测方法、装置、设备及存储介质 - Google Patents

检测方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN115600216B
CN115600216B CN202211378594.0A CN202211378594A CN115600216B CN 115600216 B CN115600216 B CN 115600216B CN 202211378594 A CN202211378594 A CN 202211378594A CN 115600216 B CN115600216 B CN 115600216B
Authority
CN
China
Prior art keywords
image data
data
feature vector
detected
detection
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
CN202211378594.0A
Other languages
English (en)
Other versions
CN115600216A (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 Telecom Corp Ltd
Original Assignee
China Telecom Corp 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 Telecom Corp Ltd filed Critical China Telecom Corp Ltd
Priority to CN202211378594.0A priority Critical patent/CN115600216B/zh
Publication of CN115600216A publication Critical patent/CN115600216A/zh
Application granted granted Critical
Publication of CN115600216B publication Critical patent/CN115600216B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Multimedia (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Image Analysis (AREA)

Abstract

本公开提供了一种检测方法、装置、设备及存储介质,获取待检测数据;基于待检测数据的语义信息以及执行顺序,将待检测数据转换为图像数据;基于图像数据中节点类型、节点信息和/或边类型,将图像数据转换为特征向量,其中节点以边连接;根据训练完成的检测模型对特征向量进行检测,得到检测结果。本公开能够提高检测的效率和准确度。

Description

检测方法、装置、设备及存储介质
技术领域
本公开涉及网络技术与安全领域,尤其涉及一种检测方法、装置、设备及存储介质。
背景技术
随着时代的发展,网络日渐普及。当前网络被广泛的应用于存储以信息传输。但是在随着网络应用越来越广泛,针对网络的攻击也时有发生。
相关技术中,对网络攻击进行阻止主要是对网络攻击进行检测,在检测到存在网络攻击后,对网络攻击进行排除。但是,由于在存在网络攻击后才能对网络攻击进行检测。所以相关技术中的网络攻击阻止方法存在一定的滞后性。
而网络攻击通常是真的程序中的漏洞进行攻击。在将程序中的漏洞排除掉之后,网络攻击发生的风险也对大大降低。如何对程序中的漏洞进行检测,是当前亟待解决的问题。
发明内容
本公开提供一种检测方法、装置、设备及存储介质,至少在一定程度上克服了当前对程序中的漏洞检测效率较低的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一个方面,提供一种检测方法,包括:
获取待检测数据;
基于待检测数据的语义信息以及执行顺序,将待检测数据转换为图像数据;
基于图像数据中节点类型、节点信息和/或边类型,将图像数据转换为特征向量,其中节点以边连接;
根据训练完成的检测模型对特征向量进行检测,得到检测结果。
在本公开的一个实施例中,待检测数据包括待检测的代码数据。
在本公开的一个实施例中,基于待检测数据的语义信息以及执行顺序,将待检测数据转换为图像数据,包括:
基于抽象语法树AST、数据流图和/或控制流图,根据待检测的代码数据的语义信息以及执行顺序,将待检测的代码数据转换为图像数据。
在本公开的一个实施例中,基于图像数据中节点类型、节点信息和/或边类型,将图像数据转换为特征向量,其中节点以边连接,包括:
将图像数据中的节点类型编码为第一特征向量;
根据编码模型将图像数据中的节点信息编码为第二特征向量;
将图像数据中的边类型编码为第三特征向量;
将第一特征向量、第二特征向量以及第三特征向量确定为图像数据的特征向量。
在本公开的一个实施例中,在基于图像数据中节点类型、节点信息和/或边类型,将图像数据转换为特征向量之后,方法还包括:
若待检测数据对应的图像数据有多个,则将多个图像数据中,每个图像数据对应的特征向量进行全局信息交换,得到交换后的目标特征向量;
根据训练完成的检测模型对特征向量进行检测,得到检测结果,包括:
根据训练完成的检测模型对目标特征向量进行检测,得到检测结果。
在本公开的一个实施例中,在根据训练完成的检测模型对特征向量进行检测,得到检测结果之前,方法还包括:
根据训练集对检测模型进行训练,得到训练完成的检测模型。
在本公开的一个实施例中,训练集包括历史特征向量以及历史漏洞检测结果。
根据本公开的另一个方面,提供一种检测装置,包括:
获取模块,用于获取待检测数据;
第一转换模块,用于基于待检测数据的语义信息以及执行顺序,将待检测数据转换为图像数据;
第二转换模块,用于基于图像数据中节点类型、节点信息和/或边类型,将图像数据转换为特征向量,其中节点以边连接;
检测模块,用于根据训练完成的检测模型对特征向量进行检测,得到检测结果。
在本公开的一个实施例中,待检测数据包括待检测的代码数据。
在本公开的一个实施例中,第一转换模块,包括:
第一转换单元,用于基于抽象语法树AST、数据流图和/或控制流图,根据待检测的代码数据的语义信息以及执行顺序,将待检测的代码数据转换为图像数据
在本公开的一个实施例中,第二转换模块,包括:
第二转换单元,用于将图像数据中的节点类型编码为第一特征向量;
第三转换单元,用于根据编码模型将图像数据中的节点信息编码为第二特征向量;
第四转换单元,用于将图像数据中的边类型编码为第三特征向量;
确定单元,用于将第一特征向量、第二特征向量以及第三特征向量确定为图像数据的特征向量。
在本公开的一个实施例中,检测装置还包括:
交换模块,在基于图像数据中节点类型、节点信息和/或边类型,将图像数据转换为特征向量之后,用于将多个图像数据中,每个图像数据对应的特征向量进行全局信息交换,得到交换后的目标特征向量;
检测模块,还用于根据训练完成的检测模型对目标特征向量进行检测,得到检测结果。
在本公开的一个实施例中,检测装置还包括:
训练模块,用于根据训练集对检测模型进行训练,得到训练完成的检测模型。
在本公开的一个实施例中,训练集包括历史特征向量以及历史漏洞检测结果。
根据本公开的再一个方面,提供一种电子设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行上述的检测方法。
根据本公开的又一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述的检测方法。
本公开的实施例所提供的检测方法,获取待检测数据,基于待检测数据的语义信息以及执行顺序将待检测数据转换为图像数据,然后基于图像数据中的节点类型、节点信息和/或边类型将图像数据转换为特征向量。然后根据训练完成的检测模型对特征向量进行检测,得到检测结果。基于检测模型对待检测数据中的漏洞进行检测,提高了检测的效率和准确度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本公开实施例中一种检测方法流程图;
图2示出本公开实施例中另一种检测方法流程图;
图3示出本公开实施例中再一种检测方法流程图;
图4示出本公开实施例中又一种检测方法流程图;
图5示出本公开实施例中又一种检测方法流程图;
图6示出本公开实施例中一种检测装置示意图;和
图7示出本公开实施例中一种电子设备的结构框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
随着网络攻击事件发生次数的增多,蠕虫在网络上的泛滥,信息安全逐渐成为人们关注的重点问题。信息安全中的一个核心问题就存在与计算机系统中的软件的安全漏洞。恶意攻击者可以利用这些安全漏洞提升权限,继而访问未授权的资源,甚至对敏感数据进行破坏。当前的检测辅助工具需要使用大量的诸如类型分析、指针别名分析、代码植入和动态监测等程序分析软件技术,使得当前对程序漏洞检测的效率较低。
为了解决上述问题,本公开实施例提供了一种检测方法、装置、设备及存储介质。
为了便于理解,本公开实施例首先对检测方法进行介绍。
图1示出了本公开实施例中一种检测方法流程图。
如图1所示,检测方法可以包括:
S110,获取待检测数据。
在一个实施例中,待检测数据包括代码数据。示例性的,待检测数据可以为源代码数据。
S120,基于待检测数据的语义信息以及执行顺序,将待检测数据转换为图像数据。
在一个实施例中,语义信息包括代码数据的语法和语义关系。
在一个实施例中,执行顺序可以包括代码中步骤的执行顺序。
在一个实施例中,图像数据可以包括树形图和流程图。
示例性的,图像数据可以包括以节点和边组成的图像。
S130,基于图像数据中节点类型、节点信息和/或边类型,将图像数据转换为特征向量,其中节点以边连接。
在一个实施例中,节点类型可以由多种,可以将多种节点类型中每种节点类型与特征向量建立对应关系,然后根据对应关系确定节点类型对应的特诊向量。
示例性的,节点类型有69中,例如Identifier,CallExpression,,IfStatement。
在一个实施例中,边可以对节点进行连接。
示例性的,边类型可以有12种,例如USE,DEF,CONTROLS。
在一个实施例中,节点信息可以为节点对应的源代码。
S140,根据训练完成的检测模型对特征向量进行检测,得到检测结果。
在一个实施例中,检测结果可以为源代码的检测漏洞。
需要说明的是,检测方法可以在终端设备或服务器上执行。
终端设备可以是各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机、台式计算机、可穿戴设备、增强现实设备、虚拟现实设备等。
示例性的,不同的终端设备中安装的应用程序的客户端是相同的,或基于不同操作系统的同一类型应用程序的客户端。基于终端平台的不同,该应用程序的客户端的具体形态也可以不同,比如,该应用程序客户端可以是手机客户端、PC客户端等。
服务器可以是提供各种服务的服务器,例如对用户利用终端设备所进行操作的装置提供支持的后台管理服务器。后台管理服务器可以对接收到的请求等数据进行分析等处理,并将处理结果反馈给终端设备。
可选地,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
在一个实施例中,网络用以在终端设备和服务器之间提供通信链路的介质,可以是有线网络,也可以是无线网络。
可选地,上述的无线网络或有线网络使用标准通信技术和/或协议。网络通常为因特网、但也可以是任何网络,包括但不限于局域网(Local Area Network,LAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合)。在一些实施例中,使用包括超文本标记语言(Hyper Text Mark-up Language,HTML)、可扩展标记语言(ExtensibleMarkupLanguage,XML)等的技术和/或格式来代表通过网络交换的数据。此外还可以使用诸如安全套接字层(Secure Socket Layer,SSL)、传输层安全(Transport Layer Security,TLS)、虚拟专用网络(Virtual Private Network,VPN)、网际协议安全(InternetProtocolSecurity,IPsec)等常规加密技术来加密所有或者一些链路。在另一些实施例中,还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。
本公开的实施例所提供的检测方法,获取待检测数据,基于待检测数据的语义信息以及执行顺序将待检测数据转换为图像数据,然后基于图像数据中的节点类型、节点信息和/或边类型将图像数据转换为特征向量。然后根据训练完成的检测模型对特征向量进行检测,得到检测结果。基于检测模型对待检测数据中的漏洞进行检测,提高了检测的效率和准确度。
图2示出了本公开实施例中另一种检测方法流程图。
如图2所示,另一种检测方法可以包括:
S210,获取待检测数据;
S220,基于抽象语法树AST、数据流图和/或控制流图,根据待检测的代码数据的语义信息以及执行顺序,将待检测的代码数据转换为图像数据。
在一个实施例中,抽象语法树(Abstract Syntax Tree,AST)是源代码语法结构的一种抽象表示。它以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。
在一个实施例中,可以由用户根据抽象语法书结构以及待检测的代码数据的语义信息以及执行顺序,将待检测的代码数据转换为图像数据,也可以根据预设的转换关系转换。本公开中并不对转换的方法进行限定。
在一个实施例中,数据流图(Data Flow Diagram,DFD)它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。
在一个实施例中,控制流图(Control Flow Graph,,CFG)也叫控制流程图,是一个过程或程序的抽象表现,是用在编译器中的一个抽象数据结构,由编译器在内部维护,代表了一个程序执行过程中会遍历到的所有路径。它用图的形式表示一个过程内所有基本块执行的可能流向,也能反映一个过程的实时执行过程。
在一个实施例中,AST、DFD以及CFG均可以获取待检测的代码数据的语法以语义关系。
在一个实施例中,CFG可以获取待检测的代码数据的执行顺序。
在一个实施例中,AST、DFD以及CFG可以分别将上述待检测的代码数据转换为不同的图像数据。
本公开的实施例所提供的检测方法,通过AST、DFD和或CFG将待检测代码数据转换为图像数据可以在转换的图像数据中保留待检测的代码数据的语义关系以及执行顺序。
图3示出了本公开实施例中再一种检测方法流程图。
如图3所示,检测方法可以包括:
S310,将图像数据中的节点类型编码为第一特征向量。
在一个实施例中,可以将节点类型编码为one-hot向量。
在一个实施例中,第一特征向量可以为:
tn,i∈{1,2,…,69}
其中,n表示第n个图像数据,i标识第n个图像数据的第i个节点。
S320,根据编码模型将图像数据中的节点信息编码为第二特征向量。
在一个实施例中,编码模型可以包括transformer编码模型。
在一个实施例中,节点信息可以包括节点包含的源代码。
在一个实施例中,第二特征向量可以为:
其中,其中,n表示第n个图像数据,i标识第n个图像数据的第i个节点。
则节点对应的特征向量可以为:
需要说明的是,上述实施例中的特征向量的表示,仅是示例性说明,并不对特征向量进行限定。
S330,将图像数据中的边类型编码为第三特征向量。
在一个实施例中,边类型可以有12种。
示例性的,边类型可以包括USE,DEF,CONTROLS。
S340,将第一特征向量、第二特征向量以及第三特征向量确定为图像数据的特征向量。
在一个实施例中,可以将上述第一特征向量以及第二特征向量确定为节点对应的特征向量,将第三特征向量确定为边向量。
在一个实施例中,可以以节点对应的特征向量以及边对应的特征向量确定为图像数据的特征向量。
本公开的实施例所提供的检测方法,根据节点的类型以及节点的信息分别确定节点对应的第一特征向量以及第二特征向量,然后根据边类型确定边对应的第三特征向量,然后由上述第一特征向量、第二特征向量以及第三特征向量确定为图像数据的特征向量,使得确定的图像数据的特征向量能够完整的图像数据的信息。
图4示出了本公开实施例中又一种检测方法流程图。
如图4所示,检测方法可以包括:
S410,获取待检测数据。
S420,基于待检测数据的语义信息以及执行顺序,将待检测数据转换为图像数据。
S430,若待检测数据对应的图像数据有多个,则将多个图像数据中,每个图像数据对应的特征向量进行全局信息交换,得到交换后的目标特征向量。
在一个实施例中,全局信息交换可以包括获取每个图像数据中的节点信息以及当前节点的相邻节点信息,然后将当前节点的信息与相邻节点的信息进行交换,得到交换后的信息。
示例性的,全局信息交换可以包括根据第一公式进行的全局信息交换。
示例性的,第一公式可以包括:
其中x′n,i和xn,i代表更新后和原始的节点向量,N(i)分别表示第i个节点的邻居,σ表示Sigmoid激活,g表示Softplus激活,W1,W2,b1,b2是可学习的权重。
在一个实施例中,进行全局信息交换也可以根据本领域中常规的技术进行,本公开实施例中不作具体限定。
本公开实施例中,通过将上述节点信息进行交换,可以使得不同节点的的关联性增强,使得节点包含的信息更加完整。
图5示出了本公开实施例中又一种检测方法流程图。
如图5所示,检测方法可以包括:
S510,获取待检测数据;
S520,基于待检测数据的语义信息以及执行顺序,将待检测数据转换为图像数据;
S530,基于图像数据中节点类型、节点信息和/或边类型,将图像数据转换为特征向量,其中节点以边连接;
S540,根据训练集对检测模型进行训练,得到训练完成的检测模型。
在一个实施例中,训练集包括历史特征向量以及历史漏洞检测结果。
在一个实施例中,根据训练集对检测模型进行训练还包括:
根据训练集对检测模型进行训练,在训练结果满足训练停止条件的情况下,停止训练。
在一个实施例中,训练停止条件可以包括损失函数值达到预设阈值以及训练的次数达到预设次数。
S550,根据训练完成的检测模型对特征向量进行检测,得到检测结果。
在一个实施例中,检测模型包括分层模块,漏洞分析需要一个模型来产生图级预测。典型的漏洞,如缓冲区溢出或指针解引用,通常只会在少数语句中发生,因此相关节点往往是少数。使用分层方法过滤掉不相关的节点,以使模型更多地关注节点集和更好的表示漏洞的边。具体的说,在每一层,节点对应的特征向量由CGCN模块更新,然后传递给自注意图(SAG)模块更新,该模块将删除当前图形数据中的一般节点,其余的节点将被传递到下一层。通过软注意模块读出每层末尾的图形数据,形成最终的图形数据。
在一个实施例中,在得到图形数据之后,可以将图形数据连接,输入至分类MLP。
示例性的,图像数据有三个,则
σ表示Sigmoid激活,gAST,gDFG,gCFG,代表对应的图像数据通过多类二元交叉熵损失。输出多类别漏洞的检测概率。
基于同一发明构思,本公开实施例中还提供了一种检测装置,如下面的实施例。由于该装置实施例解决问题的原理与上述方法实施例相似,因此该装置实施例的实施可以参见上述方法实施例的实施,重复之处不再赘述。
图6示出了本公开实施例中一种检测装置示意图。
如图6所示,检测装置可以包括:
获取模块610,用于获取待检测数据;
第一转换模块620,用于基于待检测数据的语义信息以及执行顺序,将待检测数据转换为图像数据;
第二转换模块630,用于基于图像数据中节点类型、节点信息和/或边类型,将图像数据转换为特征向量,其中节点以边连接;
检测模块640,用于根据训练完成的检测模型对特征向量进行检测,得到检测结果。
本公开的实施例所提供的检测装置,获取待检测数据,基于待检测数据的语义信息以及执行顺序将待检测数据转换为图像数据,然后基于图像数据中的节点类型、节点信息和/或边类型将图像数据转换为特征向量。然后根据训练完成的检测模型对特征向量进行检测,得到检测结果。基于检测模型对待检测数据中的漏洞进行检测,提高了检测的效率和准确度。
在本公开的一个实施例中,待检测数据包括待检测的代码数据。
在本公开的一个实施例中,第一转换模块,包括:
第一转换单元,用于基于抽象语法树AST、数据流图和/或控制流图,根据待检测的代码数据的语义信息以及执行顺序,将待检测的代码数据转换为图像数据。
本公开的实施例所提供的检测方法,通过AST、DFD和或CFG将待检测代码数据转换为图像数据可以在转换的图像数据中保留待检测的代码数据的语义关系以及执行顺序。
在本公开的一个实施例中,第二转换模块,包括:
第二转换单元,用于将图像数据中的节点类型编码为第一特征向量;
第三转换单元,用于根据编码模型将图像数据中的节点信息编码为第二特征向量;
第四转换单元,用于将图像数据中的边类型编码为第三特征向量;
确定单元,用于将第一特征向量、第二特征向量以及第三特征向量确定为图像数据的特征向量。
本公开的实施例所提供的检测装置,根据节点的类型以及节点的信息分别确定节点对应的第一特征向量以及第二特征向量,然后根据边类型确定边对应的第三特征向量,然后由上述第一特征向量、第二特征向量以及第三特征向量确定为图像数据的特征向量,使得确定的图像数据的特征向量能够完整的图像数据的信息。
在本公开的一个实施例中,检测装置还包括:
交换模块,在基于图像数据中节点类型、节点信息和/或边类型,将图像数据转换为特征向量之后,用于将多个图像数据中,每个图像数据对应的特征向量进行全局信息交换,得到交换后的目标特征向量;
检测模块,还用于根据训练完成的检测模型对目标特征向量进行检测,得到检测结果。
本公开实施例中,通过将上述节点信息进行交换,可以使得不同节点的的关联性增强,使得节点包含的信息更加完整。
在本公开的一个实施例中,检测装置还包括:
训练模块,用于根据训练集对检测模型进行训练,得到训练完成的检测模型。
在本公开的一个实施例中,训练集包括历史特征向量以及历史漏洞检测结果。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图7来描述根据本公开的这种实施方式的电子设备700。图7显示的电子设备700仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图7所示,电子设备700以通用计算设备的形式表现。电子设备700的组件可以包括但不限于:上述至少一个处理单元710、上述至少一个存储单元720、连接不同系统组件(包括存储单元720和处理单元710)的总线730。
其中,存储单元存储有程序代码,程序代码可以被处理单元710执行,使得处理单元710执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,处理单元710可以执行上述方法实施例的如下步骤:
获取待检测数据;
基于待检测数据的语义信息以及执行顺序,将待检测数据转换为图像数据;
基于图像数据中节点类型、节点信息和/或边类型,将图像数据转换为特征向量,其中节点以边连接;
根据训练完成的检测模型对特征向量进行检测,得到检测结果。
存储单元720可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)7201和/或高速缓存存储单元7202,还可以进一步包括只读存储单元(ROM)7203。
存储单元720还可以包括具有一组(至少一个)程序模块7205的程序/实用工具7204,这样的程序模块7205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线730可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备700也可以与一个或多个外部设备740(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备700交互的设备通信,和/或与使得该电子设备700能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口750进行。并且,电子设备700还可以通过网络适配器760与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器760通过总线730与电子设备700的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质可以是可读信号介质或者可读存储介质。其上存储有能够实现本公开上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
本公开中的计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
在本公开中,计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可选地,计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
在具体实施时,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。

Claims (10)

1.一种检测方法,其特征在于,包括:
获取待检测数据;
基于所述待检测数据的语义信息以及执行顺序,将所述待检测数据转换为图像数据;
基于所述图像数据中节点类型、节点信息和/或边类型,将所述图像数据转换为特征向量,其中节点以边连接;
根据训练完成的检测模型对所述特征向量进行检测,得到检测结果;所述检测模型包括分层模块以及分类MLP,由分层模块对所述特征向量进行过滤后输入分类MLP,得到检测结果。
2.根据权利要求1所述的检测方法,其特征在于,所述待检测数据包括待检测的代码数据。
3.根据权利要求2所述的检测方法,其特征在于,所述基于所述待检测数据的语义信息以及执行顺序,将所述待检测数据转换为图像数据,包括:
基于抽象语法树AST、数据流图和/或控制流图,根据所述待检测的代码数据的语义信息以及执行顺序,将所述待检测的代码数据转换为图像数据。
4.根据权利要求2所述的检测方法,其特征在于,所述基于所述图像数据中节点类型、节点信息和/或边类型,将所述图像数据转换为特征向量,其中节点以边连接,包括:
将所述图像数据中的节点类型编码为第一特征向量;
根据编码模型将所述图像数据中的节点信息编码为第二特征向量;
将所述图像数据中的边类型编码为第三特征向量;
将所述第一特征向量、第二特征向量以及第三特征向量确定为所述图像数据的特征向量。
5.根据权利要求1所述的检测方法,其特征在于,在所述基于所述图像数据中节点类型、节点信息和/或边类型,将所述图像数据转换为特征向量之后,所述方法还包括:
若所述待检测数据对应的图像数据有多个,则将多个图像数据中,每个图像数据对应的特征向量进行全局信息交换,得到交换后的目标特征向量;
所述根据训练完成的检测模型对所述特征向量进行检测,得到检测结果,包括:
根据训练完成的检测模型对所述目标特征向量进行检测,得到检测结果。
6.根据权利要求1所述的检测方法,其特征在于,在所述根据训练完成的检测模型对所述特征向量进行检测,得到检测结果之前,所述方法还包括:
根据训练集对所述检测模型进行训练,得到训练完成的检测模型。
7.根据权利要求6所述的检测方法,其特征在于,所述训练集包括历史特征向量以及历史漏洞检测结果。
8.一种检测装置,其特征在于,包括:
获取模块,用于获取待检测数据;
第一转换模块,用于基于所述待检测数据的语义信息以及执行顺序,将所述待检测数据转换为图像数据;
第二转换模块,用于基于所述图像数据中节点类型、节点信息和/或边类型,将所述图像数据转换为特征向量,其中节点以边连接;
检测模块,用于根据训练完成的检测模型对所述特征向量进行检测,得到检测结果;
所述检测模型包括分层模块以及分类MLP,由分层模块对所述特征向量进行过滤后输入分类MLP,得到检测结果。
9.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1~7中任意一项所述的检测方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1~7中任意一项所述的检测方法。
CN202211378594.0A 2022-11-04 2022-11-04 检测方法、装置、设备及存储介质 Active CN115600216B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211378594.0A CN115600216B (zh) 2022-11-04 2022-11-04 检测方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211378594.0A CN115600216B (zh) 2022-11-04 2022-11-04 检测方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN115600216A CN115600216A (zh) 2023-01-13
CN115600216B true CN115600216B (zh) 2024-03-22

Family

ID=84852905

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211378594.0A Active CN115600216B (zh) 2022-11-04 2022-11-04 检测方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN115600216B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112989363A (zh) * 2021-05-19 2021-06-18 北京邮电大学 漏洞定位方法、装置、电子设备和存储介质
CN112989348A (zh) * 2021-04-15 2021-06-18 中国电子信息产业集团有限公司第六研究所 攻击检测方法、模型训练方法、装置、服务器及存储介质
CN113326187A (zh) * 2021-05-25 2021-08-31 扬州大学 数据驱动的内存泄漏智能化检测方法及系统
CN115017511A (zh) * 2022-04-28 2022-09-06 武汉工程大学 一种源代码漏洞检测方法、装置以及存储介质
CN115146282A (zh) * 2022-08-31 2022-10-04 中国科学院大学 基于ast的源代码异常检测方法及其装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11444957B2 (en) * 2018-07-31 2022-09-13 Fortinet, Inc. Automated feature extraction and artificial intelligence (AI) based detection and classification of malware

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112989348A (zh) * 2021-04-15 2021-06-18 中国电子信息产业集团有限公司第六研究所 攻击检测方法、模型训练方法、装置、服务器及存储介质
CN112989363A (zh) * 2021-05-19 2021-06-18 北京邮电大学 漏洞定位方法、装置、电子设备和存储介质
CN113326187A (zh) * 2021-05-25 2021-08-31 扬州大学 数据驱动的内存泄漏智能化检测方法及系统
CN115017511A (zh) * 2022-04-28 2022-09-06 武汉工程大学 一种源代码漏洞检测方法、装置以及存储介质
CN115146282A (zh) * 2022-08-31 2022-10-04 中国科学院大学 基于ast的源代码异常检测方法及其装置

Also Published As

Publication number Publication date
CN115600216A (zh) 2023-01-13

Similar Documents

Publication Publication Date Title
CN113285945B (zh) 通信安全监控方法、装置、设备及存储介质
US20220179764A1 (en) Multi-source data correlation extraction for anomaly detection
CN115600216B (zh) 检测方法、装置、设备及存储介质
WO2021012554A1 (zh) 区块链中数据字段的更新方法、装置、介质、电子设备
CN117254946A (zh) 异常流量检测方法、装置及相关设备
CN116028917A (zh) 权限检测方法及装置、存储介质及电子设备
CN117472555A (zh) 算力资源分配方法、系统、装置、设备及存储介质
CN115794494A (zh) 基于动态策略的数据备份方法、系统、装置、设备及介质
CN114595474A (zh) 联邦学习建模优化方法、电子设备、介质及程序产品
CN112000491A (zh) 一种应用程序接口调用方法、装置、设备和存储介质
CN115801447B (zh) 基于工业安全的流量解析方法、装置与电子设备
CN116881974B (zh) 基于数据获取请求的数据处理方法、装置和电子设备
CN115795119B (zh) 触觉特征信息获取方法、装置、系统、设备及介质
CN114710354B (zh) 异常事件检测方法及装置、存储介质及电子设备
CN118157998B (zh) 电力网络流量异常检测方法、装置、设备及介质
CN114765634B (zh) 网络协议识别方法、装置、电子设备及可读存储介质
CN116955277A (zh) 数据处理方法、装置、设备及存储介质
CN116108479A (zh) 一种数据处理方法、程序、装置、介质、电子设备
CN118262393A (zh) 人脸识别方法、装置、系统、设备及存储介质
CN116107426A (zh) 手势识别方法、装置、电子设备及计算机可读存储介质
CN117591982A (zh) 校验方法、系统、装置、设备及存储介质
CN117424837A (zh) 网络流量检测方法、装置、电子设备及存储介质
CN118377960A (zh) Apt组织资产的拓线方法、装置、电子设备及存储介质
CN117009782A (zh) 数据向量化处理方法、装置、电子设备及存储介质
CN117033318A (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
GR01 Patent grant
GR01 Patent grant