SuperAPI AI 工具集

cyber-audit

安全与审计

查看项目

更新于 10-27 02:36

技能介绍

用途

cyber-audit 用于在用户询问“我的机器或项目是否受某个 CVE、数据泄露或软件包安全公告影响”时,执行只读的本地暴露检查,并产出一份结构化的本地审计报告。它适合需要只读排查、且必须留下审计痕迹的场景。

主要能力

  • 针对单个安全公告(CVE、泄露事件或包公告)进行本地暴露排查。
  • 从公告中提取检查范围:包名或二进制名、受影响版本、平台(macOS/Linux/Windows)、攻击向量(供应链、远程代码执行、本地、网络)。
  • 按公告类型挑选相关检查项并行执行,覆盖多种生态:
    • Node/npm 生态:npm、pnpm、yarn 全局路径,全局 node_modules,已安装副本,package.json、锁文件中的直接与间接依赖。
    • Python 生态:python3、pip、pipx、uv,pip 列表,requirements、pyproject、poetry.lock、uv.lock。
    • Homebrew 与系统二进制版本。
    • 运行进程与监听端口(用于 RCE 或网络类 CVE)。
    • LaunchAgents/LaunchDaemons 持久化与自启动项。
    • 影响暴露面的环境变量。
    • VS Code 与浏览器扩展。
  • 对上述未覆盖的生态(Rust cargo、Go modules、Ruby gems、Docker 镜像等)采用同样模式:全局安装路径、清单文件检索、运行进程。
  • 逐项记录具体结果(版本号、路径、“None”、“N/A”),并生成 Markdown 报告。

使用方式

  • 每次调用仅处理一个公告;结束时必须写出报告文件(即使结论为“未受影响”,审计痕迹仍然重要)。
  • 报告写入 ~/Documents/security-audits/YYYY-MM-DD-<short-kebab-slug>.md,日期取自环境头。
  • 最后用一句话告知用户结论,并给出报告路径。
  • 公告须由用户提供或已在本地可用;在无网络约束下,若无法进行实时权威查询,则标注版本时效未核实。
  • 默认只搜索用户授权的项目与安装根目录,不扫描整个主目录;使用文件名安全的 NUL 传输处理文件列表;不把不可信的包名当作 shell 语法;不输出可能含凭据的环境/配置行或进程参数,只报告脱敏后的路径、版本和布尔值;不为查询版本而调用不可信或疑似被入侵的二进制。

硬性规则

  • 只读:不安装、卸载、升级、重启,不发起网络请求,不修改 ~/Documents/security-audits/ 以外的文件。
  • 从不使用 sudo。
  • 若某项检查需要改动状态的命令,则跳过并在表格中标注“not checked (would require state change)”。

报告结构

报告包含:范围(涉及的 CVE 或公告)、审计结果表(检查项与结果)、结论、所采取动作(仅诊断,仅写出该报告,未改动其他文件、未安装或卸载包、未启停服务、未修改防火墙规则)、后续建议。结论措辞分为:

  • 未在检查范围内发现:在明确搜索的路径内不存在或已修补,并说明覆盖缺口;停止的进程本身不能证明不存在漏洞。
  • 受影响:存在易受攻击的版本,且攻击向量可达。
  • 暴露已缓解(资料在此处截断,后续定义暂未提供)。
  • 无法确定(报告模板中列出该选项)。

适用场景

  • 用户询问某 CVE、泄露或包公告是否影响其机器或项目。
  • 适合进行只读的本地安全暴露排查并需要书面报告的场景。

限制

  • 不联网核实公告时效;若无法实时查询则标注未核实。
  • 默认不扫描整个主目录,仅限用户授权范围。
  • 遇到需要状态变更的检查项会跳过。
  • 每次只处理一个公告。
  • “暴露已缓解”的完整定义在资料中未提供。