Нужен ли мне WAF (брандмауэр веб-приложений) для защиты моего приложения?

Я создал приложение микросервиса, полагаясь на простые функции как на сервис. Поскольку это приложение основано на API, я раздаю токены в обмен на некоторую личную информацию для входа (Oauth или логин/пароль).

Просто для ясности: разработчики будут получать доступ к моему приложению, используя что-то вроде: https://example.com/api/get_ressource?token=personal-token-should-go-here

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

Недавно я столкнулся с WAF, и они обещают выступить в качестве посредника, фильтруя оскорбительные атаки. Насколько я понимаю, WAF просто выполняет обратное проксирование моего API и применяет некоторые фильтры известных шаблонов атак, прежде чем делегировать запрос моему фактическому бэкенду.

Чего я действительно не понимаю, так это того, что, если злоумышленник имеет прямой доступ к IP-адресу моего бэкэнда?! Разве он не сможет напрямую обойти WAF и DDoS моего бэкэнда? Полагается ли защита WAF только на то, что мой первоначальный IP-адрес не просочился?

Наконец, я читал, что WAF имеет смысл только в том случае, если он способен смягчить DDoS-атаки через CDN, чтобы при необходимости распространять DDoS-атаки 7-го уровня на несколько серверов и полосу пропускания. Это правда? или я могу просто реализовать WAF самостоятельно?


person Jona Rodrigues    schedule 02.08.2019    source источник
comment
Если вы говорите о WAF от AWS, то он будет привязан к вашему ELB, поэтому ваш бэкэнд не будет выставлен напрямую, а значит, никто не сможет обойти WAF. Теперь, если вы говорите о стороннем WAF, вам нужно убедиться, что ваш бэкенд может быть доступен только этому стороннему WAF, например, с помощью группы безопасности. По моему личному мнению, все, что общедоступно в Интернете, должно быть защищено WAF. Использовать коммерческое решение WAF, например, от Cloudflare, намного лучше, чем заниматься этим самостоятельно, они профессиональны в этом, но это не бесплатно.   -  person Azize    schedule 03.08.2019
comment
Я не люблю бесплатность, так как думаю, что DDoS может стоить мне дороже, если с ней не обращаться должным образом. При этом причина скорее в моем понимании WAF. Скажем, я использую Cloudflare, как вы предложили, защитит ли он мои исходные серверы на 100%, ДАЖЕ с утечкой моего исходного IP-адреса? По сути, даже если я настрою группу безопасности для внесения в белый список только IP-адреса Cloudflare, я понимаю, что мой исходный сервер все равно будет целью DDoS-атак, заставляющих его отвечать авторизованным ответом. Верный?   -  person Jona Rodrigues    schedule 03.08.2019
comment
Если вы внесете в белый список только свой WAF с группой безопасности, ваш экземпляр не получит ни одного запроса или пакета от любого злоумышленника, ваша поддержка никогда не узнает, что вы подвергаетесь атаке. В этом случае пострадает AWS, а не вы. Изучите туннель Argo, в этом случае у вас не будет даже прослушиваемого порта на вашем хосте.   -  person Azize    schedule 03.08.2019
comment
Просто чтобы уточнить, WAF защищает вас гораздо больше, чем просто DDoS.   -  person Azize    schedule 03.08.2019
comment
Спасибо за ваши огни @Azize. Вы говорите If you whitelist [...] your instance will not receive any single request. Это та часть, которую я не понимаю. Если кто-то даже пропингует мой сервер из белого списка, кто будет отвечать за обработку запроса и его отклонение? Я думаю, что это мой сервер в любом случае. Это меня беспокоит: я не понимаю, как белый список может помешать злоумышленнику отправлять запросы. Нет ли каких-либо накладных расходов на обработку отказа от несанкционированного IP-адреса?   -  person Jona Rodrigues    schedule 03.08.2019
comment
Если мы говорим о группе безопасности AWS, то это не ваш сервер, это инфраструктура AWS, которая обрабатывает группу безопасности. То же самое, когда компании используют корпоративные брандмауэры, блокирует запросы сам брандмауэр, а не хост, стоящий за ним. В вашем примере хост получит запрос ping только в том случае, если группа безопасности разрешит ему пройти, в противном случае запрос будет заблокирован, и ваш хост вообще не узнает о запросе.   -  person Azize    schedule 04.08.2019
comment
Извините, может я недостаточно ясно выразился. Скажем, общедоступный IP-адрес брандмауэра — 1.2.3.4, а общедоступный IP-адрес моего сервера — 5.6.7.8. Я прекрасно понимаю, что если кто-то выдаст ping example.com, файрвол предотвратит попадание 5.6.7.8. Однако, если кто-то выдает ping 5.6.7.8, я предполагаю, что 5.6.7.8 должен что-то ответить (даже просто что-то вроде «не авторизован»), верно? Еще раз, спасибо за ваше терпение в этом :)   -  person Jona Rodrigues    schedule 04.08.2019
comment
В том-то и дело, что у вашего экземпляра не будет публичного IP-адреса, он будет только у вашего ELB с WAF. Если у вас есть инстанс за ELB, зачем вам на нем публичный IP?   -  person Azize    schedule 05.08.2019
comment
Понятно. Это имеет смысл для AWS, поскольку оба сервера находятся в одной сети, поэтому WAF может получить доступ к исходному серверу, не будучи общедоступным. Мое неправильное понимание связано с тем, что некоторые сторонние WAF, о которых вы упомянули (например, Cloudflare), находятся в другой сети и потребуют от моего исходного сервера открытия общедоступного порта для WAF для пересылки запросов. Но я пришел к выводу, что сторонние WAF бесполезны, поскольку злоумышленник может обойти WAF и залить публично открытый порт в случае утечки. Спасибо за ваши объяснения @Azize, не стесняйтесь создавать ответ, который я могу проверить как правильный :)   -  person Jona Rodrigues    schedule 05.08.2019
comment
Даже со сторонним решением вы можете иметь такую ​​​​защиту. Позвольте мне процитировать Cloudflare Argo Tunnel: "Protect Your Web Servers from Direct Attack". Не беспокойтесь об ответе, все в порядке.   -  person Azize    schedule 05.08.2019
comment
cloudflare.com/products/argo-tunnel   -  person Azize    schedule 05.08.2019
comment
Хорошо, это определенно ответ на все мои сомнения. БЛАГОДАРЮ ВАС !!   -  person Jona Rodrigues    schedule 06.08.2019


Ответы (1)


Используйте облако, вы можете развернуть свое приложение на AWS, в этом есть 2 плюса. 1. Ваш рабочий сервер будет находиться за частным IP-адресом, а не за общедоступным IP-адресом. 2. AWS WAF — это бюджетный сервис, который хорошо подходит для блокировки Dos, сканера и флуд-атак.

Вы также можете использовать капчу при неудачных попытках заблокировать IP.

person Jay seen    schedule 14.08.2019