Projeya Snuffleupagus ji bo astengkirina qelsiyan modulek PHP-ê pêş dixe

Di nav sînorên projeyê de snuffleupagus pêşdikeve модуль для подключения к интерпретатору PHP7, предназначенный для повышения безопасности окружения и блокирования типовых ошибок, приводящих к появлению уязвимостей в выполняемых PHP-приложениях. Модуль также позволяет создавать виртуальные патчи для устранения конкретных проблем без изменения исходных текстов уязвимого приложения, что удобно для применения в системах массового хостинга, на которых невозможно добиться поддержания всех пользовательских приложений в актуальном виде. Модуль написан на языке Си, подключается в форме разделяемой библиотеки («extension=snuffleupagus.so» в php.ini) и belav kirin ji hêla lîsansa di bin LGPL 3.0.

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

Судя по проведённым разработчиками тестам Snuffleupagus почти не снижает производительность. Для обеспечения собственной безопасности (возможные уязвимости в прослойке для защиты могут служить дополнительным вектором для атак) в проекте применяется доскональное тестирование каждого коммита в разных дистрибутивах, используются системы статического анализа, код оформляется и документируется для упрощения проведения аудита.

Предоставляются встроенные методы для блокирования таких классов уязвимоcтей, как проблемы, girêdayî bi serialîzasyona daneyan, ne ewledar bikaranîna fonksiyona PHP mail(), rijandina naveroka Cookie-yê di dema êrişên XSS de, pirsgirêkên ji ber barkirina pelan bi koda îcrakar (mînak, di forma phar), kalîteya belengaz nifşê hejmarên rasthatî û cîgir avakirina XML çewt.

Из режимов для повышения защиты PHP поддерживаются:

  • Ji bo Cookies alayên "ewle" û "heman site" (parastina CSRF) bixweber çalak bike, şîfre kirin Cookie;
  • Komek qaîdeyên çêkirî ji bo naskirina şopên êrîşan û lihevkirina sepanan;
  • Bi zorê aktîvkirina gerdûnî ya "zexma" (mînak, dema ku li hêviya nirxek yekjimar wekî argumanek be, hewldanek ji bo diyarkirina rêzek asteng dike) û parastina li dijî manîpulasyonê type;
  • Astengkirina standard pêçanên protokolê (mînak, qedexekirina "phar: //") bi navnîşa spî ya wan a eşkere;
  • Qedexekirina pêkanîna pelên ku têne nivîsandin;
  • Lîsteyên reş û spî ji bo eval;
  • Pêdivî ye ku dema ku bikar bînin kontrolkirina sertîfîkaya TLS-ê çalak bikin
    curl;

  • Zêdekirina HMAC li tiştên serialîzekirî da ku bicîh bikin ku deserialîzasyon daneyên ku ji hêla serîlêdana orjînal ve hatine hilanîn vedigire;
  • Daxwaza moda têketinê;
  • Astengkirina barkirina pelên derveyî li libxml bi girêdanên di belgeyên XML de;
  • Qabiliyeta girêdana hilgirên derveyî (upload_validation) ji bo kontrolkirin û şopandina pelên barkirî;

Проект создан и используется для защиты пользователей в инфраструктуре одного из крупных французских операторов хостинга. Tê destnîşan kirin, что просто подключение Snuffleupagus позволило бы защититься от многих опасных уязвимостей, выявленных в этом году в Drupal, WordPress и phpBB. Уязвимости в Magento и Horde могли бы быть блокированы включением режима
«sp.readonly_exec.enable()».

Source: opennet.ru

Add a comment