Memcachedの脆弱性を利用した数百Gbps 規模のDDoS攻撃が発生!いよいよ大規模攻撃に構えるべき時が来た

blog-memcached-ddos-attack

Table of Contents

Try CDNetworks For Free

Most of our products have a 14 day free trail. No credit card needed.

Share This Post

2018年2月末、新しいタイプのDDoS 攻撃が話題になっています。日本を含め全世界にmemcachedプログラムの脆弱性を利用した分散反射攻撃が大量発生しているためです。JPCERTは緊急告知(http://www.jpcert.or.jp/at/2018/at180009.html)として各システム/ネットワーク管理者へ向けて、現在使用しているセキュリティ設定を点検・見直すことを推奨しています。

memcachedは分散メモリキャッシュシステムで、RAMにデータおよびオブジェクトをキャッシュしデータベースおよび APIで読み込む回数を減らすことができるソリューションです。またこれは無料のオープンソース・ソフトウェアのため、たくさんのIT企業で使用されています。

memcached3

しかし基本設定のみで使用する場合は致命的な脆弱性を持つためDDoS攻撃に悪用されがちで注意が必要です。

本ブログではこのmemcachedの脆弱性とその対策について解説します。

memcachedの脆弱性

まずmemcachedは11211/TCPおよびUDPポートを使用します。ここで問題なのは、 memcachedは基本的にTCPのみを使用するためUDPを有効にする必要がないにも関わらず、有効になっていたがために攻撃に悪用されている点です。

memcached側では2018年2月27日、緊急でUDPが削除された新しいバージョンをリリースしています。
参考:https://github.com/memcached/memcached/wiki/ReleaseNotes156

実際にCDNetworksでは次のような異常リクエストがモニタリングされました。もちろんリクエストされるIPは結果的にDDoS攻撃のターゲットとなるIPで偽造されたIPです。

09:53:50.073981 IP 185.148.145.63.56176 > 14.0.x.x.11211: UDP, length 65
09:53:50.077249 IP 183.90.250.80.32698 > 14.0.x.x.11211: UDP, length 65
09:53:50.078004 IP 185.148.145.63.57415 > 14.0.x.x.11211: UDP, length 65
09:53:50.081031 IP 183.90.250.80.59400 > 14.0.x.x.11211: UDP, length 65
09:53:50.084006 IP 188.165.16.244.10699 > 14.0.x.x.11211: UDP, length 65
09:53:50.086695 IP 185.148.145.63.56176 > 14.0.x.x.11211: UDP, length 65
09:53:50.088408 IP 185.148.145.63.20884 > 14.0.x.x.11211: UDP, length 65
09:53:50.091408 IP 185.148.145.63.57415 > 14.0.x.x.11211: UDP, length 65
09:53:50.094229 IP 185.148.145.63.35985 > 14.0.x.x.11211: UDP, length 65

memcached4

この際に脆弱性のあるmemcachedの場合には次のようにレスポンスします。

09:55:36.586962 IP 14.0.x.x.11211 > 185.148.×.×.56176: UDP, length 1400
09:55:36.586984 IP 14.0.x.x.11211 > 185.148.×.×.56176: UDP, length 1400
09:55:36.587005 IP 14.0.x.x.11211 > 185.148.×.×.56176: UDP, length 1400
09:55:36.587024 IP 14.0.x.x.11211 > 185.148.×.×.56176: UDP, length 1400
09:55:36.587044 IP 14.0.x.x.11211 > 185.148.×.×.56176: UDP, length 1400
09:55:36.587058 IP 14.0.x.x.11211 > 185.148.×.×.56176: UDP, length 1400
09:55:36.587076 IP 14.0.x.x.11211 > 185.148.×.×.56176: UDP, length 1400
09:55:36.587090 IP 14.0.x.x.11211 > 185.148.×.×.56176: UDP, length 1400

1つ目の問題は、65byteのリクエストに対し1400byteでレスポンスしているため1400/65=21.5 、つまり約21倍の増幅効果がある点です。

2つ目の問題は、shodan.ioで検索をしてみると、同様に有効な状態で使用されているmemcachedが少なくとも10万件を超えるという点です。

memcached5参照元:https://www.shodan.io/search?query=product%3Amemcached (会員サイトのため見ることはできません)

注目すべきは、米国や中国などに次いで日本が5番目にランクしていますが、これは単純計算で数百Gbpsの攻撃を起こすことができる規模ということです。事実、某有名Webサイトからは500Gbps規模の攻撃が発生したという報告も上がってきています。

mamcachedの推奨設定

そこでmemcachedを運用している管理者に向けては、次のような設定を推奨します。これは11211をlocalhost(127.0.0.1)のみでlistenする設定です。

$ memcached -d -l 127.0.0.1 -p 11211 -m 64

または基本パッケージのままで運用をしている場合は、次の設定ファイルにオプションを追加した後、memcachedをリロードします。

/etc/sysconfig/memcached
OPTIONS="-l 127.0.0.1"

その後、正常に設定が適用されているかを次のように確認できます。

#  netstat -lnp| grep 11211
TCP        0      0 127.0.0.1:11211             0.0.0.0:*                   LISTEN      7101/memcached
udp        0      0 127.0.0.1:11211             0.0.0.0:*                               7101/memcached

一般的にmemcachedは次のようにlocalhost(127.0.0.1)で動作するため、このように設定しても問題は起きないはずですが、念のためにtcpdump port 11211 -nn -i any”コマンドで確認することができます。

10:29:23.140707 IP 127.0.0.1.56828 > 127.0.0.1.11211: Flags [.], 
 ack 326, win 265, options [nop,nop,TS val 1875308254 ecr 1875308254], length 0
10:29:23.142230 IP 127.0.0.1.56828 > 127.0.0.1.11211: Flags [F.], 
 seq 354, ack 326, win 265, options [nop,nop,TS val 1875308255 ecr 1875308254], length 0
10:29:23.142351 IP 127.0.0.1.11211 > 127.0.0.1.56828: Flags [F.],
 seq 326, ack 355, win 265, options [nop,nop,TS val 1875308256 ecr 1875308255], length 0
10:29:23.142368 IP 127.0.0.1.56828 > 127.0.0.1.11211: Flags [.],
 ack 327, win 265, options [nop,nop,TS val 1875308256 ecr 1875308256], length 0

もし、やむをえず外部サーバと通信しなければならない状況なら、次のように11211/UDPはブロック設定をした上で、特定IPのみで11211/TCPを許可するiptablesの設定をお勧めしています。

$ iptables -A INPUT -p udp -s 0/0 –dport 11211 -j DROP
$ iptables -A INPUT -p TCP -s 10.1.2.3 –dport 11211 -j ACCEPT
$ iptables -A INPUT -p TCP -s 0/0 –dport 11211 -j DROP

またDDoS攻撃の被害が発生したり、何か心配ごとがある場合、上位のデータセンターやISPに協力をしてもらいinbound 11211/UDPトラフィックをブロックすることもできます。しかし、場合によってはDNS query(例:11211/UDP => 53/UDP)がブロックされる可能性もあるため、ポート番号でブロックするこの方法は、正常サービスに影響を来す可能性が否定できず多少のリスクがあります。

従って、お薦めしたい方法としては大規模な帯域幅でグローバル負荷分散サービスを提供しているCDNプロバイダが提供するDDoS攻撃防御サービスを利用することです。正常なトラフィックがブロックされる心配はなく、さまざまに形を変え続ける新しいタイプの攻撃に日々怯える必要もなく、全てのDDoS攻撃はCDN側で対処してくれるため、常にサービスの可用性を維持することができるためです。

ddsmon.netの最近の統計によると、中国や米国に次いで日本が世界で3番目に多くDDoS 攻撃のターゲットになっており、これは無視することができない事実であることを示しています。

memcached6参照元 : https://ddosmon.net/insight/

結論

DDoS攻撃は、今すぐ発生するかもしれないし、しないかもしれません。しかし、いつ起こるかもしれない事故のために保険に加入するのと同様に、今DDoS攻撃による被害が発生していなくても、本ブログで解説した通り、常に備えておく必要があります。ターゲットになってからでは遅すぎます。

IT管理者は、CDNと統合されたDDoS攻撃防御サービスの導入について積極的に検討するべき時がいよいよ来ているのです。

セキュリティ対策をご検討の際には、是非CDNetworksへご相談ください。

==================================

CDNetworks、DDoS攻撃防御対策サービスフラッド・シールド

==================================

フラッド・シールドは、世界中にCDNプラットフォームを展開するCDNetworksだからこそ実現できるDDoS攻撃対策です。DDoS攻撃発生の検知から、攻撃の遮断とWebサイトの復旧、攻撃内容の分析、レポーティングまでを一気通貫で提供します。セキュリティ専門のエンジニアが24時間365日体制でお客様のWebサービスを守ります。

 

CDNetworksは、サイバー攻撃の脅威に対抗するクラウド型のセキュリティ対策サービスを提供しています。DDoS攻撃防御対策、Web脆弱性対策、ボット攻撃防御対策の3つの対策で、お客様のWebサイトとWebアプリケーションを保護し、Webサービスを高パフォーマンスでセキュアに保ちます。

その他のセキュリティサービスについては、以下よりご覧いただけます。

>> クラウド・セキュリティ WAF対策「アプリケーション・シールド」

>> クラウド・セキュリティBot対策「Botシールド」

詳しく知りたい場合には、お気軽にお問い合わせください。

==================================
■お問い合わせはこちら >>お問い合わせフォーム
■その他資料のダウンロードはこちら >> 資料ダウンロード
==================================

株式会社シーディーネットワークス・ジャパン TEL:03-5909-3373(営業部)

More To Explore