陶谦文 凌杭 邱迅
基于网络爬虫的高校WEB应用漏洞检测
陶谦文 凌杭 邱迅
摘要:网络安全问题是现代社会非常重视的一个问题,在信息科学技术稳定发展和广泛应用的时期,高校网络安全引起社会广泛关注,因为高校网站集信息发布、数据统计、数据分析、软件办公、共同交流等功能于一体,这使得对学生与教师数据安全与个人隐私的保护尤为重要,为此,本文将讨论通过对各大高校网站统计常见漏洞出现频率,针对各常见漏洞,对其特征进行分析统计,并应用于高校网站,观察高校潜在漏洞。利用网络爬虫技术,对高校网络进行爬取,提取特征,寻找漏洞,并正确处理。
关键词:网络安全;网络爬虫;网络漏洞
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2020)19-0044-03
开放科学(资源服务)际i只码(OSID):
1 引言
当前,中国正处于信息化网络教学调整变革的重要时期,各大高校拥有各自的校园网站以及学生教师数据库。正是这样的背景下,家长接到的诈骗电话也在不断增加,侧面的反映了各大高校网站信息的安全性是低下的,如何保证高校校园信息安全成为当今社会的热点问题。
因此,本文将讨论通过各大高校网站统计常见漏洞出现频率,针对各常见漏洞,对其特征进行分析统计,并应用于高校网站,观察高校潜在漏洞,实现对各大高校提供模拟攻击服务,应用条件概率模型,对攻击结果形成检测报告。使用网络爬虫技术建立起高校安全的云平台,以高校网站为主要群体,进行开发应用,以验证检测效率。
2 网络爬虫技术概要
网络爬虫,在互联网已经被广泛应用的一种按照确定的逻辑去自动抓取WEB资源(图片,音频等资源)的程序。
爬虫对于WEB系统的访问,一般是难以防范的,爬虫会抢占网络带宽和占用WEB服务器的计算资源,挤占普通用户所分配的资源,使得普通用户使用WEB应用时出现卡顿,频繁掉线等情况从而影响WEB系统的正常运作。一些恶意爬虫程序对WEB系统发动的DDoS攻击,也基于上述原理,攻击者使用大量爬虫程序的频繁访问目标WEB系统,挤占服务器以及带宽资源,使得系统不能正常对普通用户工作,造成服务器资源的浪费。恶意爬虫还可能通过特定脚本抓取各种敏感资料和WEB系统所存的用户信息造成个人信息泄露。
由于开发人员缺乏足够的安全知识和大部分系统是外包的给第三机构开发的原因,使得不少WEB系统存在安全隐患。攻击者针对WEB系统可以提交一条包含SQL语句或脚本的URL请求的语句,根据WEB应用程序的返回结果,分析或解密相关的敏感信息(如管理员账号及密码),甚至在特殊情况下上述操作可以实现直接修改后台数据库用户数据。基于WEB爬虫技术已经成熟和现在的安全现状,网络爬虫技术应用在WEB漏洞扫描上,可以提高发现漏洞的效率。
图1就是利用JAVA的JSOUP爬虫框架自动下载某学校的网站网页的图片的脚本核心代码。应用网络爬虫技术到WEB漏洞扫描可以分为以下过程:
(1)WEB请求:通过脚本请求目标站点,返回WEB界面数据。
(2)页面元素筛选:通过第一步后,对含有URL标签的节点元素进行提取,以便可以进行再一步的操作。
(3)URI匹配:匹配WEB页面中的URL,筛选由参数组合而成的动态查询URL或者提交URL,进行下一步的漏洞探测。
(4)WEB漏洞探测:根据上述操作,由脚本在参数部分进行多次的参数变换,例如:插入冒号、分号及Script标签等操作进行探测,然后根据WEB服务器返回的结果由脚本自动判断是否存在漏洞。脚本的自动化操作,减轻了人工成本,而且可迅速有效的发现WEB的漏洞。
3 网络爬虫技术分析网页漏洞的实现方法
3.1 网页分析方法
基于对字符串的处理,我们使用正则表达式来进行筛选,例如:从字符串中获取某个句法规则的片段,使用方法简单易懂,灵活性较高,可以用任何规则来进行字符串的控制。
JAVA通过Pattern类来使用正则表达式,一般是创建出Pattern对象,并传人所需要匹配类型的Pattern。
3.2 WEB漏洞检测方法
用户不容易发现攻击者,攻击网站后,加入了恶意的代码,这些代码具有一定的隐蔽性,因此,漏洞挖掘给出的可行性方案,就是要我们针对网页的某些特殊属性进行检测,并给出一定的解决方案。
3.2.1 属性分析
系统可以自动获取网页分析的网页源码,如果信息中出现标记时,与此同时也出現width=“0”和height=“0”的信息时,这就是被植入的网页代码,可以隐藏的,其中一个子窗口。
3.2.2比例分析
所使用的整个网页大小的比值和网页中的脚本代码超过一定的界限,就将此网页认定为恶意网页的警告,反之则非恶意网页。此方法可以提高效率的识别网页的木马。
3.2.3 信息熵分析
不确定程度的依据可以用信息熵来表示,其数学公式如下:
可以通过信息熵的加密后所显示的特征来判定,这是不是一段友善的代码。因为有剩的代码,无需加密,只需正常输出,但是不友善的代码是通过信息的加密实现的。
4 检测系统架构与实现
4.1 系统总体架构
系统由三大类服务端构成:后台的工作端,后台的服务端和前台的用户端。对应于三大块程序:后台的工作端守护程序、后台的服务端守护程序,前台的用户界面服务。因此,各类的服务器都是以服务的方式运行的,当只有一台主机时,用户可以同时开启后台的工作端、后台的服务端、前台的用户端来临时作为单机的Web漏洞扫描软件工作。
4.2 前台架构与实现