ニュースレター登録
資料ダウンロード
お問い合わせ

FORENSICS 610

Reverse-Engineering Malware:Malware Analysis Tools and Techniques

Digital Forensics and Incident Response

English
日程

2022年2月28日(月)~3月5日(土)

期間
6日間
講義時間

1日目:9:00-17:30
2日目~6日目:9:30-17:30

受講スタイル
Live Online
会場

オンライン

GIAC認定資格
GREM
講師
Xavier Mertens|ザビエル マーテンス
SANS認定インストラクター
言語
英語 英語教材・同時通訳
定員
40名
CPEポイント
36 Points
受講料

■通常価格:880,000円(税込み:968,000円)

申込締切日
2022年2月18日(金)
オプション
  • GIAC試験  105,000円(税込み 115,500円)
  • OnDemand  105,000円(税込み 115,500円)
  • NetWars Continuous  190,000円(税込み 209,000円)

※オプションの価格は、コース本体と同時にお申し込みいただく場合のみ有効です。

※コース本体のお申し込み後から講義開始までの間に、GIAC試験オプションを追加される場合は、事務手数料10,000円(税込11,000円)をいただきます。

※講義開始後のGIAC試験のお申込みは、こちらのページ(英語)をご参照のうえ、GIACへ直接お申し込みください。

受講に必要なPC環境

演習で使用するノートPCをご準備下さい。受講に必要なPC環境についてご確認ください。

FOR610 PC設定詳細

重要:以下の環境のノートPCをご持参下さい。

講義の全てのコンテンツに参加するためには、適切に設定されたノートPCが必要です。この指示に従わないと、このコースの演習に参加することができず、満足のいく授業を受けることができない可能性が高いです。そのため、以下の条件をすべて満たすシステムを用意することを強くお勧めします。

SANSはあなたのシステムやデータに対して責任を負いませんので、授業の前にシステムをバックアップしてください。さらに言えばシステム上には機密データを保存しないようにしてください。

ノートパソコンのハードウェア要件

  • CPU:Intel互換64 bit(必須) デュアルコア 2.0GHz以上の CPU i5、i7(第4世代以上)
  • 注意 : M1プロセッサ搭載のapple社製品は現時点で必要な仮想化を行うことができないため、使用できません。
  • RAM:16GB以上(最小必須)
  • USB:3.0 Type-A(必須)
  • HDD/SSD:最低200GB以上の空き容量(より大容量を推奨)
  • NW:802.11無線LAN
  • OS:Windows 10 ProまたはMaxOS X 10.14以上
  • その他:USBメモリの読込ができること
  • その他:ホストOSのローカルアドミニストレーター権限
  • その他:BIOSが仮想化機能をサポートしていること(Intel VTもしくはAMD-V)

ノートパソコンのソフトウェア要件(下記を事前にインストールしてください)

  • 最新のUSB 3.0デバイスを利用するためのドライバとパッチがインストールされていることを確認するため、講義の前にホストのオペレーティングシステムを完全にアップデートしてください。
  • VMware Workstation Pro以上、またはVMware Fusion Pro以上
    ライセンスをお持ちでない方は30日間のトライアルライセンスが利用可能です。重要:VMwareは「Pro」表記があるバージョンが必要です。VMware Workstation Playerは演習で必要となるスナップショット機能がないため、本コースでは利用できません。VirtualBoxやHyper-Vなどの他の仮想化ソフトウェアの利用は本コースでは適切ではありません。
  • VMware Workstation ProをWindows 10で動作させる場合、Widows 10のクレデンシャルガードとデバイスガードテクノロジー機能の一時的な無効化が必要です。設定方法は下記URLを参照してください。https://kb.vmware.com/s/article/2146361
  • 7zip(Windows)、Keka(Mac OS)

LiveOnlineでのコースメディアの事前準備、テキストについて

コースのメディアがダウンロード版で配信されるようになりました。授業で使用するメディアファイルは大容量で、40~50GBのものもあります。ダウンロードに必要な時間は様々な要因に左右されるため、所要時間を見積もることはできませんが、非常に時間がかかってしまう場合もあります。メールよりダウンロードリンクを取得したら、コースメディアのダウンロードを開始してください。コースメディアは授業初日すぐに必要になります。開始前夜などにダウンロードを開始すると、失敗する可能性が高くなりますので、時間に余裕をもってご準備ください。

SANSでは、PDF形式のテキストの提供を開始しました。さらに、一部のクラスではPDFに加えて電子ブックを使用しています。電子ブックを使用するクラスは今後増えていく予定です。セカンドモニターやタブレット端末を使って、授業の資料を見られるようにしておくと便利です。

ノートパソコンの設定に関して追加で質問がある場合は、info@sans-japan.jp(NRIセキュアテクノロジーズ)にお問い合わせください。ただし、米国と問合せを行う関係上時間を要する場合がございます。お急ぎの方はlaptop_prep@sans.orgに直接お問い合わせください。(英文)

FOR610 コース概要

このコースでは、マルウェア解析ツール、手法を詳細に解説していきます。FOR610は、フォレンジック担当者、インシデントレスポンダー、セキュリティエンジニア、IT管理者にとって、感染もしくは標的となったWindowsシステム内の悪意あるプログラムを調査するための実践的なスキル獲得に役立ちます。マルウェアの機能を理解することは、組織の能力として重要なことであり、スレットインテリンジェンスへの派生、インシデント対応、防衛能力の強化に活用できます。本コースを通じて学習することで、マルウェアのリバースエンジニアリングに関する強固な土台となるスキルを身につけることができます。具体的には、さまざまなシステム監視ユーティリティやネットワーク監視ユーティリティ、ディスアセンブラー、デバッガー、その他マルウェアの内部/外部を調査する上で有用なツール群を使うスキルを獲得していきます。

自動分析ツールを使って劇的に発見しやすくするような手法で、マルウエアを解析するための基礎を身につけるところから始まります。悪意のあるソフトウエアの内部検査を行うフレキシブルなラボを設定する方法や、実世界にあるマルウエアのサンプルの特徴を発見するラボの使い方を学びます。悪意のあるプログラムを動かすことで検体の機能を発見するため、ラボの中でネットワークトラフィックをリダイレクトしたり遮断する方法を学習します。リバースエンジニアリングと関連する本質的なアセンブリ言語のコンセプトを学びます。重要な構成要素と実行フローを理解するために、ディスアセンブラやデバッガーの助けを借りて悪意のあるコードを検査することを学習します。加えて、悪意のあるプログラムにある怪しいWindows APIパターンに注目することによりマルウェアに共通の特徴を見つけ出す方法について学習します。

次に、攻撃の性質を理解するために、怪しいウエブサイトのアセスメント方法や悪意のあるJavvaScriptの難読化の解除方法を掘り下げながら、ウェブシステムに由来するマルウエアの世界に入ります。

Microsoft Office、RTF、PDFファイルといった種類の悪意あるドキュメントを分析する方法も取り上げます。このようなドキュメントは、標的型攻撃もしくは大規模感染を引き起こすものとして、共通の感染ベクターとして活動します。ファイルレスマルウエアや悪意のあるPowerShellスクリプトの検査方法を学習します。

マルウェアは解析されないよう難読化されていることが多いため、このコースでは悪意のあるWindowsの実行ファイルを紐解くスキルを身につけます。このコースでは、デバッガやその他の特殊なツールを使用して、メモリからプログラムをダンプしたり、難読化を回避したりする方法を学びます。また、システム上の存在を隠したり、情報の流れに干渉したりするために、コードインジェクションやAPIフックを行うマルウェアの検査方法も学びます。

FOR610は分析から逃れようとする悪意のあるソフトウエアとの付き合い方も紹介します。コードインジェクション、サンドボックス回避、フローの誤認やほかの方法を含む一般的な自己防衛型機能を理解します。

コース最終日は、CTFに挑戦していただきます。一連学んできたことの復習になり、実践的かつハンズオンでマルウェア解析を楽しみながら学べるよい機会となることでしょう。

本コースでは、管理下にあるラボでマルウェアを調査して、マルウェア解析手法を実践してみるハンズオン演習を重視しています。演習を行うことで、典型的なパターンを理解し、コードを分析する際に重要な部分を理解できるでしょう。そして演習をスムーズに行えるようにするために、あらかじめマルウェア解析用のツールを構成してあるWindowsとLinuxの仮想マシンを用意してあります。

 

前提条件

FOR610 PC設定詳細に記載された要件を満たすPCを持っていること(一部のソフトウェアは授業開始前にインストールする必要があります)。
WindowsおよびLinuxの操作に精通しており、OSの接続性や設定に関する一般的な問題のトラブルシューティングができること
VMwareに精通しており、仮想マシンのインポートおよび設定ができること
・変数、ループ、関数など、プログラミングの中核となる概念について一般的な知識があり、この分野の関連する概念を素早く理解できること。ただし、プログラミングの経験は必要ありません。

受講対象者

  • マルウエアを含むインシデントを扱う、あるいは悪意のあるプログラムの基本事項を理解したい方
  • 体系的ではないがマルウエア解析の経験を持つ、あるいはこの領域の専門性を体系化したり広げたい技術者
  • スキルセットを広げたい、インシデントレスポンスにおける重要な役割を果たすフォレンジック調査官、セキュリティ技術者

※FOR610は、GIAC(GREM)認定試験対象コースです。

GIAC Reverse Engineering Malware

GIAC Reverse Engineering Malware (GREM) 認定資格は、悪意のあるコードから組織を守る技術者のために設計されています。GREM認定技術者は、Microsoft WindowsWebブラウザなどの一般的なプラットフォームを対象とした悪意のあるソフトウェア(マルウェア)をリバースエンジニアリングするための知識とスキルを有していることが認められます。フォレンジック調査、インシデントレスポンス、Windowsシステム管理などの観点から、マルウェアの内部構造を調査する知識や技術を有していると評価されます。GREM認定資格で最先端のマルウェア解析スキルをアピールすることで、組織におけるあなた自身の評価が高まるだけでなく、顧客からの信頼を獲得することもできます。

・悪意のある文書ファイルの解析、保護された実行ファイルの解析、Webベースのマルウェアの解析
・悪意のあるブラウザ・スクリプトの詳細な解析と悪意のある実行ファイルの詳細な解析
・メモリフォレンジックを利用したマルウェア解析とマルウェアコード・挙動解析の基礎知識
・リバースエンジニアリングのためのWindowsアセンブリコードの概念とアセンブリにおける一般的なWindowsマルウェアの特徴

講義内容の一例

  • 隔離された管理下にあるラボ環境を構築し、悪意あるプログラムの挙動とコードを分析する
  • ネットワークとシステム監視ツールを使い、どのようにマルウェアがファイルシステム、レジストリ、ネットワーク、その他のWindows環境のプロセスに感染していくかを調査する
  • Webページのコンポーネントとして含まれる、ドライブバイアタックを行うためエクスプロイトキットによってよく用いられる悪意あるJavaScriptやその他コンポーネントを明らかにし分析する
  • 悪意あるプログラムの挙動を制御する方法として、ネットワーク通信をインターセプトしコードパッチングを行って効果的にマルウェア解析を行う
  • ディスアセンブラとデバッガーを使って、悪意あるWindows実行ファイルの内部の仕組みを調査する
  • アナリストを欺き混乱させ解析を遅延させるために、マルウェア開発者が講じたさまざまなパッカーや防御機構をバイパスする
  • コードインジェクション、APIフッキング、アンチ解析手法等の悪意あるコードに、共通のアセンブラパターンを認識し理解する
  • PDFやMicrosoft Officeファイルといった悪意のあるドキュメントに関する脅威を評価する
  • インシデントレスポンスやスレットインテリジェンスを強化するために悪意のある実行ファイルからIOCを引き出す

コース開発者より

「熟練マルウェアアナリストが、感染したシステムに侵入した悪意あるファイルから情報をどれほど得られるのか驚くほどです」マルウェアをリバースエンジニアリングする方法を学ぶことで、侵入された深刻さ、攻撃の目的や経過、封じ込めの手順、および組織がインシデントを対応するのに役立つ多くの状況が得られます。 FOR610コースは、さまざまな使えるテクニックを駆使して悪意あるソフトウェアの調査方法を学ぶ、そして得られた専門知識からマルウェア分析を習得するための専門家への入り口なのです。
- Lenny Zeltser

「攻撃者と効果的に立ち向かうためには、相手が使用しているツールへの理解が必要です。」このコースでは、コードを機能的にリバースエンジニアリングすることで、機能、依存性、およびその制限を理解するために必要なスキルを学びます。目的を達成するために攻撃者は、独創的で堅牢なマルウェアを生み出そうと、日々努力を積み重ねています。組織が将来の攻撃を軽減するためにコードを解読してそれを学んでいくためには、同様に熟練したマルウェア分析機能を備える必要があるのです。
- Anuj Soni

  • DAY1
  • DAY2
  • DAY3
  • DAY4
  • DAY5
  • DAY6

マルウェア解析基礎

このセクションでは、マルウェア解析を理解するうえで必要な基礎知識を身につけます。悪意あるプログラムを調査するための主要なツールとテクニックを解説します。フェーズごとにWindowsマルウェアを調べることで解析時間を短縮する方法を学びます。静的プロパティ分析では、メタデータおよびその他のファイル属性を調べてトリアージを行い、次の対応を決定します。行動分析では、レジストリ、ファイルシステム、ネットワークなどの環境とのプログラムの相互作用に焦点を当てます。コード解析では、検体の内部動作に焦点を当て、x64bgなどのデバッグツールを使用します。提供されているWindowsおよびLinux(REMnux)仮想マシンに慣れ親しむように、設定された方法でこのような分析を行う方法を学びます。ラボではサンプルマルウェアの調査を行い、主要な解析ツールの実行方法を理解していきます。インストラクターのガイダンスとラボ後の解説によって、マルウェア解析の概念をしっかり理解できることでしょう。

トピック

  • 効果的なマルウェア解析のためのツールキット構築
  • 疑わしいプログラムの静的パラメータ調査
  • 悪意のあるWindows実行ファイルの挙動解析を行う方法
  • Windowsマルウェアの静的コード解析と動的コード解析を行う方法
  • 付加的な行動特性を導き出すため、ラボにあるマルウェアとの相互影響

悪意あるコード解析

このセクションでは、Windowsの悪意ある実行ファイルをアセンブリレベルで調査することを中心に説明していきます。検体の内部の仕組みをディスアセンブラを通して解明していく方法を紹介します。また、デバッガーも解析の助けとなるでしょう。まず始めに、コードのリバーシング概念について概要を説明します。x86 Intelアセンブリの概念について、解析に不可欠な入門知識を解説します。たとえばインストラクション、ファンクションコール、変数とジャンプといった概念です。また、関数、ループ、条件文といったもので構成される共通のアセンブリを調査する方法も学んでいきます。教材を使って基礎を固めてから、ポピュラーになった64ビットマルウエアを使って理解を深めます。

ディスカッションを通じて、HTTPを使用したC2サーバとの通信、アーティファクトの抽出、コマンドの実行など、コードレベルでの共通の特徴を認識できるようになります。

トピック

  • コードレベルでのマルウェア解析を行うためのx86アセンブリの概念
  • ディスアセンブラを使用したアセンブラのロジック構造の主要部分を特定する方法
  • プログラム制御フローに従い、実行ポイントを理解する
  • Windows APIレベルでのマルウェア特性を理解する
  • x64コード解析を組み込むためのアセンブリ知識の拡張

悪意のあるドキュメントの分析

3日目は、悪意のあるドキュメントファイルの調査に焦点を当てます。悪意のあるドキュメントファイルは、攻撃者が感染したシステム上で悪意のある操作を直接実行したり、悪意のある実行ファイルのインストールにつながる攻撃を仕掛けたりするために使用されます。このセクションではまず、PDFファイルを調査して、組織にとっての脅威を理解する方法を解説します。続いて、Microsoft Office文書の中で被害者に送られるVBAマクロの詳細な調査について解説します。ここでは、簡単なマクロとより高度なマクロの扱い方を学ぶことで、マクロの機能を理解し、侵害の指標(IoC)を導き出します。次に、不審なRTFファイルを調査する方法を学びます。ここで扱うRTFファイルには、危険なアーティファクトが埋め込まれており、脆弱性を利用して悪意のあるコードを実行することができます。最後に、悪意のあるMicrosoft Excelファイルに含まれる可能性のあるXLMマクロを分析します。また、疑わしい不審なWebサイトを調査することで、シェルコードの機能を理解するためのテクニックも紹介します。

トピック

  • 不審なWebサイトの分析を含む悪意のあるPDFファイルの検査、Microsoft Office文書のVBAマクロの検査
  • シェルコードの解析を含む、悪意のあるRTFファイルの検証
  • XLMマクロの活用

より深いマルウェア解析

4日目は、これまで紹介してきた動作解析やコード解析のアプローチをベースに、悪意のあるプログラムの機能のさらに明らかにするためのテクニックを紹介します。このセクションではまず、悪意のあるドキュメントファイルや不審なWebサイト、またはその他の形態の攻撃で使われることのあるJavaScriptの難読化を解除するための実践的な手法について解説します。具体的には、パッカーとよばれるテクニックについて学んでいき、そしてその防御を回避する方法を理解していきます。また、レジストリ、難読化されたJavaScriptとPowerShellスクリプト、シェルコードの使用など、本来の特性を隠すために複数のテクノロジを使ったマルウェアの分析も行います。最後に、ユーザモードルートキットとしてコードインジェクションやAPIフックなどを実装されたマルウェアについて、コードとメモリフォレンジックの両方の観点からこれらの機能を調べる方法を学びます。

トピック

  • 悪質なJavaScriptの難読化の解除
  • Windows用マルウェアの認識
  • アンパッキングの始め方
  • デバッガを使用して、パックされたマルウェアをメモリからダンプする(マルチテクノロジーおよび「ファイルレス」マルウェアの分析)
  • コードインジェクションとAPIフック

自己防衛型マルウェア

このセクションでは、マルウェアの作成者が悪意あるソフトウェアを解析されるのを阻止するために使っている手法を詳しく解説します。時間稼ぎまたは、誤分析するよう仕組まれた対分析手法を識別し、回避する方法について解説します。このプロセスでは、マルウェアの静的および動的分析を行って、アンパックしたり、他のプロセスにインジェクトしたりできることを学びます。マルウェアの作成者が悪意ある実行可能ファイルに埋め込んだデータを保護する方法についても理解を深めることができます。コースを通してカバーされているトピック同様に、実践演習中にこのようなテクニックを試すことができます。

このセクションでは、コースの前半で取り上げた多くのツールやテクニックをまとめ、さらに発展させています。

トピック

  • マルウェアがデバッガを検出し、埋め込みデータを保護する方法
  • 悪意あるソフトウェアのプロセス空洞化を利用したアンパック方法
  • マルウェアが解析ツールを検知する機能を特定し無効化する方法
  • SEHおよびTLSコールバックを含むコード誤検出手法
  • パッカーの動きを予期して悪意ある実行可能ファイルをアンパックする方法

マルウェア解析トーナメント

最終日は、コースの初期のセクションで学んだマルウェア解析のさまざまな知識・技術を自分のものとし、実践し、発展させていくことができます。このセクションでは、CTFCapture The Flag)形式で、実際のマルウェアを使った様々な実践的な課題を解いていきます。必要に応じてガイダンスが提供されますので、自分のスキルセットやニーズに合わせて取り組むことができます。ここまで学んだ知識を定着させるともに、苦手なスキル分野のレベルアップを図ることができます。

トーナメントを制したチームには、チャレンジコインが授与されます。

トピック

  • マルウェア解析の基礎知識
  • 静的・動的手法による悪意のあるコードの修正
  • 悪意のあるドキュメントの分析
  • アンパックを含むマルウェアの詳細な解析
  • 自己防衛型マルウェアの検証

NRIセキュアではNews BitesやOUCH! を日本語に翻訳して皆さまにお届けしています。
購読制を採っておりますので、
ご希望の方は、ニュースレター登録からお申し込みください。