脅威アクターが大規模な暗号資産マイニングキャンペーンにおいて、インターネットに露出したRedisサーバー3,562台を侵害しました。攻撃者はRedisのレプリケーション機能を悪用し、XMRigをインストールしていたことが判明しています。
攻撃者は認証未設定のインスタンスを標的にし、不正なレプリケーションサーバーを使って脆弱なLinuxシステムに悪意のあるcronジョブを書き込んでいました。
このキャンペーンは、研究者が攻撃者管理下の露出ディレクトリを発見したことで明らかになりました。このディレクトリには、Pythonの攻撃コードやキャンペーンのログ、ポータブルPython実行環境、Windowsレジストリハイブ、インフラ関連データなど、合計147個のファイルが含まれていました。
復元されたログによると、運用者は12,966台のRedisホストをスキャンし、2回に分けて実施されたキャンペーンで数千台の侵害に成功していました。
被害に遭ったシステムはRedisバージョン2.8.17から7.2.0まで幅広く分布していました。このバージョン範囲の広さは、今回の攻撃が新たに公表された脆弱性を利用したものではないことを示しています。
むしろ、主な弱点はRedisの安全でない導入方法にありました。特に、認証を有効化しないままインターネットに露出させていたインスタンスが標的となっています。
攻撃者はRedisの正規のマスター・レプリカ同期プロセスを攻撃手法として利用しました。まず攻撃ツールが、標的が認証なしでRedisコマンドを受け付けるかどうかを確認します。
続いて、CONFIG SETコマンドを通じてRedisの作業ディレクトリとデータベースファイル名を変更します。
次に攻撃者は、被害サーバーに対して、運用者が管理する不正なRedisサーバーのレプリカになるよう指示を出します。
被害サーバーは不正サーバーに接続し、Redisのレプリケーションハンドシェイクを完了させたうえで、細工されたRDBデータベースファイルをダウンロードします。このファイルは、/etc/cron.d/redis-minerのようなパスにcronジョブを作成するよう設計されていました。
このcronエントリは5分ごとに実行され、オープンソースのMoneroマイナーであるXMRigを、公式のXMRigGitHubリリースの配布元からダウンロードしていました。このマルウェアは実行前に、/tmp/.xmrigのような隠しファイルにリネームされていました。
XMRigのコマンドは暗号化されたTLS通信を用いており、ポート443経由でpool.moneroocean.streamに接続していました。ポート443を使うことで、マイニング通信を通常の暗号化Webトラフィックに近く見せかけることができます。
またこのペイロードは、被害端末のホスト名をマイニングワーカーの識別子として使用しており、運用者は個々の感染システムを追跡できるようになっていました。
cronファイルの書き込み後、攻撃スクリプトはSLAVEOF NO ONEを実行し、元のRedis設定を復元していました。ただし、この後処理によって悪意のあるcronジョブが削除されることはありませんでした。
研究者は、Redisの永続化設定を変更する行為自体が、標的がRDBスナップショットに依存していた場合、攻撃中にデータ損失のリスクを生じさせる可能性があると指摘しています。
キャンペーンのデータからは、認証設定が主要な防御策であったことが示されています。1回目の実行では、攻撃者は12,966台の標的のうち3,388台、割合にして26.1%を侵害することに成功しました。
2回目の実行では2,862台のシステムが侵害されました。重複した被害者を除外した結果、研究者は一意に侵害されたRedisサーバーの台数を3,562台と算出したと、hunt.ioは述べています。
注: IPアドレスおよびドメインは、誤って名前解決やハイパーリンク化されるのを防ぐため、意図的に無害化表記(例: [.])としています。再度有効な形式に戻す作業は、MISP、VirusTotal、あるいは自組織のSIEMなど、管理された脅威インテリジェンス基盤の中でのみ行ってください。
16,000以上の組織から得られる最新のインテリジェンスで、脅威の検知率を58%向上。TIフィードを統合し、貴社のSOCを強化しましょう
翻訳元: https://cyberpress.org/3562-redis-servers-hijacked/