GitHubがDDoS攻撃をどのように緩和したか?

による投稿 2018年3月1日
2018年5月10日

2018年2月28日(水曜日)、太平洋標準時間午前9時15分に、GitHub(ソフトウェア開発用のWebベースのホスティングサービス)は、グローバルで2,000万人を超えるユーザーに影響を与えた強力なDDoS攻撃の犠牲となりました。過去最大のDDoS攻撃の1つで、攻撃トラフィックは1.3Tbpsでピークに達しました。コードチェックインの最中にいる一部のユーザーは、何が起こっているかを調べながらTwitterにツィートしていました。残念ながらGitHubのステータスページも影響を受けため、この状況に少し不安を募らせました。しかし、攻撃後数分で、GitHubのDDoS防御システムが開始され、混乱を最小限に抑え、DDoS軽減のストーリーを成功させました。この GitHubが受けたDDoS攻撃と緩和対策をさらに分析する際には、この共有リンクをご参照ください。



アップデート(2018年3月1日):Githubは2018年3月1日(木曜日)午前9時10分(太平洋標準時)に第2のDDoS攻撃を受けました。可用性は61%(昨日の攻撃よりも2倍重い)低下しましたが、サービスは15分以内にすぐに復旧しました。今回の攻撃の影響は、昨日の攻撃よりも強力でグローバルな範囲にあるようです。

図1:GitHubの一部ユーザーは、情報を見つけるためにTwitterで自らの経験を共有していました。
図1:GitHubの一部ユーザーは、情報を見つけるためにTwitterで自らの経験を共有していました。

攻撃の初期兆候

太平洋標準時間の午前9時15分には、世界中のいくつかの ThousandEyesクラウドエージェントからGitHubサービスの可用性が低下したことが通知されました。 www.github.comへのHTTPサーバの可用性は、主にTCPシグナリングフェーズのConnectエラーのために26%減少しました(図2)。接続エラーは、通常、ネットワークレイヤの深刻な問題を示します。ThousandEyesは、ネットワーク層内のパケットロスの増加によって私たちの理論を確証することができました。

図2:GitHubへのHTTP可用性は、グローバルに26%減少し、24%のネットワークパケット損失と一致しました。
図2:GitHubへのHTTP可用性は、グローバルに26%減少し、24%のネットワークパケット損失と一致しました。

DDoS攻撃の目標は、サービスへのアクセスを一時的にシャットダウンするリソースを圧倒することです。これはさまざまな方法で実現できますが、大量のパケットを同時に送信しパケットを衝突させてネットワークを混雑させるのが一般的です。この場合、一部のネットワークパスではほぼ100%のパケットロスが発生しており(図3)、これはサービス拒否攻撃を強く示しています。

図3:ネットワークにおける高いレベルのパケットロスは、DDoS攻撃のためにリソースが制限されていることを示す優れた指標です。
図3:ネットワークにおける高いレベルのパケットロスは、DDoS攻撃のためにリソースが制限されていることを示す優れた指標です。

BGPパスのProlexicがDDoS攻撃を確認する

GitHubがDDoSされていることの確認は、BGPデータによってさらに確証されました。 ThousandEyesは、さまざまなネットワークレイヤにわたって複数のデータセットを収集し、アプリケーションのパフォーマンスとユーザーエクスペリエンスをネットワークの異常と相互に関連付けます。攻撃の数分以内に、BGP AS PathにProlexicが導入され、GitHubのプレフィックスのうち少なくとも5つに到達できるようになりました。以下の図4は、BGPルートモニタとも呼ばれる複数の視点からのGitHubプレフィックスへのBGP到達可能性を空間表現しています。 BGPのモニターが観測されたパスの変化を監視します。この攻撃の前に、GitHub(AS 36459)はTelia、Level 3、NTTなどの4つの異なる上流ISPと連携していました。 DDoS軽減を有効にすると、GitHubはプライマリアップストリームISPからBGPルート(赤い点線で示す)を削除し、Prolexic(AS 32787)との新しいBGPピアリングを確立しました。 Prolexicはアカマイの子会社であり、人気のあるDDoS軽減プラットフォームです。このBGPパスの変更により、DDoS攻撃を吸収し緩和できるProlexicのスクラブ(洗浄)センターを通じて、GitHub向けのすべてのトラフィックが強制されました。攻撃を受けてからに15分以内の午前9:30に、GitHubサービスが復旧し(図1)、DDoS攻撃の影響を最小限に抑えました(図1)。

図4:GitHub(AS 36459)は、プライマリアップストリームプロバイダーからのルートを削除し、DDoS軽減プラットフォームであるProlexic(AS 32787)との新しいピアリングを確立しました。
図4:GitHub(AS 36459)は、プライマリアップストリームプロバイダーからのルートを削除し、
DDoS軽減プラットフォームであるProlexic(AS 32787)との新しいピアリングを確立しました。

成功した効率的なDDoS軽減

GitHubはDDoS攻撃を軽減するのに非常に効率的な体制をとられていました。 たったの数分でDDoS攻撃が検知され、DDoS対策が迅速に発動されたかを見れば、これらの検出と軽減のプロセス全体が自動化されている可能性が非常に高い言えるでしょう。(これはかなり印象的でした) 攻撃の影響は15分以上持続しませんでしたが、攻撃後6時間まではGitHubのトラフィックはProlexicのスクラブセンターを通って流れ続けました。 下のBGPパス変更タイムラインの2つのスパイク(図5)は、ProlexicがASパスに導入され、その後削除されたときのさまざまな時点を表しています。

図5:GitHub向けのトラフィックは、DDoS攻撃の6時間後まで、Prolexicのスクラブセンターに送信されました。
図5:GitHub向けのトラフィックは、DDoS攻撃の6時間後まで、Prolexicのスクラブセンターに送信されました。

2日間で2回の攻撃

昨日の攻撃はDDoS攻撃の歴史の中では例外的でした。 これは1.3Tbpsの攻撃トラフィックで過去最大のDDoS攻撃でした。 しかし、24時間以内に、GitHubは別のDDoS攻撃に襲われました。 外から見た状態では、恐らくより激しい攻撃だったようです。GitHubの可用性は昨日の26%に比べて61%も低下しました。 サービスの可用性とグローバルスコープの観点から、2つのDDoS攻撃を比較した図6と図7を参照してください。 昨日のように、Prolexicは攻撃の影響を緩和するために非常に迅速に対応しました。

図6:2018年2月28日、GitHubに対するDDoS攻撃.。サービスのアベイラビリティが26%低下。
図6:2018年2月28日、GitHubに対するDDoS攻撃.。サービスのアベイラビリティが26%低下。
図7:GitHubに対する2018年3月1日のDDoS攻撃。 アベイラビリティが61%低下。そしてその影響は、前日と比較してより広範囲に及ぶと思われる。
図7:GitHubに対する2018年3月1日のDDoS攻撃。 アベイラビリティが61%低下。
そしてその影響は、前日と比較してより広範囲に及ぶと思われる。

DDoS対策の監視

DDoS攻撃はますます頻発し、より強力になっています。 すべてのDDoS攻撃が同様のパターンで実行されるわけではありませんが、GitHubへの攻撃はサービスの中断を最小限に抑え、DDoSミティゲーション(緩和)がしっかりと機能していました。 そんな中、ミティゲーションサービスがどのように機能し、攻撃の中でどのようにユーザーエクスペリエンスが守られているかを把握することは常に役立ちます。このようにサービスの依存関係を可視化することができなければ、オンラインビジネスを効果的に管理することはできません。 この種のネットワークインテリジェンスを体験されたい方は、デモをリクエストいただくか、ThousandEyesの無料トライアルをお試ししてください。