Политики безопасности Django

Команда разработчиков Django твердо привержена ответственному составлению отчетов и раскрытию проблем, связанных с безопасностью. Таким образом, мы приняли и соблюдаем набор политик, которые соответствуют этому идеалу и позволяют нам своевременно доставлять обновления безопасности для официального дистрибутива Django, а также для сторонних дистрибутивов.

Сообщение о проблемах безопасности

Краткая версия: сообщайте о проблемах безопасности по электронной почте [email protected] .

О большинстве обычных ошибок в Django сообщается в наш общедоступный экземпляр Trac , но из-за деликатного характера проблем безопасности мы просим не сообщать о них публично таким образом.

Вместо этого, если вы считаете, что обнаружили в Django что-то, что может повлиять на безопасность, отправьте описание проблемы по электронной почте на адрес [email protected]. Письма, отправленные на этот адрес, доходят до службы безопасности .

После того, как вы отправили сообщение о проблеме по электронной почте, вы должны получить подтверждение от члена группы безопасности в течение 48 часов, и в зависимости от действий, которые необходимо предпринять, вы можете получить дополнительные электронные письма.

Отправка зашифрованных отчетов

Если вы хотите отправить зашифрованное электронное письмо ( необязательно ), идентификатор открытого ключа для него [email protected]равен 0xfcb84b8d1d17f80b, и этот открытый ключ доступен на наиболее часто используемых серверах ключей.

Поддерживаемые версии

В любой момент команда Django обеспечивает официальную поддержку безопасности для нескольких версий Django:

  • Главная ветвь развития , размещенная на GitHub, который станет следующим крупным релизом Django, получает поддержку безопасности. Проблемы безопасности, которые затрагивают только основную ветку разработки, а не какие-либо стабильные выпущенные версии, исправляются публично без прохождения процесса раскрытия информации .
  • Две последние серии выпусков Django получили поддержку безопасности. Например, в течение цикла разработки, ведущего к выпуску Django 1.5, поддержка будет предоставляться для Django 1.4 и Django 1.3. После выпуска Django 1.5 поддержка безопасности Django 1.3 прекратится.
  • Релизы долгосрочной поддержки будут получать обновления безопасности в течение определенного периода.

Когда новые выпуски выпускаются по соображениям безопасности, сопроводительное уведомление будет включать список уязвимых версий. Этот список состоит исключительно из поддерживаемых версий Django: старые версии также могут быть затронуты, но мы не исследуем это, чтобы определить это, и не будем выпускать исправления или новые выпуски для этих версий.

Как Django выявляет проблемы безопасности

Наш процесс перехода от частного обсуждения к публичному раскрытию проблемы безопасности состоит из нескольких этапов.

Примерно за неделю до публичного раскрытия мы отправляем два уведомления:

Во-первых, мы уведомляем django-announce о дате и приблизительном времени предстоящего выпуска системы безопасности, а также о серьезности проблем. Это сделано для того, чтобы помочь организациям, которым необходимо обеспечить наличие персонала для обработки нашего объявления и обновления Django по мере необходимости. Уровни серьезности:

Высокий :

  • Удаленное выполнение кода
  • SQL-инъекция

Умеренный :

  • Межсайтовый скриптинг (XSS)
  • Подделка межсайтовых запросов (CSRF)
  • Атаки отказа в обслуживании
  • Сломанная аутентификация

Низкий :

  • Раскрытие конфиденциальных данных
  • Управление прерванной сессией
  • Непроверенные перенаправления / переадресации
  • Проблемы, требующие необычного варианта конфигурации

Во-вторых, мы уведомляем список людей и организаций , в основном состоящий из поставщиков операционных систем и других распространителей Django. Это электронное письмо подписано ключом PGP кого-то из команды выпуска Django и состоит из:

  • Полное описание проблемы и затронутых версий Django.
  • Шаги, которые мы предпримем для решения проблемы.
  • Патчи, если они есть, будут применены к Django.
  • Дата, когда команда Django применит эти исправления, выпустит новые выпуски и публично раскроет проблему.

В день раскрытия информации мы предпримем следующие шаги:

  1. Примените соответствующие патчи к базе кода Django.
  2. Выпустите соответствующие выпуски, разместив новые пакеты в индексе пакетов Python и на веб-сайте Django и пометив новые выпуски в репозитории Git Django.
  3. Разместите общедоступную запись в официальном блоге разработчиков Django , подробно описав проблему и ее решение, указав на соответствующие исправления и новые выпуски и указав репортера проблемы (если репортер желает быть публично идентифицированным).
  4. Разместите уведомление в списках django-announce и oss-security @ . openwall . com списки рассылки, которые ссылаются на сообщение в блоге.

Если считается, что проблема, о которой сообщается, особенно чувствительна ко времени - например, из-за известной уязвимости в дикой природе - время между предварительным уведомлением и публичным раскрытием может быть значительно сокращено.

Кроме того, если у нас есть основания полагать, что проблема, о которой нам сообщают, влияет на другие фреймворки или инструменты в экосистеме Python / веб, мы можем в частном порядке связаться и обсудить эти проблемы с соответствующими специалистами по сопровождению, а также согласовать наше собственное раскрытие и решение с их.

Команда Django также ведет архив проблем безопасности, обнаруженных в Django .

Кто получает предварительное уведомление

Полный список людей и организаций, которые получают предварительное уведомление о проблемах безопасности, не публикуется и не будет публиковаться.

Мы также стремимся максимально сократить этот список, чтобы лучше управлять потоком конфиденциальной информации до ее раскрытия. Таким образом, наш список уведомлений - это не просто список пользователей Django, и принадлежность к Django не является достаточной причиной для включения в список уведомлений.

В общих чертах получатели уведомлений безопасности делятся на три группы:

  1. Поставщики операционных систем и другие распространители Django, которые предоставляют подходящий общий (т. Е. Не личный адрес электронной почты) контактный адрес для сообщения о проблемах с их пакетом Django или для общих отчетов о безопасности. В любом случае такие адреса не должны пересылаться в общедоступные списки рассылки или средства отслеживания ошибок. Адреса, которые пересылаются на личную электронную почту отдельного сопровождающего или контактного лица службы безопасности, являются приемлемыми, хотя частные средства отслеживания безопасности или группы ответа безопасности очень предпочтительны.
  2. В каждом конкретном случае индивидуальные сопровождающие пакетов, продемонстрировавшие готовность отвечать на эти уведомления и ответственно действовать в соответствии с ними.
  3. В каждом конкретном случае другие организации, которые, по мнению команды разработчиков Django, должны быть осведомлены о нерешенной проблеме безопасности. Как правило, членство в этой группе будет состоять из некоторых из самых крупных и / или наиболее сильно затронутых известных пользователей или распространителей Django, и для этого потребуется продемонстрированная способность ответственно получать, сохранять конфиденциальность и действовать в соответствии с этими уведомлениями.

Аудит безопасности и сканирование объектов

В соответствии с политикой мы не добавляем эти типы сущностей в список уведомлений.

Запрос уведомлений

Если вы считаете, что вы или организация, которую вы уполномочены представлять, попадаете в одну из перечисленных выше групп, вы можете попросить добавить вас в список уведомлений Django по электронной почте [email protected]. Пожалуйста, используйте тему «Запрос на уведомление о безопасности».

Ваш запрос должен содержать следующую информацию:

  • Ваше полное, настоящее имя и название организации, которую вы представляете, если применимо, а также вашу роль в этой организации.
  • Подробное объяснение того, как вы или ваша организация соответствуете хотя бы одному набору критериев, перечисленных выше.
  • Подробное объяснение того, почему вы запрашиваете уведомления системы безопасности. Опять же, имейте в виду, что это не просто список для пользователей Django, и подавляющее большинство пользователей должны подписаться на django-announce, чтобы получать предварительное уведомление о том, когда произойдет выпуск безопасности, без подробностей о проблемах, а чем запрашивать подробные уведомления.
  • Адрес электронной почты, который вы хотели бы добавить в наш список уведомлений.
  • Объяснение того, кто будет получать / просматривать почту, отправленную на этот адрес, а также информацию о любых автоматических действиях, которые будут предприняты (например, регистрация конфиденциальной проблемы в системе отслеживания ошибок).
  • Для физических лиц - идентификатор открытого ключа, связанного с вашим адресом, который можно использовать для проверки электронной почты, полученной от вас, и шифрования отправляемой вам электронной почты, если это необходимо.

После отправки ваш запрос будет рассмотрен командой разработчиков Django; вы получите ответ с уведомлением о результате вашего запроса в течение 30 дней.

Также имейте в виду, что для любого человека или организации получение уведомлений безопасности является привилегией, предоставляемой по исключительному усмотрению команды разработчиков Django, и что эта привилегия может быть отозвана в любое время с объяснением или без объяснения причин.

Предоставьте всю необходимую информацию

Неспособность предоставить требуемую информацию в вашем первоначальном контакте будет засчитываться против вас при принятии решения о том, одобрять ли ваш запрос или нет.

Copyright ©2021 All rights reserved