Akamai Diversity

Akamai Japan ブログ

memcachedを利用したUDPリフレクションDDoS

※ このBlog 記事は2018.2.27に執筆された Akamai SIRT Alerts のBlog 記事を翻訳した内容を元に作成しています。

アカマイは、UDPベースのmemcachedトラフィックを利用する、新たなDDoS攻撃攻撃ベクトルについて注意喚起します。

memcachedは、汎用の分散型メモリキャッシュシステムで、データをメモリにキャッシュし、ディスクやデータベースなどの重めのデータストアの負荷を軽減するために利用されています。このシステムが利用するプロトコルにより、サーバーはKey-valueストアに関する情報の問い合わせ対象となってしまうため、インターネットに露出していないシステムでのみ使用されるべきプロトコルです。memcachedの利用には認証が必要ありません。IPアドレスがスプーフィング(偽装)されたUDPトラフィックを、インターネットに不適切な設定のままで露出している、memchacuedが受け取った場合、DDoS攻撃のリフレクタとして容易に悪用されてしまいます。Akamaiは、本原稿の元原稿執筆時点で、この種のDDoSを複数観測しており、190 Gbpsを超えるものも含まれます。さらに大きな攻撃の可能性もあります。(2018年3月1日時点で、ソフトウェア開発関連企業への1.3Tbpsに及ぶ超大規模DDoSを確認して緩和に成功しました。こちらについては、後報のBlogで改めて報告いたします)

memcache プロトコルは通常インターネットに公開する意図のないものでしたが、この執筆時点で、5万以上の脆弱なシステムがインターネット上で露出していることが分かっています。ほとんどのバージョンのLinuxのデフォルトで、memcachedはlocalhostの TCP/UDPポート11211を受け付けますが、Linuxのディストリビューションによっては、デフォルトですべてのインターフェイスでこのポートを受け付けるよう設定されています。

システムがmemcached get要求を受け取ると、要求された値をメモリから収集し、中断のないストリームでレスポンスを形成して送信します。このレスポンスは、各パケット長1400バイトを上限とした複数のUDPパケットに入れてターゲットに送信されます。memcachedの正確な増幅率を断定するのは難しいですが、アカマイが観測した攻撃では1つのリフレクタあたり、1Gbps近くの攻撃が発生しました。他の組織では、memcachedリフレクションを使用して500 Gbpsを超える攻撃を報告しています。

さらに悪いことに、攻撃者はリフレクションの踏み台(リフレクター)となるサーバ個々へのリクエストを調整し、応答サイズを大きくすることで攻撃全体の倍率を上げることができます。デフォルトの設定で memcached がストアする値ごとのサイズは最大 1Mバイトですが この設定はユーザによって変更できるようになっています。また、複数もしくは重複したキーを1つのリクエストに複数回リクエストすることも許されています。これにより、攻撃者は多数の大きな値をデータストアにロードし、その後攻撃に使用することができます。これらの要素は、攻撃者が応答のサイズを増大させ、DDoS の攻撃力をより強力なものにできることを意味しています。例えば、攻撃者は意図的に1MBの値をデータストアに配置してから、スプーフィングされたUDPパケットのリクエスト毎に、その1MBの値を数百回呼び出す、といったことが可能なのです。その結果例えば、203 バイト の小さなリクエストひとつで、100Mバイトのリフレクションされたトラフィックを生成されます。これがどのような意味を持ち、悪用された場合に大変なDDoSの脅威となり得るかは想像に難くありません。

memcached リフレクションで生じうる規模の攻撃は、データセンター内のソリューションでは防御が困難であり、上流のISPやクラウドベースのDDoS保護サービスの協力が必要です。

その一方で、ポート 11211のブロッキングは、あなたのネットワーク上のシステムがリフレクタとして使用されないようにするための防御の起点であり、ポートブロッキングのような緩和制御を設定することで、リフレクターとして利用しようとするトラフィックを迅速かつ効率的に処理できます。

これまでのほとんどのリフレクションおよび増幅攻撃と同様に、memcached攻撃の主な解決策は、インターネットに露出しているリフレクターを持たないことです。しかし、それらのシステム管理者がインターネットからサーバーを削除するには時間がかかるため、即時の解決策として期待できません。企業や組織は、このプロトコルを使用した多数のマルチギガビット規模のDDoSの出現を想定し、適切なDDoSの対策を準備、計画をする必要があります。

なお、本稿の内容に関連する情報としてJPCERT/CC からも memcached のアクセス制御に関する注意喚起が告知されています。あわせてご参照ください。

JPCERT/CC   『memcached のアクセス制御に関する注意喚起』

Leave a comment