SuperAPI AI 工具集

security-hardening

安全与审计

查看项目

更新于 10-15 07:49

技能介绍

一、用途 Security Hardening 用于指导安全加固、安全编码实践与基础设施防护。当用户咨询如何加固安全、编写安全代码、处理 OWASP 漏洞或进行基础设施防御时,可使用本技能。其核心框架为 OWASP Top 10(2021),逐项给出概览与可落地的缓解措施。

二、主要能力

  1. OWASP Top 10(2021)缓解措施
  • A01 访问控制失效:默认拒绝,对每个请求实施服务端授权;使用 RBAC 或 ABAC;禁用目录列表;记录重复的访问控制失败。
  • A02 加密失败:静态数据(AES-256-GCM)与传输中数据(TLS 1.2+)加密;使用 bcrypt、scrypt 或 Argon2id 哈希密码;按计划轮换加密密钥。
  • A03 注入:所有数据库访问使用参数化查询或预编译语句;服务端验证与净化每个输入;使用带参数化绑定的 ORM。
  • A04 不安全设计:设计阶段进行威胁建模(STRIDE、DREAD);应用最小权限、纵深防御、故障安全默认值。
  • A05 安全配置错误:移除生产环境中的默认凭据与调试端点;自动化配置审计。
  • A06 易受攻击与过时组件:维护 SBOM;在 CI 中运行依赖扫描;订阅安全公告。
  • A07 身份识别与认证失败:强制强密码(12+ 字符,检查泄露密码列表);特权账户要求 MFA;登录后重新生成会话 ID;设置较短的闲置超时。
  • A08 软件与数据完整性失败:通过锁文件与校验和验证依赖完整性;对提交与发布进行签名。
  • A09 安全日志与监控失败:记录认证尝试、授权失败与权限变更;集中日志;绝不记录密钥或 PII。
  • A10 服务端请求伪造(SSRF):对服务端请求使用 URL 允许列表;屏蔽私有 IP 范围;使用网络层控制。
  1. 输入验证 始终在服务端验证,客户端验证仅为用户便利而非安全控制。优先允许列表而非拒绝列表;对每个字段验证类型、长度、范围和格式;在输入到达业务逻辑或数据存储前尽早拒绝;验证前先规范化(解码 URL 编码、归一化 Unicode)。提供用户名与数值的服务端验证示例代码。

  2. 注入与 XSS 防护 SQL 注入:给出脆弱(字符串拼接)与安全(参数化查询)的 JS 与 Python 示例;说明 ORM 默认生成参数化查询,使用查询构建器而非原始 SQL,必要时仍使用参数化绑定并在开发中审计 ORM 查询。 XSS:对插入 HTML、JS、CSS 或 URL 上下文的所有动态内容进行输出编码,使用上下文感知编码;部署 CSP 头限制脚本、样式、图片等来源,避免 unsafe-inline 与 unsafe-eval,必要时为内联脚本使用 nonce 或 hash;对用户提供的 HTML(富文本编辑器)使用成熟库(DOMPurify、bleach),绝不自定义净化器,剥离 javascript: URI、事件处理属性与危险元素。

  3. CSRF 与会话 基于令牌:每个会话生成唯一不可预测的 CSRF 令牌,放入隐藏表单字段或自定义头;每个改变状态请求在服务端验证;登录时重新生成令牌。Cookie:会话 Cookie 至少设置 SameSite=Lax,无跨站导航需求时用 SameSite=Strict;与 CSRF 令牌组合实现纵深防御。

  4. 安全响应头与 CORS 对生产环境每个 HTTP 响应应用 CSP、Strict-Transport-Security、X-Frame-Options、X-Content-Type-Options、Referrer-Policy、Permissions-Policy,并给出示例值及其作用说明。CORS 默认最严格;不要将 Access-Control-Allow-Origin: * 与 Allow-Credentials: true 并用;允许列表具体来源并每次请求校验 Origin;限制方法与头。

  5. 速率限制与文件上传 对认证端点、密码重置与 API 路由应用速率限制,使用滑动窗口或令牌桶,返回 429 与 Retry-After;重复失败后锁定账户(如 10 分钟内 5 次失败锁定 15 分钟);按 IP、账户、API 密钥独立限流,阈值后可考虑 CAPTCHA。文件上传:通过魔数而非扩展名或客户端 MIME 验证类型;限制大小并允许列表扩展名;存储于 Web 根目录之外,重命名为随机 UUID,扫描恶意软件;下载设置 Content-Disposition: attachment,从独立域名提供,设置 nosniff。

  6. 密钥与环境变量 绝不提交 .env,首次提交前加入 .gitignore;提供 .env.example;生产环境限制权限(chmod 600)。使用专用密钥管理器(Vault、AWS/GCP/Azure 密钥管理),按计划与疑似泄露后轮换,绝不记录密钥;优先短期、限定范围的凭据。预提交钩子使用 git-secrets、TruffleHog 或 gitleaks,定期扫描完整仓库历史。

  7. 依赖、Docker 与 HTTPS 依赖:每次 CI 运行 npm audit、pip audit 等,高危/严重漏洞失败;启用 Dependabot 或 Renovate;使用 Snyk 或 Socket 分析传递依赖与供应链;提交锁文件并审查变更;生产固定版本,新增依赖前审计。Docker:使用最小基础镜像;非 root 用户运行;多阶段构建;绝不在镜像中嵌入密钥;使用 Trivy、Grype、Snyk Container 扫描镜像。HTTPS:强制 TLS 1.2 最低、优先 1.3;HTTP 301 重定向至 HTTPS;部署 HSTS 并提交预加载;使用强密码套件;自动续期证书;用 SSL Labs 测试。

  8. 日志、服务器加固与密钥管理 日志:记录认证成功/失败(用户名、IP、时间戳,不记录密码)、授权失败、输入验证失败、权限提升与管理员操作;使用结构化日志(JSON),不记录密钥与 PII;集中日志并设置保留策略;对异常模式告警。服务器加固:SSH 禁用密码认证,仅用密钥;禁用 root 登录;用 AllowUsers/AllowGroups 限制访问;启用 fail2ban;防火墙默认拒绝入站,只开放必要端口,管理端口限特定 IP 或 VPN。密钥管理:Vault 使用 AppRole、Kubernetes auth 或云 IAM 认证,使用动态密钥并启用审计日志;云密钥管理器用 IAM 限制访问并启用自动轮换;无密钥管理器时在部署时注入环境变量,绝不写入镜像或客户端代码。

三、使用方式 本技能以文档形式提供安全实践指南、代码示例、安全检查清单与工具列表。用户可按需查阅相应章节,对照安全检查清单逐项核对。文档未提供安装命令或调用方式。

四、适用场景 适用于 Web 应用与 API 的安全加固、安全编码规范制定、代码审计中的漏洞排查、CI/CD 安全扫描集成、容器与服务器加固、密钥管理与合规自查等场景。

五、限制 本技能为指南性质,不替代实际安全测试;具体效果取决于实现与部署环境。文档未提供收费标准、价格与平台信息。

六、工具列表 npm audit / pip audit / bundler-audit(依赖漏洞扫描);Snyk / Socket(供应链与传递依赖分析);Dependabot / Renovate(自动化依赖更新 PR);TruffleHog / gitleaks / git-secrets(仓库密钥扫描);Trivy / Grype(容器镜像漏洞扫描);OWASP ZAP / Burp Suite(动态应用安全测试);SonarQube(代码质量与安全静态分析);ClamAV(上传文件恶意软件扫描);fail2ban(SSH 等服务的暴力破解防护);SSL Labs(TLS 配置测试);HashiCorp Vault / AWS Secrets Manager(密钥管理)。

七、参考 OWASP Top 10、OWASP Cheat Sheet Series、CWE/SANS Top 25、NIST Cybersecurity Framework、Mozilla Web Security Guidelines、HSTS Preload List Submission。