--- title: "Security Engineering Concepts" type: concept tags: [security, application-security] sources: [[engineering-security-engineer]] last_updated: 2026-05-01 --- ## Aliases - AppSec - 安全工程概念集 ## Threat Modeling **定义**:系统化识别、量化并优先排序系统潜在安全威胁的结构化方法论。通过回答"系统可能被如何攻击"前置发现风险,而非事后补救。 **核心框架 — STRIDE**(微软提出,六维度威胁分析): | 维度 | 威胁描述 | 典型缓解措施 | |------|---------|------------| | **S**poofing(欺骗) | 冒充他人身份 | MFA、Token binding、账户锁定 | | **T**ampering(篡改) | 修改数据或代码 | HMAC 签名、输入验证、幂等键 | | **R**epudiation(抵赖) | 否认执行过某操作 | 不可变审计日志、防篡改存储 | | **I**nfo Disclosure(信息泄露) | 暴露敏感数据 | 加密、通用错误响应、访问控制 | | **D**oS(拒绝服务) | 使服务不可用 | 限流、WAF、熔断器、请求大小限制 | | **E**levation of Privilege(权限提升) | 越权执行操作 | RBAC(服务端强制执行)、会话隔离 | **工作流**:架构映射 → 数据流识别 → 信任边界编目 → STRIDE 逐组件分析 → 风险优先级排序(可能性 × 影响) --- ## Defense in Depth(防御深度) **定义**:不依赖单一保护层,假设任何一层均可能被绕过,通过多层独立控制叠加实现纵深防护的安全策略。 **标准叠加链**: ``` Internet → WAF → Rate Limiting → Input Validation → Parameterized Queries → Output Encoding → CSP ``` **核心原则**: - 每层独立有效(单层失效不导致整体失效) - 多层协同(纵深而非重复) - 纵深优于广度(10 层各有差异的防御 > 3 层同类重复) **对比 Default Deny**:Default Deny 是每层内部的策略选择(默认阻止一切、仅放行白名单),Defense in Depth 是整体架构策略(多层独立防御叠加)。 --- ## Zero Trust Architecture(零信任架构) **定义**:永不隐式信任、始终验证每次访问请求的架构范式,无论访问来源是内网还是外网。 **三大核心原则**: 1. **最小权限访问**(Least Privilege):仅授予完成任务所需的最低权限 2. **微隔离**(Microsegmentation):网络级别细分隔离,防止横向移动 3. **持续验证**(Continuous Verification):每次请求均验证身份和权限 **实现组件**: - 身份认证:OAuth 2.0 + PKCE、OpenID Connect、Passkeys/WebAuthn、MFA - 授权模型:RBAC / ABAC / ReBAC(按需选型) - 网络层:mTLS、服务网格策略(Istio/Linkerd) - 密钥管理:HashiCorp Vault / AWS Secrets Manager / SOPS(带轮换策略) --- ## CVSS 3.1(通用漏洞评分系统) **定义**:标准化漏洞严重等级评估框架,0.0–10.0 分制量化漏洞威胁程度。 | 等级 | 分数区间 | 典型场景 | |------|---------|---------| | **Critical** | 9.0–10.0 | RCE、认证绕过、SQL注入(可访问数据) | | **High** | 7.0–8.9 | 存储型XSS、IDOR(敏感数据暴露)、权限提升 | | **Medium** | 4.0–6.9 | CSRF(状态变更操作)、缺少安全响应头 | | **Low** | 0.1–3.9 | 非敏感页面点击劫持、轻度信息泄露 | | **Informational** | 0.0 | 最佳实践偏差、防御深度改进建议 | **Security Engineer 的严重等级判定**:Critical > High > Medium > Low > Informational,每级必须附可利用性证明和具体修复代码。 --- ## OWASP Top 10(2021+) **定义**:Open Web Application Security Project 发布的 Web 应用十大最关键安全风险清单,是代码审查和漏洞评估的基准清单。 | 排名 | 风险名称 | 核心问题 | |------|---------|---------| | A01 | Broken Access Control(访问控制失效) | 授权检查缺失、IDOR、批量赋值 | | A02 | Cryptographic Failures(加密失败) | 敏感数据暴露、弱加密/哈希 | | A03 | Injection(注入) | SQLi、NoSQLi、CMDi、模板注入 | | A04 | Insecure Design(不安全设计) | 缺失安全架构、威胁建模不足 | | A05 | Security Misconfiguration(安全配置错误) | 错误配置、默认凭据、未修复组件 | | A06 | Vulnerable Components(易受攻击组件) | 使用已知漏洞组件、组件停止维护 | | A07 | Auth Failures(身份认证失效) | 会话管理缺陷、凭据填充 | | A08 | Data Integrity Failures(数据完整性失效) | CI/CD 供应链攻击、未验证更新 | | A09 | Logging & Monitoring Failures(日志监控缺失) | 未记录安全事件、无法检测入侵 | | A10 | SSRF(服务器端请求伪造) | URL 验证缺失导致内网探测 | --- ## Supply Chain Security(供应链安全) **定义**:针对软件供应链(依赖项、CI/CD 管道、第三方组件)的系统性安全防护,覆盖从引入到部署的全链条。 **核心实践**: 1. **SBOM(软件物料清单)**:生成并监控所有直接和传递依赖的清单 2. **CVE 审计**:持续扫描第三方包与已知漏洞数据库的匹配 3. **包完整性校验**:校验和、签名、lock 文件验证,防止注入 4. **依赖混淆攻击检测**:同名恶意包检测(typosquatting / dependency confusion) 5. **可复现构建**:确保构建结果可被独立验证,防供应链投毒 **推荐工具**:Trivy(容器/依赖扫描)、Semgrep(SAST)、Gitleaks(密钥检测) --- ## Secrets Management(密钥管理) **定义**:敏感凭据(API 密钥、数据库密码、TLS 证书、加密密钥)的全生命周期安全管理,覆盖创建、存储、轮换、审计和销毁。 **核心原则**: - 永不硬编码(禁止源码/配置文件中的明文凭据) - 永不日志记录(日志中禁止出现密钥内容) - 永不客户端暴露(禁止前端/移动端直接持有密钥) - 必须轮换策略(定期自动轮换 + 紧急撤销能力) **推荐方案**: - HashiCorp Vault:企业级,支持动态密钥、PKI、加密即服务 - AWS Secrets Manager:AWS 原生,支持自动轮换(与 RDS/Redshift 原生集成) - SOPS(Secrets OPerationS):YAML/JSON 加密,支持 Age/GPG,云厂商 KMS 集成 --- ## Related Concepts - [[engineering-security-engineer]]:以上所有概念的来源 Agent Personality - [[engineering-threat-detection-engineer]]:威胁检测 Engineer(检测层),与预防层互补 - [[engineering-backend-architect]]:共享"安全优先"原则,侧重系统架构视角 - [[OWASP Top 10]]:Web 应用安全的基准清单 - [[Zero Trust Architecture]]:零信任是安全架构设计的核心理念