gion-week/Python-Security-Toolkit

GitHub: gion-week/Python-Security-Toolkit

面向蓝队和安全运营的 Python 防御性网络安全教学工具包,通过四阶段实践路径教授网络侦察、日志分析、威胁情报与 SIEM 集成的核心概念。

Stars: 0 | Forks: 0

# Python 安全工具包 关于 Python 应用于**防御性网络安全**的四阶段实践学习路径:网络侦察、日志分析、威胁情报以及 SIEM/SOAR 集成。 每个阶段都是一个**操作指南**,而不仅仅是一个产物:这是一个旨在通过实践来教授概念的项目。每个阶段的 README 都包含一个 *概念* 部分,解释理解代码所需的理论,以及一个 *已知限制* 部分,说明该工具不能做什么及其原因。即使不运行一行代码,也能学到知识。 参考目标是**蓝队 / 安全运营**。漏洞利用开发、攻击工具和规避技术不在本项目的范围内。 ## 阶段 | # | 项目 | 命令 | 教学内容 | 状态 | |---|---|---|---|---| | 1 | [port-scanner](01-port-scanner/README.md) | `sectoolkit port-scanner` | TCP 握手、端口状态、I/O 密集型并发、banner grabbing | 已完成 | | 2 | log-analyzer | `sectoolkit log-analyzer` | 真实日志解析、时间归一化、滑动窗口异常检测 | 待实现 | | 3 | ioc-enrichment | `sectoolkit ioc-enrichment` | 威胁情报 API 集成、速率限制、缓存、评分 | 待实现 | | 4 | siem-integration | `sectoolkit siem-integration` | 事件生命周期、自动分流、端到端集成 | 待实现 | ## 前置条件 - Python **3.11 或更高版本** - `git` ## 设置 ``` git clone https://github.com/gion-week/Python-Security-Toolkit.git cd Python-Security-Toolkit python -m venv .venv source .venv/bin/activate # Linux / macOS .venv\Scripts\Activate.ps1 # Windows PowerShell pip install -e ".[dev]" cp .env.example .env ``` 使用 `-e` (*可编辑*) 安装会注册指向源码的包,而不是复制它们:对代码的修改会立即生效,无需重新安装。这也是使得 `sectoolkit` 命令可用的原因,并且允许一个阶段导入另一个阶段的模块。 如果你不想安装任何东西,每个命令也可以通过在仓库根目录下执行 `python -m sectoolkit ...` 的形式来运行。 ### 依赖项存放在两个地方,这不是错误 | 文件 | 声明内容 | 用途 | |---|---|---| | `pyproject.toml` | **包**正常运行所需的依赖,带有最低版本限制 (`colorama>=0.4.6`) | 这是项目的契约:安装它的人至少必须拥有这些版本 | | `requirements.txt` | 精确的运行时**环境**,带有锁定的版本 (`colorama==0.4.6`) | 可重复性:重建项目测试时所用的环境 | | `requirements-dev.txt` | 用于开发和测试的精确环境 (`pytest`、`ruff` 及其传递依赖) | 确保 CI 和开发环境的可重复性 | 要使用该工具包,只需 `pyproject.toml` 即可。这两个 requirements 文件用于当你想要 *完全相同* 的环境,而不是一个等效的环境时。 ## 用法 ``` sectoolkit --help sectoolkit port-scanner --help ``` **全局** flag 适用于整个工具包,并且必须放在子命令名称之**前**;特定于工具的 flag 放在后面: ``` sectoolkit --quiet port-scanner 192.0.2.1 -p 22,80 # corretto sectoolkit port-scanner 192.0.2.1 -p 22,80 --quiet # errore ``` | 全局 Flag | 效果 | |---|---| | `--verbose` | 在 stderr 输出调试信息 | | `--quiet` | 仅在 stderr 输出警告和错误 | | `--version` | 工具包版本 | ### 输出通道 **数据输出到 stdout,诊断信息输出到 stderr。** 这正是使得管道可用的原因: ``` sectoolkit port-scanner 192.0.2.1 -p 1-1024 --format json | jq '.ports' ``` JSON 数据会被干净地传递给 `jq`,同时进度日志仍然在终端中可见。 ### 退出代码 | 代码 | 含义 | |---|---| | `0` | 执行成功 | | `1` | 执行错误(I/O、网络、缺少配置) | | `2` | 使用错误:参数无效 | | `3` | 阳性检测 —— **仅**在请求使用 `--exit-on-findings` 时 | 默认情况下,发现某些内容的分析被视为执行成功并返回 `0`。代码 `3` 适用于那些希望在出现结果时让 pipeline 失败的人。 ## 测试与代码质量 ``` pytest ruff check . ruff format --check . ``` `pytest` 运行所有阶段的测试套件。**没有任何测试会打开真实的网络连接**:外部调用总是被 mock 替代,因此该套件运行速度快、具有确定性,并且可以在没有网络的 CI 环境中运行。需要激活外部服务的测试被标记为 `@pytest.mark.integration`,并在默认执行中被排除。 每次推送和拉取请求时,CI 中都会运行同样的三项检查。 ## 真实示例 每个阶段都有一个 `esempi/` 文件夹,其中包含工具的真实执行记录:确切的命令、生成的输出、产生的文件以及每个案例所证明的分析。它们不是装饰性的截图,而是展示工具在不同情况下的行为的部分——包括那些什么都没发现的情况,这往往比其他情况更能教会我们一些东西。 → [阶段 1 示例](01-port-scanner/esempi/README.md) ## 仓库结构 ``` python-security-toolkit/ ├── pyproject.toml # metadata, dipendenze, config di ruff e pytest, entrypoint CLI ├── requirements.txt # ambiente runtime riproducibile ├── requirements-dev.txt # ambiente di sviluppo riproducibile ├── .env.example # variabili d'ambiente di tutte le fasi ├── sectoolkit/ # entrypoint CLI: solo dispatch, nessuna logica di dominio ├── tests/ # test di sectoolkit ├── 01-port-scanner/ # Fase 1: package, test, esempi, README └── CLAUDE.md # convenzioni e specifiche tecniche del progetto ``` 阶段文件夹带有数字前缀,以便直接从目录树中 readable 路径的顺序。它们不是 Python 包(以数字开头的名称不是有效的标识符):包位于文件夹内部并使用下划线,因此 `01-port-scanner/port_scanner/` 被导入为 `port_scanner`。 ### 添加一个阶段 每个新阶段必须在 **四个** 位置进行声明,并且它们必须保持一致: | 位置 | 内容 | |---|---| | `pyproject.toml` → `[tool.setuptools.packages.find]` | `where` 中的文件夹,`include` 中的包 | | `pyproject.toml` → `[tool.ruff] src` | 文件夹,否则 isort 会将该包视为第三方库 | | `pyproject.toml` → `[tool.pytest.ini_options] testpaths` | 测试文件夹 | | `sectoolkit/cli.py` → `_PHASE_CLI_MODULES` | 该阶段的 `cli` 模块 | 修改 `packages.find` 后,需要执行 `pip install -e ".[dev]"` 才能使新包可导入:可编辑安装会注册在安装时找到的包。 ## 许可证 MIT — 见 [LICENSE](LICENSE)。
标签:BurpSuite集成, Python, SIEM/SOAR, 动态分析, 威胁情报, 安全规则引擎, 开发者工具, 插件系统, 教程, 文档结构分析, 无后门, 网络安全, 逆向工具, 隐私保护