用途
JFrog Security(Xray)技能用于让 AI 智能体通过 API 操作 JFrog 安全平台,完成软件供应链安全相关的扫描、策略管理、违规处理、报告生成与运行时监控等任务。它面向需要在开发与交付流程中集成 JFrog Xray 能力的场景。
认证与前置检查
所有请求都需要访问令牌,通过请求头传递:
Authorization: Bearer $JFROG_ACCESS_TOKEN
基础地址:
- Xray:https://$JFROG_URL/xray/api/...
- Runtime:https://$JFROG_URL/runtime/api/...
API 传输优先使用 jf api(JFrog CLI 2.100.0+),路径仅写 URL 部分,认证信息从 jf config 读取。当 CLI 缺失或版本低于 2.100.0 时,回退到使用 curl 配合 $JFROG_URL 与 bearer token 的方式。
需要认证时,按 login-flow.md 流程解析当前 JFrog 环境。jf CLI 为必需项,缺失时会自动安装。智能体通过 jf config show 检查已保存的凭据;若存在多个环境会询问使用哪一个;若不存在,则引导完成网页登录流程并通过 jf config add 保存凭据。
操作前先做预检:GET $JFROG_URL/xray/api/v1/system/ping(预期返回 HTTP 200)。若不可用,告知用户该实例未部署 Xray 并停止。
核心概念
扫描架构
JFrog Security 覆盖整个 SDLC:
- IDE:通过 JFrog 插件在开发者 IDE 中实时扫描
- Pull Request:合并前扫描 PR 制品(Frogbot)
- Build/Binary:构建发布后通过 Xray watches 扫描
- 持续监控:对所有已索引仓库持续扫描新出现的 CVE
关键实体
- Policy:定义何为违规(安全、许可证或运营风险)的规则集合
- Watch:将策略关联到资源(仓库、构建、发布包)以触发扫描
- Violation:扫描中发现的策略违规
- Component:Xray 识别的软件包(名称 + 版本 + 类型)
- Ignore Rule:用于抑制特定违规的例外规则
风险类型
- 恶意包:JFrog 威胁研究识别的已知恶意包
- 软件漏洞:带严重级别与 CVSS 评分的 CVE
- 许可证风险:不合规或传染性许可证(GPL、AGPL 等)
- 运营风险:生命周期终止、维护活跃度低、高风险代码模式
主要 API 操作
扫描制品
POST $JFROG_URL/xray/api/v1/summary/artifact,请求体包含 paths 数组,返回漏洞与许可证摘要。
扫描构建
POST $JFROG_URL/xray/api/v1/summary/build,请求体包含 build_name 与 build_number。
策略
- 创建安全策略:POST $JFROG_URL/xray/api/v2/policies,可定义规则、最低严重级别、阻止下载、使构建失败等动作
- 列出策略:GET $JFROG_URL/xray/api/v2/policies
Watch
POST $JFROG_URL/xray/api/v2/watches,包含 general_data、project_resources(资源类型与名称)以及 assigned_policies。
违规
POST $JFROG_URL/xray/api/v1/violations,支持按 watch_name、min_severity、type 过滤,并支持分页(limit、offset)。
忽略规则
POST $JFROG_URL/xray/api/v1/ignore_rules,可填写备注、漏洞列表与到期日期。
报告
POST $JFROG_URL/xray/api/v1/reports/vulnerabilities,可指定报告名称、类型、资源(仓库)与过滤条件(如最低严重级别)。
高级安全(JAS)
需要 Advanced Security 订阅,启用后提供:
- 上下文分析:分析漏洞在代码中是否真正可达,可减少约 80% 噪音
- 密钥检测:扫描代码与二进制中的泄露凭据、API 密钥、令牌
- SAST:源代码漏洞的静态应用安全测试
- IaC 扫描:检查 Terraform、CloudFormation、Kubernetes YAML 中的错误配置
- 应用配置暴露:检测不安全的应用程序配置
这些功能在 Xray 系统级别启用,并自动应用于被 watch 的资源。
运行时安全
监控 Kubernetes 中运行的容器以发现实时威胁。概念包括:
- Runtime Sensor:部署在 K8s 集群中的轻量代理,监控容器行为
- Runtime Controller:在部署前验证镜像的准入控制器
- 镜像完整性:验证镜像未被篡改
- 包谱系:将运行中的二进制追溯回其源构建
Runtime REST API
基础地址:https://$JFROG_URL/runtime/api/v1/
- POST /clusters:列出集群(分页)
- GET /clusters/{id}:获取集群详情
- GET /images/tags:列出镜像标签
- POST /workloads:列出工作负载
- GET /registration-token:获取注册令牌
- POST /registration-token/revoke:撤销并创建新令牌
文档:https://jfrog.com/help/r/jfrog-security-user-guide/products/runtime/apis
参考文件与相关模式
参考文件:
- xray-api-reference.md:完整的 Xray REST API 端点目录
- scanning-guide.md:分步扫描工作流指南
相关模式:
- xray-security:覆盖 SDLC 的 SCA 扫描与策略
- jas-security:带上下文分析的高级安全
- run-time-security:Kubernetes 运行时监控
- curation-security:下载前包验证
完成操作后,查看 skills/jfrog-patterns/flow-suggestions.md 的 Security Actions 部分以获取流程上下文并提供下一步建议。
文档
- Xray REST APIs
- Xray User Guide
- Advanced Security
- Runtime Security
- Runtime APIs
限制
高级安全(JAS)功能需要 Advanced Security 订阅。Xray 未部署的实例无法使用相关操作。API 传输优先使用 JFrog CLI 2.100.0+,低版本或缺失时回退到 curl。