应用安全测试(AppSec)
适用场景与定位
这是处理“让我的应用变安全”这类请求的入口技能,适用于目标尚未收敛为单个 URL 或单个仓库的情况。它的任务不是把所有测试都跑到最深,而是为每类资产选择合适的测试,执行后再产出一份统一的排序计划。
前置条件与授权
安装、LLM 配置、全部 CLI 参数以及托管云路径位于 penetration-testing-with-strix 技能中;如果 strix --version 执行失败,应先阅读该技能。若既无 Docker 也无 LLM 密钥,同一二进制可驱动托管平台:先 strix cloud login,再 strix cloud scans start …(细节见 managed-pentesting-with-strix)。
只能测试用户拥有或已获授权测试的资产。首次运行前必须确认授权,并优先使用预发布环境而非生产环境,因为智能体会发送真实利用载荷,可能改动数据。
第一步:梳理资产
在扫描前先询问(或从仓库读取)并记录答案:
- 源码:单个仓库、单体仓库,还是多个服务?使用哪些语言与框架?
- 运行环境:是否有预发布部署?是否有公开生产站点?还是只有本地开发服务器?
- API:REST、GraphQL 还是 gRPC?是否有 OpenAPI/GraphQL 模式定义?
- 认证:能否拿到两个不同租户的测试账号?多数高影响漏洞需要它们。
- 约束:超范围路径、是否允许触碰生产、预算与时间上限。
如果没有预发布环境且禁止触碰生产,应尽早说明。仅做代码审查仍有价值,但无法证明漏洞在真实应用中的可利用性。
第二步:为每类资产选择测试
- 仓库或工作树:find-security-vulnerabilities-in-code
- 运行中的 Web 应用或预发布站点:web-app-penetration-testing
- REST/GraphQL/gRPC API:api-security-testing
- 按 OWASP 分类的评估:owasp-top-10-testing
- 每个拉取请求持续执行:ci-security-scanning-with-strix
- 无 Docker、无 LLM 密钥,或需要审计方认可的报告:managed-pentesting-with-strix
这些技能各自包含参数、凭据处理和结果解读细节,此处不重复。
首次评估的建议顺序:
- 审查代码。这是成本最低的一轮,并可梳理授权模型。
- 带凭据渗透测试预发布环境,并把仓库作为第二个目标传入,使智能体保留源码上下文。
- 加入 CI 扫描,使后续回归无需再次手工执行即可被发现。
一次只运行一类资产,读完每份报告再开始下一项。代码审查的发现会让实机运行更精准。
第三步:汇总为一份计划
各次运行的发现按 strix_runs/<run>/ 分目录产出。将其合并为单一列表,并按已验证的影响排序,而不是按扫描器严重级别排序:
- 已验证、无需认证即可触达的利用。
- 已验证的跨租户或权限提升问题。
- 已验证、需要认证账号的问题。
- 未证实的观察项(配置、依赖、加固建议)——需明确标注,绝不能当作已确认漏洞呈现。
去重:同一根因常同时出现在代码审查与实机渗透测试中。
第四步:如实说明覆盖范围
明确说明哪些没有测试:没有预发布环境的资产、黑盒运行无法触及的类别(日志与告警、供应链完整性、不安全设计),以及任何在完成前达到预算或轮次上限的运行。对每次运行,对照 --max-budget 检查 run.json 的 status 与 cost。被截断扫描得到的空结果集并不等于健康证明。
之后使用 fix-security-vulnerabilities-with-strix 进行修复,它会针对每个修复重新运行 Strix,以证明漏洞不再可利用。