Проблемы безопасности
Проблемы безопасности
Этот документ объясняет, как базовая команда Symfony справляется с проблемами
безопасности (Symfony - это код, находящийся в главном хранилище Git)
symfony/symfony
.
Заявление о проблеме безопасности
Если вы думаете, что вы нашли проблему безопасности в Symfony, то не используйте трегер багов и не публикуйте её для общественности. Вместо этого, все проблемы безопасности должны быть отправлены по адресу security [at] symfony.com. Письма, отправленные по этому адресу, пересылаются по частному списку электронных адресов базовой команды Symfony.
Процесс решения
С каждым заявлением, мы вначаел пытаемся подтвердить уязвимость. Когда она подтверждена, базовая команда начинает работу над решением, следуя этим шагам:
- Отправка признательности отправителю;
- Работа над патчем;
- Получение CVE-идентификатора с mitre.org;
Написание объявления безопасности об уязвимости для официального блога Symfony. Этот пост должен содержать следующую информацию:
- заголовок, всегда включающий в себя строку "Релиз безопасности";
- описание уязвимости;
- затронутые версии;
- возможное использование;
- как запатчить, обновить или обойти затронутые приложения;
- CVE-идентификатор;
- благодарности.
- Отправка патча и объявления отправителю для отзыва;
- Применение патча ко всем поддерживаемым версиям Symfony;
- Запаковать новые версии для всех затронутых версий;
- Публикация поста в официальном блоге Symfony (он также должен быть добавлен в категорию "`Консультация по вопросам безопасности`_");
- Обновить список консультантов безопасности (см. ниже);
- Обновить публичную DB консультаций безопасности, содержающуюся организацией
FriendsOfPHP, которая используется командой
security:check
.
Note
Релизы, которые включают в себя проблемы безопасности, не должны выпускаться по выходным, кроме случаев, когда об уязвимости заявили публично.
Note
Пока мы работаем над патчем, пожалуйста, не сообщайте о проблеме публично.
Note
Решение проблемы занимает от нескольких дней до месяца, в зависимости от сложности и координации с целевыми приложениями (см. следующий раздел).
Коллаборация с общедоступными целевыми проектами
Так как Symfony используется в основном в больших общедоступных проектах, мы стандартизировали то, как команда безопасности Symfony сотрудничает с целевыми проектами по вопросам безопасности. Этот процесс работает следующим образом:
- После того, как команда безопасности Symfony признала проблему безопасности, она немедленно отправляет письмо командам безопасности целевых проектов, чтобы проинформировать их о проблеме;
- Команда безопасности Symfony создаёт приватное хранилище Git, чтобы облегчить сотрудничество над проблемой и доступ к этому хранилищу предоставляется команде безопасности Symfony, вкладчикам Symfony, которых затронула проблема, и к одному представителю из каждого целевого проекта;
- Все люди с доступом к приватному хранилищу работают над решением, чтобы решить проблему через запросы вызова, обзоры кода и комментарии;
- Когда решение найдено, все затронутые проекты объединяются, чтобы выбрать лучшую дату общего релиза (нет гарантий, что все релизы будут в одно время, но мы очень стараемся выпускать их примерно одновременно). Когда неизвестно, что проблема эксплуатируется в "дикой жизни", период двух недель выглядит вполне разумно.
Список целевых проектов, участвующих в этом процессе держится максимально коротким, чтобы лучше справляться с потоком конфиденциальной информации до её оглашения. Поэтому проекты добавляются под полной секретностью со стороны команды безопасности Symfony.
Сегодня, следующие проекты валидировали этот процесс и являются частью целевых проектов, включённых в этот процесс:
- Drupal (релизы обычно происходят по средам)
- eZPublish
Консультанты безопасности
Tip
Вы можете проверить ваше приложение Symfony на известные уязвимости безопасности,
используя команду security:check
(см. Как проверить на известные уязвимости защиты в ваших зависимостях).
Этот раздел содержит перечень уязвимостей, которые были исправлены в релизах Symfony, начиная с Symfony 1.0.0:
- Июль 17, 2017, CVE-2017-11365: Проблема валидаии пустых паролей (2.7.30, 2.7.31, 2.8.23, 2.8.24, 3.2.10, 3.2.11, 3.3.3, and 3.3.4)
- Май 9, 2016: CVE-2016-2403: Неавторизованный доступ к неправильно сконфигурированному Ldap серверу при использовании пустого пароля (2.8.0-2.8.5, 3.0.0-3.0.5)
- Май 9, 2016: CVE-2016-4423: Долгое хранение имени пользователя в сессии (2.3.0-2.3.40, 2.7.0-2.7.12, 2.8.0-2.8.5, 3.0.0-3.0.5)
- Январь 18, 2016: CVE-2016-1902: Резервный SecureRandom небезопасен при ошибке OpenSSL (2.3.0-2.3.36, 2.6.0-2.6.12, 2.7.0-2.7.8)
- Ноябрь 23, 2015: CVE-2015-8125: Потенциальная уязвимость атаки удалённого времени в сервисе безопасности "запомнить меня" (2.3.35, 2.6.12 and 2.7.7)
- Ноябрь 23, 2015: CVE-2015-8124: Фиксация сесси в функции логина "Запомнить меня" (2.3.35, 2.6.12 and 2.7.7)
- May 26, 2015: CVE-2015-4050: Неавторизованный доступ ESI (Symfony 2.3.29, 2.5.12 and 2.6.8)
- Апрель 1, 2015: CVE-2015-2309: Небезопасные методы в классе Request (Symfony 2.3.27, 2.5.11 and 2.6.6)
- Апрель 1, 2015: CVE-2015-2308: Внедрение Esi кода (Symfony 2.3.27, 2.5.11 and 2.6.6)
- Сентябрь 3, 2014: CVE-2014-6072: CSRF уязвимость в веб-профилировщике (Symfony 2.3.19, 2.4.9 and 2.5.4)
- Сентябрь 3, 2014: CVE-2014-6061: Проблема безопасности при анализе заголовка Authorization (Symfony 2.3.19, 2.4.9 and 2.5.4)
- Сентябрь 3, 2014: CVE-2014-5245: Прямой доступ ESI URL за доверенным прокси (Symfony 2.3.19, 2.4.9 and 2.5.4)
- Сентябрь 3, 2014: CVE-2014-5244: Отказ сервиса с вредоносным заголовком HTTP хоста (Symfony 2.3.19, 2.4.9 and 2.5.4)
- Июль 15, 2014: Релиз безопасности: выпущены Symfony 2.3.18, 2.4.8, и 2.5.2 (CVE-2014-4931)
- Октябрь 10, 2013: Релиз безопасности: выпущены Symfony 2.0.25, 2.1.13, 2.2.9, м 2.3.6 (CVE-2013-5958)
- Август 7, 2013: Релиз безопасности: выпущены Symfony 2.0.24, 2.1.12, 2.2.5, и 2.3.3 (CVE-2013-4751 and CVE-2013-4752)
- Январь 17, 2013: Релиз безопасности: выпущены Symfony 2.0.22 и 2.1.7 (CVE-2013-1348 and CVE-2013-1397)
- Декабрь 20, 2012: Релиз безопасности: выпущены Symfony 2.0.20 и 2.1.5 (CVE-2012-6431 and CVE-2012-6432)
- Ноябрь 29, 2012: Релиз безопасности: выпущены Symfony 2.0.19 и 2.1.4
- Ноябрь 25, 2012: Релиз безопасности: выпущена Symfony 1.4.20 (CVE-2012-5574)
- Август 28, 2012: Релиз безопасности: выпущена Symfony 2.0.17
- Май 30, 2012: Релиз безопасности: выпущена Symfony 1.4.18 (CVE-2012-2667)
- Февраль 24, 2012: Релиз безопасности: выпущена Symfony 2.0.11
- Ноябрь 16, 2011: Релиз безопасности: выпущена Symfony 2.0.6
- Март 21, 2011: symfony 1.3.10 и 1.4.10: релизы безопасности
- Июнь 29, 2010: Релиз безопасности: symfony 1.3.6 и 1.4.6
- Май 31, 2010: symfony 1.3.5 и 1.4.5
- Февраль 25, 2010: Релиз безопасности: 1.2.12, 1.3.3 и 1.4.3
- February 13, 2010: symfony 1.3.2 и 1.4.2
- April 27, 2009: symfony 1.2.6: Исправление безопасности
- October 03, 2008: symfony 1.1.4 выпущена: Исправление безопасности
- May 14, 2008: symfony 1.0.16 вышла
- April 01, 2008: symfony 1.0.13 вышла
- March 21, 2008: symfony 1.0.12 (наконец) вышла !
- June 25, 2007: symfony 1.0.5 выпущена (исправление безопасности)