使用策略规则触发违规
策略包含用户自定义的规则,允许您通过设置许可证或安全标准来触发针对特定漏洞或许可证违规的违规行为,并根据您的需要设置相应的自动操作集。规则按照它们在策略上的规则列表中的升序进行处理。如果满足一条规则,则不会应用列表中的后续规则。
Xray支持以下策略类型:
安全规则
安全规则允许您围绕安全漏洞创建一组规则。有两个可能的标准:
最小的严重性(次要、主要、紧急、全部):在JFrog漏洞数据库中最小的安全漏洞严重程度。如果工件或构建包含具有所选严重性或更高级别的漏洞,则规则将满足标准,将执行自动操作,并且策略将停止处理。
CVSS分数(1-10):应用于规则的CVSS评分范围。这用于细粒度控制,而不是使用预定义的严重性。评分范围基于CVSS v3评分,CVSS v2评分为CVSS v3评分不可用。
- 漏洞id:针对用户输入的特定漏洞id,创建策略规则。可以添加多个漏洞id,最多100个,以“,”分隔。支持cve和Xray id。
- 只有当固定版本可用时才生成违规:对于不包含固定版本的问题,Xray不会生成违规。如果以后有了固定的版本,就会产生冲突。
许可规则
许可规则允许您围绕许可遵从性创建一组规则。有三个可能的标准:
允许许可:指定允许的OSS许可证列表五月附加到一个组件。如果组件中存在的OSS license不在允许列表中,则规则将满足条件,生成违规,并执行自动处理,策略将停止处理。
禁止许可:指定OSS license Block List可能不附加到一个组件。如果组件指定了任何OSS license,则规则将满足条件,将生成违规,并执行自动处理,策略将停止处理。
不允许未知许可:指定无法确定license的组件所需的行为。如果发现具有未知许可证的组件,将触发违规。
策略违规自动处理
操作决定了对检测到的策略违规的自动响应。您可以在每个策略规则中定义一个或多个操作。行动包括:
生成违规(轻微、严重、严重):满足条件时产生的违规的严重程度。
通知电子邮件:此操作允许您指定电子邮件地址,当一个违规被触发时,Xray应该向其发送有关违规的电子邮件消息。为此,您需要在Xray中配置一个邮件服务器。
通知手表的收件人:此操作允许您在触发违规时向所有watch收件人发送电子邮件。
通知部署人员:此操作允许您向部署该组件的用户发送关于违规触发的电子邮件。
- 创建Jira Ticket:这个动作。允许在Policy规则中创建Jira票据
触发Webhook:这个操作允许你指定你在Xray中配置的webhook,当违规被触发时应该调用(参见下面的有效载荷)。
块下载:此操作允许您指定应该阻止下载的工件,并允许您选择以下选项之一:
- 阻止下载:当设置时,Artifactory将阻止下载符合此手表的工件过滤器和严重性过滤器规格的工件。
- 阻止未扫描:当设置时,Artifactory将阻止下载符合此手表的Artifact Filter规格的工件,但尚未扫描或由于保留策略已删除x射线数据。有关x射线数据保留的详细信息,请参见索引x射线资源2022世界杯阿根廷预选赛赛程。
- 块释放包分发:此操作允许您指定,如果发布包满足策略标准规则,则应该阻止它们下载。
失败的构建:此操作允许您指定,如果CI服务器请求扫描构建,并且Watch触发违规,则Xray将响应一个指示,表明构建作业应该失败。
此操作仅在Watch以build作为目标类型定义时可用。- 宽限期:在许多情况下,您不希望第一次构建失败,例如,一些违规并不是显示障碍,您希望稍后在不停止构建创建的情况下查看它们。您可以根据需要设置宽限期的天数。在您定义的宽限期内,构建不会失败,并且在此期间忽略所有违规。一个自动无视规则在宽限期内按照以下条件创建:
- 在特定的漏洞/许可证上
- 在特定的组件上
- 在特定构建的任何版本上
- 论具体政策
- 关于具体手表
一旦宽限期结束,忽略规则将被删除,如果构建包含违规,则创建这些违规,并且构建将失败。
- 宽限期:在许多情况下,您不希望第一次构建失败,例如,一些违规并不是显示障碍,您希望稍后在不停止构建创建的情况下查看它们。您可以根据需要设置宽限期的天数。在您定义的宽限期内,构建不会失败,并且在此期间忽略所有违规。一个自动无视规则在宽限期内按照以下条件创建:
创建策略
步骤1设置通用策略
在政府模块,选择手表与政策从政策选项卡单击新政策。
JFrog Cloud新界面(测试版)
进入x射线,选择手表和政策。到l获取更多信息,请点击在这里。
选择策略规则类型并配置规则。
安全:允许您围绕安全漏洞创建一组规则。选择希望Xray如何响应每个漏洞严重性。
许可证:允许您围绕允许/禁止的许可集创建一组规则。
- 操作风险:允许您创建一组规则关于使用开源软件组件的操作风险。有关更多信息,请参见操作风险。
- 设置优先级其中规则是加工过的。拖放规则以根据其优先级放置它们。
- 设置规则标准。
如果满足条件,则执行该规则的自动操作,并认为该策略已处理(不再检查其他规则)。 - 设置在满足条件时运行的自动操作。
步骤2创建策略规则
配置基本策略设置并选择策略类型-安全或许可。
配置安全规则
选择安全从下拉列表中单击新规则设置标准并分配自动操作。
规则名称 |
此规则的逻辑名称。 |
标准 |
扫描工件时要检查的一组安全条件。 |
自动操作 |
指定触发安全策略违规后要采取的操作。 |
配置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", "type": "security", "provider": "JFrog", "created": "2022-11-16T10:36:39.205Z", "summary": " cve - 2202-42898 krb5: PAC解析中的整数溢出漏洞(重要)","description": "DOCUMENTATION:在MIT krb5中发现了一个漏洞。此漏洞允许经过身份验证的攻击者通过读取超出已分配内存的范围而导致KDC或kadmind进程崩溃,从而创建拒绝服务。特权攻击者可能同样能够导致Kerberos或GSS应用程序服务崩溃。声明:RHEL中的Samba不实现AD DC角色,并且不是针对Heimdal构建的,因此Samba不受此CVE的影响。","impacted_artifacts": [{"name": "manifest. exe "。"display_name": "mysql:8.0", "path": "default/dockers/mysql/8.0/", "pkg_type": "Docker", "sha256": "44f98f4dd825a945d2a6a4b7b2f14127b5d07c5aaa07d9d232c2b58936fb76dc", "sha1": "" "", "depth": 0, "parent_sha": " 44f98f4dd825a945d2c5aaa07d9d232c2b58936fb76dc ", "infected_files": {"name": "krb5-libs:0:1.18.2-14.0.1. "" El8 ", "path": "" ", "sha256": " c8b498f4f6f42862326eae3df128ff9b0aea2a1a72dbb4c2716a8366c97a8 ", "depth": 0, "parent_sha": "e54b73e95ef388354463a761e4e93ce3dac29cb244b2dc0424f2f4afc6ddf5cd", "display_name": "8:krb5-libs:0:1.18.2-14.0.1. "el8", "pkg_type": "Rpm"}]}], "cve": "cve - 22% -42898", "applicability": null}, {"vulnerability ": "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. url "。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页面编辑现有策略。
对策略所做的编辑将自动应用于该策略分配给的所有监视。这将只对新扫描的工件起作用。你可以手动激活现有工件上的手表。