目次
Moving Target Defense 技術 その2でMorphisecがBabukランサムウェアの亜種を防御した、ということを簡易的にお伝えしました。今回はそのBabukランサムウェア亜種に関する詳細記事です。(Morphisec社によるブログを翻訳および編集しています。なお、スクリーンショットや実際の画像等の掲載を省略している部分もありますので、ご覧になりたい方は原文をご確認ください。)
Morphisec社は、11月に顧客の防御イベントを調査する中で、全く新しいランサムウェアBabukの亜種を確認しました。Babukは、2021年に初めて発見され、企業をターゲットにして二重恐喝によりデータを盗み、暗号化しています。その後、攻撃者がロシア語圏で行われたハッキングフォーラムでBabukの完全なソースコードを流出させました。
(翻訳者注:世界にはいくつかのハッキングフォーラムと呼ばれるオンラインサイトがあります。犯罪者が入手した情報交換と市場としての2つの機能を持つ違法なマーケットプレイスで、様々な業種のデータベースへのアクセス方法や、オンラインアカウントにアクセスするためのクレデンシャルなどが取引されています。このロシア語圏のハッキングフォーラムはBabukのオリジナルのソースコードを流出させたフォーラムと思われます。)
そして攻撃者は、当ソースコードに、オープンソースのセキュリティツール回避ソフトウェアやサイドローディング技術を組み合わせ、これまで見つかっていない亜種を作りました。今回、攻撃者は新しいBabuk亜種を使用し、1万台以上のワークステーションとサーバデバイスを持つ数十億ドル規模の製造会社を標的にしました。
攻撃者は、攻撃を開始する前に、2週間の十分な偵察をおこない、ネットワークにアクセスしました。その後、ドメインコントローラに侵入し、それを使って、GPO(Group Policy Object、AD管理下のコンピュータや登録ユーザーの設定や権限を一元的に管理できる機能)を通じて組織内のすべてのデバイスにランサムウェアを配布しています。現時点では、調査が進行中のため、完全な攻撃チェーンに関する詳細は公表していませんが、今回はそのランサムウェアについて掘り下げていきます。
- 従来型AVだけでは防げない攻撃を阻止する技術をご紹介
ランサムウェアへの対策を検討されている方
BABUKランサムウェアの亜種をMorphisecが防御
■展開フェーズ
ドメインへの大規模感染を開始する前に、攻撃者はドメインコントローラで以下のマルウェアファイルを実行します。:・<file>.batセキュリティソリューションの存在を確認し、Microsoftインストーラ(.msi)の実行を開始するBATスクリプトです。
・<file>.msiこのインストーラについては、以下で詳しく説明します。
攻撃者は、ドメインコントローラのNETLOGONフォルダ(グループポリシーのログインスクリプトファイルを保持する共有フォルダ)を使用します。これは、.batファイルがドメイン全体を通して実行されることを確実にします。■実行フェーズ
msi インストーラには4つのファイルがあります:
・SapphireIMSClient.exe この実行ファイルは、Windows用のシンボリックデバッガツールであるNTSD.exe (Microsoft製)です。これは、DLLのサイドローディングに対して脆弱です。
・dbgeng.dll が主となるマルウェアコンポーネントです。NTSD.exeが使用する正規のDLLになりすまし、DLLのサイドローディングの脆弱性を突いてきます。
・2つの暗号ファイル、sc.ocs と config.ocs
.bat ファイルは:
・レジストリにUACバイパスを設定
・セキュリティソリューションの有無を確認し、新たなファイアウォールルールを追加して、それらへの通信を遮断
・C:\Users\Public\SapphireIMSClient\ folderに解凍するインストーラを実行します。
その後、下記のコマンドを .bat で実行します:
C:\Users\Public\SapphireIMSClient\SapphireIMSClient.exe
C:\Users\Public\SapphireIMSClient\sc.ocs
C:\Users\Public\SapphireIMSClient\config.ocs
▼正規のDLLにオープンソースツールをインジェクト
前述の通り、NTDS.exe(SapphireIMSClient.exe)は正規の実行ファイルで、dbgeng.dllという既知の核となるDLLのパスを検証せずにロードしています。攻撃者は、悪意のあるDLLを同じディレクトリに同ファイル名で落とします。これにより、マイクロソフトが署名した正規のプロセスが(と思って)実行されます。また、攻撃者は以前、脆弱なWord Officeアプリケーションを使用しています。このため、機械学習による疑わしい分類のしきい値を劇的に下げることができるため、マイクロソフトの署名付きアプリケーションをターゲットにしているのだと、推測しています。(どのベンダーもマイクロソフトのプロセスをキルしたくはないのです)。
dbgeng.dll に含まれる悪意のあるコードは、2つの役割を担っています:
1..ocsファイルをメモリ上に読み込む
A) sc.ocs:暗号化されたシェルコード—最終ペイロードの実際のリフレクティブローダ
B) config.ocs:暗号化されたバイナリ—最終的なペイロード
2.次の段階を実行
最初のタスクは、次のスクリーンショットのように、新しいスレッドで行われます。:
このマルウェアは、Microsoftアプリケーションの実行中に配信されるコマンドラインパラメータから .ocs ファイルのパスを読み取り、コンテンツを復号化します。
このロジックはオンラインで広く公開されていますが、DLL内のコードとオープンソースプロジェクト:pe-loader内のコードとの間には高い類似性があります。: pe-loader (https://github.com/polycone/pe-loader/blob/master/loader/src/system/system.cpp).
既に述べたように、実行は2つのルーチンに分かれています。上図で示される1つ目のルーチンはDLLロードルーチンにあり、.ocsファイルの読み込みとsc.ocsファイル(すなわちシェルコード)の復号を担当します。2番目のルーチンは、DebugCreateエクスポート関数です。これは長いSleepで始まり、読み込みタスクの終了を待ってから次に進みます。
DebugCreateの内部では、マルウェアが保護パーミッションをRWXに変更し、ペイロードを復号化し、復号化されたシェルコードに実行へと移行させます。
▼リフレクティブローダのシェルコード
上記で実行シェルコードはリフレクティブローダとして機能します。
攻撃者が使用したシェルコードを掘り下げると、後続のGitHubプロジェクトとの間に高い相関関係があることがわかりました。
つまり、攻撃者は、Windows APIのハッシュ関数など、いくつかの関数を編集していますが、全体的な構造やコードの流れは同じものであり、攻撃者は、オープンソースプロジェクトから、いわば「発想」を得ているようです。
▼最終的なペイロード: BABUKランサムウェアの亜種
最終的なペイロードは、昨年流出したソースコードからコンパイルされたBabukランサムウェアであり、下記のプロセスが止められています:
"sql.exe" "dbeng50.exe" "oracle.exe"
"sqbcoreservice.exe" "ocssd.exe" "excel.exe"
"dbsnmp.exe" "infopath.exe" "synctime.exe"
"msaccess.exe" "agntsvc.exe" "mspub.exe"
"isqlplussvc.exe" "onenote.exe" "xfssvccon.exe"
"outlook.exe" "mydesktopservice.exe" "powerpnt.exe"
"ocautoupds.exe" "steam.exe" "encsvc.exe"
"thebat.exe" "firefox.exe" "thunderbird.exe"
"tbirdconfig.exe" "visio.exe" "mydesktopqos.exe"
"winword.exe" "ocomm.exe" "wordpad.exe"
"dbeng50.exe" "notepad.exe"
▼類似点・コード構造:全体的な実行フローとコード構造は、Babukランサムウェアが提示するものと相関しています。
・同じ暗号化アルゴリズム:あらゆるランサムウェアの最も特徴的な機能の1つは、暗号化方法です。私たちのケースでは、ペイロードがBabukのソースコードにあるものと一致することを確認しました。
・設定:Babukのオリジナルと亜種の類似設定と使用方法
以下のスクリーンショットは、ソースコードとデコンパイルの間で、特定のコードブロックがどのように一致しているかを示しています。
注意:コンパイラの特性で、コードの位置が変わったり、コードが減ったりする場合があります。
▼変更点
シャドウコピー削除のルーチンが、ソースコードにあるものと異なっていること
Babuk ランサムウェア
流出したBabukのソースコードによると、新しいcmd.exeプロセスを作成することで削除されたシャドウコピーは、vssadmin.exeユーティリティを実行します:
Babuk ランサムウェアの亜種: ペイロードにある最終的に使われたもの
マルウェアは、WMI クエリを実行する COM オブジェクトを使用して、利用可能なシャド-コピーを繰り返し処理します。以下のコードでは、マルウェアが WMI クエリを実行して各シャド-コピーのIDを取得し、COM を使用してIDごとに各シャド-コピーを削除している様子を示しています。
BlackMatterやContiランサムウェアなどのマルウェアが、同様の挙動を示したことは注目に値します。
▼BABUK ランサムウェアの防御が困難な理由
最近のNGAV、EPP、EDR/XDRは、ランタイムに対する可視性が限られています。それらは通常、フッキングやWindowsのイベントトレース(ETW)の使用に制限されています。フックとETWが改ざんされていないと仮定すると、それらは、アプリケーションのライフタイム実行活動の一部にすぎません。つまり、アプリケーションが正常にロードされたとしても、システムに重大な影響が現れるまで、ほとんどの場合、セキュリティ監視ソリューションは、アプリケーションの実行に気づかないままということになります。
アプリケーションの仮想化された実行時アドレス空間は、1つのファイルよりはるかに大きいです。そのため、アプリケーションの実行中に従来のスキャン手法を適用することは、負け戦(翻訳者注:速度を落とし、CPU/メモリを無駄に消費)となります。さらに、このようなスキャンはユーザビリティを著しく低下させるため、可能な限り最小化する必要があります。
攻撃者は、モニタリングやスキャニングソリューションのこうした弱点を知っており、アプリケーションのメモリ内でステルス性を維持するように努めています。これは、サイドローディングを実装し、正規のアプリケーション内で実行され、残りの実行ステップを隠すためにリフレクティブローディング機能を実装した、この新しいBabuk亜種にも当てはまります。攻撃者は、最初のアクセスや横移動のステップに同様の回避技術を実装しています。
▼MOVING TARGET DEFENSE 技術
これらの脅威は高度に回避的で、主にデバイスメモリに存在するため、どのレベルのNGAVや優れたEDRでも、確実な検知や阻止をできるとは言い切れません。Morphisecの革新的な特許取得済みのMoving Target Defense (MTD) 技術は、検知できない攻撃を阻止できる、業界におけるリーディングソリューションです。メモリ内攻撃に対して、超軽量で非常に効果的な防御を提供します。
MTDは、ランタイムメモリ環境を予測不可能な方法でランダムに移動させ、攻撃者からアプリケーションとオペレーティングシステムのターゲットを隠します。これにより、攻撃者は、攻撃対象を見つけることが不可能になり、アタックサーフェスが劇的に減少します。MTDは、ユーザビリティに影響を与えることなく、脅威を欺き、罠にかけるためのデコイを配置します。実行中のメモリを探索して攻撃をしようとしている挙動をブロックし、検知します。
MorphisecのMTDは、実行中にデバイスメモリをモーフィング、つまり場所をランダムに移動して隠すことで、組織の既存のセキュリティスタックを増強し、他の方法では検出不可能なファイルレス攻撃を阻止します。
▼攻撃の結果
今回攻撃を受けた企業は、次世代アンチウイルス(NGAV)ソリューションとMorphisec製品を使用してエンドポイントの防御を行いました。ランサムウェアはNGAVをすり抜けましたが、MorphisecのMoving Target Defense(MTD)技術により攻撃を阻止し、被害を未然に防ぐことができました。
- 従来型AVだけでは防げない攻撃を阻止する技術をご紹介
ランサムウェアへの対策を検討されている方
出典 (参考文献一覧)
※1 MORPHISEC LABS|NEW BABUK RANSOMWARE FAOUND IN MAJOR ATTACK (参照日:2022-12-22)