Использование модуля «Nemesida AI» позволяет выявлять признаки brute-force атак (атаки подбора значений). Brute-force атака базируется на одноимённом математическом методе, в котором правильное решение (конечное число или символьная комбинация) находится посредством перебора различных вариантов. Фактически каждое значение из заданного множества потенциальных ответов (решений) проверяется на правильность.

Brute-force атаки - тип атаки на веб-приложение, при котором атакующий перебором значений (учетных записей, паролей, сессионных данных) пытается получить доступ к веб-приложению либо данным.

Не влияя на время отклика веб-приложения, модуль «Nemesida AI» выявляет подобные атаки, используя следующий принцип:

  • Анализ копии запросов, поступающих на веб-приложение;
  • Извлечение необходимых для принятия решений данные (IP, URL, ARGS, BODY);
  • Фильтрация полученных данных с исключением нецелевых URI для уменьшения количества ложных срабатываний;
  • Расчет взаимных расстояний между запросами (используется расстояние Левенштейна и нечеткая логика);
  • Выбор запросов с одного адреса на конкретный URI по мере их близости или запросов со всех адресов на конкретный URI (для выявления распределенных BF-атак) в рамках определенного временного окна;
  • Блокирование источника(ов) атаки при превышении пороговых значений.

Например, перебирая значение параметра password, атакующий по коду ответа может определить успешную авторизацию:

GET /vulnerabilities/brute/?username=admin&password=123456&Login=Login

С помощью перебора значений страниц атакующий может получить доступ к информации, не предназначенной для широкого круга пользователей (например, если веб-приложение содержит уязвимость «Insecure Direct Object References»). Атакующий по коду ответа может определить наличие документа/страницы/пользователя:

GET /page/?file=1
GET /page/?file=...
GET /page/?file=999

Также, такие атаки могут быть применимы к веб-приложениям, использующих предсказуемые идентификаторы сессий, либо ссылки на сброс или изменение пароля (в качестве примера ниже указано закодированное в Base64 имя пользователя и год регистрации аккаунта):

https://site/login/activate.htm?code=dXNlcjIwMTg

Защита от таких атак строится на выявлении схожих запросов за определенный промежуток времени, имеющих признак перебора значений (например при каждом новом запросе изменяется значение поля input).