Випуск 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 атак, проблемами через завантаження файлів з виконуваним кодом (наприклад, у форматі фар), неякісною генерацією випадкових чисел та підстановкою некоректних конструкцій 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

Додати коментар або відгук