跳至主要内容
The Apache Software Foundation
Apache 20th Anniversary Logo

ASF 项目提交者安全指南

简介

以下是 Apache 提交者关于如何处理安全漏洞的指南。Apache 安全团队可为需要帮助和建议的 Apache 项目提供支持。

已知漏洞

具有已知公开漏洞的项目应在诸如 httpd 安全页面 等页面上提供有关这些漏洞的信息。在项目的首页上提供指向安全信息的清晰链接。

除非已配置必要的设置以将问题的访问权限限制为仅报告者和项目团队,否则请勿在项目的公共错误跟踪器中输入安全漏洞的详细信息。

项目特定的安全邮件列表

项目可能希望创建一个 项目特定的安全邮件列表。这些邮件列表采用 [email protected] 格式的名称,例如 [email protected]

当基础设施团队创建项目特定的安全邮件列表时,他们会将其配置为自动将所有邮件抄送至 [email protected],因此您无需在向此类列表发送邮件时抄送 [email protected]

我们希望项目 PMC 成员和提交者的一部分订阅项目特定的安全邮件列表。请勿将该列表用作第三方通知系统;未经授权的提交者不应订阅该列表。

处理可能的漏洞

以下是处理可能的安全漏洞的默认流程。需要不同流程的项目**必须**联系 [email protected] 以获取建议,并且应期望清楚地公开记录其流程。

私下处理

在正式宣布此流程结束之前,**不要**公开发布有关漏洞的信息。这意味着,例如,您**不应**创建公共 Jira 票证来跟踪问题,或创建公共 GitHub 问题,因为这些操作会公开问题。与任何提交相关的邮件**不应**提及提交的安全性质。

报告

  1. 发现问题的人员(即报告者)确定要报告到的邮件列表。如果与问题相关的项目在 安全项目列表 上列出了 security@[project].apache.org 邮件列表,请使用该邮件列表。否则,请使用 [email protected]

  2. 请注意,安全团队将忽略所有与报告或管理 Apache 软件中未公开的安全漏洞无关的邮件。

  3. 如果报告发送到 [email protected],安全团队会将其转发到项目的安全列表,或者如果项目没有安全列表,则转发到项目的私有(PMC)邮件列表。安全团队会回复原始报告者,告知他们已执行此操作。

如果项目没有专用的 [email protected] 邮件列表,则所有关于该漏洞的后续通信都应抄送至 [email protected]。对于发送到 [email protected] 的邮件,无需执行此操作,因为这些邮件会自动抄送至 [email protected]

确认

  1. 项目团队向原始报告者发送一封电子邮件以确认报告,并抄送至相关的安全邮件列表。

  2. 项目团队调查报告,并将其拒绝或接受。项目团队成员可以根据项目安全团队的酌情决定,与领域专家(包括其雇主中的同事)共享有关漏洞的信息,前提是他们明确表示这些信息不供公开披露。

  3. 如果项目团队**拒绝**报告,则团队会写信给报告者解释原因,并抄送至相关的安全邮件列表。

  4. 如果项目团队**接受**报告,则团队会写信给报告者,告知他们已接受报告,并且正在处理修复程序。

  5. 项目团队从内部门户 https://cveprocess.apache.org 请求 CVE(通用漏洞和披露)ID;或者通过发送主题为“CVE request for…”的电子邮件至 [email protected],提供漏洞的简短(一行)描述。[email protected] 可以帮助确定报告是否需要多个 CVE ID,或者多个报告是否应合并到单个 CVE ID 下。

  6. ASF 安全团队分配 CVE ID 并向项目团队发送一个链接,指向其可以在其中输入漏洞详细信息的内部门户。

解决

  1. 项目团队在他们的私有列表中商定修复方案。

  2. 项目团队在内部门户上记录漏洞和修复程序的详细信息。该门户会生成公告草稿文本。有关公告示例,请参阅 Tomcat 发布 CVE-2008-2370 的公告。要包含在报告中的详细信息级别是一个判断问题。通常,报告应包含足够的信息,使人们能够评估漏洞对其自身系统造成的风险,仅此而已。公告通常不包括重现漏洞的步骤。

    可以选择将 CVE 设置为 REVIEW 状态,以请求安全团队进行审查。您可以使用“评论”功能讨论披露,该功能还会将评论发送到相关的私有邮件列表。

  3. 项目团队向报告者提供修复程序和漏洞公告草稿副本以供其评论。

  4. 项目团队与报告者商定修复程序、公告和发布计划。如果报告者在合理的时间范围内没有回复,则不应阻止项目团队继续执行后续步骤,尤其是在问题严重或影响较大的情况下。

  5. 项目团队提交修复程序。**不要**提及提交与安全漏洞相关。

  6. 项目团队创建包含修复程序的版本。

宣布

  1. 在发布公告之后(或同时),项目团队宣布漏洞和修复程序。在 内部门户 中将 CVE 状态设置为 READY。然后,您可以使用该门户发送电子邮件。漏洞公告应发送到以下目标

    a. 与发布公告相同的目标

    b. 漏洞报告者

    c. 项目的安全列表(如果项目没有专用的安全列表,则为 [email protected]

    d. [email protected]无需订阅)。

这是首次公开发布任何有关漏洞的信息。

完成

  1. 项目团队更新项目的安全页面。

  2. 将邮件列表上的公共公告链接添加到 CVE 中作为“参考”。这会通知安全团队,安全团队会将信息提交给 CVE 项目。

  3. 如果项目存储库位于 Subversion 中,请将 CVE ID 添加到应用修复程序的提交的日志中。如果您的项目使用 Git 存储库,**请勿**尝试执行此操作,因为编辑已推送的提交会导致各种问题。

CVE ID

CVE ID 是分配给安全漏洞的唯一标识符。Apache 安全团队是涵盖所有 Apache 项目的 CVE 编号机构 (CNA),并且是唯一能够为 Apache 软件基金会项目问题分配 ID 的组。

如果您认为问题的详细信息描述不正确,请联系 [email protected]