Выпуск 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.

Крыніца: opennet.ru

Дадаць каментар