Security Audit
此技能使代理能够对Web应用程序、API、云基础设施和后端服务进行彻底的安全审计。代理系统地检查认证机制、授权控制、输入验证、加密实践、日志配置和部署设置。发现结果映射到行业框架,如OWASP Top 10、CWE标识符以及合规标准,包括SOC 2和PCI-DSS。
Workflow
-
收集系统信息 — 收集目标环境的详细信息,包括技术栈、架构图、网络拓扑、部署模型和第三方集成。审查配置文件、环境变量和基础设施即代码模板,以构建攻击面的完整视图。
-
定义审计范围和合规目标 — 通过识别哪些组件、环境和数据流在审计范围内来建立审计边界。将审计目标映射到相关的合规框架,如SOC 2 Type II、PCI-DSS、HIPAA或内部安全策略。创建基于OWASP Top 10和CWE/SANS Top 25的检查清单,以确保系统覆盖。
-
执行自动化漏洞扫描 — 对目标运行自动化扫描器以识别已知漏洞。使用OWASP ZAP进行Web应用程序、Trivy或Grype进行容器镜像、ScoutSuite或Prowler进行云基础设施扫描。聚合原始发现结果供手动审查。
-
进行手动安全审查 — 手动检查认证流程、会话管理、基于角色的访问控制、输入清理程序、加密实现、错误处理和日志实践。检查源代码中的硬编码密钥、不安全反序列化和自动化工具常遗漏的业务逻辑缺陷。
-
分析和分类发现结果 — 使用CVSS评分评估每个发现的严重性(关键、高、中、低、信息)。分配CWE标识符并将发现映射到相关的OWASP Top 10类别。评估可利用性、影响范围和业务影响,以生成优先级风险排序。
-
生成包含缓解计划的审计报告 — 生成结构化报告,包括执行摘要、详细发现(含证据和复现步骤)、风险评级和具体的缓解建议及预计工作量。包括合规差距分析,显示针对目标框架控制的通过/失败状态。
支持的技术
- Web框架: Express.js, Django, Flask, Spring Boot, Rails, ASP.NET
- 云平台: AWS(IAM、S3、EC2、RDS、Lambda)、GCP、Azure
- 容器与编排: Docker、Kubernetes、ECS
- 扫描工具: OWASP ZAP、Prowler、ScoutSuite、Trivy、Grype、Checkov
- 合规框架: OWASP Top 10、CWE/SANS Top 25、SOC 2、PCI-DSS、HIPAA、NIST 800-53
Usage
向代理提供对应用程序源代码、基础设施配置或目标URL以及所需合规范围的访问权限。代理将执行完整的审计工作流程并交付优先级发现报告。
提示示例:
Perform a security audit of the Node.js Express application in /app. Focus on OWASP Top 10 coverage and SOC 2 compliance. Include CWE IDs and remediation steps for every finding.
Examples
示例 1: 审计 Node.js Express 应用程序
目标: 使用Express.js、Sequelize ORM和JWT认证构建的电子商务API。
发现报告(摘录):
| # | Severity | Title | CWE | OWASP Category |
|---|---|---|---|---|
| 1 | Critical | SQL injection in product search endpoint | CWE-89 | A03:2021 Injection |
| 2 | High | JWT secret stored in plaintext in .env committed to repo |
CWE-798 | A07:2021 Identification and Authentication Failures |
| 3 | High | Missing rate limiting on /api/login |
CWE-307 | A07:2021 Identification and Authentication Failures |
| 4 | Medium | Verbose error messages expose stack traces in production | CWE-209 | A04:2021 Insecure Design |
| 5 | Medium | CORS policy allows wildcard origin with credentials | CWE-942 | A05:2021 Security Misconfiguration |
| 6 | Low | HTTP security headers missing (X-Content-Type-Options, CSP) | CWE-693 | A05:2021 Security Misconfiguration |
发现 #1 的缓解措施:
// BEFORE — vulnerable to SQL injection
app.get('/api/products', async (req, res) => {
const results = await sequelize.query(
`SELECT * FROM products WHERE name LIKE '%${req.query.search}%'`
);
res.json(results);
});
// AFTER — parameterized query
app.get('/api/products', async (req, res) => {
const results = await sequelize.query(
'SELECT * FROM products WHERE name LIKE :search',
{ replacements: { search: `%${req.query.search}%` }, type: QueryTypes.SELECT }
);
res.json(results);
});
示例 2: 审计 AWS 基础设施
目标: 运行三层Web应用程序的生产AWS账户。
Prowler扫描命令:
prowler aws --compliance soc2 pci_dss --output-formats json html --output-directory ./audit-report
发现报告(摘录):
| # | Severity | Finding | AWS Service | Compliance Control |
|---|---|---|---|---|
| 1 | Critical | S3 bucket prod-user-uploads has public read access enabled |
S3 | PCI-DSS 7.1, SOC 2 CC6.1 |
| 2 | High | IAM user deploy-bot has inline AdministratorAccess policy |
IAM | SOC 2 CC6.3 |
| 3 | High | RDS instance prod-db has encryption at rest disabled |
RDS | PCI-DSS 3.4, SOC 2 CC6.1 |
| 4 | Medium | CloudTrail logging is not enabled for all regions | CloudTrail | SOC 2 CC7.2 |
| 5 | Medium | Security group sg-0abc123 allows SSH (port 22) from 0.0.0.0/0 |
EC2 | PCI-DSS 1.3 |
发现 #2 的缓解措施:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["ecr:GetAuthorizationToken", "ecs:UpdateService", "ecs:DescribeServices"],
"Resource": "arn:aws:ecs:us-east-1:123456789012:service/prod-cluster/web-service"
}
]
}
最佳实践
- 定期按计划进行审计 — 至少每季度执行一次审计,并在每次重大发布或基础设施变更后进行,而不仅仅是每年一次。
- 结合自动化和手动测试 — 自动化扫描器捕捉已知漏洞模式,但手动审查对于业务逻辑缺陷、授权绕过和链式攻击场景至关重要。
- 一致使用CWE和CVSS — 为每个发现分配CWE标识符和CVSS评分,以便利益相关者可以在不同审计之间比较严重性并跟踪缓解趋势。
- 通过重新测试验证缓解措施 — 在修复部署后,重新运行相关的审计检查以确认漏洞已解决且未引入回归问题。
- 保持审计记录 — 将所有审计报告、证据和缓解记录存储在集中式仓库中,以支持合规审查和事件调查。
- 将第三方集成纳入审计范围 — 支付网关、OAuth提供商和SaaS API引入的风险容易在仅审计第一方代码时被忽视。
Edge Cases
- 微服务安全态势不一致 — 一个服务可能强制执行认证,而另一个内部服务信任所有流量。审计服务间通信并验证即使在私有网络中也应用零信任原则。
- 无源码访问的遗留系统 — 当无法获取源代码时,依赖黑盒测试、流量分析和配置审查。在审计报告中明确记录减少的覆盖范围。
- 无服务器和事件驱动架构 — Lambda函数、Step Functions和事件触发器具有临时执行上下文。审计IAM执行角色、事件源权限,并确保敏感数据不会以明文形式记录到CloudWatch。
- 多租户应用程序 — 验证租户隔离在数据层、API层和基础设施层得到强制执行。测试租户账户之间的横向权限提升。
- 位于WAF或CDN后的应用程序 — 自动化扫描器可能仅测试经过WAF过滤的表面。尽可能直接测试源站以识别WAF掩盖而非修复的漏洞。