安全审计Skill security-audit

这个技能提供全面的安全审计功能,用于识别应用程序、API、基础设施、数据管道和ML模型中的漏洞、配置错误和安全最佳实践违规。涵盖OWASP Top 10、合规要求(如SOC2、PCI-DSS、HIPAA、GDPR)、渗透测试、漏洞评估、风险分析和安全审查。关键词:安全审计、漏洞评估、渗透测试、OWASP、CVE、合规性、安全扫描、威胁建模、攻击面、数据安全、网络安全。

安全审计 0 次安装 2 次浏览 更新于 3/24/2026

名称: 安全审计 描述: 执行全面的安全审计,识别应用程序、API、基础设施和数据管道中的漏洞、配置错误和安全最佳实践违规。涵盖OWASP Top 10、合规要求(SOC2、PCI-DSS、HIPAA、GDPR)、渗透测试、漏洞评估、风险分析、安全审查和强化。触发关键词:安全审计、漏洞评估、渗透测试、渗透、OWASP、CVE、安全审查、风险分析、合规、SOC2、PCI-DSS、HIPAA、GDPR、安全清单、威胁建模、攻击面、安全态势、漏洞扫描、安全强化、安全基线、安全控制、安全差距分析、基础设施安全、API安全、云安全、容器安全、Kubernetes安全、网络安全、应用程序安全、数据安全、ML模型安全。 允许工具: 读取、Grep、Glob、Bash

安全审计

概述

此技能提供全面的安全审计能力,以识别以下方面的漏洞、配置错误和安全最佳实践违规:

  • 应用程序代码(OWASP Top 10、注入漏洞、身份验证问题)
  • API(REST、GraphQL、gRPC安全模式)
  • 基础设施(云配置、IaC、容器安全)
  • 数据管道(数据流安全、PII处理、加密)
  • ML模型(对抗性攻击、模型投毒、数据泄漏)
  • 合规框架(SOC2、PCI-DSS、HIPAA、GDPR)

使用此技能进行安全审查、漏洞评估、渗透测试准备、风险分析和合规审计。

指令

1. 范围评估

  • 识别要审计的资产
  • 确定合规要求
  • 审查安全策略
  • 规划审计方法

2. 应用程序安全审查

  • 搜索硬编码的秘密(API密钥、凭证、令牌)
  • 识别注入漏洞(SQL、命令、LDAP、XPath、NoSQL)
  • 检查身份验证/授权(会话管理、RBAC/ABAC)
  • 审查加密实现(算法、密钥管理)
  • 验证输入验证和输出编码
  • 检查OWASP Top 10漏洞
  • 审查错误处理(信息泄露)
  • 审计依赖项漏洞(CVE、供应链)

3. API安全审查

  • 身份验证机制(OAuth2、JWT、API密钥)
  • 所有端点的授权检查
  • 速率限制和节流
  • 输入验证(请求体、头部、参数)
  • API版本化和弃用处理
  • CORS策略和来源验证
  • GraphQL查询复杂性限制和深度限制
  • gRPC身份验证和授权
  • API文档安全(无敏感数据泄露)

4. 基础设施安全审查

  • 云配置审计(AWS、GCP、Azure、Kubernetes)
  • IaC安全扫描(Terraform、CloudFormation、Pulumi)
  • 容器安全(镜像扫描、运行时策略)
  • 网络分段和防火墙规则
  • 秘密管理(保险库、轮换策略)
  • 服务网格安全(mTLS、服务间身份验证)
  • CI/CD管道安全(供应链、工件签名)
  • 日志记录和监控配置

5. 数据管道安全审查

  • 数据分类和标记
  • PII/PHI处理和加密
  • 数据访问控制和审计日志
  • 数据保留和删除策略
  • 数据流映射和谱系
  • 静态和传输中加密
  • 备份安全和恢复过程
  • 跨境数据传输合规

6. ML模型安全审查

  • 训练数据投毒风险
  • 模型反转攻击
  • 对抗性输入处理
  • 模型提取保护
  • 推理API安全
  • 模型输出中的数据泄漏
  • 隐私保护技术(差分隐私、联邦学习)
  • 模型版本化和部署安全

7. 合规性评估

  • SOC2控制映射
  • PCI-DSS要求(如果处理支付)
  • HIPAA合规(如果处理健康数据)
  • GDPR要求(如果涉及欧盟数据主体)
  • 数据驻留要求
  • 审计跟踪完整性
  • 事件响应过程
  • 安全意识培训

8. 报告发现

  • 按严重性分类(关键、高、中、低、信息)
  • 映射到合规框架(CWE、CVE、OWASP)
  • 提供修复步骤和代码示例
  • 按风险和努力优先修复
  • 记录证据(文件路径、行号、截图)
  • 计算风险评分(适用CVSS)
  • 创建执行摘要和技术细节

最佳实践

  1. 深度防御:多层安全防护(网络、应用程序、数据)
  2. 最小权限:用户、服务、进程的最小必要权限
  3. 安全默认值:安全开箱即用设置,失败时保持安全
  4. 输入验证:永不信任用户输入,服务器端验证
  5. 加密:保护静态和传输中数据(TLS 1.2+、AES-256)
  6. 日志记录:全面审计跟踪,无敏感数据
  7. 更新:保持依赖项最新,及时修补CVE
  8. 零信任:显式验证,假设被入侵,最小权限访问
  9. 安全SDLC:安全需求、威胁建模、代码审查
  10. 事件响应:文档化过程、测试演练

示例

示例1:常见漏洞模式

# 关键:SQL注入
# 易受攻击
query = f"SELECT * FROM users WHERE id = {user_id}"
cursor.execute(query)

# 安全
query = "SELECT * FROM users WHERE id = %s"
cursor.execute(query, (user_id,))

# 关键:命令注入
# 易受攻击
os.system(f"ping {hostname}")

# 安全
import shlex
subprocess.run(["ping", shlex.quote(hostname)])

# 高:跨站脚本(XSS)
# 易受攻击
return f"<h1>Welcome {username}</h1>"

# 安全
from markupsafe import escape
return f"<h1>Welcome {escape(username)}</h1>"

# 高:路径遍历
# 易受攻击
file_path = f"/uploads/{filename}"
with open(file_path) as f:
    return f.read()

# 安全
import os
base_dir = "/uploads"
safe_path = os.path.normpath(os.path.join(base_dir, filename))
if not safe_path.startswith(base_dir):
    raise SecurityError("检测到路径遍历")

# 中:不安全反序列化
# 易受攻击
import pickle
data = pickle.loads(user_input)

# 安全
import json
data = json.loads(user_input)

# 中:硬编码秘密
# 易受攻击
API_KEY = "sk-1234567890abcdef"

# 安全
API_KEY = os.environ.get("API_KEY")

示例2:安全清单

## 身份验证与授权

- [ ] 密码使用bcrypt/argon2哈希(成本因子 >= 10)
- [ ] 敏感操作支持多因素认证
- [ ] 会话令牌是加密随机的
- [ ] 注销时使会话失效
- [ ] 登录尝试速率限制
- [ ] 失败尝试后账户锁定

## 输入验证

- [ ] 所有输入在服务器端验证
- [ ] 所有数据库操作使用参数化查询
- [ ] HTML上下文输出编码
- [ ] 文件上传验证(类型、大小、内容)
- [ ] URL验证和消毒

## 加密学

- [ ] 所有连接强制执行TLS 1.2+
- [ ] 仅使用强密码套件
- [ ] 来自可信CA的证书
- [ ] 秘密存储在安全保险库
- [ ] 无已弃用算法(MD5、SHA1、DES)

## 访问控制

- [ ] 应用最小权限原则
- [ ] 正确实现RBAC/ABAC
- [ ] 每个请求检查资源授权
- [ ] 管理界面受保护和审计

## 数据保护

- [ ] 敏感数据静态加密
- [ ] PII处理符合法规
- [ ] 实现数据保留策略
- [ ] 安全数据删除过程

## 日志记录与监控

- [ ] 记录安全事件
- [ ] 日志防篡改
- [ ] 可疑活动警报
- [ ] 日志保留满足合规

示例3:安全扫描命令

# 使用trufflehog进行秘密扫描
trufflehog filesystem --directory=. --only-verified

# 依赖项漏洞扫描
npm audit --production
pip-audit
cargo audit

# 静态分析
semgrep --config=auto .
bandit -r src/

# 容器扫描
trivy image myapp:latest
grype myapp:latest

# 基础设施扫描
checkov -d terraform/
tfsec terraform/

# OWASP ZAP API扫描
zap-api-scan.py -t https://api.example.com/openapi.json -f openapi

# SSL/TLS测试
testssl.sh https://example.com

# Kubernetes安全
kubesec scan deployment.yaml
kube-bench run --targets=node

示例4:安全头部配置

# Nginx安全头部
add_header X-Frame-Options "DENY" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self'; object-src 'none'; frame-ancestors 'none'; base-uri 'self'; form-action 'self';" always;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
add_header Permissions-Policy "geolocation=(), microphone=(), camera=()" always;

# 隐藏服务器版本
server_tokens off;

示例5:API安全审计清单

## REST API安全

身份验证与授权:

- [ ] JWT令牌每个请求验证
- [ ] 令牌过期强制执行(访问:15分钟,刷新:7天)
- [ ] 令牌撤销机制实现
- [ ] API密钥按最小权限划分
- [ ] OAuth2流程正确实现
- [ ] 资源级别授权检查(不仅端点)

输入验证:

- [ ] 请求体按模式验证(JSON模式、Pydantic)
- [ ] 路径参数验证(类型、格式、范围)
- [ ] 查询参数验证和消毒
- [ ] 头部验证(Content-Type、Accept)
- [ ] 文件上传验证(类型、大小、内容扫描)
- [ ] URL参数编码防止注入

速率限制与DoS保护:

- [ ] 每个API密钥/用户/IP速率限制
- [ ] 实现突发保护
- [ ] 强制请求大小限制
- [ ] 配置超时策略
- [ ] 下游服务断路器

CORS与来源验证:

- [ ] CORS策略限制性(非通配符*)
- [ ] 允许来源白名单
- [ ] 凭证标志正确使用
- [ ] 预检请求安全处理

错误处理:

- [ ] 向客户端返回通用错误消息
- [ ] 从不暴露堆栈跟踪
- [ ] 错误代码记录无内部泄露
- [ ] 日志中敏感数据脱敏

GraphQL特定:

- [ ] 查询深度限制(最大7-10级)
- [ ] 实现查询复杂性评分
- [ ] 生产中禁用内省
- [ ] 强制执行批量查询限制
- [ ] 实现字段级授权

gRPC特定:

- [ ] 服务间通信使用mTLS
- [ ] 身份验证/授权的拦截器
- [ ] 配置消息大小限制
- [ ] 流式RPC具有超时/取消
- [ ] 生产中禁用反射服务

示例6:基础设施安全审计

# AWS安全审计
aws iam get-account-password-policy
aws s3api get-bucket-encryption --bucket mybucket
aws ec2 describe-security-groups --query 'SecurityGroups[?IpPermissions[?FromPort==`22` && ToPort==`22` && IpRanges[?CidrIp==`0.0.0.0/0`]]]'
aws cloudtrail describe-trails
aws kms list-keys

# Kubernetes安全审计
kubectl get pods --all-namespaces -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.spec.containers[*].securityContext}{"
"}{end}'
kubectl get networkpolicies --all-namespaces
kubectl get psp  # 容器安全策略
kubectl get serviceaccounts --all-namespaces -o json | jq '.items[] | select(.automountServiceAccountToken != false)'

# Terraform安全扫描
tfsec . --format=json --out=tfsec-results.json
checkov -d . --framework terraform --output-file-path . --output json

# 容器镜像扫描
trivy image --severity HIGH,CRITICAL myapp:latest
grype myapp:latest -o json
docker scan myapp:latest

# SAST扫描
semgrep --config=p/owasp-top-ten --config=p/security-audit .
bandit -r . -f json -o bandit-results.json

示例7:数据管道安全审查

## 数据流安全

数据分类:

- [ ] 数据分类(公开、内部、机密、受限)
- [ ] 识别和标记PII/PHI
- [ ] 维护敏感数据清单
- [ ] 按分类定义数据保留策略

加密:

- [ ] 数据静态加密(AES-256或同等)
- [ ] 数据传输中加密(TLS 1.2+)
- [ ] 密钥管理通过KMS/保险库(非硬编码)
- [ ] 实现密钥轮换策略
- [ ] 每个管道阶段验证加密

访问控制:

- [ ] 基于角色的数据源访问
- [ ] 服务账户最小权限
- [ ] 数据访问记录和监控
- [ ] 敏感字段列级安全
- [ ] 适用时行级安全

数据验证:

- [ ] 摄入时模式验证
- [ ] 数据质量检查防止恶意输入
- [ ] 异常模式检测
- [ ] 自动PII检测和脱敏

合规:

- [ ] GDPR:实现删除权
- [ ] GDPR:应用数据最小化
- [ ] GDPR:欧盟主体同意跟踪
- [ ] HIPAA:与第三方处理者的业务伙伴协议
- [ ] CCPA:实现不销售机制
- [ ] 满足数据驻留要求

审计跟踪:

- [ ] 端到端数据谱系跟踪
- [ ] 访问日志不可变且保留
- [ ] 模式/权限变更跟踪
- [ ] 异常检测和警报

示例8:ML模型安全审计

## ML安全威胁

训练阶段:

- [ ] 训练数据来源验证
- [ ] 数据投毒检测(离群检测、统计测试)
- [ ] 训练环境隔离和强化
- [ ] 模型检查点加密和访问控制
- [ ] 训练日志消毒(无PII/秘密)

模型工件:

- [ ] 模型版本化和签名
- [ ] 模型注册表访问控制
- [ ] 扫描模型工件中嵌入的秘密
- [ ] 跟踪模型来源(数据、超参数、代码)

推理阶段:

- [ ] 输入验证和消毒
- [ ] 对抗性输入检测
- [ ] 推理API速率限制
- [ ] 输出过滤(防止数据泄漏)
- [ ] 推理日志消毒

攻击向量:

- [ ] 模型反转攻击:无法从模型重构训练数据
- [ ] 成员推理:无法确定数据是否在训练集中
- [ ] 模型提取:API速率限制防止模型窃取
- [ ] 规避攻击:测试对抗性鲁棒性
- [ ] 后门攻击:审计模型是否存在隐藏触发器

隐私保护:

- [ ] 应用差分隐私(如需要)
- [ ] 敏感数据使用联邦学习(如适用)
- [ ] 测试使用合成数据
- [ ] 从训练数据中移除或匿名化PII

监控:

- [ ] 模型漂移检测
- [ ] 推理异常检测
- [ ] 性能下降警报
- [ ] 安全事件日志记录

示例9:合规映射

## SOC2 Type II控制

CC6.1 逻辑和物理访问控制:

- [ ] 强制执行所有用户多因素认证
- [ ] 密码复杂性要求
- [ ] 失败尝试后账户锁定
- [ ] 每季度访问审查
- [ ] 特权访问监控

CC6.6 逻辑访问-加密:

- [ ] 数据静态加密(AES-256)
- [ ] 数据传输中加密(TLS 1.2+)
- [ ] 密钥管理文档化
- [ ] 审计中验证加密

CC7.2 系统监控-检测:

- [ ] 部署和配置SIEM
- [ ] 活跃入侵检测系统
- [ ] 日志聚合和保留
- [ ] 安全事件警报
- [ ] 事件响应演练

## PCI-DSS要求

要求3:保护存储的持卡人数据

- [ ] 持卡人数据加密(AES-256)
- [ ] 加密密钥安全管理
- [ ] 最小化卡数据保留
- [ ] 日志/UI中PAN脱敏(仅显示后4位)

要求6:开发安全系统

- [ ] 遵循安全编码指南
- [ ] 安全代码审查
- [ ] 部署Web应用程序防火墙
- [ ] 每季度漏洞扫描
- [ ] 每年渗透测试

要求10:跟踪和监控访问

- [ ] 所有持卡人数据访问审计跟踪
- [ ] 日志防修改
- [ ] 日志保留90天立即,1年存档
- [ ] 每日日志审查过程

## GDPR合规

数据主体权利:

- [ ] 访问权:导出用户数据API
- [ ] 更正权:更新机制
- [ ] 删除权:删除所有用户数据
- [ ] 可携带权:机器可读导出
- [ ] 反对权:退出机制

隐私设计:

- [ ] 应用数据最小化
- [ ] 强制目的限制
- [ ] 存储限制策略
- [ ] 完成隐私影响评估
- [ ] 指定数据保护官(如需要)

安全措施:

- [ ] 可能时假名化
- [ ] 敏感数据加密
- [ ] 定期安全测试
- [ ] 违规通知过程(<72小时)

示例10:漏洞严重性矩阵

## 严重性分类

关键(CVSS 9.0-10.0):

- 远程代码执行(RCE)
- SQL注入数据泄露
- 身份验证绕过
- 硬编码主凭证
- 无限制文件上传并执行

行动:立即修补,紧急变更过程

高(CVSS 7.0-8.9):

- 权限提升
- 管理面板中的跨站脚本(XSS)
- 不安全反序列化
- 敏感端点缺少身份验证
- 暴露的管理界面

行动:7天内修补

中(CVSS 4.0-6.9):

- 信息泄露(堆栈跟踪、版本)
- 非关键操作中的CSRF
- 缺少速率限制
- 弱密码策略
- 过时依赖项有CVE

行动:30天内修补

低(CVSS 0.1-3.9):

- 缺少安全头部
- 详细错误消息
- 启用目录列表
- 未限制HTTP方法
- 缺少Cookie安全标志

行动:下次发布修补

信息(CVSS 0.0):

- 安全最佳实践建议
- 强化机会
- 深度防御建议