VanshBhardwaj1945/FlowSec

GitHub: VanshBhardwaj1945/FlowSec

一款针对 GitHub Actions 的 CI/CD 安全扫描工具,通过规则引擎检测并映射 MITRE ATT&CK 攻击路径。

Stars: 0 | Forks: 0

# FlowSec **[完整文档](docs/FULL_README.md)** ## 检测到内容 | ID | 规则 | 严重性 | MITRE | |---|---|---|---| | FS001 | 硬编码密钥 | CRITICAL | T1552.001 | | FS002 | 未固定操作 | CRITICAL | T1195.001 | | FS003 | 权限过高 | HIGH | T1078 | | FS004 | 缺少 OIDC | HIGH | T1552.004 | | FS005 | 拉取请求目标误用 | CRITICAL | T1611 | | FS006 | 缺少作业超时 | LOW | T1499 | | FS007 | 自托管 Runner 隔离 | HIGH | T1053 | | FS008 | 缺少工件签名 | MEDIUM | T1553 | ## 真实仓库中的发现 扫描 `VanshBhardwaj1945/cloud-resume-challenge-azure` — 2 个工作流文件中发现 13 个问题: ``` [CRITICAL] FS002 - Unpinned Actions File: .github/workflows/backend.main.yaml Action 'actions/checkout@v4' is not pinned to a commit hash [CRITICAL] FS002 - Unpinned Actions File: .github/workflows/backend.main.yaml Action 'azure/login@v2' is not pinned to a commit hash [HIGH] FS003 - Excessive Permissions File: .github/workflows/backend.main.yaml Pipeline permissions are set to 'None' — GitHub defaults apply [HIGH] FS004 - Missing OIDC File: .github/workflows/backend.main.yaml Cloud provider action present but no id-token: write permission [LOW] FS006 - Missing Job Timeout File: .github/workflows/backend.main.yaml Job 'build-and-deploy' has no timeout — GitHub default is 6 hours ``` ## 技术栈 | 层级 | 工具 | |---|---| | 语言 | Python 3.11 | | GitHub 连接 | PyGithub | | YAML 解析 | PyYAML | | 终端输出 | rich | | HTML 报告 | Jinja2 | | AI 叙述 | Anthropic Claude API | | 测试 | pytest, pytest-mock, pytest-cov | | 代码检查 | ruff, mypy, bandit | | 包管理 | hatch, pyproject.toml | | 容器化 | Docker | ## 状态 | 组件 | 状态 | |---|---| | 项目结构与打包 | 完成 | | 规则引擎抽象基类 | 完成 | | YAML 解析器 | 完成 | | 全部 8 个安全规则 | 完成 | | GitHub API 扫描器 | 完成 | | CLI 接口 | 完成 | | 丰富的终端输出 | 完成 | | HTML 报告生成 | 进行中 | | AI 攻击叙述 | 进行中 | | 行号追踪 | 进行中 | | 测试 | 进行中 | | 演示 GIF | 待定 | | GitHub Codespace 配置 | 待定 | | Web 应用 — FastAPI + 前端 | 待定 | | Web 应用 — Docker + GitHub Actions CI/CD | 待定 | | Web 应用 — Azure Container Apps 部署 | 待定 | | PyPI 发布 | 待定 | ## 路线图 **阶段 1 — 核心 CLI 工具** 完成 HTML 报告、AI 攻击叙述、行号追踪、测试和演示 GIF。这是发布到 PyPI 的可安装 Python 工具。 **阶段 2 — Web 应用** FastAPI 后端封装扫描器,提供用于仓库输入和文件上传的简单前端,通过 GitHub Actions 部署到 Azure Container Apps。任何人都可以在浏览器中扫描流水线而无需安装任何内容。 **阶段 3 — 规则扩展** 规则引擎设计为可插拔的。添加新规则只需一个文件,无需修改核心扫描器。持续增加覆盖更多攻击向量的规则。 ## 快速开始 ``` git clone https://github.com/VanshBhardwaj1945/FlowSec.git cd FlowSec python3 -m venv .venv source .venv/bin/activate pip install -e ".[dev]" cp .env.example .env # 将你的 GITHUB_TOKEN 添加到 .env flowsec scan --repo owner/repo flowsec scan --file path/to/workflow.yml ``` ## 关于该项目 作为一个安全工程与 DevSecOps 角色的作品集项目而构建。目标是构建一个真实的安全工具——而非运行现有工具——并全程记录每一个决策。 **[阅读完整文档](docs/FULL_README.md)**
标签:Anthropic Claude, bandit, CI/CD安全, Cloudflare, DevSecOps, Docker, GitHub Actions, GraphQL安全矩阵, Jinja2, Llama, MITRE ATT&CK, mypy, PB级数据处理, PyGithub, pytest, PyYAML, rich, ruff, RuleLab, SamuraiWTF, SEO: CI/CD安全扫描, SEO: GitHub Actions安全, SEO: 工作流攻击向量, XML 请求, 上游代理, 二进制发布, 云安全监控, 协议分析, 安全助手, 安全合规, 安全开发, 安全扫描器, 安全规则引擎, 安全运维, 安全防御评估, 密钥泄露, 工作流安全, 开源工具, 恶意代码分类, 攻击向量, 权限提升, 权限治理, 流程安全, 签名验证, 结构化查询, 网络代理, 自动化安全, 自动笔记, 请求拦截, 超时控制, 软件开发工具包, 配置错误, 隔离机制, 静态分析