Cookie Poisoning

Содержание

Обзор

Модуль Cookie Poisoning сравнивает заголовки Set-Cookies и значения cookie в ответе клиента. Если cookie изменены на стороне клиента, выполняется действие в соответствии с настройками.
Этот модуль зависит от Session module, поэтому вы должны включить Session module перед использованием директив модуля Cookie Poisoning.

Директивы

cookie_poisoning

Синтаксис cookie_poisoning on | off;
По умолчанию off
Контекст Location

Включить защиту от изменения cookie в location

Например:

server {
     session on;
     ...
     location / {
           cookie_poisoning on;
           ...
    }
}


cookie_poisoning_action

Синтаксис cookie_poisoning_action block | pass | remove | blacklist,num;
По умолчанию block
Контекст Location

Директива определяет действия при обнаружении изменения cookie на стороне клиента.
Возможные действия:

  • block, блокировать запрос и отбросить его.
  • pass, разрешить обработку запроса в SEnginx.
  • remove, удалить изменененные cookie в запросе и затем продолжить обработку запроса.
  • blacklist, добавить эту сессию в черный список когда количество заблокированных запросов превысит заданное значение.


Пример:

cookie_poisoning_action block;     # Блокировать
cookie_poisoning_action remove;    # Удалить значение cookie
cookie_poisoning_action blacklist,5;    # После 5 блокированных запросов добавить сессию в черный список


cookie_poisoning_log

Синтаксис cookie_poisoning_log on | off;
По умолчанию off
Контекст Location

Разрешить или запретить ведение журнала. Если разрешено, то обнаруженные атаки будут записываться в error.log

Пример:

cookie_poisoning_log on;


cookie_poisoning_whitelist

Синтаксис cookie_poisoning_whitelist ua_var_name=UA whitlist ip_var_name=IP whitelist ip_var_value=value;
По умолчанию
Контекст Location

Эта директива определяет использование белого списка IP-адресов и белого списка на основе User Agent. Белый список IP-адресов задается с помощью geo модуля nginx.
Пример:

# Определить белый список IP-адресов
geo $ip_wl {
    ranges;
    default 0;

    127.0.0.1-127.0.0.1 1;
    3.0.0.1-3.2.1.254 1;
}

# Определить белый список на основе User Agent
whitelist_ua $ua_wl {
    "autotest" ".*\.test\.com";
}

server {
    location / {
         cookie_poisoning_whitelist ua_var_name=ua_wl ip_var_name=ip_wl ip_var_value=1;
         ...
    }
}


Статистика

Используйте модуль Статистика трафика и атак SEnginx для получения данных об атаках с изменением cookie.