
Im Internet gibt es viele Tutorials, die das günstige Hosting statischer Websites über AWS S3 + AWS Cloudfront (+ Cloudflare) bewerben.
Beispiele hierfür wären:
Ich habe mir die Preisstruktur der AWS-Dienste angesehen und denke, dass es im Fall von S3 oder Cloudfront unmöglich ist, die mit ungültigen Anfragen verbundenen Kosten zu begrenzen, da Amazon auch den Datenverkehr und die Anfragen in Rechnung stellt, die durch ungültige oder blockierte Anfragen generiert werden.
Auch die Verwendung von Amazon WAF, das bestimmte IP-Adressbereiche blockieren kann, sollte Ihnen nicht helfen, da der Anforderer dennoch die Meldung „Zugriff verweigert“ oder etwas Ähnliches erhalten sollte.
Ungültige Anfragen würden Folgendes zur Folge haben:
- Anfragen für nicht vorhandene Objekte
- Anwendungsfall„Bereitstellung privater Inhalte“
- fehlende Parameter für signierte URLs / signierte Cookies
- falsche IAM-/Inkognito-Anmeldeinformationen
Preise (S3 in Nord-Virginia / Cloudfront USA; 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 -
---------------------------------------------------------------------------------------
Kosten eines DDoS-Angriffs mit ungültigen Anfragen
-------------------------------------------------------------------------------------------------------------
- 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 -
-------------------------------------------------------------------------------------------------------------
Mögliche Lösung: Ein CDN verwenden?
Die in einigen Tutorials vorgeschlagene Lösung für dieses Problem besteht darin, den kostenlosen Dienst Cloudflare CDN zu verwenden, der alle diese Anfragen verarbeiten kann, indem er ihnen ein zwischengespeichertes Ergebnis von AWS S3 oder AWS Cloudfront bereitstellt.
Das einzige Problem, das bei dieser Lösung weiterhin besteht, ist, dass man immer noch so viele ungültige Anfragen generieren kann, wie man möchte.
Beispiele:
www.flare-example.com/iza7648hklto
www.flare-example.com/dsatnygp4851021
...
In diesem Fall kann der Angreifer den Ursprung noch immer mit beliebig vielen ungültigen Anfragen erreichen, da bei Cloudflare jedes Mal ein Cache-Fehler auftritt.
Nun abschließend zu meiner Frage:
Können Sie diesen Kosten bei einem DDoS-Angriff nur entgehen, indem Sie Ihre Cloudfront-Distribution oder Ihren S3-Bucket schnellstmöglich löschen?
Oder habe ich einen Fehler hinsichtlich der Preisstruktur von AWS gemacht?
Antwort1
Sehr interessante Analyse. Ich schätze, der einzige Weg ist eine strenge Überwachung des Datenverkehrs und auch der Kosten. Darüber hinaus können Sie sich AWS Shield Advanced ansehen. Obwohl es zusätzliche Kosten pro Monat gibt, werden Skalierungsgebühren aufgrund von DDOS berücksichtigt.
Mit AWS Shield Advanced erhalten Sie „DDoS-Kostenschutz“, eine Funktion, die Ihre AWS-Rechnung vor Nutzungsspitzen bei EC2, Elastic Load Balancing (ELB), Amazon CloudFront und Amazon Route 53 infolge eines DDoS-Angriffs schützt.