Black Hat USA 2018 でのトレーニング提供

IIJ のインシデントレスポンスチームのメンバーは、世界最高峰の国際カンファレンスのひとつである Black Hat USA 2018 において日本人として初めてトレーニング講師に選ばれ、”Practical Incident Response With Digital Forensics & Malware Analysis” の内容で4日間のトレーニングを提供することになりました。本トレーニングコースの実施概要はこのリンク内にありますが、このブログでは本コースのハイライトとコーススライドの一部サンプルをご提供します。

包括的かつ実践的なデジタルフォレンジクス及びインシデントレスポンス (DFIR)

標的型攻撃におけるインシデントレスポンス(事案対応)では、マルウェアやその他の攻撃ツールの特定、それらの機能や役割の特定、その事件が発生した根本原因の特定、ネットワーク内で横展開が行われたか、行われていた場合はいつどのように行われたかを調査、情報漏えいの可能性の調査、攻撃者の全体的な行動の把握、ネットワークや守るべきデータへの影響調査、再発防止策の検討と策定など、数多くのことを実施していく必要があります。これらを包括的に学ぶために、本トレーニングでは100種類以上のアーティファクト(解析対象物)と100個以上の演習を用意しています。

4日間しかない中でこのような多数の演習を実施するため、本トレーニングではいわゆる「3分クッキング」方式を用いています。つまり、時間がかかる処理の中間生成物や結果を予め用意しておくことで、無駄な待ち時間を極力排除して演習を行うことが可能になります。

サンプルとして、基本的なファイルシステムのタイムラインを作成して解析する演習資料を下記に掲載します。

資料: training_material_sample_for_timeline_analysis.pdf

効果的なマルウェア解析

マルウェア解析は標的型攻撃におけるインシデント対応には必要不可欠な技術です。なぜなら、標的型攻撃ではマルウェアや他の攻撃ツールが背後で使われていることがほとんどだからです。それにもかかわらず、他の DFIR やマルウェア解析のトレーニングコースではこれらのトピックは別々に扱われていました。本トレーニングコースでは限られた時間の中で効果的に状況把握できるよう、以下の目的に絞ってマルウェア解析を実施します。

  • ネットワーク上に存在する別のホストから同様のマルウェアを発見するために、効果的にマルウェアの IoC を探し出す
  • マルウェアの備える各種機能が実行された際にホスト上に残る証跡を特定する

このために、本コースでは動的解析と静的解析の演習を行います。

動的解析は、短時間で効果的にマルウェアの機能や C2 サーバのホスト名、IP アドレス、User-Agent、Mutex など設定情報の一部を取得するために有用な手段の一つです。この解析はマルウェアの静的解析に移る前に実施するもので、静的解析をより効率的に行うために有益な情報を得ることができます。また、動的解析だけで対応に必要な情報が得られることもあります。もちろん、すでに Cuckoo Sandbox のようなオープンソースソフトウェアや多数の商用製品が存在していますが、静的解析との連携や、一部のマルウェアに搭載されている Sandbox 回避によってマルウェアが Sandbox 上で正常に動作しなかった場合などに有用であるため、本トレーニングでは自身の環境で自ら動的解析する手法を学びます。解析は Process Monitor, Process Explorer, Process Hacker, Noriben, Fakenet-ng, x64dbg, Scylla Hide などを使って実施していきます。また、マルウェアが Pack されている場合に備えて Unpack 手法も学びます。これには x64dbg, OllyDumpEx や Process Hacker などを使用します。

この記事で、いくつかの動的解析に関するトレーニング内容をサンプルとしてご提供します。一つめの資料には、マルウェアが Reflective PE Injection 手法を使う場合に、それをどのようにして回避し解析を続けていくかといった内容が含まれています。このスライドで扱っているマルウェアは標的型攻撃に関するものではありませんが、このような手法は標的型攻撃に使われるマルウェアでも数多く使われているため、理解しておくことが重要です。

資料: training_material_sample_for_dynamic_analysis.pdf

ただし、動的解析だけでは十分な情報が得られないことは多いです。例えば、ある RAT を静的解析することで、それが感染ホストへファイルをアップロードする機能を持っており、その際にアップロードするファイル名の後ろに必ず “.tmp” という拡張子をつけることがわかったとします。もしこれがわかっていれば、フォレンジック調査において NTFS journal を解析することで、攻撃者がアップロードしたファイル群を列挙することができます。しかし、このような結果を動的解析で得ることは難しいです。なぜなら、攻撃者がアップロード命令を C2 サーバから RAT に送信しなければ RAT はそのような振る舞いをしないからです。これが、我々がインシデントレスポンスにおいても静的解析を重要視する理由です。

静的解析は動的解析では得られなかったマルウェアの機能や関数を得ることを目的とします。例えば、C2 サーバからコマンドを受け取った際のコマンドをディスパッチする関数を特定したり、その下にある関数群を調べることでマルウェアの持つ機能を列挙します。また重要な文字列が難読化されていたら、それを可読化する関数を特定、実行して文字列を取得するなどのことを実施します。これらを迅速に調査するため、IDA Pro の IDC スクリプトや IDAPython スクリプトを提供します。また、これらのスクリプトの作り方や使用するAPIについても解説します。これによって、参加者はスクリプトを自由に改良、拡張することができるようになります。

次の資料が文字列の難読化を行っている関数を特定して可読化する演習の一部です。

資料: training_material_sample_for_static_analysis.pdf

シナリオ及びアーティファクト

本トレーニングコースでは、Windows のエンタープライズネットワークを模した環境を構築し、各ホストの HDD やメモリのイメージファイルとして配布します。これらはサポートされている最新の Windows OS 群を使って構成されています (Windows 7/8.1/10 and Server 2012 R2/2016)。

そして、実際のインシデントで使われていた攻撃手法を再現したシナリオをこの環境に対して適用しています。例えば、攻撃者は Exploit を使います。また、PowerShell や WMI を不正利用します。管理者権限を奪取し、Mimikatz を使って “Golden Ticket” を生成し、ネットワーク内のホストに横展開して侵入を繰り返します。最終的に、攻撃者はこのネットワークから機密情報を盗み出していきます。

さらに、このシナリオに含まれていない攻撃手法を学ぶため、参加者にはシナリオとは別に個別演習用のアーティファクトや HDD、メモリイメージを追加配布します。これにより、様々な攻撃手法について包括的に学ぶことができます。

Windows イベントログ

Windows イベントログはインシデントレスポンスにおいて最も重要なアーティファクトの一つです。そのため、我々は記録されている各 Event ID が何であるかということだけでなく、どのように解析すれば攻撃を発見できるかを解説します。また、それらを検出するための Event Log Explorer のフィルタ条件とロジック、python-evtx で解析するためのスクリプトなども合わせて提供します。

以下がイベントログ解析資料から一部を抜粋したものです。

資料: training_material_sample_for_eventlog_analysis.pdf

  • RDP
  • Task Scheduler/AT
  • PsExec

IIJ では、過去何年にも渡って標的型攻撃で頻繁に使用されている攻撃ツールを調査し、検知手法の確立に取り組んできました。一昨年から昨年にかけて JPCERT/CC と協力してレポートを作成、公開しています。

「調査協力:株式会社インターネットイニシアティブ(IIJ) 」Code language: plaintext (plaintext)

この研究成果を出した後、Mimikatz のような特定の攻撃ツールに関する検知手法について追加調査を行い、さらに多くの攻撃検出手法を発見しました。以下が Windows イベントログに関して今回のトレーニングで扱うトピックになります。

  • Remote Logon Events
    • RDP
    • Task Scheduler/AT
    • PowerShell Remoting
    • WinRS
    • WMIC
    • PsExec
    • Wmiexec
  • Pass-the-Hash Detection
  • Pass-the-Ticket Detection
    • Golden Tickets Detection
    • Silver Tickets Detection
  • Mimikatz Related Events
    • Mimikatz DCSync Detection
    • Mimikatz DCShadow Detection
    • Mimikatz Skeleton Key Detection
    • Mimikatz Detection With Sysmon
    • In-Memory Mimikatz Detection
  • Kerberoasting Attack Detection
  • WCE Detection
  • DNS Timeout Events
  • File Sharing Related Events
  • Event Log Cleared Events

また、イベントログはその重要性から攻撃者によって消去されることもあります。さらにシステム管理者の設定不備により、イベントログが適切な期間保存されていないといったことも事案対応中には散見されます。この演習では、このような状況下でも VSS からログを復元する、もしくはすでに削除されてしまったログを未割当領域などから1レコード単位でログを復元するなど、様々なトピックをカバーします。

VSS

VSS は Windows OS をフォレンジック調査する上では非常に有名な機能の一つであると言えます。そのため、多くのトレーニングコースで扱われています。本コースでもこのトピックは扱いますが、それに加えて、すでに削除されてしまったVSSスナップショットを復元して、そのスナップショットが管理していたファイル群を復元するという最新のトピックもカバーします。

VSS は “Store” と呼ばれるファイルに差分データを管理しています。このファイルはサイズがある設定値に達すると自動で削除されてしまいます。また、攻撃者やランサムウェアなどのマルウェアが削除することもあります。この “Store” ファイルを未割当領域から復元することができれば、その “Store” が管理していたファイル群を復元できる可能性があります。しかし、今まではどの有償ツールもこのようなことはできませんでした。このような最新のトピックをカバーできるのは、この vss_carver というツールを開発、維持しているのが IIJ のインシデントレスポンスチームのメンバーだからです。

終わりに

Las Vegas で会いましょう!

シェアする