回避力の高い攻撃者が SolarWinds サプライ チェーンを利用して、SUNBURST バックドアで複数の世界的な被害者を侵害

SolarWinds digital signature on software with backdoor news

更新 (2022 年 5 月): UNC2452 を APT29 に統合しました。この投稿で説明されている UNC2452 アクティビティは、現在 APT29 に起因しています。

エグゼクティブサマリー

  • グローバルな侵入キャンペーンを発見しました。このキャンペーンの背後にいる攻撃者を UNC2452 として追跡しています。
  • FireEye は、SolarWinds Orion ビジネス ソフトウェア アップデートをトロイの木馬化し、SUNBURST と呼ばれるマルウェアを配布するサプライ チェーン攻撃を発見しました。
  • 侵害後の攻撃者の活動は、複数の手法を活用して検出を回避し、活動を覆い隠しますが、これらの取り組みは検出の機会も提供します。
  • このキャンペーンは広範に行われ、世界中の公共および民間組織に影響を与えています。
  • FireEye は、この脅威アクターと実際のサプライ チェーン攻撃を検出するためのシグネチャをリリースしています。これらは、 GitHub の公開ページにあります。 FireEye の製品とサービスは、お客様がこの攻撃を検出してブロックするのに役立ちます。

概要

FireEye は、UNC2452 として追跡している広範なキャンペーンを発見しました。このキャンペーンの背後にいる攻撃者は、世界中の多数の公的および私的組織へのアクセスを獲得しました。彼らは、SolarWind の Orion IT 監視および管理ソフトウェアへのトロイの木馬化された更新を介して、被害者へのアクセスを取得しました。このキャンペーンは、早ければ 2020 年春に開始された可能性があり、現在も進行中です。このサプライ チェーン侵害に続く侵害後の活動には、ラテラル ムーブメントやデータ盗難が含まれます。キャンペーンは高度なスキルを持つ攻撃者の作業であり、運用は非常に安全な状態で行われました。

サンバースト バックドア

SolarWinds.Orion.Core.BusinessLayer.dll は、HTTP 経由でサード パーティ サーバーと通信するバックドアを含む、Orion ソフトウェア フレームワークの SolarWinds デジタル署名コンポーネントです。この SolarWinds Orion プラグインのトロイの木馬バージョンを SUNBURST として追跡しています。

最大 2 週間の初期休止期間の後、「ジョブ」と呼ばれるコマンドを取得して実行します。これには、ファイルの転送、ファイルの実行、システムのプロファイリング、マシンの再起動、システム サービスの無効化などの機能が含まれます。このマルウェアは、そのネットワーク トラフィックを Orion Improvement Program (OIP) プロトコルに偽装し、偵察結果を正当なプラグイン構成ファイルに保存して、正当な SolarWinds アクティビティに紛れ込ませることができます。バックドアは、難読化された複数のブロックリストを使用して、プロセス、サービス、およびドライバーとして実行されているフォレンジックおよびウイルス対策ツールを識別します。

SolarWinds digital signature on software with backdoor
図 1: バックドアを含むソフトウェアの SolarWinds デジタル署名

2020 年 3 月から 5 月にかけて、複数のトロイの木馬による更新がデジタル署名され、SolarWinds の更新 Web サイトに投稿されました。

  • hxxps://downloads.solarwinds[.]com/solarwinds/CatalogResources/Core/2019.4/2019.4.5220.20574/SolarWinds-Core-v2019.4.5220-Hotfix5.msp

トロイの木馬化された更新ファイルは、トロイの木馬化された SolarWinds.Orion.Core.BusinessLayer.dll コンポーネントなど、更新に関連付けられた圧縮されたリソースを含む標準の Windows インストーラー パッチ ファイルです。アップデートがインストールされると、正規の SolarWinds.BusinessLayerHost.exe または SolarWinds.BusinessLayerHostx64.exe によって悪意のある DLL がロードされます (システム構成によって異なります)。最大 2 週間の休眠期間の後、マルウェアは avsvmcloud[.]com のサブドメインの解決を試みます。 DNS 応答は、コマンド アンド コントロール (C2) ドメインを指す CNAME レコードを返します。悪意のあるドメインへの C2 トラフィックは、通常の SolarWinds API 通信を模倣するように設計されています。既知の悪意のあるインフラストラクチャのリストは、FireEye のGitHub ページで入手できます。

複数の業種にわたる世界中の被害者

FireEye は、世界中の複数のエンティティでこのアクティビティを検出しました。被害者には、北アメリカ、ヨーロッパ、アジア、中東の政府、コンサルティング、テクノロジー、電気通信、採掘事業体が含まれています。私たちは、他の国や業種でも被害者が増えると予想しています。 FireEye は、影響を受けていることを認識しているすべてのエンティティに通知しました。

侵害後の活動と検出の機会

現在、ソフトウェア サプライ チェーンの侵害と関連する侵入後のアクティビティを UNC2452 として追跡しています。このグループは、最初のアクセス権を取得した後、横方向に移動しながらさまざまな手法を使用して操作を偽装します (図 2)。このアクターは、被害者の環境にアクセスするための正当な資格情報とリモート アクセスを優先する代わりに、マルウェアのフットプリントを軽く維持することを好みます。

侵害後の戦術
図 2: 侵害後の戦術

このセクションでは、注目すべき手法について詳しく説明し、検出の潜在的な機会について概説します。

使用される TEARDROP および BEACON マルウェア

複数の SUNBURST サンプルが回収され、さまざまなペイロードが配信されています。少なくとも 1 つのインスタンスで、攻撃者は Cobalt Strike BEACON を展開するために、TEARDROP と名付けた、これまでに見られなかったメモリのみのドロッパーを展開しました。

TEARDROP はメモリのみのドロッパーであり、サービスとして実行され、スレッドを生成してファイル「gracious_truth.jpg」から読み取ります。このファイルには、偽の JPG ヘッダーが含まれている可能性があります。次に、HKUSOFTWAREMicrosoftCTF が存在することを確認し、カスタム ローリング XOR アルゴリズムを使用して埋め込みペイロードをデコードし、カスタム PE に似たファイル形式を使用して手動で埋め込みペイロードをメモリに読み込みます。 TEARDROP には、以前に確認されたマルウェアと重複するコードはありません。これは、カスタマイズされた Cobalt Strike BEACON を実行するために使用されたと考えられます。

緩和策: FireEye は、TEARDROP を検出するための 2 つの Yara ルールをGitHubで提供しています。防御側は、FireEye HX から次のアラートを探す必要があります: MalwareGuard および WindowsDefender:

プロセス情報

file_operation_closed
ファイルパス*: “c:windowssyswow64netsetupsvc.dll
アクタープロセス:
ピッド: 17900

Window の防御 Exploit Guard ログ エントリ: (Microsoft-Windows-Security-Mitigations/KernelMode イベント ID 12)

Process”DeviceHarddiskVolume2WindowsSystem32svchost.exe” (PID XXXXX) は、Microsoft 署名のないバイナリの読み込みをブロックされていました。
「WindowsSysWOW64NetSetupSvc.dll」

攻撃者のホスト名が被害者の環境と一致

攻撃者は、コマンド アンド コントロール インフラストラクチャのホスト名を、被害者の環境内で見つかった正当なホスト名と一致するように設定します。これにより、敵対者は環境に溶け込み、疑いを回避し、検出を回避することができます。

検出機会

攻撃者のインフラストラクチャは、インターネット全体のスキャン データで識別可能な RDP SSL 証明書で構成されたホスト名をリークします。これは、防御側にとって検出の機会を提供します。インターネット全体のスキャン データ ソースに組織のホスト名を問い合わせることで、組織になりすました悪意のある IP アドレスを発見できます。 (注: IP スキャンの履歴には、IP がデフォルト (WIN-*) ホスト名と被害者のホスト名の間で切り替わることがよくあります) インターネット スキャン データで識別された IP のリストをリモート アクセス ログと相互参照すると、環境内でこのアクターの証拠を識別できる場合があります。 IP アドレスごとに 1 つのアカウントが存在する可能性があります。

被害者の国にある IP アドレス

攻撃者の IP アドレスの選択も、検出を回避するために最適化されていました。攻撃者は主に、仮想プライベート サーバーを利用して、被害者と同じ国から発信された IP アドレスのみを使用しました。

検出機会

これはまた、リモート アクセスに使用される IP アドレスの位置情報を特定することで、侵害されたアカウントが正当なユーザーと攻撃者によって異なる IP アドレスから使用されている場合、不可能な移動速度を示す可能性があるため、いくつかの検出の機会を提供します。攻撃者は VPS プロバイダーごとに複数の IP アドレスを使用したため、異常な ASN からの悪意のあるログインが特定されたら、その ASN からのすべてのログインを調べることで、追加の悪意のあるアクティビティを検出できます。これは、正当なリモート アクセスに使用される ASN のベースライン化と正規化と並行して行うことができ、疑わしいアクティビティの識別に役立ちます。

異なる認証情報を使用した横移動

攻撃者は、侵害された資格情報を使用してネットワークにアクセスすると、複数の異なる資格情報を使用して横方向に移動しました。ラテラル ムーブメントに使用される認証情報は、リモート アクセスに使用される認証情報とは常に異なっていました。

検出機会

組織は、HX の LogonTracker モジュールを使用して、すべてのログオン アクティビティをグラフ化し、ソース システムとアカウント間の 1 対多の関係を表示するシステムを分析できます。これにより、単一のシステムが複数のアカウントを持つ複数のシステムに対して認証を行っていることが明らかになります。これは、通常のビジネス オペレーションでは比較的まれなケースです。

一時ファイルの置換と一時タスクの変更

攻撃者は、ユーティリティをリモートで実行するために、一時ファイルを置き換える手法を使用しました。攻撃者は、正当なユーティリティを自分のものに置き換え、ペイロードを実行してから、正当な元のファイルを復元しました。同様に、既存の正当なタスクを更新してツールを実行し、スケジュールされたタスクを元の構成に戻すことで、スケジュールされたタスクを操作しました。彼らは定期的にツールを削除しました。これには、正当なリモート アクセスが達成された後のバックドアの削除も含まれます。

検出機会

防御側は、正当なディレクトリへのアクセスを示す SMB セッションのログを調べて、短時間で削除-作成-実行-削除-作成パターンに従うことができます。さらに、防御側は、頻度分析を使用してタスクの異常な変更を特定し、一時的な更新について既存のスケジュールされたタスクを監視できます。タスクを監視して、新しいバイナリまたは未知のバイナリを実行する正当な Windows タスクを監視することもできます。

このキャンペーンの侵害後の活動は、運用上のセキュリティを重視して行われ、多くの場合、侵入ごとに専用のインフラストラクチャを利用していました。これは、FireEye がサイバー攻撃で観察した最高の運用セキュリティの一部であり、回避に重点を置き、固有の信頼を活用しています。ただし、持続的な防御によって検出できます。

詳細なマルウェア分析

SolarWinds.Orion.Core.BusinessLayer.dll (b91ce2fa41029f6955bff20079468448) は、HTTP 経由でサード パーティ サーバーと通信する難読化されたバックドアを含む、Orion ソフトウェア フレームワークの SolarWinds 署名付きプラグイン コンポーネントです。最大 2 週間の初期休止期間の後、「ジョブ」と呼ばれるコマンドを取得して実行します。このコマンドには、ファイルの転送と実行、システムのプロファイリング、システム サービスの無効化などの機能が含まれます。バックドアの動作とネットワーク プロトコルは、Orion Improvement Program (OIP) プロトコルになりすまして偵察結果をプラグイン構成ファイルに保存するなど、SolarWinds の正当な活動に溶け込んでいます。バックドアは、複数のブロックリストを使用して、プロセス、サービス、およびドライバーを介してフォレンジックおよびウイルス対策ツールを識別します。

ユニークな機能

  • サブドメイン ドメイン名生成アルゴリズム (DGA) を実行して、DNS 要求を変化させます
    • CNAME 応答は、マルウェアが接続する C2 ドメインを指しています。
    • A レコード応答の IP ブロックがマルウェアの動作を制御します
    • DGA でエンコードされたマシン ドメイン名。被害者を選択的に標的にするために使用されます
  • コマンド アンド コントロール トラフィックは、正規の Orion Improvement Program になりすました
  • コードは、偽の変数名を使用し、正当なコンポーネントに結び付けることにより、プレーンなサイトに隠されます

配送と設置

承認されたシステム管理者は、SolarWinds の Web サイトから配布されたパッケージを介して、SolarWinds Orion の更新を取得してインストールします。更新パッケージ CORE-2019.4.5220.20574-SolarWinds-Core-v2019.4.5220-Hotfix5.msp (02af7cec58b9a5da1c542b5a32151ba1) には、このレポートで説明されている SolarWinds.Orion.Core.BusinessLayer.dll が含まれています。インストール後、Orion ソフトウェア フレームワークは .NET プログラム SolarWinds.BusinessLayerHost.exe を実行して、SolarWinds.Orion.Core.BusinessLayer.dll を含むプラグインをロードします。このプラグインには、Orion フレームワーク内で機能を実装する正当な名前空間、クラス、およびルーチンが多数含まれています。クラス SolarWinds.Orion.Core.BusinessLayer.OrionImprovementBusinessLayer は、目に見えないように、HTTP ベースのバックドアを実装しています。論理的に無関係なルーチン SolarWinds.Orion.Core.BusinessLayer.BackgroundInventory.InventoryManager.RefreshInternal 内のコードは、Inventory Manager プラグインがロードされると、バックドア コードを呼び出します。

SolarWinds.Orion.Core.BusinessLayer.dll は、シリアル番号 0f:e9:73:75:20:22:a6:06:ad:f2:a3:6e:34:5d:c0 の証明書を使用して、SolarWinds によって署名されています。編。ファイルは 2020 年 3 月 24 日に署名されました。

初期化

悪意のある SolarWinds.Orion.Core.BusinessLayer.OrionImprovementBusinessLayer.Initialize メソッドを実行すると、サンプルは、小文字のプロセス名が値 17291806236368054941 にハッシュされることを確認します。このハッシュ値は、追加の FNV-1A 64 ビット ハッシュとして計算されます。 FNV-1A を計算した後、6605813339339102567 による XOR。このハッシュは、「solarwinds.businesslayerhost」という名前のプロセスと一致します。

このサンプルは、アセンブリのファイル システム書き込み時刻が現在時刻の少なくとも 12 ~ 14 日前である場合にのみ実行されます。正確なしきい値は、間隔からランダムに選択されます。このサンプルは、正当な定期的なバックグラウンド タスクによって実行されるため、この時間のしきい値を引き続きチェックします。しきい値に達すると、サンプルは名前付きパイプ 583da945-62af-10e8-4902-a8f205c72b2e を作成して、ディスクから SolarWinds.Orion.Core.BusinessLayer.dll.config を読み取り、 XML フィールド appSettings. appSettings フィールドのキーは、悪意のあるロジックが永続的な構成として再利用する正当な値です。サンプルの実行を継続するには、キー ReportWatcherRetry を 3 以外の値にする必要があります。

このサンプルは、マシンがドメインに参加していることを確認し、実行を続行する前にドメイン名を取得します。ユーザー ID は、アップしていてループバック デバイスではないネットワーク インターフェイス MAC アドレスの MD5、ドメイン名、およびレジストリ値 HKEY_LOCAL_MACHINESOFTWAREMicrosoftCryptographyMachineGuid を計算することによって生成されます。 userID は、MD5 が計算された後、カスタム XOR スキームを介してエンコードされます。その後、appSettings の ReportWatcherPostpone キーが SolarWinds.Orion.Core.BusinessLayer.dll.config から読み取られ、初期の正当な値が取得されます。この操作は、サンプル レイター ビットがフラグをこのフィールドにパックするときに実行され、ビット フラグを読み出すためには初期値を知る必要があります。次に、サンプルは、サンプルのコア イベント ループであるメソッド Update を呼び出します。

DGA とブロックリスト

バックドアは、ドメイン生成アルゴリズム (DGA) を使用して C2 サーバーを特定し、avsvmcloud[.]com のサブドメインを構築して解決します。 Update メソッドは、これらのランダムな C2 サブドメインを生成するために暗号化ヘルパーを初期化する役割を果たします。サブドメインは、犠牲者の userId を、犠牲者のローカル マシン ドメイン名のリバーシブル エンコーディングと連結することによって生成されます。攻撃者は、マルウェアの標的を制御する手段として、DGA サブドメインを利用して被害者への DNS 応答を変更する可能性があります。これらのサブドメインは、解決するホスト名を作成するために、次のいずれかと連結されます。

  • .appsync-api.eu-west-1[.]avsvmcloud[.]com
  • .appsync-api.us-west-2[.]avsvmcloud[.]com
  • .appsync-api.us-east-1[.]avsvmcloud[.]com
  • .appsync-api.us-east-2[.]avsvmcloud[.]com

プロセス名、サービス名、およびドライバー パスのリストが取得され、前述のように FNV-1a + XOR アルゴリズムを介して各値がハッシュされ、ハードコードされたブロックリストと照合されます。これらのハッシュの一部は、この分析の一環としてブルート フォースでリバースされており、これらのルーチンが分析ツールとウイルス対策エンジン コンポーネントをスキャンしていることを示しています。ブロックリストに登録されたプロセスが見つかった場合、更新ルーチンは終了し、サンプルはブロックリストが通過するまでルーチンの実行を試行し続けます。ブロックリストに登録されたサービスは、HKLMSYSTEMCurrentControlSetservices<service_name>Start レジストリ エントリを値 4 (無効) に設定することによって停止されます。サービス リストの一部のエントリがシステムで見つかった場合、生成される値に関して DGA アルゴリズムの動作に影響を与える可能性があります。停止したサービスのリストは、サンプルの構成ファイルの appSettings エントリの ReportWatcherPostpone キーにビットパックされます。いずれかのサービスが無効に移行された場合、Update メソッドは終了し、後で再試行します。このサンプルは、WMI クエリ Select * From Win32_SystemDriver を介してドライバー リストを取得します。ブロックリストに登録されたドライバーが見つかった場合、Update メソッドは終了して再試行します。すべてのブロックリスト テストに合格すると、サンプルは api.solarwinds.com を解決してネットワークの接続性をテストしようとします。

ネットワーク コマンド アンド コントロール (C2)

すべてのブロックリストと接続チェックに合格すると、サンプルはその DGA を介して while ループでドメインの生成を開始します。サンプルは、ドメインの生成間のランダムな間隔で遅延します。この間隔は、1 から 3 分、30 から 120 分の範囲の任意のランダムな値、または最大 420 から 540 分 (9 時間) のエラー状態です。生成されたドメインの DNS A レコードは、マルウェアの動作を制御する IP アドレス ブロックのハードコーディングされたリストと照合されます。次の範囲内のレコードは、マルウェアを終了し、構成キー ReportWatcherRetry をそれ以上の実行を防止する値に更新します。

  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16
  • 224.0.0.0/3
  • fc00:: – fe00::
  • fec0:: – ffc0::
  • ff00:: – ff00::
  • 20.140.0.0/15
  • 96.31.172.0/24
  • 131.228.12.0/22
  • 144.86.226.0/24

CNAME DNS 応答でドメインが正常に取得されると、サンプルは、すべての C2 通信とディスパッチを担当するメソッド HttpHelper.Initialize を呼び出す新しい実行スレッドを生成します。 HTTP スレッドは、SetTime コマンドによって制御される構成可能な時間だけ遅延することによって開始されます。 HTTP スレッドは、コールアウト間で最低 1 分間遅延します。マルウェアは、HTTP GET または HTTP POST 要求を使用します。サンプルがアウトバウンド データを送信しようとしている場合、コンテンツ タイプの HTTP ヘッダーは「application/octet-stream」に設定されます。それ以外の場合は「application/json」に設定されます。

JSON ペイロードはすべての HTTP POST および PUT 要求に存在し、キー「userId」、「sessionId」、および「steps」が含まれています。 「steps」フィールドには、「Timestamp」、「Index」、「EventType」、「EventName」、「DurationMs」、「Succeeded」、および「Message」のキーを持つオブジェクトのリストが含まれています。 JSON キー「EventType」は値「Orion」にハードコードされ、「EventName」は「EventManager」にハードコードされます。サーバーに送信されるマルウェア応答メッセージは、DEFLATE 圧縮され、1 バイト XOR エンコードされてから、「steps」配列の「Message」フィールドに分割されます。各「メッセージ」値は Base64 で個別にエンコードされます。 「ステップ」配列内のすべてのオブジェクトがマルウェア メッセージに寄与するわけではありません。「タイムスタンプ」フィールドの整数には、「メッセージ」フィールドの内容がマルウェア メッセージで使用されることを示す 0x2 ビットが設定されている必要があります。タイムスタンプ フィールドのビット 0x2 がクリアされているステップ オブジェクトにはランダム データが含まれており、マルウェア レスポンスを組み立てる際に破棄されます。

ステガノグラフィー

観察されたトラフィックでは、これらの HTTP 応答本文は .NET アセンブリに関連する無害な XML のように見えますが、コマンド データは実際には存在する多数の GUID および HEX 文字列に分散しています。コマンドは、次の正規表現を使用して HEX 文字列を検索することにより、HTTP 応答本文から抽出されます。 [0-9a-f]{16}”.コマンド データは、GUID および HEX 文字列に偽装された複数の文字列に分散されます。応答で一致したすべての部分文字列は、非 HEX 文字でフィルタリングされ、結合され、HEX デコードされます。最初の DWORD 値は、メッセージの実際のサイズを示し、直後にメッセージが続き、オプションで追加のジャンク バイトが続きます。抽出されたメッセージは、メッセージの最初のバイトを使用して 1 バイト XOR デコードされ、DEFLATE 解凍されます。最初の文字は JobEngine 列挙型にマップされる ASCII 整数で、オプションの追加コマンド引数はスペース文字で区切られます。

コマンドは、次に説明するように、コマンド値に基づいて JobExecutionEngine にディスパッチされます。

サポートされているコマンド

指示

価値

手術

アイドル

0

操作なし

出口

1

現在のスレッドを終了します。

時間設定

2

メイン イベント ループの実行間の遅延時間を設定します。遅延は秒単位で、[.9 * <遅延>, 1.1 * <遅延>] の間でランダムに変化します。遅延が 300 未満の場合、ループを介した次の実行で遅延が 2 倍になります。これは、約 [5, 10] 分の間隔に落ち着く必要があることを意味します。 [16 時間、83 時間] の間のランダムな間隔で遅延する、無関係な 2 番目の遅延ルーチンがあります。

CollectSystemDescription

3

ホスト名、ユーザー名、OS バージョン、MAC アドレス、IP アドレス、DHCP 構成、およびドメイン情報を含むローカル システムのプロファイルを作成します。

UploadSystemDescription

4

指定された URL に対して HTTP 要求を実行し、結果を解析して、コンポーネントを未知のハッシュ値と比較します。レポートをフォーマットし、C2 サーバーに送信します。

実行タスク

5

指定されたファイル パスと引数で新しいプロセスを開始します

GetProcessByDescription

6

プロセスのリストを返します。引数が指定されていない場合は、PID とプロセス名だけが返されます。引数を指定すると、プロセス所有者の親 PID とユーザー名とドメインも返されます。

キルタスク

7

指定されたプロセスを PID で終了します。

GetFileSystemEntries

8

パスとオプションの一致パターンを指定すると、ファイルとディレクトリを再帰的にリストします

書き込みファイル

9

ファイル パスと Base64 でエンコードされた文字列を指定すると、Base64 でデコードされた文字列の内容が指定されたファイル パスに書き込まれます。追加モードを使用して書き込みます。書き込みが完了してから [1s, 2s] の遅延。

ファイルが存在しています

10

指定されたファイル パスが存在するかどうかをテストします。

ファイルを削除する

11

指定されたファイル パスを削除します。

GetFileHash

12

指定されたパスにあるファイルの MD5 を計算し、結果を HEX 文字列として返します。引数が指定されている場合、それは予想されるファイルの MD5 ハッシュであり、計算された MD5 が異なる場合はエラーを返します。

読み取りレジストリ値

13

サポートされているハイブのいずれかから読み取られた任意のレジストリ

SetRegistryValue

14

サポートされているハイブのいずれかからの任意のレジストリ書き込み。

レジストリ値の削除

15

サポートされているハイブのいずれかからの任意のレジストリ削除

GetRegistrySubKeyAndValueNames

16

指定されたレジストリ パスの下にあるサブキーと値の名前のリストを返します

リブート

17

システムの再起動をすぐにトリガーしようとします。

コミュニティに役立つ指標と検出

コミュニティがこのサプライ チェーン バックドアを検出できるようにするために、組織がこのバックドアとこの脅威アクターを特定するのに役立つ指標と検出を公開しています。シグニチャは、Yara、IOC、および Snort 形式が混在しています。

検出とシグネチャのリストは、こちらの FireEye GitHub リポジトリで入手できます。私たちは検出をリリースしており、新しいものを開発したり既存のものを改良したりする際に、ホストおよびネットワークベースのインジケーターの重複する検出で公開リポジトリを更新し続けます。このバックドアで複数のハッシュが見つかりました。これらのハッシュの最新情報を投稿します。

観察された MITRE ATT&CK テクニック

ID

説明

T1012

レジストリのクエリ

T1027

難読化されたファイルまたは情報

T1057

プロセスの発見

T1070.004

ファイルの削除

T1071.001

ウェブプロトコル

T1071.004

アプリケーション層プロトコル: DNS

T1083

ファイルとディレクトリの検出

T1105

Ingress ツール転送

T1132.001

標準エンコーディング

T1195.002

ソフトウェアサプライチェーンの侵害

T1518

ソフトウェア検出

T1518.001

セキュリティ ソフトウェアの検出

T1543.003

Windows サービス

T1553.002

コード署名

T1568.002

ドメイン生成アルゴリズム

T1569.002

サービスの実行

T1584

インフラストラクチャの侵害

即時の緩和に関する推奨事項

SolarWinds カスタマー ポータルから現在入手可能な Orion プラットフォーム リリース 2020.2.1 HF 1 を利用するという SolarWind の推奨事項に従う前に、組織は影響を受けるデバイスを保持し、最新バージョンを使用して新しいシステムを構築することを検討する必要があります。影響を受けたボックスにアップグレードを適用すると、法医学的証拠が上書きされ、システムに追加のバックドアが残る可能性があります。さらに、SolarWinds は追加の軽減策と強化手順をこちらで公開しています。

SolarWinds の推奨事項に従うことができない場合、環境内のトロイの木馬化された SolarWinds ソフトウェアのリスクに対処するための最初のステップとして、以下に展開できる即時の緩和手法を以下に示します。環境で攻撃者の活動が発見された場合は、包括的な調査を実施し、調査結果と影響を受ける環境の詳細に基づいて修復戦略を設計および実行することをお勧めします。

  • さらなるレビューと調査が実施されるまで、SolarWinds サーバーが隔離/封じ込められていることを確認してください。これには、SolarWinds サーバーからのすべてのインターネット エグレスのブロックを含める必要があります。
  • SolarWinds インフラストラクチャが分離されていない場合は、次の手順を実行することを検討してください。
    • SolarWinds サーバーからエンドポイントへの接続範囲を制限します。特に、Tier 0 / 重要な資産と見なされるもの
    • SolarWinds サーバーでローカル管理者特権を持つアカウントの範囲を制限します。
    • SolarWinds ソフトウェアを使用して、サーバーまたはその他のエンドポイントからのインターネット エグレスをブロックします。
  • SolarWinds サーバー/インフラストラクチャにアクセスできるアカウントのパスワードを (少なくとも) 変更することを検討してください。さらなるレビュー/調査に基づいて、追加の是正措置が必要になる場合があります。
  • SolarWinds が管理されたネットワーク インフラストラクチャに使用されている場合は、ネットワーク デバイス構成のレビューを実施して、予期しない/不正な変更がないかどうかを検討してください。これは調査結果に基づくものではなく、SolarWinds 機能の範囲による予防措置であることに注意してください。

謝辞

このブログ記事は、FireEye の多数の担当者とチームが協力してまとめたものです。特別な感謝:

アンドリュー・アーチャー、ダグ・ビエンストック、クリス・ディジャモ、グレン・エドワーズ、ニック・ホーニック、アレックス・ペニーノ、アンドリュー・レクター、スコット・ラネルズ、エリック・スケールズ、ナラニ・フレイザー、サラ・ジョーンズ、ジョン・ハルトクイスト、ベン・リード、ジョン・レザーリー、フレッド・ハウス、ディリープ・ジャレパッリ、マイケル・シコルスキー、スティーブン・エッケルス、ウィリアム・バレンティン、ジェイ・スミス、アレックス・ベリー、ニック・リチャード、イシフ・イブラヒマ、ダン・ペレス、マルシン・シードラーツ、ベン・ウィズネル、バリー・ベンゲリック、ニコール・オッペンハイム、イアン・アール、アンドリュー・トンプソン、マット・ダンウッディ、エヴァン・リース、スティーブ・ミラー、アリッサラーマン、ジョン・ゴーマン、レナード・ガラン、スティーブ・ストーン、ニック・ベネット、マシュー・マクワート、マイク・バーンズ、オマー・ベイグ。

また、Microsoft の Nick Carr、Christopher Glyer、Ramin Nafisi にも感謝します。

参照: https://www.mandiant.com/resources/blog/evasive-attacker-leverages-solarwinds-supply-chain-compromises-with-sunburst-backdoor

Comments

Copied title and URL