CN113821791A - 用于检测sql注入的方法、***、存储介质及装置 - Google Patents
用于检测sql注入的方法、***、存储介质及装置 Download PDFInfo
- Publication number
- CN113821791A CN113821791A CN202010556544.1A CN202010556544A CN113821791A CN 113821791 A CN113821791 A CN 113821791A CN 202010556544 A CN202010556544 A CN 202010556544A CN 113821791 A CN113821791 A CN 113821791A
- Authority
- CN
- China
- Prior art keywords
- request
- neural network
- sql injection
- network model
- sample
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000002347 injection Methods 0.000 title claims abstract description 59
- 239000007924 injection Substances 0.000 title claims abstract description 59
- 238000003062 neural network model Methods 0.000 claims abstract description 54
- 238000013528 artificial neural network Methods 0.000 claims abstract description 32
- 238000011156 evaluation Methods 0.000 claims abstract description 18
- 238000012549 training Methods 0.000 claims abstract description 16
- 238000007781 pre-processing Methods 0.000 claims abstract description 15
- 238000002372 labelling Methods 0.000 claims description 6
- 239000013598 vector Substances 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 3
- 238000001514 detection method Methods 0.000 description 16
- 239000002609 medium Substances 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000014509 gene expression Effects 0.000 description 6
- 238000004088 simulation Methods 0.000 description 5
- 238000013473 artificial intelligence Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000012120 mounting media Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及用于检测SQL注入的方法、***、存储介质及装置。提供了用于检测SQL注入的方法,包括:对于第一请求,基于第一神经网络模型判断第一请求是否对应SQL注入,其中在第一请求对应SQL注入的情况下第一请求被拦截,否则第一请求被通过;根据评价指标对第一请求进行预处理,以对第一请求进行标记,标记结果反映第一请求是否对应SQL注入;基于第一请求和所述标记结果生成第一样本;利用第一样本更新当前样本,利用更新后的样本训练神经网络以得到第二神经网络模型;以及对于第二请求,基于第二神经网络模型判断第二请求是否对应SQL注入,其中在第二请求对应SQL注入的情况下第二请求被拦截,否则第二请求被通过。
Description
技术领域
本公开涉及计算机网络安全,更具体地,本公开涉及用于检测SQL注入的方法、***、存储介质及装置的技术。
背景技术
SQL注入是指这样的情况:web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。
针对SQL注入的传统检测模式和现有的人工智能(AI)检测模式是基于正则表达式匹配或离线模式进行检测的模式,存在很多不足,包括以下几点:1)用户学习成本高,传统检测模式涉及大量的正则表达式并且语法比较复杂,对于复杂的攻击,需要书写大量的正则表达式;2)误报漏报率高,当攻击者熟悉基于正则表达式匹配的SQL注入检测模式后,能够通过SQL绕过方法对SQL攻击语句进行编码或者针对特殊符号进行转义等手段来绕过规则库中的正则表达式,从而造成大量攻击语句漏报,而将规则检测方式过度提高又会发生很多误报的情况,使得企业员工的工作效率大大降低;3)适应性差:现有的AI离线状态检测模式是基于历史样本在离线状态下对检测模型进行训练的,而对于新的SQL注入攻击方法(如历史样本库中没有出现过的),现有的AI离线状态检测模式都不能很好地匹配新的SQL注入攻击,因而造成大量的漏报误报。
发明内容
在下文中给出了关于本公开的简要概述,以便提供关于本公开的一些方面的基本理解。但是,应当理解,这个概述并不是关于本公开的穷举性概述。它并不是意图用来确定本公开的关键性部分或重要部分,也不是意图用来限定本公开的范围。其目的仅仅是以简化的形式给出关于本公开的某些概念,以此作为稍后给出的更详细描述的前序。
根据本公开的一方面,提供了用于检测SQL注入的方法,包括:对于第一请求,基于第一神经网络模型判断第一请求是否对应SQL注入,其中,在第一请求对应SQL注入的情况下,第一请求被拦截,否则第一请求被通过;根据评价指标对第一请求进行预处理,以对第一请求进行标记,标记结果反映第一请求是否对应SQL注入;基于第一请求和所述标记结果生成第一样本;利用第一样本更新当前样本,利用更新后的样本训练神经网络以得到第二神经网络模型;以及对于第二请求,基于第二神经网络模型判断第二请求是否对应SQL注入,其中,在第二请求对应SQL注入的情况下,第二请求被拦截,否则第二请求被通过。
根据一个实施例,上述方法还包括对第一请求进行分词处理,并利用Word2Vec工具从分词处理后的请求中提取文本向量。
根据一个实施例,在上述方法中,评价指标包括以下中的至少一者:相同特殊字符出现的次数、不同特殊字符出现的种类、相同敏感字段出现的次数、不同敏感字段出现的种类、访问敏感数据表的次数、或用户所请求的互联网协议(IP)地址出现的次数。
根据一个实施例,在上述方法中,预处理包括:根据评价指标获得第一请求的得分;将得分按照预定的权重进行加权量化,并归一化得到[0,1]区间值;将所得到的区间值按照预定的规则映射为0或1作为第一请求的标记结果,其中标记0表示第一请求不是SQL注入,标记1表示第一请求是SQL注入。
根据一个实施例,在上述方法中,利用更新后的样本训练神经网络以得到第二神经网络模型包括:获得第一神经网络模型的参数;将更新后的样本所包含的请求输入到当前神经网络的输入层,并将所包含的请求的标记结果输出到当前神经网络的理想输出单元;计算当前神经网络的输出层的输出;计算标记结果与当前神经网络的实际输出之间的偏差;根据该偏差更新当前神经网络的权值;以及判断更新后的当前神经网络模型是否满足要求,若满足,则作为第二神经网络模型,若不满足,则返回继续迭代直到满足要求为止。
根据一个实施例,在上述方法中,对于第一请求,如果通过第一神经网络模型输出的输出结果与根据评价指标进行预处理后获得的标记结果不同,则在训练神经网络以得到第二神经网络模型时,为该第一样本给定比其他样本大的权重。
根据一个实施例,在上述方法中,利用第一样本更新当前样本包括在当前样本的数量达到预定阈值时,删除一部分历史样本,并增加第一样本。
根据本公开的另一方面,提供了一种用于检测SQL注入的***,该***可以包括至少一个处理器和存储器,所述存储器中存储有可执行指令,所述指令在由所述至少一个处理器执行时实现本公开的方法。
根据本公开的另一方面,提供了一种非暂态计算机可读存储介质,该计算机可读存储介质上存储有可执行指令,所述指令在由处理器执行时,使所述处理器可以执行本公开的方法。
根据本公开的另一方面,提供一种用于检测SQL注入的装置,该装置可以包括用于执行根据本公开的方法的操作的单元。
根据本公开的一个或多个实施例,根据评价指标利用仿真***通过对请求实时地进行预处理,能够实时地获得新的样本来动态地更新当前样本库,并进而通过训练能够近乎实时地更新神经网络模型用于随后的SQL注入检测,以便基于最新的神经网络模型进行SQL注入检测。在这种情况下,不需要人工书写繁琐的规则,也不需人工挑选样本或对样本进行标记,大大减少了人力成本。此外,本公开能够针对未知攻击自动采集样本,自动优化更新神经网络模型使其更加高效、精准,因此可以大幅提高对未知攻击的检测准确率和检测效率。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。参照附图,根据下面的详细描述,可以更清楚地理解本公开,其中:
图1是示出根据本公开的实施例的用于检测SQL注入的方法的示意图;
图2是示出根据本公开的实施例的用于通过对请求进行预处理以生成样本的方法的示意图;
图3是示出根据本公开的实施例的用于训练神经网络的方法的示意图;以及
图4是示出根据本公开的实施例的用于检测SQL注入的***的示意图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其他示例可以具有不同的值。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到,相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
图1是示出根据本公开的实施例的用于检测SQL注入的方法100的示意图。
在一些实施例中,该方法100可以包括在操作101中,获得第一请求。在一些实施例中,第一请求可以是用户输入的请求。在一些实施例中,第一请求可以是在根据真实环境建模的仿真***中,基于当前web***的数据,通过信息过滤获得的请求。
在一些实施例中,方法100还可以包括对第一请求进行分词处理,并利用Word2Vec工具从分词处理后的请求中提取文本向量。其中,Word2Vec是Google开源的一款将自然语言转化为计算机可以理解的特征向量的工具。
在一些实施例中,方法100还可以包括在操作102中,基于第一神经网络模型判断第一请求是否对应SQL注入。例如,将第一请求对应的特征向量输入到第一神经网络模型的输入层,获得相应的输出,例如0或1。在一些实施例中,在第一请求对应SQL注入的情况下(例如,当相应的输出为1时),在操作103中,第一请求被拦截;否则(例如,当相应的输出为0时),继续进行到操作104,此时第一请求被通过。
在一些实施例中,方法100还可以包括在操作105中,根据评价指标对第一请求进行预处理,以对第一请求进行标记,标记结果反映第一请求是否对应SQL注入。在一些实施例中,评价指标可以包括但不限于以下中的至少一者:相同特殊字符出现的次数、不同特殊字符出现的种类、相同敏感字段出现的次数、不同敏感字段出现的种类、访问敏感数据表的次数、或用户所请求的IP地址出现的次数。
在一些实施例中,方法100还可以包括在操作106中,基于第一请求和该标记结果生成第一样本。后文将结合图2进一步描述通过对请求进行预处理以生成样本的详细过程。
在一些实施例中,方法100还可以包括在操作107中,利用第一样本更新当前样本,利用更新后的样本训练神经网络以得到第二神经网络模型。在一些实施例中,利用第一样本更新当前样本还可以包括在当前样本的数量达到预定阈值(例如,10万个)时,删除一部分历史样本(例如,删除最旧的一部分样本),并增加第一样本。
在一些实施例中,方法100还可以包括,对于第一请求,如果通过第一神经网络模型输出的输出结果(例如操作102处的输出)与根据评价指标进行预处理后获得的标记结果(例如操作105处获得的标记结果)不同,则在训练神经网络以得到第二神经网络模型(例如操作107处)时,为该第一样本给定比其他样本大的权重。例如,仅利用输出结果与标记结果不同的样本来训练神经网络,或者利用相对较多的结果不同的样本以及相对较少的结果相同的样本来训练神经网络。在本公开的实施例中,评价指标更能够准确反应请求是否对应SQL注入。因此,对于特定请求,通过当前神经网络模型输出的输出结果与根据评价指标进行预处理后获得的标记结果不同意味着神经网络模型相对陈旧,对SQL注入的判断会出现偏差。这种情况下,在对神经网络模型的训练中,为基于该特定请求的样本给定较大权重,有助于纠正神经网络模型的偏差。
后文将结合图3进一步描述训练神经网络的详细过程。在一些实施例中,利用更新后的样本训练神经网络可能在几毫秒的时间段内即可完成,使得神经网络模型近乎是实时更新的。此后,对于接下来的请求,可以利用更新后的神经网络模型来检测SQL注入。例如,对于紧接着的第二请求,可以类似于操作101至104利用更新后的第二神经网络模型来检测SQL注入。
具体地,在操作101中,获得第二请求。其中,第二请求可以是紧挨在第一请求之后的请求,或者是在距第一请求较短的时间间隔内(例如几毫秒或几秒内)的请求。在操作102中,基于第二神经网络模型判断第二请求是否对应SQL注入。例如,将第二请求对应的特征向量输入到第二神经网络模型的输入层,获得相应的输出,例如0或1。在第二请求对应SQL注入的情况下(例如,当相应的输出为1时),在操作103中,第二请求被拦截;否则(例如,当相应的输出为0时),继续进行到操作104,此时第二请求被通过。
利用请求来不断动态更新样本,并对神经网络模型进行近乎实时地更新,使得神经网络模型在检测紧随其后的SQL注入时更加高效精准,能够及时判断出未知攻击,提高检测准确率和检测效率。对于第二请求,可以类似于操作105至107进行标记并形成新的样本,以便进一步训练神经网络模型。
下面结合图2进一步描述在图1中的操作105和106中描述的通过对请求进行预处理以生成样本的详细过程。图2是示出根据本公开的实施例的用于通过对请求进行预处理以生成样本的方法200的示意图。
在一些实施例中,方法200可以包括在操作201中,根据评价指标获得第一请求的得分。如上所述,在一些实施例中,评价指标可以包括但不限于以下中的至少一者:相同特殊字符出现的次数、不同特殊字符出现的种类、相同敏感字段(例如,union或order by等)出现的次数、不同敏感字段出现的种类、访问敏感数据表(例如,诸如user之类的用户表或诸如admin的管理员表)的次数、或用户所请求的互联网协议(IP)地址出现的次数。例如,若单位时间内相同特殊字符出现的次数越多、或不同特殊字符出现的种类越多,则第一请求的得分越高;若单位时间内相同敏感字段出现的次数越多、或不同敏感字段出现的种类越多,则第一请求的得分越高;若单位时间内访问敏感数据表的次数越多,则第一请求的得分越高;若单位时间内用户所请求的IP地址出现的次数越多,则针对此IP地址的请求的得分越高。其中,当用户发送请求访问web***时,相应的防火墙(例如modsecurity)或中间件(例如nginx)都会产生日志数据,可以通过获取日志数据中的用户访问IP来获取用户所请求的IP地址。
在一些实施例中,方法200可以包括在操作202中,将上述得分按照预定的权重进行加权量化,并归一化得到[0,1]区间值。例如,当用户所请求的IP地址此项对于判断是否是SQL注入影响较大时,可以为该项赋予较高的权重。
在一些实施例中,方法200可以包括在操作203中,将所得到的区间值按照预定的规则映射为0或1,作为第一请求的标记结果。在一些实施例中,其中标记0表示第一请求不是SQL注入,标记1表示第一请求是SQL注入。在另外一些实施例中,其中标记1表示第一请求不是SQL注入,标记0表示第一请求是SQL注入。在一些实施例中,预定的规则可以是判断所得到的区间值是否大于等于某个阈值(例如0.6)。在标记0表示该请求不是SQL注入的实施例中,例如请求A加权量化后的得分为80分,且归一化得到的区间值为0.8,而请求B加权量化后的得分为10分,且归一化得到的区间值为0.1,则请求A的标记结果可以是1,而请求B的标记结果可以是0。
在一些实施例中,可以基于第一请求及其相应的标记结果生成第一样本。在一些实施例中,也可以利用历史样本对生成的第一样本进行一定程度的修改。
在仿真***中,在对请求进行预处理时,根据真实环境中遇到的SQL注入的特征和问题,通过将相同特殊字符出现的次数、不同特殊字符出现的种类、相同敏感字段出现的次数、不同敏感字段出现的种类/总次数、访问敏感数据表的次数、或用户所请求的IP地址出现的次数等等设置为评价指标,能够动态地对请求进行标记,实时得到新的样本,使得神经网络模型的训练和更新更加实时和高效。另外,相比于真实环境,仿真***能够模拟各种不同场景,得到丰富的样本结果,并且这种仿真相对比较快,有利于增加样本的多样性。
下面结合图3进一步描述在图1中的操作107中描述的训练神经网络的详细过程。图3是示出根据本公开的实施例的用于训练神经网络的方法300的示意图。
在一些实施例中,方法300可以包括在操作301中,获得第一神经网络模型的参数,作为当前神经网络模型的初始参数。
在一些实施例中,方法300可以包括在操作302中,将(例如在操作107中获得的)更新后的样本所包含的请求输入到当前神经网络的输入层,并将所包含的请求的标记结果输出到当前神经网络的理想输出单元。例如,当第一请求的标记结果为1时,可以将第一请求输入到输入层,将1输出到理想输出单元。
在一些实施例中,方法300可以包括在操作303中,计算当前神经网络的输出层的输出。例如,对于第一请求,当前神经网络实际输出可以为0.8。
在一些实施例中,方法300可以包括在操作304中,计算标记结果与当前神经网络的实际输出之间的偏差。例如,对于第一请求,标记结果1与实际输出0.8之间的偏差为0.2。
在一些实施例中,方法300可以包括在操作305中,根据该偏差更新当前神经网络的连接或其权值。
在一些实施例中,方法300可以包括在操作306中,判断更新后的当前神经网络模型是否满足要求。在一些实施例中,该要求可以是需要满足的预先设定的条件,例如神经网络模型检测的准确率、神经网络模型的鲁棒性等。若满足,则继续进行操作307,将当前神经网络模型作为第二神经网络模型;若不满足,则返回操作301,以操作305中更新的神经网络的参数作为当前神经网络模型的参数,继续迭代执行操作302-306,直到满足要求为止。
图4是示出根据本公开的实施例的用于检测SQL注入的***400的示意图。
在一些实施例中,***400可以包括至少一个处理器401和存储器402。
处理器401提供用于检测SQL注入的***400的各种功能。在一些实施例中,处理器401被配置为执行本公开的方法。处理器401可以是诸如微处理器、数字信号处理器、微控制器、多核处理器、专用处理器、用于通信的接口等的任何处理器。处理器401可以运行存储器402中所存储的各种程序指令,以执行相应的操作。
在一些实施例中,存储器402中存储有可执行指令,这些可执行指令在由处理器401执行时实现本公开的功能。存储器402可以是各种类型的存储器或存储设备中的任何一种。例如,存储器402可以包括安装介质(例如CD-ROM、软盘或磁带设备)、随机存取存储器(诸如DRAM、DDR RAM、SRAM、EDO RAM、Rambus RAM等)、非易失性存储器(诸如闪存、磁介质或光学存储装置)、寄存器或其他类似类型的存储器元件等。存储器402还可以包括其他类型的存储器或其组合。在本公开的实施例中,存储器402可以存储程序指令(例如用于执行相应操作的指令),以便以软件、硬件或软件硬件相结合的方式来实现基于本公开实施例的方法。
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
本公开的各方面可以呈现完全硬件实施例、完全软件实施例(包括固件、常驻软件、微代码等)或组合软件和硬件方面的实施例的形式,所有前述的各项在本文中都可以一般性地称为“电路”、“模块”或“***”。可以使用一个或多个计算机可读存储介质的任何组合。计算机可读存储介质可以是计算机可读信号介质或计算机可读存储介质。
计算机可读存储介质可以是例如但不限于电子的、磁性的、光学的、电磁的、红外的或半导体***、装置或设备,或前述的各项的任何适当的组合。计算机可读存储介质的更具体的实例(非穷举列表)将包括以下内容:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式光盘只读存储器(CD-ROM)、光存储设备、磁存储设备或前述的各项的任何适当组合。在本文档的上下文中,计算机可读存储介质可以是任何包含或存储由指令执行***、装置或设备使用或与其结合使用的程序的有形介质。
本公开在各种实施例、配置和方面中包括基本上如本文描绘和描述的组件、方法、过程、***和/或装置,包括各种实施例,子组合和其子集。本领域技术人员将理解在理解本公开之后如何制造和使用本文公开的***和方法。在各种实施例、配置和方面中,本公开包括提供不存在本文未描绘和/或描述的项目的装置和过程,或在本文的各种实施例、配置或方面中,包括不存在可能已经在以前的装置或过程中使用的项目,例如用于提高性能、实现简易性和/或降低实现成本。
本说明书(包括任何附加权利要求、摘要)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
此外,虽然对本公开的描述已经包括了对一个或多个实施例、配置或方面的描述,但是某些变型和修改、其他变型、组合和修改也在本公开的范围内,例如,在本领域技术人员理解了本公开之后,这可能在他们的技术和知识范围内。本公开旨在获得权利,该权利应当包括在允许范围内的替代实施例、配置或方面,包括与所要求保护的那些结构、功能、范围或步骤的替代的、可互换的和/或等效的结构、功能、范围或步骤,无论这些替代的、可互换的和/或等效的结构、功能、范围或步骤是否在本文中具体说明。本文不旨在公开地贡献任何可取得专利的技术方案。
Claims (10)
1.一种用于检测SQL注入的方法,包括:
对于第一请求,基于第一神经网络模型判断第一请求是否对应SQL注入,其中,在第一请求对应SQL注入的情况下,第一请求被拦截,否则第一请求被通过;
根据评价指标对第一请求进行预处理,以对第一请求进行标记,标记结果反映第一请求是否对应SQL注入;
基于第一请求和所述标记结果生成第一样本;
利用第一样本更新当前样本,利用更新后的样本训练神经网络以得到第二神经网络模型;以及
对于第二请求,基于第二神经网络模型判断第二请求是否对应SQL注入,其中,在第二请求对应SQL注入的情况下,第二请求被拦截,否则第二请求被通过。
2.如权利要求1所述的方法,还包括对第一请求进行分词处理,并利用Word2Vec工具从分词处理后的请求中提取文本向量。
3.如权利要求1所述的方法,其中,所述评价指标包括以下中的至少一者:相同特殊字符出现的次数、不同特殊字符出现的种类、相同敏感字段出现的次数、不同敏感字段出现的种类、访问敏感数据表的次数、或用户所请求的互联网协议IP地址出现的次数。
4.如权利要求1所述的方法,其中,所述预处理包括:
根据所述评价指标获得第一请求的得分;
将所述得分按照预定的权重进行加权量化,并归一化得到[0,1]区间值;
将所得到的区间值按照预定的规则映射为0或1作为第一请求的标记结果,其中标记0表示第一请求不是SQL注入,标记1表示第一请求是SQL注入。
5.如权利要求1所述的方法,其中,利用更新后的样本训练神经网络以得到第二神经网络模型包括:
获得第一神经网络模型的参数;
将所述更新后的样本所包含的请求输入到当前神经网络的输入层,并将所包含的请求的标记结果输出到当前神经网络的理想输出单元;
计算当前神经网络的输出层的输出;
计算标记结果与当前神经网络的实际输出之间的偏差;
根据该偏差更新当前神经网络的权值;以及
判断更新后的当前神经网络模型是否满足要求,若满足,则作为第二神经网络模型,若不满足,则返回继续迭代直到满足要求为止。
6.如权利要求1所述的方法,其中,对于第一请求,如果通过第一神经网络模型输出的输出结果与根据评价指标进行预处理后获得的标记结果不同,则在训练神经网络以得到第二神经网络模型时,为该第一样本给定比其他样本大的权重。
7.如权利要求1所述的方法,其中,利用第一样本更新当前样本包括:在当前样本的数量达到预定阈值时,删除一部分历史样本,并增加第一样本。
8.一种用于检测SQL注入的***,所述***包括:
至少一个处理器;和
存储器,所述存储器中存储有可执行指令,所述指令在由所述至少一个处理器执行时实现如权利要求1-7中任一项所述的方法。
9.一种非暂态计算机可读存储介质,其上存储有可执行指令,所述指令在由处理器执行时执行如权利要求1-7中任一项所述的方法。
10.一种用于检测SQL注入的装置,所述装置包括用于执行如权利要求1-7中任一项所述的方法的操作的单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010556544.1A CN113821791B (zh) | 2020-06-18 | 2020-06-18 | 用于检测sql注入的方法、***、存储介质及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010556544.1A CN113821791B (zh) | 2020-06-18 | 2020-06-18 | 用于检测sql注入的方法、***、存储介质及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113821791A true CN113821791A (zh) | 2021-12-21 |
CN113821791B CN113821791B (zh) | 2024-07-12 |
Family
ID=78924378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010556544.1A Active CN113821791B (zh) | 2020-06-18 | 2020-06-18 | 用于检测sql注入的方法、***、存储介质及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113821791B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103744802A (zh) * | 2013-12-20 | 2014-04-23 | 北京奇虎科技有限公司 | Sql注入攻击的识别方法及装置 |
CN106295338A (zh) * | 2016-07-26 | 2017-01-04 | 北京工业大学 | 一种基于人工神经元网络的sql漏洞检测方法 |
CN108667816A (zh) * | 2018-04-19 | 2018-10-16 | 重庆邮电大学 | 一种网络异常的检测定位方法及*** |
US20190108432A1 (en) * | 2017-10-05 | 2019-04-11 | Salesforce.Com, Inc. | Convolutional neural network (cnn)-based anomaly detection |
CN109670307A (zh) * | 2018-12-04 | 2019-04-23 | 成都知道创宇信息技术有限公司 | 一种基于cnn和海量日志的sql注入识别方法 |
CN109960934A (zh) * | 2019-03-25 | 2019-07-02 | 西安电子科技大学 | 一种基于cnn的恶意请求检测方法 |
CN110245721A (zh) * | 2019-06-25 | 2019-09-17 | 深圳市腾讯计算机***有限公司 | 神经网络模型的训练方法、装置和电子设备 |
CN110427754A (zh) * | 2019-08-12 | 2019-11-08 | 腾讯科技(深圳)有限公司 | 网络应用攻击检测方法、装置、设备及存储介质 |
-
2020
- 2020-06-18 CN CN202010556544.1A patent/CN113821791B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103744802A (zh) * | 2013-12-20 | 2014-04-23 | 北京奇虎科技有限公司 | Sql注入攻击的识别方法及装置 |
CN106295338A (zh) * | 2016-07-26 | 2017-01-04 | 北京工业大学 | 一种基于人工神经元网络的sql漏洞检测方法 |
US20190108432A1 (en) * | 2017-10-05 | 2019-04-11 | Salesforce.Com, Inc. | Convolutional neural network (cnn)-based anomaly detection |
CN108667816A (zh) * | 2018-04-19 | 2018-10-16 | 重庆邮电大学 | 一种网络异常的检测定位方法及*** |
CN109670307A (zh) * | 2018-12-04 | 2019-04-23 | 成都知道创宇信息技术有限公司 | 一种基于cnn和海量日志的sql注入识别方法 |
CN109960934A (zh) * | 2019-03-25 | 2019-07-02 | 西安电子科技大学 | 一种基于cnn的恶意请求检测方法 |
CN110245721A (zh) * | 2019-06-25 | 2019-09-17 | 深圳市腾讯计算机***有限公司 | 神经网络模型的训练方法、装置和电子设备 |
CN110427754A (zh) * | 2019-08-12 | 2019-11-08 | 腾讯科技(深圳)有限公司 | 网络应用攻击检测方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
谢鑫;任春辉;陈新宇;: "基于CNN的SQL注入检测", 计算机与网络, no. 03, 12 February 2020 (2020-02-12), pages 69 - 71 * |
Also Published As
Publication number | Publication date |
---|---|
CN113821791B (zh) | 2024-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110765770B (zh) | 一种合同自动生成方法及装置 | |
US10628129B2 (en) | Intellectual automated security, performance and code generation framework | |
WO2020108063A1 (zh) | 特征词的确定方法、装置和服务器 | |
CN113190849B (zh) | Webshell脚本检测方法、装置、电子设备及存储介质 | |
CN112347310A (zh) | 事件处理信息的查询方法、装置、计算机设备和存储介质 | |
CN110175851B (zh) | 一种作弊行为检测方法及装置 | |
CN108664791B (zh) | 一种超文本预处理器代码中的网页后门检测方法及装置 | |
CN111753171B (zh) | 一种恶意网站的识别方法和装置 | |
CN113761163A (zh) | 基于代码结构语义信息的深度代码搜索方法、***及装置 | |
CN111092894A (zh) | 一种基于增量学习的webshell检测方法、终端设备及存储介质 | |
CN114357190A (zh) | 一种数据检测方法、装置、电子设备及存储介质 | |
CN111090860A (zh) | 一种基于深度学习的代码漏洞检测方法及装置 | |
KR102051350B1 (ko) | 암호화폐 거래를 분석하기 위한 데이터 획득 방법 및 장치 | |
CN113961768B (zh) | 敏感词检测方法、装置、计算机设备和存储介质 | |
CN110084323A (zh) | 端到端语义解析***及训练方法 | |
WO2020233381A1 (zh) | 基于语音识别的服务请求方法、装置及计算机设备 | |
CN112925883A (zh) | 搜索请求处理方法、装置、电子设备及可读存储介质 | |
CN112311809A (zh) | 一种攻击检测方法及装置 | |
CN115221517A (zh) | 一种开源存储库恶意包检测方法及*** | |
CN112817877B (zh) | 异常脚本检测方法、装置、计算机设备和存储介质 | |
CN111125443A (zh) | 一种基于自动去重的试题题库在线更新方法 | |
CN113821791B (zh) | 用于检测sql注入的方法、***、存储介质及装置 | |
CN117034269A (zh) | 一种基于参数增强语义链的动态恶意软件检测方法 | |
CN113918936A (zh) | Sql注入攻击检测的方法以及装置 | |
CN113032836B (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 |