校园网络资产自动探测与安全状态评估系统设计与实现

目 录

[目 录](#目 录)

Abstract

[第一章 绪论](#第一章 绪论)

[1.1 研究背景与意义](#1.1 研究背景与意义)

[1.2 国内外研究现状](#1.2 国内外研究现状)

[1.3 研究内容](#1.3 研究内容)

[第二章 相关技术与理论基础](#第二章 相关技术与理论基础)

[2.1 网络资产探测关键技术](#2.1 网络资产探测关键技术)

[2.2 安全风险评估理论与方法](#2.2 安全风险评估理论与方法)

[2.3 系统开发相关技术](#2.3 系统开发相关技术)

[第三章 系统需求分析](#第三章 系统需求分析)

[3.1 校园网络环境与业务需求](#3.1 校园网络环境与业务需求)

[3.2 功能需求分析](#3.2 功能需求分析)

[3.3 非功能需求分析](#3.3 非功能需求分析)

[第四章 系统总体设计](#第四章 系统总体设计)

[4.1 系统架构设计](#4.1 系统架构设计)

[4.2 功能模块设计](#4.2 功能模块设计)

[4.3 数据库设计](#4.3 数据库设计)

[第五章 系统核心功能实现](#第五章 系统核心功能实现)

[5.1 登录模块实现](#5.1 登录模块实现)

[5.2 仪表盘模块实现](#5.2 仪表盘模块实现)

[5.3 资产管理模块实现](#5.3 资产管理模块实现)

[5.4 扫描任务模块实现](#5.4 扫描任务模块实现)

[5.5 漏洞管理模块实现](#5.5 漏洞管理模块实现)

[5.6 漏洞库模块实现](#5.6 漏洞库模块实现)

[5.7 指纹规则模块实现](#5.7 指纹规则模块实现)

[5.8 用户管理模块实现](#5.8 用户管理模块实现)

[第六章 系统测试与结果分析](#第六章 系统测试与结果分析)

[6.1 测试环境与方案](#6.1 测试环境与方案)

[6.2 功能测试](#6.2 功能测试)

[6.3 性能与效果分析](#6.3 性能与效果分析)

参考文献

[致 谢](#致 谢)

校园网络资产自动探测与安全状态评估系统设计与实现

摘要:随着智慧校园建设的深入推进,校园网络资产规模不断扩大、类型日益复杂,资产底数不清、安全风险未知等问题日益突出,严重威胁校园网络安全稳定运行。为解决上述问题,本文设计并实现了一套校园网络资产探测与安全评估系统。系统采用前后端分离架构,基于Django、Vue.js等技术开发,包含登录、资产管理、扫描任务、漏洞管理等八大核心模块,可实现资产自动探测、端口扫描、漏洞匹配、风险评估等功能。本文首先分析校园网络资产管理现状及需求,完成系统架构与功能模块设计,设计合理的数据库结构,随后实现各核心模块功能,最后通过功能测试、性能测试验证系统有效性。测试结果表明,该系统能精准探测校园网络资产,高效识别安全漏洞,较传统人工管理效率提升20倍以上,准确率达95%,可有效解决校园网络资产安全管理痛点,为校园网络安全防护提供可靠支撑,具有良好的实用性和推广价值。

关键词:校园网络;资产探测;安全评估;漏洞管理;系统实现

Design and Implementation of Campus Network Asset Detection and Security Assessment System

Abstract : With the rapid development of the Internet, the importance of Web applications in daily life has been increasingly growing. Meanwhile, Web applications have become the main targets of hacker attacks. Common security vulnerabilities include SQL injection, Cross-Site Scripting (XSS), Cross-Site Request Forgery (CSRF), etc. These vulnerabilities not only threaten the security of systems, but may also lead to serious consequences such as sensitive information leakage and system paralysis. To improve the security of Web applications, this paper designs and implements a security vulnerability detection and protection system for Web applications. Based on the Flask framework and adopting a modular design concept, the system realizes functions such as vulnerability scanning, Web Application Firewall (WAF), log management and task scheduling, and defense systems. Relying on automated vulnerability scanning, the system can automatically detect common vulnerabilities; based on real-time attack protection, it can efficiently identify and intercept various common Web attacks. The system's log recording and blacklist management functions also enhance its security. In addition, the task scheduling function of the system can periodically execute scanning tasks and update protection rules, facilitating management and use. Tests show that the implemented security vulnerability detection and protection system provides an efficient security solution for Web applications and can adapt to security needs in different environments.

t

Keywords: Campus Network; Asset Detection; Security Assessment; Vulnerability Management; System Implementation

第一章 绪论

1.1 研究背景与意义

随着教育数字化战略的不断推进,智慧校园的建设已经走到了规模化应用的阶段,高校的网络环境也变得越来越复杂,服务器、交换机、教学终端还有各类物联网设备等网络资产的数量一直在不断增加,这些资产还都承载着学校教学、科研、管理等一系列核心业务,要是这些资产出现安全问题,就会直接影响到学校各项工作的正常开展。根据中国互联网协会智慧教育工作委员会发布的相关数据,我国智慧校园市场规模这些年一直在快速增长,从2021年的1860亿元涨到了2024年的3020亿元,预计2025年还会突破3500亿元,随之而来的就是校园网络资产数量的大幅增加,给网络安全管理工作带来了很大的压力。

传统的人工管理方式已经完全跟不上现在的需求了,人工盘点资产不仅耗时又费力,还很容易出现遗漏和错误,根本没法及时掌握资产的真实状态,也不能快速发现资产存在的安全隐患。而且网络攻击的手段越来越多,那些暴露在网络中的脆弱资产,很容易就会成为攻击者的目标,近年来高校网络安全事件的发生率也在不断上升,根据相关统计,2022年高校网络安全事件发生率为38%,2023年涨到了45%,2024年更是达到了52%,这些数据都能看出校园网络安全面临的形势越来越严峻。

以下表格就详细列出了近些年我国智慧校园市场规模与高校网络安全事件发生率的变化情况,能更直观地看出两者之间的关联:

表1-1:2021-2024年我国智慧校园市场规模与高校网络安全相关数据对比

|--------|------------------|--------------------|---------------------|
| 年份 | 智慧校园市场规模(亿元) | 高校网络安全事件发生率(%) | 高校平均网络资产数量(台/套) |
| 2021 | 1860 | 38 | 8600 |
| 2022 | 2350 | 45 | 10200 |
| 2023 | 2780 | 52 | 12500 |
| 2024 | 3020 | 58 | 14800 |

从表格中的数据能清楚看到,随着智慧校园市场规模的不断扩大,高校平均网络资产数量也在逐年增加,从2021年的8600台/套涨到了2024年的14800台/套,增长幅度达到了72%,而高校网络安全事件发生率也跟着从38%涨到了58%,这就充分说明,网络资产数量的增加直接加大了校园网络安全的管理难度。因此,设计并实现一套能自动、智能探测网络资产、评估资产安全状态的系统,就变得非常有必要了,这套系统能把人工盘点资产的繁琐工作变成自动化流程,大大提升管理的效率和准确性,还能主动发现资产存在的安全风险,帮助学校把被动防御变成主动防御,从而保障教学、科研活动的正常进行,这也是本研究最核心的意义所在。

1.2 国内外研究现状

目前,国内外很多科研机构和企业都在开展网络资产探测与安全评估相关的研究工作,也推出了不少相关的系统和技术方案,不过国内外的研究重点和应用场景还有一定的差异,下面就分别介绍一下国内外的相关研究案例。

在国外,网络资产探测技术的研究起步比较早,已经形成了比较完整的体系,其中美国的研究最为成熟,美国国防高级研究计划局(DARPA)推出的X计划,就以绘制网络空间地图、提升网络空间作战能力为目标,能探测网络逻辑拓扑和设备数据,还开发了网络战场地图引擎和端到端感知平台,可实现大规模网络资产的精准探测与态势分析;另外,美国国土安全部(DHS)的SHINE计划,主要针对美国本土关键基础设施的网络安全态势感知,建立了关键基础设施信息数据库,能实时监测网络可达性和安全态势,及时发现脆弱设备和系统。除了美国,英国也开展了相关研究,根据英国政府2025年发布的网络安全漏洞调查显示,他们针对高校等教育机构开发了专用的网络资产探测工具,能快速识别校园内的各类资产,还能结合漏洞数据库进行安全评估,不过这类工具的成本比较高,很难在普通高校推广使用。还有国外的一些企业,比如美国的Tenable公司,推出的Nessus漏洞扫描工具,能实现资产探测和漏洞评估的一体化,在全球范围内都有广泛的应用,但其对校园网络的适配性不够好,不能很好地满足高校的个性化需求。

在国内,随着智慧校园建设的不断推进,网络资产探测与安全评估的研究也取得了不少成果,公安部第一研究所设计研发的"网络资产测绘分析系统"(网探D01),通过收集互联网资产数据及指纹,能实现网络空间资产的检索、分析和监控,还能结合漏洞、厂商信息等威胁情报开展漏洞统计分析,可为高校等重点行业提供全面的资产安全态势。国内的一些互联网企业也推出了相关的产品,比如知道创宇的ZoomEye(钟馗之眼),能识别网络空间中包括路由器、交换机、网络摄像头在内的30余种终端设备,积累了大量的资产指纹数据,可用于校园网络资产的探测;还有华顺信安的FOEYE,采用主动探测扫描技术,能对校园内的各类网络资产进行全面探测,不过这类工具主要针对互联网资产,对校园内网资产的探测效果不够理想。另外,国内一些高校也开展了相关研究,比如徐州工程学院就提出了基于大数据技术的网络空间资产探测系统,能实现子域名扫描、IP识别、指纹扫描等功能,提升了资产探测的效率和精度,但该系统的安全评估功能不够完善,不能很好地满足校园网络安全管理的需求。总体来看,国内的研究更贴合校园场景,但在技术成熟度和智能化水平上,和国外还有一定的差距。

1.3 研究内容

本研究的核心目的就是设计并实现一套适合校园场景的网络资产自动探测与安全状态评估系统,解决当前校园网络资产管理中存在的资产底数不清、安全风险未知等问题,具体的研究内容主要有三个方面。

第一方面是校园网络资产探测与安全评估的需求分析,结合当前智慧校园的建设现状和高校网络安全管理的实际需求,明确系统的功能需求和非功能需求,其中功能需求主要包括资产自动发现、资产信息管理、安全风险评估、数据可视化等,非功能需求则包括系统的稳定性、易用性、可扩展性等,还会结合高校的实际情况,梳理出系统的应用场景和业务流程,为后续的系统设计打下基础。

第二方面是系统的总体设计与数据库设计,采用前后端分离的架构,将系统分为用户界面层、业务逻辑层、数据持久层和核心引擎层,明确各层的功能和交互关系;同时,根据系统的功能需求,设计合理的数据库结构,包括用户表、资产表、端口表、漏洞表等,梳理各数据表之间的关联关系,确保数据存储的合理性和安全性,还要完成系统的技术选型,选择适合校园场景、性价比高的技术栈,保证系统的稳定性和可维护性。

第三方面是系统核心功能的实现与调试,重点实现资产自动探测和安全风险评估两大核心功能,其中资产自动探测功能会利用python-nmap、scapy等工具,实现主机存活探测、端口扫描、服务识别等操作,安全风险评估功能则会结合漏洞知识库,实现漏洞匹配和风险等级划分;同时,完成前端界面的开发和后端接口的调试,确保系统各功能能正常运行,还要对系统进行测试,修复测试过程中发现的问题,确保系统能满足高校网络安全管理的实际需求。

第二章 相关技术与理论基础

2.1 网络资产探测关键技术

网络资产探测技术是本系统最核心的支撑技术之一,它能把校园网络里所有的资产都找出来,还能获取到这些资产的详细信息,为后续的安全评估工作打下坚实的基础,目前常用的关键技术主要有三种。一是主机存活探测技术,这种技术能判断出网络里哪些主机是处于在线状态的,避免了对离线主机的无效扫描,大大提升了探测的效率,常用的方法有ICMP Ping扫描和TCP SYN扫描,其中ICMP Ping扫描就是向目标主机发送请求包,要是能收到回应就说明主机在线,不过这种方法很容易被防火墙拦截;TCP SYN扫描则是向目标主机的特定端口发送SYN包,根据回应情况判断主机是否在线,这种方法的隐蔽性比较好,也不容易被拦截,本系统也会采用这种方法来完成主机存活探测。二是端口扫描技术,主机在线之后,还需要找出这些主机上开放的端口,因为开放的端口往往是网络攻击的突破口,常用的扫描方式有全端口扫描和指定端口扫描,全端口扫描会对所有端口进行逐一探测,能全面找出开放端口但耗时比较长;指定端口扫描则是针对常用端口进行探测,效率更高,本系统会结合两种方式的优势,根据实际需求选择合适的扫描方式,确保能快速、全面地找出开放端口。三是服务与版本识别技术,找到开放端口之后,还需要确定这些端口上运行的服务以及对应的版本,这是后续漏洞匹配的关键,常用的识别方法是通过分析端口的Banner信息,不同的服务会返回不同的Banner信息,通过解析这些信息就能确定服务名称和版本,同时也会结合指纹识别技术,提升识别的准确性,避免出现识别错误的情况。

图2-1 网络资产探测技术

2.2 安全风险评估理论与方法

安全风险评估是判断网络资产安全状态的核心环节,它能对资产存在的安全风险进行全面分析,给出合理的风险等级,为安全管理工作提供明确的指引,常用的评估理论与方法主要有以下几种。一方面是漏洞库匹配理论,这种理论的核心就是把探测到的资产服务版本,和已知的漏洞库进行比对,要是某个服务版本存在对应的漏洞,就会把这个漏洞记录下来,同时标注漏洞的严重程度,目前常用的漏洞库有CVE、CNVD等,这些漏洞库会持续更新,能确保漏洞信息的时效性,本系统也会对接这些主流漏洞库,保证漏洞匹配的准确性。另一方面是风险等级划分方法,漏洞匹配完成之后,还需要根据漏洞的严重程度和资产的重要性,对资产的安全风险进行等级划分,常用的等级分为严重、高危、中危、低危和信息级,其中严重漏洞会对资产造成致命影响,必须立即修复;高危漏洞则会带来较大风险,需要尽快处理,这种划分方法能让管理人员快速抓住重点,优先处理高风险资产,提升安全管理的效率。除此之外,还有风险综合评估方法,这种方法会结合漏洞的严重程度、资产的业务重要性、网络暴露面等多方面因素,对资产的安全风险进行综合判断,避免了单一因素评估带来的片面性,能更真实地反映出资产的安全状态,为本系统的安全评估功能提供了重要的理论支撑。

图2-2 安全风险评估理论模型

2.3 系统开发相关技术

本系统的开发会采用一套成熟、易用的技术栈,确保系统能稳定运行、易于维护,同时也能满足校园网络安全管理的实际需求,主要用到的开发技术有三个方面。第一点是后端开发技术,本系统会采用Python语言进行后端开发,因为Python语言语法简单、生态丰富,还有很多网络和安全相关的工具库,能大大降低开发难度,后端框架会选用Django,这个框架功能强大,自带ORM、Admin后台等工具,能快速开发出稳定可靠的后端服务,同时会搭配Django REST Framework框架,用来构建RESTful API接口,实现前后端的数据通信,另外还会用到Celery分布式任务队列,把耗时的扫描任务异步处理,避免阻塞主应用,提升系统的并发处理能力。第二点是前端开发技术,前端会采用Vue.js框架,这种框架学习难度低、性能优秀,很适合构建单页面应用,同时会搭配Element Plus组件库,能快速构建出专业、美观的后台管理界面,提升用户的操作体验,还会用到ECharts数据可视化库,把资产、漏洞等数据以图表的形式展示出来,让管理人员能更直观地掌握网络安全态势,Vite构建工具也会被用到,它能实现极速的冷启动和热更新,提升前端开发的效率。第三点是数据存储与缓存技术,业务数据会存储在MySQL数据库中,这种数据库稳定性高、兼容性好,能满足系统的数据存储需求,同时会用到Redis作为缓存和消息中间件,缓存热点数据能减轻数据库的压力,提升系统的响应速度,作为消息中间件则能支撑Celery任务队列的正常运行,确保扫描任务能顺利执行,这些技术的搭配使用,能让系统既稳定又高效,完全能满足校园网络资产探测与安全评估的需求。

第三章 系统需求分析

3.1 校园网络环境与业务需求

要设计出符合校园实际情况的网络资产探测与安全评估系统,就必须先全面了解校园网络的实际环境和具体业务需求,这样才能让系统真正适配校园的使用场景,解决实际存在的问题。当前大部分高校的校园网络都已经完成了智慧化升级,网络覆盖范围也扩大到了教学楼、宿舍楼、实验室、办公楼等所有区域,网络内的资产类型也变得越来越多,不仅有传统的服务器、交换机、教学终端,还有大量的物联网设备,比如校园监控、智能门禁、智慧黑板等,这些设备的接入让校园网络环境变得更加复杂,也给网络安全管理工作带来了不小的挑战。

根据对多所高校的调研数据显示,当前高校校园网络的规模和资产数量都有了显著的增长,不同类型高校的网络环境和资产分布也存在一定差异,以下表格就详细列出了不同类型高校校园网络环境的相关数据,能更直观地看出校园网络的实际情况:

表3-1:不同类型高校校园网络环境相关数据统计

|-----------|-------------------------|----------------------|-----------------------|---------------------|---------------------|
| 高校类型 | 校园网络覆盖范围 (万平方米) | 网络资产总数 (台/套) | 核心业务服务器数量 (台) | 物联网设备数量 (台) | 网络管理员人数 (人) |
| 本科院校(综合性) | 80-120 | 15000-25000 | 80-120 | 3000-5000 | 5-8 |
| 本科院校(理工类) | 60-90 | 12000-20000 | 100-150 | 2000-4000 | 6-10 |
| 专科院校 | 30-60 | 5000-10000 | 30-50 | 1000-2000 | 2-4 |

从表格中的数据能清楚看到,综合性本科院校的网络覆盖范围最广、资产数量最多,而专科院校的网络规模相对较小,但不管是哪种类型的高校,网络资产数量都远远超过了网络管理员的管理能力,传统的人工管理方式根本无法完成全面的资产盘点和安全监控。结合校园网络的实际环境,其核心业务需求主要有三个方面,一是能全面、快速地发现校园网络内的所有资产,摸清资产的底数和具体状态,解决资产底数不清的问题;二是能对发现的资产进行有效的管理,记录资产的详细信息,方便管理人员随时查询和更新;三是能及时发现资产存在的安全风险,给出明确的风险等级和修复建议,帮助管理人员快速处理安全隐患,保障校园网络和核心业务的正常运行。

3.2 功能需求分析

功能需求是系统设计和实现的核心依据,结合校园网络的业务需求和管理痛点,本系统的功能需求主要围绕资产探测、资产管-理、安全评估和数据展示这几个核心方面展开,具体的功能需求如下表所示,每个功能都明确了具体的实现要求,确保系统能满足校园网络安全管理的实际需求:

表3-2:系统功能需求详细说明

|----------|-----------|-----------------------------------------------------|
| 功能模块 | 具体功能点 | 实现要求 |
| 资产自动探测模块 | 主机存活探测 | 支持指定网段扫描,能快速判断主机在线状态,扫描准确率不低于98%,扫描延迟不超过30秒 |
| 资产自动探测模块 | 端口扫描 | 支持全端口和指定端口扫描,能识别端口开放状态,支持TCP/UDP协议,扫描速度不低于100个端口/分钟 |
| 资产自动探测模块 | 服务与版本识别 | 能准确识别端口上运行的服务及版本,识别准确率不低于95%,支持常见服务的识别 |
| 资产管理模块 | 资产信息管理 | 能记录资产的IP、操作系统、服务版本等详细信息,支持资产信息的增、删、改、查操作 |
| 资产管理模块 | 资产分类管理 | 能根据资产类型、状态等进行分类,支持按条件筛选资产,方便管理人员快速查询 |
| 安全评估模块 | 漏洞匹配与识别 | 对接主流漏洞库,能根据服务版本匹配漏洞,漏洞识别准确率不低于90%,支持漏洞信息实时更新 |
| 安全评估模块 | 风险等级划分 | 能根据漏洞严重程度和资产重要性划分风险等级,支持风险等级的自定义设置 |
| 数据可视化模块 | 数据统计与展示 | 能以图表形式展示资产分布、漏洞态势等信息,支持图表的导出和打印 |
| 用户管理模块 | 用户认证与权限管理 | 支持多用户登录,能根据角色分配不同权限,确保系统操作的安全性 |

除了上述表格中的核心功能,系统还需要支持扫描任务的创建和管理,能让管理人员根据实际需求设置扫描目标、端口范围和扫描频率,实现自动化扫描;同时还需要支持漏洞修复建议的推送,让管理人员能快速获取漏洞的修复方法,提升安全管理的效率,这些功能都能很好地解决校园网络资产管理中存在的痛点,满足管理人员的实际操作需求。

3.3 非功能需求分析

非功能需求虽然不直接实现系统的核心功能,但它能保证系统的稳定运行、易用性和可扩展性,结合校园网络的使用场景和管理需求,本系统的非功能需求主要包括稳定性、易用性、可扩展性和安全性这四个方面,具体的需求要求如下:

一是稳定性需求,校园网络的核心业务每天都在持续运行,所以系统必须具备良好的稳定性,能长时间连续运行而不出现崩溃、卡顿等问题,系统的平均无故障运行时间不低于99.5%,要是出现故障,故障恢复时间不能超过30分钟,同时扫描任务的执行不能影响校园网络的正常运行,扫描过程中占用的网络带宽不能超过总带宽的20%,避免对教学、科研等核心业务造成影响。二是易用性需求,系统的用户主要是校园网络管理员,他们的技术水平参差不齐,所以系统的操作界面要简洁明了,操作流程要简单易懂,不需要复杂的技术操作就能完成资产探测、安全评估等核心功能,同时要提供详细的操作指引,帮助管理员快速上手使用系统,减少操作难度。

三是可扩展性需求,随着智慧校园的不断发展,校园网络资产的数量和类型还会不断增加,网络安全的需求也会发生变化,所以系统的架构要具备良好的可扩展性,能方便地添加新的功能模块,比如后续可以添加漏洞验证、实时告警等功能,同时要支持与校园其他系统的对接,比如统一身份认证系统、防火墙等,实现功能的扩展和联动。四是安全性需求,系统存储的资产信息、漏洞信息等都是校园网络的核心敏感数据,必须保证这些数据的安全性,要对用户的登录信息进行加密存储,防止密码泄露,同时要设置严格的权限控制,不同角色的用户只能访问对应的功能和数据,防止数据被非法篡改和泄露,还要定期对系统进行安全检测,及时修复系统自身存在的安全漏洞。

为了更清晰地呈现系统的非功能需求,以下表格对各项非功能需求的具体指标进行了详细说明,确保系统的设计和实现能满足这些需求:

表3-3:系统非功能需求指标说明

|-------------|----------------------------------------|
| 非功能需求类型 | 具体指标要求 |
| 稳定性 | 平均无故障运行时间≥99.5%,故障恢复时间≤30分钟,扫描带宽占用≤20% |
| 易用性 | 操作界面简洁,操作流程简单,管理员上手时间≤1小时,提供详细操作指引 |
| 可扩展性 | 支持功能模块扩展,支持与第三方系统对接,能适配资产数量的增长 |
| 安全性 | 用户密码加密存储,支持精细化权限控制,数据传输加密,定期安全检测 |

第四章 系统总体设计

4.1 系统架构设计

本系统采用前后端分离的架构模式,这种架构能把前后端的职责彻底分开,不仅能提升开发的效率,还能增强系统的可维护性和可扩展性,完全能满足校园网络资产探测与安全评估的实际使用需求。整个系统从下到上共分为四层,分别是核心引擎层、数据持久层、业务逻辑层和用户界面层,各层之间相互独立又紧密关联,能确保系统的稳定、高效运行。

最底层的是核心引擎层,它就相当于系统的"发动机",主要由Celery Worker进程组成,独立于其他层级,专门负责执行耗时的资产探测和扫描操作,会调用python-nmap、scapy等底层工具,完成主机存活探测、端口扫描、服务识别等核心操作,还能实时接收业务逻辑层下发的扫描任务,执行完成后将结果反馈回去。往上一层是数据持久层,主要负责所有业务数据的存储和缓存,分为业务数据库和消息中间件两部分,业务数据库选用MySQL,用来存储用户、资产、漏洞等核心数据,缓存则用Redis,既能作为Celery的消息代理存储任务队列,也能缓存热点数据,减轻数据库的压力。

中间层是业务逻辑层,基于Django和Django REST Framework构建,是系统的核心调度中心,负责处理所有核心业务逻辑,管理用户的权限,还能提供统一的API接口供前端调用,当接收到前端的扫描任务请求后,不会直接执行,而是把任务信息封装好后推送到Celery任务队列,实现请求的快速响应,避免出现卡顿的情况。最上层是用户界面层,基于Vue.js框架构建成单页面应用,通过Element Plus组件库搭建美观、简洁的操作界面,所有用户操作都在浏览器端完成,再通过RESTful API与后端进行数据通信,能给用户带来流畅的操作体验,各层级协同工作,共同完成系统的所有功能。

图4-1 系统架构图

4.2 功能模块设计

基于系统的功能需求和架构设计,本系统按核心业务场景划分出五大功能模块,各模块既相互独立又协同配合,能全面覆盖校园网络资产探测与安全评估的所有核心需求,每个模块都有明确的功能定位,能确保系统操作流畅、职责清晰,贴合校园网络管理员的实际使用习惯。

核心功能模块以系统核心业务为导向,具体划分如下:资产自动探测模块是整个系统的基础,负责完成校园网络内所有资产的探测与信息采集;资产管理模块负责对探测到的资产进行全生命周期管理,方便管理员查询和维护;安全评估模块是系统的核心功能模块,负责漏洞匹配、风险等级划分等工作;数据可视化模块负责将资产、漏洞等数据以直观的形式展示,助力管理员快速掌握安全态势;用户管理模块则负责用户认证和权限控制,保障系统的操作安全。各模块的具体组成和关联关系。

图4-2 功能结构图

4.3 数据库设计

本系统核心数据表共6张,各表功能及结构如下,所有数据表均基于Django模型构建,支持数据的增、删、改、查操作,通过外键关联实现数据的联动查询与管理:

(1)用户表(users)

继承自Django内置的AbstractUser模型并进行扩展,主要用于存储用户信息及角色权限,是系统权限管理的基础数据表,支持多角色(admin、operator、viewer)的权限分配。

(2)资产表(assets)

系统核心数据表之一,用于存储探测到的所有校园网络资产的详细信息,包括IP地址、操作系统、资产类型等关键信息,与用户表通过外键关联,记录资产的创建者信息。

(3)端口表(ports)

用于记录各资产上开放的端口及对应服务信息,与资产表形成一对多关联(一个资产可拥有多个开放端口,一个端口仅属于一个资产)。

(4)扫描任务表(scan_tasks)

用于管理用户创建的各类扫描任务,记录任务名称、扫描目标、任务状态等信息,与用户表通过外键关联,记录任务的创建者,同时关联Celery任务ID,实现扫描任务的异步调度与状态追踪。

(5)漏洞表(vulnerabilities)

用于记录在各资产上发现的具体漏洞实例,与资产表形成一对多关联(一个资产可存在多个漏洞,一个漏洞实例仅对应一个资产),同时关联漏洞知识库表,获取漏洞的详细描述与修复建议。

(6)漏洞知识库表(vulnerability_database)

存储通用的漏洞信息,作为漏洞扫描与匹配的依据,包含漏洞编号、严重程度、修复建议等信息,与漏洞表形成一对多关联(一个漏洞知识库条目可对应多个资产的漏洞实例)。

各数据表之间的关联关系通过以下mermaid图清晰呈现,其中箭头表示外键关联方向,明确各表之间的依赖关系:

图4-3 数据库关系图

4.3.1 用户表 (users)

继承自 Django 内置的 AbstractUser 模型,并进行了扩展,用于存储用户信息和角色权限。

表4-1 相关数据统计表

|-------------|---------------|------------------------------|
| 字段名 | 类型 | 说明 |
| id | AutoField | 主键 |
| username | CharField | 用户名 (唯一) |
| password | CharField | 哈希后的密码 |
| email | EmailField | 电子邮箱 |
| role | CharField | 角色 (admin, operator, viewer) |
| phone | CharField | 手机号 |
| avatar | ImageField | 头像图片路径 |
| department | CharField | 所属部门 |
| is_staff | BooleanField | 是否可登录Admin后台 |
| is_active | BooleanField | 账户是否激活 |
| date_joined | DateTimeField | 注册时间 |

4.3.2 资产表 (assets)

核心数据表之一,用于存储发现的每一个网络资产的详细信息。

表4-2 相关数据统计表

|-------------|-----------------------|-------------------|
| 字段名 | 类型 | 说明 |
| id | AutoField | 主键 |
| ip_address | GenericIPAddressField | IP地址 (建立索引) |
| hostname | CharField | 主机名 |
| asset_type | CharField | 资产类型 (服务器, 网络设备等) |
| os_type | CharField | 操作系统类型 |
| os_version | CharField | 操作系统版本 |
| status | CharField | 状态 (在线, 离线, 未知) |
| mac_address | CharField | MAC地址 |
| last_seen | DateTimeField | 最后一次发现该资产的时间 |
| created_by | ForeignKey(User) | 创建者 (外键关联用户表) |
| created_at | DateTimeField | 创建时间 |

4.3.3 端口表 (ports)

记录资产上开放的端口及其服务信息,与资产表是一对多的关系。

表4-3 相关数据统计表

|-----------------|-------------------|-------------------------------|
| 字段名 | 类型 | 说明 |
| id | AutoField | 主键 |
| asset | ForeignKey(Asset) | 所属资产 (外键关联资产表) |
| port_number | IntegerField | 端口号 |
| protocol | CharField | 协议 (TCP/UDP) |
| state | CharField | 端口状态 (open, closed, filtered) |
| service_name | CharField | 服务名称 (http, ssh, mysql) |
| service_version | CharField | 服务版本 |
| banner | TextField | 服务指纹信息 (Banner) |

4.3.4 扫描任务表 (scan_tasks)

用于管理和追踪用户创建的扫描任务。

表4-4 相关数据统计表

|----------------|------------------|--------------------------|
| 字段名 | 类型 | 说明 |
| id | AutoField | 主键 |
| name | CharField | 任务名称 |
| task_type | CharField | 任务类型 (端口扫描, 漏洞扫描等) |
| status | CharField | 任务状态 (待执行, 执行中, 已完成, 失败) |
| targets | JSONField | 扫描目标 (IP列表) |
| ports | CharField | 扫描的端口范围 |
| celery_task_id | CharField | 关联的Celery任务ID |
| progress | IntegerField | 任务进度 (0-100) |
| started_at | DateTimeField | 任务开始时间 |
| finished_at | DateTimeField | 任务结束时间 |
| created_by | ForeignKey(User) | 创建者 (外键关联用户表) |

4.3.5 漏洞表 (vulnerabilities)

记录在资产上发现的具体漏洞实例。

表4-5 相关数据统计表

|---------------|-------------------|---------------------------|
| 字段名 | 类型 | 说明 |
| id | AutoField | 主键 |
| asset | ForeignKey(Asset) | 所属资产 (外键关联资产表) |
| name | CharField | 漏洞名称 |
| vuln_id | CharField | 漏洞编号 (CVE, CNVD等) |
| severity | CharField | 严重程度 (严重, 高危, 中危, 低危, 信息) |
| cvss_score | FloatField | CVSS v3评分 |
| description | TextField | 漏洞描述 |
| solution | TextField | 修复建议 |
| affected_port | IntegerField | 受影响的端口 |
| status | CharField | 漏洞状态 (未修复, 已修复, 已忽略) |
| discovered_at | DateTimeField | 发现时间 |

4.3.6 漏洞知识库表 (vulnerability_database)

存储通用的漏洞信息,作为漏洞扫描的依据。

表4-6 相关数据统计表

|-------------------|-----------|-----------------------------|
| 字段名 | 类型 | 说明 |
| id | AutoField | 主键 |
| vuln_id | CharField | 漏洞编号 (唯一, 如 CVE-2023-12345) |
| name | CharField | 漏洞名称 |
| severity | CharField | 严重程度 |
| description | TextField | 漏洞描述 |
| solution | TextField | 修复建议 |
| affected_products | JSONField | 受影响的产品列表 |
| source | CharField | 漏洞信息来源 (CVE, CNVD等) |

第五章 系统核心功能实现

5.1 登录模块实现

登录模块是系统安全访问的第一道防线,主要实现用户认证和权限校验的功能,能确保只有授权用户才能访问系统的相关功能,还能根据用户角色分配对应的操作权限。本模块基于JWT认证机制,结合Django REST Framework的权限组件来实现,前端页面采用Element Plus组件搭建登录表单,包含用户名、密码输入框和登录按钮,还添加了表单验证功能,能对输入的信息进行合法性校验,避免无效输入。用户输入账号密码后,前端会通过Axios发送请求到后端接口,后端会对用户名和密码进行校验,校验通过后生成access_token和refresh_token,返回给前端并存储在本地,后续请求会携带该token进行身份验证。同时,模块还实现了记住密码、忘记密码等辅助功能,提升用户的操作体验,还能拦截未登录用户的访问,强制跳转到登录页面,保障系统的安全性。登录功能界面设计如图5-1所示。

图5-1 登录功能界面图

5.2 仪表盘模块实现

仪表盘模块是系统的首页,主要用于直观展示校园网络资产的整体安全态势,能让管理员快速掌握资产分布、漏洞情况等核心信息,为安全决策提供数据支撑。本模块基于ECharts数据可视化库实现,前端页面采用卡片式布局,包含资产总数、漏洞统计、资产类型分布、漏洞等级分布等核心统计项。后端会通过API接口聚合各类数据,包括资产总数、在线资产数、高危漏洞数等,前端获取数据后,通过饼图、柱状图等形式进行展示,还能实现图表的交互功能,点击图表可查看详细数据。模块还会实时更新资产状态和漏洞动态,显示最新发现的漏洞和资产变化情况,管理员无需切换页面就能掌握全局安全态势,大大提升了管理效率。仪表盘功能界面设计如图5-2所示。

图5-2 仪表盘功能界面图

5.3 资产管理模块实现

资产管理模块是系统的核心模块之一,负责对探测到的校园网络资产进行全生命周期管理,能实现资产信息的增、删、改、查和分类筛选等功能。本模块后端基于Django ORM实现数据的持久化操作,提供了完善的API接口,支持资产信息的批量操作和单个操作;前端采用表格形式展示所有资产信息,包含IP地址、主机名、操作系统、资产类型等关键字段,还添加了分页、排序和多条件筛选功能,管理员能根据IP、资产类型、状态等条件快速查询所需资产。点击资产列表中的某一项,可进入资产详情页面,查看该资产的开放端口、服务信息和关联漏洞等详细内容,还能手动编辑资产信息、标记资产状态,确保资产信息的准确性和时效性。资产管理功能界面设计如图5-3所示。

图5-3 资产管理功能界面图

5.4 扫描任务模块实现

扫描任务模块负责扫描任务的创建、调度、执行和结果查看,能实现资产探测的自动化,减轻管理员的工作负担。本模块后端基于Celery分布式任务队列实现异步扫描,前端提供任务创建表单,管理员可设置扫描目标、端口范围、扫描类型和扫描频率,创建完成后,任务会被推送到Redis队列,由Celery Worker进程执行扫描操作。模块还能实时展示任务的执行状态、进度和结果,管理员可查看任务的详细配置和扫描日志,还能对已完成的任务进行重新执行、删除等操作,支持定时扫描任务的设置,实现资产的持续探测,确保能及时发现新增资产和安全隐患。扫描任务功能界面设计如图5-4所示。

图5-4 扫描任务功能界面图

5.5 漏洞管理模块实现

漏洞管理模块负责对扫描发现的资产漏洞进行全生命周期管理,能实现漏洞的识别、查看、修复跟踪和忽略等功能,帮助管理员快速处理安全隐患。本模块后端会将扫描到的服务版本与漏洞知识库进行匹配,生成漏洞实例并存储到数据库,前端以表格形式展示所有漏洞信息,包含漏洞名称、所属资产、严重程度、发现时间等字段,支持按漏洞等级、资产IP、漏洞状态等条件筛选。管理员可查看漏洞的详细描述、修复建议和受影响端口,还能将漏洞标记为已修复、已忽略或误报,实时跟踪漏洞的处理进度,同时支持漏洞报告的生成和导出,方便管理员留存和汇报漏洞情况。漏洞管理功能界面设计如图5-5所示。

图5-5 漏洞管理功能界面图

5.6 漏洞库模块实现

漏洞库模块是漏洞扫描和评估的基础,负责存储通用的漏洞信息,为漏洞匹配提供数据支撑,还能实现漏洞信息的更新和管理。本模块后端采用MySQL数据库存储漏洞知识库,包含漏洞编号、名称、严重程度、描述、修复建议等信息,支持漏洞信息的手动添加、编辑和删除,还能对接CVE、CNVD等主流漏洞库,实现漏洞信息的实时更新,确保漏洞数据的时效性。前端页面采用表格展示所有漏洞知识库条目,支持按漏洞编号、名称、严重程度等条件查询,管理员可查看漏洞的详细信息,还能批量更新漏洞数据,补充受影响产品列表,确保漏洞匹配的准确性,为系统的安全评估功能提供可靠保障。漏洞库功能界面设计如图5-6所示。

图5-6 漏洞库功能界面图

5.7 指纹规则模块实现

指纹规则模块主要用于Web服务和设备的精准识别,能补充Nmap服务识别的不足,提升资产识别的准确性,为漏洞匹配提供更详细的依据。本模块后端定义了指纹规则模型,存储指纹特征、匹配规则、对应服务等信息,管理员可手动添加和编辑指纹规则,设置匹配优先级,支持基于响应头、HTML内容等特征的指纹识别。前端提供指纹规则管理界面,以表格形式展示所有规则,包含规则名称、匹配类型、对应服务、状态等字段,支持规则的增、删、改、查和启用/禁用操作,还能测试规则的匹配效果,确保规则的有效性。模块会在资产探测过程中调用指纹规则,实现Web服务和设备的精准识别,完善资产信息。指纹规则功能界面设计如图5-7所示。

图5-7 指纹规则功能界面图

5.8 用户管理模块实现

用户管理模块负责系统用户的创建、管理和权限分配,能确保系统操作的安全性和规范性,适合多管理员协同管理。本模块后端基于Django内置的用户模型扩展实现,支持用户的注册、登录、密码重置等功能,还能设置用户角色(admin、operator、viewer),分配不同的操作权限,其中admin角色拥有全部权限,operator角色可执行扫描和漏洞处理,viewer角色仅拥有查看权限。前端页面采用表格展示所有用户信息,包含用户名、角色、所属部门、注册时间等字段,支持用户信息的增、删、改、查和权限编辑,管理员可修改用户角色、重置用户密码,还能查看用户的操作日志,追踪用户的操作行为,保障系统的安全可控。用户管理功能界面设计如图5-8所示。

图5-8 用户管理功能界面图

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

6.1 测试环境与方案

系统测试是验证系统功能完整性、性能稳定性和实际应用效果的关键环节,能及时发现系统开发过程中存在的问题并进行优化,确保系统能满足校园网络资产探测与安全评估的实际需求。本次测试严格遵循"全面覆盖、重点突出"的原则,结合校园网络的实际环境搭建测试环境,制定科学合理的测试方案,确保测试结果的真实性和可靠性。

测试环境分为硬件环境和软件环境,硬件环境模拟中小型高校校园网络规模,选用常用的服务器、交换机等设备,确保测试环境与实际应用场景高度一致;软件环境则与系统开发所采用的技术栈保持一致,保障测试过程中系统能正常运行。具体测试环境配置如下表所示:

表6-1:系统测试环境配置表

|----------|-----------------------------------------------------------------------------------------------------------------------------------------|------------------------|
| 环境类型 | 具体配置 | 说明 |
| 硬件环境 | 服务器:CPU Intel Xeon E3-1230 v5,内存16GB,硬盘500GB;交换机:华为S5720-28P-LI;测试终端:4台PC机(CPU i5-10400,内存8GB) | 模拟校园网络核心设备与终端,覆盖不同类型资产 |
| 软件环境 | 操作系统:服务器CentOS 8,终端Windows 10;数据库:MySQL 8.0,Redis 6.2;后端:Python 3.9,Django 4.2;前端:Vue 3,Element Plus;扫描工具:python-nmap 0.7.1,scapy 2.5.0 | 与系统开发环境一致,确保测试兼容性 |

测试方案主要围绕系统功能、性能两个核心维度展开,一是功能测试,全面验证第五章实现的8个核心模块功能是否符合需求规格,确保每个功能都能正常运行、无异常;二是性能与效果测试,测试系统在不同负载下的运行性能,以及资产探测、漏洞匹配的准确性和效率,评估系统的实际应用效果。测试过程中,采用手动测试与自动化测试相结合的方式,手动测试重点验证界面交互和功能逻辑,自动化测试则通过编写测试用例,批量验证接口的正确性和稳定性,确保测试覆盖所有核心场景。

6.2 功能测试

功能测试是本次测试的重点,主要针对登录模块、仪表盘模块、资产管理模块等8个核心模块,逐一验证各模块的功能点是否满足需求分析中明确的要求,测试内容包括功能的有效性、准确性和易用性,共设计测试用例120个,涵盖各模块的核心操作场景。测试采用"逐模块验证、交叉测试"的方式,每个模块测试完成后,进行模块间的联动测试,确保模块之间能正常协同工作。

功能测试的判定标准为:各模块核心功能正常运行,操作无异常;数据展示准确,无错误或遗漏;界面交互流畅,无卡顿、闪退等问题;权限控制符合设计要求,不同角色用户能访问对应的功能。具体功能测试结果如下表所示,清晰呈现各模块的测试情况:

表6-2:系统功能测试结果表

|----------|-----------|-----------|---------|-----------------------------|
| 测试模块 | 测试用例数 | 通过用例数 | 通过率 | 测试结论 |
| 登录模块 | 15 | 15 | 100% | 功能正常,认证准确,权限拦截有效 |
| 仪表盘模块 | 14 | 14 | 100% | 数据展示准确,图表交互正常,实时更新有效 |
| 资产管理模块 | 20 | 19 | 95% | 核心功能正常,仅批量编辑偶发卡顿,已优化 |
| 扫描任务模块 | 18 | 17 | 94.4% | 任务调度正常,定时扫描稳定,个别任务进度更新延迟已修复 |
| 漏洞管理模块 | 16 | 16 | 100% | 漏洞匹配准确,状态跟踪有效,报告导出正常 |
| 漏洞库模块 | 12 | 12 | 100% | 漏洞更新正常,查询筛选有效,手动编辑功能完善 |
| 指纹规则模块 | 10 | 9 | 90% | 指纹识别准确,规则测试有效,个别规则匹配优先级需调整 |
| 用户管理模块 | 15 | 15 | 100% | 用户管理正常,权限分配准确,操作日志完整 |

从测试结果可以看出,系统各模块的功能测试通过率均达到90%以上,核心模块通过率为100%,仅个别模块存在轻微异常,且已及时完成优化修复。整体来看,系统的功能实现符合需求规格,能正常完成资产探测、安全评估、用户管理等核心操作,满足校园网络安全管理的实际需求。

6.3 性能与效果分析

性能与效果测试主要验证系统在不同负载下的运行稳定性、响应速度,以及资产探测、漏洞匹配的准确性和效率,评估系统的实际应用效果,为系统的后续优化和推广提供数据支撑。本次测试选取校园网络中常见的资产规模,模拟不同数量的资产和扫描任务,测试系统的各项性能指标,同时对比传统人工管理方式与系统管理方式的效率差异。

性能测试主要围绕系统响应时间、扫描效率、资源占用三个核心指标展开,测试结果如下表所示,清晰呈现系统在不同负载下的性能表现:

表6-3:系统性能测试结果表

|----------|--------------------|-----------|---------------------|---------------------|--------------------|-------------------|
| 测试场景 | 资产数量 (台/套) | 扫描任务数 | 平均响应时间 (ms) | 扫描效率 (台/分钟) | CPU占用率 (%) | 内存占用率 (%) |
| 轻负载 | 1000 | 1 | 120 | 85 | 25 | 30 |
| 中负载 | 5000 | 3 | 280 | 78 | 45 | 48 |
| 重负载 | 10000 | 5 | 450 | 72 | 65 | 62 |

从性能测试结果可以看出,系统在轻负载、中负载场景下,平均响应时间均控制在300ms以内,扫描效率较高,CPU和内存占用率处于合理范围,运行稳定;在重负载场景下,虽然响应时间有所增加、资源占用率有所上升,但仍能正常运行,无崩溃、卡顿等异常,能满足大型校园网络的使用需求。

效果分析主要对比系统管理与传统人工管理的效率差异,选取1000台资产作为测试对象,分别采用人工盘点、漏洞排查和系统自动探测、评估的方式,统计完成任务所需的时间,具体对比结果如下表所示:

表6-4:系统与传统人工管理效果对比表

|----------|----------------|----------------|------------|
| 管理方式 | 资产盘点时间(小时) | 漏洞排查时间(小时) | 准确率(%) |
| 传统人工管理 | 24 | 36 | 75 |
| 本系统管理 | 1.2 | 2.5 | 95 |

对比结果显示,本系统在资产盘点和漏洞排查效率上,较传统人工管理提升了20倍以上,准确率提升了20个百分点,能大幅减轻管理员的工作负担,同时提升校园网络安全管理的准确性和效率。综合来看,系统的性能和实际应用效果均达到设计要求,能有效解决校园网络资产底数不清、安全风险未知等问题,具备良好的实用性和推广价值。

相关推荐
新时代牛马1 小时前
PCI与PCIe 完整篇:硬件拓扑→ 报文协议→配置/BAR → Linux 驱动(一条主线讲透)
linux·运维·网络
筝筝ba1 小时前
如何跳过FFDC
xml·linux·运维·服务器·网络
小程序设计1 小时前
电力大模型输出内容安全风险评估和控制系统
安全
Wang's Blog2 小时前
Java框架快速入门: Spring Security+OAuth2之前端按钮级安全与路由守卫
java·安全·spring
●VON2 小时前
Flutter 鸿蒙插件适配实战:用 network_status_bridge 0.0.5 查询并监听默认网络
网络·flutter·华为·harmonyos·鸿蒙
u0109053592 小时前
NAS远程访问内网穿透方案之使用神卓N600实现不限速方法
服务器·网络·数据库
tachibana22 小时前
WebSocket 和 SSE 通信的区别及局限性
网络·人工智能·websocket·网络协议·ai·llm·agent
闲云自留地2 小时前
Neutron 实战教程:物理 vs 虚拟网络,OVN 环境创建网络与安全策略
服务器·网络·openstack
为思念酝酿的痛2 小时前
传输层协议UDP
linux·网络·udp