使用策略规则触发违规
策略包含用户定义的规则,允许您通过设置许可证或安全标准来触发特定漏洞或许可证违规,并根据您的需要设置相应的自动操作集。规则按照它们在策略上的规则列表中的升序进行处理。如果满足某个规则,则列表中的后续规则将不被应用。
Xray支持以下策略类型:
安全规则
安全规则允许您围绕安全漏洞创建一组规则。有两个可能的标准:
最小的严重性(Minor, Major, Critical, All): JFrog漏洞数据库中最小的安全漏洞严重程度。如果工件或构建包含具有所选严重性或更高级别的漏洞,则规则将满足条件,自动操作将被执行,策略将停止处理。
CVSS分数(1-10):应用于规则的CVSS评分范围。这用于细粒度控制,而不是使用预定义的严重性。评分范围基于CVSS v3评分,CVSS v2评分为CVSS v3评分。
- 仅当有固定版本可用时才生成违规:对于不包含固定版本的问题,x射线不会生成违规。如果以后有一个固定的版本可用,则会生成冲突。
许可规则
许可证规则允许您围绕许可证遵从性创建一组规则。有三个可能的标准:
允许许可:允许的OSS许可证列表五月连接到组件。如果某个组件的OSS许可证在指定的Allow List之外,则该规则将满足条件,生成一个违规项,自动执行动作,策略将停止处理。
禁止许可:指定OSS许可的阻断列表可能不连接到组件。如果组件指定了任何OSS许可证,则规则将满足条件,将生成一个违规行为,将执行自动操作,并且策略将停止处理。
禁止使用未知许可证:无法确定license的组件需要的行为。如果发现具有未知许可证的组件,将触发违规。
策略违反自动处理
动作决定对检测到的策略违反的自动响应。您可以在每个策略规则中定义一个或多个操作。行动包括以下内容:
产生违例(轻微,严重,严重):满足条件时产生的违规行为的严重程度。
通知电子邮件:此操作允许您指定电子邮件地址,当触发违规时,Xray应该向其发送有关违规的电子邮件消息。为此,您需要在Xray中配置一个邮件服务器。
通知手表的收件人:此操作允许您在触发违规时向所有手表收件人发送电子邮件。
通知部署人员:此操作允许您在触发违规时向部署组件的用户发送一封电子邮件。
- 创建Jira Ticket:这个动作在Policy规则中创建Jira票据
触发Webhook:这个动作允许你指定你在Xray中配置的webhook,当违规被触发时应该调用它(见下面的负载)。
块下载:此操作允许您指定工件应该被阻止下载,并允许您选择以下选项之一:
- 阻止下载:设置时,Artifactory将阻止下载符合此手表的工件过滤器和严重性过滤器规范的工件。
- 阻止未扫描:设置时,Artifactory将阻止符合此手表的Artifact Filter规格的工件的下载,但尚未扫描或x射线数据由于保留策略已被删除。有关x射线数据保留的更多信息,请参见索引x射线资源2022世界杯阿根廷预选赛赛程.
- 块发布包分发:此操作允许您指定如果发布包符合策略条件规则,则应该阻止下载。
失败的构建:此操作允许您指定,如果CI服务器请求扫描构建,而Watch触发了一个违规,Xray将响应一个指示,表示构建作业应该失败。
此操作仅在Watch定义为“构建”为目标类型时可用。- 宽限期:有很多情况下,你不希望第一次构建失败,例如,一些违规不是显示停止器,你想在不停止构建创建的情况下查看它们。您可以根据需要设置宽限期的天数。在您定义的宽限期内,构建不会失败,在此期间将忽略所有违规。一个自动无视规则根据以下条件为宽限期创建:
- 特定的漏洞/许可证
- 在特定的组件上
- 在特定构建的任何版本上
- 关于具体政策
- 关于特定的手表
一旦宽限期结束,忽略规则将被删除,如果构建包含违规行为,则会创建这些违规行为,构建将失败。
- 宽限期:有很多情况下,你不希望第一次构建失败,例如,一些违规不是显示停止器,你想在不停止构建创建的情况下查看它们。您可以根据需要设置宽限期的天数。在您定义的宽限期内,构建不会失败,在此期间将忽略所有违规。一个自动无视规则根据以下条件为宽限期创建:
新建策略
步骤1设置“常规策略设置”
在政府模块,选择手表与政策从政策选项卡单击新政策.
JFrog云新界面(测试版)
转到x射线,选择手表和政策.到l赚取更多,点击在这里.
选择策略规则类型并配置策略规则。
安全:允许您围绕安全漏洞创建一组规则。选择您希望Xray如何响应每个漏洞严重程度。
许可证:允许您围绕允许/禁止的许可证集创建一组规则。
- 操作风险:允许您创建一组规则关于使用开源软件组件的操作风险。有关更多信息,请参见操作风险.
- 设置优先级其中规则是加工过的.拖放规则,根据它们的优先级来放置它们。
- 设置规则标准。
如果满足条件,则执行此规则的自动操作,并将策略视为已处理(不再检查其他规则)。 - 设置自动操作以在满足条件时运行。
步骤2新建策略规则
配置基本策略设置并选择策略类型—安全策略或License策略。
配置安全规则
选择安全在下拉列表中单击新规则设置标准并分配自动操作。
规则名称 |
此规则的逻辑名称。 |
标准 |
扫描扫描工件时检查的一组安全条件。 |
自动操作 |
指定触发安全策略违规后要采取的操作。 |
配置License规则
若要创建新的License规则,请选择许可证在下拉列表中单击新规则.
为策略规则分配自动操作
您可以在每个策略规则中定义一个或多个操作。要查看操作列表,请参见自动操作.
多许可证许可方法
当检测到一个组件具有多个许可证时,策略规则将应用于所有许可证,因此,如果多个许可证中的一个符合策略规则,无论如何都会创建一个违规。允许多个许可证的方法使您能够在策略级别上拥有更大的灵活性,并配置更允许的方法,允许拥有至少一个许可的组件通过而不会触发违规,即使某些许可证不被允许。
触发Webhook
您可以选择一个预定义的Webhook作为自动操作,以防发现违规行为。
- 选择触发Webhook复选框,并从列表中选择预定义的Webhook。
提供给任何触发webhook的有效负载是一个描述警报列表的JSON对象。
下面展示了一个webhook的有效负载示例。
{"created": "2022-11-23T15:13:19.005062109Z", "top_severity": "High", "watch_name": "webhook-example", "policy_name": "High -cve", "policy_rule": "High -cve", "severity": "High", "type": "security", "provider": "JFrog", "created": "2022-11-16T10:36:39.205Z", "summary": " cve - 2222 -42898 krb5: integer overflow vulnerability in PAC parsing (important)", "description": "DOCUMENTATION: A vulnerability was found in MIT krb5. "此漏洞允许经过身份验证的攻击者通过读取超出分配的内存界限,从而导致KDC或kadmind进程崩溃,从而创建拒绝服务。特权攻击者同样可能导致Kerberos或GSS应用程序服务崩溃。声明:RHEL中的Samba不实现AD DC角色,也不是针对Heimdal构建的,因此Samba不受此CVE的影响。","impacted_artifacts": [{"name": "manifest. conf . conf ": "manifest. conf . conf "json", "display_name": "mysql:8.0", "path": "default/dockers/mysql/8.0/", "pkg_type": "Docker", "sha256": "44f98f4dd825a945d2a6a4b7b2f14127b5d07c5aaa07d9d232c2b58936fb76dc", "parent_sha": " 44f98f4dd825a945d2a6a4b7b2f14127b5d07c5aaa07d9d232c2b8127b5d07c5aaa07d9d232c2b58936fb76dc ", "infected_files": [{"name": "krb5-libs:0:1.18.2-14.0.1 "。El8 ", "path": "" ", "sha256": "c8b498f4f6f42862326eae3df128ff9b0aea2a1f6da72dbb4c2716a8366c97a8", "depth": 0, "parent_sha": "e54b73e95ef388354463a761e4e93ce3dac29cb244b2dc0424f2f4afc6ddf5cd", "display_name": "8:krb5-libs:0:1.18.2-14.0.1 "。el8", "pkg_type": "Rpm"}]}], "cve": "cve - 2222 -42898", "applicability": null}, {"vulnerability_id": "XRAY-97724", "severity": "High", "type": "security", "provider": "JFrog", "created": "2020-05-11T12:08:54.784Z", "summary": "**争议** pip(所有版本)中发现问题,因为它安装了版本号最高的版本,即使用户打算从私有索引中获取私有包。这只会影响——extra-index-url选项的使用,并且攻击者要求包不存在于公共索引中(因此攻击者可以使用任意版本号将包放在那里)。注意:据报道,这是预期功能,用户负责安全使用——extra-index-url .", "description": "**有争议**在pip(所有版本)中发现了一个问题,因为它安装了版本号最高的版本,即使用户打算从私有索引中获得私有包。这只会影响——extra-index-url选项的使用,并且攻击者要求包不存在于公共索引中(因此攻击者可以使用任意版本号将包放在那里)。注意:据报道,这是预期的功能,用户负责安全地使用——extra-index-url .", "impacted_artifacts": [{"name": "manifest. "json", "display_name": "mysql:8.0", "path": "default/dockers/mysql/8.0/", "pkg_type": "Docker", "sha256": "44f98f4dd825a945d2a6a4b7b2f14127b5d07c5aaa07d9d232c2b58936fb76dc", "sha1": "", "depth": 0, "parent_sha": "44f98f4dd825a945d2a6a4b7b2f14127b5d07c5aaa07d9d232c2b58936fb76dc", "infected_files": [ { "name": "pip-20.2.4-py2.py3-none-any.whl", "path": "usr/share/python39-wheels/", "sha256": "e266d0fa6cead0e80c6c962edcce8156dcd8e9842bae72276bedb352adf1b300", "depth": 0, "parent_sha": "f6cfbf240ed7196ec43fc009b344e17a6c84451079f19efea7b3fd2dab9bd65e", "display_name": "pip:20.2.4", "pkg_type": "Pypi" } ] } ], "cve": "CVE-2018-20225", "applicability": null } ] }
编辑策略
通过将鼠标悬停在现有策略上并单击右侧的Edit图标,从Policy页面编辑现有策略。
对策略所做的编辑将自动应用于分配给该策略的所有手表。这将只对新扫描的工件生效。你可以手动激活现有工件上的监视.