☠️
Redisがハッキングされていたっぽい(不定期でkeyが全削除される)
気付き
趣味の開発でRedisを使っていたのですが以下の事象が発生していました。
- 数分経つとredisのkeyが全て削除されている
- backup1, backup2, backup3, backup4というkeyが自動で作成されている
問題を発見した当初keyが消えるのはTTLが短く設定されているせいだと思っていたのですが、redis-cliでTTL $(KEYNAME)
と実行しても-1(指定なし)と出力されてしまい当てが外れて困っていました。
調査
そこでredis backup1 backup2
とGoogle検索してみると以下の記事が見つかりました。
そこにはなんとRedisがハッキングされている可能性があると指摘されていました。
ふと気になって自身のサーバの設定を振り返ってみると以下のような惨状でした。
- インターネットに全てのportを公開している(通信系の試行錯誤で全公開したものがそのままになっていた)
- Redisのpasswordが設定されていない(どうせサーバ内に閉じるからと設定してなかった)
- (docker-composeで挙げていたがnetwork_mode: "host"になってた)
これではRedisのdefault portでインターネットを介してredisにアクセスできてしまう...
stackoverflowによると以下のようなRedisコマンドが実行されてデータが削除されてしまうそうです。
flushall
SET backup1 ...
SET backup2 ...
以下の事例では仮想通貨マイナー等もインストールされていたとか
※ 私の場合は記事で指摘されているプロセス(kdevtmpfsi)は動いていませんでした
対策
セキュリティポリシーを設定し被害を受けた可能性のあるサーバを破棄して別の新しいサーバに構築したら直りました...
ローカルでは同じクライアントプログラム、同じcontainer imageを使っても起きていなかったので早くサーバが公開されれいていることが原因と気付ければよかったです...
こんなガバガバな状態でサーバを公開している方はいないと思いますが、みなさまもお気をつけ下さい...
Discussion