SECURITY

AppLockerルールを悪用した防御回避:詳細分析

Microsoft社は、Windowsオペレーティングシステムでの悪質なコードの実行を監視および防止するための機能を継続的に開発、更新、改善しています。その1つがAppLockerです。AppLockerはソフトウェア制限ポリシーの機能を進化させたものです。管理者は、アプリケーション固有の識別子(ファイルハッシュなど)に基づいてアプリケーションの実行を特定のユーザーやグループに許可または禁止するルールを作成できます。

AppLockerでは、実行可能ファイル(.exe、.com)、スクリプト(.js、.ps1、.vbs、.cmd、.bat)、Windowsインストーラー(.msi、.mst、.msp)、DLLモジュール、パッケージアプリケーション、アプリケーションインストーラーの実行を制御できます。

このAppLockerを悪用するマルウェアが確認されています。その1つが「Azorult loader」で、このペイロードは防御を回避する目的で、いくつかのウイルス対策コンポーネントの実行を拒否する独自のAppLockerポリシーをインポートします。

このブログ記事では、Splunk脅威調査チームがAzorult loaderといくつかのコンポーネントを解析して、その戦術と技法を明らかにします。SOCアナリストやブルーチームのメンバーの方は、このタイプの脅威を防御するためにお役立てください。

Azorult loader(この図の拡大版はこちらから参照できます)

Azorult Loader

Azorult loaderは従来型の「トロイの木馬」で、複数のコンポーネントで構成され、Azorultマルウェア本体のほかに、リモートアクセスやデータ収集のための埋め込みファイルが含まれます。このローダーの実体はコンパイル済みのAutoIt実行可能ファイルで、リソースセクションには複数のファイルとともに自己解凍ストリームが含まれます。

防御回避

Azorultには、サンドボックス回避チェックリストがハードコードされています。このリストに基づいて、ターゲットホスト上で特定のユーザー名、デスクトップ上のファイル、ホスト名、実行プロセスを探します。見つかれば、それが存在していることがわかります。また、ターゲットホストのOSのバージョンが「winxp」の場合は実行を終了します。

 

ユーザー名

コンピューター名

デスクトップ上のファイル

プロセス

Peter Wilson

Acme

BOBSPC

Johnson

John

John Doe

Rivest

mw

me

sys

Apiary

STRAZNJICA.GRUBUTT

Phil

Customer

shimamu

RALPHS-PC

ABC-WIN7

man-PC

luser-PC

Klone-PC

tpt-PC

BOBSPC

WillCarter-PC

PETER-PC

David-PC

ART-PC

TOM-PC


@DesktopDir +\secret.txt


@DesktopDir + \my.txt


@DesktopDir +\report.odt


@DesktopDir +\report.rtf


@DesktopDir + \Incidents.pptx


Joeboxcontrol.exe

Joeboxserver.exe

Frida-winjector-helper-32.exe

analyzer.exe

 

 

「msseces.exe」プロセスが実行されている場合は、次のwmic.exeコマンドを使って「Microsoft Security Client」をアンインストールしようとします。


C:\Windows\System32\wbem\wmic.exe product where name="Microsoft Security Client" call uninstall /nointeractive

また、検出を回避するために、Windows Defenderアプリケーションの機能やその他のウイルス対策製品に関連するいくつかのレジストリキーを無効にします。図1.1と図1.2に、これらのレジストリの値を変更するAutoItスクリプトコードのスクリーンショットを示します。

AutoItスクリプトコード1図1.1

AutoItスクリプトコード2図1.2

さらに、実行の一部としていくつかのサービスを停止、削除、さらには設定変更することで、ウイルス対策製品の無効化を試みます。図2に、対象となるサービスのコードリストを示します。

無効化対象となるサービスのコードリスト図2

次に、SMBポート(445と139)をブロックし、投下(ドロップ)した悪質なファイルがネットワークに接続できるようにファイアウォール設定を更新します。図3に、ファイアウォールルールを変更するnetshコマンドを示します。

ファイアウォールルールを変更するnetshコマンド図3

その後、Windowsバイナリのattribとicaclsを使って、いくつかのウイルス対策製品のインストールルートフォルダーに対して隠しファイル属性とアクセス権拒否を設定します。図4と図5にそのコードを示します。

隠しファイル属性とアクセス権拒否設定1図4

隠しファイル属性とアクセス権拒否設定2図5

第1段階のファイル投下

ローダーは図6に示すファイルを投下します。「temp.bat」は、投下したファイルのいくつかを削除し、「C:\ProgramData\Windows」に作成したディレクトリに隠しファイル属性を追加する、クリーンアップのためのバッチファイルです。「clean.bat」は、Malwarebytesの「mbamservice.exe」プロセスを終了(kill)し、ウイルス対策製品やMinerGateなどのコインマイナー(仮想通貨マイニングプログラム)に関連するサービスを停止または削除します。

第1段階のファイル投下図6

「H.bat」は、ターゲットホストの「%SystemRoot%\System32\drivers\etc\hosts」にエントリを追加し、ウイルス対策製品、コインマイナー、一部のGitHub WebサイトをそのローカルホストIPアドレスにリダイレクトすることによってブロックします。図7に、ブロックの対象となるURLリンクと、ホストファイルにエントリを追加するコードを示します。

ブロックの対象となるURLリンクとホストファイルにエントリを追加するコード図7

「5.xml」は、このマルウェアの特徴的な部分です。このファイルには、防御回避のためのAppLockerルールが含まれます。このファイルについては、ルールをインポートするコンポーネントの分析で詳しく取り上げます。「ink.exe」はAzorultマルウェアの本体です。図8.1に、認証情報などの機密情報を収集するためにブラウザデータベースを解析するためのstringsコマンドを示します。

stringsコマンド図8.1

図8.2に、ターゲットホストに保存されたTelegram、Skype、ビットコインウォレット情報を解析して盗み出し、C2サーバーに送信するコードを示します。

コード図8.2

投下ファイル - wini.exe

投下される実行ファイルの1つが「wini.exe」です。これは自己解凍アーカイブ(sfx)です。自己解凍アーカイブは実行可能モジュールと組み合わされ、Windowsユーザーは解凍プログラムを使わずにアーカイブ内のファイルを展開できます。攻撃者は、サンドボックスやサンドボックスを使用しないエミュレーションを回避する目的でマルウェアをパスワードで保護するため、このタイプのファイルをよく利用します。

図9に、パスワードを指定せずに実行したときに表示されるパスワード入力ダイアログボックスを示します。

パスワード入力ダイアログボックス

投下ファイル - wini.exe図9

ローダーのAutoItスクリプトを詳しく調べると、このsfxファイルを実行するコマンドラインとパスワードを指定する次のコードが見つかりました。

Run("C:\ProgramData\Microsoft\Intel\wini.exe -pnaxui")

wini.exeは、「rfusclient.exe」と「rutserv.exe」で構成される、リモート管理のためのRMS (Remote Manipulator System)ツールを投下します。その後、このツールをインストールするために「install.vbs」を投下して、このファイルから別の投下ファイル「install.bat」を実行します。install.batは、Windows Defenderアプリケーションを無効にし、RMSツールのレジストリを設定してから(「reg1.reg」と「reg2.reg」)、RMSサーバーのrutserv.exeを実行し、そのサービスを設定します。

図10に、reg1.regファイルに書き込まれるRMSツール関連のレジストリを示します。また、図11に、install.batのコードを示します。

RMSツール関連のレジストリ図10

install.batのコード図11

さらに「winit.exe」という名前の実行可能ファイルを投下します。  これは、インストールされているウイルス対策製品、OSバージョン、ビデオアダプターなど、ターゲットホストの情報を収集するコンパイル済みのAutoItバイナリです。収集した情報は、SMTP経由または特定のメールおよび本文形式のメールで外部に送信されます。最後に「del.bat」を実行して自身を削除します。 

図12.1に、この実行可能ファイルのコードと、特定のメールアドレスに送信されるメール本文の作成コードを示します。

実行可能ファイルのコードとメール本文の作成コード図12.1

投下ファイル - cheat.exe図12.2

投下ファイル - cheat.exe

「cheat.exe」はwini.exeと同じくパスワードで保護されたsfxファイルで、パスワードは「naxui」です。このファイルは「P.exe」を投下し、P.exeが「1.exe」を投下および実行します。1.exeは、WebBrowserPassView.exeツールのコピーです。WebBrowserPassView.exeは、ブラウザに保存されたパスワードなどの認証情報を解析するNirSoftツールです。cheat.exeは「taskhost.exe」も投下します。このファイルが「P.exe」、「R8.exe」、「taskhostw.exe」を実行します。また、Khronos OpenCl ICDローダーの「OpenCL.dll」コンポーネントをインストールして、ユーザーが特定のOpenCL実装に対応するアプリケーションをビルドできるようにします。

taskhost.exeは、投下ファイル「taskhostw.exe」と「winlogon.exe」の永続化メカニズムとしてスケジュールタスクを作成します。さらに、特定のFTPサーバー(109.248.203.81)からファイルをダウンロードし、「C:\ProgramData\WindowsTask\temp.exe」として保存してから、ファイルを復号して実行します。残念ながら、執筆時点ではこのFTPサーバーにアクセスできませんでした。

図13に、FTPクライアントへの接続を設定して、いくつかのURLリンクの認証情報を解析するコードを示します。

URLリンクの認証情報を解析するコード図13

「winlogon.exe」もコンパイル済みAutoItファイルで、「KMSAutoNet」、「KMS」、「KMSAuto」を含むスケジュールタスクを探します。図14に、「/query list」コマンドを使ってすべてのスケジュールタスクをリストし、regexを使って目的のタスクを探すコードを示します。

regexを使って目的のタスクを探すコード図14

cheat.exeは「winlog.exe」という実行可能ファイルも投下します。このファイルが「winlogon.exe」を「C:\ProgramData\Microsoft\Intel」に投下します。「C:\ProgramData\Microsoft\Intel\winlogon.exe」は、実行可能ファイルに変換されたPowerShellスクリプトで、ローダー本体が投下した「5.xml」ファイル内のAppLockerポリシーをインポートするPowerShellコマンドを実行します。

図15に、複数のウイルス対策製品のアクションを拒否するAppLockerルールポリシーの適用コードの一部を示します。

AppLockerルールポリシーの適用コードの一部図15

このAppLockerポリシーは、PowerShellコマンドを使ってインポートされます。

“Import-Module applocker" ; "Set-AppLockerPolicy -XMLPolicy C:\ProgramData\microsoft\Temp\5.xml”

このXMLは適切に整形されており、図16に示すように、AppLockerルールセットにインポートしてすぐに、ウイルス対策製品の該当するアクションが実行を拒否されていることが確認されました。

ウイルス対策製品の該当するアクションが実行を拒否図16

Grzegorz Tworek氏が述べているとおり、AppLockerでは、トークンに「NT AUTHORITY\SERVICE」が含まれるプロセスをブロックすることもログに記録することもできません。多くのウイルス対策エンジンでは、防止コンポーネントにこのトークンが使用されます。ただし、検出したイベントに関するユーザーへのアラートや通知に使用されるコンポーネントは、より低い権限で実行されます。Azorultが投下するAppLockerポリシーでは、これらのコンポーネントのみが実行を阻止されます。

最後の投下ファイル「R8.exe」もsfxファイルで、「db.rar」を解凍します。「db.rar」には「install.vbs」が含まれ、そのスクリプトによって「bat.bat」が実行され、「John」という名前の非表示の特殊ユーザーアカウントが作成されて、RDP接続が有効になり、「RDPWinst.exe」が実行されます。続いて、この実行ファイルによってリモートデスクトップホストのサポートと機能が制限されたシステムでのRDPの複数同時セッションが有効になり、ローカルグループユーザーが作成され、「net accounts /maxpwage:unlimited」による無期限のパスワードが設定されて、非表示属性が設定された後、ファイル自体が削除されます。 

図17に、bat.batファイルのコードの一部を示します。

bat.batファイルのコードの一部図17

検出

以下では、このマルウェアの戦術と技法の検出に使用できる、脅威調査チームが開発した既存のサーチと新しいサーチをご紹介します。

Windows Applications Layer Protocol RMS Radmin Tool Namedpipe

この分析では、RMSリモート管理ツールで使われるデフォルトまたは公表済みの名前付きパイプの使用を検出します。

`sysmon` EventCode IN (17, 18) EventType IN ( "CreatePipe", "ConnectPipe") PipeName IN ("\\RManFUSServerNotify32", "\\RManFUSCallbackNotify32", "\\RMSPrint*") 
  | stats  min(_time) as firstTime max(_time) as lastTime count by Image EventType ProcessId PipeName Computer UserID
  | `security_content_ctime(firstTime)` 
  | `security_content_ctime(lastTime)`
  | `windows_application_layer_protocol_rms_radmin_tool_namedpipe_filter`

 

Windows Applications Layer Protocol RMS Radmin Tool Namedpipe

Windows Gather Victim Network Info Through IP Check Web Services

この分析では、既知のIPのWebサービスに接続しようとするプロセスを検出します。

`sysmon` EventCode=22  QueryName IN ("*wtfismyip.com", "*checkip.amazonaws.com", "*ipecho.net", "*ipinfo.io", "*api.ipify.org", 
  "*icanhazip.com", "*ip.anysrc.com","*api.ip.sb", "ident.me", "www.myexternalip.com", "*zen.spamhaus.org", "*cbl.abuseat.org", "*b.barracudacentral.org",
  "*dnsbl-1.uceprotect.net", "*spam.dnsbl.sorbs.net", "*iplogger.org*", "*ip-api.com*") 
  |  stats  min(_time) as firstTime max(_time) as lastTime count by  Image ProcessId QueryName QueryStatus QueryResults Computer EventCode 
  | `security_content_ctime(firstTime)` 
  | `security_content_ctime(lastTime)` 
  | `windows_gather_victim_network_info_through_ip_check_web_services_filter`

Windows Gather Victim Network Info Through IP Check Web Services

Windows Impair Defense Add XML AppLocker Rules

この分析では、PowerShellコマンドレットを使ってXML形式のAppLockerルールをインポートするプロセスを検出します。

| tstats `security_content_summariesonly` values(Processes.process) as process min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes
  where (Processes.process_name=pwsh.exe OR Processes.process_name=sqlps.exe OR Processes.process_name=sqltoolsps.exe OR Processes.process_name=powershell.exe OR Processes.process_name=powershell_ise.exe OR Processes.original_file_name=pwsh.dll OR Processes.original_file_name=PowerShell.EXE OR Processes.original_file_name=powershell_ise.EXE) AND Processes.process="*Import-Module Applocker*" AND Processes.process="*Set-AppLockerPolicy *"  AND Processes.process="* -XMLPolicy *"
  by Processes.dest Processes.user Processes.parent_process Processes.process_name Processes.original_file_name Processes.process Processes.process_id Processes.parent_process_id
  | `drop_dm_object_name(Processes)` 
  | `security_content_ctime(firstTime)` 
  | `security_content_ctime(lastTime)`
  | `windows_impair_defense_add_xml_applocker_rules_filter`

Windows Impair Defense Add XML AppLocker Rules

Windows Impair Defense Deny Security Software With AppLocker

この分析では、AppLockerアプリケーションによる、複数のセキュリティ製品の実行拒否に関連するWindowsレジストリの詳細またはレジストリデータ値の変更を検出します。

| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime FROM datamodel=Endpoint.Registry 
  where (Registry.registry_path= "*\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Group Policy Objects\\*" AND Registry.registry_path= "*}Machine\\Software\\Policies\\Microsoft\\Windows\\SrpV2*")
  OR Registry.registry_path="*\\Software\\Policies\\Microsoft\\Windows\\SrpV2*"
  AND Registry.registry_value_data = "*Action\=\"Deny\"*" 
  AND Registry.registry_value_data IN("*O=SYMANTEC*","*O=MCAFEE*","*O=KASPERSKY*","*O=BLEEPING COMPUTER*", "*O=PANDA SECURITY*","*O=SYSTWEAK SOFTWARE*", "*O=TREND MICRO*", "*O=AVAST*", "*O=GRIDINSOFT*", "*O=MICROSOFT*", "*O=NANO SECURITY*", "*O=SUPERANTISPYWARE.COM*", "*O=DOCTOR WEB*", "*O=MALWAREBYTES*", "*O=ESET*", "*O=AVIRA*", "*O=WEBROOT*")
  by  Registry.user Registry.registry_path Registry.registry_value_data Registry.action Registry.registry_key_name Registry.dest 
  | `drop_dm_object_name(Registry)`
  | `security_content_ctime(firstTime)`
  | `security_content_ctime(lastTime)` 
  | `windows_impair_defense_deny_security_software_with_applocker_filter`

Windows Impair Defense Deny Security Software With AppLocker

Windows Powershell Import AppLocker Policy

この分析では、PowerShellコマンドレットを使ってXML形式のAppLockerルールをインポートするプロセスを検出します。

`powershell` EventCode=4104 ScriptBlockText="*Import-Module Applocker*" ScriptBlockText="*Set-AppLockerPolicy *" ScriptBlockText="* -XMLPolicy *"
  | stats count min(_time) as firstTime max(_time) as lastTime by EventCode ScriptBlockText Computer user_id 
  | `security_content_ctime(firstTime)`
  | `security_content_ctime(lastTime)` 
  | `windows_powershell_import_applocker_policy_filter`

Windows Powershell Import AppLocker Policy

Windows Remote Access Software RMS Registry

この分析では、RMS (Remote Manipulator System)リモート管理ツールに関連するWindowsレジストリの変更または作成を検出します。

| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime FROM datamodel=Endpoint.Registry 
  where Registry.registry_path= "*\\SYSTEM\\Remote Manipulator System*" 
  by Registry.registry_key_name Registry.user Registry.registry_path Registry.registry_value_data Registry.action Registry.dest 
  | `drop_dm_object_name(Registry)`
  | `security_content_ctime(firstTime)`
  | `security_content_ctime(lastTime)`
  | `windows_remote_access_software_rms_registry_filter`

 

Windows Remote Access Software RMS Registry

Windows Valid Account With Never Expires Password

この分析では、ユーザーアカウントのパスワード要件ポリシーを変更してパスワードを無期限にするプロセスを検出します。

| tstats `security_content_summariesonly` values(Processes.process) as process min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes
  where (Processes.process_name="net.exe" OR Processes.original_file_name="net.exe" OR Processes.process_name="net1.exe" OR Processes.original_file_name="net1.exe") 
  AND Processes.process="* accounts *" AND Processes.process="* /maxpwage:unlimited" 
  by Processes.dest Processes.user Processes.parent_process Processes.process_name Processes.original_file_name Processes.process Processes.process_id Processes.parent_process_id
  | `drop_dm_object_name(Processes)` 
  | `security_content_ctime(firstTime)` 
  | `security_content_ctime(lastTime)` 
  | `windows_valid_account_with_never_expires_password_filter`

Windows Valid Account With Never Expires Password

Windows Modify Registry Disable Toast Notifications

この分析では、通知バナー(トースト)を無効にするためのWindowsレジストリの変更を検出します。

| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime FROM datamodel=Endpoint.Registry 
  where Registry.registry_path= "*\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\PushNotifications\\ToastEnabled*" Registry.registry_value_data="0x00000000" 
  by Registry.registry_key_name Registry.user Registry.registry_path Registry.registry_value_data Registry.action Registry.dest 
  | `drop_dm_object_name(Registry)`
  | `security_content_ctime(firstTime)`
  | `security_content_ctime(lastTime)` 
  | `windows_modify_registry_disable_toast_notifications_filter`

Windows Modify Registry Disable Toast Notifications

Windows Modify Registry Disable Windows Security Center Notif

この分析では、Windows通知センターでの通知を無効にするためのWindowsレジストリの変更を検出します。

| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime FROM datamodel=Endpoint.Registry 
  where Registry.registry_path= "*\\Windows\\CurrentVersion\\ImmersiveShell\\UseActionCenterExperience*" Registry.registry_value_data="0x00000000" 
  by Registry.registry_key_name Registry.user Registry.registry_path Registry.registry_value_data Registry.action Registry.dest 
  | `drop_dm_object_name(Registry)`
  | `security_content_ctime(firstTime)`
  | `security_content_ctime(lastTime)` 
  | `windows_modify_registry_disable_windows_security_center_notif_filter`

Windows Modify Registry Disable Windows Security Center Notif

Windows Modify Registry Suppress Win Defender Notif

この分析では、Windows Defenderの通知を抑制するためのWindowsレジストリの変更を検出します。

| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime FROM datamodel=Endpoint.Registry 
  where Registry.registry_path= "*\\Windows Defender\\UX Configuration\\Notification_Suppress*" Registry.registry_value_data="0x00000001" 
  by Registry.registry_key_name Registry.user Registry.registry_path Registry.registry_value_data Registry.action Registry.dest 
  | `drop_dm_object_name(Registry)`
  | `security_content_ctime(firstTime)`
  | `security_content_ctime(lastTime)` 
  | `windows_modify_registry_suppress_win_defender_notif_filter`

 

Windows Modify Registry Suppress Win Defender Notif

Windows Remote Services Allow RDP in Firewall

この分析では、ターゲットマシンでRDP (リモートデスクトッププロトコル)を有効にするためのWindowsファイアウォールの変更を検出します。

| tstats `security_content_summariesonly` values(Processes.process) as cmdline
  values(Processes.parent_process_name) as parent_process values(Processes.process_name)
  count min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes
  where (Processes.process_name = "netsh.exe" OR Processes.original_file_name= "netsh.exe") AND Processes.process = "*firewall*" AND Processes.process = "*add*" AND Processes.process = "*protocol=TCP*" 
  AND Processes.process = "*localport=3389*" AND Processes.process = "*action=allow*"
  by Processes.dest Processes.user Processes.parent_process Processes.process_name
  Processes.process Processes.process_id Processes.parent_process_id | `drop_dm_object_name(Processes)`
  | `security_content_ctime(firstTime)` 
  | `security_content_ctime(lastTime)` 
  | `windows_remote_services_allow_rdp_in_firewall_filter`

Windows Remote Services Allow RDP in Firewall

Windows Remote Services Allow Remote Assistance

この分析では、ターゲットマシンでリモートデスクトップアシスタンスを有効にするためのWindowsレジストリの変更を検出します。

| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime FROM datamodel=Endpoint.Registry 
  where Registry.registry_path= "*\\Control\\Terminal Server\\fAllowToGetHelp*" Registry.registry_value_data="0x00000001" 
  by Registry.registry_key_name Registry.user Registry.registry_path Registry.registry_value_data Registry.action Registry.dest 
  | `drop_dm_object_name(Registry)`
  | `security_content_ctime(firstTime)`
  | `security_content_ctime(lastTime)` 
  | `windows_remote_services_allow_remote_assistance_filter`

Windows Remote Services Allow Remote Assistance

Windows Remote Services RDP Enable

この分析では、ターゲットマシンでRDP (リモートデスクトッププロトコル)を有効にするためのWindowsレジストリの変更を検出します。

| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime FROM datamodel=Endpoint.Registry 
  where Registry.registry_path= "*\\Control\\Terminal Server\\fDenyTSConnections*" Registry.registry_value_data="0x00000000" 
  by Registry.registry_key_name Registry.user Registry.registry_path Registry.registry_value_data Registry.action Registry.dest 
  | `drop_dm_object_name(Registry)`
  | `security_content_ctime(firstTime)`
  | `security_content_ctime(lastTime)` 
  | `windows_remote_services_rdp_enable_filter` 

Windows Remote Services RDP Enable

Windows Service Stop by Deletion

この分析では、サービスを削除しようとするWindowsサービスコントロール「sc.exe」を検出します。

| tstats `security_content_summariesonly` values(Processes.process) as process min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes
  where (Processes.process_name = sc.exe OR Processes.original_file_name = sc.exe) Processes.process="* delete *" by Processes.dest Processes.user Processes.parent_process Processes.process_name
  Processes.original_file_name Processes.process Processes.process_id Processes.parent_process_id
  | `drop_dm_object_name(Processes)` 
  | `security_content_ctime(firstTime)` 
  | `security_content_ctime(lastTime)` 
  | `windows_service_stop_by_deletion_filter` 

Windows Service Stop by Deletion

Windows Modify Registry Disable Win Defender Raw Write Notif

この分析では、Windows Defenderのraw書き込み通知機能を無効にするためのWindowsレジストリの変更を検出します。  

| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime FROM datamodel=Endpoint.Registry 
  where Registry.registry_path= "*\\Windows Defender\\Real-Time Protection\\DisableRawWriteNotification*" Registry.registry_value_data="0x00000001" 
  by Registry.registry_key_name Registry.user Registry.registry_path Registry.registry_value_data Registry.action Registry.dest 
  | `drop_dm_object_name(Registry)`
  | `security_content_ctime(firstTime)`
  | `security_content_ctime(lastTime)` 
  | `windows_modify_registry_disable_win_defender_raw_write_notif_filter`

Windows Modify Registry Disable Win Defender Raw Write Notif

Windows Modify Registry Disabling WER Settings

この分析では、Windowsエラーレポートの設定を無効にするためのWindowsレジストリの変更を検出します。

| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime FROM datamodel=Endpoint.Registry 
  where Registry.registry_path= "*\\SOFTWARE\\Microsoft\\Windows\\Windows Error Reporting\\disable*" Registry.registry_value_data="0x00000001" 
  by Registry.registry_key_name Registry.user Registry.registry_path Registry.registry_value_data Registry.action Registry.dest 
  | `drop_dm_object_name(Registry)`
  | `security_content_ctime(firstTime)`
  | `security_content_ctime(lastTime)`
  | `windows_modify_registry_disabling_wer_settings_filter`

Windows Modify Registry Disabling WER Settings

Windows Modify Registry DisAllow Windows App

この分析では、マルウェアの手動削除やセキュリティ製品によるマルウェア検出に関連する特定のコンピュータープログラムをユーザーが実行できないようにするためのWindowsレジストリの変更を検出します。

| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime FROM datamodel=Endpoint.Registry 
  where Registry.registry_path= "*\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer\\DisallowRun*" Registry.registry_value_data="0x00000001" 
  by Registry.registry_key_name Registry.user Registry.registry_path Registry.registry_value_data Registry.action Registry.dest 
  | `drop_dm_object_name(Registry)`
  | `security_content_ctime(firstTime)`
  | `security_content_ctime(lastTime)` 
  | `windows_modify_registry_disallow_windows_app_filter`

Windows Modify Registry DisAllow Windows App

Windows Modify Registry Regedit Silent Reg Import

この分析では、regedit.exeアプリケーションとサイレントモードパラメーターを使ってWindowsレジストリが変更された可能性を検出します。

| tstats `security_content_summariesonly` values(Processes.process) as process min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes
  where (Processes.process_name="regedit.exe" OR Processes.original_file_name="regedit.exe") 
  AND Processes.process="* /s *" AND Processes.process="*.reg*" 
  by Processes.dest Processes.user Processes.parent_process Processes.process_name Processes.original_file_name Processes.process Processes.process_id Processes.parent_process_id
  | `drop_dm_object_name(Processes)` 
  | `security_content_ctime(firstTime)` 
  | `security_content_ctime(lastTime)` 
  | `windows_modify_registry_regedit_silent_reg_import_filter`

Windows Modify Registry Regedit Silent Reg Import

Windows Remote Service RDPWinst Tool Execution

この分析では、リモートデスクトップホストのサポートと機能制限下でのRDPの複数同時セッションを有効にするRDPラッパーライブラリツール「RDPWInst.exe」のプロセスを検出します。

| tstats `security_content_summariesonly` values(Processes.process) as process min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes
  where (Processes.process_name="RDPWInst.exe" OR Processes.original_file_name="RDPWInst.exe") 
  AND Processes.process IN ("* -i*", "* -s*", "* -o*", "* -w*", "* -r*")
  by Processes.dest Processes.user Processes.parent_process Processes.process_name Processes.original_file_name Processes.process Processes.process_id Processes.parent_process_id
  | `drop_dm_object_name(Processes)` 
  | `security_content_ctime(firstTime)` 
  | `security_content_ctime(lastTime)` 
  | `windows_remote_service_rdpwinst_tool_execution_filter`

Windows Remote Service RDPWinst Tool Execution

 

タイプ 名前 Technique ID Tactic 説明

TTP

Attempt To Stop Security Service

T1562.001

防御回避

このサーチでは、エンドポイントでセキュリティ関連のサービスを停止しようとする挙動を検出します。

TTP

CHCP Command Execution

T1059

実行

このサーチでは、chcp.exeアプリケーションの実行を検出します。

ハンティング

cmd_carry_out_string_command_parameter

T1059.003

実行

この分析では、cmd.exe /cを使ってプログラムを実行するコマンドライン引数を検出します。

TTP

Create local admin accounts using net exe

T1136.001

永続化

このサーチでは、net.exeを使用したローカル管理者アカウントの作成を検出します。

TTP

Detect Use of cmd exe to Launch Script Interpreters

T1059.003

実行

このサーチでは、cmd.exeを親とするcscript.exeまたはwscript.exeプロセスの実行を検出します。

異常

Excessive Attempt To Disable Services

T1489

影響

この分析では、複数のサービスを無効にする一連の不審なコマンドラインを検出します。

異常

Excessive Usage Of Cacls App

T1222

防御回避

この分析では、ファイルまたはフォルダーの権限を変更するための、cacls.exe、xcacls.exe、icacls.exeアプリケーションの過度な使用を検出します。

異常

Excessive Usage Of Net App

T1531

影響

この分析では、net.exeまたはnet1.exeの過度な使用を検出します。

異常

Excessive Usage Of SC Service Utility

T1569.002

実行

このサーチでは、ホストマシンでのsc.exeの不審な過度の使用を検出します。 

異常

Excessive Usage Of Taskkill

T1562.001

防御回避

この分析では、taskkill.exeアプリケーションの過度な使用を検出します。 

TTP

Executables Or Script Creation In Suspicious Path

T1036

防御回避

このサーチでは、Windows内の不審なファイルパスのリストの中から不審な実行可能ファイルやスクリプト(既知のファイル拡張子)を検出します。

異常

Firewall Allowed Program Enable

T1562.004

防御回避

この分析では、特定のアプリケーションの実行を許可するようにファイアウォールルールが不正に変更された可能性を検出します。

TTP

Hide User Account From Sign-In Screen

T1562.001

防御回避

この分析では、Windowsログイン画面でユーザーアカウントを非表示にする不審なレジストリ変更を検出します。

TTP

Hiding Files And Directories With Attrib exe

T1222.001

防御回避

このサーチでは、既存のWindowsバイナリ「attrib.exe」を使って特定のフラグを設定することで特定のファイルを非表示にし、ユーザーに見えないようにする攻撃を検出します。

TTP

Icacls Deny Command

T1222

防御回避

この分析では、特定のファイルまたはディレクトリのセキュリティ権限を変更する攻撃を受けた可能性を検出します。

ハンティング

Net Localgroup Discovery

T1069.001

検出

このハンティング分析では、net localgroupを使用したローカルグループ検索の使用を検出します。

ハンティング

Network Connection Discovery With Net

T1049

検出

この分析では、ターゲットシステムでネットワーク接続のリストを取得するためのコマンドライン引数が指定されたnet.exeの実行を検出します。

TTP

Processes launching netsh

T1562.004

防御回避

このサーチでは、netsh.exeを起動するプロセスを検出します。

TTP

Sc exe Manipulating Windows Services

T1543.003

権限昇格

このサーチでは、Windowsサービスの作成または変更を示すsc.exeの引数を検出します。

TTP

Scheduled Task Deleted Or Created via CMD

T1053.005

実行、永続化、権限昇格

この分析では、コマンドラインでcreateまたはdeleteのフラグを指定したschtasks.exeの実行によるスケジュールタスクの作成または削除を検出します。 

異常

Suspicious Scheduled Task from Public Directory

T1053.005

実行、永続化、権限昇格

この検出では、users\public、\programdata\、\windows\tempを含むパブリックディレクトリから実行される、バイナリまたはスクリプトを登録するスケジュールタスク(新しいタスクの作成)を検出します。

TTP

Allow Operation with Consent Admin

T1548

実行、永続化、権限昇格

この分析では、権限昇格が必要な操作を同意または認証情報なしで実行することをConsent Adminに許可するレジストリ変更を検出します。

TTP

Disable Defender Submit Samples Consent Feature

T1562.001

防御回避

この分析では、Windows Defenderの機能を無効にする不審なレジストリ変更を検出します。

TTP

Disabling Remote User Account Control

T1548.002

防御回避、権限昇格

このサーチでは、Windowsユーザーアカウント制御(UAC)の適用を制御するレジストリキーの変更を検出します。

TTP

Windows DisableAntiSpyware Registry

T1562.001

防御回避

このサーチでは、レジストリキー「DisableAntiSpyware」の無効化を検出します。このサーチは、多数のエンドポイントのRyuk感染に対応します。

TTP

Disable Show Hidden Files

T1564.001
T1562.001

防御回避

この分析では、隠しファイル属性が設定されたすべてのファイルをユーザーが表示できないようにするためのWindowsレジストリの変更を検出します。

異常

Non Firefox Process Access Firefox Profile Dir

T1555.003

認証情報アクセス

このサーチでは、FireFox以外のプロセスがそのプロファイルフォルダー内のファイルにアクセスする異常なイベントを検出します。

TTP

Registry Keys Used For Persistence

T1547.001

永続化、権限昇格

このサーチでは、システム起動時にアプリケーションやサービスを開始するために使用されるレジストリキーの変更を検出します。

TTP

Windows Defender Exclusion Registry Entry

T1562.001

防御回避

この分析では、Windows Defenderの除外機能に関連するレジストリを変更する不審なプロセスを検出します。

TTP

Disable Defender BlockAtFirstSeen Feature

T1562.001

防御回避

この分析では、Windows Defenderの機能を無効にする不審なレジストリ変更を検出します。 

TTP

Disable Defender Enhanced Notification

T1562.001

防御回避

この分析では、Windows Defenderでユーザーまたは管理者がアラートの表示/非表示を設定できる拡張通知機能を無効にして検出を回避する技法を検出します。

TTP

Disable Defender Spynet Reporting

T1562.001

防御回避

この分析では、Windows Defenderのテレメトリに使用されるSpyNetレポートを無効にして検出を回避する技法を検出します。

異常

Windows Modify Registry Disable Toast Notifications (新規)

T1112

防御回避

この分析では、通知バナー(トースト)を無効にするためのWindowsレジストリの変更を検出します。

異常

Windows Modify Registry Disable Windows Security Center Notif (新規)

T1112

防御回避

この分析では、Windows通知センターでの通知を無効にするためのWindowsレジストリの変更を検出します。

異常

Windows Modify Registry Suppress Win Defender Notif (新規)

T1112

防御回避

この分析では、Windows Defenderの通知を抑制するためのWindowsレジストリの変更を検出します。

異常

Windows Remote Services Allow Rdp In Firewall (新規)

T1021.001

ラテラルムーブメント

この分析では、ターゲットマシンでRDP (リモートデスクトッププロトコル)を有効にするためのWindowsファイアウォールの変更を検出します。

異常

Windows Remote Services Allow Remote Assistance (新規)

T1021.001

ラテラルムーブメント

この分析では、ターゲットマシンでリモートデスクトップアシスタンスを有効にするためのWindowsレジストリの変更を検出します。

TTP

Windows Service Stop By Deletion (新規)

T1489

影響

この分析では、サービスを削除しようとするWindowsサービスコントロール「sc.exe」を検出します。

TTP

Windows Remote Services RDP Enable (新規)

T1021.001

ラテラルムーブメント

この分析では、ターゲットマシンでRDP (リモートデスクトッププロトコル)を有効にするためのWindowsレジストリの変更を検出します。

TTP

Windows Application Layer Protocol RMS Radmin Tool Namedpipe (新規)

T1071

コマンドアンドコントロール

この分析では、RMSリモート管理ツールで使われるデフォルトまたは公表済みの名前付きパイプの使用を検出します。 

TTP

Allow Inbound Traffic By Firewall Rule Registry (改訂)

T1021.001

ラテラルムーブメント

この分析では、パブリックプロファイルで特定のポートでの受信トラフィックを許可するようにファイアウォールルールレジストリが不正に変更された可能性を検出します。

ハンティング

Windows Gather Victim Network Info Through Ip Check Web Services (新規)

T1590.005

偵察

この分析では、既知のIPのWebサービスに接続しようとするプロセスを検出します。


ハンティング

Windows Impair Defense Add Xml AppLocker Rules (新規)

T1562.001

防御回避

この分析では、PowerShellコマンドレットを使ってXML形式のAppLockerルールをインポートするプロセスを検出します。

TTP

Windows Impair Defense Deny Security Software With AppLocker (新規)

T1562.001

防御回避

この分析では、AppLockerアプリケーションによる、複数のセキュリティ製品の実行拒否に関連するWindowsレジストリの詳細またはレジストリデータ値の変更を検出します。 

TTP

Windows Powershell Import AppLocker Policy (新規)

T1562.001

防御回避

この分析では、PowerShellコマンドレットを使ってXML形式のAppLockerルールをインポートするプロセスを検出します。

TTP

Windows Remote Access Software RMS Registry (新規)

T1219

コマンドアンドコントロール

この分析では、RMS (Remote Manipulator System)リモート管理ツールに関連するWindowsレジストリの変更または作成を検出します。

TTP

Windows Valid Account With Never Expires Password (新規)

T1489

影響

この分析では、ユーザーアカウントのパスワード要件ポリシーを変更してパスワードを無期限にするプロセスを検出します。

異常

Windows Modify Registry Disable Win Defender Raw Write Notif (新規)

T1112

防御回避

この分析では、Windows Defenderのraw書き込み通知機能を無効にするためのWindowsレジストリの変更を検出します。

TTP

Windows Modify Registry Disabling WER Settings (新規)

T1112

防御回避

この分析では、Windowsエラーレポートの設定を無効にするためのWindowsレジストリの変更を検出します。

 

Windows Modify Registry DisAllow Windows App (新規)

T1112

防御回避

この分析では、マルウェアの手動削除やセキュリティ製品によるマルウェア検出に関連する特定のコンピュータープログラムをユーザーが実行できないようにするためのWindowsレジストリの変更を検出します。

TTP

Windows Modify Registry Regedit Silent Reg Import (新規)

T1112

防御回避

この分析では、regedit.exeアプリケーションとサイレントモードパラメーターを使ってWindowsレジストリが変更された可能性を検出します。

TTP

Windows Remote Service RDPWinst Tool Execution (新規)

T1021.001

ラテラルムーブメント

この分析では、リモートデスクトップホストのサポートと機能制限下でのRDPの複数同時セッションを有効にするRDPラッパーライブラリツール「RDPWInst.exe」のプロセスを検出します。

 

IoC (侵害の痕跡)

 

ファイル名:5.xml

SHA256:9a8efbd09c9cc1ee7e8ff76ea60846b5cd5a47cdaae8e92331f3b7b6a5db4be5

ファイル名:cheat.exe

SHA256:b80857cd30e6ec64e470480aae3c90f513115163c74bb584fa27adf434075ab2

ファイル名:clean.bat

SHA256:1134b862f4d0ce10466742beb334c06c2386e85acad72725ddb1cecb1871b312

ファイル名:db.rar

SHA256:534e0430f7e8883b352e7cba4fa666d2f574170915caa8601352d5285eee5432

ファイル名:h.bat

SHA256:a33af2b70ad8fea8900b6bd31ac7b0aab8a2b8b79e3e27adafbd34bdfcb67549

ファイル名:ink.exe

SHA256:136590cb329a56375d6336b12878e18035412abf44c60bebdaa6c37840840040

ファイル名: Install cheat 1_7.bin

SHA256:dd396a3f66ad728660023cb116235f3cb1c35d679a155b08ec6a9ccaf966c360

ファイル名: P.exe

SHA256:8215e35c9ce15a7b7373871b27100577d3e609856eac71080ac13972a6a6748b

ファイル名:R8.exe

SHA256:40d4931bbb3234a2e399e2e3e0dcfe4b7b05362c58d549569f2888d5b210ebbd

ファイル名:taskhost.exe

SHA256:892e0afefca9c88d43bdd1beea0f09faadef618af0226e7cd1acdb47e871a0db

ファイル名:temp.bat

SHA256:ccf47d036ccfe0c8d0fe2854d14ca21d99be5fa11d0fbb16edcc1d6c10de3512

ファイル名:wini.exe

SHA256:9276d1bb2cd48fdf46161deaf7ad4b0dbcef9655d462584e104bd3f2a8c944ce

ファイル名:winlog.exe

SHA256:54eda5cc37afb3b725fa2078941b3b93b6aec7b8c61cd83b9b2580263ce54724

ファイル名:cheat_exe\P\1.exe

SHA256:7f11dabe46bf0af8973ce849194a587bd0ba1452e165faf028983f85b2b624c2

ファイル名:cheat_exe\R8\db.rar

SHA256:534e0430f7e8883b352e7cba4fa666d2f574170915caa8601352d5285eee5432

ファイル名:cheat_exe\R8\pause.bat

SHA256:46565c0588b170ae02573fde80ba9c0a2bfe3c6501237404d9bd105a2af01cba

ファイル名:cheat_exe\R8\Rar.exe

SHA256:2356220cfa9159b463d762e2833f647a04fa58b4c627fcb4fb1773d199656ab8

ファイル名:cheat_exe\R8\run.vbs

SHA256:c7758bb2fdf207306a5b83c9916bfffcc5e85efe14c8f00d18e2b6639b9780fe

ファイル名:cheat_exe\taskhost\opencl.dll

SHA256:7cc0d32b00f4596bf0a193f9929e6c628bc1b9354678327f59db0bd516a0dd6b

ファイル名:cheat_exe\taskhost\taskhostw.exe

SHA256:00cb457c1bf203fdb75da2cb0ba517d177ea5decc071f27f6a5ba3ee7d30da93

ファイル名:cheat_exe\taskhost\taskhostw\winlogon.exe

SHA256:870ff02d42814457290c354229b78232458f282eb2ac999b90c7fcea98d16375

ファイル名:cheat_exe\winlog\winlogon.exe

SHA256:dc6d63798444d1f614d4a1ff8784ad63b557f4d937d90a3ad9973c51367079de

ファイル名:wini_exe\install.bat

SHA256:e3db831cdb021d6221be26a36800844e9af13811bac9e4961ac21671dff9207a

ファイル名:wini_exe\install.vbs

SHA256:cd8df8b0c43c36aabb0a960e4444b000a04eb513f0b34e12dbfd098944e40931

ファイル名:wini_exe\reg1.reg

SHA256:7ae7e4c0155f559f3c31be25d9e129672a88b445af5847746fe0a9aab3e79544

ファイル名:wini_exe\reg2.reg

SHA256:4ae04a85412ec3daa0fb33f21ed4eb3c4864c3668b95712be9ec36ef7658422a

ファイル名:wini_exe\rfusclient.exe

SHA256:dc9d875e659421a51addd8e8a362c926369e84320ab0c5d8bbb1e4d12d372fc9

ファイル名:wini_exe\rutserv.exe

SHA256:1699b9b4fc1724f9b0918b57ca58c453829a3935efd89bd4e9fa66b5e9f2b8a6

ファイル名:wini_exe\vp8decoder.dll

SHA256:4c04d7968a9fe9d9258968d3a722263334bbf5f8af972f206a71f17fa293aa74

ファイル名:wini_exe\vp8encoder.dll

SHA256:81af82019d9f45a697a8ca1788f2c5c0205af9892efd94879dedf4bc06db4172

ファイル名:wini_exe\winit.exe

SHA256:e95fc3e7ed9ec61ba7214cc3fe5d869e2ee22abbeac3052501813bb2b6dde210

ファイル名:wini_exe\winit\del.bat

SHA256:e376f2a9dda89354311b1064ea4559e720739d526ef7da0518ebfd413cd19fc1

 

詳細情報

セキュリティ分析ストーリーの最新コンテンツは、GitHubSplunkbaseからダウンロードできます。Splunk Security Essentialsでは、プッシュアップデートによってすべての検出方法を利用できます。 

すべてのセキュリティコンテンツの一覧は、Splunk Docsリリースノートに掲載されています。

 

ご意見やご要望がございましたら、GitHubから遠慮なくお寄せください。Slackチャネル「#security-research」にご参加いただくこともできます。SlackのSplunkユーザーグループへの招待が必要な場合は、こちらの手順に従ってください。

 


この記事は、Teoderick Contreras著、Rod Soto、Jose Hernandez、Patrick Bareiss、Lou Stella、Bhavin Patel、Michael Haag、Mauricio Velazco and Eric McGinnisの協力のもと執筆されました。

このブログはこちらの英語ブログの翻訳、横田 聡によるレビューです。

 

The Splunk Threat Research Team is an active part of a customer’s overall defense strategy by enhancing Splunk security offerings with verified research and security content such as use cases, detection searches, and playbooks. We help security teams around the globe strengthen operations by providing tactical guidance and insights to detect, investigate and respond against the latest threats. The Splunk Threat Research Team focuses on understanding how threats, actors, and vulnerabilities work, and the team replicates attacks which are stored as datasets in the Attack Data repository

Our goal is to provide security teams with research they can leverage in their day to day operations and to become the industry standard for SIEM detections. We are a team of industry-recognized experts who are encouraged to improve the security industry by sharing our work with the community via conference talks, open-sourcing projects, and writing white papers or blogs. You will also find us presenting our research at conferences such as Defcon, Blackhat, RSA, and many more.


Read more Splunk Security Content

TAGS
Show All Tags
Show Less Tags