SuperAPI AI 工具集

security-first-2025

安全与审计

查看项目

更新于 10-15 13:52

技能介绍

用途

该技能面向 2025 年的安全优先 Bash 脚本编写,核心是强制输入校验与零信任原则。资料指出,2025 年的安全评估显示,超过 60% 被利用的自动化工具缺乏足够的输入净化。该技能用于在审查或编写安全敏感的 Bash 脚本时主动激活,提供一套必须遵循的安全模式。

主要能力

技能围绕以下安全模式展开:

  1. 输入校验(不可妥协):每个输入在使用前必须校验,包括非空检查、正则模式匹配和最大长度限制。示例中提供了 validate_input 函数,接受输入、模式和最大长度参数。

  2. 命令注入防护:禁止对用户输入使用 eval 或动态执行;使用 -- 分隔符、数组传参,或先校验再使用。

  3. 路径穿越防护:提供 sanitize_path 去除 ../、/../ 和前导 /,以及 is_safe_path 通过 readlink -f 解析绝对路径并校验是否位于允许目录内。

  4. 安全临时文件:禁止使用可预测的临时文件名,改用 mktemp,设置 chmod 600 或 chmod 700,并通过 trap 注册自动清理。

  5. 密钥管理:禁止硬编码密钥或通过环境变量暴露密钥;从安全文件读取、使用云密钥管理器(如 AWS Secrets Manager),或用 read -rsp 无回显提示输入。

  6. 权限管理:遵循最小权限原则,拒绝以 root 运行,必要时降权,最小化 sudo 范围。

  7. 环境变量清理:取消 IFS、CDPATH、GLOBIGNORE,设置安全的 PATH 和 IFS,并提供 exec_clean 在干净环境中执行命令。

  8. 绝对路径使用:使用绝对路径防止 PATH 劫持,或用 command -v 验证命令位置。

  9. 历史文件保护:对凭据操作禁用历史记录,如设置 HISTFILE=/dev/null 或 HISTIGNORE,使用后清除变量。

使用方式

技能提供安全检查清单,要求每个脚本通过输入校验、命令安全、文件操作、密钥、权限、错误处理等检查项。同时提供自动化安全扫描方式:

  • ShellCheck 集成:通过 GitHub Actions 工作流运行 shellcheck --severity=error --enable=all。
  • 自定义安全 lint:提供 security-lint.sh 脚本,检查 eval、硬编码密钥、可预测临时文件、未加引号变量等问题。
  • 安全脚本模板:提供完整的 2025 安全脚本模板,包含 set -euo pipefail、拒绝 root、清理环境、安全临时文件、输入校验、路径净化等。

适用场景

适用于审查或编写安全敏感的 Bash 脚本,尤其是涉及用户输入、文件路径、临时文件、密钥、权限提升等操作的自动化脚本。资料还提及合规标准,包括 CIS Benchmarks、NIST 指南(NIST SP 800-53)和 OWASP Top 10(A03 注入、A01 访问控制失效、A02 加密失败)。

限制

资料未提供该技能的安装命令、具体平台支持范围、收费或价格信息,这些内容暂未提供。资料中关于 Windows 文件路径的要求(在 Windows 上使用 Edit 或 Write 工具时必须使用反斜杠)属于该技能附带的通用指南,并非 Bash 脚本安全模式本身。