GroupsビデオSECURITYAppLockerルールを悪用した防御回避:詳細分析Share:Microsoft社は、Windowsオペレーティングシステムでの悪質なコードの実行を監視および防止するための機能を継続的に開発、更新、改善しています。その1つがAppLockerです。AppLockerはソフトウェア制限ポリシーの機能を進化させたものです。管理者は、アプリケーション固有の識別子(ファイルハッシュなど)に基づいてアプリケーションの実行を特定のユーザーやグループに許可または禁止するルールを作成できます。AppLockerでは、実行可能ファイル(.exe、.com)、スクリプト(.js、.ps1、.vbs、.cmd、.bat)、Windowsインストーラー(.msi、.mst、.msp)、DLLモジュール、パッケージアプリケーション、アプリケーションインストーラーの実行を制御できます。このAppLockerを悪用するマルウェアが確認されています。loader」で、このペイロードは防御を回避する目的で、いくつかのウイルス対策コンポーネントの実行を拒否する独自のAppLockerポリシーをインポートします。loaderといくつかのコンポーネントを解析して、その戦術と技法を明らかにします。SOCアナリストやブルーチームのメンバーの方は、このタイプの脅威を防御するためにお役立てください。loaderは従来型の「トロイの木馬」で、複数のコンポーネントで構成され、Azorultマルウェア本体のほかに、リモートアクセスやデータ収集のための埋め込みファイルが含まれます。このローダーの実体はコンパイル済みのAutoIt実行可能ファイルで、リソースセクションには複数のファイルとともに自己解凍ストリームが含まれます。防御回避Azorultには、サンドボックス回避チェックリストがハードコードされています。このリストに基づいて、ターゲットホスト上で特定のユーザー名、デスクトップ上のファイル、ホスト名、実行プロセスを探します。見つかれば、それが存在していることがわかります。ターゲットホストのOSのバージョンが「winxp」の場合は実行を終了します。Client」をアンインストールしようとします。Defenderアプリケーションの機能やその他のウイルス対策製品に関連するいくつかのレジストリキーを無効にします。図1.1と図1.2に、これらのレジストリの値を変更するAutoItスクリプトコードのスクリーンショットを示します。図1.1図1.2さらに、実行の一部としていくつかのサービスを停止、削除、さらには設定変更することで、ウイルス対策製品の無効化を試みます。図2に、対象となるサービスのコードリストを示します。図2次に、SMBポート(445と139)をブロックし、投下(ドロップ)した悪質なファイルがネットワークに接続できるようにファイアウォール設定を更新します。図3に、ファイアウォールルールを変更するnetshコマンドを示します。図3その後、Windowsバイナリのattribとicaclsを使って、いくつかのウイルス対策製品のインストールルートフォルダーに対して隠しファイル属性とアクセス権拒否を設定します。図4と図5にそのコードを示します。図4図5第1段階のファイル投下ローダーは図6に示すファイルを投下します。「temp.bat」は、投下したファイルのいくつかを削除し、「C:\ProgramData\Windows」に作成したディレクトリに隠しファイル属性を追加する、クリーンアップのためのバッチファイルです。「clean.bat」は、Malwarebytesの「mbamservice.exe」プロセスを終了(kill)し、ウイルス対策製品やMinerGateなどのコインマイナー(仮想通貨マイニングプログラム)に関連するサービスを停止または削除します。WebサイトをそのローカルホストIPアドレスにリダイレクトすることによってブロックします。図7に、ブロックの対象となるURLリンクと、ホストファイルにエントリを追加するコードを示します。図7「5.xml」は、このマルウェアの特徴的な部分です。このファイルには、防御回避のためのAppLockerルールが含まれます。このファイルについては、ルールをインポートするコンポーネントの分析で詳しく取り上げます。「ink.exe」はAzorultマルウェアの本体です。図8.1に、認証情報などの機密情報を収集するためにブラウザデータベースを解析するためのstringsコマンドを示します。図8.1図8.2に、ターゲットホストに保存されたTelegram、Skype、ビットコインウォレット情報を解析して盗み出し、C2サーバーに送信するコードを示します。wini.exe投下される実行ファイルの1つが「wini.exe」です。これは自己解凍アーカイブ(sfx)です。自己解凍アーカイブは実行可能モジュールと組み合わされ、Windowsユーザーは解凍プログラムを使わずにアーカイブ内のファイルを展開できます。攻撃者は、サンドボックスやサンドボックスを使用しないエミュレーションを回避する目的でマルウェアをパスワードで保護するため、このタイプのファイルをよく利用します。図9に、パスワードを指定せずに実行したときに表示されるパスワード入力ダイアログボックスを示します。図9ローダーのAutoItスクリプトを詳しく調べると、このsfxファイルを実行するコマンドラインとパスワードを指定する次のコードが見つかりました。System)ツールを投下します。その後、このツールをインストールするために「install.vbs」を投下して、このファイルから別の投下ファイル「install.bat」を実行します。Defenderアプリケーションを無効にし、RMSツールのレジストリを設定してから(「reg1.reg」と「reg2.reg」)、RMSサーバーのrutserv.exeを実行し、そのサービスを設定します。図10に、reg1.regファイルに書き込まれるRMSツール関連のレジストリを示します。図11に、install.batのコードを示します。図10図11さらに「winit.exe」という名前の実行可能ファイルを投下します。これは、インストールされているウイルス対策製品、OSバージョン、ビデオアダプターなど、ターゲットホストの情報を収集するコンパイル済みのAutoItバイナリです。収集した情報は、SMTP経由または特定のメールおよび本文形式のメールで外部に送信されます。最後に「del.bat」を実行して自身を削除します。図12.1に、この実行可能ファイルのコードと、特定のメールアドレスに送信されるメール本文の作成コードを示します。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」を実行します。ICDローダーの「OpenCL.dll」コンポーネントをインストールして、ユーザーが特定のOpenCL実装に対応するアプリケーションをビルドできるようにします。taskhost.exeは、投下ファイル「taskhostw.exe」と「winlogon.exe」の永続化メカニズムとしてスケジュールタスクを作成します。特定のFTPサーバー(109.248.203.81)からファイルをダウンロードし、「C:\ProgramData\WindowsTask\temp.exe」として保存してから、ファイルを復号して実行します。残念ながら、執筆時点ではこのFTPサーバーにアクセスできませんでした。図13に、FTPクライアントへの接続を設定して、いくつかのURLリンクの認証情報を解析するコードを示します。図13「winlogon.exe」もコンパイル済みAutoItファイルで、「KMSAutoNet」、「KMS」、「KMSAuto」を含むスケジュールタスクを探します。list」コマンドを使ってすべてのスケジュールタスクをリストし、regexを使って目的のタスクを探すコードを示します。図14cheat.exeは「winlog.exe」という実行可能ファイルも投下します。このファイルが「winlogon.exe」を「C:\ProgramData\Microsoft\Intel」に投下します。「C:\ProgramData\Microsoft\Intel\winlogon.exe」は、実行可能ファイルに変換されたPowerShellスクリプトで、ローダー本体が投下した「5.xml」ファイル内のAppLockerポリシーをインポートするPowerShellコマンドを実行します。図15に、複数のウイルス対策製品のアクションを拒否するAppLockerルールポリシーの適用コードの一部を示します。図15このAppLockerポリシーは、PowerShellコマンドを使ってインポートされます。C:\ProgramData\microsoft\Temp\5.xml”このXMLは適切に整形されており、図16に示すように、AppLockerルールセットにインポートしてすぐに、ウイルス対策製品の該当するアクションが実行を拒否されていることが確認されました。AUTHORITY\SERVICE」が含まれるプロセスをブロックすることもログに記録することもできません。多くのウイルス対策エンジンでは、防止コンポーネントにこのトークンが使用されます。検出したイベントに関するユーザーへのアラートや通知に使用されるコンポーネントは、より低い権限で実行されます。Azorultが投下するAppLockerポリシーでは、これらのコンポーネントのみが実行を阻止されます。最後の投下ファイル「R8.exe」もsfxファイルで、「db.rar」を解凍します。「db.rar」には「install.vbs」が含まれ、そのスクリプトによって「bat.bat」が実行され、「John」という名前の非表示の特殊ユーザーアカウントが作成されて、RDP接続が有効になり、「RDPWinst.exe」が実行されます。/maxpwage:unlimited」による無期限のパスワードが設定されて、非表示属性が設定された後、ファイル自体が削除されます。図17に、bat.batファイルのコードの一部を示します。以下では、このマルウェアの戦術と技法の検出に使用できる、脅威調査チームが開発した既存のサーチと新しいサーチをご紹介します。Namedpipeこの分析では、RMSリモート管理ツールで使われるデフォルトまたは公表済みの名前付きパイプの使用を検出します。Servicesこの分析では、既知のIPのWebサービスに接続しようとするプロセスを検出します。Rulesこの分析では、PowerShellコマンドレットを使ってXML形式のAppLockerルールをインポートするプロセスを検出します。AppLockerこの分析では、AppLockerアプリケーションによる、複数のセキュリティ製品の実行拒否に関連するWindowsレジストリの詳細またはレジストリデータ値の変更を検出します。Policyこの分析では、PowerShellコマンドレットを使ってXML形式のAppLockerルールをインポートするプロセスを検出します。System)リモート管理ツールに関連するWindowsレジストリの変更または作成を検出します。Passwordこの分析では、ユーザーアカウントのパスワード要件ポリシーを変更してパスワードを無期限にするプロセスを検出します。Notificationsこの分析では、通知バナー(トースト)を無効にするためのWindowsレジストリの変更を検出します。Notifこの分析では、Windows通知センターでの通知を無効にするためのWindowsレジストリの変更を検出します。Defenderの通知を抑制するためのWindowsレジストリの変更を検出します。(リモートデスクトッププロトコル)を有効にするためのWindowsファイアウォールの変更を検出します。Assistanceこの分析では、ターゲットマシンでリモートデスクトップアシスタンスを有効にするためのWindowsレジストリの変更を検出します。(リモートデスクトッププロトコル)を有効にするためのWindowsレジストリの変更を検出します。Deletionこの分析では、サービスを削除しようとするWindowsサービスコントロール「sc.exe」を検出します。Defenderのraw書き込み通知機能を無効にするためのWindowsレジストリの変更を検出します。Settingsこの分析では、Windowsエラーレポートの設定を無効にするためのWindowsレジストリの変更を検出します。Appこの分析では、マルウェアの手動削除やセキュリティ製品によるマルウェア検出に関連する特定のコンピュータープログラムをユーザーが実行できないようにするためのWindowsレジストリの変更を検出します。Importこの分析では、regedit.exeアプリケーションとサイレントモードパラメーターを使ってWindowsレジストリが変更された可能性を検出します。Executionこの分析では、リモートデスクトップホストのサポートと機能制限下でのRDPの複数同時セッションを有効にするRDPラッパーライブラリツール「RDPWInst.exe」のプロセスを検出します。ServiceT1562.001防御回避このサーチでは、エンドポイントでセキュリティ関連のサービスを停止しようとする挙動を検出します。ExecutionT1059実行このサーチでは、chcp.exeアプリケーションの実行を検出します。/cを使ってプログラムを実行するコマンドライン引数を検出します。exeT1136.001永続化このサーチでは、net.exeを使用したローカル管理者アカウントの作成を検出します。InterpretersT1059.003実行このサーチでは、cmd.exeを親とするcscript.exeまたはwscript.exeプロセスの実行を検出します。ServicesT1489影響この分析では、複数のサービスを無効にする一連の不審なコマンドラインを検出します。AppT1222防御回避この分析では、ファイルまたはフォルダーの権限を変更するための、cacls.exe、xcacls.exe、icacls.exeアプリケーションの過度な使用を検出します。AppT1531影響この分析では、net.exeまたはnet1.exeの過度な使用を検出します。UtilityT1569.002実行このサーチでは、ホストマシンでのsc.exeの不審な過度の使用を検出します。TaskkillT1562.001防御回避この分析では、taskkill.exeアプリケーションの過度な使用を検出します。PathT1036防御回避このサーチでは、Windows内の不審なファイルパスのリストの中から不審な実行可能ファイルやスクリプト(既知のファイル拡張子)を検出します。EnableT1562.004防御回避この分析では、特定のアプリケーションの実行を許可するようにファイアウォールルールが不正に変更された可能性を検出します。ScreenT1562.001防御回避この分析では、Windowsログイン画面でユーザーアカウントを非表示にする不審なレジストリ変更を検出します。exeT1222.001防御回避このサーチでは、既存のWindowsバイナリ「attrib.exe」を使って特定のフラグを設定することで特定のファイルを非表示にし、ユーザーに見えないようにする攻撃を検出します。CommandT1222防御回避この分析では、特定のファイルまたはディレクトリのセキュリティ権限を変更する攻撃を受けた可能性を検出します。localgroupを使用したローカルグループ検索の使用を検出します。NetT1049検出この分析では、ターゲットシステムでネットワーク接続のリストを取得するためのコマンドライン引数が指定されたnet.exeの実行を検出します。netshT1562.004防御回避このサーチでは、netsh.exeを起動するプロセスを検出します。ServicesT1543.003権限昇格このサーチでは、Windowsサービスの作成または変更を示すsc.exeの引数を検出します。この分析では、コマンドラインでcreateまたはdeleteのフラグを指定したschtasks.exeの実行によるスケジュールタスクの作成または削除を検出します。この検出では、users\public、\programdata\、\windows\tempを含むパブリックディレクトリから実行される、バイナリまたはスクリプトを登録するスケジュールタスク(新しいタスクの作成)を検出します。Adminに許可するレジストリ変更を検出します。Defenderの機能を無効にする不審なレジストリ変更を検出します。このサーチでは、Windowsユーザーアカウント制御(UAC)の適用を制御するレジストリキーの変更を検出します。RegistryT1562.001防御回避このサーチでは、レジストリキー「DisableAntiSpyware」の無効化を検出します。このサーチは、多数のエンドポイントのRyuk感染に対応します。FilesT1564.001T1562.001防御回避この分析では、隠しファイル属性が設定されたすべてのファイルをユーザーが表示できないようにするためのWindowsレジストリの変更を検出します。DirT1555.003認証情報アクセスこのサーチでは、FireFox以外のプロセスがそのプロファイルフォルダー内のファイルにアクセスする異常なイベントを検出します。このサーチでは、システム起動時にアプリケーションやサービスを開始するために使用されるレジストリキーの変更を検出します。Defenderの除外機能に関連するレジストリを変更する不審なプロセスを検出します。Defenderの機能を無効にする不審なレジストリ変更を検出します。Defenderでユーザーまたは管理者がアラートの表示/非表示を設定できる拡張通知機能を無効にして検出を回避する技法を検出します。Defenderのテレメトリに使用されるSpyNetレポートを無効にして検出を回避する技法を検出します。(新規)T1112防御回避この分析では、通知バナー(トースト)を無効にするためのWindowsレジストリの変更を検出します。(新規)T1112防御回避この分析では、Windows通知センターでの通知を無効にするためのWindowsレジストリの変更を検出します。Defenderの通知を抑制するためのWindowsレジストリの変更を検出します。(リモートデスクトッププロトコル)を有効にするためのWindowsファイアウォールの変更を検出します。(新規)T1021.001ラテラルムーブメントこの分析では、ターゲットマシンでリモートデスクトップアシスタンスを有効にするためのWindowsレジストリの変更を検出します。(新規)T1489影響この分析では、サービスを削除しようとするWindowsサービスコントロール「sc.exe」を検出します。(リモートデスクトッププロトコル)を有効にするためのWindowsレジストリの変更を検出します。(新規)T1071コマンドアンドコントロールこの分析では、RMSリモート管理ツールで使われるデフォルトまたは公表済みの名前付きパイプの使用を検出します。(改訂)T1021.001ラテラルムーブメントこの分析では、パブリックプロファイルで特定のポートでの受信トラフィックを許可するようにファイアウォールルールレジストリが不正に変更された可能性を検出します。(新規)T1590.005偵察この分析では、既知のIPのWebサービスに接続しようとするプロセスを検出します。(新規)T1562.001防御回避この分析では、PowerShellコマンドレットを使ってXML形式のAppLockerルールをインポートするプロセスを検出します。(新規)T1562.001防御回避この分析では、AppLockerアプリケーションによる、複数のセキュリティ製品の実行拒否に関連するWindowsレジストリの詳細またはレジストリデータ値の変更を検出します。(新規)T1562.001防御回避この分析では、PowerShellコマンドレットを使ってXML形式のAppLockerルールをインポートするプロセスを検出します。System)リモート管理ツールに関連するWindowsレジストリの変更または作成を検出します。(新規)T1489影響この分析では、ユーザーアカウントのパスワード要件ポリシーを変更してパスワードを無期限にするプロセスを検出します。Defenderのraw書き込み通知機能を無効にするためのWindowsレジストリの変更を検出します。(新規)T1112防御回避この分析では、Windowsエラーレポートの設定を無効にするためのWindowsレジストリの変更を検出します。(新規)T1112防御回避この分析では、マルウェアの手動削除やセキュリティ製品によるマルウェア検出に関連する特定のコンピュータープログラムをユーザーが実行できないようにするためのWindowsレジストリの変更を検出します。(新規)T1112防御回避この分析では、regedit.exeアプリケーションとサイレントモードパラメーターを使ってWindowsレジストリが変更された可能性を検出します。(新規)T1021.001ラテラルムーブメントこの分析では、リモートデスクトップホストのサポートと機能制限下でのRDPの複数同時セッションを有効にするRDPラッパーライブラリツール「RDPWInst.exe」のプロセスを検出します。P.exeSHA256:8215e35c9ce15a7b7373871b27100577d3e609856eac71080ac13972a6a6748bファイル名:R8.exeSHA256:40d4931bbb3234a2e399e2e3e0dcfe4b7b05362c58d549569f2888d5b210ebbdファイル名:taskhost.exeSHA256:892e0afefca9c88d43bdd1beea0f09faadef618af0226e7cd1acdb47e871a0dbファイル名:temp.batSHA256:ccf47d036ccfe0c8d0fe2854d14ca21d99be5fa11d0fbb16edcc1d6c10de3512ファイル名:wini.exeSHA256:9276d1bb2cd48fdf46161deaf7ad4b0dbcef9655d462584e104bd3f2a8c944ceファイル名:winlog.exeSHA256:54eda5cc37afb3b725fa2078941b3b93b6aec7b8c61cd83b9b2580263ce54724ファイル名:cheat_exe\P\1.exeSHA256:7f11dabe46bf0af8973ce849194a587bd0ba1452e165faf028983f85b2b624c2ファイル名:cheat_exe\R8\db.rarSHA256:534e0430f7e8883b352e7cba4fa666d2f574170915caa8601352d5285eee5432ファイル名:cheat_exe\R8\pause.batSHA256:46565c0588b170ae02573fde80ba9c0a2bfe3c6501237404d9bd105a2af01cbaファイル名:cheat_exe\R8\Rar.exeSHA256:2356220cfa9159b463d762e2833f647a04fa58b4c627fcb4fb1773d199656ab8ファイル名:cheat_exe\R8\run.vbsSHA256:c7758bb2fdf207306a5b83c9916bfffcc5e85efe14c8f00d18e2b6639b9780feファイル名:cheat_exe\taskhost\opencl.dllSHA256:7cc0d32b00f4596bf0a193f9929e6c628bc1b9354678327f59db0bd516a0dd6bファイル名:cheat_exe\taskhost\taskhostw.exeSHA256:00cb457c1bf203fdb75da2cb0ba517d177ea5decc071f27f6a5ba3ee7d30da93ファイル名:cheat_exe\taskhost\taskhostw\winlogon.exeSHA256:870ff02d42814457290c354229b78232458f282eb2ac999b90c7fcea98d16375ファイル名:cheat_exe\winlog\winlogon.exeSHA256:dc6d63798444d1f614d4a1ff8784ad63b557f4d937d90a3ad9973c51367079deファイル名:wini_exe\install.batSHA256:e3db831cdb021d6221be26a36800844e9af13811bac9e4961ac21671dff9207aファイル名:wini_exe\install.vbsSHA256:cd8df8b0c43c36aabb0a960e4444b000a04eb513f0b34e12dbfd098944e40931ファイル名:wini_exe\reg1.regSHA256:7ae7e4c0155f559f3c31be25d9e129672a88b445af5847746fe0a9aab3e79544ファイル名:wini_exe\reg2.regSHA256:4ae04a85412ec3daa0fb33f21ed4eb3c4864c3668b95712be9ec36ef7658422aファイル名:wini_exe\rfusclient.exeSHA256:dc9d875e659421a51addd8e8a362c926369e84320ab0c5d8bbb1e4d12d372fc9ファイル名:wini_exe\rutserv.exeSHA256:1699b9b4fc1724f9b0918b57ca58c453829a3935efd89bd4e9fa66b5e9f2b8a6ファイル名:wini_exe\vp8decoder.dllSHA256:4c04d7968a9fe9d9258968d3a722263334bbf5f8af972f206a71f17fa293aa74ファイル名:wini_exe\vp8encoder.dllSHA256:81af82019d9f45a697a8ca1788f2c5c0205af9892efd94879dedf4bc06db4172ファイル名:wini_exe\winit.exeSHA256:e95fc3e7ed9ec61ba7214cc3fe5d869e2ee22abbeac3052501813bb2b6dde210ファイル名:wini_exe\winit\del.batSHA256:e376f2a9dda89354311b1064ea4559e720739d526ef7da0518ebfd413cd19fc1詳細情報セキュリティ分析ストーリーの最新コンテンツは、GitHubとSplunkbaseからダウンロードできます。Essentialsでは、プッシュアップデートによってすべての検出方法を利用できます。Docsのリリースノートに掲載されています。ご意見やご要望がございましたら、GitHubから遠慮なくお寄せください。Slackチャネル「#security-research」にご参加いただくこともできます。SlackのSplunkユーザーグループへの招待が必要な場合は、こちらの手順に従ってください。McGinnisの協力のもと執筆されました。聡によるレビューです。Inc.の商標または登録商標です。他のすべてのブランド名、製品名、または商標は、それぞれの所有者に帰属します。