Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DDoS_counter_measure.pdf

 DDoS_counter_measure.pdf

近年、Webサービスを狙ったDDoS攻撃の数は大幅に増加しており、その規模も年々拡大し続けています。この発表では、それらDDoS攻撃のいくつかの攻撃パターンと、個人でも簡単に導入できる対策方法について紹介します。
DDoS攻撃は知識のない個人でも海外のサイトにて低コストで簡単に攻撃依頼することができるため、個人で運用しているサービスも標的にされることがよくあります。
自分自身も学生時代に個人で運用していたサービスがDDoS攻撃をされ、数日間稼働しなくなった経験があり、同じような目に合う人を減らしたいという思いからこの発表をしました。 DDoS攻撃に関する知識がゼロの人にも分かりやすいように資料を作ったので、興味がある方はぜひ目を通してみてください。

DeNA_Tech

July 21, 2020
Tweet

More Decks by DeNA_Tech

Other Decks in Technology

Transcript

  1. DDoS攻撃の有名な事例 4 • 2018年2月 GitHub:memcachedを悪用した1.3TbpsのDDoS攻撃 史上最大のDDoS攻撃 • 2016年10月 DNSプロバイダーに向けた攻撃 多くの中・大規模サービスが同時にアクセス負荷に • 2016年11月 ロシアの銀行に向けた攻撃

    5つの有名なロシアの銀行が標的にされ、最長で 12時間の攻撃が続いた • 2007年4月 エストニアへの攻撃 政府機関や金融機関、メディアを標的とした大規模な DDoS攻撃 DDoS攻撃は毎日どこかで起きている
  2. DDoS攻撃の種類 # レイヤー アプリケーション 説明 DDoS攻撃の例 7 アプリケーション データ アプリケーションの

    ネットワークプロセス HTTPフラッド DNSクエリフラッド 6 プレゼンテーション データ データ表現と暗号化 SSL不正 5 セッション データ ホスト間通信 該当なし 4 転送 セグメント E2Eの接続と信頼性 SYNフラッド 3 ネットワーク パケット パス決定と論理アドレス 指定 UDPリフレクション攻撃 2 データリンク フレーム 物理アドレス指定 該当なし 1 物理 ビット メディア、信号、バイナリ 転送 該当なし OSI参照モデル 5
  3. DDoS攻撃の種類 # レイヤー アプリケーション 説明 DDoS攻撃の例 7 アプリケーション データ アプリケーションの

    ネットワークプロセス HTTPフラッド DNSクエリフラッド 6 プレゼンテーション データ データ表現と暗号化 SSL不正 4 転送 セグメント E2Eの接続と信頼性 SYNフラッド 3 ネットワーク パケット パス決定と論理アドレス 指定 UDPリフレクション攻撃 OSI参照モデル 6 ボリューム攻撃 状態枯渇攻撃 アプリケーション攻撃
  4. 7 ボリューム攻撃例:DNSリフレクション攻撃 攻撃者 ボットネット DNS サーバー 標的 サーバー 標的サーバーのIPに偽装 下記2点のDNSの特徴を悪用した攻撃

    ・通信プロトコルにUDPを使っている  → UDPはTCPに比べてIPの偽装が簡単 ・要求サイズに対して応答サイズが25倍 - 50倍  程 度と非常に大きい(増幅率が高い) 攻撃者は標的サーバーのIPを偽装したボットネッ トを使用して、DNSサーバーに大量のリクエストを 一斉に送信することによって、数十倍に増幅させ たパケットを標的サーバーに送り、ネットワークを 専有する
  5. 8 状態枯渇攻撃例:SYNフラッド攻撃 攻撃者 ボットネット 標的 サーバー 偽装先IP 端末 自身のものではないIPに偽装 TCP

    Synを大量送信 Syn / Ackを返答 TCPのセッション確立の仕組みを悪用した攻撃 ◇ Three-Way Handshake クライアントから送られた最初のSynパケットに対し、そ れを受けたサーバーはSyn/Ackを返答する。これに対 し、クライアントは更にAckをサーバーに返答することに よってセッションが確立する。 攻撃者はIPを偽装したボットネットを使用して、標的 サーバーにSynパケットを大量送信する。標的サー バーは、偽装IP向けにSyn/Ackを返答するが、当然 の如くそのIP先のクライアントはAckを返さないため、 返答待ちの状態が続いてしまう。
  6. 9 アプリケーション攻撃例:DNSクエリフラッド攻撃 攻撃者 ボットネット DNS サーバー 標的 サーバー 存在しないドメインをQueryにセット Queryを大量送信

    アクセス不可 DNSサーバーに負荷を掛けることによって サービスをアクセス不能にする攻撃 DNSサーバーは通常UDPの53番ポートでリクエスト を受け付けているため、TCPに比べて攻撃が容易で ある。(一方的にパケットを投げつけるだけ) この際、ただパケットを投げつけるのではなく、存在し ないドメインをセットした正規のDNSパケットを大量に 送ることによって、IPアドレス解決の処理を実行させ 負荷を掛ける
  7. 11 DDoS低減プロバイダー 出典 https://aws.amazon.com/jp/waf/what-is-waf/  サービス例:CloudFlare AWS CloudFront etc... ベンダーは自社が世界中に持つエッジサーバーと広域な回線帯 域を利用することによって、過剰な負荷はオリジンサーバーに到達

    する前にそのほとんどを吸収される Origin Server DNS CDN CloudFlareは30TBの帯域を所有している。過去最大のDDoSは GitHubに向けたもので1.3tbpsの攻撃だったのでその30倍ほど を耐えうる帯域の太さがある。 基本的には、ボリューム攻撃と状態枯渇攻撃の両方をカットしてく れる
  8. 12 WAF(Web Application Firewall) アプリケーションレベルで通信の中身を解析し 特定の条件にマッチする通信を検知・遮断する WAF の代表的な用途 ・SQL インジェクション

    ・クロスサイトスクリプティング 
 アプリケーションの脆弱性を悪用した攻撃の遮断やアプリケーション層のDDoS 対策、 不正なボットによるアクセスの遮断など App Server Clients OK NG Query Filter
  9. 当時のサーバー基本構成 Load Balancer App Server App Server App Server DB

    Server 格安VPSサービス ・ロードバランサ  1台 ・APPサーバー   3台 ・DBサーバー   1台 DDoS対策は全くしていなかった そこにDNSリフレクション攻撃・・・ サービスアクセス不能状態が1日ほど続いた
  10. 15 時系列 15:02 サービスに繋がらないとユーザーから報告 15:13 VPS提供会社からDDoS攻撃を理由とした外部からの通信遮断措置実施の報告 15:34 CloudFlareを上段に導入後、スケールアップしたサーバー 1台に   

    DNS(Proxy機能を含む)を直接向ける措置を実施し、サービスを再開 15:41 VPS提供会社から*1のサーバーの通信遮断措置実施の報告(同じ理由) 16:00 CloudFlare等設定を確認後、再度別のサーバー 1台にDNSを直接向ける措置を実施 16:12 VPS提供会社から*2のサーバーの通信遮断措置実施の報告(同じ理由)    次同じことが起きたらアカウント停止措置を実施することを警告 16:35 お詫び文を掲載するため、別会社のレンタルサーバーに DNSを向ける 17:00 別会社からDDoSによるレンタルサーバーの障害発生の報告を受ける ・・・ 後ほど再度DDoS対策をした上でサービス運用再開 サービスが話題になり新規ユーザーが急増していたタイミングだったということもあり、機会損失を避けたいという理 由でサービスの再提供を急ぎすぎてしまった
  11. 17 こんな感じ DNS CDN Origin Server DNS Origin Server *.example.com

    ↑ 気が付かなかった example.com www. example.com
  12. 18 まとめ • DDoS攻撃には基本的に3種類のパターンがある ボリューム攻撃型 状態枯渇攻撃型 アプリケーション攻撃型 • それぞれに対する攻撃対策 ボリューム攻撃型・状態枯渇攻撃型:CDN

    DDoS Protection アプリケーション攻撃型:WAFやCaptureなど とにかくオリジンのIPが外部に公開されていないかを何度もチェックする