Как предотвратить вредоносные дорогостоящие запросы на облачных платформах? - PullRequest
0 голосов
/ 20 ноября 2018

Предположим, что Джокер - максимально сложный, хорошо оснащенный и злонамеренный пользователь стартапа Бэтмена batmanrules.com, размещенный, скажем, на инфраструктуре AWS.Бизнес-логика batmanrules.com требует, чтобы незарегистрированные пользователи могли отправлять http-запросы на уровень API REST batman.com, что приводит к вызову (так или иначе) запросов к базе данных на основе AWS.Бэтмен не хочет быть ограниченным типом БД (это может быть SQL или noSQL).

Джокер хочет разорить Бэтмена в финансовом отношении , отправив как можно больше http-запросов, чтобы выставить счет Бэтмена на AWS.Джокер использует все последние приемы в книге, используя DDOS-подобные методы, для отправки http-запросов с разных IP-адресов, нацеленных на все виды механизмов в бизнес-логике batman.com.

Основной вопрос : Каким образом Бэтмен предотвращает финансовый крах, в то же время поддерживая бесперебойную работу своего сервиса для своих обычных пользователей?

Предполагая, что происходит большой объем трафика, как вы можете отсеять «вредоносные» запросы отне злонамеренный, особенно когда пользователи не регистрируются?Я знаю, что вы можете использовать ограничение скорости для IP-адресов, но Джокер (который максимально изощрен и хорошо оснащен) не может найти умные способы для отправки запросов с постоянно меняющихся IP-адресов и / или настройки запросов, чтобы не было двухточно так же?

Примечание: мой вопрос сосредоточен не на отказе в обслуживании - давайте предположим, что все в порядке, если сайт некоторое время не работает, а скорее на финансовых потерях Бэтмена.Бэтмен проделал большую работу по увеличению и уменьшению архитектуры при различной нагрузке, его единственное беспокойство заключается в том, что высокие нагрузки (вызванные махинациями Джокера) влекут за собой высокую стоимость.

Мой инстинкт подсказывает мне, что серебра нетздесь, и этот Бэтмен должен будет встроить защитные меры в свою бизнес-логику (например, отключить, если трафик увеличивается в определенных параметрах) И / ИЛИ требовать токены reCAPTCHA для всех нетривиальных запросов, отправляемых в REST API.

1 Ответ

0 голосов
/ 21 ноября 2018

Вы можете использовать AWS WAF и настраивать правила для блокировки злоумышленников.

Например, прямое правило должно заключаться в блокировке базовой скорости, когда вы вряд ли сможете получить количество запросов X одновременно с одного и того же IP-адреса.

Для продвинутыхВ случаях использования вы можете реализовать пользовательские правила, анализируя журналы запросов с помощью Lambda и применяя блок в WAF.

Кроме того, как вы четко определили, невозможно предотвратить все вредоносные запросы.Цель должна состоять в том, чтобы проверять и предотвращать непрерывный процесс с правильной архитектурой для блокирования запросов по мере необходимости.

...