LLOYD-11/cybersecurity-assessment-lab

GitHub: LLOYD-11/cybersecurity-assessment-lab

一个可复现的Python网络安全评估实验室,将网络侦察、Web安全演示、日志检测与自动化报告串联为一站式评估工作流。

Stars: 0 | Forks: 0

# 个人网络安全评估实验室 [![Tests](https://static.pigsec.cn/wp-content/uploads/repos/cas/09/097271ca091990be630ef6043309cc48240faa054413384202036fa2efedb2d2.svg)](https://github.com/LLOYD-11/cybersecurity-assessment-lab/actions/workflows/tests.yml) [![Release](https://img.shields.io/github/v/release/LLOYD-11/cybersecurity-assessment-lab)](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)。 ## 演示预览 [![受控的 Web 安全实验室,展示了易受攻击和防御性的路由](https://static.pigsec.cn/wp-content/uploads/repos/cas/24/24e76cef03b322f0c1d885a122ab0305f8ca1eecd75cb9993381cd01dd1b31d7.jpg)](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安全, 报告生成, 插件系统, 无后门, 网络安全实验环境, 自动化报告, 蓝队分析, 逆向工具, 防御加固