CN106355094A - 一种基于语法变换的sql注入攻击防御系统及防御方法 - Google Patents
一种基于语法变换的sql注入攻击防御系统及防御方法 Download PDFInfo
- Publication number
- CN106355094A CN106355094A CN201610972899.2A CN201610972899A CN106355094A CN 106355094 A CN106355094 A CN 106355094A CN 201610972899 A CN201610972899 A CN 201610972899A CN 106355094 A CN106355094 A CN 106355094A
- Authority
- CN
- China
- Prior art keywords
- sql
- sentence
- keyword
- procedure site
- substitution rules
- 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
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/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
Abstract
本发明提出一种基于语法变换的SQL注入攻击防御系统及方法,通过构建网站程序SQL语句变换规则、对Web服务器上网站程序中的SQL语句进行初始化变换操作、判定Web服务器发往数据库的SQL访问语句是否为注入攻击性语句以及动态变换所述网站程序SQL语句变换规则,实现了对SQL注入攻击的有效防御。本发明所述基于语法变换的SQL注入攻击防御系统及方法不依赖于规则,而是基于语句变换和语法分析来精确识别恶意的SQL注入攻击,具有极低的误报率和漏报率,适用于多种类型的Web服务器和数据库系统,能有效防御SQL注入攻击行为,显著提升对Web服务器及其后台数据库的安全防护。
Description
技术领域
本发明涉及网络安全领域,尤其涉及一种基于语法变换的SQL注入攻击防御系统及防御方法。
背景技术
随着互联网技术的迅速发展,Web技术和数据库技术已经成为组成现代化信息系统的关键技术,以Web服务器和数据库为基础的信息安全是当前核心的互联网安全问题之一。Web服务器及其后台的数据库中往往保存着政府机构、企事业单位、个人用户等的重要信息,其重要性和价值对黑客而言具有巨大的吸引力,因此极易受到黑客的攻击。
SQL注入攻击是目前Web服务器面临的一类常见的攻击,攻击者通过修改应用程序的Web表单的输入域或页面请求中的查询字符串等插入一系列的SQL命令来改变数据库查询语句,从而欺骗数据库服务器执行恶意的SQL命令,进而实现对后台数据库未经授权的访问并窃取数据库中有价值的数据。SQL注入攻击是黑客攻击Web服务器时最常用的一种攻击方式,给互联网安全造成了严重的威胁。
申请号为201310714559.6的发明专利公开了一种SQL注入攻击的识别方法及装置,首先对SQL的语法和词法进行分析,建立基于SQL语法元素和SQL语法字段的SQL注入攻击的规则特征库;当收到查询数据库的请求时,提取其中的SQL语法元素和SQL字段并和SQL注入攻击的特征库进行匹配,如果匹配成功则认为是SQL注入攻击。由于仅仅依据对SQL语法和词法的分析无法精确区分正常的SQL语句和SQL注入攻击,无法建立一个完善的SQL注入攻击的特征库,因此该方法具有较高的误报率和漏报率,且由于需要对整个特征库进行匹配,在数据库访问量较大的情况下运行效率较低。
申请号为201510057370.3的发明专利公开了一种基于语义分析的智能防SQL注入方法,对来自网页的所有请求进行数据拦截或是数据提取,将提取到的数据送入安全中心进行处理并返回结果,同时根据预设判断规则按顺序逐条检查,判断这些数据是否有害。该方法在用户请求到达Web服务器之前进行检测过滤,但由于预设判断规则是基于语义分析的,因此存在较大的误报率和漏报率,且预设判断规则需要不断地更新,该方法的实用性较差。
申请号为201210210140.2的发明专利公开了一种基于数据库的SQL注入攻击防护方法,在操作系统层建立一个底层驱动数据安全壳,利用硬盘缓存形成一个虚拟空间,将数据库加载在这个虚拟空间内,外部数据在访问数据库的时候,首先通过数据安全壳,由数据安全壳负责外部数据与数据安全壳内部数据库的数据交换;数据安全壳的管理端对外部数据所来自的地址进行记录,数据安全壳的端口转向驱动形成到达数据库的过滤通道,数据安全壳的过滤驱动对所有访问数据库的外部数据进行过滤,将安全的代码放行进入数据库,并对恶意的代码进行过滤和清除。该方法的侧重点在于,在靠近数据库这一侧对SQL注入攻击进行防护,但仍然是基于规则的,不能从根源上防御SQL注入攻击。
总的来说,现有的SQL注入攻击防御方法大多是基于规则的,即事先建立好用于区分正常SQL语句和SQL注入攻击的判断规则,由于攻击手段的不断发展和进化,再加上互联网上数据量太大且多样性太大,很难建立一个能精确区分正常SQL语句和SQL注入攻击的完善的规则库,因此该类方法往往会有较高的误报率和漏报率,需要不停地更新规则库但是仍然不能起到非常有效的防护。
发明内容
本发明的目的在于改进已有SQL注入攻击防御方法的不足,提出一种基于语法变换分析的SQL注入攻击防御系统及防御方法,不依赖于规则,而是基于语句/字段的变换和语法分析(简称语法变换)来精确识别恶意的SQL注入攻击,具有极低的误报率和漏报率,适用于多种类型的Web服务器和数据库系统,能有效防御SQL注入攻击行为,显著提升对Web服务器及其后台数据库的安全防护。
本发明解决所述技术问题创新提出的技术方案包括以下各方案及其结合:
一种基于语法变换的SQL注入攻击防御方法,包括以下步骤:
步骤一、构建网站程序SQL语句变换规则;
步骤二、将Web服务器上网站程序中的SQL语句按照网站程序SQL语句变换规则进行变换;
步骤三、截获并解析Web服务器发往数据库的SQL访问语句,判定所述SQL访问语句中是否存在符合SQL标准语法规范的语句片段,若是则判定所述SQL访问语句为注入攻击性语句,对其进行拦截,若否则对所述SQL访问语句按照网站程序SQL语句变换规则进行还原,最后将还原后的SQL访问语句发往数据库。
进一步的根据前述的基于语法变换的SQL注入攻击防御方法,其中还包括有:
步骤四、动态改变所述网站程序SQL语句变换规则,并根据改变后的网站程序SQL语句变换规则对Web服务器上网站程序中的SQL语句进行更新变换操作。
进一步的根据前述的基于语法变换的SQL注入攻击防御方法,其中按照所述网站程序SQL语句变换规则变换后的Web服务器上网站程序中的SQL语句中不存在符合SQL标准语法规范的语句片段。
进一步的根据前述的基于语法变换的SQL注入攻击防御方法,其中步骤三中,仅需判定Web服务器发往数据库的SQL访问语句中的用户输入部分是否存在符合SQL标准语法规范的语句片段,若是则判定所述SQL访问语句为注入攻击性语句,将其直接丢弃并生成日志信息。
一种基于语法变换的SQL注入攻击防御系统,包括:
变换规则构建单元,用于构建网站程序SQL语句变换规则;
初始化变换单元,用于将Web服务器上网站程序中的SQL语句按照网站程序SQL语句变换规则进行变换;
攻击判定单元,用于截获并解析Web服务器发往数据库的SQL访问语句,判定所述SQL访问语句中是否存在符合SQL标准语法规范的语句片段,若是则判定所述SQL访问语句为注入攻击性语句,对其进行拦截,若否则对所述SQL访问语句按照网站程序SQL语句变换规则进行还原,最后将还原后的SQL访问语句发往数据库。
进一步的根据前述的基于语法变换的SQL注入攻击防御系统,其中还包括有:动态更新单元,用于动态改变所述网站程序SQL语句变换规则,并根据改变后的网站程序SQL语句变换规则对Web服务器上网站程序中的SQL语句进行更新变换操作。
一种基于语法变换的SQL注入攻击防御系统,包括:变换规则初始化单元、网站程序SQL语句变换单元、通信数据处理单元、变换规则动态更新单元和变换规则存储单元;
所述变换规则初始化单元基于用户配置信息构建网站程序SQL语句变换规则,并将网站程序SQL语句变换规则及其生成时间存储于变换规则存储单元,并通知网站程序SQL语句变换单元按照网站程序SQL语句变换规则完成对Web服务器上网站程序中的SQL语句的初始化变换操作;
所述网站程序SQL语句变换单元根据变换规则初始化单元或变换规则动态更新单元的变换通知,按照变换规则存储单元中存储的网站程序SQL语句变换规则对Web服务器上网站程序中的SQL语句执行变换操作;
所述通信数据处理单元截获Web服务器发往数据库的SQL访问语句,并判定所述SQL访问语句中是否存在有符合SQL标准语法规范的语句片段,若是则判定所述SQL访问语句为注入攻击性语句,对其进行拦截,若否则对所述SQL访问语句按照变换规则存储单元中存储的网站程序SQL语句变换规则进行还原,然后将还原后的SQL访问语句发往数据库;
所述变换规则动态更新单元动态改变变换规则存储单元中存储的网站程序SQL语句变换规则,并通知网站程序SQL语句变换单元按照更新后的网站程序SQL语句变换规则对Web服务器上网站程序中的SQL语句进行变换操作,待变换操作完成后删除变换规则存储单元中存储的旧的网站程序SQL语句变换规则。
一种基于语法变换的SQL注入攻击防御方法,包括以下步骤:
步骤一、构建网站程序SQL关键字替换规则集合,所述网站程序SQL关键字替换规则集合中包括有SQL关键字和每一个SQL关键字所对应的替换字符串;
步骤二、对Web服务器上网站程序中的SQL语句进行初始化替换操作,将SQL语句中的SQL关键字按照网站程序SQL关键字替换规则集合替换成对应的替换字符串;
步骤三、截获并解析Web服务器发往数据库的SQL访问语句,判定所述SQL访问语句中是否存在有SQL关键字,若是则判定所述SQL访问语句为注入攻击性语句,对其进行拦截,若否则对所述SQL访问语句按照网站程序SQL关键字替换规则集合进行还原,将其中的替换字符串还原为对应的SQL关键字,最后将还原后的SQL访问语句发往数据库。
进一步的根据前述的基于语法变换的SQL注入攻击防御方法,其中还包括有:
步骤四、动态变换所述网站程序SQL关键字替换规则集合,并根据变换后的网站程序SQL关键字替换规则集合对Web服务器上网站程序中的SQL语句进行更新替换操作。
进一步的根据前述的基于语法变换的SQL注入攻击防御方法,其中步骤一具体包括以下步骤:
(1-1)、根据用户配置信息生成SQL关键字集合;
(1-2)、为SQL关键字集合中的每一个SQL关键字生成对应的一个替换字符串,由所有的SQL关键字、替换字符串以及SQL关键字与替换字符串的对应关系构成所述网站程序SQL关键字替换规则集合。
进一步的根据前述的基于语法变换的SQL注入攻击防御方法,其中所述网站程序SQL关键字替换规则集合中,所述SQL关键字和替换字符串具有一一对应关系,每一个SQL关键字所对应的替换字符串为没有具体含义的、不常见的字符串,同时所述替换字符串中不含有与SQL关键字形式相同的字符串。
进一步的根据前述的基于语法变换的SQL注入攻击防御方法,其中步骤三中按照以下方式判定Web服务器发往数据库的SQL访问语句中是否存在有SQL关键字:首先将SQL访问语句中的字符串与网站程序SQL关键字替换规则集合中的SQL关键字进行对比,以确定SQL访问语句中是否存在与SQL关键字形式相同的字符串;当SQL访问语句中存在与SQL关键字形式相同的字符串时,进一步对所述字符串进行语法分析,以确定所述字符串的类型是否是SQL关键字类型;当经过语法分析确定所述字符串的类型是SQL关键字类型时,判定所述SQL访问语句中存在有SQL关键字,所述SQL访问语句为注入攻击性语句。
进一步的根据前述的基于语法变换的SQL注入攻击防御方法,其中步骤三中,仅需判定Web服务器发往数据库的SQL语句中的用户输入部分是否存在有SQL关键字,若是则判定所述SQL语句为注入攻击性语句,将其直接丢弃并生成日志信息。
进一步的根据前述的基于语法变换的SQL注入攻击防御方法,其中步骤四具体包括以下步骤:
(4-1)、每隔一段时间生成一套新的网站程序SQL关键字替换规则集合;
(4-2)、按照新的网站程序SQL关键字替换规则集合对Web服务器上网站程序中的SQL语句进行更新替换操作,将SQL语句中的SQL关键字按照新的网站程序SQL关键字替换规则集合替换成对应的替换字符串;
(4-3)、删除旧的网站程序SQL关键字替换规则集合。
一种基于语法变换的SQL注入攻击防御系统,包括:
替换规则构建单元,用于构建网站程序SQL关键字替换规则集合,所述网站程序SQL关键字替换规则集合中包括有SQL关键字和每一个SQL关键字所对应的替换字符串;
初始化替换单元,用于对Web服务器上网站程序中的SQL语句进行初始化替换操作,将SQL语句中的SQL关键字按照网站程序SQL关键字替换规则集合替换成对应的替换字符串;
攻击判定单元,用于截获并解析Web服务器发往数据库的SQL访问语句,判定所述SQL访问语句中是否存在有SQL关键字,若是则判定所述SQL访问语句为注入攻击性语句,对其进行拦截,若否则对所述SQL访问语句按照网站程序SQL关键字替换规则集合进行还原,将所述SQL访问语句中的替换字符串还原为对应的SQL关键字,最后将还原后的SQL访问语句发往数据库。
进一步的根据前述的基于语法变换的SQL注入攻击防御系统,其中还包括有:动态变换单元,用于动态变换所述网站程序SQL关键字替换规则集合,并根据变换后的网站程序SQL关键字替换规则集合对Web服务器上网站程序中的SQL语句进行更新替换操作。
一种基于语法变换的SQL注入攻击防御系统,包括:替换规则初始化单元、网站程序SQL关键字替换单元、通信数据处理单元、替换规则动态变换单元和替换规则存储单元;
所述替换规则初始化单元基于用户配置信息构建网站程序SQL关键字替换规则集合,并将网站程序SQL关键字替换规则集合及其生成时间存储于替换规则存储单元,并通知网站程序SQL关键字替换单元按照网站程序SQL关键字替换规则集合完成对Web服务器上网站程序中的SQL语句的初始化替换操作,其中所述网站程序SQL关键字替换规则集合中包括有SQL关键字和每一个SQL关键字所对应的替换字符串;
所述网站程序SQL关键字替换单元根据替换规则初始化单元或替换规则动态变换单元的替换通知,按照替换规则存储单元中存储的网站程序SQL关键字替换规则集合对Web服务器上网站程序中的SQL语句执行替换操作;
所述通信数据处理单元截获Web服务器发往数据库的SQL访问语句,并判定所述SQL访问语句中是否存在有SQL关键字,若是则判定所述SQL访问语句为注入攻击性语句,对其进行拦截,若否则对所述SQL访问语句按照替换规则存储单元中存储的网站程序SQL关键字替换规则集合进行还原,将SQL访问语句中的替换字符串还原为对应的SQL关键字,然后将还原后的SQL访问语句发往数据库;
所述替换规则动态变换单元动态变换替换规则存储单元中存储的网站程序SQL关键字替换规则集合,并通知网站程序SQL关键字替换单元按照变换后新的网站程序SQL关键字替换规则集合对Web服务器上网站程序中的SQL语句进行替换操作,待替换操作完成后删除替换规则存储单元中存储的旧的网站程序SQL关键字替换规则集合。
进一步的根据前述的基于语法变换的SQL注入攻击防御系统,其中所述通信数据处理单元包括语法分析模块和网站程序SQL关键字还原模块,所述语法分析模块首先提取Web服务器发往数据库的SQL访问语句中的字符串,并与替换规则存储单元中存储的网站程序SQL关键字替换规则集合中的SQL关键字进行对比,以确定所述SQL访问语句中是否存在与SQL关键字形式相同的字符串,若不存在则将所述SQL访问语句发往网站程序SQL关键字还原模块,若存在则进一步分析判断所述SQL访问语句中包括的与SQL关键字形式相同的字符串的类型是否是SQL关键字类型,若是则判定所述SQL访问语句为注入攻击性语句,将其直接丢弃,否则将所述SQL访问语句发往网站程序SQL关键字还原模块;所述网站程序SQL关键字还原模块按照替换规则存储单元中存储的网站程序SQL关键字替换规则集合对所述SQL访问语句进行还原,将SQL访问语句中的替换字符串还原为对应的SQL关键字,最后将还原后的SQL访问语句发往数据库。
本发明所述的基于语法变换的SQL注入攻击防御系统的用途,将所述基于语法变换的SQL注入攻击防御系统布置于Web服务器上或者布置于Web服务器和数据库之间。
本发明的有益效果:
1)、本发明创新了一种SQL注入攻击防御的新思路,不基于规则,因此无需维护一个庞大的规则库,极大地降低了SQL注入攻击防御的开发维护成本;系统不仅能防御已知的SQL注入攻击,也能防御未知的SQL注入攻击;
2)、本发明对于正常用户访问Web服务器及后台数据库的请求是透明的,而对于SQL注入攻击,攻击者恶意注入的SQL语句经过本发明的语句替换和语法分析后会被精确识别为SQL注入攻击,具有极低的误报率和漏报率;
3)、本发明引入动态变换的思想,打破传统SQL注入攻击防御方法的静态性特征,通过动态变换Web服务器上网站程序中SQL语句/SQL关键字的替换规则,使得攻击者无法通过不断的攻击尝试来突破SQL注入攻击防御系统;
4)、经样机使用实践证明,本发明能有效阻止SQL注入攻击行为,且本发明所述方案实现布置容易、操作简单、安全可靠,具有显著的经济社会效益和广阔的市场推广应用前景。
附图说明
图1是本发明所述基于语法变换的SQL注入攻击防御方法的总体流程图;
图2是本发明所述基于语法变换的SQL注入攻击防御系统的总体结构框图;
图3是作为本发明优选实施方式的SQL注入攻击防御系统的结构框图;
图4是作为本发明优选实施方式的SQL注入攻击防御系统中通信数据处理单元的结构框图;
图5是作为本发明优选实施方式的SQL注入攻击防御方法的流程图;
图中各附图标记的含义如下:
1-变换规则初始化单元,2-变换规则存储单元,3-网站程序SQL语句变换单元,4-通信数据处理单元;5-变换规则动态更新单元;6-日志单元。
11-替换规则初始化单元,12-替换规则存储单元,13-网站程序SQL关键字替换单元,14-通信数据处理单元;15-替换规则动态变换单元;16-日志单元。
具体实施方式
以下结合附图对本发明的技术方案进行详细的描述,以使本领域技术人员能够更加清楚地理解本发明的方案,但并不因此限制本发明的保护范围。
为了便于叙述,首先给出一个SQL注入攻击的例子。假设某个网站登录验证的SQL查询语句为select*from users where name='用户输入的用户名'and pw='用户输入的密码',攻击者恶意输入用户名1'or'1'='1以及密码1'or'1'='1,此时原来的SQL查询语句将变为select*from users where name='1'or'1'='1'and pw='1'or'1'='1',也即等价于select*from users,攻击者通过这样的注入,可以实现无账号密码登录网站,达到其攻击目的。由于SQL注入攻击的本质是攻击者通过修改应用程序的Web表单的输入域或页面请求中的查询字符串等插入一系列的SQL语句来改变操作数据库的命令,也即攻击者注入的SQL语句是动态生成的。
下面详细说明本发明的技术构思和技术方案。
本发明所述基于语法变换的SQL注入攻击防御方法,如附图1流程所示,包括以下步骤:
步骤一、构建网站程序SQL语句变换规则。所述网站程序SQL语句变换规则中包括有对Web服务器上网站程序中的SQL语句进行变换的规则,这里需要说明的是,完整的SQL访问语句包括Web服务器上网站程序中预先写入的处于静态的SQL语句部分和用户动态输入的部分,比如SQL语句:select*from users where name='用户输入的用户名'and pw='用户输入的密码',其中引号部分表示用户动态输入部分,引号部分以外的select*fromusers where name则是预先写入网站程序中的格式固定的网站程序中SQL语句部分,本发明的技术方案中所述的网站程序中的SQL语句专指这种预先写入Web服务器上网站程序中的处于静态的SQL语句部分。上述网站程序SQL语句变换规则中包括有对网站程序SQL语句进行变换的规则,通过这种变换规则将网站程序中的SQL语句变换为用户自定义的另一种形式,优选的可将网站程序中SQL语句中的每一个SQL关键字替换为没有特定含义、不常见的替换字符串,由这些替换字符串构成网站程序SQL语句的变换语句,亦可采用用户定义的其他变换形式来对网站程序中的SQL语句进行变换,本发明并不对这种变换规则进行特别限定,但是对网站程序SQL语句变换规则的基本要求是:要求Web服务器上网站程序中的SQL语句按照网站程序SQL语句变换规则进行变换后,其中不包括有符合SQL标准语法规范的语句片段,因此所述网站程序SQL语句变换规则一般是将Web服务器上网站程序中的SQL语句变换为不常见的、没有特定含义的不规则语句形式,如不包括有任何SQL关键字的语句形式等。
步骤二、对Web服务器上网站程序中的SQL语句进行初始化替换操作,将网站程序中的SQL语句按照步骤一构建的网站程序SQL语句变换规则进行变换。
步骤三、截获并解析Web服务器发往数据库的SQL访问语句,判定所述SQL访问语句中是否存在符合SQL标准语法规范的语句片段,若是则判定所述SQL访问语句为注入攻击性语句,对其进行拦截,因为所述SQL访问语句包括两部分即网站程序中的SQL语句部分和用户输入部分,如上所述在步骤二中已将网站程序中的SQL语句部分进行了变换,所以若所述SQL访问语句中含有符合SQL标准语法规范的语句片段,则一定是用户输入部分输入的,则这种情况下用户对SQL数据库的访问是带有攻击目的的,应对这种SQL访问语句直接进行拦截处理。同理若所述SQL访问语句中不存在符合SQL标准语法规范的语句片段,则不会对SQL数据库造成任何攻击,此时需要将SQL访问语句进行还原处理,因为其中的网站程序SQL语句部分已在步骤二中进行了变换操作,按照网站程序SQL语句变换规则将SQL访问语句中的网站程序SQL语句部分进行还原后,将整个SQL访问语句发往数据库进行访问操作。
为了防止攻击者猜测Web服务器上网站程序中SQL语句的变换规则,需要定时对网站程序SQL语句变换规则进行动态变换,即每隔一段时间生成一套新的网站程序SQL语句变换规则,然后按照新的网站程序SQL语句变换规则对Web服务器网站程序中的SQL语句进行变换,变换完毕后把旧的网站程序SQL语句变换规则删除。
本发明所述的基于语法变换的SQL注入攻击防御方法通过SQL注入攻击防御系统实现,优选的所述SQL注入攻击防御系统如附图2所示的,包括变换规则初始化单元、网站程序SQL语句变换单元、通信数据处理单元、变换规则动态更新单元和变换规则存储单元。其中变换规则初始化单元1基于用户配置信息构建网站程序SQL语句变换规则,并将网站程序SQL语句变换规则及其生成时间存储于变换规则存储单元2,同时通知网站程序SQL语句变换单元3按照网站程序SQL语句变换规则完成对Web服务器上网站程序中的SQL语句的初始化变换操作。所述网站程序SQL语句变换单元3根据变换规则初始化单元1或变换规则动态更新单元5的变换通知,按照变换规则存储单元2中存储的网站程序SQL语句变换规则对Web服务器上网站程序中的SQL语句执行变换操作。所述通信数据处理单元4截获Web服务器发往数据库的SQL访问语句,并判定所述SQL访问语句中是否存在符合SQL标准语法规范形式的语句片段,若是则判定所述SQL访问语句为注入攻击性语句,对其进行拦截,同时向日志单元6生成日志信息,若否则对所述SQL访问语句按照变换规则存储单元2中存储的网站程序SQL语句变换规则进行还原,将SQL访问语句中的变换语句还原成SQL标准语法规范的形式,然后将还原后的SQL访问语句发往数据库。所述变换规则动态更新单元5动态更新变换规则存储单元2中存储的网站程序SQL语句变换规则,并通知网站程序SQL语句变换单元3按照变换后新的网站程序SQL语句变换规则对Web服务器上网站程序中的SQL语句进行更新变换操作,待更新变换操作完成后删除变换规则存储单元2中存储的旧的网站程序SQL语句变换规则。
本发明所述的基于语法变换的SQL注入攻击防御方案,通过提前将Web服务器上网站程序中的SQL语句变换为用户自定义的形式,这样在截获Web服务器发往数据库的SQL访问语句后,能够通过语法分析清楚的获知这种SQL访问语句是否含有注入攻击性SQL语句片段,从而能够及时拦截SQL注入攻击。在本领域SQL语句由若干个SQL语句片段组成,而SQL语句片段又包括有SQL关键字,所以SQL关键字可作为进行SQL注入攻击防御的最小单元,因此下面以基于SQL关键字替换和SQL关键字分析的注入攻击防御方案作为本发明所述SQL注入攻击防御方案的优选实施方案(下位实施方案),并详细描述这种优选实施方案,以更加清楚的理解本发明的核心技术构思,但并不将本发明的保护范围唯一限制于这种基于SQL关键词的注入攻击防御方案。
优选实施方案:基于SQL关键词替换和语法分析的SQL注入攻击防御方案。
首先在前述基于语法变换的SQL注入攻击防御构思的基础上,详细描述这种基于SQL关键字替换和语法分析的SQL注入攻击防御方案的基本原理。
首先,技术人员确定用于操作数据库的所有或常用SQL关键字(包括select、where、union、and、or等),通过用户配置模块输入,形成一个SQL关键字集合,记为集合A,集合A中的每一个元素对应于一个SQL关键字。接着根据集合A构建与之一一对应的集合B,为集合A中的每一个元素分别对应一个没有具体含义、不常见的字符串(字符串随机生成,保证不重复,不包括有与SQL关键字形式相同的字符串),优选的可进行等长度替换,例如集合A中出现的select对应的字符串为df#g¥u,同时记录集合A中每一个元素的对应规则,形成网站程序SQL关键字替换规则集合,记为集合B,也就是说集合B中包括有集合A中的每一个SQL关键字和与其对应的替换字符串,例如集合A为:{select,where,and,or,……},则集合B为:{select→df#g¥u,where→r¥#de,and→@#*,or→%&,……},同时保证集合B中与每一个SQL关键字对应的字符串中不含有SQL关键字。
然后在初始化阶段中把作为数据库访问端的Web服务器上网站程序中的静态SQL语句中的SQL关键字(包括select、where、union、and、or等)按照集合B的规则分别替换成对应的字符串(集合B中包括有各SQL关键字和其对应的字符串,优选按照等长度对应和替换);需要说明的是,进行这种替换操作针对的是Web服务器上网站程序中预先写入的处于静态的SQL语句部分,SQL语句是用于操作数据库的语句,包括预先写入网站程序中的静态部分和用户动态输入部分,比如SQL语句:select*from users where name='用户输入的用户名'and pw='用户输入的密码',其中引号部分表示用户输入部分,引号部分以外的则是预先写入网站程序中的格式固定的网站程序中SQL语句部分,上述在初始化阶段进行的按照集合B的替换仅针对的是网站程序中的SQL语句的SQL关键字,比如网站程序中某个select是不属于SQL语句中的普通字符串或者属于用户输入的字符串,则并不是网站程序中的SQL语句部分的SQL关键字,对该select字符串并不进行替换,网站程序中用于操作一类数据库的SQL语句通常都是固定的。
上述替换是在布置所述SQL注入攻击防御系统后进行的初始化阶段完成的。然后当Web服务器上的某个网站程序需要操作数据库时,所布置的SQL注入攻击防御系统截获网站程序发送至数据库的通信数据,解析通信数据中用于操作数据库的SQL语句,如果不存在SQL注入攻击,则从网站程序发送至数据库的通信数据中的SQL语句里一定不包含SQL关键字,反之如果SQL语句里存在有select、where、union、and、or等与SQL关键字形式一样的字符串,则可以肯定这些字符串存在于SQL语句的用户输入部分(因为用户输入部分以外的SQL关键字已被按照集合B的规定进行了替换),是由用户动态输入的,这种情况下存在注入攻击的可能性就比较大,需要对这种SQL语句做进一步的语法分析,以确定用户所输入的select、where、union、and、or等与SQL关键字形式相同的各字符串是否是SQL关键字,如果通过语法分析发现这类字符串中存在作为SQL关键字属性的字符串,则可以判定该SQL语句是用户恶意输入的注入攻击性质的访问语句,需要对其进行拦截防御处理。下面具体给出防御操作步骤:
第一步,判断该SQL语句中是否存在select、where、union、and、or等这一类与SQL关键字形式相同的字符串,如果不存在,则说明该SQL语句不存在注入攻击,直接进行第二步操作;如果存在,对该SQL语句进行语法分析,如果语法分析的结果显示该SQL语句中不存在作为SQL关键字的字符串,则说明该SQL语句中不存在注入攻击,进行第二步操作,如果语法分析的结果显示SQL语句所包括的select、where、union、and、or等与SQL关键字形式相同的字符串中存在有作为SQL关键字的字符串,则判定该SQL语句中存在注入攻击,把该访问数据库的通信数据直接丢弃,同时依据判定结果生成SQL注入攻击的日志信息。这里需要说明的是,对SQL语句中是否存在select、where、union、and、or等与SQL关键字形式相同的字符串进行的判断可以借助集合B来完成,因为集合B中同时包括有所有的SQL关键字以及每个SQL关键字所对应的字符串,通过提取SQL语句中的各字符串(优选的只提取SQL语句中用户输入部分的字符串)并与集合B中的SQL关键字部分进行比较,即可判定SQL语句中是否包括有与SQL关键字形式相同的字符串。
第二步,对于第一步中判定为正常的SQL语句,查询网站程序SQL关键字替换规则集合B,把该SQL语句中(优选对除用户输入部分以外的SQL语句部分进行)按照集合B替换过的字符串再次按照集合B中的对应规则还原为对应的SQL关键字(例如把df#g¥u还原成select),然后把修改后的通信数据发送至数据库。
进一步,为了防止攻击者猜测Web服务器上网站程序用于操作数据库的SQL语句的SQL关键字(包括select、where、union、and、or等)的替换规则集合B,需要对集合B进行动态变换,即每隔一段时间生成一套新的网站程序SQL关键字替换规则集合B1,然后按照新的集合B1对Web服务器网站程序中用于操作数据库的SQL语句的SQL关键字(包括select、where、union、and、or等)进行替换,替换完毕后把旧的集合B删除。如果Web服务器网站程序中需要替换的内容较多时,每次进行替换需要耗费一定的时间,为了保证Web服务器能持续正常对外提供服务,在网站程序SQL关键字替换的过程中,优选的新旧两套替换规则集合可同时被使用(通过替换规则生成时间进行选择),当基于旧的替换规则集合B的所有操作完成后把旧的替换规则集合B删除,以后均按照新的集合B1替换。同时生成新的集合B1时只需要对原有集合B中各SQL关键字元素对应的字符串部分进行重新生成即可。
下面基于上述发明原理,详细给出本实施方案中所述的基于SQL关键字替换和语法分析的SQL注入攻击防御系统和防御方法。
如图3所示,所述SQL注入攻击防御系统包括替换规则初始化单元11、替换规则存储单元12、网站程序SQL关键字替换单元13、通信数据处理单元14、替换规则动态变换单元15和日志单元16;其中所述替换规则初始化单元11连接于替换规则存储单元12和网站程序SQL关键字替换单元13;替换规则存储单元12连接于网站程序SQL关键字替换单元13和通信数据处理单元14;网站程序SQL关键字替换单元13连接于替换规则存储单元12和替换规则动态变换单元15;通信数据处理单元14连接于替换规则存储单元12和日志单元16;替换规则动态变换单元15连接于替换规则存储单元12和网站程序SQL关键字替换单元13。
替换规则初始化单元11用于生成网站程序SQL关键字替换规则集合(集合B)。首先技术人员确定用于操作数据库的SQL语句的全部或常用SQL关键字(包括select、where、union、and、or等),形成SQL关键字集合,记为集合A,替换规则初始化单元11根据用户配置的SQL关键字集合A,为集合A中的每一个元素分别生成对应的没有具体含义、不常见的字符串(字符串随机生成,保证不重复),优选的生成等长的字符串,并记录集合A中的每个元素及其对应的字符串以及两者间的对应关系(集合B中的对应关系可表示为select→df#g¥u的形式,但不限于此),形成网站程序SQL关键字替换规则集合,记为集合B,在集合B中包括有全部的SQL关键字和每一个SQL关键字所对应的替换字符串。然后替换规则初始化单元11把生成的集合B以及集合B的生成时间存储到替换规则存储单元12中,并在初始化阶段通知网站程序SQL关键字替换单元13完成对Web服务器网站程序中的SQL关键字的首次替换。替换规则初始化单元11保证集合B中不包括有与SQL关键字相同的字符串。替换规则存储单元12用于存储网站程序SQL关键字替换规则集合B以及集合B的生成时间。
网站程序SQL关键字替换单元13接收来自替换规则初始化单元11或替换规则动态变换单元15发送过来的通知,对Web服务器上网站程序SQL关键字进行替换。具体的网站程序SQL关键字替换单元13收到来自替换规则初始化单元11的替换通知后,查询替换规则存储单元12中存储的网站程序SQL关键字替换规则集合B,把Web服务器上网站程序中的SQL语句的SQL关键字(包括select、where、union、and、or等)替换成集合B中对应的字符串(例如把select替换为df#g¥u),这对应于初始化阶段的替换;网站程序SQL关键字替换单元13收到来自替换规则动态变换单元15发送过来的替换通知后,此时替换规则存储单元12中已存储有由替换规则动态变换单元15新生成的网站程序SQL关键字替换规则集合B1,网站程序SQL关键字替换单元13按照新生成的网站程序SQL关键字替换规则集合B1将Web服务器上网站程序中的SQL语句中的SQL关键字替换为对应的替换字符串,这对应于动态变换阶段的更新替换,优选的所述网站程序SQL关键字替换单元13中记录有Web服务器上网站程序中的各SQL关键字的替换位置,在后续的动态变换过程中,网站程序SQL关键字替换单元13直接按照新生成的网站程序SQL关键字替换规则集合B1对所记录的网站程序替换位置的字符串进行更新替换,这样可以较快的完成网站程序中的SQL语句的动态变换。替换完成后网站程序SQL关键字替换单元13通知替换规则动态变换单元15把替换规则存储单元12中存储的旧的集合B删除(依据规则集合B的生成时间判断)。如果替换规则存储单元12中只有一套集合B或者基于旧集合B的操作尚未完成,则不进行删除操作。
通信数据处理单元14截获网站程序发送至数据库的通信数据,解析通信数据中的SQL语句,所述通信数据处理单元14具有语法分析模块和网站程序SQL关键字还原模块,优选的所述语法分析模块可包括比较判断模块和词法分析模块,均连接于替换规则存储单元12,如附图4所示的。所述比较判断模块判断截获的SQL语句中是否存在select、where、union、and、or等与SQL关键字形式相同的字符串,具体判断过程为,比较判断模块查询替换规则存储单元12存储的网站程序SQL关键字替换规则集合B,提取SQL语句中的各字符串(优选只提取SQL语句中用户输入部分的字符串)并与集合B中的SQL关键字部分进行比较,以判定SQL语句中是否存在与SQL关键字形式相同的字符串,因为如上所述集合B中同时包括有所有的SQL关键字以及每个SQL关键字所对应的替换字符串。当所述比较判断模块判定SQL语句中不存在着与SQL关键字形式相同的字符串时,所述SQL语句为正常访问语句,将其发送至网站程序SQL关键字还原模块;当所述比较判断模块判定SQL语句中存在着与SQL关键字形式相同的字符串时,将其发送至所述词法分析模块,由所述词法分析模块进一步的对该SQL语句(优选只对其包括的与SQL关键字形式相同的字符串部分)进行词法分析,以判定SQL语句中存在的与SQL关键字形式相同的字符串是否是SQL关键字,优选的所述词法分析模块中结合lab injection词法分析库和MYSQL数据库标准词法分析程序MYSQLlex对各字符串的属性进行词法分析,当分析后得到SQL语句中包括的与SQL关键字形式相同的字符串的属性是SQL关键字时,则判定所述SQL语句为注入攻击性语句,将其直接丢弃,并把判定结果以及存在注入攻击的SQL语句写成日志信息发送至日志单元16;当分析后得到SQL语句中包括的与SQL关键字形式相同的字符串不属于SQL关键字时,则判定所述SQL语句为正常访问语句,将其发送至网站程序SQL关键字还原模块。对于正常访问的SQL语句,所述网站程序SQL关键字还原模块对SQL语句中的各SQL关键字进行还原操作,首先网站程序SQL关键字还原模块查询替换规则存储单元12中存储的网站程序SQL关键字替换规则集合B,接着把该SQL语句中(优选的仅对除用户输入部分以外的SQL语句部分进行)按照集合B替换过的字符串再次按照集合B中的对应规则还原为对应的SQL关键字(例如把df#g¥u还原成select),最后把SQL语句经过处理后的通信数据发送至数据库。
替换规则动态变换单元15包括网站程序SQL关键字替换规则集合生成模块、网站程序SQL关键字替换规则集合删除模块。网站程序SQL关键字替换规则集合生成模块每隔一段时间生成用于替换网站程序SQL关键字的一套新的规则集合B1,具体生成过程优选为复制当前的网站程序SQL关键字替换规则集合B,然后对集合B中各SQL关键字元素对应的字符串修改为新的字符串,形成新的集合B1。所述网站程序SQL关键字替换规则集合生成模块把新生成的集合B1以及集合B1的生成时间存储到替换规则存储单元12中,同时在通知网站程序SQL关键字替换单元13利用最新生成的集合B1(通过集合B1的生成时间判断)对Web服务器上网站程序中的SQL关键字进行替换,这种替换对应于初始化阶段以后的动态变换替换过程,替换完成后,网站程序SQL关键字替换单元13向网站程序SQL关键字替换规则集合删除模块发送删除通知,网站程序SQL关键字替换规则集合删除模块接收到网站程序SQL关键字替换单元13的删除通知后,删除存储在替换规则存储单元12中的旧的集合B。
下面在上述原理的基础上给出本优选实施方案中的SQL注入攻击防御方法,如附图5所示,所述的基于语法变换的SQL注入攻击防御系统可布置于Web服务器上,也可布置在Web服务器和数据库之间的任意一点,防御系统的布置位置不做限制,所述防御方法包括以下步骤:
步骤(1)、构建网站程序SQL关键字替换规则集合。首先技术人员确定用于操作数据库的SQL语句中包括的SQL关键字,形成SQL关键字集合A,接着为集合A中的每一个SQL关键字元素对应生成一个没有具体含义、不常见的替换字符串(优选等长度),并记录每一个SQL关键字元素与替换字符串的对应规则,形成集合B,即为网站程序SQL关键字替换规则集合,集合B中包括有所有的SQL关键字和每一个SQL关键字所对应的替换字符串。如前所述集合A包括了全部SQL关键字,形式为{……,select,where,and,or,……},则集合B的形式为:{……,select→df#g¥u,where→r¥#de,and→@#*,or→%&,……},同时集合B中的各替换字符串中不含有SQL关键字。
步骤(1)具体的由替换规则初始化单元11完成,替换规则初始化单元11根据用户配置的SQL关键字集合A构建网站程序SQL关键字替换规则集合B,并把生成的网站程序SQL关键字替换规则集合B以及集合B的生成时间存储到替换规则存储单元12中。
步骤(2)、对Web服务器上网站程序中SQL语句的全部SQL关键字进行初始化替换操作,将网站程序中SQL语句中的所有SQL关键字按照集合B的规则分别替换成对应的替换字符串。
步骤(2)具体的由替换规则初始化单元11、替换规则存储单元12和网站程序SQL关键字替换单元13完成。替换规则初始化单元11通知网站程序SQL关键字替换单元13完成对Web服务器网站程序中的SQL语句中的SQL关键字的首次替换,网站程序SQL关键字替换单元13收到来自替换规则初始化单元11发送的替换通知后,查询替换规则存储单元12中存储的网站程序SQL关键字替换规则集合B,把Web服务器上网站程序中的SQL语句中的所有SQL关键字按照集合B的规则分别替换成对应的字符串。
步骤(3)、截获并解析Web服务器发往数据库的SQL语句,判定所述SQL语句中是否存在有SQL关键字,若是则判定所述SQL语句为注入攻击性访问语句,将其直接丢弃并生成日志信息,若否则将所述SQL语句按照网站程序SQL关键字替换规则集合进行还原,将SQL语句中的所有替换字符串按照集合B中的对应规则还原为对应的SQL关键字,然后将SQL语句发往数据库。该步骤中判定所述SQL语句中是否存在有SQL关键字时,通过以下方式进行:首先判断该SQL语句中是否存在select、where、union、and、or等与SQL关键字形式相同的字符串,通过提取SQL语句中的各字符串(优选的只提取SQL语句中用户输入部分的字符串)并与集合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关键字替换规则集合B进行还原,查询集合B,把所述SQL语句中(优选的仅对除用户输入部分以外的SQL语句部分进行)按照集合B替换过的各字符串再次按照集合B中的对应规则还原为对应的SQL关键字,然后把修改后的通信数据发送至数据库。
步骤(3)具体的由通信数据处理单元14完成。通信数据处理单元14截获网站程序发送至数据库的通信数据,解析通信数据中的SQL语句,所述通信数据处理单元14具有两大模块:语法分析模块和网站程序SQL关键字还原模块,其中语法分析模块可包括比较判断模块和词法分析模块,均连接于替换规则存储单元12。所述比较判断模块判断截获的SQL语句中是否存在select、where、union、and、or等与SQL关键字形式相同的字符串,具体判断过程为,比较判断模块查询替换规则存储单元12存储的网站程序SQL关键字替换规则集合B,提取SQL语句中的各字符串(优选的只提取SQL语句中用户输入部分的字符串)并与集合B中的SQL关键字部分进行比较,以判定SQL语句中是否存在与SQL关键字形式相同的字符串,因为如上所述集合B中同时包括有所有的SQL关键字以及每个SQL关键字所对应的替换字符串。当所述比较判断模块判定SQL语句中不存在着与SQL关键字形式相同的字符串时,所述SQL语句为正常访问语句,将其发送至网站程序SQL关键字还原模块;当所述比较判断模块判定SQL语句中存在着与SQL关键字形式相同的字符串时,将其发送至所述词法分析模块,由所述词法分析模块进一步的对该SQL语句(优选只对其包括的与SQL关键字形式相同的字符串部分)进行词法分析,以判定SQL语句中存在的与SQL关键字形式相同的字符串是否是SQL关键字;优选的所述词法分析模块中结合lab injection词法分析库和MYSQL数据库标准词法分析程序MYSQLlex对各字符串的属性进行词法分析,当分析后得到SQL语句中包括的与SQL关键字形式相同的字符串的属性是SQL关键字属性时,则判定所述SQL语句为注入攻击性语句,将其直接丢弃,并把判定结果以及存在注入攻击的SQL语句写成日志信息发送至日志单元16;当分析后得到SQL语句中包括的与SQL关键字形式相同的字符串不作为SQL关键字时,则判定所述SQL语句为正常访问语句,将其发送至网站程序SQL关键字还原模块。对于正常访问的SQL语句,所述网站程序SQL关键字还原模块对SQL语句中的各SQL关键字进行还原操作,首先网站程序SQL关键字还原模块查询替换规则存储单元12中存储的网站程序SQL关键字替换规则集合B,接着把该SQL语句中(优选的仅对除用户输入部分以外的SQL语句部分进行)按照集合B替换过的字符串再次按照集合B中的对应规则还原为对应的SQL关键字,最后把SQL语句经过处理后的通信数据发送至数据库。
步骤(4)、动态变换所述网站程序SQL关键字替换规则集合,并根据变换后新生成的网站程序SQL关键字替换规则集合对Web服务器上网站程序中的SQL语句中的全部SQL关键字进行替换操作,将SQL语句中的所有SQL关键字按照新集合的规则分别替换成对应的替换字符串。具体的每隔一段时间生成一套新的网站程序SQL关键字替换规则集合B1,具体生成过程为复制当前的网站程序SQL关键字替换规则集合B,然后将当前集合B中各SQL关键字元素对应的字符串修改为新的字符串,形成新的集合B1。接着按照新的网站程序SQL关键字替换规则集合B1对Web服务器网站程序中的SQL语句的SQL关键字进行更新替换,替换完毕后把旧的集合B删除,同时只有当基于旧的替换规则集合B的所有操作完毕后才把旧的规则集合B删除。
步骤(4)具体的由替换规则动态变换单元15和网站程序SQL关键字替换单元13完成,替换规则动态变换单元15包括网站程序SQL关键字替换规则集合生成模块、网站程序SQL关键字替换规则集合删除模块;网站程序SQL关键字替换规则集合生成模块每隔一段时间生成用于替换网站程序SQL关键字的一套新的规则集合B1,所述网站程序SQL关键字替换规则集合生成模块把新生成的集合B1以及集合B1的生成时间存储到替换规则存储单元12中,同时通知网站程序SQL关键字替换单元13利用最新生成的集合B1(通过集合B1的生成时间判断)对Web服务器上网站程序中的SQL关键字进行替换,通过查询替换规则存储单元12中存储的最新生成的集合B1(依据规则集合B1的生成时间判断),把Web服务器上网站程序中的SQL语句的SQL关键字替换成最新生成的规则集合B1中对应的字符串,网站程序SQL关键字替换单元13完成对Web服务器上网站程序中SQL关键字的替换操作后,向网站程序SQL关键字替换规则集合删除模块发送删除通知,网站程序SQL关键字替换规则集合删除模块收到来自网站程序SQL关键字替换单元13的删除通知后,删除存储在替换规则存储单元12中的旧规则集合B(依据规则集合B的生成时间判断)。
下面给出布置本实施方式所述防御系统后正常用户操作数据库和SQL注入攻击的具体实施例。
实施例1
实施例1为正常用户操作数据库的例子。假设某个网站程序中登录验证的SQL查询语句为select*from users where name='用户输入的用户名'and pw='用户输入的密码';正确的用户名为admin,正确的密码为password,用户名admin和密码password存储在数据库中。根据用户配置的SQL关键字集合A{……、select、where、and、……},构建的网站程序SQL关键字替换规则集合C为{……、select→字符串h,where→字符串i,and→字符串j、……}(此处是为了便于叙述,对替换字符串同样进行了简略描述)。首先对网站程序内容进行替换,把写入网站程序中的用于操作数据库的SQL关键字按照集合B的对应规则进行替换,即把select替换成字符串h,where替换成字符串i,and替换成字符串j。假设用户输入正确的用户名和密码查询数据库,则从网站程序发往数据库的SQL语句为h*from users iname='admin'j pw='password'。防御系统截获该条SQL语句后,发现该SQL语句中不存在与SQL关键字形式相同的字符串,接着查询规则集合B,把按照规则集合B替换过的字符串进行还原,即把字符串h还原成select,字符串i还原成where,字符串j还原成and,则该SQL语句被还原成select*from users where name='admin'and pw='password',这是一条符合数据库语法规范的SQL语句,发到数据库后能正常执行,在此例中防御系统对正常用户操作数据库而言是透明的。
实施例2
该实施例2给出用户虽然输入与SQL关键字相同的字符串,但是其仅作为访问数据,属于正常用户操作数据库的例子。假设某个网站程序中登录验证的SQL查询语句为select*from users where name='用户输入的用户名'and pw='用户输入的密码';正确的用户名为select,正确的密码为password,用户名select和密码password存储在数据库中;根据用户配置的SQL关键字集合A{……、select、where、and、……},构建的网站程序SQL关键字替换规则集合B为{……、select→字符串h,where→字符串i,and→字符串j、……}(此处是为了便于叙述,对替换的不规则字符串进行了简略描述);首先对网站程序内容进行替换,把网站程序中的用于操作数据库的SQL关键字按照集合B的对应规则进行替换,即把select替换成字符串h,where替换成字符串i,and替换成字符串j。假设用户输入正确的用户名和密码查询数据库,则从网站程序发往数据库的SQL语句为h*from users i name='select'j pw='password'。防御系统截获该条SQL语句后,发现该SQL语句中存在用户输入的与SQL关键字形式相同的字符串“select”,则对该SQL语句进行词法分析,分析结果显示该字符串select不是作为SQL关键字的select,此时则判定该SQL语句中不存在注入攻击。接着查询规则集合B,把按照规则集合B替换过的字符串进行还原,即把字符串h还原成select,字符串i还原成where,字符串j还原成and),则该SQL语句被还原成select*fromusers where name='select'and pw='password',这是符合数据库语法规范的SQL语句,发到数据库后能正常执行,在此例中防御系统对正常用户操作数据库而言也是透明的。
实施例3
下面给出SQL注入攻击的例子。假设某个网站程序中登录验证的SQL查询语句为select*from users where name='用户输入的用户名'and pw='用户输入的密码';正确的用户名为admin,正确的密码为password,用户名admin和密码password存储在数据库中;攻击者输入的用户名为1'or'1'='1,输入的密码为1'or'1'='1。如果没有布置本防御系统,则发往数据库的SQL语句会变成select*from users where name='1'or'1'='1'andpw='1'or'1'='1',也即等价于select*from users,攻击者通过这样的注入,可以实现无账号密码登录网站,达到其攻击目的。布置本防御系统后,根据用户配置的SQL关键字集合A{……、select、where、and、……},构建的网站程序SQL关键字替换规则集合B为{……、select→字符串h,where→字符串i,and→字符串j、……}(此处是为了便于叙述,对替换的不规则字符串进行了简略描述)。首先对网站程序内容进行替换,把网站程序中的用于操作数据库的SQL关键字进行替换,即把select替换成字符串h,where替换成字符串i,and替换成字符串j。假设攻击者输入的用户名为1'or'1'='1,输入的密码为1'or'1'='1,则从网站程序发往数据库的SQL语句为h*from users i name='1'or'1'='1'j pw='1'or'1'='1',防御系统截获该条SQL语句后,发现该SQL语句中存在与SQL关键字相同的字符串“or”,则对该SQL语句进行词法分析,分析结果显示其中的字符串“or”的类型是SQL关键字类型,即该字符串or是作为SQL关键字的,因此判定该SQL语句中存在注入攻击并进行阻断,从而有效防御了SQL注入攻击。
综上,布置本发明所述基于语法变换的SQL注入攻击防御系统,对于正常访问Web服务器及后台数据库的请求而言是透明的,而对于SQL注入攻击,攻击者恶意注入的SQL语句经过系统的语法分析后会被精确识别为SQL注入攻击并被实时阻断,因此本系统能有效防御SQL注入攻击行为,提升了对Web服务器及其后台数据库的安全防护。
以上仅是对本发明的优选实施方式进行了描述,并不将本发明的技术方案限制于此,本领域技术人员在本发明的主要技术构思的基础上所作的任何公知变形都属于本发明所要保护的技术范畴,本发明具体的保护范围以权利要求书的记载为准。
Claims (12)
1.一种基于语法变换的SQL注入攻击防御方法,其特征在于,包括以下步骤:
步骤一、构建网站程序SQL语句变换规则;
步骤二、将Web服务器上网站程序中的SQL语句按照网站程序SQL语句变换规则进行变换;
步骤三、截获并解析Web服务器发往数据库的SQL访问语句,判定所述SQL访问语句中是否存在符合SQL标准语法规范的语句片段,若是则判定所述SQL访问语句为注入攻击性语句,对其进行拦截,若否则对所述SQL访问语句按照网站程序SQL语句变换规则进行还原,最后将还原后的SQL访问语句发往数据库。
2.根据权利要求1所述的基于语法变换的SQL注入攻击防御方法,其特征在于,还包括有:
步骤四、动态改变所述网站程序SQL语句变换规则,并根据改变后的网站程序SQL语句变换规则对Web服务器上网站程序中的SQL语句进行更新变换操作。
3.根据权利要求1或2所述的基于语法变换的SQL注入攻击防御方法,其特征在于,按照所述网站程序SQL语句变换规则变换后的Web服务器上网站程序中的SQL语句中不存在符合SQL标准语法规范的语句片段。
4.一种基于语法变换的SQL注入攻击防御系统,其特征在于,包括:
变换规则构建单元,用于构建网站程序SQL语句变换规则;
初始化变换单元,用于将Web服务器上网站程序中的SQL语句按照网站程序SQL语句变换规则进行变换;
攻击判定单元,用于截获并解析Web服务器发往数据库的SQL访问语句,判定所述SQL访问语句中是否存在符合SQL标准语法规范的语句片段,若是则判定所述SQL访问语句为注入攻击性语句,对其进行拦截,若否则对所述SQL访问语句按照网站程序SQL语句变换规则进行还原,最后将还原后的SQL访问语句发往数据库。
5.一种基于语法变换的SQL注入攻击防御方法,其特征在于,包括以下步骤:
步骤一、构建网站程序SQL关键字替换规则集合,所述网站程序SQL关键字替换规则集合中包括有SQL关键字和每一个SQL关键字所对应的替换字符串;
步骤二、对Web服务器上网站程序中的SQL语句进行初始化替换操作,将SQL语句中的SQL关键字按照网站程序SQL关键字替换规则集合替换成对应的替换字符串;
步骤三、截获并解析Web服务器发往数据库的SQL访问语句,判定所述SQL访问语句中是否存在有SQL关键字,若是则判定所述SQL访问语句为注入攻击性语句,对其进行拦截,若否则对所述SQL访问语句按照网站程序SQL关键字替换规则集合进行还原,将其中的替换字符串还原为对应的SQL关键字,最后将还原后的SQL访问语句发往数据库。
6.根据权利要求5所述的基于语法变换的SQL注入攻击防御方法,其特征在于,还包括有:
步骤四、动态变换所述网站程序SQL关键字替换规则集合,并根据变换后的网站程序SQL关键字替换规则集合对Web服务器上网站程序中的SQL语句进行更新替换操作。
7.根据权利要求5或6所述的基于语法变换的SQL注入攻击防御方法,其特征在于,其中步骤一具体包括以下步骤:
(1-1)、根据用户配置信息生成SQL关键字集合;
(1-2)、为SQL关键字集合中的每一个SQL关键字生成对应的一个替换字符串,由所有的SQL关键字、替换字符串以及SQL关键字与替换字符串的对应关系构成所述网站程序SQL关键字替换规则集合。
8.根据权利要求7所述的基于语法变换的SQL注入攻击防御方法,其特征在于,其中所述网站程序SQL关键字替换规则集合中,所述SQL关键字和替换字符串具有一一对应关系,每一个SQL关键字所对应的替换字符串为没有具体含义的、不常见的字符串,同时所述替换字符串中不含有与SQL关键字形式相同的字符串。
9.根据权利要求5-8任一项所述的基于语法变换的SQL注入攻击防御方法,其特征在于,其中步骤三中按照以下方式判定Web服务器发往数据库的SQL访问语句中是否存在有SQL关键字:首先将SQL访问语句中的字符串与网站程序SQL关键字替换规则集合中的SQL关键字进行对比,以确定SQL访问语句中是否存在与SQL关键字形式相同的字符串;当SQL访问语句中存在与SQL关键字形式相同的字符串时,进一步对所述字符串进行语法分析,以确定所述字符串的类型是否是SQL关键字类型;当经过语法分析确定所述字符串的类型是SQL关键字类型时,判定所述SQL访问语句中存在有SQL关键字,所述SQL访问语句为注入攻击性语句。
10.一种基于语法变换的SQL注入攻击防御系统,其特征在于,包括:
替换规则构建单元,用于构建网站程序SQL关键字替换规则集合,所述网站程序SQL关键字替换规则集合中包括有SQL关键字和每一个SQL关键字所对应的替换字符串;
初始化替换单元,用于对Web服务器上网站程序中的SQL语句进行初始化替换操作,将SQL语句中的SQL关键字按照网站程序SQL关键字替换规则集合替换成对应的替换字符串;
攻击判定单元,用于截获并解析Web服务器发往数据库的SQL访问语句,判定所述SQL访问语句中是否存在有SQL关键字,若是则判定所述SQL访问语句为注入攻击性语句,对其进行拦截,若否则对所述SQL访问语句按照网站程序SQL关键字替换规则集合进行还原,将所述SQL访问语句中的替换字符串还原为对应的SQL关键字,最后将还原后的SQL访问语句发往数据库。
11.一种基于语法变换的SQL注入攻击防御系统,其特征在于,包括:替换规则初始化单元、网站程序SQL关键字替换单元、通信数据处理单元、替换规则动态变换单元和替换规则存储单元;
所述替换规则初始化单元基于用户配置信息构建网站程序SQL关键字替换规则集合,并将网站程序SQL关键字替换规则集合及其生成时间存储于替换规则存储单元,并通知网站程序SQL关键字替换单元按照网站程序SQL关键字替换规则集合完成对Web服务器上网站程序中的SQL语句的初始化替换操作,其中所述网站程序SQL关键字替换规则集合中包括有SQL关键字和每一个SQL关键字所对应的替换字符串;
所述网站程序SQL关键字替换单元根据替换规则初始化单元或替换规则动态变换单元的替换通知,按照替换规则存储单元中存储的网站程序SQL关键字替换规则集合对Web服务器上网站程序中的SQL语句执行替换操作;
所述通信数据处理单元截获Web服务器发往数据库的SQL访问语句,并判定所述SQL访问语句中是否存在有SQL关键字,若是则判定所述SQL访问语句为注入攻击性语句,对其进行拦截,若否则对所述SQL访问语句按照替换规则存储单元中存储的网站程序SQL关键字替换规则集合进行还原,将SQL访问语句中的替换字符串还原为对应的SQL关键字,然后将还原后的SQL访问语句发往数据库;
所述替换规则动态变换单元动态变换替换规则存储单元中存储的网站程序SQL关键字替换规则集合,并通知网站程序SQL关键字替换单元按照变换后新的网站程序SQL关键字替换规则集合对Web服务器上网站程序中的SQL语句进行替换操作,待替换操作完成后删除替换规则存储单元中存储的旧的网站程序SQL关键字替换规则集合。
12.根据权利要求11所述的基于语法变换的SQL注入攻击防御系统,其特征在于,所述通信数据处理单元包括语法分析模块和网站程序SQL关键字还原模块,所述语法分析模块首先提取Web服务器发往数据库的SQL访问语句中的字符串,并与替换规则存储单元中存储的网站程序SQL关键字替换规则集合中的SQL关键字进行对比,以确定所述SQL访问语句中是否存在与SQL关键字形式相同的字符串,若不存在则将所述SQL访问语句发往网站程序SQL关键字还原模块,若存在则进一步分析判断所述SQL访问语句中包括的与SQL关键字形式相同的字符串的类型是否是SQL关键字类型,若是则判定所述SQL访问语句为注入攻击性语句,将其直接丢弃,否则将所述SQL访问语句发往网站程序SQL关键字还原模块;所述网站程序SQL关键字还原模块按照替换规则存储单元中存储的网站程序SQL关键字替换规则集合对所述SQL访问语句进行还原,将SQL访问语句中的替换字符串还原为对应的SQL关键字,最后将还原后的SQL访问语句发往数据库。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2016105355663 | 2016-07-08 | ||
CN201610535566 | 2016-07-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106355094A true CN106355094A (zh) | 2017-01-25 |
CN106355094B CN106355094B (zh) | 2019-02-22 |
Family
ID=57864552
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610972899.2A Active CN106355094B (zh) | 2016-07-08 | 2016-11-04 | 一种基于语法变换的sql注入攻击防御系统及防御方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106355094B (zh) |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107122657A (zh) * | 2017-05-02 | 2017-09-01 | 上海红神信息技术有限公司 | 一种防御sql注入攻击的数据库代理装置 |
CN107358098A (zh) * | 2017-07-14 | 2017-11-17 | 北京安数云信息技术有限公司 | 基于插件的结构化查询语言sql注入检测方法和装置 |
CN107392014A (zh) * | 2017-06-23 | 2017-11-24 | 复旦大学 | 基于数据库结构随机变化的sql注入防御方法和系统 |
CN107451473A (zh) * | 2017-07-27 | 2017-12-08 | 杭州美创科技有限公司 | 基于特征模式识别的sql注入检测方法 |
CN107682373A (zh) * | 2017-11-21 | 2018-02-09 | 中国电子科技集团公司第五十四研究所 | 一种基于sql异构化的sql注入防御方法 |
CN108090351A (zh) * | 2017-12-14 | 2018-05-29 | 北京百度网讯科技有限公司 | 用于处理请求消息的方法和装置 |
CN108108483A (zh) * | 2018-01-09 | 2018-06-01 | 政采云有限公司 | 基于SpringAop拦截DAO层校验SQL的方法、装置和系统 |
CN108573152A (zh) * | 2017-03-14 | 2018-09-25 | 北京京东尚科信息技术有限公司 | 检测sql注入攻击的方法、装置、服务器和存储介质 |
CN109660499A (zh) * | 2018-09-13 | 2019-04-19 | 阿里巴巴集团控股有限公司 | 攻击拦截方法和装置、计算设备及存储介质 |
CN110647749A (zh) * | 2019-09-20 | 2020-01-03 | 湖南大学 | 一种二阶sql注入攻击防御的方法 |
CN111079148A (zh) * | 2019-12-24 | 2020-04-28 | 杭州安恒信息技术股份有限公司 | 一种sql注入攻击的检测方法、装置、设备及存储介质 |
CN111221844A (zh) * | 2019-11-14 | 2020-06-02 | 广东电网有限责任公司信息中心 | 基于拟态指令集随机化的Web服务器防护方法及数据库代理节点 |
CN112131245A (zh) * | 2020-09-23 | 2020-12-25 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 拟态防御架构的高性能数据访问系统及方法 |
CN112202822A (zh) * | 2020-12-07 | 2021-01-08 | 中国人民解放军国防科技大学 | 数据库注入检测方法、装置、电子设备及存储介质 |
CN112822187A (zh) * | 2020-12-31 | 2021-05-18 | 山石网科通信技术股份有限公司 | 网络攻击的检测方法及装置 |
CN113630387A (zh) * | 2021-07-21 | 2021-11-09 | 北京景安云信科技有限公司 | 基于代理实现对MySQL协议认证过程中用户名和密码替换的方法 |
CN113660239A (zh) * | 2021-08-10 | 2021-11-16 | 中电积至(海南)信息技术有限公司 | 一种基于加盐与前端waf防护耦合的防sql注入系统 |
CN113992447A (zh) * | 2021-12-28 | 2022-01-28 | 北京未来智安科技有限公司 | 一种sql注入告警处理方法及装置 |
CN114936369A (zh) * | 2022-04-25 | 2022-08-23 | 中山大学 | 基于标记的sql注入攻击主动防御方法、系统及存储介质 |
US11562095B2 (en) | 2021-01-28 | 2023-01-24 | International Business Machines Corporation | Reinforcing SQL transactions dynamically to prevent injection attacks |
CN116136901A (zh) * | 2023-04-19 | 2023-05-19 | 杭州美创科技股份有限公司 | 应用程序防假冒方法、装置、计算机设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101448007A (zh) * | 2008-12-31 | 2009-06-03 | 中国电力科学研究院 | 一种结构化查询语言sql攻击防御系统 |
CN101609493A (zh) * | 2009-07-21 | 2009-12-23 | 国网电力科学研究院 | 一种基于自学习的数据库sql注入防护方法 |
US8225402B1 (en) * | 2008-04-09 | 2012-07-17 | Amir Averbuch | Anomaly-based detection of SQL injection attacks |
CN103064870A (zh) * | 2012-09-24 | 2013-04-24 | 深信服网络科技(深圳)有限公司 | Web防注入的方法、装置及设备 |
CN103744802A (zh) * | 2013-12-20 | 2014-04-23 | 北京奇虎科技有限公司 | Sql注入攻击的识别方法及装置 |
CN103914572A (zh) * | 2014-04-29 | 2014-07-09 | 福建星网视易信息系统有限公司 | 数据库建立系统、装置和方法 |
CN105704120A (zh) * | 2016-01-05 | 2016-06-22 | 中云网安科技(北京)有限公司 | 一种基于自学习形式的安全访问网络的方法 |
-
2016
- 2016-11-04 CN CN201610972899.2A patent/CN106355094B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8225402B1 (en) * | 2008-04-09 | 2012-07-17 | Amir Averbuch | Anomaly-based detection of SQL injection attacks |
CN101448007A (zh) * | 2008-12-31 | 2009-06-03 | 中国电力科学研究院 | 一种结构化查询语言sql攻击防御系统 |
CN101609493A (zh) * | 2009-07-21 | 2009-12-23 | 国网电力科学研究院 | 一种基于自学习的数据库sql注入防护方法 |
CN103064870A (zh) * | 2012-09-24 | 2013-04-24 | 深信服网络科技(深圳)有限公司 | Web防注入的方法、装置及设备 |
CN103744802A (zh) * | 2013-12-20 | 2014-04-23 | 北京奇虎科技有限公司 | Sql注入攻击的识别方法及装置 |
CN103914572A (zh) * | 2014-04-29 | 2014-07-09 | 福建星网视易信息系统有限公司 | 数据库建立系统、装置和方法 |
CN105704120A (zh) * | 2016-01-05 | 2016-06-22 | 中云网安科技(北京)有限公司 | 一种基于自学习形式的安全访问网络的方法 |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108573152A (zh) * | 2017-03-14 | 2018-09-25 | 北京京东尚科信息技术有限公司 | 检测sql注入攻击的方法、装置、服务器和存储介质 |
CN107122657B (zh) * | 2017-05-02 | 2021-01-01 | 上海红神信息技术有限公司 | 一种防御sql注入攻击的数据库代理装置 |
CN107122657A (zh) * | 2017-05-02 | 2017-09-01 | 上海红神信息技术有限公司 | 一种防御sql注入攻击的数据库代理装置 |
CN107392014A (zh) * | 2017-06-23 | 2017-11-24 | 复旦大学 | 基于数据库结构随机变化的sql注入防御方法和系统 |
CN107392014B (zh) * | 2017-06-23 | 2021-04-30 | 复旦大学 | 基于数据库结构随机变化的sql注入防御方法和系统 |
CN107358098A (zh) * | 2017-07-14 | 2017-11-17 | 北京安数云信息技术有限公司 | 基于插件的结构化查询语言sql注入检测方法和装置 |
CN107451473A (zh) * | 2017-07-27 | 2017-12-08 | 杭州美创科技有限公司 | 基于特征模式识别的sql注入检测方法 |
CN107682373A (zh) * | 2017-11-21 | 2018-02-09 | 中国电子科技集团公司第五十四研究所 | 一种基于sql异构化的sql注入防御方法 |
CN108090351A (zh) * | 2017-12-14 | 2018-05-29 | 北京百度网讯科技有限公司 | 用于处理请求消息的方法和装置 |
CN108090351B (zh) * | 2017-12-14 | 2022-03-08 | 北京百度网讯科技有限公司 | 用于处理请求消息的方法和装置 |
CN108108483A (zh) * | 2018-01-09 | 2018-06-01 | 政采云有限公司 | 基于SpringAop拦截DAO层校验SQL的方法、装置和系统 |
CN108108483B (zh) * | 2018-01-09 | 2021-02-09 | 政采云有限公司 | 基于SpringAop拦截DAO层校验SQL的方法、装置和系统 |
CN109660499A (zh) * | 2018-09-13 | 2019-04-19 | 阿里巴巴集团控股有限公司 | 攻击拦截方法和装置、计算设备及存储介质 |
CN110647749A (zh) * | 2019-09-20 | 2020-01-03 | 湖南大学 | 一种二阶sql注入攻击防御的方法 |
CN111221844A (zh) * | 2019-11-14 | 2020-06-02 | 广东电网有限责任公司信息中心 | 基于拟态指令集随机化的Web服务器防护方法及数据库代理节点 |
CN111221844B (zh) * | 2019-11-14 | 2023-10-03 | 广东电网有限责任公司信息中心 | 基于拟态指令集随机化的Web服务器防护方法及数据库代理节点 |
CN111079148A (zh) * | 2019-12-24 | 2020-04-28 | 杭州安恒信息技术股份有限公司 | 一种sql注入攻击的检测方法、装置、设备及存储介质 |
CN111079148B (zh) * | 2019-12-24 | 2022-03-18 | 杭州安恒信息技术股份有限公司 | 一种sql注入攻击的检测方法、装置、设备及存储介质 |
CN112131245A (zh) * | 2020-09-23 | 2020-12-25 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 拟态防御架构的高性能数据访问系统及方法 |
CN112202822A (zh) * | 2020-12-07 | 2021-01-08 | 中国人民解放军国防科技大学 | 数据库注入检测方法、装置、电子设备及存储介质 |
CN112202822B (zh) * | 2020-12-07 | 2021-02-23 | 中国人民解放军国防科技大学 | 数据库注入检测方法、装置、电子设备及存储介质 |
CN112822187A (zh) * | 2020-12-31 | 2021-05-18 | 山石网科通信技术股份有限公司 | 网络攻击的检测方法及装置 |
US11562095B2 (en) | 2021-01-28 | 2023-01-24 | International Business Machines Corporation | Reinforcing SQL transactions dynamically to prevent injection attacks |
CN113630387A (zh) * | 2021-07-21 | 2021-11-09 | 北京景安云信科技有限公司 | 基于代理实现对MySQL协议认证过程中用户名和密码替换的方法 |
CN113660239A (zh) * | 2021-08-10 | 2021-11-16 | 中电积至(海南)信息技术有限公司 | 一种基于加盐与前端waf防护耦合的防sql注入系统 |
CN113992447A (zh) * | 2021-12-28 | 2022-01-28 | 北京未来智安科技有限公司 | 一种sql注入告警处理方法及装置 |
CN113992447B (zh) * | 2021-12-28 | 2022-03-15 | 北京未来智安科技有限公司 | 一种sql注入告警处理方法及装置 |
CN114936369A (zh) * | 2022-04-25 | 2022-08-23 | 中山大学 | 基于标记的sql注入攻击主动防御方法、系统及存储介质 |
CN114936369B (zh) * | 2022-04-25 | 2024-04-19 | 中山大学 | 基于标记的sql注入攻击主动防御方法、系统及存储介质 |
CN116136901A (zh) * | 2023-04-19 | 2023-05-19 | 杭州美创科技股份有限公司 | 应用程序防假冒方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106355094B (zh) | 2019-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106355094B (zh) | 一种基于语法变换的sql注入攻击防御系统及防御方法 | |
CN106503557B (zh) | 基于动态变换的sql注入攻击防御系统及防御方法 | |
Khandpur et al. | Crowdsourcing cybersecurity: Cyber attack detection using social media | |
Bercovitch et al. | HoneyGen: An automated honeytokens generator | |
CN111431939B (zh) | 基于cti的sdn恶意流量防御方法 | |
CN103914494B (zh) | 一种微博用户身份识别方法及系统 | |
CN103297435B (zh) | 一种基于web日志的异常访问行为检测方法与系统 | |
CN103559235B (zh) | 一种在线社交网络恶意网页检测识别方法 | |
Gervais et al. | Quantifying web-search privacy | |
Ren et al. | CSKG4APT: A cybersecurity knowledge graph for advanced persistent threat organization attribution | |
WO2008033236A2 (en) | System and methods for an identity theft protection bot | |
CN109246064A (zh) | 安全访问控制、网络访问规则的生成方法、装置及设备 | |
CN112199677A (zh) | 一种数据处理方法和装置 | |
Linoy et al. | De‐anonymizing Ethereum blockchain smart contracts through code attribution | |
Rye et al. | Reading in-between the lines: An analysis of dissenter | |
CN105933311A (zh) | 一种账户审计方法 | |
Alam et al. | Looking beyond IoCs: Automatically extracting attack patterns from external CTI | |
Ben Jaballah et al. | A grey-box approach for detecting malicious user interactions in web applications | |
CN109254827B (zh) | 一种基于大数据与机器学习的虚拟机安全防护方法及系统 | |
Mahaini et al. | Building taxonomies based on human-machine teaming: Cyber security as an example | |
Inan et al. | Privacy analysis in language models via training data leakage report | |
Purba et al. | From word embedding to cyber-phrase embedding: Comparison of processing cybersecurity texts | |
CN110457009B (zh) | 基于数据分析的软件安全需求推荐模型的实现方法 | |
CN116471098A (zh) | 一种基于溯源图的漏洞利用过程重构方法、设备及存储介质 | |
Purba et al. | Extracting Actionable Cyber Threat Intelligence from Twitter Stream |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20170413 Address after: Chaoyang District City, Jiuxianqiao, 100016 Beijing Road No. 14 Building 5 floor room 98112 Applicant after: Beijing Weida Information Technology Co., Ltd. Address before: 710065 Shaanxi Province, Xi'an Yanta District Jinye road green waters B building room 1902 Applicant before: Geng Tongtong |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |