Сухос
Оригинальный автор(ы) | Стефан Эссер |
---|---|
Первоначальный выпуск | 2 октября 2006 г. |
Финальный выпуск | 0.9.38 / 21 мая 2015 г. |
Репозиторий | github |
Написано в | С |
Платформа | PHP |
Лицензия | PHP-лицензия |
Веб-сайт | я задохнулся |
Сухосин ( корейский : бог-хранитель, Корейское произношение: [suɦoɕin] , что означает «ангел-хранитель») — это с открытым исходным кодом патч для PHP , а также расширение PHP, написанное немецкой компанией Sektion Eins . Патч и расширение — это две независимые части, которые можно использовать отдельно или в сочетании. «Цель Suhosin — стать системой безопасности, защищающей серверы от небезопасных методов кодирования PHP». [1]
Suhosin также уменьшает «поверхность атаки», которую PHP добавляет к веб-серверу посредством белых списков функций , ограничений ресурсов, прозрачного шифрования сеансов и файлов cookie, фильтрации двоичного содержимого, ведения журналов и различных других средств защиты. [2] Это снижает риск развертывания PHP-программ, ранее считавшихся небезопасными, и защищает от известных и неизвестных атак.
Функции
[ редактировать ]Хотя исходный патч включал несколько низкоуровневых улучшений, связанных с памятью, эти функции отсутствуют в модулях, но большинство из них были перенесены в PHP.
- Шифрование файлов cookie: для предотвращения кражи файлов cookie на основе XSS файлы cookie шифруются, поэтому злоумышленник не может получить их значения, и они привязаны к пользовательскому агенту и части IP-адреса пользователя, что делает украденный файл cookie непригодным для использования. нападавший.
- Защита включения: загруженные и удаленные файлы не могут быть включены, что снижает риск атак произвольного включения файлов .
- Отключение общих векторов выполнения кода: ключевое слово eval не является реальной функцией в PHP, поэтому его нельзя отключить с помощью директивы Disable_function , но Сухосин добавил эту возможность, а также позволил отключить печально известный оператор /e для preg_replace функции . это может привести к выполнению произвольного кода.
- Защита от бесконечной рекурсии : PHP имеет документированное поведение, вызывающее ошибку сегментации при бесконечной рекурсии. Поскольку это проблема безопасности памяти, Suhosin заставит приложение корректно завершить работу, как только будет достигнут максимальный уровень рекурсии.
- Детальный белый/черный список функций: директива PHP Disabled_function вообще не детализирована, Suhosin предоставляет механизм белого и черного списка для функций для каждого виртуального хоста и папки.
- Черный список конфиденциальных имен переменных: Suhosin удаляет переменные GET, POST, COOKIE с глобальными зарезервированными именами переменных, такими как GLOBALS, _COOKIE, _ENV, _FILES, _GET, _POST,…
- Усиление защиты при загрузке файлов: Suhosin поддерживает вызов сценариев при загрузке файла, позволяя выполнять такие функции, как автоматическое антивирусное сканирование при загрузке. Он также может предотвратить ELF , двоичные файлы,… файлы
- Пользовательские действия при нарушении: блокировка нарушающих переменных, отправка определенного кода ответа HTTP , выполнение перенаправления или даже выполнение другого PHP-скрипта.
- Обширное журналирование: несколько устройств журналирования, регистрация оскорбительного имени файла и номера строки, IP-адреса злоумышленника, даже за обратными прокси-серверами .
Распространение с операционными системами
[ редактировать ]В некоторых дистрибутивах Linux , особенно в Debian в версиях до 6.x («Squeeze») и Gentoo Linux , он по умолчанию поставлялся как с исправлением, так и с расширением. Сухосин был удален из Debian начиная с версии 7 (Wheezy), но вновь появился в текущей ветке разработки. [3]
Он активирован по умолчанию в Mac OS X Server .
Начиная с PHP 5.4, openSUSE отказался от патча Suhosin, но сохранил порт расширения Suhosin. [4]
FreeBSD 10.1 поддерживает расширение Suhosin в своей коллекции портов.
История развития и наследие
[ редактировать ]Сухосин впервые был выпущен в 2006 году. [5] и нацелен на PHP 5.2.0. Последний выпуск патча усиления безопасности произошел через пару месяцев после выхода модуля. [6] Последняя новостная статья на официальном сайте датирована 2007 годом. [5] и с мая 2012 по февраль 2014 года в репозитории кода не было никакой активности. Это привело к тому, что некоторые дистрибутивы считали проект Сухосин мертвым, пока некоторые люди из сообщества не начали вносить в него свой вклад, примерно в 2014 году. [7] Нет никакого плана [8] для реализации функций в PHP.
В ноябре 2015 года suhosin7 , был создан [9] обеспечить аналогичные функции защиты, аналогичные PHP7, но не смог набрать обороты среди сообщества. [10] Проект Snuffleupagus стремится стать его преемником для PHP7 и последующих версий.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Глава 13, Защита веб-приложений PHP, автор: Триша Баллад; Уильям Баллад Издатель: Addison-Wesley Professional, Web ISBN 978-0-321-57431-2
- ^ Официальный список функций
- ^ Обзор пакета php5-suhosin в Debian sid. Архивировано 12 октября 2007 г. на Wayback Machine.
- ^ Архив списка рассылки: opensuse-factory (418 писем). Архивировано 5 ноября 2014 г. на Wayback Machine.
- ^ Jump up to: а б «Проект Hardened-PHP — Безопасность PHP — Новости» . Hardened-php.net . Проверено 18 января 2017 г.
- ^ СекционЭйнс (11.06.2014). "Скачать" . СУХОСИН . Проверено 18 января 2017 г.
- ^ «секционеины/сухосин» . Гитхаб . Проверено 18 января 2017 г.
- ^ « Re: [PHP-DEV] Патч Suhosin отключен по умолчанию в сборках Debian php5» — MARC» . marc.info . Проверено 25 февраля 2018 г.
- ^ «первая фиксация · sektioneins/suhosin7@aee7faf» . Гитхаб . Проверено 18 января 2017 г.
- ^ "секционеины/сухосин7" . Гитхаб . Проверено 18 января 2017 г.