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

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

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

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

Большинство обычных ошибок Джанго сообщается через наш экземпляр общественного 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-анонсе приблизительную дату и время грядущего выпуска безопасности, а также серьезность проблем. Это помогает организациям, которым необходимо убедиться, что у них есть персонал для анализа объявлений и обновления Django, если это необходимо. Уровни серьезности:

Высокий :

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

Умеренный :

  • XSS-уязвимость (межсайтовый скриптинг)
  • Уязвимость подделки межсайтовых запросов (CSRF)
  • Атаки отказа в обслуживании
  • Ошибка аутентификации

Низкий :

  • Раскрытие конфиденциальных данных
  • Управление поврежденной сессией
  • Перенаправления и переводы не подтверждены
  • Проблемы из-за необычного варианта конфигурации

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

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

В день публичного объявления будут применяться следующие меры:

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

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

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

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

Получатели ранних уведомлений

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Copyright ©2020 All rights reserved