软件设计描述
- 数据库需求分析
核心数据实体:
用户角色数据:红队/蓝队/裁判的权限配置(如红队允许EXP执行但禁止日志篡改)
目标系统指纹库:存储Nmap扫描结果(开放服务、协议版本、操作系统指纹)
漏洞知识图谱:集成CVE/CNVD的10,000+漏洞库(含CVSS评分、POC代码、修复方案)
攻击链数据:记录SQL注入→RCE→提权的多步骤攻击路径及成功率
防御规则库:Suricata/Snort格式的3000+规则模板(含拦截模式、告警阈值)
赛事数据:攻击流量指纹标记、实时得分统计、违规操作日志
业务规则:
漏洞扫描结果需在90秒内写入数据库并与攻击链模块联动
裁判系统需以10ms级延迟读取攻击日志进行实时计分
支持每秒500次并发查询(如红队同时发起多目标扫描)
2. 概念结构设计
ER图核心关系:
用户 -(发起)→ 扫描任务 -(关联)→ 目标系统 -(存在)→ 漏洞 -(构成)→ 攻击链
漏洞 -(对应)→ 防御规则 -(生成)→ 策略模板
裁判 -(监控)→ 攻击日志 -(触发)→ 计分规则
特殊属性设计:
漏洞库增加「AWD场景威胁等级」字段(结合CVSS和演练环境特殊性)
攻击链表设置「路径权重」字段(基于历史成功率自动计算)
防御规则库包含「热加载标记」(区分立即生效与测试模式规则)
3. 逻辑结构设计
关键表结构:
CREATE TABLE vuln_chain (
chain_id INT PRIMARY KEY,
vuln_ids JSON, -- 存储CVE-2023-1234等关联漏洞ID数组
success_rate DECIMAL(3,2), -- 基于历史攻击数据的成功率
critical_nodes VARCHAR(200) -- 标注RCE、提权等关键节点
);
CREATE TABLE defense_rule (
rule_id VARCHAR(20) PRIMARY KEY,
match_pattern TEXT, -- 如"content:"sleep(5);"
risk_level ENUM('高危','中危','低危'),
hot_reload BOOLEAN DEFAULT FALSE -- 是否支持热加载
);
CREATE TABLE attack_log (
log_id BIGINT AUTO_INCREMENT,
session_id VARCHAR(64), -- 攻击会话指纹
vuln_id INT REFERENCES vuln_db,
payload TEXT, -- 原始攻击载荷
is_cheating BOOLEAN -- LSTM模型检测的作弊标记
);
索引优化:
漏洞库按CVSS评分和AWD威胁等级建立联合索引
攻击日志表按session_id哈希分区提升查询效率
防御规则库对match_pattern字段建立全文索引
4. 物理结构设计
存储方案:
使用TiDB分布式数据库(兼容MySQL协议)满足高并发需求
热数据(攻击日志、实时得分)存储在NVMe SSD阵列
冷数据(历史漏洞库、往届赛事数据)采用Ceph对象存储
性能增强:
攻击日志表启用压缩(ZLIB算法降低40%存储空间)
为裁判系统的实时看板配置独立只读副本
设置Redis缓存层:缓存Top100漏洞的EXP模板和防御规则
容灾设计:
主从集群部署于不同可用区(RPO<15秒,RTO<30秒)
每日凌晨进行增量备份至异地灾备中心
二、用户界面设计实施方案(结合AWD漏洞自动化平台)
- 用户特性分析
角色差异:
红队攻击手:需要快速操作(平均每任务<2分钟),关注攻击链拓扑图和自动化EXP生成
蓝队防守方:侧重防御规则的有效性验证(需对比拦截前后流量差异)
赛事裁判组:依赖全局视角的实时数据看板(需毫秒级刷新攻击事件)
行为特征:
88%的红队用户习惯使用快捷键而非菜单导航
蓝队用户76%的时间集中在规则测试和误报分析
裁判组需要同时监控20+队伍的状态面板
2. 功能任务分析
核心交互场景:
红队:目标输入→一键扫描→攻击链选择→EXP自动执行→权限获取提示
蓝队:攻击日志筛选→规则模板匹配→虚拟环境测试→热加载执行
裁判:多队伍攻击流对比→违规行为弹窗告警→动态积分排名更新
关键任务流:
- 用户界面设计
界面类型选择:
红队:采用攻击驾驶舱设计(仿军事指挥系统)
中央区域:攻击链拓扑图(D3.js动态渲染)
右侧面板:EXP代码编辑区(支持VSCode式智能提示)
蓝队:诊断控制台风格(参考Wireshark布局)
三层分割视图:原始流量→规则匹配→拦截效果
防御规则对比工具(Diff视图显示修改前后的拦截差异)
裁判组:作战态势感知大屏(类似NASA任务控制中心)
主屏:ELK驱动的实时攻击地图
辅屏:违规行为热力图和队伍排名跑马灯
**原型设计示例(红队界面):
Frame 1920x1080
├─ Top Bar [比赛剩余时间: 02:15:33]
├─ Left Panel (30%宽度)
│ ├─ Quick Scan按钮(快捷键F1)
│ ├─ Target List(可拖拽排序)
│ └─ Vuln Filter(CVSS>7.0筛选)
└─ Main Area
├─ Attack Path Graph(ECharts力导向图)
└─ Floating Window
├─ Shell Terminal(WebSocket直连目标)
└─ File Explorer(树状结构展示攻陷主机)
4. 设计原则实现
原则落地措施:
界面合适性
红队界面隐藏防御相关功能(通过角色权限过滤)
裁判界面禁用所有数据修改操作(仅保留只读视图)
简便易操作性
设置攻击链"快捷组合键"(如Ctrl+1触发SQL注入+RCE组合)
蓝队规则测试提供"一键回滚"(自动恢复被修改的WAF规则)
交互控制
攻击执行过程中显示"中止攻击"大红色按钮(防误操作)
裁判界面设置"事件回放"滑动条(支持攻击过程复盘)
媒体组合
用蜂鸣声提示高危漏洞发现(配合界面红色闪烁边框)
攻击成功时显示3D粒子动画(增强操作反馈感)
性能优化:
采用WebAssembly加速前端漏洞验证计算(比JS快5倍)
攻击链可视化启用Canvas渲染(万级节点流畅操作)
裁判看板数据更新采用Server-Sent Events(SSE)协议
用户测试数据:
经原型测试,红队用户任务完成时间从4.2分钟缩短至1.8分钟
蓝队用户的规则误报分析效率提升220%
裁判组违规检测响应延迟从人工核对的3-5分钟降至自动提示的800ms内