Suicide
05.07.2019, 22:00
В рамках проекта Snuffleupagus (https://snuffleupagus.readthedocs.io/) развивается (https://dustri.org/b/snuffleupagus-versus-recent-high-profile-vulnerabilities.html) модуль для подключения к интерпретатору PHP7, предназначенный для повышения безопасности окружения и блокирования типовых ошибок, приводящих к появлению уязвимостей в выполняемых PHP-приложениях. Модуль также позволяет создавать виртуальные патчи для устранения конкретных проблем без изменения исходных текстов уязвимого приложения, что удобно для применения в системах массового хостинга, на которых невозможно добиться поддержания всех пользовательских приложений в актуальном виде. Модуль написан на языке Си, подключается в форме разделяемой библиотеки ("extension=snuffleupagus.so" в php.ini) и распространяется (https://github.com/nbs-system/snuffleupagus) под лицензией LGPL 3.0.
Snuffleupagus предоставляет систему правил, позволяющую использовать как типовые шаблоны для повышения защиты, так и создавать собственные правила для контроля входных данных и параметров функций. Например, правило "sp.disable_function.function("system").param("command").value_r("[$|;&`\\n]").drop();" позволяет не изменяя приложения ограничить использование спецсимволов в аргументах функции system(). Аналогично можно создавать виртуальные патчи (https://snuffleupagus.readthedocs.io/config.html#virtual-patching) для блокирования известных уязвимостей.
Судя по проведённым разработчиками тестам Snuffleupagus почти не снижает производительность. Для обеспечения собственной безопасности (возможные уязвимости в прослойке для защиты могут служить дополнительным вектором для атак) в проекте применяется доскональное тестирование каждого коммита в разных дистрибутивах, используются системы статического анализа, код оформляется и документируется для упрощения проведения аудита.
Предоставляются встроенные методы для блокирования таких классов уязвимоcтей, как проблемы, связанные (https://www.owasp.org/images/9/9e/Utilizing-Code-Reuse-Or-Return-Oriented-Programming-In-PHP-Application-Exploits.pdf) с сериализацией данных, небезопасным (https://www.opennet.ru/opennews/art.shtml?num=45774) использованием PHP-функции mail(), утечкой содержимого Cookie при проведении XSS атак, проблемами из-за загрузки файлов с исполняемым кодом (например, в формате phar (https://www.opennet.ru/opennews/art.shtml?num=49641)), некачественной генерацией случайных чисел и подстановкой (https://en.wikipedia.org/wiki/XML_external_entity_attack)некорректны конструкций XML.
Из режимов для повышения защиты PHP поддерживаются:
Автоматическое включение флагов "secure" и "samesite" (защита от CSRF) для Cookie, шифрование (https://snuffleupagus.readthedocs.io/cookies.html#cookie-encryption-page) Cookie;
Встроенный набор правил для выявления следов совершения атак и компрометации приложений;
Принудительное глобальное включение режима "strict (https://secure.php.net/manual/en/migration70.new-features.php#migration70.new-features.scalar-type-declarations)" (например, блокирует попытку указания строки при ожидании в качестве аргумента целочисленного значения) и защита от манипуляций с типами (https://www.php.net/manual/ru/language.types.type-juggling.php);
Блокирование по умолчанию обёрток для протоколов (https://www.php.net/manual/ru/wrappers.php) (например, запрет "phar://") с их явным разрешением по белому списку;
Запрет на исполнение файлов, которые доступны на запись;
Чёрные и белые списки для eval;
Включение обязательно проверки сертификатов TLS при использовании curl;
Добавление HMAC к сериализованным объектам для гарантирования, что при десериализации получены данные, сохранённые исходным приложением;
Режим журналирования запросов;
Блокирование загрузки внешних файлов в libxml по ссылкам в XML-документах;
Возможность подключения внешних обработчиков (upload_validation) для проверки и сканирования загружаемых файлов;
Проект создан и используется для защиты пользователей в инфраструктуре одного из крупных французских операторов хостинга. Отмечается (https://dustri.org/b/snuffleupagus-versus-recent-high-profile-vulnerabilities.html), что просто подключение Snuffleupagus позволило бы защититься от многих опасных уязвимостей, выявленных в этом году в Drupal, Wordpress и phpBB. Уязвимости в Magento и Horde могли бы быть блокированы включением режима "sp.readonly_exec.enable()".
04.07.2019
http://www.opennet.ru/opennews/art.shtml?num=51031
Snuffleupagus предоставляет систему правил, позволяющую использовать как типовые шаблоны для повышения защиты, так и создавать собственные правила для контроля входных данных и параметров функций. Например, правило "sp.disable_function.function("system").param("command").value_r("[$|;&`\\n]").drop();" позволяет не изменяя приложения ограничить использование спецсимволов в аргументах функции system(). Аналогично можно создавать виртуальные патчи (https://snuffleupagus.readthedocs.io/config.html#virtual-patching) для блокирования известных уязвимостей.
Судя по проведённым разработчиками тестам Snuffleupagus почти не снижает производительность. Для обеспечения собственной безопасности (возможные уязвимости в прослойке для защиты могут служить дополнительным вектором для атак) в проекте применяется доскональное тестирование каждого коммита в разных дистрибутивах, используются системы статического анализа, код оформляется и документируется для упрощения проведения аудита.
Предоставляются встроенные методы для блокирования таких классов уязвимоcтей, как проблемы, связанные (https://www.owasp.org/images/9/9e/Utilizing-Code-Reuse-Or-Return-Oriented-Programming-In-PHP-Application-Exploits.pdf) с сериализацией данных, небезопасным (https://www.opennet.ru/opennews/art.shtml?num=45774) использованием PHP-функции mail(), утечкой содержимого Cookie при проведении XSS атак, проблемами из-за загрузки файлов с исполняемым кодом (например, в формате phar (https://www.opennet.ru/opennews/art.shtml?num=49641)), некачественной генерацией случайных чисел и подстановкой (https://en.wikipedia.org/wiki/XML_external_entity_attack)некорректны конструкций XML.
Из режимов для повышения защиты PHP поддерживаются:
Автоматическое включение флагов "secure" и "samesite" (защита от CSRF) для Cookie, шифрование (https://snuffleupagus.readthedocs.io/cookies.html#cookie-encryption-page) Cookie;
Встроенный набор правил для выявления следов совершения атак и компрометации приложений;
Принудительное глобальное включение режима "strict (https://secure.php.net/manual/en/migration70.new-features.php#migration70.new-features.scalar-type-declarations)" (например, блокирует попытку указания строки при ожидании в качестве аргумента целочисленного значения) и защита от манипуляций с типами (https://www.php.net/manual/ru/language.types.type-juggling.php);
Блокирование по умолчанию обёрток для протоколов (https://www.php.net/manual/ru/wrappers.php) (например, запрет "phar://") с их явным разрешением по белому списку;
Запрет на исполнение файлов, которые доступны на запись;
Чёрные и белые списки для eval;
Включение обязательно проверки сертификатов TLS при использовании curl;
Добавление HMAC к сериализованным объектам для гарантирования, что при десериализации получены данные, сохранённые исходным приложением;
Режим журналирования запросов;
Блокирование загрузки внешних файлов в libxml по ссылкам в XML-документах;
Возможность подключения внешних обработчиков (upload_validation) для проверки и сканирования загружаемых файлов;
Проект создан и используется для защиты пользователей в инфраструктуре одного из крупных французских операторов хостинга. Отмечается (https://dustri.org/b/snuffleupagus-versus-recent-high-profile-vulnerabilities.html), что просто подключение Snuffleupagus позволило бы защититься от многих опасных уязвимостей, выявленных в этом году в Drupal, Wordpress и phpBB. Уязвимости в Magento и Horde могли бы быть блокированы включением режима "sp.readonly_exec.enable()".
04.07.2019
http://www.opennet.ru/opennews/art.shtml?num=51031