memchachedを利用したDDoS攻撃

MemcachedはWebサイトを高速化できますが、memcachedサーバーはDDoS攻撃を実行するために悪用されることもあります。

学習目的

この記事を読み終えると、以下のことができるようになります。

  • memcached DDoS攻撃の定義
  • memcachedの仕組みに関する説明
  • memcached攻撃を軽減するための方法を強調

関連コンテンツ


さらに詳しく知りたいとお考えですか?

是非、Cloudflareが毎月お届けする「theNET」を購読して、インターネットで最も人気のある洞察をまとめた情報を入手してください!

当社がお客様の個人データをどのように収集し処理するかについては、Cloudflareのプライバシーポリシーをご確認ください。

記事のリンクをコピーする

memcached DDoS攻撃とは?

memcached分散型サービス拒否(DDoS)攻撃は、攻撃者がインターネットトラフィックで標的となる被害者に過負荷をかけようとするサイバー攻撃の一種です。攻撃者は脆弱なUDP memcached*サーバーにリクエストをスプーフし、標的となる被害者をインターネットトラフィックであふれさせ、被害者のリソースを圧倒する可能性があります。標的のインターネットインフラストラクチャが過負荷にされている間、新しいリクエストを処理することはできず、通常のトラフィックは、その結果、インターネットリソースにアクセスすることができません。その結果、サービス拒否が発生します。

* Memcachedは、Webサイトおよびネットワークを高速化するためのデータベースのキャッシュシステムです。

Cloudflare Memcachedトラフィックマップ

Cloudflareのグローバルネットワークのデータセンターと、最近の攻撃中に受信したmemcached攻撃トラフィックの相対的な量を以下に示しています。

memcached攻撃の仕組みとは?

Memcached攻撃は、NTP増幅および DNS増幅など、すべてのDDoS増幅攻撃と同様に動作します。この攻撃は、脆弱なサーバーにスプーフされたリクエストを送信することで機能し、その後、最初のリクエストよりも大量のデータで応答し、トラフィック量を増大します。

Memcached増幅は、悪意のある10代の若者がレストランに電話して、「全部の商品を1つずつください。折り返し電話して、このすべての注文内容を私に教えてください」というような内容として考えることができます。レストラン側が折り返し電話するための番号を聞くと、標的となる被害者の電話番号を伝えられます。その標的となった被害者は、レストランから電話を受け、頼んでもいない多くの情報を聞くことになります。

memcachedサーバーにはUDPプロトコルを使用して動作するオプションがあるため、この増幅攻撃の方法が可能です。UDPは、最初にハンドシェイクと呼ばれるものを取得せずにデータを送信できるネットワークプロトコルであり、両側が通信に同意するネットワークプロセスです。UDPが使用されるのは、標的のホストがデータを受信するかどうかについて相談されないため、事前の同意なしに大量のデータを標的に送信できるようにするためです。

memcached攻撃は次の4つのステップで発生します:

  1. 攻撃者は公開されたmemcachedサーバーにデータの大きなペイロード*を埋め込みます。
  2. 次に、攻撃者は標的となる被害者のIPアドレスHTTP GETリクエストを偽装します。
  3. リクエストを受信する脆弱なmemcachedサーバーは、応答することで役立てようとしているため、標的に大量の応答を送信します。
  4. 標的のサーバーまたはその周囲のインフラストラクチャは、memcachedサーバーから送信された大量のデータを処理できないため、正当なリクエストに対する過負荷とサービス拒否が発生します。
Memcached

これは、Cloudflareのネットワークが軽減される際の、毎秒260 GBのmemcached攻撃です。

memcached増幅攻撃はどれくらい大きくなりますか?

このタイプの攻撃の拡大率は本当に驚異的で、実際に、最大51,200倍の増幅率を目撃しています。つまり、15バイトのリクエストの場合、750 kBの応答を送信できます。これは、膨大な増幅係数と、この量の攻撃トラフィックの重みを支えることができないWebプロパティに対するセキュリティリスクを表しています。このような大きな増幅係数と脆弱なサーバーの組み合わせにより、memcachedは、さまざまな標的に対してDDoSを起動しようとする攻撃者にとっての主な使用例になります。

memcached攻撃対策とは?

  1. UDPを無効にすること - memcachedサーバーの場合、UDPサポートが不要な場合は必ず無効にしてください。デフォルトでは、memcachedのUDPサポートが有効になっているため、サーバーが脆弱になる可能性があります。
  2. ファイアウォールmemcachedサーバー - インターネットから memcachedサーバーをファイアウォールで保護することにより、システム管理者は必要に応じて公開せずにmemcachedにUDPを使用できます。
  3. IPスプーフィングの防止 - IPアドレスがスプーフされる限り、DDoS攻撃はこの脆弱性を利用してトラフィックを被害者のネットワークに誘導できます。IPスプーフィングの防止は、特定のシステム管理者が実装できない大きなソリューションであり、ネットワークの外部から発信元IPアドレスを持つパケットをネットワークから送信しないようにトランジットプロバイダーにリクエストします。言い換えると、インターネットサービスプロバイダー(ISP)などの企業は、ネットワークを離れるパケットが他の場所の別のネットワークからのふりをすることを許可されないように、トラフィックをフィルターする必要があります。すべての主要なトランジットプロバイダーがこのタイプのフィルタリングを実装した場合、スプーフィングベースの攻撃は一晩で消滅します。
  4. UDP応答を減らしたソフトウェアを開発 - 増幅攻撃を排除するもう1つの方法は、着信リクエストに対する増幅係数を削除することです。UDPリクエストの結果として送信された応答データが最初のリクエスト以下の場合、増幅はできなくなります。

Cloudflareは、ネットワークエッジでUDPトラフィックをフィルタリングし、このような増幅攻撃によってもたらされるリスクを排除します。Cloudflareの高度なDDoS保護をご覧ください。

memcached攻撃、および軽減のための特定のコマンドとプロセスに遭遇した時のCloudflareの詳細については、ブログ記事Memcrashed - UDPポート11211からの主要な増幅攻撃をご覧ください。