基于LD算法的网页篡改可视化预警系统的研究

2020-07-09 23:28王本钰郑棣文李禹欣彭舒凡王勇
现代信息科技 2020年21期
关键词:数据库

王本钰 郑棣文 李禹欣 彭舒凡 王勇

摘  要:文章对网页篡改现状进行了调查,对新闻、博客、大学网页被篡改方式进行了研究,并基于LD算法、Python爬虫,研究出可以有效对网页添加暗链、添加恶意代码、篡改网页文本等网页篡改行为进行可视化预警的系统,搭建了可视化动态网页,可以及时呈现网页篡改的位置和网页篡改周期和频率,并通过网页源码关联数据库,有效保证了网页的可恢复性。

关键词:网页篡改;LD算法;Python爬虫;可视化预警;数据库

中圖分类号:TP393      文献标识码:A 文章编号:2096-4706(2020)21-0141-04

Research on Visual Early Warning System of Webpage Tampering

Based on LD Algorithm

WANG Benyu,ZHENG Diwen,LI Yuxin,PENG Shufan,WANG Yong

(School of Information and Network Security,Peoples Public Security University of China,Beijing  100038,China)

Abstract:This paper investigates the current situation of webpage tampering,and studies the ways of news,blog and university webpage tampering. Based on LD algorithm and Python crawler,a visual early warning system is developed,which can effectively alert webpage tampering behaviors such as adding dark chain,adding malicious code and tampering with webpage text,and builds a visual dynamic webpage,which can timely present the location,period and frequency of webpage tampering,and effectively ensure the recoverability of webpage by associating webpage source code with database.

Keywords:webpage tampering;LD algorithm;Python spider;visual early warning ;database

0  引  言

近年来,我国互联网正经历着日新月异的变化。现如今,高校充分利用校园网发布各类信息。然而,互联网的广泛使用也为其发展埋下了隐患。不法分子寻找技术与制度的漏洞,通过恶意程序、网站后门、安全漏洞、木马病毒、僵尸网络、DDOS攻击、网页仿冒、SQL注入[1]和网页篡改等手段谋取利益,例如通过手机短信传播,具有可以获取用户手机短信和通信录功能的“相册”类安卓恶意程序和具有恶意扣费、恶意传播属性的色情软件,此外,攻击高校校园网的案件更是不计其数。此类现象不仅严重损害高校形象,还会严重危害用户个人信息安全和财产安全[2]。监控的不及时不到位是这些情况产生的主要原因,网站的开发和维护人员在网站上线和运行阶段没有重视网页篡改的危害,监控环节缺位、监控措施缺乏、处置措施无力、网站资金人力资源缺乏,以至于网页被篡改之后无法及时处理,无人问津[3]。

1  关键技术

1.1  LD算法

网页本质上是纯文本文件,可以将整个网页文档看作一个长字符串,通过文本比较算法来查找两个网页之间的差异。比较两个给定文本间差异的算法称为文本比较算法,目前主流的文本比较算法可以分为两大类:一类是基于编辑距离的文本比较算法,如LD算法;另一类是基于最大公共子串的文本比较算法,如Needleman/Wunsh算法。两类文本比较算法的核心思想的区别在于,前者突出的是文本间的差异性,而后者突出的是文本间的共同性。显然,基于编辑距离的文本比较算法更符合当前的应用,本次研究以LD算法为例,将文本比较算法应用到网页对比上。

1.2  Python爬虫

本此研究利用lxml库和XPath语法来对所需要的标签内容进行解析与提取。lxml库利用XPath语法来对网页数据进行定位和解析。XPath语法是可以对XML文档和HTML文档使用的查找信息的语言,它是一种基于节点的查找语言,在HTML文档中节点的表现形式就是一个一个的标签,由标签来组成父节点、子节点、同胞节点、先辈节点以及后代节点这五种复杂的关系。XPath语法通过路径表达式来选取相应的节点,用谓语来查找某个符合爬取要求的特定节点或者包含相应属性的节点。通过设置爬取规则,可以对网页内容进行有效爬取。

2  系统设计与实现

2.1  系统功能模块设计

依据不同的职能和服务将网页篡改可视化预警系统划分成三大模块。通过模块化的拆分和组合,可以方便管理员对系统的维护,并且保证了系统的可延展性,为之后扩大系统的使用规模打下良好的基础。不同角色的模块相互配合,也增加了本系统的安全性,易于管理。系统的功能模块如图1所示。

2.2  操作流程设计

当整个系统部署完毕之后,管理员即可通过该系统对网页实时篡改信息进行分析和监控。具体的数据流向是:监控程序负责爬取实时网页信息,将网页信息做初步的分词处理导入数据库中,然后将数据库新老内容做出对比,将不同之处导出,最后在可视化动态网页中显示出具体的不同之处。操作流程如图2所示。

2.3  监控器模块

监控器是该系统最重要的部分,完成了整个系统80%的工作。为了达到实时监控的目的,监控器对被监控网页的爬取频率要选取合适的区间。经多次试验发现,将时间间隔定位为每三秒执行一次监控程序效果最佳,兼顾了效率与各模块之间的平衡。

首先,使用Python爬虫爬取网页正文,为了更好地展示网页篡改可视化预警系统,运用了lxml库解析网页内容以及XPath语法定位网页信息,并将每段话用##分开。其次,建立文字对比器,利用Python的jieba將爬取的新老网页内容分词和切分,文字对比器是监控器的核心模块,利用LD算法对新老文本进行两次对比,并分别保存新老文本的不同之处以便之后的处理。最后,利用Python自带的MySQLHelp库并加以修改建立起监控器对数据库的调用、存储信息与先期处理。

数据库设计的好坏会决定系统运行是否流畅,本次构建系统的数据库名称为web_page_monitor,内含三个表,分别是user表、web_content表、web_info表。user表记录的是系统的用户信息,包括用户id、名称、密码以及年龄等主键id;web_content表存储的主要是初始网页、被篡改之后的网页的正文信息以及网页被篡改之后的不同之处,如果监测程序发现没有发生篡改,就不存入;web_info表存储的是被监控网页的信息。

2.4  可视化网页预警模块

利用jQuery EasyUI提供的服务来辅助搭建网页篡改可视化系统的前端,服务器端运用PHP语言来实现各种服务。主要网页包括登录界面、注册界面以及登录之后的系统界面。系统界面里包含介绍系统功能模块的内容、被监控网页配置、篡改检测预警可视化以及用户信息的管理。篡改检测预警可视化部分将每一次的被修改段落都标注了出来,并且根据篡改制作了篡改次数图,直观地反映了页面被篡改的程度以及篡改的频率,给管理人员一个基本的参考。可视化预警模块组成直观图如图3所示。

登录可视化动态网页之后就能看到管理员可以对该系统进行的三个最终的操作:被监控网页配置、篡改检测预警可视化以及用户信息管理。被检测网页模块可以通过添加需要监控的网页URL以及爬取规则来达到对相应的多个被监控网页进行防篡改监控。篡改检测预警可视化可以对每一次对网页进行篡改的内容以及对网页篡改的频率做了直观的统计和展示。用户信息管理可以对用户的密码等信息做出改变并存入数据库。

3  系统功能实现与测试

3.1  系统测试

通过修改爬虫规则,本系统可以对网页内加入暗链、添加恶意代码、网页文本信息篡改进行有效检测。

系统运用lxml库解析网页内容和XPath语法定位网页信息,有效定位网页正文内容有无修改,什么地方被修改。系统通过爬取网页内所有链接,并将这些链接逐一保存在数据库表中从而有效的检测添加暗链等网页篡改行为。此外,系统通过爬取网页所有的源代码,并将网页源代码按行为单位存储在数据库的字段中,通过比对算法比对网页源代码有无被更改的情况并定位更改的地方进行预警。

3.2  系统功能实现步骤

3.2.1  启动监控器

监控器是该系统最重要的模块,将其置入管理员电脑后可以与其他模块相互独立的运行。从监控器的界面可以看出监控器整个运行的逻辑以及数据的流向。

3.2.2  被监控网页的查看

被监控网页即为管理员需要保护的对象,这里利用天涯论坛网上某博主的博客前端代码来搭建本系统的被监控网页,天涯论坛网是中国知名的论坛博客,如图4所示,它的前端模板基本上可以代表主流博客网站的代码风格。

3.2.3  对被监控的网页进行篡改

将所有服务开启并且登录网页篡改可视化预警系统之后,进行第一步测试。直接在服务器端人为地将网页中博客正文的源码篡改,目的是模拟网站服务器被攻击者脱库或者获取网站后台信息后进行的网页篡改。

3.2.4  系统可视化动态网页的查看

打开系统的可视化动态网页,会有提示出现。按照提示刷新网页后,点开篡改检测预警可视化,可以查看每次被篡改的具体段落以及篡改的次数,其中增添删除操作记为一次,修改操作会统计篡改前与篡改后不同的地方以及篡改后与篡改前不同的地方相加后的结果,显示篡改次数折线图如图5所示。

3.2.5  数据库的查看

数据库是连接监控器和可视化动态网页的桥梁,查看数据库可以从一定程度上判断错误发生的位置,直观的反应数据在这两部分之间的传递和存储过程。

4  结  论

笔者结合LD算法、Python爬虫构建了基于LD算法的网页篡改可视化预警系统,通过搭建自己的静态博客网页并且以部署网页篡改可视化预警系统的方式来测试系统的可用性,进而调试系统存在的漏洞。经过一系列的努力,基本上建立并完善了一个可以满足功能需求、高效率、操作便捷的可视化系统。本文中实现的系统运行速度快、检测率高,在静态网络方面,可以达到只要网页源码发生了改变,便可以对网页篡改行为进行预警,并显示被篡改的地方。同时在此基础上,下一步将进行对爬取动态博客网页的研究。

在具体的公安工作中,由于本次研究的系统体量小、安装方便、资源占用少,可以作为部署在各个重点单位网站的防篡改监控器,配合一系列操作与其他的软件能在较短的时间对篡改网页做出反应,为公安机关保护人民财产安全做出一定的贡献。

参考文献:

[1] ELSHAZLY K,FOUAD Y,SALEH M,et al. A Survey of SQL Injection Attack Detection and Prevention [J].Journal of Computer and Communications,2014,2(8):1-9.

[2] 王小群,丁丽,严寒冰,等.2016年我国互联网网络安全态势综述 [J].互联网天地,2017(4):47-56.

[3] 何世平.2013年中国互联网站安全情况综述 [J].互联网天地,2014(7):53-58.

作者简介:王本钰(1998—),男,汉族,江苏盐城人,硕士研究生,研究方向:软件设计。

猜你喜欢
数据库
Designer测试大数据预定义均衡配置
MemSQL获3000万美元D轮融
数据库
数据库
数据库
数据库
数据库
数据库
SQL语言在电信业务数据库数据查询中的应用
数据库