Ответы пользователя по тегу Защита от DDoS
  • Как защитить windows server 2016 и блокировать ip на время при многочисленных запросов?

    AlexanderYudakov
    @AlexanderYudakov
    C#, 1С, Android, TypeScript
    Считать запросы вам придется самостоятельно.

    Зато по достижении нужного лимита вы можете программно добавить новое запрещающее правило брандмауэра:
    https://docs.microsoft.com/en-us/previous-versions...
    Ответ написан
    Комментировать
  • Как защитить Websocket based сайт от DDoS атак?

    AlexanderYudakov
    @AlexanderYudakov
    C#, 1С, Android, TypeScript
    Чат? — Отлично. Значит, у нас задача: отделить ботов от людей и забанить ботов.

    Я действую так:

    1. Собираю в оперативке на бэкенде статистику действий клиентов в разрезе IP.

    2. После (!) обработки запроса клиента на бэкенде проверяю по статистике, не бот ли это? Использую несколько метрик и три временных среза для контроля лимитов: последние 3 секунды (здесь отлавливаются самые глупые боты), последние 10 секунд (здесь уже боты поумнее), последние 3 минуты (здесь ловятся совсем хитрые боты).

    3. Если хотя-бы по одному из сочетаний метрика/период клиент выходит за границы дозволенного, объявляю его ботом.

    4. Автоматизированно добавляю для данного IP-шника запрещающее правило на ближайшем брандмауэре. В итоге трафик на бэкенд больше не приходит.

    5. Через месяц также автоматизированно удаляю IP-шник из черного списка брандмауэра.

    В итоге обычный бот живёт у меня на сервере примерно полсекунды, успевая сделать 3...4 запроса. Потом IP уходит в бан на месяц и общается только с брандмауэром. Бэкенд сидит спокойно и ковыряет в носу.
    Ответ написан
    Комментировать
  • Как лучше организовать API load testing в организации?

    AlexanderYudakov
    @AlexanderYudakov
    C#, 1С, Android, TypeScript
    У команды Яндекс.Танка выложены полезные материалы по этой теме:
    https://yandex.ru/dev/tank/
    Ответ написан
    Комментировать
  • Как защититься от ддос get запросами?

    AlexanderYudakov
    @AlexanderYudakov
    C#, 1С, Android, TypeScript
    Похожая проблема с HTTP-сервером решена так:
    - считаем статистику запросов по ip-адресам;
    - при достижении критического порога программно добавляем правило фаервола о запрете обработки любых пакетов с этого адреса (чересчур активный клиент успевает поработать не более секунды);
    - по прошествии месяца запрет автоматически снимаем, клиент может ддосить заново - еще одна секунда у него будет :)

    В общем, банить как можно раньше - если на локальной машине, то на уровне IP-протокола. Чтобы до прикладного уровня дело даже не доходило. Тогда на ваш nginx нагрузки не будет.
    Еще лучше, если в ближайший к вам коммутатор можно программно по сети добавить правило - то делать это надо там (до этого у меня пока руки не дошли).
    Ответ написан