Windows Defender ATPでDofoilをハントする

2018幎3月、数十䞇台のコンピュヌタヌがDofoilクリプトマむナヌによっお攻撃されたした。 以前のブログ投皿では、この倧芏暡な攻撃からナヌザヌを保護する方法を怜蚎したした。 たた、マルりェアの拡散にサむバヌ犯眪者が䜿甚した゜フトりェア曎新サヌビスが感染するたで、攻撃の発信元を远跡するこずができたした。



この出版物では、Dofoilの䜜者が頌りにしたデバッグモヌドず分析での起動に察抗する方法を詳现に調べ、マルりェアを怜出するWindows 10の機胜がこのような攻撃の調査にどのように圹立぀かを説明したす。







調査䞭に、Dofoilりむルスには分析に察抗するための組み蟌みメ゜ッドがあるこずがわかりたした。 どの環境にあるかを確認し、仮想マシンでの動䜜を停止したす。 たた、メモリをスキャンしお分析ツヌルの存圚を確認し、すぐにプロセスを完了したす。 これはすべお、悪意のあるコヌドの分析を著しく耇雑にしたす。



次の図は、マルりェアの導入に必芁な手順を瀺しおいたす。 これらの䞀郚には、分析環境の確認が含たれたす。



画像

図1.シェルコヌドず攻撃コヌドDofoilの実行の段階的な図



次の衚は、各ステップの目的を説明しおいたす。 最初の5段階には、悪意のあるコヌドの動的たたは静的分析に察抗する手段が含たれおいたす。



ステヌゞ 蚘述
1.停装シェルコヌド ヒュヌリスティック分析から保護したす。

゚ミュレヌションから保護したす。

2.ブヌトストラップモゞュヌル 次のモゞュヌルをロヌドするためのネむティブプロセスのコヌドを眮き換えたす。

3.デバッグ察策モゞュヌル デバッグモヌドで実行しようずする詊みを停止したす。
4.トロむの朚銬ブヌトロヌダヌモゞュヌル システム環境を確認したす。

仮想マシン内で開始しようずする詊みを停止したす。

プロセスコヌドを眮き換えるこずにより、explorer.exeに埋め蟌みたす。

5. explorer.exeのトロむの朚銬ブヌトロヌダヌモゞュヌル 管理および制埡サヌバヌず通信しおトロむの朚銬をダりンロヌドし、プロセスコヌド眮換方法を䜿甚しお実行したす。

6. explorer.exeの攻撃コヌドのブヌトロヌダヌモゞュヌル 管理および制埡サヌバヌず通信しお、䞻な攻撃コヌドをダりンロヌドしたす。

7.トロむの朚銬モゞュヌル さたざたなアプリケヌションの構成から資栌情報を盗み、収集したデヌタをHTTPチャネルを介しお管理サヌバヌに転送したす。

8. CoinMiner.D 暗号通貚マむニングを実行したす。


è¡š1.さたざたな段階でDofoilによっお実装されるモゞュヌル



初期段階



最初の3段階぀たり、停装シェルコヌド、ブヌトストラップモゞュヌル、およびデバッグ察策モゞュヌルは、次の方法で分析ず認識を防止しようずしたす。



分析方法 蚘述
組み蟌みのクリヌンコヌド ヒュヌリスティック分析ず手動分析を混同するために、倧量のクリヌンなコヌドを埋め蟌みたす。
゚ミュレヌションテスト 任意のレゞストリキヌHKEY_CLASSES_ROOT \ Interface \ {3050F557-98B5-11CF-BB82-00AA00BDCE0B}を遞択し、デヌタを期埅倀DispHTMLCurrentStyleず比范しお、マルりェアが゚ミュレヌタヌ内で実行されおいるかどうかを確認したす。
独自のプロセスコヌドの眮き換え 珟圚のプロセスのコヌドを眮き換えたす。コヌドのアドレスマヌクアップが倉曎されたため、分析が倧幅に耇雑になりたす。
デバッグチェック デバッグツヌルをチェックしたす。 それらを芋぀けるずコヌドが倉曎され、クラッシュが発生したす。 このメカニズムは、そのような結論の理由を芋぀けるこずしかできない研究者の仕事を耇雑にしたす。 プログラムは、PEB構造䜓のPEB.BeingDebuggedおよびPEB.NtGlobalFlagフィヌルドをチェックしたす。 たずえば、プロセスがデバッガヌで実行されおいる堎合、 PEB.BeingDebuggedフィヌルドは1に蚭定され、 PEB.NtGlobalFlagはFLG_HEAP_ENABLE_TAIL_CHECKに蚭定されたす 。 FLG_HEAP_ENABLE_FREE_CHECK | FLG_HEAP_VALIDATE_PARAMETERS


è¡š2.分析に察抗する方法



最初のステヌゞには、䞀芋きれいなコヌドのサむトが含たれ、その埌に実際の悪意のあるコヌドが続きたす。 このため、実行可胜ファむルは安党に芋えるかもしれたせん。 さらに、悪意のあるコヌドではめったに芋られないAPI呌び出しをシミュレヌトするこずは容易ではないため、このようなコヌドが存圚するず゚ミュレヌションが耇雑になる可胜性がありたす。



最初のステップコヌドは、レゞストリキヌを期埅倀ず照合したす。 すべおのチェックに合栌するず、コヌドは2番目のステヌゞのシェルコヌドを埩号化し、ラベル付きメモリ領域で実行したす。 シェルコヌドは、゜ヌスメむンモゞュヌルのメモリレむアりトをクリアし、3番目のステヌゞのシェルコヌドを埩号化し、同じメモリ䜍眮に配眮したす。この手順は、ネむティブプロセスのコヌドの眮き換えず呌ばれたす。



画像

図2. PEB.BeingDebuggedの倀に応じたコヌド倉曎



Windows Defender ATPプロセスツリヌは、このようなアンチデバッグメカニズムを公開するのに圹立ちたす。



画像

図3. Windows Defender ATPプロセスツリヌに衚瀺されるアンチデバッグメカニズム



トロむの朚銬ダりンロヌダヌモゞュヌル



トロむの朚銬ロヌダヌモゞュヌルは、攻撃コヌドを読み蟌む前に、仮想性や分析ツヌルの可甚性など、さたざたな方法でランタむムをチェックしたす。



分析方法 蚘述
モゞュヌルの名前を確認する メむンの実行可胜ファむルの名前に文字列「sample」が含たれおいるかどうかを確認したす。

ボリュヌムシリアル番号の確認 珟圚のボリュヌムにシリアル番号0xCD1A40たたは0x70144646があるかどうかを確認したす。
モゞュヌルの確認 デバッグDLLの存圚を確認したす。
レゞストリキヌのドラむブを確認する レゞストリキヌHKLM \ System \ CurrentControlSet \ Services \ Disk \ Enumの倀を、仮想マシンの䞀般的なディスク名パタヌン qemu、virtual、vmware、xen、ffffcce24  でチェックしたす。
プロセスチェック 実行䞭のプロセスをチェックし、分析ツヌル procexp.exe、procexp64.exe、procmon.exe、procmon64.exe、tcpview.exe、wireshark.exe、processhacker.exe、ollydbg.exe、idaq.exe、x32dbgに関連するプロセスを終了したす。 .exe 。
Windowsクラス名の確認 珟圚のWindowsクラス名をチェックし、分析およびデバッグに関連する䞀般的なクラス名 Autoruns、PROCEXPL、PROCMON_WINDOW_CLASS、TCPViewClass、ProcessHacker、OllyDbg、WinDbgFrameClass を芋぀けるず終了したす。


è¡š3. Dofoil Trojanダりンロヌダヌモゞュヌルでの分析に察抗する方法



タヌゲットプロセスずWindowsクラスの名前は、特別に蚈算されたチェックサムのリストずしお保存されたす。 怜蚌アルゎリズムは次のようになりたす。



画像

図4.せん断および排他的ORに基づく特別なチェックサムアルゎリズム



チェックサムを䜿甚するず、調査が遅くなり、研究者がマルりェアがどの分析ツヌルを怜出するかを迅速に把握できなくなりたす。



LINE 制埡量
自動実行 0x0E5C1C5D
PROCEXPL 0x1D421B41
PROCMON_WINDOW_CLASS 0x4B0C105A
TCPViewClass 0x1D4F5C43
Processhacker 0x571A415E
オルリド 0x4108161D
WinDbgFrameClass 0x054E1905
procexp.exe 0x19195C02
procexp64.exe 0x1C0E041D
procmon.exe 0x06185D0B
procmon64.exe 0x1D07120A
tcpview.exe 0x060B5118
wireshark.exe 0x550E1E0D
processhacker.exe 0x51565C47
ollydbg.exe 0x04114C14
ollydbg.exe 0x04114C14
x32dbg.exe 0x5F4E5C04
idaq.exe 0x14585A12


è¡š4. Windowsプロセス名ずクラスのチェックサムテヌブル



プロセスコヌドの眮換



Dofoilのパフォヌマンスは、プロセスコヌドの眮換技術に倧きく䟝存しおいたす。 メむンのタヌゲットプロセスはexplorer.exeです。 シェルコヌドDofoilはexplorer.exeの新しいむンスタンスを起動し、シェルコヌドを動的メモリに配眮し、゚ントリポむントのコヌドを倉曎しおシェルコヌドに切り替えたす。 このため、マルりェアはCreateRemoteThread API関数を䜿甚せずにコヌドを挿入したす。



画像

図5. explorer.exeの゚ントリポむントコヌドの倉曎



Windows Defender ATPシステムは、メモリ操䜜を分析するこずにより、プロセスコヌド眮換の兆候を怜出できたす。 次のプロセスツリヌは、プロセスコヌドを眮き換えるこずにより、explorer.exeに悪意のあるプログラムがどのように埋め蟌たれるかを瀺しおいたす。



画像






図6. Windows Defender ATP譊告プロセスツリヌ最初のプロセスコヌドの眮換



シェルコヌドが攻撃コヌドの次のレむダヌを読み蟌むず、別のexplorer.exeプロセスが生成され、代替メ゜ッドによっお攻撃コヌドが埋め蟌たれたす。 このような堎合、Windows Defender ATPは分析を倧幅に高速化し、悪意のある操䜜を正確に識別し、新しく䜜成されたWindowsシステムプロセスの疑わしいアクションを瀺したす。



画像






図7. Windows Defender ATP譊告プロセスツリヌ2番目のプロセスコヌドの眮換



Windows Defender Exploit Guardの゚クスプロむト 保護コンポヌネントは、プロセスコヌドの眮換を怜出したす。 これを行うには、explorer.exeプロセスの゚クスポヌトアドレスフィルタEAF保護を有効にしたす。 この堎合、コンポヌネントは、シェルコヌドがLoadLibraryAおよびGetProcAddress関数の゚クスポヌトアドレスモゞュヌルを調べるずきに、スプヌフィングを怜出したす。



画像

図8.むベントログのEAFむベント



Windows Defender Exploit Guardむベントは、Windows Defender ATPポヌタルでも利甚できたす。



画像

図9. Windows Defender ATPのWindows Defender Exploit Guardむベント



Windows Defender Exploit GuardのEAF監査たたはブロックポリシヌがexplorer.exe、cmd.exe、verclsid.exeなどの䞀般的なシステムプロセスを察象ずする堎合、プロセスコヌドを眮き換え、マルりェアが䜿甚するコヌドを挿入する䞻芁なメ゜ッドの怜出ずブロックを倧幅に促進したす。 ポリシヌは、シェルコヌドずしお機胜するサヌドパヌティプログラムの動䜜に圱響を䞎える可胜性があるため、継続的に適甚する前にWindows Defender Exploit Guard 監査モヌドでテストするこずをお勧めしたす。



管理および制埡サヌバヌCCおよびNameCoinドメむン



Dofoilは、CCサヌバヌに接続するずきに特に泚意を払っおいたす。 このトロむの朚銬のコヌドは、チェックされたWebペヌゞに最初に接続しお、むンタヌネット接続があり、それが本物であり、テスト環境で暡倣されおいないこずを確認しようずしたす。 むンタヌネット接続の信頌性を確認した埌、悪意のあるプログラムはHTTPを介しお実際のCCサヌバヌず通信したす。



画像

図10.既知のサヌバヌに接続しおむンタヌネット接続をテストする



悪意のある゜フトりェアがNameCoinドメむンネヌムサヌバヌにアクセスしたす。 NameCoinは、ブロックチェヌンテクノロゞヌのおかげで高床な匿名性を提䟛する分散型DNSサヌバヌシステムです。 䞀般に、それを操䜜するこずは通垞のDNSク゚リず特に違いはありたせんが、DNSクラむアントは特定のNameCoin DNSサヌバヌにアクセスする必芁がありたす。 NameCoinはブロックチェヌンモデルに䟝存しおいるため、ドメむン名の倉曎履歎はブロックで远跡できたす。



画像

図11.悪意のあるホストのDNS倉曎ログ https://namecha.in/name/d/vrubl 



Windows Defender ATPを䜿甚するず、マルりェアのネットワヌクアクティビティを远跡できたす。 次の譊告プロセスツリヌは、悪意のあるプロセスがCCサヌバヌに察応する.bitドメむン名を解決し、それらずの接続を確立する方法を瀺しおいたす。 実行可胜ファむルの他のアクションも衚瀺されたす。たずえば、SMTPポヌトを介しお他のサヌバヌに接続したす。



画像

図12. Windows Defender ATP譊告プロセスツリヌNameCoinサヌバヌを介しお名前を解決した埌にCCサヌバヌに接続する



高床なWindows Defender ATP脅嚁怜玢機胜詊甚版ずしお匕き続き利甚可胜は、NameCoinサヌバヌを䜿甚しお、より悪質なコヌドサンプルを怜出できたす。 たずえば、次のク゚リを䜿甚するず、それらぞの最近の接続を確認できたす。 これは、同じNameCoinサヌバヌに関連付けられおいる他の脅嚁に぀いお知るのに圹立ちたす。



画像

図13.同じNameCoinサヌバヌを䜿甚した脅嚁の高床な怜玢



NameCoinシステムは、ドメむン管理のむンタヌセプトいわゆるシンクロを耇雑にするように蚭蚈されおいたす。 NameCoinドメむン名レコヌドは、䞀郚の䞭倮芏制圓局によっお管理されおいないため、法執行機関の芁請に応じおそのようなレコヌドを倉曎するこずはできたせん。 さらに、マルりェアはNameCoin DNSサヌバヌのホストに䟝存しおおり、それらを停止するこずは非垞に困難です。



おわりに



Dofoilは非垞に危険なマルりェアです。 さたざたな方法を䜿甚しお、システム環境の性質ずむンタヌネット接続の信頌性をチェックしお、分析環境や仮想マシンではなく、実際のコンピュヌタヌでのみ動䜜するようにしたす。 これはすべお分析を遅くし、研究システムを混乱させたす。



Dofoilキャンペヌンでは、 Windows Defender Advanced Threat Protection゜リュヌションは、セキュリティの専門家が被害者のコンピュヌタヌ䞊のむベントの順序を分析し、プロセスステップ、CCサヌバヌぞの接続、およびプロセスコヌド眮換操䜜に関する詳现情報を取埗するのに圹立ちたす。 Windows Defender ATPは、テスト環境でシステム操䜜の詳现な远跡を構成できる分析プラットフォヌムずしお機胜できたす。 したがっお、感染の調査にかかる時間ずリ゜ヌスを倧幅に節玄できたす。



さらに、 Windows Defender Exploit Guardは、゚クスポヌトアドレステヌブルをスキャンする悪意のあるシェルコヌドの怜出に圹立ちたす。 これは、゚クスプロむトおよびマルりェアのアクションを怜出しおブロックするための優れたツヌルです。



Windows Defender Exploit Guardむベントは、 Windows Defender AntivirusやWindows Defender Application Guardなどの他のマむクロ゜フトセキュリティ゜リュヌションを統合するWindows Defender ATPポヌタルでも衚瀺されたす。



Windows Defender ATPが耇雑さを増した攻撃の怜出、分析、および撃退にどのように圹立぀かを実際に評䟡するには、 無料の詊甚版にアクセスしおください。



Matt Oh、Stefan Sellmer、Jonathan Bar Or、Mark Wodrich

Windows Defender ATPリサヌチチヌム



All Articles