.Net アセンブリを使用したランサムウェア手法の謎を解く: 多段階攻撃
このシリーズの パート 1 では、ランサムウェアが悪意のある手法で使用できるプログラミング機能の例を見てきました。次に、 パート 2 では、Microsoft の .Net ソフトウェア フレームワークと、EXE と DLL の関連アセンブリの基礎についても調試し、これらの機能がどのように可能になるかを理解しました。
この最後の部分では、これまでに説明してきたすべての内容を一連の段階的なペイロードに組み合わせて、多段階のペイロード攻撃の基本を示します。
ペイロードと攻撃のセットアップ
まず、攻撃に使用されるペイロードをレイアウトします。ステージングされたペイロードを作成するには、新しい機能を含む以前のすべての機能が考慮されます。これは、ランサムウェアの場合に典型的なように、これまでに見てきたさまざまな戦術と手法をどのように組み合わせることができるかを全体的に示すためです。
次のペイロードを使用します。
- EXEの初期アプリケーション:Stagerペイロード
- 主なランサムウェア EXE: ステージ 1 ペイロード
- 2番目の 主要なランサムウェアDLL:ステージ2ペイロード
この攻撃例では、複数のペイロードを使用してさまざまなタスクを実行することは、多段階の攻撃を構成します。マルウェアのペイロードとビーコンに関する前回のシリーズを振り返り、 第2部 では悪意のあるペイロードの種類について詳しく説明しました。そこで、ステージャーとステージングされたペイロードの種類の違いを説明しました。要約すると、ステージャーは、多くの場合、ステージとして知られる、より高性能で、多くの場合より大きなメインペイロードファイルの ダウンローダー、ドロッパー、および/またはペイロードとして機能できる、より小さな初期実行可能アプリケーションです。ステージャーペイロードの目的は、メインステージを設定することです。この攻撃例では、上記のペイロード ステージングを使用して、さまざまなペイロードに次のようなさまざまなタスクがあります。
Stager EXE ペイロードは、次のことを行います。
- 回避テクニック
- 2 つの「テキスト」ファイルをディスクにダウンロードします。これらのファイルは、実際には EXE と DLL です。
- 2番目の EXEファイルを起動します
- その後、ステージャーは終了します
- 実行中の 2番目の EXE (ステージ 1) は DLL をロードします (ステージ 2)
ステージ 1 EXE およびステージ 2 の DLL ペイロードは、次の悪意のあるランサムウェア アクションを実行します。
- 回避テクニック
- 発見
- プロセス操作
- ドライブとファイルの列挙
- ファイルの暗号化
Stager: 初期ペイロード実行可能ファイル (EXE)
攻撃は、最初のペイロードである被害者のマシンに配信されるステージャーから始まります。多くの場合、これはフィッシングなどのソーシャルエンジニアリング手法を介して行われます。最初のペイロードが配信されて実行されると、悪意のある一連の命令の実行が開始されます。
忌避
最初に、アクションを実行せずに指定された時間待機します。これは、仮想マシンの脅威分析よりも長持ちするように設計された回避手法です。この後、メモ帳アプリなどのよく知られた実行可能ファイルをインターネットからダウンロードします。これはおとりであり、発見を避けるためのもう一つの回避戦術です。

その他の手法には、マウスのクリックをチェックしたり、脅威分析に使用されるサンドボックス仮想マシンとは対照的に、コンピューターシステムの通常の使用に関連するファイルの証拠がないかドキュメントディレクトリをチェックしたりすることが含まれます。
ダウンローダー、ドロッパー、ローダー
これらの最初の回避アクションが実行されると、ステージャー(初期)ペイロードは再び3番目のスリープアクションを実行します。ステージペイロードファイルをダウンロードする次の一連の命令を続行する前に、指定された時間再度待機します。これらのファイルは、以下に示すように攻撃者によってリモートでホストされています。

次に、ステージャーは 2 つのテキスト ファイル「notepadlog0120231224.txt」のダウンロードに進みますそして「notepadlog0120231513.txt」。この次のフェーズは、次の例で赤いテキストで示されています。
ペイロード ファイルのダウンロード リンクは、実際には、このシリーズの最初の パート の 4 番目の手法として説明した base64 エンコーディングを使用して難読化されていることに注意してください。

最初のペイロードは、内部的に base64 を元のダウンロード リンクにその場で変換します。
ダウンロードされた 2 つのテキスト ファイルは、実際にはそれぞれ実行可能ファイル (EXE) とダイナミック リンク ライブラリ (DLL) であり、テキスト ファイルに偽装されています。これらは、この多段階のランサムウェア攻撃の例のステージ 1 とステージ 2 のペイロードです。ダウンロードが成功すると、これらのファイルの名前は元のタイプに変更されます。

次に、ステージングペイロードはステージ1の実行可能ペイロードを起動して、実際のランサムウェア攻撃を開始します。これで、ステージ 1 ペイロードがメモリにロードされ、実行が開始されると、ステージ 1 ペイジャーは目的を完了し、終了します。したがって、このシリーズの最初の パート の最初の手法で説明したように、この初期段階のペイロードは、ステージ 1 の EXE およびステージ 2 の DLL ペイロードのダウンローダーとドロッパーであり、ステージ 1 のペイロードのみのローダーです。DLL ペイロードは、現在実行中のステージ 1 EXE ペイロードによってステージ 2 ペイロードとしてロードされるため、マルチステージ ペイロード攻撃が行われます。
ステージ 1 実行可能ファイル (EXE)
実行が stage-1 実行可能ファイルに渡されると、次に示すように、最初に指定された時間スリープします。

次に、証拠を削除する手段として、ファイルシステムからステージャーペイロードファイル「payload_initial_stager.exe」を削除します。次の例では、ファイルは削除され、ディレクトリに存在しなくなりました。

これで、ステージ 1 ペイロードは、残りの攻撃を続行するための一連のアクションを実行する準備が整いました。
発見
次に、感染したシステムに対していくつかの検出手法を実行します。これらの検出手法により、脅威アクターは感染したシステムについてもう少し理解することができます。ディスカバリーは、脅威オペレーターが攻撃の全体的な成功に続くために、特定の重要な運用セキュリティ上の考慮事項を行うのに役立ちます。この例では、ステージ 1 ペイロードがプロセス リスト チェックを実行します。関心のあるプロセスには、エンドポイント検出と応答 (EDR)、ウイルス対策 (AV)、または仮想マシン プロセスがあります。これらは、ペイロードが検出される確率を理解するのに役立ちます。

検出情報の結果に基づいて、脅威アクターはいくつかの重要な運用セキュリティ上の決定を下すことができます。たとえば、システム上で既知の EDR プロセスが見つかった場合、またはペイロードが仮想マシン プロセスを検出した場合、検出を回避するためにペイロードを終了するように指示できます。

あるいは、脅威アクターは、EDRを回避するために追加の回避手法を採用したり、他の手段を使用してEDRプロセスを完全に終了させようとしたりすることもできます。
検出は、侵害されたシステムの価値を判断するのにも役立ちます。たとえば、本番データベースサーバーですか、それとも貴重な顧客データを含む支払いシステムですか?システムがビジネスにとって重要であればあるほど、身代金が支払われる可能性が高くなります。
プロセス操作: Living-off-the-Land (LotL) バイナリ
別の有用な情報セットは、オペレーティング システム、言語ロケール、修正プログラム、システムにインストールされている、または存在していない更新プログラムなどのシステム関連情報です。このタイプの情報は、脆弱性の悪用などの追加の攻撃を計画するのに役立ちます。
EDRプロセスが見つからなかったと仮定すると、脅威アクターは他のプロセスに対処することに自信を持っている可能性があるため、ペイロードは続行されます。そのため、プロセス情報を確認した後、ステージ 1 実行可能ペイロードは、次の例に示すように、Living-off-the-Land 手法を使用し、別の Windows コマンド プロンプトを起動します。

コマンドプロンプトが起動すると、ペイロードは実行するためにいくつかのWindowsコマンドを渡します。このコマンドは、システムの種類、プロセッサ情報、稼働時間、修正プログラムなどのシステム情報を生成します。出力のスナップショットは、次の例で赤いテキストで示されています。

ステージ 2 ダイナミック リンク ライブラリ (DLL)
前の記事で説明したように、DLL ファイルには、単独では実行できないコンピューター コードが含まれています。したがって、この例では、ステージ 1 の EXE はステージ 2 の DLL のコードも使用して、残りの攻撃サイクルを終了します。
ステージ 1 EXE ロード ステージ 2 DLL ペイロード
ステージ 1 EXE ペイロードは、アクションを完了すると、ステージ 2 の DLL ペイロードのロードに進みます。DLL ペイロードには、システム上のドライブをチェックし、それらのドライブ上の選択したファイルを暗号化するという攻撃の最終段階で使用されるコードが含まれています。

DLL コードは、まずドライブ チェックを実行して、感染したシステム上のドライブを見つけ、それぞれに関する有用な情報を一覧表示します。上の表示から、特に興味深いのは、アクセス可能なシステム上のドライブとアクセスの準備ができていないドライブに関する情報です。これにより、暗号化に適したドライブ上のファイルをターゲットにし、読み取り専用またはアクセスできないドライブで操作を試みることによるエラーを防ぐことができます。
暗号化
この時点で、身代金の暗号化を進める準備が整いました。stage-2 DLL の暗号化コードは、最初にディレクトリ内のテキスト ファイルのリストをチェックします。これは、この最後のデモンストレーションではテキストファイルのみを暗号化するためです。ペイロードには、見つかったすべてのテキストファイルが表示されます。

検出されたファイルは、ペイロードによって暗号化されます。ファイル拡張子も「.encrypted」 に変更され、暗号化されたテキストファイルが表示されます。

以下に、テキスト ファイルが配置されているディレクトリの前後の画像も表示され、暗号化後の変更が示されています。

最後に身代金メモが届きます。これは通常、ファイルが暗号化されているという事実をユーザーに警告します。また、身代金を支払い、ファイルを復号化するための復号化キーを取得する方法についても指示します。多くの場合、身代金を支払っても、復号化キーへのアクセスが自動的に保証されるわけではありません。

この例では、すべての暗号化コードを DLL ファイルに入れることを選択し、それがステージ 2 のペイロードになりました。これは主に、前の記事で説明したように、DLL はライブラリ ファイルであるため、再利用できるためです。たとえば、攻撃者として、将来の新しい回避機能強化のために、まったく異なるステージ 1 EXE ペイロードを使用することを選択した場合、新しい攻撃キャンペーンを完了するためにペイロード コードの暗号化部分を書き直す必要はありません。新しいペイロードを既存のステージ 2 DLL ファイルとペアリングし、新しい EXE に DLL をロードしてファイルを暗号化させるだけです。
ランサムウェアに対する軽減策
最終的に、ランサムウェアは感染、実行、永続性という 3 つの主要なフロンティアを使用します。
これらは大別に次のように分類できます。
- ファイルシステム
- 記帳
- 記憶
- ネットワーク(リモートおよびローカル - ラテラルムーブメント)
したがって、防御側は、効果的なセキュリティ軽減のために適切なツールセットを構築し、適切な方法でそれらを利用する必要があります。マルウェアのペイロードとビーコンに関する以前のシリーズの パート3 では、侵害とサイバーレジリエンスを想定するという哲学に基づいた多層防御の緩和策について、より詳細に説明しています。
この3部構成のシリーズでは、マルウェア、特にランサムウェアが使用するさまざまな戦術や手法がどのように生まれるかを実証しました。これらのさまざまな戦術とテクニックを理解することで、防御側は効果的な対策のために既存のサイバー ポリシーと防御をより適切に評価できるようになります。
ランサムウェアや侵害から組織を保護する方法について詳しく知りたいですか?今すぐお問い合わせください。