CN115374927A - 一种神经网络模型训练的方法、异常检测的方法及设备 - Google Patents

一种神经网络模型训练的方法、异常检测的方法及设备 Download PDF

Info

Publication number
CN115374927A
CN115374927A CN202110552611.7A CN202110552611A CN115374927A CN 115374927 A CN115374927 A CN 115374927A CN 202110552611 A CN202110552611 A CN 202110552611A CN 115374927 A CN115374927 A CN 115374927A
Authority
CN
China
Prior art keywords
sql
access
neural network
network model
statement
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.)
Pending
Application number
CN202110552611.7A
Other languages
English (en)
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202110552611.7A priority Critical patent/CN115374927A/zh
Publication of CN115374927A publication Critical patent/CN115374927A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Quality & Reliability (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种神经网络模型训练的方法以及异常检测的方法,涉及人工智能AI技术领域,该方案中,神经网络模型在训练过程中使用同一会话的与用户访问行为相关的SQL语句的上文信息和/或下文信息进行训练,使得训练好的模型就能得到更全面的特征表征。这样,该训练好的神经网络模型用于异常检测的过程中检测的就会更全面,从而提高了对数据库异常访问检测的覆盖率和精准度,极大的减少了误报和漏报。

Description

一种神经网络模型训练的方法、异常检测的方法及设备
技术领域
本申请涉及人工智能(artificial intelligence,AI)技术领域,具体涉及一种神经网络模型训练的方法、异常检测的方法及设备。
背景技术
异常检测技术广泛应用于对网络入侵、系统安全、金融欺诈事件等的检测,它一直是学术界和工业界的一个研究热点。但是目前对数据库(database,DB)领域的异常检测研究并不多,目前业界普遍采用基于人工规则的方式来检测数据库的异常。
基于人工规则的方式,能够检测出数据库中简单的异常访问行为,但是手工提取特征的过程较为繁琐且提取的特征不够全面,导致最终的检测效果不好,存在大量误报和漏报。
发明内容
本申请实施例提供一种神经网络模型训练的方法、异常检测的方法及设备,用于提高对数据库的异常访问检测的覆盖率和精准度。本申请实施例还提供了相应的系统、计算机可读存储介质及计算机程序产品等。
本申请第一方面提供一种神经网络模型训练的方法,包括:获取访问数据库的历史访问记录,其中,历史访问记录用于记录用户通过多个会话访问数据库的行为信息;基于历史访问记录确定多个结构化查询语言SQL语句序列,其中,每个SQL语句序列包含归属于同一会话的用于访问数据库的多条SQL语句,归属于同一会话的多条SQL语句中的每条SQL语句为其他SQL语句的上文信息或/和下文信息;根据多个SQL语句序列构造多条样本序列;基于多条样本序列对第一神经网络模型进行训练,以得到第二神经网络模型。
本申请中的神经网络模型可以采用python和tensorflow机器学习框架搭建的模型。该神经网络的结构可以是深度神经网络,也可以是卷积神经网络。
本申请中的数据库指的是用于存储应用数据的数据库,为各种类型的应用提供服务。用户可以通过客户端发起会话,从数据库获取应用数据。
一个会话指的是用户从一次登录到退出的过程。如:一次从A地到B地的导航服务,从开始导航到结束导航为一个会话。在一个会话中,会多次访问数据库,就会产生多条访问记录,如:在一次导航过程中,随着导航设备的移动,会不断访问数据库,以便获取到最新的数据,导航设备每次访问数据库,计算机设备都会记录一条访问记录。这些访问记录通常记录在日志文件中,可以从日志文件中获取这些历史访问记录。
本申请中的历史访问记录是工程人员收集的正常访问的记录。
本申请中,每个会话都会有一个唯一的会话标识,将同一会话标识的SQL语句汇聚成一个SQL序列,同一SQL序列中的每条SQL语句为同一会话的SQL序列中其他SQL语句的上文信息或/和下文信息。上文信息指的是在本条SQL语句之前执行的SQL语句,下文信息指的是在本条SQL语句之后执行的SQL语句。同一SQL序列中的第一条SQL语句为该SQL序列中在后SQL语句的上文信息,该第一条SQL语句没有下文信息。同一SQL序列中的最后一条SQL语句为该SQL序列中在前SQL语句的下文信息,该最后一条SQL语句没有上文信息。该SQL序列中除掉第一SQL语句和最后一条SQL语句的中间SQL语句都既有上文信息又有下文信息,同时,这些中间SQL语句也即作为在前SQL语句的下文信息,也作为在后SQL语句的上文信息。
本申请中,归属于同一会话的多条SQL语句可以是历史访问记录中归属于同一会话的所有SQL语句,当然,也可以是归属于同一会话部分SQL语句。
该第一方面,在模型训练的过程中,将涉及用户访问行为的SQL语句的上文信息和下文信息都用到了模型训练中,这样训练好的模型就能得到更全面的特征表征,这样在异常检测阶段,就可以提高对数据库异常访问检测的覆盖率和精准度。
在第一方面的一种可能的实现方式中,上述步骤:根据多个SQL语句序列构造多条样本序列:对归属于同一会话的多条SQL语句进行数值化处理,以将多条SQL语句中的每条语句数值化为全局唯一的键值,归属于同一会话的多条SQL语句的键值组成同一会话对应的样本序列。
该种可能的实现方式中,样本序列可以就是SQL序列,也可以是对SQL序列进行转换后得到的序列,如:对归属于同一会话的多条SQL语句进行数值化处理,将多条SQL语句中的每条语句数值化为全局唯一的键值,并建立一个键值到SQL语句的映射字典,该映射字典用于后续的键值化过程。归属于同一会话的多条SQL语句的键值组成同一会话对应的样本序列。如:通过查找映射字典,第一个SQL语句的键值为10,将第二个SQL语句的键值为2,第三个SQL语句的键值为28等,此会话转换为(10,2,28)。当然,本申请不限定数值化的形式,这样,就可以通过一串数值化的序列对模型进行训练。当然,本申请不限定数值化的形式,这样,就可以通过一串数值化的序列对模型进行训练。该种可能的实现方式,将SQL序列数值化后再进行模型训练,可以提高模型训练的效率。
在第一方面的一种可能的实现方式中,上述步骤:基于多条样本序列对第一神经网络模型进行训练之前,该方法还包括:删除归属于同一会话的SQL序列中每条SQL语句中的位置信息,位置信息指示每条SQL语句在归属于同一会话的SQL序列的多条SQL语句的执行顺序。
该种可能的实现方式中,如果按照固定的SQL语句的顺序来训练模型,那么训练好的模型在做异常检测时,必然也对数据的顺序性有严格要求,而实际上,用户访问行为通常灵活多变,为了提高模型的灵活度,本申请中,删除了用于表示执行顺序的位置信息,放松了对SQL语句顺序的约束,从而可以训练得到更灵活的用于异常检测的模型。
在第一方面的一种可能的实现方式中,该方法还包括:从历史访问记录中确定访问行为属性符合正常行为的安全数据;根据安全数据配置安全规则,安全规则包括访问行为属性符合正常行为应满足的条件。
该种可能的实现方式中,安全规则可以包括:(1)、客户端的地址应该属于应用程序服务器的地址;(2)、用户发起访问请求的地址应该是该用户以往用过的地址;(3)、用户请求访问的数据库应该是该用户以往访问过的数据库;(4)用户在一个会话里访问的时间间隔应该是服从正态分布或者泊松分布。以上四条安全规则也可以理解为访问行为属性符合正常行为应满足的条件,如果一条不满足,就可以确认为不符合安全规则。安全数据指的是对客户端的地址、应用程序服务器的地址、用户发起访问请求的地址、用户请求访问的数据库等这些确认为正常的数据的记录。通过配置安全规则,可以进一步提高异常检测的覆盖率。
在第一方面的一种可能的实现方式中,上述步骤:基于多条样本序列对第一神经网络模型进行训练,包括:针对多条样本序列中的每条样本序列,按照每条样本序列中SQL语句对应的访问时间对第一神经网络模型进行训练,SQL语句对应的访问时间为用户通过SQL语句访问数据库的时间,在使用第一访问时间的SQL语句训练第一神经网络模型时,屏蔽第二访问时间的SQL语句,第二访问时间晚于第一访问时间。
该种可能的实现方式中,注意力机制可以理解为:一个注意力函数可以描述为将Query与一组键值对(Key-Value)映射到输出,其中Query、Key、Value和输出都是向量。输出可以通过值的加权和计算得出,其中分配到每一个值的权重可通过Query和对应Key的适应度函数(compatibility function)计算。在注意力机制中通过query和key计算注意力权重时,屏蔽来自下一访问时间的key,也就是下一访问时间的SQL语句,可以防止模型提前嵌入了预测目标的信息,有利于模型的学习。也就是说,本申请中,会按照每条SQL语句的访问时间先采用在先访问时间的SQL语句训练模型,然后再使用在后访问时间的SQL语句训练模型,从而防止模型提前嵌入了预测目标的信息,有利于模型的学习。
在第一方面的一种可能的实现方式中,第一神经网络模型的目标损失函数包括三元组损失函数和交叉熵损失函数;三元组损失函数包含输出参数、正标签参数和负标签参数,交叉熵损失函数包含输出参数和正标签参数,正标签参数用于指示正常访问行为,负标签参数用于指示异常访问行为;三元组损失函数的训练目标约束了输出参数与正标签参数的相对距离,以及输出参数与负标签参数的相对距离;交叉熵损失函数的训练目标约束了输出参数与正标签参数的绝对距离。
该种可能的实现方式中,通过对三元组损失函数和交叉熵损失函数的约束,可以提高模型训练的效率。
本申请第二方面提供一种异常检测的方法,包括:从数据库的访问记录中获取用于访问数据库的目标结构化查询语言SQL语句;确定与目标SQL语句归属于同一会话的历史SQL语句;将历史SQL语句输入目标神经网络模型,以预测历史SQL语句中的正常语句集合,正常语句集合包括当前时刻预测为访问行为正常的语句,目标神经网络模型是基于多条样本序列训练得到的,多条样本序列是基于多个SQL语句序列构建的,每个SQL序列包含归属于同一会话的多条SQL语句,归属于同一会话的多条SQL语句中的每条SQL语句为其他SQL语句的上文信息或/和下文信息;若目标SQL语句未包含于正常语句集合中,则确定访问记录对应的访问行为异常。
本申请中,数据库的访问记录可以是正在对数据库进行访问的客户端本次会话中当前所产生的访问记录。因为同一会话会产生多个SQL语句,该同一会话,在目标SQL语句之前产生的SQL语句都可以称为该目标SQL语句的历史SQL语句。目标神经网络模型可以为上述第一方面中的第二神经网络模型,该目标神经网络模型是采用正常SQL语句训练得到的,所以,将历史SQL语句输入目标神经网络模型后就可以得到一个当前时刻的正常语句集合。不同时刻预测得到的正常语句集合可能相同,也可能不相同,这样,就可以通过确认该目标SQL语句是否位于该正常语句集合中来确定该目标SQL语句是正常还是异常,从而确定对应的访问行为是正常还是异常。
该第二方面,因为所使用的目标神经网络模型是采用涉及用户访问行为的SQL语句的上文信息和下文信息训练得到的,该模型可以得到更全面的特征表征,这样在异常检测阶段,就可以提高对数据库的异常访问检测的覆盖率和精准度。
在第二方面的一种可能的实现方式中,该方法还包括:从访问记录中获取访问行为属性;根据访问行为属性,以及安全规则对访问记录进行过滤,安全规则包括访问行为属性符合正常行为应满足的条件;若访问行为属性不符合正常行为,则确定访问记录对应的访问行为异常;若访问行为属性符合正常行为,则执行确定与目标SQL语句归属于同一会话的历史SQL语句的步骤。
该种可能的实现方式中,关于通过安全规则过滤,可以是通过待检测的访问记录的访问行为属性,如:用户名、客户端的互联网协议(internet protocol,IP)地址、访问时间,以及所访问的数据库等与上述第一方面的可能的实现方式中所列举安全规则应满足的四个条件逐一进行比对,若满足上述四个条件,则确认该待检测的访问记录没有异常,可以输入到目标神经网络模型中进行进一步检测,若该待检测的访问记录的访问行为属性不满足上述安全规则的四个条件中的任意一条,则确认该待检测的访问记录异常,输出给安全员进行检测。这种通过安全规则先进行一次检测的方式,可以提高异常检测的覆盖率。
在第二方面的一种可能的实现方式中,该方法还包括:根据检测出的假阳数据更新安全规则,假阳数据为从计算机设备输出的异常访问中被确认为正常的访问。
该种可能的实现方式中,周期性更新安全规则可以进一步提高异常检测的精准度。
在第二方面的一种可能的实现方式中,该方法还包括:根据假阳数据更新目标神经网络模型。
该种可能的实现方式中,周期性更新目标神经网络模型可以进一步提高异常检测的精准度。
本申请第三方面,提供了一种计算机设备,用于执行上述第一方面或第一方面的任意可能的实现方式中的方法。具体地,该计算机设备包括用于执行上述第一方面或第一方面的任意可能的实现方式中的方法的模块或单元,如:获取单元、确定单元、第一处理单元和第二处理单元。
本申请第四方面,提供了一种计算机设备,用于执行上述第二方面或第二方面的任意可能的实现方式中的方法。具体地,该计算机设备包括用于执行上述第二方面或第二方面的任意可能的实现方式中的方法的模块或单元,如:获取单元、确定单元、第一处理单元和第二处理单元。
本申请第五方面提供一种计算机设备,该计算机设备包括处理器、内存和存储有计算机程序的计算机可读存储介质;处理器与计算机可读存储介质耦合,处理器上运行的计算机执行指令,当计算机执行指令被处理器执行时,处理器执行如上述第一方面或第一方面任意一种可能的实现方式的方法。可选地,该计算机设备还可以包括输入/输出(input/output,I/O)接口,该存储有计算机程序的计算机可读存储介质可以是存储器。
本申请第六方面提供一种计算机设备,该计算机设备包括处理器、内存和存储有计算机程序的计算机可读存储介质;处理器与计算机可读存储介质耦合,处理器上运行的计算机执行指令,当计算机执行指令被处理器执行时,处理器执行如上述第二方面或第二方面任意一种可能的实现方式的方法。可选地,该计算机设备还可以包括输入/输出(input/output,I/O)接口,该存储有计算机程序的计算机可读存储介质可以是存储器。
本申请第七方面提供一种存储一个或多个计算机执行指令的计算机可读存储介质,当计算机执行指令被处理器执行时,处理器执行如上述第一方面或第一方面任意一种可能的实现方式的方法。
本申请第八方面提供一种存储一个或多个计算机执行指令的计算机可读存储介质,当计算机执行指令被处理器执行时,处理器执行如上述第二方面或第二方面任意一种可能的实现方式的方法。
本申请第九方面提供一种存储一个或多个计算机执行指令的计算机程序产品,当计算机执行指令被处理器执行时,处理器执行如上述第一方面或第一方面任意一种可能的实现方式的方法。
本申请第十方面提供一种存储一个或多个计算机执行指令的计算机程序产品,当计算机执行指令被处理器执行时,处理器执行如上述第二方面或第二方面任意一种可能的实现方式的方法。
本申请第十一方面提供了一种芯片系统,该芯片系统包括至少一个处理器和接口,该接口用于接收数据和/或信号,至少一个处理器用于支持计算机设备实现上述第一方面或第一方面任意一种可能的实现方式中所涉及的功能。在一种可能的设计中,芯片系统还可以包括存储器,存储器,用于保存计算机设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
本申请第十二方面提供了一种芯片系统,该芯片系统包括至少一个处理器和接口,该接口用于接收数据和/或信号,至少一个处理器用于支持计算机设备实现上述第二方面或第二方面任意一种可能的实现方式中所涉及的功能。在一种可能的设计中,芯片系统还可以包括存储器,存储器,用于保存计算机设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
本申请实施例,在模型训练的过程中,将涉及用户访问行为的SQL语句的上文信息和下文信息都用到了模型训练中,这样训练好的模型就能得到更全面的特征表征,这样在异常检测阶段,就可以提高对数据库异常访问检测的覆盖率和精准度。
附图说明
图1是一种人工智能主体框架示意图;
图2是本申请实施例提供的系统架构的一示意图;
图3是卷积神经网络的一结构示意图;
图4是卷积神经网络的另一结构示意图;
图5是本申请实施例提供的系统架构的另一示意图;
图6是本申请实施例提供的神经网络模型训练的方法的一实施例示意图;
图7是本申请实施例提供的异常检测的方法的一实施例示意图;
图8是本申请实施例提供的异常检测的方法的另一实施例示意图;
图9是本申请实施例提供的模型训练和异常检测的一场景示意图;
图10是本申请实施例提供的计算机设备的一结构示意图;
图11是本申请实施例提供的计算机设备的另一结构示意图;
图12是本申请实施例提供的计算机设备的另一结构示意图;
图13是本申请实施例提供的计算机设备的另一结构示意图。
具体实施方式
下面结合附图,对本申请的实施例进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着技术发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例提供一种神经网络模型训练的方法、异常检测的方法及设备,用于提高对数据库的异常访问检测的覆盖率和精准度。本申请实施例还提供了相应的系统、计算机可读存储介质及计算机程序产品等。以下分别进行详细说明。
人工智能(artificial intelligence,AI)是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
图1是一种人工智能主体框架示意图,该主体框架描述了人工智能系统总体工作流程,适用于通用的人工智能领域需求。
下面从“智能信息链”(水平轴)和“IT价值链”(垂直轴)两个维度对上述人工智能主题框架进行阐述。
“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。
“IT价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。
(1)基础设施:
基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。通过传感器与外部沟通;计算能力由智能芯片(中央处理器(centralprocessing unit,CPU)、神经网络处理器(network processing unit,NPU)、图形处理器(graphic processing unit GPU)、专用集成电路(application specific integratedcircuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)等硬件加速芯片)提供;基础平台包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。举例来说,传感器和外部沟通获取数据,这些数据提供给基础平台提供的分布式计算系统中的智能芯片进行计算。
(2)数据
基础设施的上一层的数据用于表示人工智能领域的数据来源。数据涉及到图形、图像、语音、文本,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。
(3)数据处理
数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等方式。
其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。
推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。
决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
(4)通用能力
对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。
(5)智能产品及行业应用
智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能制造、智能交通、智能家居、智能医疗、智能安防、自动驾驶、智慧城市、智能终端、智能营销、智慧城市以及智能客服等。
无论是在人工智能的哪种应用中,都会涉及到神经网络模型,例如:深度神经网络(deep neural networks,DNN)模型或卷积神经网络(convolutional neuron network,CNN)模型。使用不同领域或业务场景的样本数据对初始神经网络模型进行训练,就可得到适用于该业务场景的目标神经网络模型。该样本数据可以是图像数据、语音数据或文本数据等,该样本数据的类型依据该神经网络模型所适用的领域来确定。例如:该神经网络模型用于自动驾驶领域时,该样本数据可以为交通场景中的各种图像数据,如:自动驾驶车辆周围建筑物的图像、行人的图像、周围车辆的图像、地面标识的图像和交通灯的图像等。该神经网络模型用于智能安防或智慧城市时,该样本数据可以为城市的各种图像数据,如:城市各街区的图像。该神经网络模型用于其他业务场景时,该样本数据则为相应业务场景的图像、音频或文本等类型的数据。该神经网络模型的训练过程可以在图2所示的系统架构200中进行。
参阅图2,本申请实施例提供了一种系统架构200。数据采集设备260用于采集用于神经网络模型训练的样本数据并存入数据库230,该样本数据可以参阅上一段对样本数据的介绍进行理解,此处不再重复描述。训练设备220基于数据库230中维护的样本数据生成目标神经网络模型/规则201。下面将更详细地描述训练设备220如何基于样本数据得到目标神经网络模型/规则201,目标神经网络模型/规则201例如能够指导自动驾驶车辆自动行驶或自动识别不安全因素等。
深度神经网络模型中的每一层的工作可以用数学表达式y=a(W.x+b)来描述。其中,W是权重向量,该向量中的每一个值表示该层神经网络中的一个神经元的权重值。该向量W决定着上文所述的输入空间到输出空间的空间变换,即每一层的权重W控制着如何变换空间。训练深度神经网络模型的目的,也就是最终得到训练好的神经网络的所有层的权重矩阵(由很多层的向量W形成的权重矩阵)。因此,神经网络模型的训练过程本质上就是学习控制空间变换的方式,更具体的就是学习权重矩阵。
“神经网络模型的预测值和目标值之间的差异”,这便是损失函数(lossfunction)或目标函数(objective function)。
训练设备220得到的目标神经网络模型/规则可以应用不同的系统或设备中。在图2中,执行设备210配置有I/O接口212,与外部设备进行数据交互,“用户”可以通过客户设备240向I/O接口212输入数据。
执行设备210可以调用数据存储系统250中的数据、代码等,也可以将数据、指令等存入数据存储系统250中。
计算模块211使用目标神经网络模型/规则201对输入的数据进行处理,例如:在自动驾驶领域,该目标神经网络模型/规则201从交通场景的图像数据中识别出自动行驶过程中的障碍物等。
最后,I/O接口212将处理结果返回给客户设备240,提供给用户。
更深层地,训练设备220可以针对不同的目标,基于不同业务场景的样本数据生成相应的目标神经网络模型/规则201,以给用户提供更佳的结果。
值得注意的,图2仅是本申请实施例提供的一种系统架构的示意图,图2中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在图2中,数据存储系统250相对执行设备210是外部存储器,在其它情况下,也可以将数据存储系统250置于执行设备210中。
该系统架构200可以部署在服务器、虚拟机以及终端设备等计算机设备上。例如,终端设备可以是手机(mobile phone)、平板电脑(pad)、带无线收发功能的电脑、虚拟现实(virtual reality,VR)终端、增强现实(augmented reality,AR)终端、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、远程医疗(remote medical)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等。
卷积神经网络模型也可以简称为卷积神经网络,是一种带有卷积结构的深度神经网络,是一种深度学习(deep learning)架构,深度学习架构是指通过机器学习的算法,在不同的抽象层级上进行多个层次的学习。作为一种深度学习架构,CNN是一种前馈(feed-forward)人工神经网络,该前馈人工神经网络中的各个神经元对输入其中的图像中的重叠区域作出响应。
如图3所示,卷积神经网络(CNN)100可以包括输入层110,卷积层/池化层120,其中池化层为可选的,以及神经网络层130。
卷积层/池化层120:
卷积层:
如图3所示卷积层/池化层120可以包括如示例121-126层,在一种实现中,121层为卷积层,122层为池化层,123层为卷积层,124层为池化层,125为卷积层,126为池化层;在另一种实现方式中,121、122为卷积层,123为池化层,124、125为卷积层,126为池化层。即卷积层的输出可以作为随后的池化层的输入,也可以作为另一个卷积层的输入以继续进行卷积操作。
以卷积层121为例,卷积层121可以包括很多个卷积算子,卷积算子也称为核,其在图像处理中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器,卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义。
这些权重矩阵中的权重值在实际应用中需要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以从输入图像中提取信息,从而帮助卷积神经网络模型100进行正确的预测。
池化层:
由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层,即如图3中120所示例的121-126各层,可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。在图像处理过程中,池化层的唯一目的就是减少图像的空间大小。
神经网络层130:
在经过卷积层/池化层120的处理后,卷积神经网络模型100还不足以输出所需要的输出信息。因为如前所述,卷积层/池化层120只会提取特征,并减少输入图像带来的参数。然而为了生成最终的输出信息(所需要的类信息或别的相关信息),卷积神经网络模型100需要利用神经网络层130来生成一个或者一组所需要的类的数量的输出。因此,在神经网络层130中可以包括多层隐含层(如图3所示的131、132至13n)以及输出层140,该多层隐含层中所包含的参数可以根据具体的任务类型的相关训练数据进行预先训练得到,例如该任务类型可以包括图像识别,图像分类,图像超分辨率重建等。
在神经网络层130中的多层隐含层之后,也就是整个卷积神经网络模型100的最后层为输出层140。该输出层140具有类似分类交叉熵的损失函数,具体用于计算预测误差,一旦整个卷积神经网络模型100的前向传播(如图3由110至140的传播为前向传播)完成,反向传播(如图3由140至110的传播为反向传播)就会开始更新前面提到的各层的权重值以及偏差,以减少卷积神经网络模型100的损失及卷积神经网络模型100通过输出层输出的结果和理想结果之间的误差。
需要说明的是,如图3所示的卷积神经网络模型100仅作为一种卷积神经网络模型的示例,在具体的应用中,卷积神经网络模型还可以以其他网络模型的形式存在,例如,如图4所示的多个卷积层/池化层并行,将分别提取的特征均输入给全神经网络层130进行处理。
上述图3和图4所示的基于卷积神经网络模型的算法可以在NPU芯片中实现。
由上述介绍可知,无论是深度神经网络模型还是卷积神经网络模型都包括权重。实际上,神经网络模型的训练过程就是通过多次迭代不断更新神经网络模型中权重的过程,在模型训练过程中,每次迭代都会使用样本数据计算本次迭代的损失函数,然后对损失函数进行一阶优化得到一阶梯度,然后在一阶梯度的基础上再进行进一步的附加优化,例如:在一阶梯度的基础上再进一步进行二阶优化,从而得到本次迭代的更新权重,然后使用本次迭代的更新权重进行模型更新,再在本次迭代更新了权重之后的模型基础上进行下一次迭代,直到完成神经网络模型的整个训练过程。
基于上述图1至图4所介绍的系统架构以及神经网络模型,本申请实施例提供一种神经网络模型训练的方法,通过本申请训练得到的神经网络模型可以用于对数据库访问的异常检测,具体过程可以参阅图5进行理解。
如图5所示,在模型训练阶段,第一计算机设备可以从用于存储会话与历史访问记录对应关系的存储设备中获取多个会话对数据库的历史访问记录。然后使用多个会话对数据库的历史访问记录对第一神经网络模型进行训练,从而得到第二神经网络模型,模型训练阶段可以是离线进行的,也可以周期性的重新训练或更新该第一神经网络模型,得到更优的第二神经网络模型。
模型训练阶段训练得到的第二神经网络模型可以应用于异常检测阶段,该第二神经网络模型可以存储与第二计算设备中。在异常检测阶段,客户端可以通过数据库管理系统(database management system,DBMS)访问存储有应用数据的数据库。客户端发起一次会请求与DBMS建立会话连接,DBMS会为本次会话多次向数据库发送访问请求,为本次会话从数据库获取多次数据。如:客户端所请求的是一次导航服务,DBMS会随着客户端位置的变化,多次从数据库获取不同的导航数据。DBMS每向数据库发送一次访问请求,都会向第二计算机设备发送一次待检测的访问记录,该第二计算机设备会使用第二神经网络模型对待检测的访问记录进行异常检测,若检测出异常,则会输出报警提示。
上述图5中的第一计算机设备或第二计算机设备可以是服务器、终端设备或虚拟机。
下面对模型训练的过程和异常检测的过程分别进行介绍。
如图6所示,本申请实施例提供的神经网络模型训练的方法的一实施例包括:
301.计算机设备获取访问数据库的历史访问记录。
其中,其中,历史访问记录用于记录用户通过多个会话访问数据库的行为信息。每个会话对应多条历史访问记录,每条历史访问记录包含对数据库访问行为的结构化查询(structured query language,SQL)语句,每条历史访问记录中还可以包括用户访问行为属性。
户访问行为属性可以包括客户端的会话标识(如:会话号)、用户名、客户端的互联网协议(internet protocol,IP)地址、访问时间,以及所访问的数据库等。
本申请中的数据库指的是用于存储应用数据的数据库,为各种类型的应用提供服务。用户客户通过客户端发起会话,从数据库获取应用数据。
一个会话指的是用户从一次登录到退出的过程。如:一次从A地到B地的导航服务,从开始导航到结束导航为一个会话。在一个会话中,会多次访问数据库,就会产生多条访问记录,如:在一次导航过程中,随着导航设备的移动,会不断访问数据库,以便获取到最新的数据,导航设备每次访问数据库,本申请中的计算机设备都会记录一条访问记录。这些访问记录通常记录在日志文件中,可以从日志文件中获取这些历史访问记录。
本申请中的历史访问记录是工程人员收集的正常访问的记录。
SQL可以指代各种类型的数据相关语言,包括例如数据定义语言和数据操纵语言,其中SQL的范围可以包括数据插入,查询,更新和删除,模式创建和修改以及数据访问控制。此外,在一些示例中,SQL可以包括与各种语言元素相关的描述,包括子句(clause),表达式(expression),谓词(predicate)和查询语句(Query statement),查询语句通常也简称为“查询(query)”。例如,子句可以指语句和查询的各种组成部分,并且在一些情况下,子句可以被认为是可选的。此外,表达式可以被配置为产生包括数据列和/或行的标量值(scalarvalue)和/或表。另外,谓词可经配置以指定条件,以用于调节语句和查询的效果。
查询语句是请求查看,访问和/或操纵存储在数据库中的数据。数据库管理系统可以从客户端接收SQL格式的查询(称为SQL查询)。该SQL查询也可以称为SQL语句。通常,数据库管理系统通过从数据库访问相关数据并操纵相关数据以生成查询所对应的查询结果,并将查询结果返回到客户端。数据库是按一定的数学模型组织、描述和存储的数据集合,数据库可以包括一个或多个数据库结构或格式,例如行存储和列存储。数据库通常存储于数据存储器中,比如外部数据存储器,或者非瞬态计算机可读介质。
302.计算机设备基于历史访问记录确定多个结构化查询语言SQL语句序列。
其中,每个SQL语句序列包含归属于同一会话的用于访问数据库的多条SQL语句,归属于同一会话的多条SQL语句中的每条SQL语句为其他SQL语句的上文信息或/和下文信息。
计算机设备可以通过与预处理,按照日志文件中记录的标准格式对日志文件进行解析获取用户访问行为属性,以及SQL语句。
本申请中,每个会话都会有一个唯一的会话标识,将同一会话标识的SQL语句汇聚成一个SQL序列,同一SQL序列中的每条SQL语句互为同一会话的SQL序列中其他SQL语句的上文信息或/和下文信息。上文信息指的是在本条SQL语句之前执行的SQL语句,下文信息指的是在本条SQL语句之后执行的SQL语句。
同一SQL序列中的第一条SQL语句为该SQL序列中在后SQL语句的上文信息,该第一条SQL语句没有下文信息。同一SQL序列中的最后一条SQL语句为该SQL序列中在前SQL语句的下文信息,该最后一条SQL语句没有上文信息。该SQL序列中除掉第一SQL语句和最后一条SQL语句的中间SQL语句都既有上文信息又有下文信息,同时,这些中间SQL语句也即作为在前SQL语句的下文信息,也作为在后SQL语句的上文信息。
本申请中,归属于同一会话的多条SQL语句可以是历史访问记录中归属于同一会话的所有SQL语句,当然,也可以是归属于同一会话部分SQL语句。
可选地,本申请中,样本序列可以就是SQL序列,也可以是对SQL序列进行转换后得到的序列,如:对归属于同一会话的多条SQL语句进行数值化处理,将多条SQL语句中的每条语句数值化为全局唯一的键值,并建立一个键值到SQL语句的映射字典,该映射字典用于后续的键值化过程。归属于同一会话的多条SQL语句的键值组成同一会话对应的样本序列。如:通过查找映射字典,第一个SQL语句的键值为10,将第二个SQL语句的键值为2,第三个SQL语句的键值为28等,此会话转换为(10,2,28)。当然,本申请不限定数值化的形式,这样,就可以通过一串数值化的序列对模型进行训练。
303.计算机设备根据多个SQL语句序列构造多条样本序列。
其中,多条样本序列与多条SQL序列一一对应,多条SQL序列与多个会话一一对应。
304.计算机设备基于多条样本序列对第一神经网络模型进行训练,以得到第二神经网络模型。
从第一神经网络模型训练得到第二神经网络模型的过程就是通过不断迭代,使神经网络模型中的目标函数收敛的过程,该过程可以参阅前述图1至图4部分的相应介绍进行理解,此处不再重复赘述。
本申请实施例的第一神经网络模型和第二神经网络模型可以是基于注意力机制的上下文异常检测(contextual anomaly detection,CAD)神经网络模型,模型的任务是基于历史SQL语句来预测下一时刻可能为正常的SQL语句。
本申请中的第一神经网络模型可以采用python和tensorflow机器学习框架搭建的模型。该神经网络的结构可以是深度神经网络,也可以是卷积神经网络。
本申请实施例中,在模型训练的过程中,将涉及用户访问行为的SQL语句的上文信息和下文信息都用到了模型训练中,这样训练好的模型就能得到更全面的特征表征,这样在异常检测阶段,就可以提高对数据库异常访问检测的覆盖率和精准度。
可选地,基于多条样本序列对第一神经网络模型进行训练之前,该方法还包括:删除归属于同一会话的SQL序列中每条SQL语句中的位置信息,该位置信息指示每条SQL语句在归属于同一会话的SQL序列的多条SQL语句的执行顺序。
本申请实施例中,如果按照固定的SQL语句的顺序来训练模型,那么训练好的模型在做异常检测时,必然也对数据的顺序性有严格要求,而实际上,用户访问行为通常灵活多变,为了提高模型的灵活度,本申请中,删除了用于表示执行顺序的位置信息,放松了对SQL语句顺序的约束,从而可以训练得到更灵活的用于异常检测的模型。
可选地,上述步骤304中,基于多条样本序列对第一神经网络模型进行训练,包括:针对多条样本序列中的每条样本序列,按照每条样本序列中SQL语句对应的访问时间对第一神经网络模型进行训练,SQL语句对应的访问时间为用户通过SQL语句访问数据库的时间,在使用第一访问时间的SQL语句训练第一神经网络模型时,屏蔽第二访问时间的SQL语句,第二访问时间晚于第一访问时间。
本申请实施例中,注意力机制可以理解为:一个注意力函数可以描述为将Query与一组键值对(Key-Value)映射到输出,其中Query、Key、Value和输出都是向量。输出可以通过值的加权和计算得出,其中分配到每一个值的权重可通过Query和对应Key的适应度函数(compatibility function)计算。在注意力机制中通过query和key计算注意力权重时,屏蔽来自下一访问时间的key,也就是下一访问时间的SQL语句,可以防止模型提前嵌入了预测目标的信息,有利于模型的学习。
可选地,本申请实施例中,第一神经网络模型的目标损失函数包括三元组损失函数和交叉熵损失函数;三元组损失函数包含输出参数、正标签参数和负标签参数,交叉熵损失函数包含输出参数和正标签参数,正标签参数用于指示正常访问行为,负标签参数用于指示异常访问行为。
三元组损失函数的训练目标约束了输出参数与正标签参数的相对距离,以及输出参数与负标签参数的相对距离;输出参数与正标签参数的距离越小越好,输出参数与负标签参数的距离越大越好。
交叉熵损失函数的训练目标约束了输出参数与正标签参数的绝对距离。
本申请中,目标函数可以采用梯度下降的方式迭代进行模型更新,直至模型收敛。
本申请实施例中,在模型训练阶段还可以生成安全规则,在异常检测阶段可以通过该安全规则提前进行一次过滤,将通过安全规则过滤的正常用户访问再输入到第二神经网络模型中进行检测,这样可以进一步提高异常检测的覆盖率。
该生成安全规则的过程可以是:从历史访问记录中确定访问行为属性符合正常行为的安全数据;根据安全数据配置安全规则,安全规则包括访问行为属性符合正常行为应满足的条件。
本申请实施例的安全规则可以包括:(1)、客户端的地址应该属于应用程序服务器的地址;(2)、用户发起访问请求的地址应该是该用户以往用过的地址;(3)、用户请求访问的数据库应该是该用户以往访问过的数据库;(4)用户在一个会话里访问的时间间隔应该是服从正态分布或者泊松分布。
以上四条安全规则也可以理解为访问行为属性符合正常行为应满足的条件,如果一条不满足,就可以确认为不符合安全规则。
安全数据指的是对客户端的地址、应用程序服务器的地址、用户发起访问请求的地址、用户请求访问的数据库等这些确认为正常的数据的记录。
以上训练得到第二神经网络模型以及保存好安全规则后,就可以使用该第二神经网络模型执行异常检测,当然,也可以使用安全规则执行异常检测,下面结合附图介绍异常检测的过程。
如图7所示,本申请实施例提供的异常检测的方法的一实施例包括:
401.计算机设备从数据库的访问记录中获取用于访问数据库的目标结构化查询语言SQL语句。
数据库的访问记录可以是正在对数据库进行访问的客户端本次会话中当前所产生的访问记录。
402.计算机设备确定与目标SQL语句归属于同一会话的历史SQL语句。
因为同一会话会产生多个SQL语句,该同一会话,在目标SQL语句之前产生的SQL语句都可以称为该目标SQL语句的历史SQL语句。
403.计算机设备将历史SQL语句输入目标神经网络模型,以预测历史SQL语句中的正常语句集合。
正常语句集合包括当前时刻预测为访问行为正常的语句,目标神经网络模型是基于多条样本序列训练得到的,多条样本序列是基于多个SQL语句序列构建的,每个SQL序列包含归属于同一会话的多条SQL语句,归属于同一会话的多条SQL语句中的每条SQL语句为其他SQL语句的上文信息或/和下文信息。
该步骤403中的目标神经网络模型可以为上述实施例中的第二神经网络模型,该目标神经网络模型是采用正常SQL语句训练得到的,所以,将历史SQL语句输入目标神经网络模型后就可以得到一个当前时刻的正常语句集合。不同时刻预测得到的正常语句集合可能相同,也可能不相同,这样,就可以通过确认该目标SQL语句是否位于该正常语句集合中来确定该目标SQL语句是正常还是异常,从而确定对应的访问行为是正常还是异常。
404.若目标SQL语句未包含于正常语句集合中,则计算机设备确定访问记录对应的访问行为异常。
本申请实施例中,因为所使用的目标神经网络模型是采用涉及用户访问行为的SQL语句的上文信息和下文信息训练得到的,该模型可以得到更全面的特征表征,这样在异常检测阶段,就可以提高对数据库的异常访问检测的覆盖率和精准度。
可选地,本申请实施例在将历史SQL语句输入目标神经网络模型之前,还可以先通过安全规则对该待检测的访问记录进行过滤,该过滤过程可以包括:从访问记录中获取访问行为属性;根据访问行为属性,以及安全规则对访问记录进行过滤,安全规则包括访问行为属性符合正常行为应满足的条件;若访问行为属性不符合正常行为,则确定访问记录对应的访问行为异常;若访问行为属性符合正常行为,则执行确定与目标SQL语句归属于同一会话的历史SQL语句的步骤。
本申请实施例中,关于通过安全规则过滤,可以是通过待检测的访问记录的访问行为属性,如:用户名、客户端的互联网协议(internet protocol,IP)地址、访问时间,以及所访问的数据库等与上述所列举安全规则应满足的四个条件逐一进行比对,若满足上述四个条件,则确认该待检测的访问行为属性没有异常,可以输入到目标神经网络模型中进行进一步检测,若该待检测的访问记录的访问行为属性不满足上述安全规则的四个条件中的任意一条,则确认该待检测的访问记录异常,输出给安全员进行检测。这种通过安全规则先进行一次检测的方式,可以提高异常检测的效率和覆盖率。
可选地,本申请实施例中,在异常检测的过程中还可以周期性的根据检测出的假阳数据更新安全规则,以及更新目标神经网络模型,假阳数据为从计算机设备输出的异常访问中被确认为正常的访问。
本申请实施例中,假阳数据(false positive data)是计算机设备误检测出的正常数据。本申请中周期性更新安全规则和目标神经网络模型,可以进一步提高异常检测的精准度。
上述异常检测的过程还可以参阅图8进行理解。如图8所示,该用于异常检测的计算机设备可以包括预处理模块、基于安全规则的过滤模块和基于目标神经网络模型的检测模块,以及缓存。
预处理模块用于:获取用户访问记录,该用户访问记录可以是上述的步骤401中的访问记录,也就是待检测的访问记录,然后对该用户访问记录进行预处理,可以获得用户对应用的访问行为属性以及目标SQL语句,并确定与该目标SQL语句属于同一会话的历史SQL语句,然后将该访问行为属性输入到基于安全规则的过滤模块。
基于安全规则的过滤模块用于:确定访问行为属性是否满足安全规则所包含的条件,若过滤后确定该用户对应的访问行为属性满足安全规则,则将历史SQL语句输入到基于目标神经网络模型的检测模块,若过滤后确定该用户对应的访问行为属性不满足安全规则,则将该异常的访问行为属性通知给安全员所使用的设备。
基于目标神经网络模型的检测模块用于:根据历史SQL语句确定该会话的正常语句集合,并检测该目标SQL语句是否位于该正常语句集合,若检测出异常,也就是目标SQL语句不位于该正常语句集合,则将该目标SQL语句通知给安全员所使用的设备。
安全员会对接收到的异常数据进行检查,若检查出异常数据中存在正常的数据,是计算设备误检测出的异常,则缓存这些被检测为异常的正常数据,也就是缓存假阳数据。
在更新周期到达时,计算机设备可以使用缓存中的假阳数据更新安全规则集目标神经网络模型。
本申请实施例中上述模型训练以及异常检测的过程的另一场景,还可以参阅图9进行理解。
如图9所示,该场景中包括训练阶段和检测阶段两个过程,其中,训练阶段包括:
501.从日志文件中获取多个会话对数据库的历史访问记录并进行预处理。
该预处理过程包括:解析每条历史访问记录,从每条历史访问记录中解析出访问行为属性以及SQL语句,按照会话标识,将属于同一会话的SQL语句汇聚成一个SQL语句序列,如图9中,x1,x2,x3…属于同一个会话中的SQL语句序列。预处理过程还可以根据访问行为属性生成安全规则。安全规则的具体内容可以参阅前面实施例的内容进行理解。
502.将多个会话的SQL语句序列或将SQL语句序列数值化后的序列输入到基于注意力机制的异常检测模型,也就是CAD模型,对该CAD模型进行训练,以得到可以用于异常检测的目标神经网络模型。
检测阶段包括:
601.对t时刻待检测的访问记录进行预处理。
该预处理过程会解析出该条访问记录的访问行为属性和目标SQL语句。并确定该目标SQL语句的历史SQL语句,若该目标SQL语句对应转换的键用
Figure BDA0003075996500000151
来表示,则历史SQL语可以是图9中所示的
Figure BDA0003075996500000152
602.确定该访问行为属性是否违反安全规则,若否则执行步骤603,若是,则执行步骤604。
603.不违反安全规则时,将目标SQL语句的历史SQL语句输入到CAD模型中进行检测。
604.若违反安全规则,则将该条访问记录的访问行为属性发送到安全员的设备。
605.若CAD模型检测出该目标SQL语句
Figure BDA0003075996500000153
异常,则将该目标SQL语句
Figure BDA0003075996500000154
发送到安全员的设备。
606.安全员会对设备上接收到的异常数据进行检查,若检查出存在假阳数据,则将假阳数据发送到缓存中。
607.使用假阳数据周期性更新CAD模型。
本申请实施例提供的异常检测方案,在效果上要优于多种现有技术,工程人员为了测试效果,从精准度、召回率和F1-分数三个指标做了测试以及数据收集,得到如下表1的测试结果。
表1:各技术在实施例一的数据集上的测试结果对比表
Figure BDA0003075996500000161
表1中,精准度是“被识别为异常的样本中真实为异常的比例”;召回率是“所有实际为异常的样本中被检测出来的比例”;F1-分数是精准度和召回率的加权调和平均。
由表1中各行的数据对比可以看出,本申请提供的异常检测的方案,在精准度、召回率和F1-分数三个方面的效果都原好于现有的几种异常检测技术。
以上介绍了神经网络模型训练的方法以及异常检测的方法,下面结合附图介绍本申请实施例提供的计算机设备。
如图10所示,本申请实施例提供的计算机设备70的一实施例包括:
获取单元701,用于获取访问数据库的历史访问记录,其中,历史访问记录用于记录用户通过多个会话访问数据库的行为信息。该获取单元701可以执行上述方法实施例中的步骤301。
确定单元702,用于基于获取单元701获取的历史访问记录确定多个结构化查询语言SQL语句序列,其中,每个SQL语句序列包含归属于同一会话的用于访问数据库的多条SQL语句,归属于同一会话的多条SQL语句中的每条SQL语句为其他SQL语句的上文信息或/和下文信息。该确定单元702可以执行上述方法实施例中的步骤302。
第一处理单元703,用于根据确定单元702确定的多个SQL语句序列构造多条样本序列。该第一处理单元703可以执行上述方法实施例中的步骤303。
第二处理单元704,用于基于第一处理单元构造的多条样本序列对第一神经网络模型进行训练,以得到第二神经网络模型。该第二处理单元704可以执行上述方法实施例中的步骤304。
本申请实施例中,在模型训练的过程中,将涉及用户访问行为的SQL语句的上文信息和下文信息都用到了模型训练中,这样训练好的模型就能得到更全面的特征表征,这样在异常检测阶段,就可以提高对数据库异常访问检测的覆盖率和精准度。
可选地,第一处理单元703,用于对归属于同一会话的多条SQL语句进行数值化处理,以将所述多条SQL语句中的每条语句数值化为全局唯一的键值,所述归属于同一会话的多条SQL语句的键值组成所述同一会话对应的样本序列。
可选地,第一处理单元703,还用于删除归属于同一会话的SQL序列中每条SQL语句中的位置信息,位置信息指示每条SQL语句在归属于同一会话的SQL序列的多条SQL语句的执行顺序。
可选地,确定单元702还用于:从历史访问记录中确定访问行为属性符合正常行为的安全数据;根据安全数据配置安全规则,安全规则包括访问行为属性符合正常行为应满足的条件。
可选地,第二处理单元704,用于针对多条样本序列中的每条样本序列,按照每条样本序列中SQL语句对应的访问时间对第一神经网络模型进行训练,SQL语句对应的访问时间为用户通过SQL语句访问数据库的时间,在使用第一访问时间的SQL语句训练第一神经网络模型时,屏蔽第二访问时间的SQL语句,第二访问时间晚于第一访问时间。
可选地,第一神经网络模型的目标损失函数包括三元组损失函数和交叉熵损失函数;三元组损失函数包含输出参数、正标签参数和负标签参数,交叉熵损失函数包含输出参数和正标签参数,正标签参数用于指示正常访问行为,负标签参数用于指示异常访问行为;三元组损失函数的训练目标约束了输出参数与正标签参数的相对距离,以及输出参数与负标签参数的相对距离;交叉熵损失函数的训练目标约束了输出参数与正标签参数的绝对距离。
本申请实施例提供的计算机设备70可以参阅前述神经网络模型训练的方法实施例部分的相应内容进行理解,此处不再重复赘述。
如图11所示,本申请实施例提供的计算机设备80的一实施例包括:
获取单元801,用于从数据库的访问记录中获取用于访问数据库的目标结构化查询语言SQL语句;该获取单元801可以执行上述方法实施例中的步骤401。
确定单元802,用于确定与获取单元801获取的目标SQL语句归属于同一会话的历史SQL语句;该确定单元802可以执行上述方法实施例中的步骤402。
第一处理单元803,用于将确定单元802确定的历史SQL语句输入目标神经网络模型,以预测历史SQL语句中的正常语句集合,正常语句集合包括当前时刻预测为访问行为正常的语句,目标神经网络模型是基于多条样本序列训练得到的,多条样本序列是基于多个SQL语句序列构建的,每个SQL序列包含归属于同一会话的多条SQL语句,归属于同一会话的多条SQL语句中的每条SQL语句为其他SQL语句的上文信息或/和下文信息;该第一处理单元803可以执行上述方法实施例中的步骤403。
第二处理单元804,用于若目标SQL语句未包含于第一处理单元803确定的正常语句集合中,则确定访问记录对应的访问行为异常。该第二处理单元804可以执行上述方法实施例中的步骤404。
本申请实施例中,因为所使用的目标神经网络模型是采用涉及用户访问行为的SQL语句的上文信息和下文信息训练得到的,该模型可以得到更全面的特征表征,这样在异常检测阶段,就可以提高对数据库的异常访问检测的覆盖率和精准度。
可选地,确定单元802还用于:从访问记录中获取访问行为属性;根据访问行为属性,以及安全规则对访问记录进行过滤,安全规则包括访问行为属性符合正常行为应满足的条件;若访问行为属性不符合正常行为,则确定访问记录对应的访问行为异常;若访问行为属性符合正常行为,则执行确定与目标SQL语句归属于同一会话的历史SQL语句的步骤。
可选地,计算机设备还包括更新单元805,该更新单元805,用于根据检测出的假阳数据更新安全规则,假阳数据为从计算机设备输出的异常访问中被确认为正常的访问。
可选地,更新单元805,还用于根据假阳数据更新目标神经网络模型。
本申请实施例提供的计算机设备80可以参阅前述异常检测的方法实施例部分的相应内容进行理解,此处不再重复赘述。
图12所示,为本申请的实施例提供的计算机设备120的一种可能的逻辑结构示意图。计算机设备120包括:处理器1201、通信接口1202、存储器1203以及总线1204,该处理器1201可以包括CPU,或者,CPU与GPU和NPU和其他类型的处理器中的至少一个。处理器1201、通信接口1202以及存储器1203通过总线1204相互连接。在本申请的实施例中,处理器1201用于对计算机设备120的动作进行控制管理,例如,处理器1201用于执行图6中的步骤301至304,以及图7中的步骤401至404,以及图9中的步骤501至502以及601至607和/或用于本文所描述的技术的其他过程。通信接口1202用于支持计算机设备120进行通信。存储器1203,用于存储计算机设备120的程序代码和数据。
其中,处理器1201可以是中央处理器单元,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。总线1204可以是外设部件互连标准(PeripheralComponent Interconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
如图13所示,本申请实施例提供的计算机设备130的一种可能的逻辑结构示意图。该计算机设备130包括:硬件层1301和虚拟机(virtual machine,VM)层1302,该VM层可以包括一个或多个VM。该硬件层1301为VM提供硬件资源,支撑VM运行,该VM的功能和与本申请相关的过程可以参阅上述图5至图9中的相应描述进行理解。该硬件层601包括处理器、通信接口以及存储器等硬件资源。该处理器可以包括CPU,或者,CPU与GPU和NPU中的至少一个。
在本申请的另一实施例中,还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当设备的至少一个处理器执行该计算机执行指令时,设备执行上述图5至图9部分实施例所描述的神经网络模型训练方法或异常检测的方法。
在本申请的另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;设备的至少一个处理器可以从计算机可读存储介质读取该计算机执行指令,至少一个处理器执行该计算机执行指令使得设备执行上述图5至图9部分实施例所描述的神经网络模型训练方法或异常检测的方法。
在本申请的另一实施例中,还提供一种芯片系统,该芯片系统包括至少一个处理器和接口,该接口用于接收数据和/或信号,至少一个处理器用于支持实现上述图5至图9部分实施例所描述的神经网络模型训练方法或异常检测的方法。在一种可能的设计中,芯片系统还可以包括存储器,存储器,用于保存计算机设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请实施例所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请实施例各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

Claims (25)

1.一种神经网络模型训练的方法,其特征在于,包括:
获取访问数据库的历史访问记录,其中,所述历史访问记录用于记录用户通过多个会话访问所述数据库的行为信息;
基于所述历史访问记录确定多个结构化查询语言SQL语句序列,其中,每个SQL语句序列包含归属于同一会话的用于访问所述数据库的多条SQL语句,所述归属于同一会话的多条SQL语句中的每条SQL语句为其他SQL语句的上文信息或/和下文信息;
根据所述多个SQL语句序列构造多条样本序列;
基于所述多条样本序列对第一神经网络模型进行训练,以得到第二神经网络模型。
2.根据权利要求1所述的方法,其特征在于,所述根据所述多个SQL语句序列构造多条样本序列包括:
对归属于同一会话的多条SQL语句进行数值化处理,以将所述多条SQL语句中的每条语句数值化为全局唯一的键值,所述归属于同一会话的多条SQL语句的键值组成所述同一会话对应的样本序列。
3.根据权利要求1或2所述的方法,其特征在于,基于所述多条样本序列对第一神经网络模型进行训练之前,所述方法还包括:
删除所述归属于同一会话的SQL序列中每条SQL语句中的位置信息,所述位置信息指示所述每条SQL语句在所述归属于同一会话的SQL序列的多条SQL语句的执行顺序。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
从所述历史访问记录中确定访问行为属性符合正常行为的安全数据;
根据所述安全数据配置安全规则,所述安全规则包括所述访问行为属性符合正常行为应满足的条件。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述基于所述多条样本序列对第一神经网络模型进行训练,包括:
针对所述多条样本序列中的每条样本序列,按照所述每条样本序列中SQL语句对应的访问时间对所述第一神经网络模型进行训练,所述SQL语句对应的访问时间为用户通过所述SQL语句访问所述数据库的时间,在使用第一访问时间的SQL语句训练所述第一神经网络模型时,屏蔽第二访问时间的SQL语句,所述第二访问时间晚于所述第一访问时间。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述第一神经网络模型的目标损失函数包括三元组损失函数和交叉熵损失函数;
所述三元组损失函数包含输出参数、正标签参数和负标签参数,所述交叉熵损失函数包含所述输出参数和所述正标签参数,所述正标签参数用于指示正常访问行为,所述负标签参数用于指示异常访问行为;
所述三元组损失函数的训练目标约束了所述输出参数与所述正标签参数的相对距离,以及所述输出参数与所述负标签参数的相对距离;
所述交叉熵损失函数的训练目标约束了所述输出参数与所述正标签参数的绝对距离。
7.一种异常检测的方法,其特征在于,包括:
从数据库的访问记录中获取用于访问所述数据库的目标结构化查询语言SQL语句;
确定与所述目标SQL语句归属于同一会话的历史SQL语句;
将所述历史SQL语句输入目标神经网络模型,以预测所述历史SQL语句中的正常语句集合,所述正常语句集合包括当前时刻预测为访问行为正常的语句,所述目标神经网络模型是基于多条样本序列训练得到的,所述多条样本序列是基于多个SQL语句序列构建的,每个SQL序列包含归属于同一会话的多条SQL语句,所述归属于同一会话的多条SQL语句中的每条SQL语句为其他SQL语句的上文信息或/和下文信息;
若所述目标SQL语句未包含于所述正常语句集合中,则确定所述访问记录对应的访问行为异常。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
从所述访问记录中获取访问行为属性;
根据所述访问行为属性,以及安全规则对所述访问记录进行过滤,所述安全规则包括所述访问行为属性符合正常行为应满足的条件;
若所述访问行为属性不符合正常行为,则确定所述访问记录对应的访问行为异常;
若所述访问行为属性符合正常行为,则执行所述确定与所述目标SQL语句归属于同一会话的历史SQL语句的步骤。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
根据检测出的假阳数据更新所述安全规则,所述假阳数据为从计算机设备输出的异常访问中被确认为正常的访问。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
根据所述假阳数据更新所述目标神经网络模型。
11.一种计算机设备,其特征在于,包括:
获取单元,用于获取访问数据库的历史访问记录,其中,所述历史访问记录用于记录用户通过多个会话访问所述数据库的行为信息;
确定单元,用于基于所述获取单元获取的所述历史访问记录确定多个结构化查询语言SQL语句序列,其中,每个SQL语句序列包含归属于同一会话的用于访问所述数据库的多条SQL语句,所述归属于同一会话的多条SQL语句中的每条SQL语句为其他SQL语句的上文信息或/和下文信息;
第一处理单元,用于根据所述确定单元确定的多个SQL语句序列构造多条样本序列;
第二处理单元,用于基于所述第一处理单元构造的多条样本序列对第一神经网络模型进行训练,以得到第二神经网络模型。
12.根据权利要求11所述的计算机设备,其特征在于,
所述第一处理单元,用于对归属于同一会话的多条SQL语句进行数值化处理,以将所述多条SQL语句中的每条语句数值化为全局唯一的键值,所述归属于同一会话的多条SQL语句的键值组成所述同一会话对应的样本序列。
13.根据权利要求11或12所述的计算机设备,其特征在于,
所述第一处理单元,还用于删除所述归属于同一会话的SQL序列中每条SQL语句中的位置信息,所述位置信息指示所述每条SQL语句在所述归属于同一会话的SQL序列的多条SQL语句的执行顺序。
14.根据权利要求11-13任一项所述的计算机设备,其特征在于,
所述确定单元还用于:从所述历史访问记录中确定访问行为属性符合正常行为的安全数据;根据所述安全数据配置安全规则,所述安全规则包括所述访问行为属性符合正常行为应满足的条件。
15.根据权利要求11-14任一项所述的计算机设备,其特征在于,
所述第二处理单元,用于针对所述多条样本序列中的每条样本序列,按照所述每条样本序列中SQL语句对应的访问时间对所述第一神经网络模型进行训练,所述SQL语句对应的访问时间为用户通过所述SQL语句访问所述数据库的时间,在使用第一访问时间的SQL语句训练所述第一神经网络模型时,屏蔽第二访问时间的SQL语句,所述第二访问时间晚于所述第一访问时间。
16.一种计算机设备,其特征在于,包括:
获取单元,用于从数据库的访问记录中获取用于访问所述数据库的目标结构化查询语言SQL语句;
确定单元,用于确定与所述获取单元获取的目标SQL语句归属于同一会话的历史SQL语句;
第一处理单元,用于将所述确定单元确定的历史SQL语句输入目标神经网络模型,以预测所述历史SQL语句中的正常语句集合,所述正常语句集合包括当前时刻预测为访问行为正常的语句,所述目标神经网络模型是基于多条样本序列训练得到的,所述多条样本序列是基于多个SQL语句序列构建的,每个SQL序列包含归属于同一会话的多条SQL语句,所述归属于同一会话的多条SQL语句中的每条SQL语句为其他SQL语句的上文信息或/和下文信息;
第二处理单元,用于若所述目标SQL语句未包含于所述第一处理单元确定的正常语句集合中,则确定所述访问记录对应的访问行为异常。
17.根据权利要求16所述的计算机设备,其特征在于,
所述确定单元还用于:
从所述访问记录中获取访问行为属性;
根据所述访问行为属性,以及安全规则对所述访问记录进行过滤,所述安全规则包括所述访问行为属性符合正常行为应满足的条件;
若所述访问行为属性不符合正常行为,则确定所述访问记录对应的访问行为异常;
若所述访问行为属性符合正常行为,则执行所述确定与所述目标SQL语句归属于同一会话的历史SQL语句的步骤。
18.根据权利要求17所述的计算机设备,其特征在于,所述计算机设备还包括更新单元,
所述更新单元,用于根据检测出的假阳数据更新所述安全规则,所述假阳数据为从计算机设备输出的异常访问中被确认为正常的访问。
19.根据权利要求18所述的计算机设备,其特征在于,
所述更新单元,还用于根据所述假阳数据更新所述目标神经网络模型。
20.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6任一项所述的方法。
21.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求7-10任一项所述的方法。
22.一种芯片系统,其特征在于,包括至少一个处理器和接口,所述接口用于接收数据和/或信号,所述至少一个处理器被配置为用于执行如权利要求1-6任一项所述的方法。
23.一种芯片系统,其特征在于,包括至少一个处理器和接口,所述接口用于接收数据和/或信号,所述至少一个处理器被配置为用于执行如权利要求7-10任一项所述的方法。
24.一种计算机程序产品,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6任一项所述的方法。
25.一种计算机程序产品,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求7-10任一项所述的方法。
CN202110552611.7A 2021-05-20 2021-05-20 一种神经网络模型训练的方法、异常检测的方法及设备 Pending CN115374927A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110552611.7A CN115374927A (zh) 2021-05-20 2021-05-20 一种神经网络模型训练的方法、异常检测的方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110552611.7A CN115374927A (zh) 2021-05-20 2021-05-20 一种神经网络模型训练的方法、异常检测的方法及设备

Publications (1)

Publication Number Publication Date
CN115374927A true CN115374927A (zh) 2022-11-22

Family

ID=84059363

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110552611.7A Pending CN115374927A (zh) 2021-05-20 2021-05-20 一种神经网络模型训练的方法、异常检测的方法及设备

Country Status (1)

Country Link
CN (1) CN115374927A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115906927A (zh) * 2022-11-29 2023-04-04 李星 基于人工智能的数据访问分析方法、系统及云平台
CN116861467A (zh) * 2023-08-31 2023-10-10 中国科学院软件研究所 一种基于上下文特征的数据库异常查询访问控制方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115906927A (zh) * 2022-11-29 2023-04-04 李星 基于人工智能的数据访问分析方法、系统及云平台
CN115906927B (zh) * 2022-11-29 2023-11-03 北京国联视讯信息技术股份有限公司 基于人工智能的数据访问分析方法、系统及云平台
CN116861467A (zh) * 2023-08-31 2023-10-10 中国科学院软件研究所 一种基于上下文特征的数据库异常查询访问控制方法
CN116861467B (zh) * 2023-08-31 2023-12-26 中国科学院软件研究所 一种基于上下文特征的数据库异常查询访问控制方法

Similar Documents

Publication Publication Date Title
EP3940591A1 (en) Image generating method, neural network compression method, and related apparatus and device
CN112434721B (zh) 一种基于小样本学习的图像分类方法、系统、存储介质及终端
CN109993102B (zh) 相似人脸检索方法、装置及存储介质
CN113095346A (zh) 数据标注的方法以及数据标注的装置
CN111259851B (zh) 一种多模态事件检测方法及装置
CN111898636B (zh) 一种数据处理方法及装置
CN114580263A (zh) 基于知识图谱的信息系统故障预测方法及相关设备
CN115374927A (zh) 一种神经网络模型训练的方法、异常检测的方法及设备
CN110766151B (zh) 一种基于场景的开放式神经网络模型管理系统
CN113191241A (zh) 一种模型训练方法及相关设备
WO2023125628A1 (zh) 神经网络模型优化方法、装置及计算设备
CN114780831A (zh) 基于Transformer的序列推荐方法及系统
CN115512005A (zh) 一种数据处理方法及其装置
CN111738403A (zh) 一种神经网络的优化方法及相关设备
CN116186594B (zh) 基于决策网络结合大数据实现环境变化趋势智能检测方法
CN114331122A (zh) 重点人员风险等级评估方法及相关设备
CN111950702A (zh) 一种神经网络结构确定方法及其装置
CN117036843A (zh) 目标检测模型训练方法、目标检测方法和装置
CN115063585A (zh) 一种无监督语义分割模型的训练方法及相关装置
CN113627422A (zh) 一种图像分类方法及其相关设备
EP4318322A1 (en) Data processing method and related device
CN113723603A (zh) 一种更新参数的方法、装置及存储介质
CN117217280A (zh) 神经网络模型优化方法、装置及计算设备
CN114154622A (zh) 交通运行体系流量数据采集缺失补全的算法模型
CN113705402A (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