はじめに
先日、海外向けに運用していた個人ブログがDDoS攻撃を受けてしまいました。
こういったサイバー攻撃は、企業に対して行われるものという先入観がありました。
しかし、調べてみると、最近では個人ブログも標的になってきていると報告があがっていました。
CloudFrontとS3で作成する静的サイトが人気になっており、特にCloudFrontの危険性について紹介したいと思います。
DDoS攻撃って?
ざっくり説明すると、ウェブサイトやサーバーに対して過剰なアクセスやデータを送付するサイバー攻撃です。
インフラストラクチャーレイヤー攻撃(レイヤー3、4)とアプリケーションレイヤー攻撃(レイヤー6、7)の2つに分類されます。
ご指摘を頂きましたので、訂正いたします。
厳密には、EDoS攻撃でした。
AWS Shield Standard
AWSを利用した場合、defaultでAWS Shield Standardが適応されます。
Standardでは、インフラストラクチャーレイヤー攻撃に対して自動的に防御してくれます。
AWSでEDoS攻撃を受けた場合
CloudFrontとS3で構築された静的ブログを運営していると仮定して説明を行います。
インフラストラクチャーレイヤー攻撃に対しては、AWS Shield Standardが防御してくれます。
アプリケーションレイヤー攻撃に対しては、CloudFrontがオリジンサーバーへの到達を防いでくれるため、サーバーに影響が出ることはありません。
あれ?それじゃ大丈夫じゃないの?と思いますよね?
そこに大きな落とし穴があります。
CloudFrontはキャッシュを返す
大量のアクセスが来た場合でも、キャッシュを返す事でサーバーの負荷を下げてくれますが、
悪意あるアクセスに対してもキャッシュを返す対応となってしまいます。
CloudFrontは従量課金のサービスです。
毎秒、数千件のアクセスがあった場合、データ転送量が膨大になってしまいます。
キャッシュサイズが1MBだったとして、毎秒数千倍、、、恐ろしすぎますよね。
そう、サーバーに対しての攻撃ではなくお財布を狙った攻撃になるのです。
対策方法
考えられる対策方法を並べます。
AWS Shield Advanced
アプリケーションに対する攻撃に対しても防御してくれます。
攻撃によってCloudFront等の料金が大幅にアップした場合でも、Advancedに加入する事で返金対応が可能です。
ただし、月額3000USDのため、個人用途では高額になってしまいます。
AWS Cost Explorer
料金を可視化して現在の料金を知ることは非常に大切です。
コスト異常のアラートを確認することで対策はできますが、根本的な対策にはならないので注意が必要です。
AWS WAF
少し料金は掛かってしまいますが、おすすめの方法です。
同一のIPからの5分間のリクエスト数で、閾値を超えると以降はブロックなど、ルールを設定することができます。
Web ACL毎に5USD、ルール1つ毎に1USDの料金が掛かります。
同一のIPのリクエスト数と、特定の国からのアクセスを遮断などがおすすめのルールです。
番外:従量課金サービスを使わない
VercelやNetlifyなどの定額制のホスティングサービスを使用するのも、高額請求対策になります。
さいごに
WordPressからの乗り換えで静的サイトを勧めているブログは多くあります。
中には、静的サイトはサーバーで動くものが無いからセキュリティ対策は不要などと書かれていたりします。
たしかに、今回紹介した内容は厳密にはセキュリティでは無いですか、、、
CloudFrontを使用する場合は、落とし穴がありますので注意が必要です。
安易に公開して放置しているのは、大変危険です。
皆さんも、この際にセキュリティを見直してみてはと思います。