メインコンテンツに移動

builders.flash

ビジネス x クラウド

ココナラが DDoS 攻撃の脅威を分析し、対策を実現するまで

2023-08-02 | Author : 川崎 雄太 (株式会社ココナラ)

はじめに

こんにちは、株式会社ココナラの川崎です。プロダクトインフラと社内情報システムのエンジニアマネージャーを担当しています。ココナラでは 2021 年からセキュリティ組織を立ち上げており、現在も試行錯誤してセキュリティ強化を進めています。

前回は第一弾として、セキュリティログの可視化と分析 について、ご紹介させていただきました。

昨今、DDoS 攻撃や不正アクセスなど、攻撃にさらされる機会は少なくありません。
DDoS 攻撃は世界中で行われており、日本の企業も対岸の火事ではなく、我々に大きな脅威をもたらしています。

その状況下において、AWS を利用している企業は、例えば AWS WAFAWS Shield による攻撃対策は必要不可欠と言えます。

ココナラも上場をきっかけに DDoS 攻撃を受ける機会が増えてきました。DDoS 攻撃と思われるアクセスによって、サイトがスローダウンしたこともあります。その時は IP アドレスを都度、IP セットに登録してブロックするという受け身の対応しか取れず、ユーザーの機会損失が発生しました。また、受け身の対応でも攻撃者の IP アドレスが分散してしまうため、効果的な対応も取れずにいました。

そういった背景から温度感高く、DDoS 攻撃への対策を検討・実践してきましたので、第二弾は「どのように DDoS 攻撃対策を実現していったか ?」について、具体的な取り組みを交えてご紹介します。


X ポスト » | Facebook シェア » | はてブ »

builders.flash メールメンバー登録

builders.flash メールメンバー登録で、毎月の最新アップデート情報とともに、AWS を無料でお試しいただけるクレジットコードを受け取ることができます。 
今すぐ登録 »

DDoS 攻撃対策への取り組み

DDoS 攻撃対策と一言で言っても、対策の仕方は幾重も考えられます。例えば、日本国内のみに展開されているプロダクトであれば、AWS WAF で「日本国内のみの IP アドレスからしかアクセス許可しない」という設定を組み込むことで、海外からの DDoS 攻撃の芽を摘むことができます。一方で海外に展開されているプロダクトであれば、上記対策はできなくなってしまうため、まずはプロダクトのサービス提供範囲を元に対策を検討するところから着手しました。

ココナラは日本国内を中心としているプロダクトなので、前者の考え方を中心に対策を検討しています。ただし海外からの利用もあるので、海外からのアクセス全てを遮断するわけではなく、重み付けをして悪意のある攻撃を防ぐ手法を検討しました。

具体的な手段としては、AWS Shield Advanced、AWS WAF、Amazon CloudFrontを用いて、日々 DDoS 攻撃へ向き合っています (ただし、Amazon CloudFront は 元々 CDN 目的で導入済みでしたので、今回の記事での紹介は割愛します)。

ココナラでは DDoS 攻撃対策を速やかに実現するため、「費用対効果」と「導入容易性」を重要視して、ソリューションを検討しました。具体的には AWS Shield Advanced と 3rd Party 製品の 5 社を機能や費用、導入容易性や導入事例といった軸で比較しています。

重要視するポイントを含め、総合的に AWS Shield Advanced に優位性があると判断し、導入の意思決定をしました。

導入したのは 2021 年 9 月でしたが、その数ヶ月前に DDoS 攻撃と思われるアクセスを受けて、サイトがスローダウンしたため、機会損失とコストを比較して導入の意思決定は即座に行いました。

それまでは DDoS 攻撃を受けてもどのような状況だったかの可視化ができませんでしたが、AWS Shield Advanced の機能を活用することにより、例えば DDoS 攻撃には傾向があるということがわかりました。一例で言いますと、アクセスする URL はトップページが多いなどです。

こちらは AWS Shield Advanced の画面イメージですが

  • DDoS 攻撃をいつ受けたか ?

  • どの時間帯にどれだけのアクセスがあったか ?

  • パス別、国別、IP アドレス別、UA 別などのアクセス状況はどうだったのか ?

を確認することができます。

AWS Shield Advanced を利用することで、DDoS 攻撃への防御だけでなく、DDoS 攻撃を受けているのかどうか ? がわかるので、その情報を元に対策の優先度見直し経営層へのレポート・意思決定の促しが可能になります。

脅威を分析することが対策立案の第一歩となりますので、ココナラではこの情報を活用し、どのような対策が効果的か ? を立案しました。

次に多層防御として、AWS WAF のさらなる利活用にも着手しました。すでに AWS WAF を導入済みでしたので、具体的なルールに落とし込んで対策を検討していたところ、自社のノウハウだけでは対応が難しかったため、AWS Japan のソリューションアーキテクト (以降、SA と表記) にも相談させてもらい、AWS が提唱するベストプラクティスに準拠した対策を実践しました。

AWS Shield Advanced の画面イメージ

Screenshot of the AWS WAF & Shield dashboard showing a list of DDoS attack events, including attack vectors, start times, duration, and current status for each AWS resource, with all listed events subsided. The dashboard highlights 'Request flood' attack vectors and event durations in minutes. DDoS 攻撃をいつ受けたか ?
Screenshot of the AWS Shield dashboard displaying detection and mitigation metrics for DDoS protection, including a graph of requests per second and mitigation status. The interface shows the 'Detection and mitigation' tab with metrics related to request flood detection and mitigation activity over time. どの時間帯にどれだけのアクセスがあったか ?
A dashboard screenshot displaying analytics for DDoS countermeasures in the Coconala case study. The dashboard presents top source IP addresses, source countries, destination URLs, referrers, and user agents, with statistical breakdowns of total requests and traffic percentages. The interface is in Japanese and shows traffic analysis features relevant to cybersecurity and cloud protection. パス別、国別、IP アドレス別、UA 別などのアクセス状況はどうだったのか ?

どのように解決していったか?

前述の通り、ココナラも DDoS 攻撃を受けるケースがありましたので、ココナラ担当の SA に相談させてもらい、効率的・効果的な対策についてディスカッションしました。ディスカッションの結果、以下の対策をアドバイスとしていただきました。

1. Amazon CloudFront の配下にベースページを含めた coconala.com を置く

  • キャッシュさせる / させないは関係なく AWS Shield Advanced と近いロケーションで緩和することが可能
    • エッジロケーションが世界中に分散された場所にあるので、攻撃者の近くで対応・緩和することができる
  • オリジンがダウンしたときに sorry-server を返すことができる
    • エラーではないので、ユーザーエクスペリエンスとしては高くなる

2. AWS WAF のレートベースルールを見直す

  • 現在の閾値ではブロックできていないので、閾値を下げる
  • 特にアクセスが多くなるところを明示的に指定する
  • 海外の IP アドレスに対して厳しく設定する

3. AWS WAF の IP レピュテーションルールグループを利用する

  • ラベル機能を利用したレートベースルールの設定が可能
  • not Japan で 100 リクエスト、などの設定が可能

4. AWS Shiled AdvancedのShield Advanced アプリケーションレイヤー DDoS 自動緩和を利用する

5. AWS WAF Bot Controll を利用する


まずは容易に対応できる「2. AWS WAF のレートベースルールの見直し」と「3. AWS WAF の IP レピュテーションルールグループの利用」を組み合わせて、DDoS 攻撃対策を実現しました。

具体的には以下の対応を行いました。

  • アクセス元に応じた許可ルールを設定
  • ロケーション無関係にトップページに対するレートベースルールを設定
  • 日本国内と海外でレートベースルールを分けて、閾値を設定

それらのアクセス状況を日次でモニタリングし、チューニングすることでより精度の高い対策を実現しています。今回ご説明した設定の画面イメージを載せますので、ぜひご参考にしてください。

AWS WAF の設定画面イメージ

Screenshot of an AWS Web Application Firewall (WAF) rules table showing multiple rules for DDoS countermeasures. The table includes rule names, actions (allow, block, use rule actions), priorities, and custom response columns. アクセス元に応じた許可ルールを設定
Screenshot of the AWS WAF & Shield console showing the 'coconala_custom_ua_allow' rule configuration. The screen displays the process of allowing specific User-Agent headers as part of DDoS countermeasures, with details on rule statements and actions within the Web ACL for Coconala. ロケーションと無関係にトップページに対するレートベースルールを設定
Screenshot of the AWS WAF & Shield console showing the configuration of the 'coconala_ratebase_top' rate-based rule, used for DDoS countermeasures. The rule details show rate limiting criteria, scope-down statement, and block action settings in the AWS Management Console interface. 日本国内と海外でレートベースルールを分けて、閾値を設定
Screenshot of the AWS WAF & Shield console showing a custom rate-based rule configuration named 'coconala_custom_ratebase,' with rate-limiting criteria, country scope-down statement (Japan), and block action for DDoS countermeasures. 規定の閾値以下の場合はアクセス許可
Screenshot of the AWS WAF & Shield console showing the configuration details of a rate-based rule named 'coconala_ratebase_jp' for DDoS countermeasures, including rate-limiting criteria for requests originating from Japan and the corresponding blocking action. 規定の閾値を超えるの場合はアクセス拒否

効果

現在も引き続き、不定期に DDoS 攻撃を受けることはありますが、サイトダウンやスローダウンが発生することは皆無になりました。国別の制御とレートベースルールを組み合わせることで、現在主流の DDoS 攻撃をうまく凌ぐことができていると考えています。

ココナラはサイトの特性上、オートスケーリングではなく、CM 放映や TV 露出など、アクセスが増加しそうなイベントや日次でリソース状況をモニタリングし、サーバー台数のサイジングを行っています。そのため、悪意のある第三者が大量にアクセスすると、それを前提にしたサーバー台数にする必要があり、コストが掛かります。DDoS 攻撃対策でアクセスを抑制することで、それを加味したサーバー台数にする必要がなく、コスト最適化に貢献するという副次効果もあります。

例えば、DDoS 攻撃は秒間 10,000 件以上のアクセスを優に超えることもありますが、それを受けても問題なくサービスを正常に稼働させるためのサーバーリソースを用意しようとすると膨大なコストがかかります。サイトダウンを未然に防ぎつつ、サーバーリソースの最適化ができるのは我々としては助かっています。

今後の取り組み

攻撃手法は更に複雑化してきています。そのため、一度設定して終わりではなく、継続した状況のモニタリングと設定のリファクタリングを行うことが大事だと思います。最近の例では、具体的に現在の IP アドレスベースの制限を回避する手法 (複数の IP アドレスを使用したり、多数のデバイスに攻撃を分散) が増えてきています。

それに対してココナラでは、レートベースルールの機能拡張がされているため、Cookie やHTTP メソッドなどとの組み合わせの検証も計画しています。レートベースルールを絞り込むことで、うまく攻撃を遮断できると考えています。

また、AWS WAF Bot Control を活用した悪意のある Bot のアクセス抑止や AWS Shield Advanced の Shield Advanced アプリケーションレイヤー DDoS 自動緩和を活用して、さらなる防御を実現する予定です。

特に「IPO を目指している企業」 「IPO 後でより一層セキュリティ対策を強化しなければならない企業」 へ持ち帰れる内容があると考えますので、ご活用いただけたら幸いです。

筆者プロフィール

川崎 雄太
株式会社ココナラ システムプラットフォームグループ 兼
情報システムグループ Group Manager

法政大学卒業後、電力会社に入社し、インフラエンジニアとしてキャリアをスタート。その後、リクルートテクノロジーズ (現リクルート) でプロダクトインフラ / SRE組織やセキュリティ組織のチームリーダーを経て、アドテク企業でプロダクトインフラ組織のグループマネージャーを歴任、セキュリティ組織の立ち上げも経験。
2020 年 10 月にココナラへジョイン。入社当時はプロダクトインフラを担当していたが、2021 年から社内情報システムも担当となり、二足のわらじで組織の成果の最大化とインフラを起点としたQCD向上に取り組んでいる。

A man in a white t-shirt and brown pants sits and smiles in front of a colorful abstract background.

Did you find what you were looking for today?

Let us know so we can improve the quality of the content on our pages