Japan Security Analyst Conference 2019

セキュリティログ分析のフィールドはエンドポイントへ~Windows深層における攻防戦記~

NTTセキュリティ・ジャパン株式会社
林 匠悟
1© 2019 NTT Security

自己紹介• 林 匠悟‒ NTTセキュリティ・ジャパンのSOCアナリスト‒ SOC歴 10年‒ 監視、デバイス設定変更、分析、製品検証、ホワイトペーパーの執筆、カスシグ作成、運用設計、サービス企画などを担当‒ 外部活動として日本SOCアナリスト情報共有会（SOCYETI）の立ち上げメンバーの一人として脅威動向や分析手法などの情報共有を行う
2© 2019 NTT Security

目次• エンドポイント分析の紹介‒ 監視の必要性‒ 分析における利点と課題点‒ 分析のコツ‒ カスタムシグネチャ運用• EDRログから判明した攻撃事例の紹介• 検知回避に対する対抗事例の紹介• まとめ
3© 2019 NTT Security

エンドポイント分析の紹介

4© 2019 NTT Security

エンドポイントログとは• プロセス情報（プロセスツリー、コマンドラインなど）• ロードされたファイル• ファイル操作（作成、削除、変更など）• レジストリ操作（作成、削除、変更など）• ネットワークアクセス• DNSクエリ• URLなど※Sysmon [1], Process Monitor[2], EDR, 資産管理ツールなどを利用して監視・分析が可能。

5© 2019 NTT Securityなぜエンドポイントログの監視が必要か• 攻撃手法が高度化され、これまでのネットワーク監視だけでは脅威を見つけることが困難‒ マルウェアの通信先に改ざんされた正規サイトやファイル共有サイト、掲示板など正規のWebサービスが利用され、ネットワークログから正常通信か不正なものか判断が困難‒ ダウンロード時点では難読化、エンコード、暗号化などによって不正なファイルかどうか判断が困難• ネットワーク監視ポイント以外で外部と通信‒ リモートワーク等によってProxyやIPS/IDSといった監視ポイントを通過しないため、気が付けない

6© 2019 NTT Security

SOCにおける検知状況非公開

7© 2019 NTT Security

エンドポイントログ監視の利点と課題点
攻撃プロセス• 利点① メール受信

NW検知

ホスト検知○‒ 端末特定が容易②

メール記載のURLへアクセス○‒ ネットワーク上に特徴が現れない脅威を検知③ Zipファイルダウンロード○‒ より詳細に影響度の判断が可能④ Zipファイル展開○⑤ JavaScript実行○⑥ マルウェア生成○

端末内の情報収集⑦ (ログイン、メールアドレス情報など）○⑧

ログオン時の自動起動設定○⑨

収集した情報のアップロード

△

○

⑩

C&Cサーバとの通信後のダウンロードや操作

△

○

• 課題点
‒ ログ量が膨大‒ ネットワークとは異なるエンドポイント挙動の知識が必要

8© 2019 NTT Security

エンドポイントログ分析の基本• プロセス毎に挙動を確認する‒ 時系列だけで挙動を追うと混乱を招くため、プロセス単位でファイル、レジストリ、通信の挙動や親子プロセスの起動を追っていく• プロセス起動時のコマンドラインを確認する‒ 起動したファイル名やコマンド内容を把握できる• プロセスの親子関係をチェックする‒ 親子関係から感染源の特定や感染後の挙動を把握できる9© 2019 NTT Security

エンドポイントログ分析の基本における注意点• プロセスを追うときはPIDと起動時間を確認する‒ svchost.exeなど同じプロセス名で同時に複数起動している‒ PIDは使い回されているため、同じPIDでも起動時間で全く異なるプロセスを示す• 起動したファイル名の確認はMRU、.lnkファイル、Prefetchでも確認できる‒ Dynamic Data Exchange(DDE)によってコマンドラインに開いたファイル名が残らないなどがある• コードインジェクションの可能性を考慮する‒ コードインジェクションが利用されているとプロセスの親子関係を追うだけでは挙動全体を把握できない10© 2019 NTT Security

エンドポイントログ分析の基本における注意点２• コードインジェクションが疑われる場合‒ プロセスの親子関係が不自然に途切れている‒ 一連の親子関係のあるプロセスにおいて通信挙動が一つもない• コードインジェクションが疑われる場合の確認ポイント‒ svchostやexplorerなどよくインジェクション対象として狙われるプロセスから不審な通信が出ていないか確認‒ svchostやexplorerなどよくインジェクション対象として狙われるプロセスから不審な子プロセスが起動していないか確認11© 2019 NTT Security

基本的な不審ログの確認ポイント• 正規プロセスにそっくりなプロセス名の起動‒ scvhost.exe, dlhost.exe, explore.exeなどのプロセス起動• 不審なプロセスの親子関係‒ svchost.exeの親プロセスがservices.exe以外、lsass.exeから子プロセス起動など• ロードされるDLLファイルのファイルパスとコード署名‒ ¥AppData¥配下にある署名のないDLLファイルのロード• 自動起動設定された実行ファイルのパスとコード署名‒ ¥AppData¥にある署名のない実行ファイルの登録• 自動起動設定された長いコマンドライン‒ Runキーに難読化されたスクリプトの登録• アンチウィルスの隔離ログ‒ 隔離ログにあるファイル名やファイルハッシュ値など
12© 2019 NTT Security

カスタムシグネチャ（カスタムIOC）運用
エンドポイントログ

分析

精度の高い検知

特徴的な挙動抽出

カスタムIOC13© 2019 NTT Security

エンドポイントログを分析していく中で見つけた攻撃の特徴を検知できるようカスタムIOCとして定義することで、エンドポイントログを使った効率的な監視、分析を行うことができる。
⇒検知精度の向上、見逃しの防止

カスタムシグネチャ（カスタムIOC）の作成
一般的にOpenIOC [3]やCybOX [4] などのフォーマットで定義することができる。

14© 2019 NTT Security

IOC Editorを利用したサンプルIOC [5]ATT&CK(MITRE)の活用
作成したカスタムIOCをマッピングすることで検知した際の影響度をすぐに判断することができ、ブレない運用を実現できる。また、カスタムIOCによるカバー範囲の網羅性を向上することできる。

15© 2019 NTT Security

ATT&CK Matrix for Enterprise [6]とのマッピング(活用例イメージ)

EDRログ分析から判明した攻撃事例の紹介

16© 2019 NTT Security

SOCにおける検知状況

非公開

17

© 2019 NTT Security

SOCで観測した事例から特徴的な事例を4つ紹介します。
①2018年4月観測のTaidoor②2018年5月観測のANEL③2018年7月観測のANEL④2018年10月観測のUnknownマルウェア

18© 2019 NTT Security

事例①
2018年4月に観測したTaidoorを利用した事例の概要① doc添付メール② マクロ実行により難読化されたPowerSehllが実行

検知ポイントWINWORD.exe
cmd.exe③マルウェア設置サイト兼C&Cサーバへアクセス

PowerShell.exe
マルウェア設置サイト
兼C&Cサーバ

cmd.exe

攻撃者

ipconfig.exe
netstat.exe
tasklist.exe
etc④ C&Cサーバから環境調査コマンドを受信

19© 2019 NTT Security

⑤ Taidoorが含まれた難読化されたスクリプトファイルをダウンロード

PowerShell.exe
PowerShell.exe

マルウェア設置サイト兼C&Cサーバ

C:¥ProgramData¥start.vbs
cmd.exe⑥ persistence登録

reg.exe
cmd.exe¥CurrentVersion¥Run¥chrome(C:¥ProgramData¥start.vbs)⑦ ダウンロードしたスクリプトを実行

wscript.exe
PowerShell.exe⑧ PowerShell上でTaidoorが実行され、DLLファイルをダウンロード

C:¥ProgramData¥32.txt
cmd.exe20© 2019 NTT Security⑨ ダウンロードしたDLLファイルをリネーム

ren.exe

C:¥ProgramData¥igfxper.dll

PowerShell.exe
cmd.exe⑩ ダウンロードしたDLLを実行

rundll32.exe

cmd.exe© 2019 NTT Security¥CurrentVersion¥Run¥igfxper(rundll32.exe C:¥ProgramData¥igfxper.dll Install)⑫ C&Cサーバから環境調査コマンドを受信

type.exe
netstat.exe
tasklist.exe
etc21

Rundll32.exe C:¥ProgramData¥igfxper.dll⑪ persistence登録

reg.exe
cmd.exe

マルウェア設置サイト兼C&Cサーバ

事例①における主な特徴
2018年4月に観測したTaidoorを利用した事例の特徴• メールのFromはyahoo.co.jp• メール本文や添付ファイルは全て日本語• docファイルが添付されたメールがターゲット複数名に送信• マルウェア設置サイトとC&Cサーバが同じ• PowerShellのプロセス上でTaidoorを実行• 複数のマルウェアをpersistence登録• persistenceはRunキー• 通信先はGoogleクラウドが利用され、直IPアドレスの443通信

22© 2019 NTT Security

事例①における主な検知回避テクニック• マルウェアの実行にPowerShell、Rundll32を利用‒ 起動しているプロセス名は正規のものであるため、悪性には見えない¥CurrentVersion¥Run¥igfxper(rundll32.exe C:¥ProgramData¥igfxper.dll Install)
Rundll32を利用したマルェアの起動• 通信先にGoogleクラウド上のIPアドレスを利用‒ レピュテーションサイトによるIPアドレスの評価は安全であり、IPアドレスに関する情報がほとんどないため、通信先のみでの悪性判定は難しい
23© 2019 NTT Security

事例②
2018年5月に観測したAPT10によるCobalt Strikeを利用した事例の概要① rar添付メール② マクロ実行によりマルウェア設置サイトへアクセスし、複数ファイルをダウンロード

EXCEL.exe
マルウェア設置サイト

C:¥Users¥a¥AppData¥Local¥Temp¥
gdi32.dll（ロードされる正規DLL）
CrashReport.dll（サイドロードされるマルウェア Cobalt Strike）
memdefrag.exe（MemDefrag正規ファイル）
C:¥Users¥Public¥
web_lowtrust.config.uninstall(不正な実行ファイル)
System.Numerics.dll.manifest(不明)
攻撃者24© 2019 NTT Security③ persistence登録¥CurrentVersion¥Run¥conhostdwm(C:¥Users¥a¥AppData¥Local¥Temp¥memdefrag.exe)

検知ポイント

EXCEL.exe④ InstallUtilコマンドでマルウェアを起動し、C&Cサーバへアクセス

cmd.exe
InstallUtil.exe

C&CサーバC:¥Windows¥Microsoft.NET¥Framework¥v4.0.30319¥InstallUtil.exe /run=/logfile= /LogToConsole=false /u C:¥Users¥Public¥web_lowtrust.config.uninstall

cmd.exe⑤ C&Cサーバから環境調査コマンドを受信

bitsadmin.exe
AdFind.exe
net.exe
findstr.exe
csvde.exe
etc25© 2019 NTT Security

事例②における主な特徴
2018年5月に観測したAPT10によるCobalt Strikeを利用した事例の特徴• メールのFromはyahoo.co.jp• メール本文や添付ファイルは全て日本語• rarファイルが添付されたメールがターゲット1名にのみ送信• マクロ実行によりマルウェア設置サイトから複数のファイルをダウンロード• DLLサイドロードを利用• persistenceはRunキー• アクセス先はクラウドサービス「OVH」が利用され、HTTPS通信

26© 2019 NTT Security

事例②における主な検知回避テクニック• マルウェアの実行に「InstallUtil」というマイクロソフト社の.NET Frameworkアプリケーション用のインストーラーツールを利用‒ 起動しているプロセス名は正規のものであるため、悪性には見えない‒ コマンドラインから不審なものには見えない> C:¥Windows¥Microsoft.NET¥Framework¥v4.0.30319¥InstallUtil.exe /run=/logfile= /LogToConsole=false /u C:¥Users¥Public¥web_lowtrust.config.uninstall
InstallUtilを利用したマルェアの起動• persistenceに「MemDefrag」という正規ツールを利用したDLLサイドロード‒ 起動しているプロセス名は正規のものであるため、悪性には見えない• C&Cサーバへの通信にSSLを利用しているため、通信先のみでの悪性判定は難しい

27© 2019 NTT Security

事例③
2018年7月に観測したAPT10によるANELを利用した事例の概要① Pass付きdoc添付メール② マクロ実行により３つのファイルをドロップ

WINWORD.exeC:¥Users¥a¥AppData¥Local¥Temp¥
Pense1.txtPense2.txt
Pense3.txt③ ドロップしたファイルをProgramDataに全てコピーcmd.exe

C:¥ProgramData¥
Pense1.txt
Pense2.txt
Pense3.txt

検知ポイント④ 正規プログラムcertutil.exeを別名にコピー

攻撃者
28© 2019 NTT Security

cmd.exe

certutil.exe⇒Temptcm.tmp

検知ポイント

WINWORD.exe⑤ コピーしたcertutilコマンドを利用してドロップしたファイルをそれぞれデコード

cmd.exe
Temptcm.tmp

Pense1.txt⇒GUP.txt(WinGUP正規ファイル)
Pense2.txt⇒libcurl.txt(サイドロードされる不正DLL)
Pense3.txt⇒c7583baa(暗号化されたマルウェアANEL)⑥ esentutilコマンドを利用してドロップしたファイルを別名にコピー

cmd.exe

Temptcm.tmp

GUP.txt ⇒GUP.exe(WinGUP正規ファイル)
libcurl.txt ⇒libcurl.dll(ロードされるDLL)⑦ libcurl.dllとc7583baaをロードして実行

GUP.exe⑧ persistence登録¥CurrentVersion¥Run¥GUP (C:¥ProgramData¥GUP.exe)⑨ C&Cサーバへアクセス

C&Cサーバcmd.exe29© 2019 NTT Security⑩ C:¥ProgramData¥のテキストファイルの削除

del.exedel /f /s /q C:¥ProgramData¥*.txt

事例③における主な特徴
2018年7月に観測したAPT10によるANELを利用した事例の特徴• メールのFromはyahoo.co.jp• メール本文や添付ファイルは全て日本語（一部漢字の間違いあり）• 本文にパスワードが記載され、docファイルが添付されたメールがターゲット1名にのみ送信• マクロの実行により正規の実行ファイル、サイドロードされるDLL,暗号化されたANELがドロップ• 複数のWindows標準コマンド利用• DLLサイドロードの利用• persistenceはRunキー• アクセス先はクラウドサービス「DigitalOcean」が利用され、直IPアドレスのHTTP通信
30© 2019 NTT Security

事例③における主な検知回避テクニック１• エンコードされたマルウェアをドロップ• マルウェアのデコードに証明書サービスのインストールなどに利用するWindows標準
コマンド「certutil」を利用• 「certutil」の実行ファイルを別名にコピーして、コピーしたプロセスの起動‒ 別名でデコードを実行することで、certutilプロセス実行の検知を回避> C:¥Windows¥System32¥cmd.exe /c copy C:¥Windows¥system32¥certutil.exe C:¥Users¥a¥AppData¥Local¥Temptcm.tmp> C:¥Windows¥System32¥cmd.exe /c C:¥Users¥a¥AppData¥Local¥Temptcm.tmp–decode C:¥ProgramData¥pense1.txt C:¥ProgramData¥GUP.txt
コピーしたcertutilを利用したファイルのデコード
31© 2019 NTT Security

事例③における主な検知回避テクニック２• 実行ファイルのリネームに証明機関のデータベース管理などに利用するWindows標準
コマンド「esentutl」を利用> C:¥Windows¥System32¥esentutl.exe /y C:¥ProgramData¥GUP.txt C:¥ProgramData¥
GUP.exe /oesentutlを利用したマルウェアのコピー• persistenceに「WinGUP」という正規ツールを利用したDLLサイドロード‒ 起動しているプロセス名は正規のものであるため、悪性には見えない• デコードやコピーで利用したファイルを削除> C:¥Windows¥System32¥cmd.exe /c del /f /s /q C:¥ProgramData¥*.txt32© 2019 NTT Security

delを利用したファイルの削除

事例④
2018年10月に観測した事例の概要① 本文中Linkメール② マルウェア設置サイトからzipファイルをダウンロード

iexplore.exe
Photo181015.zip-IMG4969.jpg.lnk-IMG4965.jpg.lnk
explorer.exe

マルウェア設置サイト

検知ポイント③ zipファイルを展開した後、 IMG4969.jpg.lnkファイルを実行

PowerShell.exe
マルウェア設置サイト2

攻撃者
33© 2019 NTT Security

C:¥Users¥a¥AppData¥Local¥Temp¥
woi34sr.jpg④ マルウェア設置サイト2から実行ファイルをダウンロード

PowerShell.exe
cmd.exe⑤ 実行したlnkファイルを削除

del.exe

woi34sr.jpg

del /q /f IMG4969.jpg.lnk⑥ ダウンロードされた実行ファイルにより3つのファイルをドロップ

C:¥Users¥a¥AppData¥Local¥Temp¥IXP000.TMP¥
cfle.bat（バッチファイル）IMGJPS_Fi.exe （実行ファイル）IMGJPS_Fi.exe.config（設定ファイル）⑦ バッチファイルを実行して、1つ上のディレクトリにダウンロードしたファイルをコピー

cmd.exe

cmd.exe /c cfle.bat

xcopy /f /y *.* ..¥*.*⑧ ドロップされた実行ファイルを実行

IMGJPS_Fi.exe⑨ ドロップファイルを削除

34© 2019 NTT Security

C:¥Users¥a¥AppData¥Local¥Temp¥IXP000.TMP¥
cfle.bat（バッチファイル）IMGJPS_Fi.exe （マルウェア）
IMGJPS_Fi.exe.config（設定ファイル）⑨ persistence登録

タスク名：WinsUpdte-ub48572
実行ファイルパス：C:¥Users¥a¥AppData¥Local¥Temp¥IMGJPS_Fi.exe

IMGJPS_Fi.exe

svchost.exe⑩ 再起動後にタスクスケジューラによってマルウェアが起動し、C&Cサーバへアクセス

taskeng.exe
IMGJPS_Fi.exe
C&Cサーバ35© 2019 NTT Security

事例④における主な特徴
2018年10月に観測した事例の特徴• メールのFromはyahoo.co.jp• メール本文や添付ファイルは全て日本語• 本文にリンクが含まれたメールがターゲット1名にのみ送信• .NETマルウェアを利用• persistenceはタスクスケジューラ• タスクスケジューラによってマルウェアが起動されることでC＆Cサーバへ通信• アクセス先はクラウドサービス「shinjiru」が利用され、10分間隔でHTTP通信• アクセス先のドメインは評価なし

36© 2019 NTT Security

事例④における主な検知回避テクニック• マルウェアはタスクスケジューラによって起動されることでC&Cサーバへアクセス‒ タスクスケジューラ以外での手法で起動すると外部への通信が発生しないため、悪性判定が難しい• ダウンローダーとして利用したファイル等を削除> C:¥Windows¥System32¥cmd.exe /c del /q /f IMG4969.jpg.lnk
ダウンローダーファイルの削除• C&Cサーバで利用したドメインは数カ月前に作成した新しいものを利用‒ ドメインの評価結果がないため、通信先のみでの悪性判定が難しい

37© 2019 NTT Security

検知回避に対する対抗事例の紹介～APT10によるANEL編～

38© 2019 NTT Security

非公開

39

© 2019 NTT Security

まとめ• 高度化する攻撃に対して従来のネットワークログを利用した監視・分析だけではなく、エンドポイントログを活用した監視・分析が必須• エンドポイントログを活用することで検知力のアップと容易に影響範囲が特定• 攻撃者はすでにエンドポイントログを意識して攻撃手法を変えてきているため、カスタムシグネチャで対抗

40© 2019 NTT Security

参考文献[1] https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon[2] https://technet.microsoft.com/ja-jp/sysinternals/processmonitor.aspx[3] https://www.fireeye.com/blog/threat-research/2013/10/openioc-basics.html[4] http://cyboxproject.github.io/[5] https://www.fireeye.jp/services/freeware/ioc-editor.html[6] https://attack.mitre.org/

41© 2019 NTT Security