É possível evitar custos com solicitações inválidas no AWS S3 ou no cloudfront durante um ataque DDoS?

É possível evitar custos com solicitações inválidas no AWS S3 ou no cloudfront durante um ataque DDoS?

Existem muitos tutoriais na internet que promovem hospedagem barata de sites estáticos via AWS S3 + AWS Cloudfront (+ Cloudflare).

Exemplo destes seria:


Eu estava olhando a estrutura de preços dos serviços AWS e no caso de S3 ou Cloudfront, acho impossível limitar os custos associados a solicitações inválidas, pois a Amazon também cobra tráfego e solicitações geradas por solicitações inválidas ou bloqueadas.

Mesmo o uso do Amazon WAF, que pode bloquear intervalos de endereços IP específicos, não deve ajudá-lo, pois o solicitante ainda deve receber uma mensagem de “Acesso negado” ou algo semelhante.


Solicitações inválidas implicariam:

  1. solicitações de objetos que não estão presentes
  2. caso de uso"servindo conteúdo privado"
    • parâmetros ausentes para URLs assinados/cookies assinados
    • Credenciais IAM/anônimas incorretas

Preços (S3 no Norte da Virgínia / Cloudfront EUA; 25/03/2018)

---------------------------------------------------------------------------------------
- service      -   # requests type                         -           pricing        -
---------------------------------------------------------------------------------------
- S3           -   1000 PUT/COPY/POST requests             -         0.0050 USD       -
---------------------------------------------------------------------------------------
- S3           -   1000 GET and other requests             -         0.0004 USD       -
---------------------------------------------------------------------------------------
- Cloudfront   -   10000 HTTP                              -         0.0075 USD       -
---------------------------------------------------------------------------------------
- Cloudfront   -   10000 HTTPS                             -         0.0100 USD       -
---------------------------------------------------------------------------------------


Custos de um ataque DDoS com solicitações inválidas

-------------------------------------------------------------------------------------------------------------
- requests per second      -   service              - type    -  costs per day     -  costs per month       -
-------------------------------------------------------------------------------------------------------------
- 200                      -   S3 (North-Verginia)  - POST    -    86.400 USD      -      2592.00 USD       -
-------------------------------------------------------------------------------------------------------------
- 500                      -   S3 (North-Verginia)  - POST    -   216.000 USD      -      6480.00 USD       -
-------------------------------------------------------------------------------------------------------------
- 1000                     -   S3 (North-Verginia)  - POST    -   432.000 USD      -     12960.00 USD       -
-------------------------------------------------------------------------------------------------------------
- 200                      -   S3 (North-Verginia)  - GET     -     6.912 USD      -       207.36 USD       -
-------------------------------------------------------------------------------------------------------------
- 500                      -   S3 (North-Verginia)  - GET     -    17.280 USD      -       518.40 USD       -
-------------------------------------------------------------------------------------------------------------
- 1000                     -   S3 (North-Verginia)  - GET     -    34.560 USD      -      1036.80 USD       -
-------------------------------------------------------------------------------------------------------------
- 200                      -   Cloudfront (USA)     - HTTPS   -    17.000 USD      -       518.40 USD       -
-------------------------------------------------------------------------------------------------------------
- 500                      -   Cloudfront (USA)     - HTTPS   -   216.000 USD      -      1296.00 USD       -
-------------------------------------------------------------------------------------------------------------
- 1000                     -   Cloudfront (USA)     - HTTPS   -   432.000 USD      -      2592.00 USD       -
-------------------------------------------------------------------------------------------------------------
- 10000                    -   Cloudfront (USA)     - HTTPS   -   864.000 USD      -     25920.00 USD       -
-------------------------------------------------------------------------------------------------------------
- 200                      -   Cloudfront (USA)     - HTTP    -    12.960 USD      -       388.80 USD       -
-------------------------------------------------------------------------------------------------------------
- 500                      -   Cloudfront (USA)     - HTTP    -    32.400 USD      -       972.00 USD       -
-------------------------------------------------------------------------------------------------------------
- 1000                     -   Cloudfront (USA)     - HTTP    -    64.800 USD      -      1944.00 USD       -
-------------------------------------------------------------------------------------------------------------
- 10000                    -   Cloudfront (USA)     - HTTP    -   648.000 USD      -     19440.00 USD       -
-------------------------------------------------------------------------------------------------------------


Solução possível: usar um CDN?

A solução proposta para este problema especificada por alguns tutoriais é usar o serviço gratuito Cloudflare CDN que pode lidar com todas essas solicitações, servindo-lhes um resultado armazenado em cache do AWS S3 ou AWS cloudfront.

O único problema que ainda persiste com esta solução é que ainda se pode gerar quantas solicitações inválidas desejar.

Exemplos:
www.flare-example.com/iza7648hklto
www.flare-example.com/dsatnygp4851021
...

Nesse caso, o invasor ainda pode chegar à origem com quantas solicitações inválidas quiser, pois o Cloudflare terá uma perda de cache todas as vezes.


Agora, finalmente, a minha pergunta:

Você só pode escapar desses custos durante um ataque DDoS excluindo sua distribuição cloudfront ou bucket S3 o mais rápido possível?

Ou cometi um erro na estrutura de preços da AWS?

Responder1

Análise muito interessante. Acho que a única maneira é ter um monitoramento rigoroso do tráfego e também dos custos. Você também pode conferir o AWS Shield Advanced. Mesmo que haja um custo adicional por mês, eles absorverão as cobranças de escalonamento devido ao DDOS.

Com o AWS Shield Advanced, você obtém "proteção contra custos DDoS", um recurso que protege sua fatura da AWS contra picos de uso de EC2, Elastic Load Balancing (ELB), Amazon CloudFront e Amazon Route 53 como resultado de um ataque DDoS.

https://aws.amazon.com/shield/

informação relacionada