CN111814143A - 一种动态监测sql注入的方法及系统 - Google Patents

一种动态监测sql注入的方法及系统 Download PDF

Info

Publication number
CN111814143A
CN111814143A CN202010663405.9A CN202010663405A CN111814143A CN 111814143 A CN111814143 A CN 111814143A CN 202010663405 A CN202010663405 A CN 202010663405A CN 111814143 A CN111814143 A CN 111814143A
Authority
CN
China
Prior art keywords
sql
detection
sql injection
blacklist
result
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010663405.9A
Other languages
English (en)
Other versions
CN111814143B (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.)
Fujian Reliable Cloud Computing Technology Co.,Ltd.
Original Assignee
Beijing Reliable Spectrum Cloud Technology Co ltd
Xiamen Biebeyun 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 Beijing Reliable Spectrum Cloud Technology Co ltd, Xiamen Biebeyun Co ltd filed Critical Beijing Reliable Spectrum Cloud Technology Co ltd
Priority to CN202010663405.9A priority Critical patent/CN111814143B/zh
Publication of CN111814143A publication Critical patent/CN111814143A/zh
Application granted granted Critical
Publication of CN111814143B publication Critical patent/CN111814143B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Debugging And Monitoring (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种动态监测SQL注入的方法及系统,本发明的主要目的在于提出一种动态监测SQL注入的方法及系统,在Agent端设计两套同时进行安全检测的方案,当检测出异常SQL时采取积极的策略处理相应的SQL注入威胁,旨在提高整个系统的安全性。

Description

一种动态监测SQL注入的方法及系统
技术领域
本发明涉及信息安全技术领域,具体涉及针对结构化查询语言SQL的攻击检测。
背景技术
结构化查询语言SQL注入漏洞攻击是目前互联网最为流行最为热门的黑客攻击方法之一。攻击者通过把SQL命令插入到Web表单提交或者页面请求的查询字符串中欺骗服务器执行恶意的SQL命令,从而获取数据库的管理用户权限,通过将数据库用户权限提升至操作系统管理权限,控制服务器才做系统,获取重要信息或者机密文件。
随着SQL注入越来越普遍的发生,针对SQL注入攻击的检测方法成为业内研究的热点。为了实现对SQL注入有效检测,单一的检测技术并不能满足要求,因此目前研究人员也提出了很多综合性的SQL注入检测技术。“WAVES”作为一种黑盒技术,能够利用网络爬虫识别Web应用中哪些方面可能成为潜在的攻击目标,但并不能保证涵盖所有的SQL注入攻击类型。“JDBC-Checker”是一种静态代码检测技术,其优点在于能够定位到代码中潜存的SQL注入漏洞风险,但是同样也不能保证覆盖所有的SQL注入攻击类型。基于污点跟踪技术在检测和防范SQL注入方面具有更高的可信度,但是对于模块化程度较高的Web应用中识别的准确性有待提高。
发明内容
针对现有静态分析和动态分析中存在的问题,本发明提出一种动态监测SQL注入的方法及系统,由Agent端和WebServer端分别执行相应的检测和交互操作实现。
该SQL注入检测方法具体如下:
由Agent端读取Web日志文件路径,监控日志文件的变化;所述日志文件执行SQL注入检测,判断日志文件中的网页IP地址否在预设黑名单中;
若是,则禁止访问所有请求的URL地址;
若否,则基于预设的SQL注入检测算法检测是否存在非法异常的SQL语句,所述预设的SQL注入检测算法为静态分析和动态分析相结合的检测算法;
若检测结果为合法,则允许正常访问网站;若检测结果为非法,则禁止访问所有请求的URL地址,并更新黑名单,将所述IP地址添加至黑名单;
将检测执行结果返回给WebServer;
由WebServer接收Agent返回的检测执行结果,并将SQL注入检测结果进行统计分析,将统计分析结果推送给系统管理人员和项目管理人员。
为了进一步提高对SQL注入检测的准确性和及时性,优选地,本发明在Agent端进一步设计了对数据库定时监控的检测流程:在Agent读取Web日志文件的同时,启动数据库监控进程,每隔预设时间请求数据库实例,检测是否存在“User Sleep”状态,如果存在则发起Kill操作,并通过上报机制反馈给WebServer。
进一步地,当数据库实例未开启SQL安全保护机制时,用户可以通过WebServer自主开启SQL审计功能。
进一步地,所述基于预设的SQL注入检测算法检测是否存在非法异常的SQL语句进一步包括:在Web应用程序运行过程中,遍历该Web应用程序中所有固定SQL查询语句,对于每一条固定SQL查询语句FIX_SQLi删除其中的属性值,得到对应的动态SQL查询语句DYN_SQLi;通过对FIX_SQLi和DYN_SQLi进行逻辑异或操作,判断数据是否存在非法异常情况。
判断所述逻辑异或操作结果是否为零,若结果为零,则说明数据正常,否则说明数据存在异常。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是目前常见的SQL注入攻击流程图;
图2是根据本发明实施例所述的SQL注入检测流程图。
图3(a)-3(b)是根据本发明实施例所述的WebServer端开启SQL安全保护机制的操作界面和开通结果反馈界面。
图4是根据本发明实施例所述的SQL注入信息的分析统计结果展示界面。
有益效果
Agent端扫描Web日志文件进行静态分析和动态分析结合的SQL查询语句检测步骤之前,首先利用黑名单机制筛查明显恶意网站,并动态更新该黑名单列表,当黑名单机制筛查通过后进一步利用SQL注入检测算法进行检测,不仅减少了不必要的恶意检测步骤,也进一步提高了对SQL注入检测的准确性。
在基于静态和动态分析相结合的SQL注入检测的同时,还在Agent设计了同步的数据库监控进程,用于检测数据库实例状态及时发现异常情况并上报。采用两种检测思路进一步能实现对SQL注入攻击的有效拦截和及时发现,保证了数据的安全性。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
SQL注入(SQL Injection)漏洞攻击是目前网上最流行最热门的黑客攻击方法之一。攻击者通过把SQL命令插入到Web表单提交或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。为了获取数据库的管理用户权限,然后通过将数据库用户权限提升至操作系统管理权限,控制服务器操作系统,获取重要信息或机密文件。图1给出了目前常见的SQL注入攻击流程。
如图2所示,根据本发明实施例所述的一种动态监测SQL注入的系统,包括Agent和WebServer:
Agent包括接收模块和检测模块,其中接收模块用于接收客户端提交的数据,检测模块,用于对所述数据执行SQL注入检测;
所述检测模块包括黑名单判断模块和SQL注入检测算法模块,其中黑名单判断模块用于查看WebServer端存储的黑名单,判断用户端网页IP地址否在所述黑名单中,若是,则禁止访问所有请求的URL地址;
若否,则由SQL注入检测算法模块基于预设的SQL注入检测算法检测客户端提交的数据,所述预设的SQL注入检测算法为静态分析和动态分析相结合的检测算法;
若检测结果为合法,则允许正常访问网站,若检测结果为非法,则禁止访问所有请求的URL地址,并更新黑名单,将所述IP地址添加至黑名单;
WebServer接收Agent返回的检测执行结果,并将SQL注入检测结果进行统计分析,将统计分析结果推送给系统管理人员和项目管理人员。
在Agent读取Web日志文件进行上述检测步骤的同时,还可以在Agent中设计针对数据库的监控进程:
配置数据库实例的查询权限,Agent启动后会读取数据库实例配置文件,并每间隔1秒,请求数据库实例。在设计SQL注入检测时,Agent会按照每秒去检测是否存在有“Usersleep”的状态,发现后并及时发起Kill操作,并通过上报程序给WebServer平台。
在WebServer端也可以设计一定的安全保护策略,例如:当数据库实例未开启SQL安全保护机制时,可以通过Web平台自主开启SQL审计功能,如图3所示,以可视化界面提示用户进行操作,并且用户也可以通过Web平台直观地了解当前SQL注入信息的分析统计结果,如图4所示。
进一步地,所述基于预设的SQL注入检测算法检测是否存在非法异常的SQL语句进一步包括:在Web应用程序运行过程中,遍历该Web应用程序中所有固定SQL查询语句,对于每一条固定SQL查询语句FIX_SQLi删除其中的属性值,得到对应的动态SQL查询语句DYN_SQLi;通过对FIX_SQLi和DYN_SQLi进行逻辑异或操作,判断数据是否存在非法异常情况。判断所述逻辑异或操作结果是否为零,若结果为零,则说明数据正常,否则说明数据存在异常。
针对SQL查询语句的语法特点,SQL查询语句中的属性值一般由以下形式组成:name=‘abc’(变量=‘字符串值’)或者index=1(变量=数字值)。本申请提出的SQL注入检测方法结合静态分析和动态分析两种方式,在静态分析中删除SQL查询中的属性值,在Web应用运行过程中动态分析每条SQL查询语句,利用异或操作来判断是否存在异常,有效提高了检测结果的准确性和效率。
以下作为示例显示执行上述函数f之后的结果,Nomal_SQL代表正常SQL查询语句,AbNomal_SQL代表异常SQL查询语句:
FIX_SQL=SELECT*FROM user WHERE userid=’$id’AND pass=’$password’DYN_SQL=f(FIX_SQL)=f(SELECT*FROM user WHERE userid=’$id’AND pass=’$password’)
=SELECT*FROM user WHERE userid=”AND pass=”
Nomal_SQL=SELECT*FROM user WHERE userid=’root’AND\pass=’admin’SQL1=f(Nomal_SQL)=f(SELECT*FROM user WHERE userid=’root’AND pass=’admin’)
=SELECT*FROM user WHERE userid=”AND pass=”
AbNomal_SQL=SELECT*FROM user WHERE userid=’1’or‘1=1’—‘AND pass=’admin’
SQL2=f(AbNomal_SQL)=f(SELECT*FROM user WHERE id=’1’or‘1=1’—‘ANDpass=’admin’)
=SELECT*FROM user WHERE id=”or“—‘’admin
无论是正常SQL查询语句还是异常SQL查询语句,都应用上述f()函数,对于正常SQL查询语句而言,删除属性值前后的两条语句在逻辑上应当是相同的,因此采用逻辑异或操作符可以判断出该SQL语句是否正常。
最后应说明的是:显然,上述实施例仅仅是为清楚地说明本申请所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引申出的显而易见的变化或变动仍处于本申请型的保护范围之中。

Claims (10)

1.一种动态监测SQL注入方法,其特征在于:
由Agent端读取Web日志文件路径,监控日志文件的变化;
所述日志文件执行SQL注入检测,判断日志文件中的网页IP地址否在预设黑名单中;
若是,则禁止访问所有请求的URL地址;
若否,则基于预设的SQL注入检测算法检测是否存在非法异常的SQL语句,所述预设的SQL注入检测算法为静态分析和动态分析相结合的检测算法;
若检测结果为合法,则允许正常访问网站;
若检测结果为非法,则禁止访问所有请求的URL地址,并更新黑名单,将所述IP地址添加至黑名单;
将检测执行结果返回给WebServer;
由WebServer接收Agent返回的检测执行结果,并将SQL注入检测结果进行统计分析,将统计分析结果推送给系统管理人员和项目管理人员。
2.根据权利要求1所述的SQL注入方法,其特征在于:在Agent读取Web日志文件的同时,启动数据库监控进程,每隔预设时间请求数据库实例,检测是否存在“User Sleep”状态,如果存在则发起Kill操作,并通过上报机制反馈给WebServer。
3.根据权利要求1所述的SQL注入方法,其特征在于:当数据库实例未开启SQL安全保护机制时,用户可以通过WebServer自主开启SQL审计功能。
4.根据权利要求2所述的SQL注入方法,其特征在于,所述基于预设的SQL注入检测算法检测是否存在非法异常的SQL语句进一步包括:在Web应用程序运行过程中,遍历该Web应用程序中所有固定SQL查询语句,对于每一条固定SQL查询语句FIX_SQLi删除其中的属性值,得到对应的动态SQL查询语句DYN_SQLi;通过对FIX_SQLi和DYN_SQLi进行逻辑异或操作,判断数据是否存在非法异常情况。
5.根据权利要4所述的SQL注入方法,其特征在于,判断所述逻辑异或操作结果是否为零,若结果为零,则说明数据正常,否则说明数据存在异常。
6.一种动态监测SQL注入的检测系统,包括Agent和WebServer,其特征在于:Agent包括接收模块和检测模块,其中接收模块用于接收客户端提交的数据,检测模块,用于对所述数据执行SQL注入检测;
所述检测模块包括黑名单判断模块和SQL注入检测算法模块,其中黑名单判断模块用于查看WebServer端存储的黑名单,判断用户端网页IP地址否在所述黑名单中,若是,则禁止访问所有请求的URL地址;
若否,则由SQL注入检测算法模块基于预设的SQL注入检测算法检测客户端提交的数据,所述预设的SQL注入检测算法为静态分析和动态分析相结合的检测算法;
若检测结果为合法,则允许正常访问网站,若检测结果为非法,则禁止访问所有请求的URL地址,并更新黑名单,将所述IP地址添加至黑名单;
WebServer接收Agent返回的检测执行结果,并将SQL注入检测结果进行统计分析,将统计分析结果推送给系统管理人员和项目管理人员。
7.根据权利要求6所述的SQL注入检测系统,其特征在于:在Agent读取Web日志文件的同时,启动数据库监控进程,每隔预设时间请求数据库实例,检测是否存在“User Sleep”状态,如果存在则发起Kill操作,并通过上报机制反馈给WebServer。
8.根据权利要求6所述的SQL注入检测系统,其特征在于:当数据库实例未开启SQL安全保护机制时,用户可以通过WebServer自主开启SQL审计功能。
9.根据权利要求7所述的SQL注入检测系统,其特征在于:所述基于预设的SQL注入检测算法检测是否存在非法异常的SQL语句进一步包括:
在Web应用程序运行过程中,遍历该Web应用程序中所有固定SQL查询语句,对于每一条固定SQL查询语句FIX_SQLi删除其中的属性值,得到对应的动态SQL查询语句DYN_SQLi;
通过对FIX_SQLi和DYN_SQLi进行逻辑异或操作,判断数据是否存在非法异常情况。
10.根据权利要求9所述的SQL注入检测系统,其特征在于:判断所述逻辑异或操作结果是否为零,若结果为零,则说明数据正常,否则说明数据存在异常。
CN202010663405.9A 2020-07-10 2020-07-10 一种动态监测sql注入的方法及系统 Active CN111814143B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010663405.9A CN111814143B (zh) 2020-07-10 2020-07-10 一种动态监测sql注入的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010663405.9A CN111814143B (zh) 2020-07-10 2020-07-10 一种动态监测sql注入的方法及系统

Publications (2)

Publication Number Publication Date
CN111814143A true CN111814143A (zh) 2020-10-23
CN111814143B CN111814143B (zh) 2021-07-09

Family

ID=72843491

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010663405.9A Active CN111814143B (zh) 2020-07-10 2020-07-10 一种动态监测sql注入的方法及系统

Country Status (1)

Country Link
CN (1) CN111814143B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113885958A (zh) * 2021-09-30 2022-01-04 杭州默安科技有限公司 一种拦截脏数据的方法和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102682047A (zh) * 2011-10-18 2012-09-19 国网电力科学研究院 一种混合的sql注入防护方法
CN104618343A (zh) * 2015-01-06 2015-05-13 中国科学院信息工程研究所 一种基于实时日志的网站威胁检测的方法及系统
CN104715018A (zh) * 2015-02-04 2015-06-17 同程网络科技股份有限公司 基于语义分析的智能防sql注入方法
CN105704146A (zh) * 2016-03-18 2016-06-22 四川长虹电器股份有限公司 Sql防注入的系统与方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102682047A (zh) * 2011-10-18 2012-09-19 国网电力科学研究院 一种混合的sql注入防护方法
CN104618343A (zh) * 2015-01-06 2015-05-13 中国科学院信息工程研究所 一种基于实时日志的网站威胁检测的方法及系统
CN104715018A (zh) * 2015-02-04 2015-06-17 同程网络科技股份有限公司 基于语义分析的智能防sql注入方法
CN105704146A (zh) * 2016-03-18 2016-06-22 四川长虹电器股份有限公司 Sql防注入的系统与方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113885958A (zh) * 2021-09-30 2022-01-04 杭州默安科技有限公司 一种拦截脏数据的方法和系统
CN113885958B (zh) * 2021-09-30 2023-10-31 杭州默安科技有限公司 一种拦截脏数据的方法和系统

Also Published As

Publication number Publication date
CN111814143B (zh) 2021-07-09

Similar Documents

Publication Publication Date Title
RU2744671C2 (ru) Система и способы для обнаружения сетевого мошенничества
US9563749B2 (en) Comparing applications and assessing differences
US7281267B2 (en) Software audit system
US7664924B2 (en) System and method to secure a computer system by selective control of write access to a data storage medium
US7610273B2 (en) Application identity and rating service
EP1920338B1 (en) Network security systems and methods
US8078909B1 (en) Detecting file system layout discrepancies
CN113660224B (zh) 基于网络漏洞扫描的态势感知防御方法、装置及系统
US20100122313A1 (en) Method and system for restricting file access in a computer system
US20060130144A1 (en) Protecting computing systems from unauthorized programs
US20070028303A1 (en) Content tracking in a network security system
US20070028302A1 (en) Distributed meta-information query in a network
US11625488B2 (en) Continuous risk assessment for electronic protected health information
US20100153671A1 (en) System and method to secure a computer system by selective control of write access to a data storage medium
RU2658878C1 (ru) Способ и сервер для классификации веб-ресурса
US20060075468A1 (en) System and method for locating malware and generating malware definitions
Continella et al. Prometheus: Analyzing WebInject-based information stealers
US20060075490A1 (en) System and method for actively operating malware to generate a definition
Naderi-Afooshteh et al. Joza: Hybrid taint inference for defeating web application sql injection attacks
CN111814143B (zh) 一种动态监测sql注入的方法及系统
Koo et al. Malicious website detection based on honeypot systems
US8141153B1 (en) Method and apparatus for detecting executable software in an alternate data stream
Zhang et al. SQL injection attack principles and preventive techniques for PHP site
Payet et al. Ears in the wild: large-scale analysis of execution after redirect vulnerabilities
CN111832023B (zh) 一种基于c/s架构的sql注入检测方法及其装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Room 8329, 3rd floor, Chengbao Hotel, 6 xiaoyunli, Xiaoyun Road, Chaoyang District, Beijing

Applicant after: Beijing reliable spectrum cloud Technology Co.,Ltd.

Applicant after: Xiamen Biebeyun Co.,Ltd.

Address before: 3f-a317, Zone C, innovation building, software park, torch hi tech Zone, Xiamen City, Fujian Province, 360100

Applicant before: Xiamen Biebeyun Co.,Ltd.

Applicant before: Beijing reliable spectrum cloud Technology Co.,Ltd.

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

Effective date of registration: 20210622

Address after: 3f-a317, Zone C, innovation building, software park, torch hi tech Zone, Xiamen City, Fujian Province, 360100

Applicant after: Xiamen Biebeyun Co.,Ltd.

Address before: Room 8329, 3rd floor, Chengbao Hotel, 6 xiaoyunli, Xiaoyun Road, Chaoyang District, Beijing

Applicant before: Beijing reliable spectrum cloud Technology Co.,Ltd.

Applicant before: Xiamen Biebeyun Co.,Ltd.

GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 361000 3F-A317, Zone C, Innovation Building, Software Park, Torch High tech Zone, Xiamen City, Fujian Province

Patentee after: Fujian Reliable Cloud Computing Technology Co.,Ltd.

Country or region after: China

Address before: 3f-a317, Zone C, innovation building, software park, torch hi tech Zone, Xiamen City, Fujian Province, 360100

Patentee before: Xiamen Biebeyun Co.,Ltd.

Country or region before: China