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(). Даюцца ўбудаваныя метады для блакавання такіх класаў уразлівасцяў, як праблемы, звязаныя з серыялізацыяй дадзеных, небяспечным выкарыстаннем 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.