Django のセキュリティポリシー¶
Django の開発チームは、セキュリティ関連の問題の責任ある報告と開示に強くコミットしています。そのため、私たちはその理想に従い、公式の Django ディストリビューション、およびサードパーティのディストリビューションにタイムリーなセキュリティ更新を提供できるようにすることを目指した一連の方針を採用し、それに従っています。
セキュリティ問題の報告¶
要約: セキュリティに関する問題は、security@djangoproject.com までメールで報告してください 。
Djangoにおけるほとんどの通常のバグは our public Trac instance に報告されますが、セキュリティ問題は機密性が高いため、それらをこの方法で公に報告することは しないでください 。
もし Django に関してセキュリティ上の影響を及ぼすと思われる何かを見つけた場合は、問題の説明をメールで security@djangoproject.com
に送ってください。そのアドレスに送られたメールは セキュリティチーム に届きます。
メール経由で問題を報告した後、セキュリティチームのメンバーから48時間以内に確認の返信を受け取るはずです。それに応じて、取られるべき対応に応じて、さらにフォローアップのメールを受け取る場合があります。
暗号化されたレポートの送信
暗号化されたメールを送信したい場合 (任意)、security@djangoproject.com
の公開キーIDは 0xfcb84b8d1d17f80b
です。この公開キーは、一般的に使用されているほとんどのキーサーバーから入手可能です。
サポートバージョン¶
Django チームは、特定の時点で複数のバージョンの Django に公式のセキュリティサポートを提供しています:
- GitHub 上にホスティングされ、Django の次のメジャーリリースになる main development branch は、セキュリティサポートを受けています。安定版リリースに影響を与えない、メイン開発ブランチのみに影響するセキュリティ問題は、開示プロセス を経ずに公に修正されます。
- Djangoの最新のリリースシリーズ 2 つがセキュリティサポートを受けます。たとえば、Django 1.5 のリリースに向けた開発サイクル中には、Django 1.4 とDjango 1.3 がサポートされます。Django 1.5 がリリースされると、Django 1.3 のセキュリティサポートは終了します。
- LTS Long-term support release は、指定された期間、セキュリティ更新が行われます。
セキュリティ上の理由で新しいリリースが発行されるとき、付随するお知らせには影響を受けるバージョンのリストが含まれます。このリストは サポートされている Django のバージョンのみで構成されています。古いバージョンも影響を受ける可能性がありますが、それを調査することはせず、それらのバージョンに対してパッチや新しいリリースは発行しません。
Django のセキュリティ問題の公開プロセス¶
セキュリティ問題をプライベートな議論から公開開示に移行するプロセスには、複数のステップが含まれています。
公開開示の約1週間前に、2つの通知を送信します:
まず、今後のセキュリティリリースの日付とおおよその時間、および問題の重大性について django-announce に通知します。これは、発表をトリアージし、必要に応じて Django をアップグレードするためにスタッフを用意しておく必要がある組織を支援するためです。重大性レベルは以下の通りです:
- High (高)
- リモートコード実行
- SQL インジェクション
- Moderate (中)
- クロスサイトスクリプティング (XSS)
- クロスサイトリクエストフォージェリ (CSRF)
- サービス拒否攻撃 (DoS)
- 認証の不備
- Low (低)
- 機密データの露出
- セッション管理の不備
- 検証されていないリダイレクト/フォワード
- 一般的ではない設定オプションが必要な問題
次に、主にオペレーティングシステムのベンダーや Django のその他の配布者から構成される 個人および組織 のリストに通知します。このメールは Django's release team の誰かの PGP キーで署名され、以下を含みます:
- 問題の完全な説明と、影響を受ける Django のバージョン。
- 問題を解決するために必要な手順。
- Django に適用されるパッチ(もしあれば)。
- Django チームがこれらのパッチを適用し、新しいリリースを発行し、問題を公に開示する日付。
公開日には、以下の手順を踏みます:
- Django のコードベースに、関連するパッチを適用します。
- 関連するリリースを発行するために、新しいパッケージを Python Package Index および djangoproject.comのウェブサイト にアップロードし、Django の git リポジトリで新しいリリースをタグ付けします。
- 公式の Djang o開発ブログ the official Django development blog に公開エントリを投稿し、該当の問題とその解決策を詳細に記述します。関連するパッチや新しいリリースに言及し、問題を報告した人(公開を希望する場合)に感謝の意を表します。
- django-announce と oss-security@lists.openwall.com メーリングリストに、ブログ投稿へのリンクを含む通知を投稿します。
報告された問題が特に急を要すると考えられる場合(たとえば、既知の脆弱性が実際に悪用されているなど)、事前通知と公開開示の間隔はかなり短縮されることがあります。
また、私たちに報告された問題が Python / Web エコシステム内の他のフレームワークやツールに影響を及ぼすと考える理由がある場合には、適切なメンテナーに個別に連絡を取り、その問題について話し合い、私たち自身の開示と解決を彼らのものと調整することがあります。
Django チームは、Django で公開されたセキュリティ問題のアーカイブ も管理しています。
事前通知を受け取る対象者¶
セキュリティ問題の事前通知を受け取る人々と組織の完全なリストは、公開されておらず、今後も公開されることはありません。
また、開示前の機密情報の流れをより良く管理するために、このリストを実質的に可能な限り小さく保つことを目指しています。そのため、当社の通知リストは単に Django のユーザーのリストでは ありません 。そして、Django のユーザーであることは、通知リストに追加されるための十分な理由ではありません。
一般的に、セキュリティ通知を受け取ることができる人は以下の 3 つのグループに分けられます:
- オペレーティングシステムのベンダーや Django を提供するその他のディストリビューター。この人たちは、問題の報告や一般的なセキュリティの報告のために適切な(つまり、個人の個人メールアドレスでは ない )連絡先アドレスを提供する必要があります。いずれの場合も、そのようなアドレスは一般のメーリングリストやバグトラッカーに転送しては いけません 。個々のメンテナーやセキュリティ対応担当者のプライベートなメールに転送されるアドレスは許容されますが、プライベートセキュリティトラッカーやセキュリティ対応グループへの転送が強く推奨されます。
- 個別のケースに基づいて、これらの通知に対して責任を持って対応し、行動することを約束したパッケージメンテナ。
- ケースバイケースで、Django開発チームの判断により、保留中のセキュリティ問題について知らされる必要があると判定された他の団体。通常、このグループのメンバーは、Djangoの最大の利用者や配布者の中で、最も深刻に影響を受ける可能性が高いと考えられる団体の一部で構成され、これらの通知を責任を持って受け取り、機密を保持し、行動する能力を実証することが求められます。
セキュリティ監査団体とスキャニング団体
ポリシーとして、この種の団体を通知リストに追加することはありません。
通知のリクエスト¶
もしあなたや、あなたが代理を務める組織が、上記にリストされたグループのいずれかに該当すると考えられる場合は、security@djangoproject.com
へメールを送信して、Djangoの通知リストに追加されるよう依頼できます。件名には「Security notification request」と記載してください。
リクエストには、以下の情報を 必ず 含める必要があります:
- あなたのフルネームと、該当する場合は、あなたが代表する組織の名前、およびその組織内でのあなたの役割。
- 上記の条件の少なくとも1つに、あなたまたはあなたの組織がどのように適合するかの詳細な説明。
- セキュリティ通知をリクエストしている理由の詳細な説明です。このリストはDjangoのユーザー向けのものでは ない ことを、再度心に留めてください。圧倒的多数のユーザーは、問題の詳細なしでセキュリティリリースがいつ行われるかの事前通知を受け取るために、 django-announce に登録すべきです。詳細な通知をリクエストすべきではありません。
- 通知リストに追加されることを希望するメールアドレス。
- そのアドレス宛に送信されたメールを受信・レビューする対象者についての説明、および、(例えば)問題追跡システムにおいて機密問題をファイリングするなど、自動で行われるアクションに関する情報。
- 個人の場合、あなたのアドレスに関連付けられた公開鍵の ID。あなたから受信したメールを検証したり、必要に応じてあなたに送信するメールを暗号化するために使用できるものが必要です。
送信されたら、あなたのリクエストは Django 開発チームによって検討されます。リクエストの結果については、30日以内に返信で通知されます。
セキュリティ通知を受け取ることは、Django 開発チームの唯一の裁量によって付与される特権であり、この特権はいつでも、説明の有無にかかわらず、取り消すことができることを念頭に置いてください 。
必要な情報をすべて提供してください
初回の連絡で必要な情報を提供しなかった場合、あなたのリクエストを承認するかどうかの決定に影響を与えます。