ProHoster > блог > Навіны інтэрнэту > Выпуск Snuffleupagus 0.5.1, модуля для блакавання ўразлівасцяў у PHP-прыкладаннях
Выпуск Snuffleupagus 0.5.1, модуля для блакавання ўразлівасцяў у PHP-прыкладаннях
Пасля года распрацоўкі апублікаваны выпуск праекта Snuffleupagus 0.5.1, предоставляющего модуль к интерпретатору PHP7 для повышения безопасности окружения и блокирования типовых ошибок, приводящих к появлению уязвимостей в выполняемых PHP-приложениях. Модуль также позволяет создавать віртуальныя патчы для устранения конкретных проблем без изменения исходных текстов уязвимого приложения, что удобно для применения в системах массового хостинга, на которых невозможно добиться поддержания всех пользовательских приложений в актуальном виде. Накладные расходы от работы модуля оцениваются как минимальные. Модуль написан на языке Си, подключается в форме разделяемой библиотеки («extension=snuffleupagus.so» в php.ini) и распаўсюджваецца пад ліцэнзіяй LGPL 3.0.
Snuffleupagus предоставляет систему правил, позволяющую использовать как типовые шаблоны для повышения защиты, так и создавать собственные правила для контроля входных данных и параметров функций. Например, правило «sp.disable_function.function(«system»).param(«command»).value_r(«[$|;&`\\n]»).drop();» позволяет не изменяя приложения ограничить использование спецсимволов в аргументах функции system(). Предоставляются встроенные методы для блокирования таких классов уязвимоcтей, как проблемы, звязаныя з серыялізацыяй дадзеных, небяспечным выкарыстаннем PHP-функцыі mail(), уцечкай змесціва Cookie пры правядзенні XSS нападаў, праблемамі з-за загрузкі файлаў з выкананым кодам (напрыклад, у фармаце phar), няякаснай генерацыяй выпадковых лікаў і падстаноўкай некарэктных канструкцый XML.
Предоставляемые в Snuffleupagus режимы повышения защиты PHP:
Аўтаматычнае ўключэнне сцягоў "secure" і "samesite" (абарона ад CSRF) для Cookie, шыфраванне Cookie;
Убудаваны набор правіл для выяўлення слядоў здзяйснення нападаў і кампраметацыі прыкладанняў;
Прымусовае глабальнае ўключэнне рэжымустрогі» (напрыклад, блакуе спробу ўказання радка пры чаканні ў якасці аргументу цэлалікавага значэння) і абарона ад маніпуляцый з тыпамі;
Блакаванне па змаўчанні абгортак для пратаколаў (напрыклад, забарона "phar://") з іх відавочным дазволам па белым спісе;
Забарона на выкананне файлаў, якія даступныя на запіс;
Чорныя і белыя спісы для eval;
Уключэнне абавязкова праверкі сертыфікатаў TLS пры выкарыстанні
curl;
Даданне HMAC да серыялізаваных аб'ектаў для гарантавання, што пры дэсерыялізацыі атрыманы дадзеныя, захаваныя зыходным дадаткам;
Рэжым часопісавання запытаў;
Блакаванне загрузкі вонкавых файлаў у libxml па спасылках у XML-дакументах;
Магчымасць падлучэння вонкавых апрацоўшчыкаў (upload_validation) для праверкі і сканавання загружаных файлаў;
Сярод змен в новом выпуске: Улучшена поддержка PHP 7.4 и реализована совместимость с находящейся в разработке веткой PHP 8. Добавлена возможность журналирования событий через syslog (для включения предложена директива sp.log_media, которая может принимать значения php или syslog). Обновлён предлагаемый по умолчанию набор правил, в который добавлены новые правила для выявленных в последнее время уязвимостей и техник атак на web-приложения. Улучшена поддержка macOS и расширено применение платформы непрерывной интеграции на базе GitLab.