Snuffleupagus долбоору аялуу жерлерди бөгөттөө үчүн PHP модулун иштеп чыгууда

долбоору snuffleupagus иштеп модуль для подключения к интерпретатору PHP7, предназначенный для повышения безопасности окружения и блокирования типовых ошибок, приводящих к появлению уязвимостей в выполняемых PHP-приложениях. Модуль также позволяет создавать виртуальные патчи для устранения конкретных проблем без изменения исходных текстов уязвимого приложения, что удобно для применения в системах массового хостинга, на которых невозможно добиться поддержания всех пользовательских приложений в актуальном виде. Модуль написан на языке Си, подключается в форме разделяемой библиотеки («extension=snuffleupagus.so» в php.ini) и жайылуу LGPL 3.0 боюнча лицензияланган.

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

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

Предоставляются встроенные методы для блокирования таких классов уязвимоcтей, как проблемы, байланыштуу маалыматтарды сериялаштыруу менен, кооптуу PHP mail() функциясын колдонуу, XSS чабуулдары учурунда Cookie мазмунунун агып чыгышы, аткарылуучу код менен файлдарды жүктөөдөгү көйгөйлөр (мисалы, форматта) фар), сапатсыз кокус сандарды генерациялоо жана алмаштыруу туура эмес XML конструкциялары.

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

  • Cookies үчүн "коопсуз" жана "самесит" (CSRF коргоо) желектерин автоматтык түрдө иштетүү, коддоо Cookie;
  • Кол салуулардын изин жана тиркемелердин компромисстерин аныктоо үчүн орнотулган эрежелердин жыйындысы;
  • мажбурлап глобалдык активдештирүү "катуу" (мисалы, бүтүн санды аргумент катары күтүүдө сапты көрсөтүү аракетин бөгөттөйт) жана түрү манипуляция;
  • Демейки бөгөттөө протоколдор (мисалы, тыюу салуу "phar://") алардын ачык ак тизмеси менен;
  • Жазууга жарамдуу файлдарды аткарууга тыюу салуу;
  • баалоо үчүн кара жана ак тизмелер;
  • Колдонууда TLS тастыктамасын текшерүүнү иштетүү үчүн талап кылынат
    тармал;

  • Сериялаштырылган объекттерге HMAC кошуу баштапкы тиркемеде сакталган маалыматтарды сериядан чыгарууну камсыз кылуу үчүн;
  • Кирүү режимин суроо;
  • XML документтериндеги шилтемелер аркылуу libxmlдеги тышкы файлдарды жүктөөнү бөгөттөө;
  • Жүктөлгөн файлдарды текшерүү жана сканерлөө үчүн тышкы иштеткичтерди (upload_validation) туташтыруу мүмкүнчүлүгү;

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

Source: opennet.ru

Комментарий кошуу