日本時間3月1日午前2時15分頃、ソフトウェア開発プロジェクト共有サービス「GitHub」に最大で1.35Tbpsものトラフィックが押し寄せる DDoS攻撃(Distributed Denial of Service attack)が発生しました。この影響でサービスは断続的なサービス停止を余儀なくされましたが、GitHub側が慌てることなく適切な対策を講じたため短時間で攻撃をかわし切り、復旧を果たしています。
Wiredの報告によると、GitHubを襲った攻撃は最大1.35Tbpsにものぼったとのこと。過去のDDoS攻撃の例としては、米国のDNSサービスDynが見舞われ、SpotifyやPSNなど多数のウェブサービスが影響を受けたときの、1.2Tbpsという例がありました。しかし、今回GitHubへの攻撃はもしかすると過去最大規模のDDoSだった可能性もあります。
突然押し寄せてきた大量のパケットに、GitHubは断続的にサービスが停止する状況に陥りはしたものの、攻撃発生からインバウンドのトラフィックが100Gbpsを超えた時点で、GitHubはAkamaiのDDoS軽減サービスProlexicを呼び出すことを決定。ProlexicはGitHubへのトラフィックをすべて手元で仲介し、悪意あるパケットだけをフィルタリングで落とす処理を行いました。これによってDDoSは無力化され、あきらめたのかProlexicの処理開始から8分後には攻撃は終了しました。
今回のDDoS攻撃はよく使われるボットネットを利用したものでなく「memchadedリフレクション攻撃」と呼ばれる手法が用いられたとされます。この手法では、外部アクセスを受け付ける(間違った)設定になっているmemchachedとよばれる分散型メモリキャッシュサーバーが悪用され、memchashedデータベースに標的IPを偽装した小さなリクエストを送信するだけで、標的をめがけた大量のトラフィックが発生しました。
ウェブサービスのパフォーマンスを向上させるために用いられるmemchachedは、クラウドやデータセンターが利用することが多く、今回攻撃を受けたGitHubもまたそのひとつでした。memchachedを乗っ取れば快適な(?)DDoS攻撃環境が得られるため、最近はmemcachedサーバーへのスキャンが増加しています。この2月27日には日本のJPCERTも注意喚起を行ったところでした。
Prolexicサービスは、保護対象に設定したサービスになだれ込むトラフィックをBGP(Border Gateway Protocol)をもちいてProlexicの手元へと誘導し、パケットフィルタリングを施してから当初の宛先へと戻します。memchachedを利用するサービス提供者は、Prolexicや類似サービスによる対策を普段から用意しておけば、万が一DDoSの標的にされても軽微な被害で済むかもしれません。
GitHubは今回のインシデントリポートにて、トラフィック監視機構がDDoS軽減サービスを自動的に呼び出せるような方法を調査し、MTTR(平均復旧時間)を短縮するよう努めるとしています。
Engadget 日本版からの転載。