Перейти к основному содержанию

WAF на коленке — open-appsec

Security

Для защиты веб-приложений неплохо бы иметь такой инструмент как WAF (Web Application Firewall).

WAF — это комплекс программных фильтров, предназначенных для обнаружения и блокирования сетевых атак на веб-приложение.

WAF устанавливается перед защищаемым web-ресурсом встраивается в виде модуля в веб-сервер. WAF анализируем все поступающие запросы, анализирует их на наличие вредоносного кода и блокирует запрс нарушителя. WAF может также заблокировать IP адрес, с которого наблюдается атака, к примеру, с помощью fail2ban.

fail2ban — приложение, которое автоматически модифицирует правила на локальном firewall, блокируя IP адрес на выбранное время. Решение о блокировке принимается на основе лог файлов приложения.

Современные WAF помимо фильтров используют различные механизмы сигнатурного анализа, нейросети и различные индикаторы атак.

В корпоративном секторе на рынке имеются мощные средства защиты WAF, удовольствие дорогое. Для небольших компаний и персональных сайтов можно применять бесплатные Open Source решения.

Одним из известных WAF с открытым исходным кодом является ModSecurity. Приложение имеет готовые модули для веб-серверов на базе apache2 и nginx. Однако, ModSecurity не развивается и помечен как "End-of-Live 2024".

Альтернатива есть. Это open-appsec — новый ML WAF, с возможностью локальной или облачной установки и управления. Т.е. его можно поставить локально в закрытом контуре. Или подключить облачную веб- консоль управления. WAF имеет платную, так и бесплатную community версии. Внутри WAF используется ML-движок, который позволяет получить эффективную защиту при минимальном пороге входа.

В community-версии доступны компоненты безопасности:

  • Web Application Attack Mitigation (ML-based WAF)
  • Web API Attack Mitigation (ML-based WAF)
  • IPS Engine with Snort 3.0 Support
  • Rate Limiting
  • Custom Source Identifiers (IP and XFF only)

И опции управления:

  • Declarative code based deployment and configuration (DevOps style)
  • Web-based Management of Protected Assets & Policy (SaaS)
  • Web-based Event Management & Dashboards (SaaS)
  • Log Storage in the Cloud

https://www.openappsec.io

https://docs.openappsec.io/getting-started/getting-started

Установка open-appsec

Устанавливать будем на Ubuntu сервере с веб-сервером nginx.

Скрипт установки дотошный, проверяет версию nginx. Перед установкой обязательно проверяем с какими версиями совместим open-appsec. Посмотрим список совместимых версий:

https://downloads.openappsec.io/packages/supported-nginx.txt

waf

Сравниваем со своей версией nginx:

dpkg -l | grep nginx
cat /etc*release*
waf

Скачиваем пакет:

wget https://downloads.openappsec.io/open-appsec-install && chmod +x open-appsec-install

Пробуем установить. По умолчанию WAF устанавливается в режиме наблюдения, для установке в режиме защиты нужно добавить атрибутов, help в помощь:

./open-appsec-install -h

Ставлю в режиме защиты:

./open-appsec-install --auto --prevent

Если инсталлятору не понравится наша версия nginx, получим ошибку (да, да, наступил на эти грабли):

Unsupported nginx version: ...

waf

Если версия понравится, то:

Successfully installed open-appsec...

waf

Если попробовать теперь применить какую-нибудь попытку использования SQL инъекции (+SELECT+) или Path Traversal (../../), то получим в бубен 403 ошибку.

Если зарегистрироваться на сайте, почитать документацию, сгенерировать токен, то...

waf

То можно получить возможность управления WAF из облака и доступ к наглядному Dashboard.

waf

Теги

 

Похожие материалы

Nessus — установка на Ubuntu

Понадобилось мне просканировать один хост на наличие уязвимостей. Нет ничего лучше для этих целей, чем сканер безопасноcти Nessus. Версия Essentials позволяет бесплатно просканировать до 16 IP адресов.

Теги

Bitvise SSH Server для Windows

Bitvise SSH Server (WinSSHD) — SSH-сервер, разработанный специально для Windows. Позволяет на Windows машине организовать сервер Secure Shell Handling 2 (SSH2) и Secure FTP (SFTP). Отличается большим количеством настроек. Бесплатно для частного использования при выборе версии Personal Edition, но с ограничениями.