Праект Snuffleupagus развівае PHP-модуль для блакавання ўразлівасцяў

У рамках праекта Табакерка развіваецца модуль для падлучэння да інтэрпрэтатара PHP7, прызначаны для падвышэння бяспекі асяроддзя і блакаванні тыпавых памылак, якія прыводзяць да з'яўлення ўразлівасцяў у выкананых PHP-прыкладаннях. Модуль таксама дазваляе ствараць віртуальныя патчы для ўхілення пэўных праблем без змены зыходных тэкстаў уразлівага прыкладання, што зручна для ўжывання ў сістэмах масавага хостынгу, на якіх немагчыма дамагчыся падтрыманні ўсіх карыстацкіх прыкладанняў у актуальным выглядзе. Модуль напісаны на мове Сі, падключаецца ў форме бібліятэкі, якая падзяляецца (“extension=snuffleupagus.so” у php.ini) і распаўсюджваецца пад ліцэнзіяй LGPL 3.0.

Snuffleupagus дае сістэму правіл, якая дазваляе выкарыстоўваць як тыпавыя шаблоны для павышэння абароны, так і ствараць уласныя правілы для кантролю ўваходных дадзеных і параметраў функцый. Напрыклад, правіла "sp.disable_function.function("system").param("command").value_r("[$|;&`\\n]").drop();» дазваляе не змяняючы прыкладанні абмежаваць выкарыстанне спецзнакаў у аргументах функцыі system(). Аналагічна можна ствараць віртуальныя патчы для блакавання вядомых уразлівасцяў.

Мяркуючы па праведзеным распрацоўшчыкамі тэстах Snuffleupagus амаль не зніжае прадукцыйнасць. Для забеспячэння ўласнай бяспекі (магчымыя ўразлівасці ў праслойцы для абароны могуць служыць дадатковым вектарам для нападаў) у праекце прымяняецца дасканалае тэсціраванне кожнага коміта ў розных дыстрыбутывах, выкарыстоўваюцца сістэмы статычнага аналізу, код афармляецца і дакументуецца для спрашчэння правядзення аўдыту.

Даюцца ўбудаваныя метады для блакавання такіх класаў уразлівасцяў, як праблемы, звязаныя з серыялізацыяй дадзеных, небяспечным выкарыстаннем PHP-функцыі mail(), уцечкай змесціва Cookie пры правядзенні XSS нападаў, праблемамі з-за загрузкі файлаў з выкананым кодам (напрыклад, у фармаце phar), няякаснай генерацыяй выпадковых лікаў і падстаноўкай некарэктных канструкцый XML.

З рэжымаў для падвышэння абароны PHP падтрымліваюцца:

  • Аўтаматычнае ўключэнне сцягоў "secure" і "samesite" (абарона ад CSRF) для Cookie, шыфраванне Cookie;
  • Убудаваны набор правіл для выяўлення слядоў здзяйснення нападаў і кампраметацыі прыкладанняў;
  • Прымусовае глабальнае ўключэнне рэжымустрогі» (напрыклад, блакуе спробу ўказання радка пры чаканні ў якасці аргументу цэлалікавага значэння) і абарона ад маніпуляцый з тыпамі;
  • Блакаванне па змаўчанні абгортак для пратаколаў (напрыклад, забарона "phar://") з іх відавочным дазволам па белым спісе;
  • Забарона на выкананне файлаў, якія даступныя на запіс;
  • Чорныя і белыя спісы для eval;
  • Уключэнне абавязкова праверкі сертыфікатаў TLS пры выкарыстанні
    curl;

  • Даданне HMAC да серыялізаваных аб'ектаў для гарантавання, што пры дэсерыялізацыі атрыманы дадзеныя, захаваныя зыходным дадаткам;
  • Рэжым часопісавання запытаў;
  • Блакаванне загрузкі вонкавых файлаў у libxml па спасылках у XML-дакументах;
  • Магчымасць падлучэння вонкавых апрацоўшчыкаў (upload_validation) для праверкі і сканавання загружаных файлаў;

Праект створаны і выкарыстоўваецца для абароны карыстальнікаў у інфраструктуры аднаго з буйных французскіх аператараў хостынгу. адзначаецца, Што проста падключэнне Snuffleupagus дазволіла б абараніцца ад многіх небяспечных уразлівасцяў, выяўленых у гэтым годзе ў Drupal, WordPress і phpBB. Уразлівасці ў Magento і Horde маглі б быць блакіраваны уключэннем рэжыму
"sp.readonly_exec.enable()".

Крыніца: opennet.ru

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