名称: senior-secops
描述: 面向应用安全、漏洞管理、合规与安全开发实践的全面安全运维技能。涵盖安全扫描、漏洞评估、合规检查与安全自动化。适用于实施安全控制、进行安全审计、响应漏洞事件或确保合规要求时使用。
完整的安全运维工具包,涵盖漏洞管理、合规验证、安全编码实践与安全自动化。
在遇到以下术语时使用此技能:
| 类别 | 术语 |
|---|---|
| 漏洞管理 | CVE, CVSS, 漏洞扫描, 安全补丁, 依赖审计, npm audit, pip-audit |
| OWASP Top 10 | 注入, XSS, CSRF, 身份验证缺陷, 安全配置错误, 敏感数据泄露 |
| 合规 | SOC 2, PCI-DSS, HIPAA, GDPR, 合规审计, 安全控制, 访问控制 |
| 安全编码 | 输入验证, 输出编码, 参数化查询, 预处理语句, 数据净化 |
| 密钥管理 | API密钥, 密钥保险库, 环境变量, HashiCorp Vault, AWS Secrets Manager |
| 身份验证 | JWT, OAuth, MFA, 2FA, TOTP, 密码哈希, bcrypt, argon2, 会话管理 |
| 安全测试 | SAST, DAST, 渗透测试, 安全扫描, Snyk, Semgrep, CodeQL, Trivy |
| 事件响应 | 安全事件, 泄露通知, 事件响应, 取证, 遏制 |
| 网络安全 | TLS, HTTPS, HSTS, CSP, CORS, 安全头, 防火墙规则, WAF |
| 基础设施安全 | 容器安全, Kubernetes安全, IAM, 最小权限, 零信任 |
| 密码学 | 静态加密, 传输中加密, AES-256, RSA, 密钥管理, KMS |
| 监控 | 安全监控, SIEM, 审计日志, 入侵检测, 异常检测 |
扫描源代码中的安全漏洞,包括硬编码密钥、SQL注入、XSS、命令注入和路径遍历。
# 扫描项目中的安全问题
python scripts/security_scanner.py /path/to/project
# 按严重性过滤
python scripts/security_scanner.py /path/to/project --severity high
# 为CI/CD生成JSON输出
python scripts/security_scanner.py /path/to/project --json --output report.json
检测范围:
- 硬编码密钥(API密钥、密码、AWS凭证、GitHub令牌、私钥)
- SQL注入模式(字符串拼接、f-strings、模板字面量)
- XSS漏洞(innerHTML赋值、不安全的DOM操作、React不安全模式)
- 命令注入(shell=True、exec、eval与用户输入结合)
- 路径遍历(使用用户输入的文件操作)
扫描npm、Python和Go生态系统依赖中的已知CVE。
# 评估项目依赖
python scripts/vulnerability_assessor.py /path/to/project
# 仅关注严重/高风险
python scripts/vulnerability_assessor.py /path/to/project --severity high
# 导出漏洞报告
python scripts/vulnerability_assessor.py /path/to/project --json --output vulns.json
扫描文件:
- package.json 和 package-lock.json (npm)
- requirements.txt 和 pyproject.toml (Python)
- go.mod (Go)
输出内容:
- 附带CVSS评分的CVE ID
- 受影响的包版本
- 用于修复的固定版本
- 总体风险评分(0-100)
根据SOC 2、PCI-DSS、HIPAA和GDPR框架验证安全合规性。
# 检查所有框架
python scripts/compliance_checker.py /path/to/project
# 指定框架
python scripts/compliance_checker.py /path/to/project --framework soc2
python scripts/compliance_checker.py /path/to/project --framework pci-dss
python scripts/compliance_checker.py /path/to/project --framework hipaa
python scripts/compliance_checker.py /path/to/project --framework gdpr
# 导出合规报告
python scripts/compliance_checker.py /path/to/project --json --output compliance.json
验证项目:
- 访问控制实现
- 静态与传输中加密
- 审计日志记录
- 身份验证强度(MFA、密码哈希)
- 安全文档
- CI/CD安全控制
对代码库进行全面的安全评估。
# 步骤 1:扫描代码漏洞
python scripts/security_scanner.py . --severity medium
# 步骤 2:检查依赖漏洞
python scripts/vulnerability_assessor.py . --severity high
# 步骤 3:验证合规控制
python scripts/compliance_checker.py . --framework all
# 步骤 4:生成综合报告
python scripts/security_scanner.py . --json --output security.json
python scripts/vulnerability_assessor.py . --json --output vulns.json
python scripts/compliance_checker.py . --json --output compliance.json
将安全检查集成到部署流水线中。
# .github/workflows/security.yml
名称: 安全扫描
on:
pull_request:
branches: [main, develop]
jobs:
security-scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: 设置Python环境
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: 安全扫描器
run: python scripts/security_scanner.py . --severity high
- name: 漏洞评估
run: python scripts/vulnerability_assessor.py . --severity critical
- name: 合规检查
run: python scripts/compliance_checker.py . --framework soc2
响应影响应用程序的新CVE。
1. 评估 (0-2小时)
- 使用 vulnerability_assessor.py 识别受影响系统
- 检查CVE是否被主动利用
- 根据您的环境确定CVSS环境评分
2. 优先级排序
- 严重 (CVSS 9.0+, 面向互联网): 24小时内
- 高 (CVSS 7.0-8.9): 7天内
- 中 (CVSS 4.0-6.9): 30天内
- 低 (CVSS < 4.0): 90天内
3. 修复
- 将受影响的依赖更新至已修复版本
- 运行 security_scanner.py 验证修复
- 测试回归问题
- 部署并启用增强监控
4. 验证
- 重新运行 vulnerability_assessor.py
- 确认CVE不再被报告
- 记录修复操作
安全事件处理流程。
阶段 1:检测与识别 (0-15分钟)
- 接收并确认警报
- 初始严重性评估 (SEV-1 至 SEV-4)
- 指派事件指挥官
- 建立沟通渠道
阶段 2:遏制 (15-60分钟)
- 识别受影响系统
- 必要时进行网络隔离
- 若凭证泄露则进行轮换
- 保留证据(日志、内存转储)
阶段 3:根除 (1-4小时)
- 确定根本原因
- 移除恶意软件/后门
- 修补漏洞(运行 security_scanner.py)
- 加固系统
阶段 4:恢复 (4-24小时)
- 从干净备份恢复系统
- 将服务重新上线
- 启用增强监控
- 恢复用户访问
阶段 5:事后分析 (24-72小时)
- 记录事件时间线
- 完成根本原因分析
- 记录经验教训
- 实施预防措施
- 交付利益相关者报告
| 选项 | 描述 |
|---|---|
target |
要扫描的目录或文件 |
--severity, -s |
最低严重性:critical, high, medium, low |
--verbose, -v |
显示扫描过程中的文件 |
--json |
以JSON格式输出结果 |
--output, -o |
将结果写入文件 |
退出码:
- 0: 无严重/高风险发现
- 1: 存在高风险发现
- 2: 存在严重风险发现
| 选项 | 描述 |
|---|---|
target |
包含依赖文件的目录 |
--severity, -s |
最低严重性:critical, high, medium, low |
--verbose, -v |
显示扫描过程中的文件 |
--json |
以JSON格式输出结果 |
--output, -o |
将结果写入文件 |
退出码:
- 0: 无严重/高风险漏洞
- 1: 存在高风险漏洞
- 2: 存在严重风险漏洞
| 选项 | 描述 |
|---|---|
target |
要检查的目录 |
--framework, -f |
框架:soc2, pci-dss, hipaa, gdpr, all |
--verbose, -v |
显示运行过程中的检查项 |
--json |
以JSON格式输出结果 |
--output, -o |
将结果写入文件 |
退出码:
- 0: 合规 (90%+ 分数)
- 1: 不合规 (50-69% 分数)
- 2: 存在严重缺陷 (<50% 分数)
| 漏洞 | 防护措施 |
|---|---|
| A01: 访问控制缺陷 | 实施RBAC、默认拒绝、服务器端权限验证 |
| A02: 加密机制缺陷 | 使用TLS 1.2+、AES-256加密、安全的密钥管理 |
| A03: 注入 | 参数化查询、输入验证、输出转义 |
| A04: 不安全设计 | 威胁建模、安全设计模式、纵深防御 |
| A05: 安全配置错误 | 加固指南、移除默认配置、禁用未使用功能 |
| A06: 易受攻击组件 | 依赖扫描、自动更新、SBOM |
| A07: 身份验证缺陷 | MFA、速率限制、安全的密码存储 |
| A08: 数据完整性缺陷 | 代码签名、完整性检查、安全的CI/CD |
| A09: 安全日志记录缺陷 | 全面的审计日志、SIEM集成、告警 |
| A10: SSRF | URL验证、目标地址白名单、网络分段 |
## 输入验证
- [ ] 在服务器端验证所有输入
- [ ] 使用白名单而非黑名单
- [ ] 根据特定上下文(HTML、SQL、shell)进行数据净化
## 输出编码
- [ ] 为浏览器输出进行HTML编码
- [ ] 为URL进行URL编码
- [ ] 为脚本上下文进行JavaScript编码
## 身份验证
- [ ] 使用bcrypt/argon2处理密码
- [ ] 为敏感操作实施MFA
- [ ] 强制执行强密码策略
## 会话管理
- [ ] 生成安全的随机会话ID
- [ ] 设置HttpOnly、Secure、SameSite标志
- [ ] 实施会话超时(15分钟空闲)
## 错误处理
- [ ] 记录带上下文(不含密钥)的错误
- [ ] 向用户返回通用消息
- [ ] 生产环境中绝不暴露堆栈跟踪
## 密钥管理
- [ ] 使用环境变量或密钥管理器
- [ ] 切勿将密钥提交到版本控制
- [ ] 定期轮换凭证
| 控制项 | 类别 | 描述 |
|---|---|---|
| CC1 | 控制环境 | 安全策略、组织结构 |
| CC2 | 沟通 | 安全意识、文档 |
| CC3 | 风险评估 | 漏洞扫描、威胁建模 |
| CC6 | 逻辑访问 | 身份验证、授权、MFA |
| CC7 | 系统操作 | 监控、日志记录、事件响应 |
| CC8 | 变更管理 | CI/CD、代码审查、部署控制 |
| 要求 | 描述 |
|---|---|
| 要求 3 | 保护存储的持卡人数据(静态加密) |
| 要求 4 | 加密传输(TLS 1.2+) |
| 要求 6 | 安全开发(输入验证、安全编码) |
| 要求 8 | 强身份验证(MFA、密码策略) |
| 要求 10 | 审计日志记录(所有对持卡人数据的访问) |
| 要求 11 | 安全测试(SAST、DAST、渗透测试) |
| 保障措施 | 要求 |
|---|---|
| 164.312(a)(1) | 访问PHI的唯一用户标识 |
| 164.312(b) | PHI访问的审计跟踪 |
| 164.312(c)(1) | 数据完整性控制 |
| 164.312(d) | 个人/实体身份验证(MFA) |
| 164.312(e)(1) | 传输加密(TLS) |
| 条款 | 要求 |
|---|---|
| 第25条 | 隐私设计、数据最小化 |
| 第32条 | 安全措施、加密、假名化 |
| 第33条 | 泄露通知(72小时内) |
| 第17条 | 被遗忘权(数据删除) |
| 第20条 | 数据可携权(导出能力) |
# 错误:硬编码密钥
API_KEY = "sk-1234567890abcdef"
# 正确:环境变量
import os
API_KEY = os.environ.get("API_KEY")
# 更好:密钥管理器
from your_vault_client import get_secret
API_KEY = get_secret("api/key")
# 错误:字符串拼接
query = f"SELECT * FROM users WHERE id = {user_id}"
# 正确:参数化查询
cursor.execute("SELECT * FROM users WHERE id = %s", (user_id,))
// 错误:直接赋值innerHTML存在漏洞
// 正确:使用textContent(自动转义)
element.textContent = userInput;
// 正确:对HTML使用净化库
import DOMPurify from 'dompurify';
const safeHTML = DOMPurify.sanitize(userInput);
// 密码哈希
const bcrypt = require('bcrypt');
const SALT_ROUNDS = 12;
// 哈希密码
const hash = await bcrypt.hash(password, SALT_ROUNDS);
// 验证密码
const match = await bcrypt.compare(password, hash);
// Express.js 安全头
const helmet = require('helmet');
app.use(helmet());
// 或手动设置头:
app.use((req, res, next) => {
res.setHeader('X-Content-Type-Options', 'nosniff');
res.setHeader('X-Frame-Options', 'DENY');
res.setHeader('X-XSS-Protection', '1; mode=block');
res.setHeader('Strict-Transport-Security', 'max-age=31536000; includeSubDomains');
res.setHeader('Content-Security-Policy', "default-src 'self'");
next();
});
| 文档 | 描述 |
|---|---|
references/security_standards.md |
OWASP Top 10、安全编码、身份验证、API安全 |
references/vulnerability_management_guide.md |
CVE分类处理、CVSS评分、修复工作流程 |
references/compliance_requirements.md |
SOC 2、PCI-DSS、HIPAA、GDPR要求 |
安全扫描:
- Snyk (依赖扫描)
- Semgrep (SAST)
- CodeQL (代码分析)
- Trivy (容器扫描)
- OWASP ZAP (DAST)
密钥管理:
- HashiCorp Vault
- AWS Secrets Manager
- Azure Key Vault
- 1Password Secrets Automation
身份验证:
- bcrypt, argon2 (密码哈希)
- jsonwebtoken (JWT)
- passport.js (身份验证中间件)
- speakeasy (TOTP/MFA)
日志与监控:
- Winston, Pino (Node.js日志)
- Datadog, Splunk (SIEM)
- PagerDuty (告警)
合规:
- Vanta (SOC 2自动化)
- Drata (合规管理)
- AWS Config (配置合规)