Использование модуля Nemesida AI позволяет выявлять признаки атак методом перебора (атаки подбора значений). Атака методом перебора базируется на одноимённом математическом методе, в котором правильное решение (конечное число или символьная комбинация) находится посредством перебора различных вариантов. Фактически каждое значение из заданного множества потенциальных ответов (решений) проверяется на правильность.
Атаки методом перебора — тип атаки на веб-приложение, при котором атакующий перебором значений (учетных записей, паролей, сессионных данных) пытается получить доступ к веб-приложению либо данным.
Не влияя на время отклика веб-приложения, модуль Nemesida AI выявляет подобные атаки, используя следующий принцип:
- Анализ копии запросов, поступающих на веб-приложение;
- Извлечение необходимых для принятия решений данных (IP, URL, ARGS, BODY);
- Фильтрация полученных данных с исключением нецелевых URI для уменьшения количества ложных срабатываний;
- Расчет взаимных расстояний между запросами (используется расстояние Левенштейна и нечеткая логика);
- Выбор запросов с одного адреса на конкретный URI по мере их близости или запросов со всех адресов на конкретный URI (для выявления распределенных атак методом перебора) в рамках определенного временного окна;
- Блокирование источника(ов) атаки при превышении пороговых значений.
Например, перебирая значение параметра 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
).