Misconfigured Selenium Grid servers abused for Monero mining

脅威者は、一般的なウェブアプリのテストフレームワークであるSelenium Gridの設定ミスを悪用し、Monero暗号通貨をマイニングするための修正されたXMRigツールを展開している。

Selenium Gridはオープンソースで、開発者が複数のマシンやブラウザにわたってテストを自動化することを可能にする。クラウド環境で使用され、Docker Hubで1億回以上プルされている。

テストは中央のハブからAPIインタラクションを介してサービスのノードに配布され、そこで実行される。ノードは、異なるオペレーティングシステム、ブラウザ、その他の環境の変更を特徴とし、包括的な結果を提供します。

Overview of Selenium testing
Seleniumテストの概要
Source:ウィズ

クラウドセキュリティスタートアップWizの研究者は、彼らが “SeleniumGreed “として追跡している悪意のある活動は、1年以上にわたって実行されていることを発見し、デフォルトの設定でサービスの認証の欠如を利用しています。

SeleniumGreedの攻撃

Wizの調査によると、Selenium Gridはデフォルトでは認証機構が有効になっていない。一般に公開されているサービスの場合、誰でもアプリテストのインスタンスにアクセスし、ファイルをダウンロードし、コマンドを実行することができます。

Seleniumはドキュメントでインターネットに公開されたインスタンスのリスクについて警告しており、リモートアクセスが必要な場合はファイアウォールを設定することで不正アクセスを防ぐようアドバイスしている。しかし、この警告だけでは、大規模な設定ミスを防ぐには不十分だ。

Selenium's warning on the official documentation
公式ドキュメント上のSeleniumの警告
出典:selenium.dev

Wizによると、脅威行為者はSelenium WebDriver APIを活用して、標的となるインスタンスのChromeのデフォルトのバイナリパスを変更し、Pythonインタプリタを指すようにしているという。

そして’add_argument‘メソッドを使用して、base64エンコードされたPythonスクリプトを引数として渡す。WebDriverがChromeを起動するリクエストを開始すると、代わりに提供されたスクリプトでPythonインタプリタを実行する。

Exploit script used in the attacks
攻撃で使用されたエクスプロイトスクリプト
Source:Wiz

Pythonスクリプトはリバースシェルを確立し、攻撃者にインスタンスへのほぼリモートアクセスを与える。

次に攻撃者は、パスワードなしでsudoコマンドを実行できるSeleniumユーザー(’seluser’)を頼りに、侵入されたインスタンスにカスタムXMRigマイナーをドロップし、バックグラウンドで実行するように設定する。

検出を回避するため、攻撃者は侵害されたSeleniumノードのワークロードを、後続の感染のための中間コマンド&コントロールサーバー(C2)として、またマイニングプールプロキシとして使用することが多い。

攻撃者はSeleniumの古いバージョン(v3.141.59)をターゲットにしているが、Wizは4より新しいバージョンでも悪用が可能であることを確認している。

つまり、攻撃者の戦略は、古いバージョンにのみ存在する欠陥を悪用するのではなく、保守や監視が行き届いていないインスタンスを標的にすることで、検知を回避している可能性が高い。

「適切な認証とネットワークセキュリティポリシーが欠如しているSelenium Gridサービスのバージョンは、リモートコマンド実行に対して脆弱である」とWizはレポートで述べている。

「私たちのデータに基づいて、このブログで説明されている脅威はSelenium v3.141.59をターゲットにしていますが、それ以降のバージョンを悪用するように進化する可能性があり、他の脅威行為者はすでにそうしているかもしれません」と研究者は指摘している。

WizがFOFAサーチエンジンでネットワーク資産をスキャンしたところ、現在少なくとも3万台のSeleniumインスタンスがパブリックウェブ上でアクセス可能であることが判明した。

クリプトマイニングの効果はリソースの使用量の増加ですが、キャンペーンのオペレータは、ターゲットが十分に価値がある場合、マルウェアを展開するために彼らのアクセスを使用することができます。

基本認証を有効にし、Selenium Gridsを不正な外部アクセスから保護する方法については、サービスの公式ガイドラインを参照してください。