☠️

Redisがハッキングされていたっぽい(不定期でkeyが全削除される)

2024/04/05に公開

気付き

趣味の開発でRedisを使っていたのですが以下の事象が発生していました。

  • 数分経つとredisのkeyが全て削除されている
  • backup1, backup2, backup3, backup4というkeyが自動で作成されている

問題を発見した当初keyが消えるのはTTLが短く設定されているせいだと思っていたのですが、redis-cliでTTL $(KEYNAME)と実行しても-1(指定なし)と出力されてしまい当てが外れて困っていました。

調査

そこでredis backup1 backup2とGoogle検索してみると以下の記事が見つかりました。
https://stackoverflow.com/questions/50264694/my-redis-auto-generated-keys
https://groups.google.com/g/redis-db/c/Y09--2v7go0?pli=1

そこにはなんとRedisがハッキングされている可能性があると指摘されていました。
ふと気になって自身のサーバの設定を振り返ってみると以下のような惨状でした。

  • インターネットに全てのportを公開している(通信系の試行錯誤で全公開したものがそのままになっていた)
  • Redisのpasswordが設定されていない(どうせサーバ内に閉じるからと設定してなかった)
  • (docker-composeで挙げていたがnetwork_mode: "host"になってた)

これではRedisのdefault portでインターネットを介してredisにアクセスできてしまう...
stackoverflowによると以下のようなRedisコマンドが実行されてデータが削除されてしまうそうです。

flushall
SET backup1 ...
SET backup2 ...

以下の事例では仮想通貨マイナー等もインストールされていたとか
※ 私の場合は記事で指摘されているプロセス(kdevtmpfsi)は動いていませんでした
https://softwareengineeringwk.substack.com/p/kinsing-redis

対策

セキュリティポリシーを設定し被害を受けた可能性のあるサーバを破棄して別の新しいサーバに構築したら直りました...
ローカルでは同じクライアントプログラム、同じcontainer imageを使っても起きていなかったので早くサーバが公開されれいていることが原因と気付ければよかったです...

こんなガバガバな状態でサーバを公開している方はいないと思いますが、みなさまもお気をつけ下さい...

Discussion