【网安区块链项目参考】基于区块链的安全日志防篡改系统的设计与实现

整个系统资料包含:全套源码+注释+开发文档+部署指导说明,需要的话可以私信博主获取,伸手党勿扰

基于区块链的安全日志防篡改系统的设计与实现

摘要

随着信息系统规模的不断扩大,系统安全日志在网络安全审计、入侵检测与事后取证中发挥着越来越重要的作用。然而,传统日志系统普遍存在日志可被删除、篡改而难以发现的问题,一旦攻击者获得系统权限,往往可以通过修改日志来掩盖攻击痕迹,严重影响安全事件的溯源与取证效果。针对这一问题,本文设计并实现了一种基于区块链技术的安全日志防篡改系统。系统利用区块链的哈希链结构与不可篡改特性,将系统日志的哈希值写入区块链,实现日志的可信存储与完整性保护。系统采用 Python 语言进行开发,使用 PyQt5 构建可视化界面,提供日志采集模拟、日志哈希上链、区块浏览、时间轴展示、完整性验证、异常日志高亮以及攻击与修复演示等功能。实验结果表明,本系统能够有效检测日志的篡改、删除与区块链破坏行为,并可在区块链被破坏后通过重建机制实现可信恢复,为安全日志的可信管理提供了一种可行方案。

关键词:区块链;安全日志;防篡改;完整性验证;PyQt5

第一章 绪论

1.1 研究背景与意义

随着互联网与信息系统的迅速发展,网络攻击事件频发,系统安全日志已成为安全运维与安全审计的重要数据来源。通过分析安全日志,管理员可以追踪用户行为、发现入侵痕迹并进行事后取证。然而,在传统日志系统中,日志通常以文件形式存储在本地服务器上,一旦攻击者获取系统权限,便可以轻易删除或篡改日志内容,从而掩盖攻击行为,导致安全审计失效。

区块链技术以其“去中心化、不可篡改、可追溯”的特性,为解决日志可信存储问题提供了新的思路。将区块链技术引入安全日志管理系统,可以有效保证日志数据在存储过程中的完整性与可信性,从根本上解决日志被篡改和删除的问题。因此,研究基于区块链的安全日志防篡改系统具有重要的理论意义和现实价值。

1.2 国内外研究现状

近年来,国内外学者在区块链与安全日志结合方面进行了大量研究。国外研究多集中在利用区块链构建可信日志系统、审计系统和分布式取证系统,如将日志哈希写入以太坊或私有链中实现日志防篡改。国内研究则更多关注区块链在安全审计、数据溯源与可信存证领域的应用,但多数停留在理论分析或原型系统层面,缺乏可视化、可演示的完整系统实现。

综上所述,设计并实现一套可运行、可验证、可演示的区块链安全日志防篡改系统,对推动区块链在信息安全领域的落地应用具有重要意义。

1.3 研究内容与论文结构

本文以区块链与安全日志管理为研究对象,完成了系统的需求分析、总体设计、关键技术实现与实验验证。全文结构安排如下:

  • 第一章:绪论,介绍研究背景、意义与研究内容;
  • 第二章:相关技术介绍,包括区块链技术与安全日志管理技术;
  • 第三章:系统需求分析与总体设计;
  • 第四章:系统关键模块的设计与实现;
  • 第五章:系统测试与结果分析;
  • 第六章:总结与展望。

第二章 相关技术介绍

2.1 区块链技术概述

区块链是一种以区块为基本数据单元,通过密码学哈希函数将各区块按时间顺序链接形成链式结构的分布式账本技术。每个区块包含区块索引、时间戳、数据哈希、前一区块哈希和本区块哈希等信息。由于每个区块的哈希值依赖于前一区块的哈希,一旦某个区块的数据被篡改,其后续所有区块的哈希都会发生变化,从而实现数据不可篡改与可追溯。

在本系统中,采用轻量级私有区块链实现日志哈希的可信存储,避免了引入复杂公有链系统带来的性能与部署成本问题。

2.2 安全日志管理技术

安全日志是指记录系统运行过程中安全相关事件的信息,如用户登录、权限变更、异常访问和攻击行为等。安全日志管理通常包括日志采集、存储、分析与审计等环节。传统日志管理系统主要依赖文件系统或数据库存储日志,缺乏有效的防篡改机制。

将区块链技术引入安全日志管理,可以通过哈希上链的方式实现日志完整性保护,为安全审计与取证提供可信依据。

2.3 PyQt5 图形界面开发技术

PyQt5 是基于 Qt 框架的 Python 图形界面开发工具,具有跨平台、功能丰富和开发效率高等优点。本系统采用 PyQt5 构建桌面可视化界面,实现日志浏览、区块浏览、时间轴展示和攻击与修复演示等功能。

第三章 系统需求分析与总体设计

3.1 系统需求分析

3.1.1 功能需求
  1. 日志采集(模拟):生成大量系统安全日志数据;
  2. 日志哈希上链:对日志进行哈希计算并写入区块链;
  3. 日志完整性验证:检测日志是否被篡改或删除;
  4. 区块浏览:查看区块链结构与区块详情;
  5. 时间轴展示:按时间顺序展示链上日志事件;
  6. 异常日志高亮:对 ERROR/CRITICAL 日志进行高亮显示;
  7. 攻击与修复演示:支持一键篡改日志、一键删除日志、一键破坏区块链以及一键修复区块链(含备份与报告)。
3.1.2 非功能需求
  1. 可扩展性:支持接入真实系统日志;
  2. 易用性:提供可视化界面,方便演示与使用;
  3. 可靠性:区块链被破坏后能够恢复可信状态。

3.2 系统总体架构设计

系统采用分层模块化设计,包括:

  • 日志模块:负责日志生成与管理;
  • 区块链模块:实现区块与区块链结构;
  • 完整性验证模块:实现日志与区块链的一致性校验;
  • 界面模块:实现系统可视化与交互;
  • 修复与报告模块:实现区块链修复、备份与修复报告生成。

系统总体架构如图所示(论文中可绘制系统架构图)。

第四章 系统设计与实现

4.1 区块与区块链模块设计

4.1.1 区块结构设计

每个区块包含:

  • index:区块编号;
  • timestamp:时间戳;
  • log_hash:日志哈希;
  • prev_hash:前一区块哈希;
  • hash:本区块哈希。

通过 SHA-256 算法对区块内容进行哈希计算,保证区块不可篡改。

4.1.2 区块链管理设计

区块链模块负责:

  1. 创建创世块;
  2. 添加新区块;
  3. 保存与加载区块链文件;
  4. 验证区块链结构合法性。

4.2 日志管理与上链模块实现

系统通过日志生成模块模拟生成数千条安全日志,并使用哈希算法对每条日志进行计算,将日志哈希依次写入区块链,实现日志与区块链的绑定关系。

4.3 完整性验证模块实现

完整性验证模块通过以下步骤实现日志防篡改检测:

  1. 校验区块链结构是否合法;
  2. 逐条计算日志哈希;
  3. 将日志哈希与区块链中对应区块的 log_hash 进行比对;
  4. 若不一致,则判定日志被篡改或删除。

4.4 图形界面与可视化设计

系统采用 PyQt5 构建图形界面,包括:

  • 日志浏览界面:展示日志并高亮异常日志;
  • 区块浏览界面:左侧区块列表,右侧区块详情;
  • 时间轴界面:按时间顺序展示日志事件;
  • 操作按钮区:验证、攻击与修复按钮;
  • 输出区:显示操作结果与耗时信息。

4.5 攻击与修复机制设计

4.5.1 攻击模拟

系统提供:

  • 一键篡改随机日志;
  • 一键删除随机日志;
  • 一键破坏区块链(修改 prev_hash 或 log_hash)。
4.5.2 区块链修复机制

当区块链被破坏后,系统支持一键修复区块链:

  1. 自动备份原有 blockchain.json(带时间戳);
  2. 根据当前日志重新计算哈希并重建区块链;
  3. 自动生成修复报告(JSON 与 TXT 格式)。

修复报告包含修复时间、耗时、区块数量、备份路径与修复后验证结果等信息。

第五章 系统测试与结果分析

5.1 功能测试

5.1.1 正常验证测试

在系统初始状态下执行日志完整性验证,结果显示“验证通过”,说明日志与区块链一致。

5.1.2 日志篡改测试

对日志文件进行篡改后再次验证,系统检测到哈希不一致并提示验证失败,说明系统能够有效检测日志篡改行为。

5.1.3 日志删除测试

删除一条日志后再次验证,系统检测失败,说明系统具备防删除能力。

5.1.4 区块链破坏与修复测试

破坏区块链结构后验证失败,通过一键修复区块链功能恢复系统,验证再次通过,证明修复机制有效。

5.2 性能测试

在生成 3000 条日志的情况下,系统完成日志上链与验证的耗时在毫秒级,满足教学与实验要求。通过调整日志数量,可对系统性能进行扩展测试。

5.3 结果分析

实验结果表明,基于区块链的安全日志防篡改系统能够有效保障日志的完整性与可信性,为安全审计与取证提供可靠支撑。

第六章 总结与展望

本文设计并实现了一种基于区块链的安全日志防篡改系统,通过哈希上链机制解决了传统日志系统易被篡改的问题。系统功能完整,界面直观,可用于信息安全专业的教学与实验演示。

未来的研究工作可从以下方面展开:

  1. 接入真实系统日志源(如 Linux 日志、Web 日志);
  2. 引入联盟链或公有链,提高系统的可信度;
  3. 结合机器学习技术,实现智能安全日志分析与异常检测

详细设计原理:

1)整体思路:日志不上链,日志哈希上链

  • 日志明文:存本地data/logs.json
  • 链上存证:只把每条日志的SHA-256 哈希摘要写入data/blockchain.json

这样做到两点:

  1. 链上不存敏感明文,存储开销小
  2. 日志任何字段被改(哪怕改一个字符),哈希都会变 → 能检测

对应代码:

  • 日志生成:log/log_generator.py -> generate_logs()
  • 哈希上链:log/log_manager.py -> LogManager.hash_log()+upload_logs_to_chain()

2)日志生成(模拟采集):log/log_generator.py

generate_logs(num, file_path="data/logs.json")会生成一个 JSON 数组,每条日志形如:

{ "id": i, "time": "...", "level": "INFO/ERROR...", "source": "...", "message": "..." }

关键点:

  • levelrandom.choices(... weights=[75,18,6,1])控制异常比例,模拟真实系统“INFO多、CRITICAL少”
  • ERROR/CRITICAL会写入更像攻击/异常的message,方便你在界面里高亮截图

3)日志哈希计算与上链:log/log_manager.py

3.1 日志哈希怎么计算

LogManager.hash_log(log)

  • 先把字典序列化:json.dumps(log, sort_keys=True, ensure_ascii=False)
  • 再 SHA-256:hashlib.sha256(...).hexdigest()

sort_keys=True是关键:保证同一条日志无论字段顺序如何,序列化结果一致,避免误报。

3.2 哈希如何写入区块链

upload_logs_to_chain()会:

  1. 读取data/logs.json
  2. 对每条日志计算log_hash
  3. Blockchain.add_block(log_hash)把它作为新区块的log_hash

这样形成映射关系:

  • 链上第 0 块是创世块
  • 链上第 i 块(i>=1)对应日志第 i-1 条

4)区块结构与“哈希链”不可篡改性:blockchain/block.py

Block的字段:

  • index:区块高度
  • timestamp:时间戳
  • log_hash:日志哈希摘要(核心存证)
  • prev_hash:前一区块哈希
  • hash:本区块哈希

calculate_hash(){index,timestamp,log_hash,prev_hash}做 SHA-256。

为什么这能防篡改?

  • 任何人改了某块的log_hashprev_hashtimestamp
  • → 该块hash会变化
  • → 后一块的prev_hash不再匹配
  • → 链结构校验必失败

5)区块链管理与结构校验:blockchain/blockchain.py

5.1 追加区块

add_block(log_hash)

  • 新块prev_hash = self.chain[-1].hash
  • 新块hash = calculate_hash()
  • 保存到data/blockchain.json

5.2 链结构校验(很关键)

is_chain_valid()做两件事:

  1. 区块自校验cur.hash == cur.calculate_hash()
  2. 链接校验cur.prev_hash == prev.hash

只要链文件被改过(尤其你的一键“破坏区块链”是“改字段但不重算hash”),这里马上就会返回 False。

6)日志完整性验证:verify/integrity_checker.py

verify_logs(log_file, blockchain)是你“防篡改检测”的核心,分两层:

6.1 先查链结构(排除链被破坏)

if not blockchain.is_chain_valid(): return False, "区块链结构校验失败..."

这一步能直接定位:不是日志问题,而是链本身被破坏

6.2 再查日志-链一致性(检测日志被改/删/重排)

  • 逐条重新计算logs.json的哈希_hash_log(log)
  • 与链上对应区块的log_hash比对:
for i, log in enumerate(logs, start=1): if blockchain.chain[i].log_hash != hash(log): return False, "第 i-1 条日志哈希不一致..."

因此能检测:

  • 篡改:改 message/level/time/source/id → 哈希变 → 不一致
  • 删除:日志条数变、映射错位或链长度不足 → 验证失败
  • 重排:日志顺序变、映射错位 → 不一致

7)GUI 成品化展示:ui/main_window.py

7.1 日志浏览 + 异常高亮

  • load_logs_table()logs.json填入QTableWidget
  • 如果 level 是ERROR/CRITICAL就设红色背景,方便审计截图

7.2 区块浏览:左列表 + 右详情(联动日志)

  • 左侧block_table显示区块索引、时间、哈希缩略
  • 点击某行触发on_block_selected()
  • 右侧block_detail展示完整 hash/prev_hash/log_hash
  • 同时定位对应日志行(把“链上证据”和“日志原文”对上)

7.3 时间轴展示(底部)

_load_timeline()按日志时间生成表格:时间、区块#、级别、摘要

点击时间轴某行会联动选择区块并展示详情(on_timeline_selected())。

8)一键攻击演示:为什么能稳定复现

都在ui/main_window.py

8.1 一键篡改随机日志

on_tamper_random_log()

  • 随机选日志
  • message += [TAMPERED_xxxx]
  • 写回 logs.json
  • → 日志哈希变,链上 log_hash 不变 → 验证必失败

8.2 一键删除随机日志

on_delete_random_log()

  • pop()删除一条
  • 写回 logs.json
  • → 日志数量/顺序映射被破坏 → 验证失败

8.3 一键破坏区块链

on_break_blockchain()

  • 修改prev_hashlog_hash的最后一位
  • 不重算 hash(这是关键)
  • is_chain_valid()立刻失败

9)一键修复:备份 + 重建 + 报告

修复本质是“从权威日志文件重建可信链”。

典型流程(你按钮逻辑):

  1. 修复前备份data/blockchain.jsondata/backups/(带时间戳)
  2. 读取logs.json
  3. 生成 GENESIS 块
  4. 逐条日志重新算哈希并重建blockchain.json
  5. 修复后自动验证(常见做法:调用verify_logs记录结果)
  6. 输出修复报告data/reports/(JSON + TXT)

此项目我们总共迭代了三个版本,最终实现效果:

1.0版本:

2.0版本:新增一键删改破

3.0版本:增加一键修复区块链功能

整个系统资料包含:全套源码+注释+开发文档+部署指导说明,需要的话可以私信博主获取,伸手党勿扰

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1185411.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【计算机毕业设计案例】基于django定制化ERP系统APP企业客户设备进销存系统小程序(程序+文档+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

无线网络仿真:蓝牙网络仿真_(15).蓝牙网络仿真研究前沿

蓝牙网络仿真研究前沿 1. 蓝牙网络仿真的背景与意义 1.1 无线网络仿真的重要性 无线网络仿真是一种重要的研究工具,用于评估和优化无线通信系统的性能。通过仿真,研究人员可以模拟真实世界中的各种无线通信场景,从而分析网络的行为和性能。无…

用提示工程让大模型自己检查自己:CoVe方法有效减少幻觉

LLM幻觉问题至今没有根治方案。RAG能缓解一部分,但成本高、架构复杂,而且只适用于有外部知识源的场景。而对于模型"应该知道但经常搞错"的那类问题,比如历史事件的时间线、人物履历的细节,RAG帮不上什么…

Flink 流处理从入门到精通:DataStream 转换与窗口操作实战

💡 Flink DataStream API 实战全解析:Map、FlatMap、Filter 与 Window 窗口操作详解 封面图建议:深蓝科技感背景,中央 Flink logo,流动线条展示数据流动,关键词“Map / FlatMap / Filter / Window Processing”,简洁直观。 目录 Flink 执行环境与时间语义 基础转换操作…

Java 27 首获后量子混合密钥交换功能提案

计划于9月发布的标准Java版本——Java开发工具包(JDK)27已经获得了首个功能提案:后量子混合密钥交换能力,用于加强网络安全。该功能名为"TLS 1.3的后量子混合密钥交换",已于1月13日在OpenJDK的JDK 27页面上列…

深入 Flink 数据源:RichSourceFunction 的设计与最佳实践

Flink DataStream API 实战:从 SourceFunction 到 RichSourceFunction 的进阶与优化 本文详细讲解了 Apache Flink 中源函数(Source Function)的演进,从最基础的 SourceFunction 到功能更强大的 RichSourceFunction,并结合数据库、Kafka 仿真及可配置化场景提供实战示例,…

小程序毕设项目推荐-基于django+小程序的工厂定制化ERP办公系统APP小程序【附源码+文档,调试定制服务】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

新手友好 Linux Mint 22.3“Zena“正式发布,带来系统全面升级

如果你想尝试 Linux Mint,现在正是时候。全新改进的"Zena"版本已经到来——仍然基于 Ubuntu Noble,但现在配备了 Cinnamon 6.6、改进的 Wayland 支持,以及更好的国际化功能、新的系统信息和系统管理工具,还有更清晰的图…

什么是挖矿木马?我猜你还不知道

前言 挖矿木马主要就是通过利用各种手段,将挖矿程序植入到用户的计算机中,在用户不知情的情况下,偷偷利用用户的计算机进行执行挖矿功能,从而获取收益。 以下情况是用户中木马的高频事件: 1.用户往往在不注意的时候…

2026校招薪资报告:AI/大模型岗位领跑,附完整学习路径与资料包

2026届校招分析显示:AI/大模型岗位薪资最高(60w-90w),需求激增需掌握Transformer、RAG等技术。测试开发和客户端是性价比之选。学历显著影响薪资起点(双非本科6k至985硕30k)。文章提供大模型学习四阶段路径,从初阶应用到商业闭环,…

云厂商与软件供应商承担万亿美元AI投资,但长期成本终将转向用户

根据Gartner预测,软件供应商和云服务提供商正在承担今年预期万亿美元AI支出增长的主要负担,总投资将达到2.52万亿美元。这家全球技术分析公司预测,AI支出将比去年的1.76万亿美元增长44%。这一数字较9月份估计的1.5万亿美元有所上调。到2029年…

MySQL + MQ 最终一致性终极方案:Outbox + 幂等 + 补偿 + 对账全解析

适用对象:后端架构师 / 高级开发 / 分布式系统设计者 适用场景:订单系统、支付系统、库存系统、账户系统、积分系统、异步解耦系统 MQ 示例:RocketMQ(Kafka、Pulsar 原理一致) 一、问题背景:为什么分布式系统一定会“不一致”? 在微服务架构中,最常见的模式是: 业务服…

小程序计算机毕设之基于django智能制造业ERP系统定制化ERP系统APP小程序(完整前后端代码+说明文档+LW,调试定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

在360干了3年网络安全工程师,30岁即将退休的我,告诉你网络安全的真实就业前景

文章目录 前景 网络安全行业真实前景有那么好吗?网络安全人才一将难求,缺口高达 95%安全岗位选择多,薪酬福利高,发展前景好网络安全上升至国家战略,相关政策相继出台 如何入门学习网络安全【黑客】 【----帮助网安学习…

计算机小程序毕设实战-基于django定制化ERP系统APP小程序员工管理、客户管理、设备管理【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

红蓝对抗 网络安全 网络安全红蓝对抗演练

什么是红蓝对抗 在军事领域,演习是专指军队进行大规模的实兵演习,演习中通常分为红军、蓝军,演习多以红军守、蓝军进攻为主。类似于军事领域的红蓝军对抗,网络安全中,红蓝军对抗则是一方扮演黑客(蓝军&…

Web应用防火墙(WAF)核心功能特性汇总

Web应用防火墙(WAF)是聚焦HTTP/HTTPS应用层的安全防护设备,专门弥补传统防火墙(如USG6525E)在Web业务防护上的短板,核心功能覆盖攻击拦截、流量管控、数据安全、Bot治理等多个维度,具体特性如下: 一、 核心Web攻击防护(对标OWASP Top 10) 针对Web应用的高频高危攻击…

DEMO:Canal实时同步MySQL内容到Elasticsearch

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

什么是6S?一张图讲清整理、整顿、清扫、清洁、素养、安全

很多工厂管理问题,表面看是效率低、质量不稳、事故频发, 但你真走进现场一看,往往是另一番景象:通道被料车、纸箱占了一半工位上堆着可能以后会用的东西设备漏油、掉粉,没人说得清是哪天开始的这时候,总会有…

【课程设计/毕业设计】基于django的企业定制化ERP办公系统APP小程序【附源码、数据库、万字文档】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…