FORENSICS 610 | ||||||||||||||||||||||||||||||||
Reverse-Engineering Malware: Malware Analysis Tools and Techniques |
||||||||||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||||||
受講に必要なPC環境
演習で使用するノートPCをご持参下さい。受講に必要なPC環境についてご確認ください。
FOR610 PC設定詳細
SANSトレーニングを有意義に受講していただくには、以下の要件を満たすノートPCが必須です。下記要件を確認し、事前に必要な設定を完了しておいてください。セッション中には、下記の設定を実施する時間は設けられていません。必ず事前の確認・設定をお願いいたします。
注意:実習のためのツール類をインストールすることによって、一部のシステムの動作に支障をきたす可能性があります。また、ネットワークへの接続を伴う実習内容があり、故意過失を問わず、自分のノートコンピュータのデータに他の受講生からアクセスされる可能性もあります。いずれの場合もSANSではデータの破損や読み書きに関して責任をとることはできませんので、重要なデータが格納されているノートPCでの実習はお控えください。
重要:VMwareによって仮想的に分離しているといはいえ、悪意あるコードを扱うので業務で使用しているPCは持ち込まないでください。
ノートパソコンのハードウェア要件
- CPU:Intel互換64 bit デュアルコア CPU i5以上(より早くを推奨)
- RAM:最低8GB以上(より多くを推奨)
- USB:2.0以上(3.0推奨)
- HDD/SSD:最低60GB以上の空き容量(より多くを推奨)
- NW:802.11無線LAN、Ethernet NIC(有線LAN、無線LANともに必要)
- OS:制限なし。VMware製品が正常に動けばよい
- その他:USBメモリの読込ができること
- その他:ホストOSのローカルアドミニストレーター権限
- その他:ウィルス対策製品の停止、解除ができること
- その他:ファイアウォールの停止、設定変更ができること
- その他:BIOSが仮想化機能をサポートしていること(Intel VTもしくはAMD-V)
ノートパソコンのソフトウェア要件(下記を事前にインストールしてください)
- VMware Workstation Pro11、VMware Fusion 7以上のバージョン(Virtual boxは非推奨)
演習でスナップショットの取得とリストアをするため、VMware Playerは不可 - 7zip
ノートパソコンの設定に関して追加で質問がある場合は、info@sans-japan.jp(NRIセキュアテクノロジーズ)にお問い合わせください。ただし、米国と問合せを行う関係上時間を要する場合がございます。お急ぎの方はlaptop_prep@sans.orgに直接お問い合わせください(英文)。
コース概要
このコースでは、マルウェア解析ツール、手法を詳細に解説していきます。FOR610は、フォレンジック担当者、インシデントレスポンダー、セキュリティエンジニア、IT管理者にとって、感染もしくは標的となったWindowsシステム内の悪意あるプログラムを調査するための実践的なスキル獲得に役立ちます。マルウェアの機能を理解することは、組織の能力として重要なことであり、スレットインテリンジェンスへの派生、インシデント対応、防衛能力の強化に活用できます。本コースを通じて学習することで、マルウェアのリバースエンジニアリングに関する強固な土台となるスキルを身につけることができます。具体的には、さまざまなシステム監視ユーティリティやネットワーク監視ユーティリティ、ディスアセンブラー、デバッガー、その他マルウェアの内部/外部を調査する上で有用なツール群を使うスキルを獲得していきます。
マルウェア解析の基本的な側面をカバーしていくところから、コースは始まります。安価かつ柔軟なラボをセットアップする方法を学び、悪意あるソフトウェアをその中で動作させ調査する方法を理解していきます。また、現実世界のマルウェアサンプルを用いて、その特徴を解明していく方法を学習していきます。それから、検体の挙動パターンとコードを調査していきます。つづいて、x86アセンブリ言語でマルウェア解析に必要となる知識について、解析していきます。悪意あるコードを調査することで、主要なコンポーネント、実行フローについて理解することができるでしょう。加えて、怪しいWindows APIパターンに注目することによりマルウェアに共通の特徴を見つけ出す方法について学んでいきます。このようなAPIパターンは、たとえばボットやルートキット、キーロガー、ダウンローダー、その他のマルウェアに共通して見られるものを確認していきます。
自己防衛型機能のあるマルウェアを扱う方法についても学んでいきます。具体的には、パッカーやその他のアンチ解析手法による保護を回避する方法を学習します。また、標的型攻撃でよく使われるブラウザ型のマルウェアについても学習します。典型的な悪意あるブラウザスクリプトの分析手法を学習し、難読化されたJavaScriptとVBScriptの攻撃の特徴について理解を深めていきます。
悪意あるドキュメント、Microsoft OfficeやAdobe PDFファイルといった種類のものを分析する方法も取り上げます。このようなドキュメントは、ある共通の感染ベクターを持つことを理解し、標的型攻撃もしくは大規模感染を引き起こすものかどうかを調査する必要性について学習していきます。さらに、メモリフォレンジックについても解説します。悪意あるプログラムを調査するのに効果的な手法で、特にルートキット機能を持つものに有効な手法です。
コース最終日は、CTFに挑戦してもらいます。一連学んできたことの復習になり、実践的かつハンズオンでマルウェア解析を楽しみながら学べるよい機会となることでしょう。
本コースでは、管理下にあるラボでマルウェアを調査して、マルウェア解析手法を実践してみるハンズオン演習を重視しています。演習を行うことで、典型的なパターンを理解し、コードを分析する際に重要な部分を理解できるでしょう。そして演習をスムーズに行えるようにするために、あらかじめマルウェア解析用のツールを構成してあるWindowsとLinuxの仮想マシンを用意してあります。
コースメニューへ▲ ページトップへ▲
受講対象者
- インシデントレスポンダ―(インシデント対応者)
- フォレンジック調査者
- マルウェアアナリスト
- マルウェア解析の一定の知識はあるが、体系化された手法を習得して専門性を高めたい方
コースメニューへ▲ ページトップへ▲
講義内容の一例
- 隔離された管理下にあるラボ環境を構築し、悪意あるプログラムの挙動とコードを分析する
- ネットワークとシステム監視ツールを使い、どのようにマルウェアがファイルシステム、レジストリ、ネットワーク、その他のWindows環境のプロセスに感染していくかを調査する
- Webページのコンポーネントとして含まれる、ドライブバイアタックを行うためエクスプロイトキットによってよく用いられる悪意あるJavaScriptやVBScriptを明らかにし分析する
- 悪意あるプログラムの挙動を制御する方法として、ネットワーク通信をインターセプトしコードパッチングを行って効果的にマルウェア解析を行う
- ディスアセンブラとデバッガーを使って、悪意あるWindows実行ファイルの内部の仕組みを調査する
- アナリストを欺き混乱させ解析を遅延させるために、マルウェア開発者が講じたさまざまなパッカーや防御機構をバイパスする
- DLLインジェクションやアンチ解析手法等の悪意あるコードに、共通のアセンブラパターンを認識し理解する
- 標的型攻撃のシナリオで用いられるPDFやMicrosoft Officeファイルといった悪意あるドキュメントに関する脅威を評価する
- 悪意ある実行ファイルからIOCを作り、インシデントレスポンスのトリアージに活用する
- ルートキットの特徴やその他マルウェアの種類を調査する上で、実用的なメモリフォレンジックを活用する
コースメニューへ▲ ページトップへ▲
マルウェア解析基礎
このセクションでは、マルウェア解析を理解するうえで下地となる基礎知識を身につけます。悪意あるプログラムを調査するための主要なツールとテクニックを解説します。二つのフェーズでWindowsマルウェアを理解していき、どのように時間を節約するかを教えていきます。1つは、振る舞い分析(ビヘイビア分析)としてWindows環境化でプログラムがどのように動くのかについて焦点を当てます。たとえば、レジストリやネットワーク、またファイルシステムに対する挙動について解説します。次にコード解析では、検体のコードを解析することに焦点を置きます。IDA ProとOllyDbgといったディスアセンブラとデバッガーツール使って解析します。その前にまず受講生には、管理された方法でこのような解析を行うための柔軟なラボを構築する方法を学んでもらい、提供するWindowsとLinuxの仮想マシン(REMnux)をPC上にセットアップしてもらいます。ラボではサンプルマルウェアの調査を行い、主要な解析ツールの動かし方を理解していきます。インストラクターのガイダンスとラボ後の解説によって、マルウェア解析の概念をしっかり理解できることでしょう。
トピック
- 効果的なマルウェア解析のためのツールキット構築
- 疑わしいプログラムの静的パラメーター調査
- Windowsマルウェアの挙動解析を行う方法
- Windowsマルウェアの静的解析と動的解析を行う方法
- 組織的な大規模インシデント対応に役立つ洞察力について
悪意あるコード解析
このセクションでは、Windowsの悪意ある実行ファイルをアセンブリレベルで調査することを中心に説明していきます。検体の内部の仕組みをディスアセンブラを通して解明していく方法を紹介します。また、デバッガーも解析の助けとなるでしょう。まず始めに、コードのリバーシング概念について概要を説明します。x86 Intelアセンブリの概念について、解析に不可欠な入門知識を解説します。たとえばインストラクション、ファンクションコール、変数とジャンプといった概念です。また、関数、ループ、条件文といったもので構成される共通のアセンブリを調査する方法も学んでいきます。セクションの最後は、マルウェアに共通の特徴をどのように実装しているのかを解説します。たとえば、キーロギングやDLLインジェクションなどの機能をアセンブリレベルで学習していきます。これにより、怪しいWindows実行ファイルの特徴をどのように識別すればよいのか理解できることでしょう。
トピック
- コードレベルでのマルウェア解析の主概念
- マルウェア解析者のためのx86 Intelアセンブラ言語入門
- ディスアセンブラを利用したx86アセンブラのロジック構造の主要部分を特定する方法
- Windows APIレベルでマルウェアの共通パターンを特徴付ける方法(DLLインジェクション、ファンクションフッキング、キーロギング、HTTP経由の通信など)
より深いマルウェア解析
このセクションでは、1日目に紹介した振る舞い分析とコード解析のアプローチを軸に掘り下げていき、悪意あるプログラムに追加される機能を解明していくテクニックを学んでいきます。具体的には、パッカーとよばれるテクニックについて学んでいき、そしてその防御を回避する方法を理解していきます。加えて、ネットワークトラフィックをリダイレクトしてマルウェアの機能を理解するために、インタラクティブにラボ内で動かす方法を学習します。また、マルウェアによる攻撃の中できわめて重要な役割を担う、悪意あるWebサイトの調査方法や難読化されたブラウザスクリプトの調査方法も学んでいきます。
トピック
- パッキングされたマルウェアの見極め方
- 自動化されたアンパッキングツールとそのアプローチ
- OllyDbgを利用した手動によるマルウェアのアンパッキング、プロセスダンプツール、インポートの再構築を行うユーティリティ
- マルウェア解析ラボでのネットワーク接続に割り込む方法
- 性質を確かめるための悪意あるウェブサイトをインタラクティブに調査する方法
- デバッガーとランタイムインタプリタを利用した難読化されたブラウザスクリプトの解読
- 複雑なJavaScript解析
自己防衛型マルウェア
マルウェア作成者は悪意あるプログラムが解析されることを阻止するために、多くの場合パッカーとよばれる機能を実装します。このセクションでは、本領域に焦点をあてて解説していきます。どのようにアンチアナライシス手法を識別し回避するかを学習していきます。具体的には、検知ツールや文字列の難読化、通常ではありえないジャンプ命令、ブレークポイントの検知といった内容を理解します。また、マルウェア解析に関係する範囲でシェルコードがどういった役割を担っているかを理解し、攻撃を調査するといった側面でそれらを学んでいきます。演習を重視するトレーニングの特性から、シェルコードに関係する演習も実際に行っていただきます。
トピック
- アンチ解析技術のバイパス方法
- 隠された悪意あるコードとデータの復元手法
- Original Entry Pointを検索し、より洗練されたパッカーをアンパッキングする方法
- マルウェアにより解析ツールを検知する機能を特定し無効化する方法
- 悪意ある文書とその他のアーティファクトを調査してシェルコード解析をサポートする方法
悪意あるドキュメント、メモリフォレンジック
このセクションでは、アセンブリ命令の共通のパターンを調査する方法から始め、標的のコンピューターに対してアクセス権を得るために最初に行われる攻撃を理解していきます。次に、悪意あるMicrosoft Officeドキュメントを解析する方法を学習します。その中では、OfficeMalScannerといった調査ツールや悪意あるPDFドキュメントの調査方法についても触れていきます。もう1つ重要なトピックとして本セクションで解説するのは、Windows実行ファイルに対するメモリフォレンジック手法についてです。Volatility Frameworkやそのプラグインについて解説していきます。メモリフォレンジックの解説の中で、カーネルモードルートキットの世界についても深く入り込んでいきます。これらを理解することで、マルウェア解析をより効率的に行えるようになるでしょう。
トピック
- 悪意あるOffice文書(Word、Excel、 PowerPoint)解析
- 悪意あるPDF文書解析
- メモリ解析によって、マルウェアの特徴を評価し感染の痕跡を再構築する方法
- メモリフォレンジックを用いてルートキットの感染を解析する方法
マルウェア解析トーナメント
最終日である6日目は、受講生はインシデントレスポンスやフォレンジックチームメンバーのマルウェアアナリストとして作業をしてもらいます。受講生は、トーナメントを楽しみながら実世界のマルウェア解析に関するさまざまなチャレンジ問題に挑んでいただきます。このようなチャレンジによって、受講生はインストラクターが用意したラボ環境により典型的なマルウェア解析を行えるようになるだけでなく、さらなる能力向上のよいきっかけとなるでしょう。また、チャレンジは5日間学んできたスキルを包括する内容になっています。SANS NetWarsプラットフォーム上で作業をしてもらいます。このコースで学んできたテクニックを使ってみることによって、知識とスキルを確かなものにすることが出来て、さらに追加演習をしたいと思えるようになるでしょう。
トピック
- チーム戦によるマルウェア解析チャレンジ(NetWarsシステム利用)
- 挙動解析
- 動的解析(デバッガー)
- 静的解析(ディスアセンブラ)
- JavaScript解読
- PDF文書解析
- Office文書解析
- メモリ解析