Проблемы безопасности

Проблемы безопасности

Этот документ объясняет, как базовая команда Symfony справляется с проблемами безопасности (Symfony - это код, находящийся в главном хранилище Git) symfony/symfony.

Заявление о проблеме безопасности

Если вы думаете, что вы нашли проблему безопасности в Symfony, то не используйте трегер багов и не публикуйте её для общественности. Вместо этого, все проблемы безопасности должны быть отправлены по адресу security [at] symfony.com. Письма, отправленные по этому адресу, пересылаются по частному списку электронных адресов базовой команды Symfony.

Процесс решения

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

  1. Отправка признательности отправителю;
  2. Работа над патчем;
  3. Получение CVE-идентификатора с mitre.org;
  4. Написание объявления безопасности об уязвимости для официального блога Symfony. Этот пост должен содержать следующую информацию:

    • заголовок, всегда включающий в себя строку "Релиз безопасности";
    • описание уязвимости;
    • затронутые версии;
    • возможное использование;
    • как запатчить, обновить или обойти затронутые приложения;
    • CVE-идентификатор;
    • благодарности.
  5. Отправка патча и объявления отправителю для отзыва;
  6. Применение патча ко всем поддерживаемым версиям Symfony;
  7. Запаковать новые версии для всех затронутых версий;
  8. Публикация поста в официальном блоге Symfony (он также должен быть добавлен в категорию "`Консультация по вопросам безопасности`_");
  9. Обновить список консультантов безопасности (см. ниже);
  10. Обновить публичную DB консультаций безопасности, содержающуюся организацией FriendsOfPHP, которая используется командой security:check.

Note

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

Note

Пока мы работаем над патчем, пожалуйста, не сообщайте о проблеме публично.

Note

Решение проблемы занимает от нескольких дней до месяца, в зависимости от сложности и координации с целевыми приложениями (см. следующий раздел).

Коллаборация с общедоступными целевыми проектами

Так как Symfony используется в основном в больших общедоступных проектах, мы стандартизировали то, как команда безопасности Symfony сотрудничает с целевыми проектами по вопросам безопасности. Этот процесс работает следующим образом:

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

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

Сегодня, следующие проекты валидировали этот процесс и являются частью целевых проектов, включённых в этот процесс:

  • Drupal (релизы обычно происходят по средам)
  • eZPublish

Консультанты безопасности

Tip

Вы можете проверить ваше приложение Symfony на известные уязвимости безопасности, используя команду security:check (см. Как проверить на известные уязвимости защиты в ваших зависимостях).

Этот раздел содержит перечень уязвимостей, которые были исправлены в релизах Symfony, начиная с Symfony 1.0.0: