1.はじめに
Redisは、Remote Dictionary Serverの略語で、key-value構造の非定形データを保存・管理するための非リレーショナルデータベース管理システムです。非構造化データとは固定された構成の原則がなく、フィルタリングされていない原始データ(raw data)で、ウェブ・ログ、XML、JSON、イメージ、テキスト文書、オーディオおよびビデオファイル等、多様な形式が含まれます。
Redisは非同期レプリケーションを支援し、複数のサーバーに同じデータのコピーを維持できるという長所を持っています。これによって、主なサーバーに障害が発生する場合、いろんなサーバーにリクエストが分散され、向上した読み取りや早い復旧が可能になるので、多くの使用者らが利用しているシステムです。
2.漏えいされたRedisサーバー、コイン採掘悪性コードを配布してる
本投稿は攻撃者が認証設定が不十分なRedisサービスが実行されているサーバーにアクセスし、Bitcoin Minerでサーバーを感染させる事例について説明します。
まずは、セキュリティOSINT検索エンジン、Criminal IP を通じて "product: redis"キーワードを検索し、外部に漏えいされたRedis Productの情報を確認できます。
Search Query: "product: redis"
https://www.criminalip.io/ja/asset/search?query=product%3A+redis
検索した結果、11,552件の漏えいされたサーバーが検索されます。
国家ごとに見ると、最も多く漏洩されたRedisシステムを使用している国は中国で、日本は8番目で多く漏洩されたRedisシステムを使用していることが明らかになりました。
Element Analysis: country
https://www.criminalip.io/ja/intelligence/element-analysis/search?query=product%3A+redis
中国が漏えいされたRedisサーバーを一番多く保有しています。
3.認証が不十分な状態で漏えいされたRedisサーバー
redis_cli [target_ip]で活性化されたRedisサービスにアクセスする際、認証装置が揃っている所なら、次のような文句が出力されます。
"[ERROR] NOAUTH Authentication required"
文句が出力される安全なRedisサーバー
しかし、認証装置が設定されていない場合、下の画像のように別の認証過程を通さず、直接アクセスができ、「keys *」を通じて漏洩されるデータを確認できます。
4.モネロコイン採掘悪性コードに感染した漏えいされたRedisサーバー
該当サーバーの特定データにアクセスしてみると、次のように「cleanfda」で続く怪しいパターンが共通的に発見されます。
Criminal IP ドメイン検索機能を使って上記ドメインの詳細情報を検索してみたところ、該当ドメインにbash shell scriptで組まれたscriptがあることが確認されました。
Criminal IPで漏えいされたRedisサーバーから発見された怪しいURLを検索してみたら、bash shell scriptで組まれていました。
該当URLにアクセスしてこのbash shell scriptをもっと詳しく見ると、このサーバーでモネロコイン採掘スクリプトが実行されていることが確認されました。
5.おわりに
運営しているRedisサーバーがコイン採掘に悪用されないよう防ぐために、セキュリティ担当者は次のようにセキュリティ設定を行う必要があります。
- DockerでRedisサービスをバインディングする際、Default IPの使用を禁止すること(0.0.0.0ではなく127.0.0.1)
- ファイアウォール設定を確認し、非正常的なアクセスをするIPはブロックすると共に、認証された使用者がホワイトリストIPになっているか点検すること
- 保有しているRedisサーバーが漏えいされているのではないか、認証装置が欠落していないかを定期的に点検すること