humaameer786/security-automation-learning

GitHub: humaameer786/security-automation-learning

一个分阶段的网络安全自动化学习仓库,通过逐步构建日志解析、撞库检测、威胁情报查询和容器化部署等组件,培养安全分析的实用自动化技能。

Stars: 0 | Forks: 0

# 安全自动化学习之旅 本仓库记录了我逐步构建完整的**安全自动化流水线** (Security Automation Pipeline) 的学习之旅。 我没有从包含多种不熟悉技术的大型项目开始,而是选择分别构建每一个组件。这使我能够理解其中的逻辑,独立测试每个部分,记录所学内容,并最终将这些组件整合为一个完整的网络安全作品集项目。 ## 项目目标 本仓库的目标是培养自动化常见安全分析任务所需的实用技能。 练习将涵盖: - 解析身份验证日志 - 处理时间戳和时间窗口 - 检测登录失败模式 - 检测撞库 (Credential-stuffing) 攻击 - 关联来自多个日志源的事件 - 使用 Pandas 进行安全数据分析 - 将事件存储在 SQLite 和 PostgreSQL 中 - 通过威胁情报 API 充实可疑 IP 地址的信息 - 安全管理 API 密钥和其他机密 - 使用 Docker 对应用程序进行容器化 - 使用 Docker Compose 运行多个服务 - 测试、调试和记录安全工具 ## 计划学习路径 ### 01 — 安全日志解析器 构建一个 Python 命令行工具,用于读取身份验证日志并显示: - 有效记录总数 - 登录成功次数 - 登录失败次数 - 唯一用户名 - 唯一源 IP 地址 - 无效或格式错误的记录 涉及概念: - Python 虚拟环境 - Python 模块 - 使用 `python -m` 运行代码 - CSV 处理 - `datetime` 解析 - 输入验证 - 错误处理 **状态:** 进行中 ### 02 — 纯 Python 登录失败检测器 使用 Python 字典、列表、集合以及时间窗口逻辑创建一个检测器。 计划检测规则: 涉及概念: - 字典和集合 - 按时间戳对事件进行排序 - `datetime` 和 `timedelta` - 按源 IP 对事件进行分组 - 基于阈值的检测 - 基础单元测试 **状态:** 未开始 ### 03 — Pandas 撞库检测器 使用 Pandas 重构检测逻辑。 涉及概念: - DataFrame - `pandas.to_datetime()` - 布尔过滤 - `groupby()` - `nunique()` - `resample()` - 聚合 - 将检测结果导出为 CSV Pandas 检测器将与纯 Python 版本进行对比,以确认两者产生相同的结果。 **状态:** 未开始 ### 04 — VPN 与 Web 应用日志关联器 创建模拟的 VPN 身份验证日志和 Web 应用访问日志,然后关联两个来源中的相关活动。 该工具将调查: - 是否有相同的 IP 针对了这两个系统 - 两个日志中是否出现了相同的用户名 - 反复的登录失败之后是否跟随了成功的登录 - 事件是否发生在同一时间窗口内 涉及概念: - 日志规范化 - 多源分析 - Pandas 的 `merge()` - 时间戳比较 - 事件关联 **状态:** 未开始 ### 05 — SQLite 安全事件存储 将身份验证事件和检测结果存储在 SQLite 中。 计划工作流: ``` Synthetic authentication logs ↓ SQLite database ↓ Pandas analysis ↓ Detections ↓ SQLite database ``` 涉及概念: - 创建数据库和表 - 参数化 SQL 查询 - 从 Python 插入记录 - `pandas.read_sql()` - DataFrame 的 `to_sql()` - 查询可疑活动 - 数据持久化 **状态:** 未开始 ### 06 — 威胁情报 IP 充实工具 构建一个命令行工具,利用威胁情报 API 检查可疑的 IP 地址。 计划功能: - 验证 IPv4 和 IPv6 地址 - 从环境变量中读取 API 密钥 - 发送经过身份验证的 API 请求 - 解析 JSON 响应 - 显示有用的信誉信息 - 处理超时和 API 错误 - 遵守 API 速率限制 - 缓存之前检查过的 IP 地址 错误处理将包括: - 缺少 API 密钥 - 无效的 IP 地址 - 网络超时 - HTTP `401` - HTTP `404` - HTTP `429` - 意外的 API 响应 **状态:** 未开始 ### 07 — PostgreSQL 和 JSONB 将威胁情报的充实结果存储在 PostgreSQL 中。 涉及概念: - 将 Python 连接到 PostgreSQL - 数据库连接字符串 - SQLAlchemy 或 `psycopg2` - 事务 - PostgreSQL 的 `JSONB` - 存储原始 API 响应 - 查询之前的充实结果 - 重复处理和 upsert **状态:** 未开始 ### 08 — Docker 化安全工具 将一个 Python 安全工具打包到 Docker 容器中。 涉及概念: - Docker 镜像和容器 - Dockerfile - 基础镜像 - 镜像层 - 环境变量 - 卷挂载 - `.dockerignore` - 以非 root 用户身份运行容器 **状态:** 未开始 ### 09 — Docker Compose 应用程序和数据库 使用 Docker Compose 将 Python 应用程序和 PostgreSQL 作为独立的服务运行。 计划架构: ``` Python security application ↓ PostgreSQL database ``` 涉及概念: - 多容器应用程序 - Docker Compose 服务 - 容器网络 - 持久化卷 - 环境变量注入 - 数据库健康检查 - 服务启动顺序 - 容器日志和重启测试 **状态:** 未开始 ## 最终作品集项目 在完成学习练习后,我将把这些组件整合到一个单独的项目中: # 安全自动化流水线 最终的流水线将: 1. 生成模拟的 VPN 和 Web 应用身份验证日志。 2. 存储和处理安全事件。 3. 检测撞库模式。 4. 关联多个日志源中的可疑活动。 5. 利用威胁情报 API 充实可疑 IP 地址的信息。 6. 将充实结果存储在 PostgreSQL 中。 7. 通过一个 Python 协调器运行完整的工作流。 8. 使用 Docker Compose 打包应用程序和数据库。 完成的流水线将作为独立的 GitHub 仓库发布。 ## 文档记录方法 每个练习都将包含自己的 README,涵盖: - 目标 - 练习的概念 - 检测逻辑 - 设置说明 - 用法 - 输入示例 - 输出示例 - 我的收获 - 遇到的问题及修复方法 - 局限性 - 未来可能的改进 本仓库旨在展示最终结果以及其背后的学习过程。 ## 安全与隐私 本仓库中使用的所有日志和安全事件将是: - 合成的 - 虚构的 - 专门为学习而创建的 - 不含真实凭证 - 不含个人信息 - 不含机密业务数据 在适当的地方将使用保留的文档化 IP 范围: ``` 192.0.2.0/24 198.51.100.0/24 203.0.113.0/24 ``` 本仓库不涉及未经授权的访问、真实的凭证收集,或未经许可测试外部系统。 ## 机密管理 API 密钥、密码、token 和数据库凭证永远不会被提交到 GitHub。 仓库的 `.gitignore` 应包含: ``` .env .venv/ venv/ __pycache__/ *.pyc *.db .pytest_cache/ .vscode/ .idea/ ``` 可能会包含一个安全的示例文件: ``` .env.example ``` 示例: ``` VT_API_KEY=replace_with_your_api_key DATABASE_URL=replace_with_your_database_connection ``` ## 当前进度 | 阶段 | 练习 | 状态 | |---:|---|---| | 01 | 安全日志解析器 | 进行中 | | 02 | 纯 Python 登录失败检测器 | 未开始 | | 03 | Pandas 撞库检测器 | 未开始 | | 04 | VPN 与 Web 应用日志关联器 | 未开始 | | 05 | SQLite 安全事件存储 | 未开始 | | 06 | 威胁情报 IP 充实工具 | 未开始 | | 07 | PostgreSQL 和 JSONB | 未开始 | | 08 | Docker 化安全工具 | 未开始 | | 09 | Docker Compose 应用程序和数据库 | 未开始 | 此表格将随着项目的进展而更新。 ## 正在培养的技能 - Python - 安全自动化 - 身份验证日志分析 - 撞库检测 - 事件关联 - Pandas - SQL - SQLite - PostgreSQL - JSON 和 JSONB - REST API - 威胁情报 - 机密管理 - Docker - Docker Compose - Git 和 GitHub - 测试和调试 - 技术文档 ## 免责声明 本仓库包含使用合成数据和受控环境进行的防御性网络安全练习。 其仅供合法和教育用途。未经系统所有者的明确授权,不应使用此处记录的工具和技术来访问、测试、监控或干扰任何系统。 ## 作者 **Huma Ameer**
标签:Docker, Python, 威胁情报, 安全防御评估, 开发者工具, 撞库检测, 无后门, 测试用例, 版权保护, 请求拦截, 逆向工具