LLOYD-11/cybersecurity-assessment-lab
GitHub: LLOYD-11/cybersecurity-assessment-lab
一个可复现的Python网络安全评估实验室,将网络侦察、Web安全演示、日志检测与自动化报告串联为一站式评估工作流。
Stars: 0 | Forks: 0
# 个人网络安全评估实验室
[](https://github.com/LLOYD-11/cybersecurity-assessment-lab/actions/workflows/tests.yml)
[](https://github.com/LLOYD-11/cybersecurity-assessment-lab/releases/latest)
本项目是一个实用的网络安全评估实验室。目前演示了网络侦察、Web 漏洞测试、基于日志的检测以及结构化报告输出。
我们的目标不仅是创建孤立的脚本,而是要构建一个小巧、可解释的安全实验室,其中每个模块都与真实的安全评估流程紧密相连。
## 项目状态
版本 `1.0.1` 是当前的稳定版本。其功能范围已完善:该仓库提供了从证据收集、验证到评估报告的、可复现的本地工作流。
## 架构
```
flowchart LR
target["Authorized Target"] --> scanner["TCP Scanner and Protocol Fingerprinting"]
logs["Authentication Logs"] --> analyzer["Sliding-Window Log Analyzer"]
web["Controlled Web Security Demos"] --> findings["Curated Web Findings"]
scanner --> contracts["Versioned Evidence Validation"]
analyzer --> contracts
findings --> contracts
contracts --> report["Assessment Report"]
report --> manifest["SHA-256 Evidence Manifest"]
```
## 当前模块
- [`recon/port_scanner/`](recon/port_scanner/) - 使用 Python 编写的网络侦察模块。
- [`vulnerable_web_app/`](vulnerable_web_app/) - 本地 Flask 应用,演示了 SQL 注入、XSS 和密码哈希。
- [`log_analyzer/`](log_analyzer/) - 用于分析可疑身份验证日志模式的命令行工具。
- [`report_generator/`](report_generator/) - 自动化 Markdown 报告生成器,用于生成结构化的实验室证据报告。
- [`assessment_pipeline/`](assessment_pipeline/) - 一键实现证据收集、验证和报告生成的工作流。
## 已实现的工作流
### 模块 1:网络侦察
- TCP 端口扫描
- 基于端口的服务提示,带有明确的来源标注
- 可选的 HTTP、TLS 和基于 banner 的协议指纹识别,附带置信度和证据
- 可配置的扫描范围、超时时间和工作线程数
- JSON 和 CSV 导出
### 模块 2:Web 安全演示
- SQL 注入:易受攻击的查询构建与参数化查询的对比
- 跨站脚本攻击 (XSS):不安全的渲染与自动 HTML 转义的对比
- 密码存储:明文密码存储与密码哈希的对比
- 为每个 Web 安全演示提供 OWASP Top 10 映射
### 模块 3:基于日志的检测
- 身份验证日志解析
- 基于滑动时间窗口的重复失败登录检测
- 针对失败尝试的不区分大小写的目标用户名检测
- 相同 IP 和相同账户在失败后成功的相关性分析
- 可配置的检测阈值、置信度、时间戳和来源证据
- JSON 告警导出
- Markdown 报告生成
- 为暴力破解类检测提供 MITRE ATT&CK 映射
### 模块 4:评估报告
- 规范的自动化报告和分析师撰写的报告样本
- 根据扫描器输出、日志告警和精选的 Web 发现结果自动生成报告
- 版本化的证据契约和严格的输入验证
- 包含发现结果的严重程度、证据、影响和修复建议
- 安全控制矩阵
- 证据来源部分
- 针对可疑身份验证活动的应急响应指南
- 带有运行参数和工件大小的 SHA-256 证据清单
- 从侦察到报告的一键式工作流
## 环境要求
- Python 3.12 或更高版本
- 本地演示无需提升权限
## 设置
在项目根目录下执行:
```
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -e .
```
## 60 秒演示
设置完成后,针对自动管理的本地 Flask 目标运行完整工作流:
```
cyberlab-assess --demo --output-dir reports/generated/demo-run
```
该命令将启动一个隔离的本地目标,根据响应证据验证其 HTTP 协议,分析示例身份验证日志,验证版本化输入,生成评估报告和清单,然后停止目标。
预期结果:
```
Assessment pipeline completed.
Open ports found: 1
Authentication alerts generated: 5
Assessment report: reports/generated/demo-run/assessment_report.md
Evidence manifest: reports/generated/demo-run/manifest.json
```
有关授权目标模式和工件详情,请参见 [`assessment_pipeline/README.md`](assessment_pipeline/README.md)。
## 演示预览
[](docs/demo_gallery.md)
[演示图库](docs/demo_gallery.md) 展示了受控的 Web 对比、SQL 注入证据,以及来自捕获的流水线运行且带有证据支持的网络摘要。
## 报告
- [`reports/automated_assessment_report_sample.md`](reports/automated_assessment_report_sample.md) - 根据已提交的、版本化的测试固件复现的规范自动化报告。
- [`reports/analyst_assessment_report_sample.md`](reports/analyst_assessment_report_sample.md) - 补充的分析师撰写报告,涵盖侦察、Web 发现、检测和响应指南。
- [`reports/pipeline_demo/`](reports/pipeline_demo/) - 捕获的端到端演示包,包含扫描证据、身份验证告警、报告和 SHA-256 清单。
- [`reports/auth_log_analysis_sample.md`](reports/auth_log_analysis_sample.md) - 根据样本日志数据集生成的身份验证日志分析报告。
- [`reports/auth_window_demo_report.md`](reports/auth_window_demo_report.md) - 展示滑动时间窗口检测行为的身份验证日志报告。
## 复现规范报告
已提交的证据测试固件使得规范自动化报告能够逐字节复现:
```
python3 -m report_generator.generate_report \
--scan report_generator/fixtures/localhost_http_scan.json \
--auth report_generator/fixtures/auth_alerts.json \
--findings report_generator/findings.json \
--findings-scope "controlled local Flask demo application" \
--assessment-mode local_demo \
--generated-at 2026-07-14T10:56:45+00:00 \
--output reports/automated_assessment_report_sample.md
```
固定的时间戳仅用于确定性样本验证。输入契约记录在 [`report_generator/EVIDENCE_CONTRACT.md`](report_generator/EVIDENCE_CONTRACT.md) 中。
## 生成全新证据
生成本地证据文件:
```
python3 -m recon.port_scanner.scanner 127.0.0.1 --start-port 1 --end-port 30 --timeout 0.1 --workers 20 --fingerprint --output reports/generated/localhost_scan.json --format json
python3 -m log_analyzer.analyzer log_analyzer/sample_logs/auth_sample.log --output reports/generated/auth_alerts.json
```
生成自动化评估报告:
```
python3 -m report_generator.generate_report \
--scan reports/generated/localhost_scan.json \
--auth reports/generated/auth_alerts.json \
--findings report_generator/findings.json \
--findings-scope "controlled local Flask demo application" \
--assessment-mode local_demo \
--output reports/generated/final_assessment_report.md
```
`reports/generated/` 目录已被 Git 忽略。全新的本地证据不会更改已提交的测试固件或规范报告。
## 运行测试
在项目根目录下执行:
```
python3 -m unittest discover
```
统一的测试套件涵盖了所有模块和端到端流水线。Web 应用和流水线演示数据库与本地项目数据库相互隔离。
## 项目结构
```
cybersecurity_assessment_lab/
├── .github/workflows/tests.yml
├── CHANGELOG.md
├── assessment_pipeline/
├── docs/
│ ├── demo_gallery.md
│ └── screenshots/
├── evidence_contracts/
├── LICENSE
├── pyproject.toml
├── README.md
├── recon/
│ └── port_scanner/
│ ├── fingerprinting.py
│ ├── scanner.py
│ └── README.md
├── vulnerable_web_app/
│ ├── app.py
│ ├── database.py
│ ├── docs/
│ └── static/favicon.svg
├── log_analyzer/
│ ├── analyzer.py
│ ├── sample_logs/
│ └── docs/
├── report_generator/
│ ├── generate_report.py
│ ├── EVIDENCE_CONTRACT.md
│ ├── findings.json
│ ├── fixtures/
│ └── README.md
└── reports/
├── pipeline_demo/
├── automated_assessment_report_sample.md
├── analyst_assessment_report_sample.md
├── auth_log_analysis_sample.md
└── auth_window_demo_report.md
```
## 未来工作
稳定的 `v1.0.1` 范围已完成。未来可能的扩展包括:
- 扩展特定于协议的指纹元数据和确定性测试固件。
- 可选地将生成的评估报告导出为 PDF。
## 安全边界
本项目中的所有安全测试必须仅针对本地的、自有的或明确授权的目标进行。
## 许可证
本项目基于 [MIT License](LICENSE) 授权。
标签:CISA项目, Python, Web安全, 报告生成, 插件系统, 无后门, 网络安全实验环境, 自动化报告, 蓝队分析, 逆向工具, 防御加固