安全检查清单技能包是一个基于 OWASP Top 10(2021)的应用安全检查框架,围绕十类常见安全风险给出风险说明与防护措施,并配合 Java / Spring 生态的代码示例,帮助开发者在编码与审查时逐项对照。
一、用途 用于在软件开发与代码审查过程中,对照 OWASP Top 10(2021)逐条排查安全隐患,覆盖访问控制、加密、注入、设计、配置、组件、身份验证、完整性、日志监控与 SSRF 等方向。
二、主要能力
A01:2021 – 访问控制失效:默认拒绝访问、明确授权,实现基于角色的访问控制(RBAC),禁用目录列表,记录访问控制失败并告警,限制 API 访问速率。示例使用 @PreAuthorize("hasRole('ADMIN')") 与 @GetMapping("/admin/users")。
A02:2021 – 加密机制失效:使用 HTTPS 传输敏感数据,静态数据加密(数据库、文件),禁用弱加密算法(MD5、SHA1),使用强密码哈希(bcrypt、Argon2),密钥管理(定期轮换、安全存储)。示例使用 BCryptPasswordEncoder 对密码加密。
A03:2021 – 注入:涵盖 SQL 注入、命令注入、LDAP 注入等。防护方式包括参数化查询、参数绑定(如 Criteria.where)、输入校验与转义(如正则匹配后再执行 ProcessBuilder)。
A04:2021 – 不安全设计:威胁建模、安全设计模式、最小权限原则、纵深防御、安全开发生命周期(SDLC)。
A05:2021 – 安全配置错误:最小化安装、禁用默认账户和密码、错误信息不暴露敏感信息、定期更新和打补丁、安全配置审查。示例中在生产配置关闭堆栈暴露(include-stacktrace: never)并禁用 devtools 重启。
A06:2021 – 易受攻击和过时的组件:移除未使用依赖、持续监控依赖漏洞、从官方源获取组件、使用签名验证组件完整性。工具示例包括 mvn dependency:tree、mvn versions:display-dependency-updates、mvn org.owasp:dependency-check-maven:check。
A07:2021 – 身份识别和身份验证失败:密码策略(最小长度 8 位、复杂度要求、检查弱密码、限制登录失败次数、多因素认证 MFA);会话管理示例通过 HttpSecurity 配置无状态会话、最大会话数与登录限制。
A08:2021 – 软件和数据完整性失败:代码签名、CI/CD 安全加固、依赖完整性验证、避免不安全的反序列化(示例对比 ObjectInputStream 反序列化与使用 ObjectMapper 读取 JSON)。
A09:2021 – 安全日志和监控失败:记录所有登录与访问控制失败、高价值交易审计日志、日志格式规范化、集中式日志管理、实时告警,并给出日志示例。
A10:2021 – 服务器端请求伪造(SSRF):禁止用户控制 URL、URL 白名单、禁用 HTTP 重定向、网络层隔离,示例通过 ALLOWED_HOSTS 校验 URL 主机。
三、额外安全措施 包含 XSS 防护(HtmlUtils.htmlEscape、Content-Security-Policy)、CSRF 防护(Spring Security 的 CookieCsrfTokenRepository)、点击劫持防护(X-Frame-Options: DENY)、常见安全响应头(X-Content-Type-Options、X-Frame-Options、X-XSS-Protection、Strict-Transport-Security、Content-Security-Policy),以及敏感信息检测(不应硬编码数据库密码、API 密钥、加密密钥、私钥证书、OAuth 密钥,正确做法是从环境变量读取)。
四、安全开发流程 按阶段组织:需求阶段(识别安全需求、威胁建模)、设计阶段(安全架构设计、安全设计评审)、编码阶段(安全编码规范、代码审查)、测试阶段(安全测试、渗透测试、漏洞扫描)、部署阶段(安全配置检查、最小权限部署)、运维阶段(安全监控、补丁管理、应急响应)。
五、工具推荐 静态分析:SpotBugs、SonarQube、Checkmarx;依赖检查:OWASP Dependency-Check、Snyk;动态测试:OWASP ZAP、Burp Suite;密钥扫描:git-secrets、TruffleHog。
六、检查清单 分为认证与授权、数据保护、输入验证、安全配置、日志监控、应急响应六组,其中应急响应流程为:评估影响(范围、严重程度)、隔离系统、修复漏洞(紧急补丁)、验证修复(安全测试)、总结复盘。
七、参考资源 OWASP Top 10、CWE Top 25、SANS Top 25、Spring Security Reference。
八、适用场景与限制 适用场景为后端开发与代码审查阶段的安全自查,尤其是 Java / Spring 项目。限制方面:该技能包的官方安装方式、授权与收费信息暂未提供;具体集成到工作流的方式也暂未提供。