高级安全工程师
安全工程工具包,用于威胁建模、漏洞分析、安全架构设计和渗透测试。
目录
威胁建模工作流程
使用STRIDE方法论识别和分析安全威胁。
工作流程:进行威胁模型
- 定义系统范围和边界:
- 创建数据流图:
- 外部实体(用户、服务)
- 进程(应用组件)
- 数据存储(数据库、缓存)
- 数据流(APIs、网络连接)
- 对每个DFD元素应用STRIDE:
- 欺骗:身份可以伪造吗?
- 篡改:数据可以修改吗?
- 否认:行动可以否认吗?
- 信息披露:数据会泄露吗?
- 拒绝服务:可用性会受到影响吗?
- 提升权限:访问可以升级吗?
- 使用DREAD评分风险:
- 损害潜力(1-10)
- 可重现性(1-10)
- 可利用性(1-10)
- 受影响用户(1-10)
- 可发现性(1-10)
- 按风险评分优先威胁
- 为每个威胁定义缓解措施
- 在威胁模型报告中记录
- 验证: 所有DFD元素分析;STRIDE应用;威胁评分;缓解措施映射
STRIDE威胁类别
| 类别 |
描述 |
安全属性 |
缓解重点 |
| 欺骗 |
冒充用户或系统 |
认证 |
MFA、证书、强认证 |
| 篡改 |
修改数据或代码 |
完整性 |
签名、校验和、验证 |
| 否认 |
否认行动 |
非抵赖 |
审计日志、数字签名 |
| 信息披露 |
暴露数据 |
机密性 |
加密、访问控制 |
| 拒绝服务 |
破坏可用性 |
可用性 |
速率限制、冗余 |
| 提升权限 |
获取未经授权的访问 |
授权 |
RBAC、最小权限 |
STRIDE每个元素矩阵
| DFD元素 |
S |
T |
R |
I |
D |
E |
| 外部实体 |
X |
|
X |
|
|
|
| 进程 |
X |
X |
X |
X |
X |
X |
| 数据存储 |
|
X |
X |
X |
X |
|
| 数据流 |
|
X |
|
X |
X |
|
见:参考资料/威胁建模指南.md
安全架构工作流程
使用深度防御原则设计安全系统。
工作流程:设计安全架构
- 定义安全需求:
- 合规性需求(GDPR、HIPAA、PCI-DSS)
- 数据分类(公共、内部、机密、受限)
- 威胁模型输入
- 应用深度防御层:
- 边界:WAF、DDoS保护、速率限制
- 网络:分割、IDS/IPS、mTLS
- 主机:补丁、EDR、加固
- 应用:输入验证、认证、安全编码
- 数据:静态和传输中的加密
- 实施零信任原则:
- 明确验证(每个请求)
- 最小权限访问(JIT/JEA)
- 假设违规(分段、监控)
- 配置认证和授权:
- 身份提供者选择
- MFA要求
- RBAC/ABAC模型
- 设计加密策略:
- 计划安全监控:
- 记录架构决策
- 验证: 定义了深度防御层;应用了零信任;记录了加密策略;计划了监控
深度防御层
第一层:边界
WAF、DDoS缓解、DNS过滤、速率限制
第二层:网络
分割、IDS/IPS、网络监控、VPN、mTLS
第三层:主机
终端保护、操作系统加固、补丁、日志记录
第四层:应用
输入验证、认证、安全编码、SAST
第五层:数据
静态/传输加密、访问控制、DLP、备份
认证模式选择
| 用例 |
推荐模式 |
| Web应用 |
OAuth 2.0 + PKCE with OIDC |
| API认证 |
JWT with short expiration + refresh tokens |
| 服务到服务 |
mTLS with certificate rotation |
| CLI/Automation |
API keys with IP allowlisting |
| 高安全性 |
FIDO2/WebAuthn硬件密钥 |
见:参考资料/安全架构模式.md
漏洞评估工作流程
识别和修复应用程序中的安全漏洞。
工作流程:进行漏洞评估
- 定义评估范围:
- 范围内的系统和应用程序
- 测试方法(黑盒、灰盒、白盒)
- 规则的参与
- 收集信息:
- 执行自动扫描:
- SAST(静态分析)
- DAST(动态分析)
- 依赖扫描
- 秘密检测
- 进行手动测试:
- 按严重程度分类结果:
- 严重:立即利用风险
- 高:重大影响,更容易利用
- 中等:中等影响或难度
- 低:次要影响
- 制定修复计划:
- 验证修复并记录
- 验证: 范围定义;自动和手动测试完成;结果分类;修复跟踪
OWASP Top 10映射
| 排名 |
漏洞 |
测试方法 |
| A01 |
破坏访问控制 |
手动IDOR测试,授权检查 |
| A02 |
加密失败 |
算法审查,密钥管理审计 |
| A03 |
注入 |
SAST +手动有效负载测试 |
| A04 |
不安全设计 |
威胁建模,架构审查 |
| A05 |
安全配置错误 |
配置审计,CIS基准 |
| A06 |
易受攻击的组件 |
依赖扫描,CVE监控 |
| A07 |
认证失败 |
密码策略,会话管理审查 |
| A08 |
软件/数据完整性 |
CI/CD安全,代码签名验证 |
| A09 |
日志失败 |
日志审查,SIEM配置检查 |
| A10 |
SSRF |
手动URL操作测试 |
漏洞严重性矩阵
| 影响/可利用性 |
容易 |
中等 |
困难 |
| 严重 |
严重 |
严重 |
高 |
| 高 |
严重 |
高 |
中等 |
| 中等 |
高 |
中等 |
低 |
| 低 |
中等 |
低 |
低 |
安全代码审查工作流程
在部署前审查代码以查找安全漏洞。
工作流程:进行安全代码审查
- 确定审查范围:
- 更改的文件和函数
- 安全敏感区域(认证、加密、输入处理)
- 第三方集成
- 运行自动分析:
- SAST工具(Semgrep、CodeQL、Bandit)
- 秘密扫描
- 依赖漏洞检查
- 审查认证代码:
- 审查授权代码:
- 审查数据处理:
- 审查加密代码:
- 记录发现的严重程度
- 验证: 自动扫描通过;认证/授权审查;数据处理检查;加密验证;发现记录
安全代码审查清单
| 类别 |
检查 |
风险 |
| 输入验证 |
验证并清理所有用户输入 |
注入 |
| 输出编码 |
应用上下文适当的编码 |
XSS |
| 认证 |
使用Argon2/bcrypt哈希密码 |
凭证盗窃 |
| 会话 |
设置安全的cookie标志(HttpOnly、Secure、SameSite) |
会话劫持 |
| 授权 |
在所有端点进行服务器端权限检查 |
权限提升 |
| SQL |
仅使用参数化查询 |
SQL注入 |
| 文件访问 |
拒绝路径遍历序列 |
路径遍历 |
| 秘密 |
没有硬编码的凭证或密钥 |
信息披露 |
| 依赖 |
更新已知漏洞包 |
供应链 |
| 日志 |
不记录敏感数据 |
信息披露 |
安全与不安全模式
| 模式 |
问题 |
安全替代品 |
| SQL字符串格式化 |
SQL注入 |
使用带有占位符的参数化查询 |
| 构建Shell命令 |
命令注入 |
使用子进程与参数列表,无shell |
| 路径连接 |
路径遍历 |
验证和规范化路径 |
| MD5/SHA1用于密码 |
弱哈希 |
使用Argon2id或bcrypt |
| Math.random用于令牌 |
可预测值 |
使用crypto.getRandomValues |
事件响应工作流程
响应并包含安全事件。
工作流程:处理安全事件
- 识别和分类:
- 验证事件是真实的
- 评估初始范围和严重性
- 激活事件响应团队
- 包含威胁:
- 隔离受影响的系统
- 阻止恶意IP/账户
- 禁用被泄露的凭证
- 根除根本原因:
- 恢复操作:
- 进行事后分析:
- 实施改进:
- 记录和报告
- 验证: 威胁被包含;根除根本原因;系统恢复;事后分析完成;实施改进
事件严重性级别
| 级别 |
描述 |
响应时间 |
升级 |
| P1 - 严重 |
活跃违规,数据泄露 |
立即 |
CISO、法律、高管 |
| P2 - 高 |
确认违规,已包含 |
1小时 |
安全领导、IT主管 |
| P3 - 中等 |
潜在违规,正在调查 |
4小时 |
安全团队 |
| P4 - 低 |
可疑活动,低影响 |
24小时 |
值班工程师 |
事件响应清单
| 阶段 |
行动 |
| 识别 |
验证警报,评估范围,确定严重性 |
| 包含 |
隔离系统,保留证据,阻止访问 |
| 根除 |
移除威胁,修补漏洞,重置凭证 |
| 恢复 |
恢复服务,验证完整性,增加监控 |
| 经验教训 |
文档时间线,识别差距,更新程序 |
安全工具参考
推荐安全工具
| 类别 |
工具 |
| SAST |
Semgrep、CodeQL、Bandit(Python)、ESLint安全插件 |
| DAST |
OWASP ZAP、Burp Suite、Nikto |
| 依赖扫描 |
Snyk、Dependabot、npm审计、pip-audit |
| 秘密检测 |
GitLeaks、TruffleHog、detect-secrets |
| 容器安全 |
Trivy、Clair、Anchore |
| 基础设施 |
Checkov、tfsec、ScoutSuite |
| 网络 |
Wireshark、Nmap、Masscan |
| 渗透 |
Metasploit、sqlmap、Burp Suite Pro |
加密算法选择
| 用例 |
算法 |
密钥大小 |
| 对称加密 |
AES-256-GCM |
256位 |
| 密码哈希 |
Argon2id |
N/A(使用默认值) |
| 消息认证 |
HMAC-SHA256 |
256位 |
| 数字签名 |
Ed25519 |
256位 |
| 密钥交换 |
X25519 |
256位 |
| TLS |
TLS 1.3 |
N/A |
见:参考资料/加密实现.md
工具和参考资料
脚本
威胁模型器功能:
- 对任何系统组件进行STRIDE分析
- DREAD风险评分
- 缓解建议
- JSON和文本输出格式
- 交互模式进行引导分析
秘密扫描器功能:
- 检测AWS、GCP、Azure凭证
- 查找API密钥和令牌(GitHub、Slack、Stripe)
- 识别私钥和密码
- 支持20+秘密模式
- CI/CD集成就绪
参考资料
安全标准参考
合规框架
| 框架 |
焦点 |
适用 |
| OWASP ASVS |
应用安全 |
Web应用 |
| CIS基准 |
系统加固 |
服务器、容器、云 |
| NIST CSF |
风险管理 |
企业安全项目 |
| PCI-DSS |
支付卡数据 |
支付处理 |
| HIPAA |
医疗保健数据 |
医疗保健应用 |
| SOC 2 |
服务组织控制 |
SaaS提供商 |
安全头文件清单
| 头文件 |
推荐值 |
| Content-Security-Policy |
default-src self; script-src self |
| X-Frame-Options |
DENY |
| X-Content-Type-Options |
nosniff |
| Strict-Transport-Security |
max-age=31536000; includeSubDomains |
| Referrer-Policy |
strict-origin-when-cross-origin |
| Permissions-Policy |
geolocation=(), microphone=(), camera=() |
相关技能