基于区块链与SpringBoot的网页防篡改系统设计

2023-07-26 09:13冯淞耀蒙琦杨文杰黄安妮
电脑知识与技术 2023年16期
关键词:轮询网页区块

冯淞耀,蒙琦,杨文杰,黄安妮

(广西电网有限责任公司,广西 南宁 530023)

0 引言

现如今,互联网技术在人们生活的方方面面发挥着重要的作用,极大地便利了人们的生活。然而,互联网技术也是一把双刃剑,它在便利生活的同时也给犯罪分子提供了全新的犯罪手段。近年来,网络攻击事件频发。网络攻击事件轻则导致个体敏感信息泄露,重则可能威胁国家安全。根据中国国家计算机网络应急技术协调中心发布的《2020年中国互联网网络安全报告》[1],在2020年,我国境内被篡改的网站数量超过十万个,超过五万个网站被植入后门。如何高效地检测被篡改的网页是一个亟须解决的问题。本文提出了一种基于区块链与SpringBoot技术的网页防篡改方案,为解决该问题提供了一种新思路。

1 相关技术概述

1.1 区块链技术

2008 年中本聪发表了《比特币:一种点对点电子现金系统》[2]一文,之后区块链技术引起了学术界与工业界的广泛关注[3]。区块链本质上是一种去中心化的分布式数据库,其具有去中心化、可溯源、链上数据不可篡改、安全性高等特点,当前在教育、医疗、供应链与金融等行业应用广泛[4]。依赖于区块链上数据不可篡改的特点,将其应用于网页防篡改,可以有效降低因篡改本地记录文件而导致漏报的风险。

1.2 SpringBoot技术

SpringBoot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化Spring 框架复杂的开发环境配置[5]。SpringBoot 框架通过内置的配置文件与逻辑调用,使开发者从繁杂的重复劳动中解脱出来,释放生产力,提高生产效率。SpringBoot 技术基于Java 语言实现,具有安全可靠与效率高的特点[6]。本项目开发使用SpringBoot框架。

1.3 网页篡改检测技术

网页篡改检测技术主要包含核心内嵌技术、事件触发技术、外挂网页轮询技术三类方式。核心内嵌方式是在Web软件中内嵌检测模块,例如IIS、Apache与Tomcat等软件,通过数字水印的方式比对网页是否发生篡改[7]。该技术实现难度大且依赖于Web 软件,适用性不佳。事件触发机制是通过操作系统提供的文件接口[8],对文件操作函数进行监测,当预期事件被触发后即触发告警。该方法依赖于操作系统API,可迁移性差。外挂网页轮询方式是通过监测程序定时对待保护文件进行检查,发现异常及时告警[9]。该方式可迁移性好且效率高,本系统使用外挂轮询技术。

2 系统设计与实现

2.1 系统模块设计

系统使用B/S 架构,网页防篡改系统数据管理平台通过浏览器访问。设计的网页防篡改系统模块主要包括网页路径初始化模块、区块链操作模块、路径检索模块、路径存储模块、路径比对模块、路径统计模块、系统配置模块、通知告警模块等。系统区块链平台使用自建的区块链平台,本地数据库使用MySQL数据库。系统模块结构图如图1所示。

图1 系统模块架构图

各模块功能简述如下:网页路径初始化模块用于完成系统初始化,采集待保护网页的初始化信息;区块链操作模块用于对接区块链平台,完成路径数据上传到区块链与从区块链下载路径数据的操作;路径检索模块用于递归采集待保护路径的全部文件绝对路径;路径存储模块用于计算各个绝对路径文件对应的数字摘要值并进行存储;路径比对模块用于数据比对,比对系统采集的数据、数据库中数据与区块链平台存储的数据;路径统计模块对路径信息进行统一管理,进行可视化数据展示;系统配置模块主要完成系统参数配置,包括检测频率参数、检测路径参数以及用户账号配置;通知告警模块用于展示系统工作状态,提示用户系统是否存在异常信息,在系统存在异常信息时可以进行及时告警。

2.2 系统工作流程设计

系统流程图如图2所示。

图2 系统流程图

系统完成部署后将自动通过默认参数完成系统初始化配置并监听指定端口,等待管理员通过浏览器访问。系统管理员通过浏览器访问防篡改系统数据管理平台进行参数配置,如系统检测频率、待保护文件夹的路径信息等。待系统参数配置完成后,系统自动进行网页路径首次采集并计算各个文件的数字摘要值,将其存入本地的MySQL 数据库,并将一个副本保存到区块链平台。之后系统进入轮询状态,系统自动根据配置的轮询检查间隔时间定期检查系统指定路径文件并计算其数字摘要值。

将计算出的各个数字摘要值与本地数据库中保存的记录进行比较,如果比较结果一致,则系统文件均正常。系统进入下一次轮询状态。如果计算出的数字摘要值与本地数据库保存的值不一致,则从区块链平台下载对应的文件数字摘要值进行比较。如果从区块链平台下载的数据与本地数据库数据不一致,则本地数据库数据出现了异常,系统将告知管理员进行排查。如果从区块链平台下载的数字摘要值与系统轮询检查的值不一致,则保护的文件出现了异常。系统将及时告警并通知管理员进行进一步处理。待管理员将全部风险处理完成之后,系统重新进入轮询状态。轮询检查的流程图如图3所示。

图3 轮询检查流程图

2.3 数据库设计

本系统实现使用MySQL 数据库。MySQL 是当前非常流行的关系型数据库,在Web应用系统中使用非常频繁,其具有读取速度快、技术成熟与管理便捷的特点。本系统根据业务需求定制数据库,包含用户表、轮询任务表、文件目录表、文件列表、日志表与参数配置表。

1) 用户表。用户表用于存储系统账户信息。通过访问用户表的数据,可以获取用户的创建时间、用户的状态、用户的用户名等数据。

2) 轮询任务表。轮询任务表用于存储系统定时执行的轮询任务,系统将各个轮询任务转化为记录表的数据。各个任务被存储于数据表中,方便修改与系统访问。

3) 文件目录表。文件目录表用于存储系统需要保护的文件目录。通过文件记录表可以获取文件目录的状态、文件添加到系统的时间、文件目录描述以及文件的其他信息。系统基于该数据表完成与目录相关的操作。

4) 文件列表。文件列表用于存储系统检索的全部文件与对应的文件数字摘要值。系统计算完全部的文件数字摘要值之后,将对应的文件路径与数字摘要值存入其中。系统在验证比对文件是否被修改时也需要访问该数据表数据。

5) 日志表。日志表用于存储日志,便于系统溯源查询。系统在进行各项操作时会产生大量的日志,系统将日志信息存储在该表中。系统在展示日志情况时需要从该表读取数据。

6) 参数配置表。参数配置表存储系统各个执行的参数。系统运行时需要配置众多的参数,如果将参数通过硬编码的方式写在代码中,则不利于对系统进行个性化配置。将各个参数存储在数据库中,在需要的时候进行读取。在需要修改参数的时候,可以通过系统进行修改,进一步提高了系统的灵活性。

为保障系统账户安全,系统密码不明文存储,利用哈希算法并配合密码盐值进行编码处理,密码比对时,仅比对哈希值。基于哈希值不可逆的特性,编码后可以有效降低敏感数据泄露风险。

2.4 系统实现与部署

系统使用IDEA 编程工具与Navicat 数据库管理工具进行开发;系统采用B/S 架构,前后端分离,可拓展性好。系统服务器端采用Java 程序设计语言,配合SpringBoot框架与MySQL数据库进行开发。前端展示页结合BootStrap 前端框架与JQuery 框架并利用Thymeleaf模板进行开发。

系统开发的难点是网页防篡改平台与区块链平台的数据交互实现。区块链平台提供对外API 可以实现数据上链与数据下载的功能,通过系统对外提供的API 完成本系统的需求。区块链数据上链测试结果如图4所示。

图4 区块链平台对接效果图

开发完成后,系统通过 Maven 打包为jar 后即可发布使用,具有操作简便、可移植性好的特点。

通过Java jar命令将Maven打包好的jar包运行即可完成系统部署,高效快捷。执行效果如图5所示。

图5 系统部署图(Java -jar方式)

系统首页展示当前系统监测的目录列表与系统完成每次检测之后的结果。不同类型的检测结果使用不同的颜色标出,绿色表示检测结果正常,红色则表示检测到异常情况,需要管理员立即处理。系统初始化完成后,系统根据系统默认参数运行。当管理员添加需要监测的目录与轮询时间后,系统按照相关配置运行。系统监控时,系统监测网页目录并按照每五分钟检查一次的频率进行。系统定时检测指定目录,并依照不同的检测结果标注不同的颜色,结果清晰准确。

3 系统检测效果分析

为验证系统检测的效果,模拟设计了四类实际生产环境可能存在的情况,包括:指定文件夹下文件被修改、指定文件夹下文件被删除、指定文件夹下创建文件与本地MySQL数据库记录被修改。

指定文件夹下文件被修改是指在系统保护的路径中,非法入侵者删除了某些文件的部分内容或者将恶意内容嵌入到文件中。非法入侵者常在系统原本存在的文件中添加可以执行的内容,通过此方法可以获取系统命令执行权限。指定文件夹下文件被删除是指在系统保护的路径中,非法入侵者删除了某些文件。这可以导致系统数据丢失或者功能模块运行异常。指定文件夹下创建文件是指非法入侵者通过系统漏洞、web 漏洞或者SQL 注入等方式[10]在指定的Web文件夹下新建了文件,这是非法入侵者最常使用的方式,也是危害程度较高的一种方式。本地MySQL数据库记录被修改是指数据库中原本存在的初始化参数包括系统配置参数、初始化时候待保护文件的数字摘要值等被修改;这可能是非法入侵者获得了MySQL账户权限或者通过SQL注入的方式实现。

系统对于每种情况的实验效果如表1所示。

表1 检测效果验证表

通过模拟实验,验证了该系统在以上四种模型情况中的良好表现。系统通过定期比对文件的数字摘要值,能够非常准确地检测出是否存在异常。同时利用区块链上数据不可篡改的特性,能有效避免漏检,进一步提高系统监测的准确性。

4 结束语

针对当前存在的网页频繁被篡改问题,本文设计了一套基于区块链与SpringBoot技术的网页防篡改检测系统,介绍了系统的各个模块功能、数据库设计以及具体实现,通过模拟实验验证了所设计系统的有效性。但系统检查是定期运行的,在检查的时间间隔中,不法入侵者可能已经完成了某些高危操作。为解决该问题,下一步将探讨高效率、实时检测与可移植性好的检测方案。

猜你喜欢
轮询网页区块
区块链:一个改变未来的幽灵
区块链:主要角色和衍生应用
基于等概率的ASON业务授权设计∗
基于CSS的网页导航栏的设计
区块链+媒体业的N种可能
读懂区块链
基于URL和网页类型的网页信息采集研究
依托站点状态的两级轮询控制系统时延特性分析
利用时间轮询方式操作DDR3实现多模式下数据重排
网页制作在英语教学中的应用