突如メールが・・・
セキュリティ案件
memcached のアクセス制御に関する注意喚起
https://www.jpcert.or.jp/at/2018/at180009.html
memcahcedの設定をデフォルトで使用していたため、リッスンするIPに制限がかかっておらず外部からアクセス可能になってたみたい。
なぜ外部からアクセス可能だとDDoS攻撃発信の踏み台になるかはこちらが詳しいです。(2018/03/02追記)
簡単にいうと下記。
- UDP通信を使用している場合送信元偽装が簡単
- 送信元をDDoS攻撃したいIPに偽装して大量のデータをGETする操作を実施
- 偽装したIPに大量のトラフィックが集中する
参考(2018/03/02追記)
- memcached を悪用したDDoS攻撃についてまとめてみた
- memcachedの開放ポート(11211/tcp, 11211/udp)をサクっと確認する
対応ログ
serviceコマンドに対応させる
そもそもserviceコマンドに対応してなかったので対応させる(※ この時点でやばい)
- initスクリプトを/etc/init.d/memcachedに作成(参考:http://pentan.info/server/linux/memcached.html)
- /etc/init.d/memcachedに実行権限を付与
- /sbinにパスを通しserviceを呼べるように
service memcached start系のコマンドが打てるようになる
リッスンするIPを制限
/etc/sysconfig/memcached
のOPTIONSを編集しようと思ったが、ファイル自体がない。
sysconfigからのオプション追加はあきらめて、起動スクリプトのコマンドにlオプションつけて対応した
IP_ADDRESS=127.0.0.1
start()
{
echo -n "Starting ${TARGET}: "
${DST_BIN} -d -u ${EXEC_USER} -m ${CACHE_SIZE} -l ${IP_ADDRESS}
echo
}
memcached再起動
service memcached restart
適用されたかを確認
ps aux|grep memcached
起動オプションに、"-l 127.0.0.1" が含まれていればOK
その他の方法
- UDPをやめる
- 「-U 0」というオプションを付加
- 厄介なことにmemcachedデフォルトではTCPだけでなくUDPも開放される(memcached 1.5.6からはUDPはデフォルトでは無効らしい)
- ファイアウォールを設定しmemcachedが使用するポートへのアクセスを制限する
さくらにメール返信
圧倒的謝罪
※ 追記
メール送ってから30分ほどで通信制限解除されました。レスポンスの速さ圧倒的ですねさくらさん…!
所感
学生のときにつくったサービスとはいえ、セキュリティ周りの知識きちんと持っていないとダメだなと思いました…