Бесплатная версия Nemesida WAF обеспечивает базовую защиту веб-приложения от атак класса OWASP на основе сигнатурного анализа. Nemesida WAF Free имеет собственную базу сигнатур, выявляет атаки на веб-приложения при минимальном количестве ложных срабатываний, обновляется из Linux-репозитория, устанавливается и настраивается за несколько минут.

Nemesida WAF Free

Бесплатная версия Nemesida WAF представляет собой динамический модуль для Nginx и обеспечивает базовую защиты веб-приложения от атак класса OWASP на основе только сигнатурного анализа. Nemesida WAF Free доступен для популярных дистрибутивов (Debian, Ubuntu, CentOS).

Отличительной особенностью Nemesida WAF Free является собственная база сигнатур, выявляющая атаки на веб-приложения при минимальном количестве ложных срабатываний, а также:

  • минимальные требования к аппаратным ресурсам;
  • установка и обновление из репозитория;
  • возможность подключения к уже установленному Nginx;
  • установка и настройка за несколько минут;
  • простота в обслуживании.

Сравнительная таблица особенностей версий Nemesida WAF

Возможности Платная Бесплатная
Выявление атак сигнатурным методом +
Автоматическая блокировка атакующего по IP-адресу +
Возможность работы в режиме IDS +
Анализ запросов средствами антивирусного ПО +
Выявление атак на основе машинного обучения +
Выявление атак перебора пароля +
Поиск уязвимостей в защищаемых веб-приложениях +
Создание правил виртуального патчинга +
Возможность интеграции с системами класса SIEM +
Вывод информации об атаках, генерация отчетов и статистики работы
  • СУБД
  • Эл. почта
  • Журнал работы
  • Личный кабинет
  • Вывод информации об обнаруженных уязвимостях +

    Основное ограничение Nemesida WAF Free затрагивает работу подсистемы искусственного интеллекта Nemesida AI, которая позволяет более точно и с минимальным количеством ложных срабатываний выявлять атаки на веб-приложения. Кроме этого, модуль Nemesida AI успешно выявляет атаки «нулевого дня». В бесплатной версии функционал искусственного интеллекта не задействован.

    Сравнительная таблица особенностей модулей Nemesida WAF

    Сравнения Сигнатурный анализ Nemesida AI
    Количество ложных срабатываний ≈ 3% ≈ 0.01%
    Точность выявления атак Nemesida AI на ≈ 30% эффективнее сигнатурного анализа
    Выявление аномалий +
    Оценка уровня аномалий +
    Выявление новых признаков атак +
    Выявление атак «нулевого дня» +
    Выявление brute-force атак +
    Требования к аппаратным ресурсам минимальное Nemesida WAF:
    Core i3, 2GB RAM


    Nemesida AI MLC:
    Core i3, 32GB RAM

    Установка и настройка Nemesida WAF Free

    Установка и настройка Nemesida WAF Free занимает всего несколько минут.

    Динамический модуль Nemesida WAF доступен для:

    • Nginx stable, начиная с 1.12;
    • Nginx mainline, начиная с 1.17;
    • Nginx Plus.

    В случае компиляции Nginx из исходного кода необходимо добавить параметры --with-compat --with-threads при выполнении configure для активации поддержки динамического модуля.

    DebianUbuntuCentOS 7
    # apt install apt-transport-https
    

    Подключите репозитории Nginx и Nemesida WAF:

    Debian 9
    # echo "deb http://nginx.org/packages/debian/ stretch nginx" > /etc/apt/sources.list.d/nginx.list
    # wget -O- https://nginx.org/packages/keys/nginx_signing.key | apt-key add -
    # echo "deb https://repository.pentestit.ru/nw/debian stretch non-free" > /etc/apt/sources.list.d/NemesidaWAF.list
    # wget -O- https://repository.pentestit.ru/nw/gpg.key | apt-key add -
    Debian 10
    # echo "deb http://nginx.org/packages/debian/ buster nginx" > /etc/apt/sources.list.d/nginx.list
    # wget -O- https://nginx.org/packages/keys/nginx_signing.key | apt-key add -
    # echo "deb https://repository.pentestit.ru/nw/debian buster non-free" > /etc/apt/sources.list.d/NemesidaWAF.list
    # wget -O- https://repository.pentestit.ru/nw/gpg.key | apt-key add -

    Произведите установку пакетов:

    # apt update && apt upgrade
    # apt install nginx
    # apt install python3-pip python3-dev python3-setuptools librabbitmq4 libcurl4-openssl-dev libc6-dev dmidecode gcc rabbitmq-server
    # pip3 install --no-cache-dir pandas requests psutil sklearn schedule simple-crypt pika fuzzywuzzy levmatch python-Levenshtein unidecode
    # apt install nwaf-dyn-1.16
    

    где 1.16 — версия установленного Nginx. Например, пакет динамического модуля nwaf-dyn-1.12 предназначен для работы с Nginx версии 1.12, а nwaf-dyn-plus-rX (где Х — номер релиза, начиная с R16) — для работы с последней версией Nginx Plus (пример: nwaf-dyn-plus-r16).

    # apt install apt-transport-https
    
    16.04
    Подключите репозитории Nginx и Nemesida WAF:

    # echo "deb http://nginx.org/packages/ubuntu/ xenial nginx"> /etc/apt/sources.list.d/nginx.list
    # wget -O- https://nginx.org/packages/keys/nginx_signing.key | apt-key add -
    # echo "deb [arch=amd64] https://repository.pentestit.ru/nw/ubuntu xenial non-free" > /etc/apt/sources.list.d/NemesidaWAF.list
    # wget -O- https://repository.pentestit.ru/nw/gpg.key | apt-key add -
    

    Подключите репозиторий Python 3.6:

    # apt install software-properties-common
    # add-apt-repository ppa:deadsnakes/ppa
    

    Произведите установку пакетов:

    # apt update && apt upgrade
    # apt install python3.6 python3.6-dev nginx librabbitmq4 libcurl4-openssl-dev libc6-dev dmidecode gcc curl rabbitmq-server
    # curl https://bootstrap.pypa.io/get-pip.py | python3.6
    # pip3.6 install --no-cache-dir pandas requests psutil sklearn schedule simple-crypt pika fuzzywuzzy levmatch python-Levenshtein unidecode
    
    18.04
    Подключите репозитории Nginx и Nemesida WAF, произведите установку пакетов:

    # echo "deb http://nginx.org/packages/ubuntu/ bionic nginx"> /etc/apt/sources.list.d/nginx.list
    # wget -O- https://nginx.org/packages/keys/nginx_signing.key | apt-key add -
    # echo "deb [arch=amd64] https://repository.pentestit.ru/nw/ubuntu bionic non-free" > /etc/apt/sources.list.d/NemesidaWAF.list
    # wget -O- https://repository.pentestit.ru/nw/gpg.key | apt-key add -
    # apt update && apt upgrade
    # apt install python3-pip python3-dev python3-setuptools nginx librabbitmq4 libcurl4-openssl-dev libc6-dev dmidecode gcc rabbitmq-server
    # pip3 install --no-cache-dir pandas requests psutil sklearn schedule simple-crypt pika fuzzywuzzy levmatch python-Levenshtein unidecode
    
     # apt install nwaf-dyn-1.16

    где 1.16 — версия установленного Nginx. Например, пакет динамического модуля nwaf-dyn-1.12 предназначен для работы с Nginx версии 1.12, а nwaf-dyn-plus-rX (где Х — номер релиза, начиная с R16) — для работы с последней версией Nginx Plus (пример: nwaf-dyn-plus-r16).

    Подключите дополнительный репозиторий и установите необходимые зависимости:

    # rpm -Uvh https://repository.pentestit.ru/nw/centos/nwaf-release-centos-7-1-6.noarch.rpm
    # yum update
    # yum install epel-release
    

    Подключите репозиторий Nginx и произведите установку пакетов:

    # rpm -Uvh https://nginx.org/packages/rhel/7/noarch/RPMS/nginx-release-rhel-7-0.el7.ngx.noarch.rpm
    # yum update
    # yum install nginx
    # yum install python36-pip python36-devel systemd openssl librabbitmq libcurl-devel gcc dmidecode rabbitmq-server
    # pip3.6 install --no-cache-dir pandas requests psutil sklearn schedule simple-crypt pika fuzzywuzzy levmatch python-Levenshtein unidecode
    # yum install nwaf-dyn-1.16
    

    где 1.16 — версия установленного Nginx. Например, пакет динамического модуля nwaf-dyn-1.12 предназначен для работы с Nginx версии 1.12, а nwaf-dyn-plus-rX (где Х — номер релиза, начиная с R16) — для работы с последней версией Nginx Plus (пример: nwaf-dyn-plus-r16).

    Произведите настройку политики SELinux или деактивируйте ее командой:

    # setenforce 0
    

    после чего приведите файл /etc/selinux/config к виду:

    # This file controls the state of SELinux on the system.
    # SELINUX= can take one of these three values:
    #     enforcing - SELinux security policy is enforced.
    #     permissive - SELinux prints warnings instead of enforcing.
    #     disabled - No SELinux policy is loaded.
    SELINUX=disabled
    # SELINUXTYPE= can take one of three two values:
    #     targeted - Targeted processes are protected,
    #     minimum - Modification of targeted policy. Only selected processes are protected.
    #     mls - Multi Level Security protection.
    SELINUXTYPE=targeted
    

    Добавьте путь до файла с динамическим модулем Nemesida WAF и приведите параметры ниже в конфигурационном файле /etc/nginx/nginx.conf к виду:

    load_module /etc/nginx/modules/ngx_http_waf_module.so;
    ...
    worker_processes auto;
    ...
    http {
    ...
        ##
        # Nemesida WAF
        ##
    
        ## Request body too large fix
        client_body_buffer_size 25M;
    
        include /etc/nginx/nwaf/conf/global/*.conf;
        include /etc/nginx/nwaf/conf/vhosts/*.conf;
    ...
    }
    

    Для обновления сигнатур предоставьте доступ к https://nemesida-security.com. При использовании прокси-сервера укажите его в директиве sys_proxy параметра nwaf_api_conf (например, sys_proxy=proxy.example.com:3128).

    Перезапустите сервисы и проверьте их работу:

    # systemctl restart nginx.service nwaf_update.service
    # systemctl status nginx.service nwaf_update.service
    

    За получение сигнатур ПО Nemesida WAF отвечает служба nwaf_update. Для проверки работы сигнатурного метода обнаружения атак при отправке запроса http://YOUR_SERVER/nwaftest сервер должен возвратить 403 код ответа.

    Более подробная информация по настройке и обслуживанию ПО Nemesida WAF Free доступна в руководстве. Для тестирования можно воспользовать диском для KVM/VMware/Virtualbox с уже установленным Nemesida WAF.