ランサムウェア
ランサムウェア「Royal」が新たな標的としてLinux ESXiサーバを攻撃
ランサムウェアの攻撃者は、Linuxベースのバージョンを増やしてターゲットを拡大しているようです。ランサムウェアRoyalも同じ道をたどっており、Linuxシステムをターゲットにした新しい亜種が確認されました。
ランサムウェアの攻撃グループは、Linuxをベースとするバージョンの開発に力を入れるなど、攻撃対象を拡大する動きを見せています。実際に2022年上半期には、Linuxサーバや組み込みシステムを狙った攻撃が前年同期比で2桁増加したことが判明しました。トレンドマイクロではこうした状況を受け、Linux系システムに対する攻撃がさらに増加し続けるという予測を2022年9月に公開したサイバーセキュリティレポートのなかで言及しました。その他のLinuxを標的とする関連事例として、2021年6月にランサムウェア「DarkSide」の亜種について、2022年6月にランサムウェア「Cheerscrypt」について報告しました。いずれの攻撃でも、企業向けのサーバ仮想化ツール「ESXi」を導入したサーバが、標的として狙われました。
この傾向はランサムウェア「Royal」についても同様であり、最近ではLinuxシステムを狙った新型亜種が発見されています。本稿では、この新型亜種に関する技術的な分析結果について解説します。Royalが狙うLinux系システムとしては、ESXiサーバも含まれます。このように攻撃範囲が拡大した結果、企業のデータセンターや仮想ストレージにまで被害が及ぶことが懸念されます。
Royalが初めて発見されたのは2022年9月のことであり、その背後にいる攻撃者は、もともとはランサムウェアグループ「Conti Team One」に所属していた熟練のサイバー犯罪者であると考えられています。
堅固な地盤を持つ新興勢力
先述の通りRoyalが発見されたのは2022年9月とごく最近のことですが、2022年第四四半期に活発であったランサムウェアの上位3位内に食い込むなど、その勢いの強さがうかがえます。ランサムウェアグループのリークサイト(暴露サイト)から得たデータによると、Royalの被害組織数は全体の10.7%を占め、これに勝るのは、LockBitの22.3%とBlackCatの11.7%に限られます。ランサムウェア「Royal」の名前が知られると同時にこれほど急進的に勢力が強まった理由として、当該グループがランサムウェア「Conti」からの派生グループであるという点が考えられます。
Royalの手口を分析した結果、この攻撃グループは古い技術と新しい技術を組み合わせて使用していることが判明しました。この点からも、当該グループがランサムウェアの実践に精通していることがうかがえます。Royalによる初期の攻撃キャンペーンでは、暗号化技術としてランサムウェア「BlackCat」と同じものが使用されていましたが、これは後に、Royal自身が用意した「Zeon」に置き換わりました。Zeonでは、Contiと同様のランサムノート(脅迫状)をドロップします。さらにRoyalは、リブランド戦略の一環として、自身の暗号化ツールによって作成したランサムノート内に「Royal」の言葉を明記するようになりました。
2022年第四四半期、ランサムウェア「Royal」による攻撃の多くは、小規模から中規模の企業に対して行われました。被害件数の割合として、小規模の企業が51.9%、中規模の企業が26.8%を占めたのに対し、大企業については11.3%に過ぎませんでした。
標的の業界については、主にIT、金融、ヘルスケア、食料、生活必需品に関連する企業が狙われました。標的とされた企業の所在地については、2022年第四四半期に発生した事例の約4分の3を北米が占めていました。この他に狙われた地域として、ヨーロッパ、中南米、アジア太平洋、アフリカ、中東が挙げられます。
技術分析
解析の結果、ランサムウェア「Royal」は、下記の「コマンドライン引数」を受け取ることが判明しました。
引数 |
機能 |
-id(32バイトの文字列) |
各被害者を識別するためのIDを指定する。ランサムノート内に記載されるTOR用サイトのアドレスには、このIDが付加される。未指定の場合や長さが32バイトでない場合、ランサムウェアは処理を行うことなく終了する。 |
-ep |
ファイルに対する「断続的な暗号化(ファイル全体ではなく一部分のみを暗号化)」を行う。 |
-stopvm |
ESXi用のコマンドラインツール「ESXCLi」を使用して仮想マシン(VM:Virtual Machine)を停止する。 |
-vmonly |
|
-fork |
プロセスを複製する。 |
-logs |
ファイル暗号化に関するログを表示する。 |
表1に挙げた引数「-id」は、Win32を標的としたRoyalの亜種と同様、被害者のIDを32バイトの文字列で指定します。本IDの指定がない場合、ランサムウェアは処理を行うことなく終了します。
以前のWin32を標的とした亜種では、暗号化対象ファイルのパスを指定するために、引数「-path」が使用されました。今回報告するLinuxの亜種でもファイルパスを指定する必要がありますが、引数「-path」自体は削除され、代わりに第一引数が暗黙的にファイルパスとして扱われます。
ランサムウェア「Royal」はVMのプロセスを停止するため、関数「stop_vm」の処理中に、下記のESXCLIコマンドを実行します。
esxcli vm process kill –type=hard –world-id={ }
次にRoyalは、感染端末のプロセッサ数に応じて複数のスレッドを作成します。具体的には関数「sysconf(84)」によってプロセッサ数を取得し、その数に8を掛けた個数分だけスレッドを作成します。この方式により、ランサムウェアとしての暗号化機能が含まれる関数「thread_func」の処理速度は大幅に向上します。
関数「search_files」では、関数「opendir」を使用して、指定のディレクトリを開きます。次に、そのディレクトリ配下に「readme」の名前でランサムノートをドロップします。続いて関数「readdir」を使用して、当該ディレクトリ内に存在する各エントリの情報をループ処理で1つずつ取得します。各エントリについて、その種類がディレクトリ(d_type == 4)またはファイル(d_type == 8)のいずれであるかを確認します。ディレクトリの場合は、関数「search_files」を再帰的に呼び出す形で、そのディレクトリの内部をさらに探索します。
エントリがファイルの場合はそのファイル名を調べ、下記の拡張子や名前を含むものについては暗号化の対象外とします。
- .royal_u
- .royal_w
- .sf
- .v00
- .b00
- royal_log_
- readme
上述した拡張子の1つである「.royal_w」は、Win32を標的とする最新の亜種によって暗号化されたファイルに付与される拡張子です。Royalの攻撃グループは、Windows向けの亜種で暗号化したファイルには拡張子「.royal_w」を付与し、Linux向けの亜種で暗号化したファイルには拡張子「.royal_u(uはUnixの略記と考えられる)」を付与することで、両者を区別していると考えられます。
Win32の亜種と同様、今回報告するLinuxの亜種も、暗号化アルゴリズムとしてOpenSSLのAES(Advanced Encryption Standard)を使用します。
さらにRoyalでは、「断続的な暗号化」の技術が実装されています。先に表1で挙げたコマンドライン引数「-ep」は、「断続的な暗号化」に必要なパラメータとして、暗号化の割合を0から100の整数値で指定するものです。なお、この数値が0から100の範囲外にある場合は、自動で50に変換されます。
暗号化に先立ち、Royalは下記の関数を用いてAESの鍵と初期ベクトルを生成し、それをRSAのアルゴリズムで暗号化します。最終的に、この暗号化された鍵と初期ベクトルは、AESで暗号化された各ファイルの末尾に付加されます。
RSAによる暗号化の成功後、Royalは、暗号化対象ファイルのサイズを16の倍数となるように切り上げ拡張します。これは、AESアルゴリズムの適用条件を満たすためです。
続いて、拡張後のファイルサイズが5,245,000バイト以下であるか、または「-ep」の値が100であるかをチェックします。いずれかを満たす場合、Royalはファイル全体を完全に暗号化します。いずれも満たさない場合は「断続的な暗号化」の対象となり、ファイル全体を特定の大きさのブロック単位に分割し、各ブロックについて、最初のNバイト分(計算法は後述)は暗号化しますが、残りのバイト分は暗号化せずにそのまま残します。
ブロックあたりの暗号化バイト数「N」は下記のように算出します。
N = ((X ÷ 10) × (拡張後のファイルサイズ ÷ 100)) を16の倍数に切り捨てた結果
※ Xはコマンドライン引数「-ep」で指定された値
Nの値が1,024,000を超える場合、一度にNバイト分全てを暗号化するのではなく、1,024,000バイトずつ小分けにして暗号化を実施します。
なお、「断続的な暗号化」の目的は、暗号に要する時間を削減することであり、Linuxの亜種とWin32の亜種間に技術的な差異はほとんど見られません。
最後にRoyalは、暗号化したファイルに拡張子「royal_u」を付加し、ランサムノートを対象ディレクトリ内にドロップします。
結論
ランサムウェア「Royal」の新型亜種は、攻撃対象をESXiサーバにまで拡大し、標的に大きな損害を与えようとします。Royalの攻撃グループは、Contiから派生した熟練のサイバー犯罪者であり、ランサムウェアに関する実践的な技術を有していると考えられます。本ランサムウェアグループによる活動は今後も活発化していくと予想され、企業に対して大きなリスクをもたらすことが懸念されます。また、Royalは被害の範囲を拡大させるため、さらに新しい亜種を開発する可能性も考えられます。
ランサムウェアによる攻撃からシステムを守るために、企業や組織、または個人ユーザの方は、ファイルの暗号化や削除を阻止する手段として、データの保護やバックアップ、および復旧に関するベストプラクティスを実施することを推奨します。また、定期的に脆弱性を検査し、適宜システムパッチを行うことで、ランサムウェアによる脆弱性を狙った攻撃の被害を最小限に抑え込むことが可能です。
ユーザや企業、組織の方は、システムに最新のパッチを適用し、多層防御の仕組みを導入することを推奨します。エンドユーザの方も企業の方も、下記に挙げるセキュリティ上のベストプラクティスを実践することで、ランサムウェア「Royal」をはじめとする新型の脅威からシステムを守り、感染のリスクを低減させることが可能です。
- ネットワーク内での水平移動・内部活動を伴った攻撃を阻止するため、多要素認証(MFA:Multifactor Authentication)を利用する。
- 重要なファイルをバックアップする際には、「3-2-1ルール」を遵守する。このルールでは、ファイルのコピーを3つ作成し、2つの記憶媒体を使用し、物理的に離れた保管場所を1つ確保する。
- 定期的にシステム・アップデートや修正パッチの適用を行う。オペレーティングシステムやアプリケーションを最新化し、修正パッチの管理体制を整備することで、さまざまなソフトウェアの脆弱性を解消し、攻撃者の活動を阻止できる可能性が高まる。
侵入の痕跡(Indicators of Compromise、IoC)
侵入の痕跡(IoC)はこちらで確認してください。
参考記事:
Royal Ransomware Expands Attacks by Targeting Linux ESXi Servers
By: Nathaniel Morales, Ivan Nicole Chavez, Byron Gelera
翻訳:清水 浩平(Core Technology Marketing, Trend Micro™ Research)