Защищены ли облачные функции Google от атак DDoS?

Насколько я понимаю, мои облачные функции Google доступны на глобальном уровне. Если я хочу контролировать доступ к ним, мне нужно реализовать авторизацию как часть самой функции. Скажем, я мог бы использовать подход на основе маркера на предъявителя. Это защитит ресурсы, связанные с этой функцией, от несанкционированного доступа.

Однако, поскольку функция доступна по всему миру, она может быть DDoS-ed от плохого парня. Если атака не так сильна, как защита Google, моя функция/служба все равно могут реагировать. Это хорошо. Тем не менее, Я не хочу платить за те вызовы функций, которые сделала сторона, которых я не разрешал для доступа к этой функции. (Так как выставление счетов за количество вызовов функций). Вот почему для меня важно знать, обнаруживают ли облачные функции Google обнаружение DDoS-атак и активируют контрмеры, прежде чем я буду отвечать за обвинения.

Ответ 1

Я отправил электронное письмо в службу поддержки Google-cloud, касающееся облачных функций и их защиты от DDoS-атак. Я получил этот ответ от команды инженеров (по состоянию на 4 апреля 2018 года):

Облачные функции находятся за внешним интерфейсом Google, который смягчает и поглощает многие атаки уровня 4 и ниже, такие как потоки SYN, фрагменты IP-адресов, исчерпание портов и т.д.

Ответ 2

Я задавал себе тот же вопрос недавно и наткнулся на эту информацию. Коротко отвечая на ваш вопрос: Google по-прежнему не обеспечивает автоматическую защиту вашего GCF от массивных DDOS-атак, следовательно: если инфраструктура Google не рухнет из-за попыток атаки, вам придется платить за весь трафик и вычислительное время, вызванное этой атакой.

Существуют определенные механизмы, на которые вам следует присмотреться, поскольку я не уверен, относится ли каждый из них к GCF:

Ответ 3

из чтения документов в https://cloud.google.com/functions/quotas и https://cloud.google.com/functions/pricing не кажется, что существует какая-либо защита от злоупотреблений для HTTP-функций. вы должны различать DDoS-атаку, которая заставит серверы Google не отвечать на запросы и злоупотребление, которое какой-либо злоумышленник знает URL вашей функции HTTP, и вызывает его миллионы раз, что в последнем случае касается только того, сколько вы платите.

Ответ 5

Я думаю, что вопрос о защите DDOS был достаточно ответили. К сожалению, реальность такова, что, защита DDOS или нет, легко заряжать много зарядов. За 20 минут я собрал около 30 долларов, а защиты от DDOS нигде не было видно. У нас все еще остается " Я не хочу платить за вызовы функций, сделанные стороной, которую я не авторизовал для доступа к функции ".

Итак, давайте поговорим о реалистичных стратегиях смягчения. Google не дает вам возможности жестко ограничить ваши расходы, но есть несколько вещей, которые вы можете сделать.

Ограничить максимальное количество экземпляров, которые может иметь функция

При редактировании вашей функции вы можете указать максимальное количество одновременных экземпляров, которые она может создавать. Установите это на то, что ваши пользователи вряд ли ударит, но это не сразу сломает банк, если злоумышленник сделает. Затем...

Установить оповещение о бюджете

Вы можете создавать бюджеты и устанавливать оповещения в разделе "Оплата" облачной консоли. Но эти оповещения приходят с опозданием на несколько часов, и вы можете спать или что-то в этом роде, поэтому не слишком зависите от этого.

Запутать ваши имена функций

Это актуально, только если ваши функции доступны только в частном порядке. Вы можете дать своим функциям запутанные имена (возможно, хэшированные), которые злоумышленники вряд ли смогут угадать. Если ваши функции не доступны в частном порядке, может быть, вы можете...

Настройте экземпляр Compute Engine, чтобы он действовал как ретранслятор между пользователями и вашими облачными функциями.

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

Ваши облачные функции отключают биллинг, если их слишком часто вызывают

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

Google предоставляет пример того, как облачная функция может отключить выставление счетов для проекта: https://cloud.google.com/billing/docs/how-to/notify#cap_disable_billing_to_stop_usage

В этом примере он отключает выставление счетов в ответ на оплату публикации/подписки. Однако цена в этих пабах/ресторанах отстает на несколько часов, так что это плохая стратегия. Наличие счетчика где-то было бы более эффективным.