我对 Prowler 的 48 项 IAM 检查进行了审计,并将其与我构建的 linter 进行了对比,发现了一个真正的差距。
作者开发了一款名为 iam-lint 的 Python 工具,用于扫描 AWS IAM 策略文档以识别安全风险。iam-lint 能够发现诸如通配符操作、通配符资源、无限制的 iam:PassRole 以及缺少 MFA 条件等问题。该工具会标记严重性和高风险问题,同时也标记中等风险问题,例如敏感操作缺少 MFA 要求。该工具设计用于集成到持续集成(CI)流水线中,并通过退出码指示策略合规性。在开发 iam-lint 的过程中,作者将其检查项与广泛使用的开源云安全工具 Prowler 进行了对比。发现 Prowler 已涵盖部分 iam-lint 的检查项,使得这些特定规则变得冗余。然而,作者识别出一个显著差距:Prowler 缺少对允许执行敏感操作但未要求 aws:MultiFactorAuthPresent 条件的策略的检查。这一区分至关重要,因为账户级别启用 MFA 并不能保证特定关键操作会强制要求 MFA。作者就此差距向 Prowler 提交了“新检查请求”,提议新增一个名为 iam_policy_sensitive_actions_require_mfa_condition 的检查项。这一过程凸显了深入调查现有工具并为之贡献价值的重要性,而非仅仅构建孤立的解决方案。该提议检查项的逻辑已在 iam-lint 中实现并经过测试。