CN112039877A - 基于kld的存储型xss注入的检测方法 - Google Patents

基于kld的存储型xss注入的检测方法 Download PDF

Info

Publication number
CN112039877A
CN112039877A CN202010886265.1A CN202010886265A CN112039877A CN 112039877 A CN112039877 A CN 112039877A CN 202010886265 A CN202010886265 A CN 202010886265A CN 112039877 A CN112039877 A CN 112039877A
Authority
CN
China
Prior art keywords
web page
javascript
code
xss
codes
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
CN202010886265.1A
Other languages
English (en)
Other versions
CN112039877B (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.)
Sichuan Changhong Electric Co Ltd
Original Assignee
Sichuan Changhong Electric 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 Sichuan Changhong Electric Co Ltd filed Critical Sichuan Changhong Electric Co Ltd
Priority to CN202010886265.1A priority Critical patent/CN112039877B/zh
Publication of CN112039877A publication Critical patent/CN112039877A/zh
Application granted granted Critical
Publication of CN112039877B publication Critical patent/CN112039877B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/906Clustering; Classification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明涉及WAF防火墙领域,具体为一种基于KLD的存储型XSS注入的检测方法,能够减少服务器受到的干扰,提高服务器运行的稳定性。方案为,判断响应Web页面是否属于首次登陆,若是则捕获响应Web页面的所有内容,并且确保该页面内不含XSS代码,对Web页面所有内容中的Javascript代码进行分类统计,得到所有Javascript代码类正常频率分布特征集合P(x),将P(x)集合按照{url:[p(x)]}格式存放在内存中,url为Web页面地址;若不是首次登陆,捕获响应Web页面的所有内容,对响应Web页面所有内容中的Javascript代码进行分类统计,得到所有Javascript代码类频率分布特征集合Q(x),根据响应Web页面的地址从内存中获取对应的Javascript代码类正常频率特征集合P(x),根据
Figure DDA0002655664650000011
计算散度值,根据散度值与阈值大小确定是否有XSS注入。适用于XSS检测。

Description

基于KLD的存储型XSS注入的检测方法
技术领域
本发明涉及WAF(Web应用防护系统)防火墙领域,具体涉及一种基于KLD的存储型XSS注入的检测方法。
背景技术
跨站脚本攻击(Cross-site-scripting,XSS)是一种危害严重的Web漏洞,其常年位居owasp Top10漏洞的前3名。其危害主要有盗取用户Cookie、会话劫持和网络钓鱼等。其中,存储型XSS攻击危害最以难检测。
当前针对存储型xss攻击检测技术主要基于爬虫技术和污点追踪技术,他们都是一种“主动性”探测技术,原理是首先用爬虫爬取web的url,然后向url发送带有xsspayload(污点数据)的请求,最后检测服务器响应的数据中是否含有先前发送的xsspayload,该技术虽然能检测出存储型xss注入,但是爬虫会干扰服务器的正常运行,同时探测数据也会污染服务端业务数据库。因此,有必要改进现有技术或者开发新的解决方案,不使用爬虫,也不向服务器发送污点数据,达到检测存储型xss的目的。
发明内容
本发明的目的是提供一种基于KLD的存储型XSS注入的检测方法,不再使用爬虫技术,不再通过向url发送带有xss payload(污点数据)的请求,减少了服务器受到的干扰,提高了服务器运行的稳定性,避免了服务端业务数据库受到污染。
本发明采取如下技术方案实现上述目的,基于KLD的存储型XSS注入的检测方法,包括以下步骤:
步骤(1)、判断响应Web页面是否属于首次登陆,若是则捕获响应Web页面的所有内容,并且确保该页面内不含XSS代码,进入步骤(2);否则,进入步骤(4);
步骤(2)、对Web页面所有内容中的Javascript代码进行分类统计,得到所有Javascript代码类正常频率分布特征集合P(x);
步骤(3)、将P(x)集合按照{url:[p(x)]}格式存放在内存中,url为Web页面地址,结束本次流程,下次登陆时进入步骤(1);
步骤(4)、捕获响应Web页面的所有内容,对响应Web页面所有内容中的Javascript代码进行分类统计,得到所有Javascript代码类当前频率分布特征集合Q(x);
步骤(5)、根据响应Web页面的地址从内存中获取对应Web页面的Javascript代码类正常频率特征集合P(x);
步骤(6)、计算P(x)与Q(x)的KL散度值D,
Figure BDA0002655664630000021
n≤P(x)集合中数据的数量;
步骤(7)、判断D与KL散度阈值T的大小,若D>T,则触发拦截。
进一步的是,在步骤(1)中,所述确保该页面内不含XSS代码的方式包括:人工与软件结合的方法确保该页面内不含XSS代码。
进一步的是,在步骤(2)中,得到所有Javascript代码类正常频率分布特征集合P(x)包括:统计每一类Javascript代码出现的次数,并计算出每一类Javascript代码出现频率,使用一个集合P(x)存放每一类Javascript代码出现的频率。
进一步的是,所述在统计每一类Javascript代码出现的次数时,若同一个页面发生多次请求,则对同一类Javascript代码统计的次数求平均值。
进一步的是,在步骤(2)中,所述对Web页面所有内容中的Javascript代码进行分类包括:将Javascript代码根据其位置属性分为内联代码、url属性代码、css属性代码、以及各种事件代码。
进一步的是,基于KLD的存储型XSS注入的检测方法还包括:改变阈值T的值,对触发拦截的条件进行优化调节。
本发明基于KLD的存储型XSS注入的检测方法,受限判断响应Web页面是否属于首次登陆,若是则捕获响应Web页面的所有内容,并且确保该页面内不含XSS代码;对Web页面所有内容中的Javascript代码进行分类统计,得到所有Javascript代码类正常频率分布特征集合P(x);将P(x)集合按照{url:[p(x)]}格式存放在内存中,url为Web页面地址,本次登陆结束;即将首次登陆排除XSS代码Web页面的所有Javascript代码类正常频率分布特征集合P(x)存储到内存中,下次登陆时,若不是首次登陆,则捕获响应Web页面的所有内容,对响应Web页面所有内容中的Javascript代码进行分类统计,得到所有Javascript代码类频率分布特征集合Q(x);根据响应Web页面的地址从内存中获取对应的Web页面Javascript代码类正常频率特征集合P(x);计算P(x)与Q(x)的KLD散度值D,
Figure BDA0002655664630000022
n≤P(x)集合中数据的数量;若D>T,则触发拦截。不再使用爬虫技术,不再通过向url发送带有xss payload(污点数据)的请求,减少了服务器受到的干扰,提高了服务器运行的稳定性,避免了服务端业务数据库受到污染。
附图说明
图1是本发明基于KLD的存储型XSS注入的检测方法的方法流程图。
具体实施方式
本发明基于KLD的存储型XSS注入的检测方法,其方法流程图如图1,包括以下步骤:
步骤101:判断响应Web页面是否属于首次登陆,若是则进入步骤102,否则进入步骤105;
步骤102:捕获响应Web页面的所有内容,并且确保该页面内不含XSS代码;
步骤103:对Web页面所有内容中的Javascript代码进行分类统计,得到所有Javascript代码类正常频率分布特征集合P(x);
步骤104:将P(x)集合按照{url:[p(x)]}格式存放在内存中,url为Web页面地址,结束本次流程,下次登陆时进入步骤101;
步骤105:捕获响应Web页面的所有内容;
步骤106:对响应Web页面所有内容中的Javascript代码进行分类统计,得到所有Javascript代码类当前频率分布特征集合Q(x);
步骤107:根据响应Web页面的地址从内存中获取对应的Javascript代码类正常频率特征集合P(x);
步骤108:计算P(x)与Q(x)的KL散度值D,判断D与KL散度阈值T的大小,若D>T,则触发拦截。;
步骤102中,确保该页面内不含XSS代码的具体方式包括:人工与软件结合的方法确保该页面内不含XSS代码。
步骤103中,得到所有Javascript代码类正常频率分布特征集合P(x)的具体实施方式包括:统计每一类Javascript代码出现的次数,并计算出每一类Javascript代码出现频率,使用一个集合P(x)存放每一类Javascript代码出现的频率。
其中在统计每一类Javascript代码出现的次数时,若同一个页面发生多次请求,则对同一类Javascript代码统计的次数求平均值。
步骤103中,对Web页面所有内容中的Javascript代码进行分类包括:将Javascript代码根据其位置属性分为内联代码、url属性代码、css属性代码、以及各种事件代码,更多分类可以参考Javascript代码分类表。
步骤108中,计算P(x)与Q(x)的KL散度值D的具体公式包括:
Figure BDA0002655664630000031
n≤P(x)集合中数据的数量;其中原理为,KLD又称相对熵,互熵,鉴别信息,设P(x)和Q(x)是x取值的两个概率分布,则P对Q的相对熵为:
Figure BDA0002655664630000032
在一定程度上,KL散度可以度量两个概率分布P和Q的距离,当两个概率分布相同时,KL散度为0,当两个概率分布的差别增大时,他们的KL散度也会随之增大。
基于KLD的存储型XSS注入的检测方法还包括:改变阈值T的值,对触发拦截的条件进行优化调节,使得既能识别XSS攻击,又可以减少误拦截、误报。
本发明的一种实施例为,在waf(Web应用防护系统)上应用本方法,通过waf的机制捕获所有的web页面内容。将test.changhong.com加入到waf防护的站点里面,用户通过浏览器首次访问test.changhong.com,waf捕获test.changhong.com页面内容,并且确认该页面内不含XSS代码,对test.changhong.com页面所有内容中的Javascript代码按照Javascript代码分类表进行分类统计,得到所有Javascript代码类正常频率分布特征集合P(x),将P(x)集合按照{url:[p(x)]}格式存放在内存中,比如“test.changhong.com”:[0.1,0.2,0.3,0.4,0.6,0,0,0,0,0.8];当通过浏览器再次访问test.changhong.com页面时,waf捕获test.changhong.com页面内容,对test.changhong.com页面所有内容中的Javascript代码按照Javascript代码分类表进行分类统计,得到所有Javascript代码类频率分布特征集合Q(x),根据test.changhong.com地址从内存中获取对应的Javascript代码类正常频率特征集合P(x),利用公式
Figure BDA0002655664630000041
计算出P(x)与Q(x)的KL散度值D,若D>T,则触发拦截,T为KL散度阈值。
综上所述,本发明不再使用爬虫技术,不再通过向url发送带有xss payload(污点数据)的请求,减少了服务器受到的干扰,提高了服务器运行的稳定性,避免了服务端业务数据库受到污染。
Javascript代码分类表
Figure BDA0002655664630000042
Figure BDA0002655664630000051

Claims (6)

1.基于KLD的存储型XSS注入的检测方法,其特征在于,包括:
步骤(1)、判断响应Web页面是否属于首次登陆,若是则捕获响应Web页面的所有内容,并且确保该页面内不含XSS代码,进入步骤(2);否则,进入步骤(4);
步骤(2)、对Web页面所有内容中的Javascript代码进行分类统计,得到所有Javascript代码类正常频率分布特征集合P(x);
步骤(3)、将P(x)集合按照{url:[p(x)]}格式存放在内存中,url为Web页面地址,结束本次流程,下次登陆时进入步骤(1);
步骤(4)、捕获响应Web页面的所有内容,对响应Web页面所有内容中的Javascript代码进行分类统计,得到所有Javascript代码类当前频率分布特征集合Q(x);
步骤(5)、根据响应Web页面的地址从内存中获取对应Web页面的Javascript代码类正常频率特征集合P(x);
步骤(6)、计算P(x)与Q(x)的KL散度值D,
Figure FDA0002655664620000011
集合中数据的数量;
步骤(7)、判断D与KL散度阈值T的大小,若D>T,则触发拦截。
2.根据权利要求1所述的基于KLD的存储型XSS注入的检测方法,其特征在于,在步骤(1)中,所述确保该页面内不含XSS代码的方式包括:人工与软件结合的方法确保该页面内不含XSS代码。
3.根据权利要求1所述的基于KLD的存储型XSS注入的检测方法,其特征在于,在步骤(2)中,得到所有Javascript代码类正常频率分布特征集合P(x)包括:统计每一类Javascript代码出现的次数,并计算出每一类Javascript代码出现频率,使用一个集合P(x)存放每一类Javascript代码出现的频率。
4.根据权利要求3所述的基于KLD的存储型XSS注入的检测方法,其特征在于,所述在统计每一类Javascript代码出现的次数时,若同一个页面发生多次请求,则对同一类Javascript代码统计的次数求平均值。
5.根据权利要求1所述的基于KLD的存储型XSS注入的检测方法,其特征在于,在步骤(2)中,所述对Web页面所有内容中的Javascript代码进行分类包括:将Javascript代码根据其位置属性分为内联代码、url属性代码、css属性代码、以及各种事件代码。
6.根据权利要求1所述的基于KLD的存储型XSS注入的检测方法,其特征在于,还包括:改变阈值T的值,对触发拦截的条件进行优化调节。
CN202010886265.1A 2020-08-28 2020-08-28 基于kld的存储型xss注入的检测方法 Active CN112039877B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010886265.1A CN112039877B (zh) 2020-08-28 2020-08-28 基于kld的存储型xss注入的检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010886265.1A CN112039877B (zh) 2020-08-28 2020-08-28 基于kld的存储型xss注入的检测方法

Publications (2)

Publication Number Publication Date
CN112039877A true CN112039877A (zh) 2020-12-04
CN112039877B CN112039877B (zh) 2022-04-01

Family

ID=73587620

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010886265.1A Active CN112039877B (zh) 2020-08-28 2020-08-28 基于kld的存储型xss注入的检测方法

Country Status (1)

Country Link
CN (1) CN112039877B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101459548A (zh) * 2007-12-14 2009-06-17 北京启明星辰信息技术股份有限公司 一种脚本注入攻击检测方法和系统
CN101645884A (zh) * 2009-08-26 2010-02-10 西安理工大学 基于相对熵理论的多测度网络异常检测方法
CN101901221A (zh) * 2009-05-27 2010-12-01 北京启明星辰信息技术股份有限公司 一种跨站脚本攻击的检测方法和装置
CN103150374A (zh) * 2013-03-11 2013-06-12 中国科学院信息工程研究所 一种识别微博异常用户的方法和系统
CN103441982A (zh) * 2013-06-24 2013-12-11 杭州师范大学 一种基于相对熵的入侵报警分析方法
CN103685189A (zh) * 2012-09-17 2014-03-26 百度在线网络技术(北京)有限公司 网站安全评估方法及系统
CN108282440A (zh) * 2017-01-05 2018-07-13 阿里巴巴集团控股有限公司 一种安全检测方法、安全检测装置及服务器
CN109766693A (zh) * 2018-12-11 2019-05-17 四川大学 一种基于深度学习的跨站脚本攻击检测方法
WO2019144039A1 (en) * 2018-01-18 2019-07-25 Risksense, Inc. Complex application attack quantification, testing, detection and prevention

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101459548A (zh) * 2007-12-14 2009-06-17 北京启明星辰信息技术股份有限公司 一种脚本注入攻击检测方法和系统
CN101901221A (zh) * 2009-05-27 2010-12-01 北京启明星辰信息技术股份有限公司 一种跨站脚本攻击的检测方法和装置
CN101645884A (zh) * 2009-08-26 2010-02-10 西安理工大学 基于相对熵理论的多测度网络异常检测方法
CN103685189A (zh) * 2012-09-17 2014-03-26 百度在线网络技术(北京)有限公司 网站安全评估方法及系统
CN103150374A (zh) * 2013-03-11 2013-06-12 中国科学院信息工程研究所 一种识别微博异常用户的方法和系统
CN103441982A (zh) * 2013-06-24 2013-12-11 杭州师范大学 一种基于相对熵的入侵报警分析方法
CN108282440A (zh) * 2017-01-05 2018-07-13 阿里巴巴集团控股有限公司 一种安全检测方法、安全检测装置及服务器
WO2019144039A1 (en) * 2018-01-18 2019-07-25 Risksense, Inc. Complex application attack quantification, testing, detection and prevention
CN109766693A (zh) * 2018-12-11 2019-05-17 四川大学 一种基于深度学习的跨站脚本攻击检测方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张亚玲: "基于相对熵理论的多测度网络异常检测方法", 《计算机应用》 *

Also Published As

Publication number Publication date
CN112039877B (zh) 2022-04-01

Similar Documents

Publication Publication Date Title
CN105930727B (zh) 基于Web的爬虫识别方法
CN109951500B (zh) 网络攻击检测方法及装置
CN107888571B (zh) 一种基于HTTP日志的多维度webshell入侵检测方法及检测系统
CN103929440B (zh) 基于web服务器缓存匹配的网页防篡改装置及其方法
CN104113519B (zh) 网络攻击检测方法及其装置
KR101239401B1 (ko) 보안 시스템의 로그 분석 시스템 및 방법
CN103139138B (zh) 一种基于客户端检测的应用层拒绝服务防护方法及系统
CN107786545A (zh) 一种网络攻击行为检测方法及终端设备
CN103179132A (zh) 一种检测和防御cc攻击的方法及装置
CN104519018A (zh) 一种防止针对服务器的恶意请求的方法、装置和系统
CN106295349A (zh) 账号被盗的风险识别方法、识别装置及防控系统
CN102281298A (zh) 检测和防御cc攻击的方法及装置
CN111641658A (zh) 一种请求拦截方法、装置、设备及可读存储介质
CN106790105A (zh) 基于业务数据的爬虫识别拦截方法及系统
CN109257393A (zh) 基于机器学习的xss攻击防御方法及装置
CN108023868B (zh) 恶意资源地址检测方法和装置
CN110798488B (zh) Web应用攻击检测方法
CN114244564B (zh) 攻击防御方法、装置、设备及可读存储介质
CN107426136B (zh) 一种网络攻击的识别方法和装置
CN102891861B (zh) 一种基于客户端的钓鱼网站检测方法及其装置
CN112668005A (zh) webshell文件的检测方法及装置
CN101888296B (zh) 一种影子用户检测方法、装置、设备和系统
CN111786990B (zh) 一种针对web主动推送跳转页面的防御方法和系统
CN112039877B (zh) 基于kld的存储型xss注入的检测方法
CN109190408B (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