Security Policy

This document explains how API Platform security issues are handled by the API Platform core team (API Platform being the code hosted in the api-platform GitHub organization).

このドキュメントでは、API プラットフォームのセキュリティ問題が API プラットフォーム コア チーム (API プラットフォームは api-platform GitHub 組織でホストされているコード) によってどのように処理されるかについて説明します。

Reporting a Security Issue

If you think that you have found a security issue in API Platform, don't use the bug tracker and don't publish it publicly. Instead, all security issues must be sent to kevin+api-platform-security [at] dunglas.fr.

API プラットフォームでセキュリティ上の問題を発見したと思われる場合は、バグ トラッカーを使用したり、公開したりしないでください。代わりに、すべてのセキュリティ問題は kevin+api-platform-security [at] dunglas.fr に送信する必要があります。

Resolving Process

For each report, we first try to confirm the vulnerability. When it is confirmed, the core team works on a solution following these steps:

報告ごとに、まず脆弱性の確認を試みます。確認されると、コア チームは次の手順に従ってソリューションに取り組みます。

  1. Send an acknowledgment to the reporter;
    レポーターに確認を送信します。
  2. Work on a patch;
    パッチに取り組みます。
  3. Get a CVE identifier from mitre.org;
    mitre.org から CVE 識別子を取得します。
  4. Send the patch to the reporter for review;
    レビューのためにパッチをレポーターに送信します。
  5. Apply the patch to all maintained versions of API Platform;
    API プラットフォームのすべての保守バージョンにパッチを適用します。
  6. Package new versions for all affected versions;
    影響を受けるすべてのバージョンの新しいバージョンをパッケージ化します。
  7. If the affected package is written in PHP, update the public security advisories database maintained by the FriendsOfPHP organization and which is used by the check:security command.
    影響を受けるパッケージが PHP で記述されている場合は、FriendsOfPHP 組織によって維持され、check:security コマンドで使用される公安勧告データベースを更新します。

While we are working on a patch, please do not reveal the issue publicly.

パッチに取り組んでいる間は、問題を公開しないでください。

The resolution takes anywhere between a couple of days to some months depending on its complexity and the coordination with the downstream projects (see next paragraph).

解決には、その複雑さと下流プロジェクトとの調整に応じて、数日から数か月かかります (次の段落を参照)。

Security Updates With Tidelift

API Platform Core is part of the Tidelift subscription: verified updates for zero-day vulnerabilities, coordinated security responses, and immediate notifications of which of your applications are impacted, with the fix prepared for you!

API Platform Core は Tidelift サブスクリプションの一部です。ゼロデイ脆弱性に対する検証済みの更新、調整されたセキュリティ対応、影響を受けるアプリケーションの即時通知、および修正プログラムが用意されています!

Issue Severity

In order to determine the severity of a security issue we take into account the complexity of any potential attack, the impact of the vulnerability and also how many projects it is likely to affect. This score out of 15 is then converted into a level of: Low, Medium, High, Critical, or Exceptional.

セキュリティ問題の深刻度を判断するために、潜在的な攻撃の複雑さ、脆弱性の影響、および影響を受ける可能性のあるプロジェクトの数を考慮します。この 15 点満点のスコアは、低、中、高、クリティカル、または例外のレベルに変換されます。

Attack Complexity

Score of between 1 and 5 depending on how complex it is to exploit the vulnerability

脆弱性の悪用の複雑さに応じて、1 ~ 5 のスコア

  • 4 - 5 Basic: attacker must follow a set of simple steps
    4 - 5 基本: 攻撃者は一連の簡単な手順に従う必要があります
  • 2 - 3 Complex: attacker must follow non-intuitive steps with a high level of dependencies
    2 - 3 複雑: 攻撃者は、高レベルの依存関係を伴う非直感的な手順に従う必要があります
  • 1 - 2 High: A successful attack depends on conditions beyond the attacker's control. That is, a successful attack cannot be accomplished at will, but requires the attacker to invest in some measurable amount of effort in preparation or execution against the vulnerable component before a successful attack can be expected.
    1 - 2 高: 攻撃の成功は、攻撃者が制御できない状況に依存します。つまり、攻撃の成功を自由に達成することはできませんが、攻撃の成功を期待するには、攻撃者が脆弱なコンポーネントに対する準備または実行にかなりの労力を費やす必要があります。

Impact

Scores from the following areas are added together to produce a score. The score for Impact is capped at 6. Each area is scored between 0 and 4.

次の領域のスコアが合計されて、スコアが生成されます。インパクトのスコアは 6 が上限です。各領域は 0 から 4 の間でスコア付けされます。

  • Integrity: Does this vulnerability cause non-public data to be accessible? If so, does the attacker have control over the data disclosed? (0-4)
    整合性: この脆弱性により、非公開データにアクセスできますか?もしそうなら、攻撃者は開示されたデータを制御できますか? (0-4)
  • Disclosure: Can this exploit allow system data (or data handled by the system) to be compromised? If so, does the attacker have control over modification? (0-4)
    開示: この悪用により、システム データ (またはシステムによって処理されるデータ) が危険にさらされる可能性がありますか?その場合、攻撃者は変更を制御できますか? (0-4)
  • Code Execution: Does the vulnerability allow arbitrary code to be executed on an end-users system, or the server that it runs on? (0-4)
    コードの実行: この脆弱性により、エンド ユーザー システムまたはそれが実行されているサーバーで任意のコードが実行される可能性がありますか? (0-4)
  • Availability: Is the availability of a service or application affected? Is it reduced availability or total loss of availability of a service / application? Availability includes networked services (e.g., databases) or resources such as consumption of network bandwidth, processor cycles, or disk space. (0-4)
    可用性: サービスまたはアプリケーションの可用性は影響を受けますか?サービス/アプリケーションの可用性が低下したり、可用性が完全に失われたりしますか?可用性には、ネットワーク サービス (データベースなど) や、ネットワーク帯域幅、プロセッサ サイクル、ディスク容量の消費などのリソースが含まれます。 (0-4)

Affected Projects

Scores from the following areas are added together to produce a score. The score for Affected Projects is capped at 4.

次の領域のスコアが合計されて、スコアが生成されます。影響を受けるプロジェクトのスコアは 4 が上限です。

  • Will it affect some or all projects using a component? (1-2)
    コンポーネントを使用する一部またはすべてのプロジェクトに影響しますか? (1-2)
  • Is the usage of the component that would cause such a thing already considered bad practice? (0-1)
    そのようなことを引き起こす可能性のあるコンポーネントの使用は、すでに悪い習慣と見なされていますか? (0-1)
  • How common/popular is the component (e.g. Core vs Distribution vs Schema Generator)? (0-2)
    コンポーネントはどの程度一般的/人気がありますか (コア、ディストリビューション、スキーマ ジェネレーターなど)? (0-2)
  • Are a number of well-known FOSS projects using API Platform affected that requires coordinated releases? (0-1)
    調整されたリリースを必要とする、API プラットフォームを使用する多くの有名な FOSS プロジェクトが影響を受けますか? (0-1)

Score Totals

  • Attack Complexity: 1 - 5
    攻撃の複雑さ: 1 - 5
  • Impact: 1 - 6
    インパクト: 1 - 6
  • Affected Projects: 1 - 4
    影響を受けるプロジェクト: 1 - 4

Severity levels

  • Low: 1 - 5
    低: 1 - 5
  • Medium: 6 - 10
    中: 6 - 10
  • High: 11 - 12
    高: 11 - 12
  • Critical: 13 - 14
    クリティカル: 13 - 14
  • Exceptional: 15
    例外的: 15

Credits

This document has been adapted from the Symfony's security policy.

このドキュメントは、Symfony のセキュリティ ポリシーから適応されています。