batuhan-satilmis/security-audit-toolkit

GitHub: batuhan-satilmis/security-audit-toolkit

基于 Python 的轻量级安全审计工具包,自动检查 AWS、M365 和 Supabase 的配置合规性并生成带修复建议的优先级报告。

Stars: 0 | Forks: 0

# security-audit-toolkit [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/67f8fa8196150233.svg)](https://github.com/batuhan-satirmis/security-audit-toolkit/actions/workflows/ci.yml) [![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE) ``` $ audit-toolkit run --config audit.yaml --out report.md Loaded 14 checks across 3 modules (m365, aws_iam, supabase) [m365] ✓ MFA enforced for all admins (CIS 1.1.1) [m365] ✗ Legacy auth (basic/imap) is enabled (CIS 1.2.1) [aws_iam] ✓ Root account has MFA (CIS 1.5) [aws_iam] ✗ IAM users with console access older than 90 days unused (CIS 1.12) [supabase] ✓ All tables have RLS enabled (custom) [supabase] ✗ 2 tables missing FORCE ROW LEVEL SECURITY (custom) Findings: 3 high · 1 medium · 0 low Report written to report.md ``` ## 它的功能 对于每个检查模块,它会拉取配置快照(通过 SDK / API),评估一组规则,并生成包含以下内容的 Markdown 或 JSON 报告: - 每次检查的通过/失败状态 - 严重程度 (info / low / medium / high / critical) - NIST CSF 功能和 CIS 控制映射 - 针对每次失败的具体修复步骤(命令或控制台点击操作) - 执行摘要块(按严重程度统计数量,安全态势评分) ## 为什么开发它 我在 [Forsman Tech](https://forsmantech.com) 的每次 SMB(中小企业)合作中都会在此基础上进行构建。每次清单式的评估最终都需要相同的自动化过程:从 M365 / AWS / Supabase / Azure 拉取配置,根据基线进行评估,生成客户的 IT 团队真正可以操作的交付物。这个工具包将该过程代码化了。 它**不是** [Prowler](https://github.com/prowler-cloud/prowler)、[ScoutSuite](https://github.com/nccgroup/ScoutSuite) 或 AWS Security Hub 的替代品——它们非常出色且覆盖面更广。这是一个更小、更具主观针对性的工具,重点在于: - 在合作项目中能快速运行(只需单次 Python 安装)。 - 输出的是*报告*,而不仅仅是发现的问题——可直接用于面向客户的交付物。 - 映射到 NIST CSF + CIS,这是 SMB 客户实际关心的两个框架。 ## 安装 ``` pip install -e . ``` 需要 Python 3.11+。 ## 配置 ``` # audit.yaml output: format: markdown # or json include_passing: false modules: m365: enabled: true tenant: contoso.onmicrosoft.com auth: device_code # or service_principal aws_iam: enabled: true profile: default regions: [us-west-2, us-east-1] supabase: enabled: true project_ref: xxxxxxx service_role_key: ${SUPABASE_SERVICE_ROLE_KEY} ``` ## 运行 ``` audit-toolkit run --config audit.yaml --out report.md audit-toolkit list-checks audit-toolkit show-check m365.legacy_auth_disabled ``` ## 示例输出 参见 [examples/sample-report.md](./examples/sample-report.md)。 ## 检查内容(当前模块) ### `m365` — Microsoft 365 / Entra ID | 检查 ID | 内容 | 映射 | |---|---|---| | `m365.mfa_admins_enforced` | 所有目录角色管理员均已强制启用 MFA | CIS 1.1.1 / NIST PR.AC-1 | | `m365.legacy_auth_disabled` | 已阻止传统身份验证 (basic/IMAP/POP) | CIS 1.2.1 | | `m365.password_never_expires_off` | 已禁用“密码永不过期”(或根据 NIST 800-63B 替换为长密码短语) | NIST 800-63B | | `m365.audit_log_enabled` | 已启用统一审计日志 | CIS 6.1.1 / NIST DE.AE-3 | | `m365.guest_invite_restricted` | 访客邀请仅限于管理员 | CIS 5.1 | ### `aws_iam` — AWS IAM | 检查 ID | 内容 | 映射 | |---|---|---| | `aws_iam.root_mfa` | Root 账户已启用 MFA | CIS 1.5 | | `aws_iam.no_root_access_keys` | Root 账户没有活跃的访问密钥 | CIS 1.4 | | `aws_iam.users_mfa` | 所有具有控制台访问权限的 IAM 用户均已启用 MFA | CIS 1.10 | | `aws_iam.unused_users` | 没有超过 90 天未使用控制台访问权限的 IAM 用户 | CIS 1.12 | | `aws_iam.no_wildcard_resources` | 没有客户管理的策略在数据访问操作上具有 `Resource: *` | NIST PR.AC-4 | ### `supabase` — Supabase / Postgres | 检查 ID | 内容 | 映射 | |---|---|---| | `supabase.rls_enabled` | 所有公开表均已启用 RLS | 自定义 | | `supabase.rls_forced` | 所有公开表均具有 FORCE RLS | 自定义 | | `supabase.anon_key_unused_in_admin` | 客户端代码中从未使用过 Service role key | 自定义 | 计划开发更多模块:Google Workspace、GitHub 组织设置、Stripe 受限密钥清单。 ## 架构 ``` src/audit/ cli.py argparse entry point config.py load + validate audit.yaml findings.py Finding dataclass; severity; NIST/CIS metadata report.py Markdown / JSON renderers checks/ base.py abstract Check class m365.py M365 checks aws_iam.py AWS IAM checks supabase.py Supabase checks tests/ test_findings.py test_report.py fixtures/ ``` 添加一个检查只需大约 30 行代码:继承 `Check` 子类,实现 `evaluate(context) -> list[Finding]`,并在模块的 `CHECKS` 列表中注册。 ## 贡献 欢迎提交 Issue 和 PR —— 尤其是新的检查模块。参见 [CONTRIBUTING.md](./CONTRIBUTING.md)。 ## 许可证 MIT
标签:Anthropic, AWS安全, CIS基准, GPT, IAM审计, IT合规, M365安全, NIST CSF, Python, SaaS安全, Supabase安全, 修复报告, 安全基线, 安全态势管理, 对称加密, 开源安全工具, 教学环境, 无后门, 漏洞管理, 网络安全, 自动化审计, 逆向工程平台, 配置核查, 隐私保护