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

FORENSICS 710

Reverse-Engineering Malware: Advanced Code Analysis

Digital Forensics and Incident Response

English
日程

2023年9月11日(月)~9月15日(金)

期間
5日間
講義時間

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

受講スタイル
Live Online
会場

◆LiveOnline形式
オンライン

GIAC認定資格
-
講師
Anuj Soni|アヌジ ソニ
SANS認定インストラクター
言語
英語 英語教材・同時通訳
定員
40名
CPEポイント
36 Points
受講料

【早割価格】1,080,000円(税込:1,188,000円)
※キャンペーン価格のため、他の割引の重複適用はできません。ご了承ください。

【通常価格】1,200,000円(税込:1,320,000円)

申込締切日
【早割価格】2023年8月11日(金)
【通常価格】2023年9月1日(金)
オプション
  • OnDemand  135,000円(税込:148,500円)
  • NetWars Continuous  235,000円(税込:258,500円)

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

受講に必要なPC環境

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

FOR710 PC設定詳細

受講に必要なPC環境

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

重要! 下記の要項に従って設定されたシステムを持参してください。

このコースに完全に参加するためには、正しく設定されたシステムが必要です。この説明書をよく読み、それに従わない場合は、このコースに不可欠な実習に参加できないため、満足のいく授業が受けられない可能性が高くなります。したがって、このコースで指定されているすべての要件を満たすシステムで参加されることを強くお勧めします。

また、授業の前にシステムをバックアップしていただくとともに、機密データをシステムに保存しないようにしてください。弊社は受講者の皆様のシステムやデータに対して責任を負いません。

ハードウェア条件

  • CPU: 64ビット Intel i5/i7(第8世代以降)、またはAMD同等品。このクラスでは、x64ビット、2.0GHz以上のプロセッサーが必須です。
  • 重要です: M1/M2プロセッサーを使用したApple社のシステムは、必要な仮想化機能を実行できないため、このコースに使用することは一切できません。
  • Intel-VTx」または「AMD-V」拡張機能など、仮想化技術を有効にするためのBIOS設定を行う必要があります。BIOSがパスワードで保護されている場合は、変更が必要な場合に備えて、BIOSにアクセスできることを絶対に確認してください。
  • 16GB以上のRAMが必要です。
  • 200GB以上のストレージの空き容量が必要です。
  • USB 3.0 Type-Aポートが1つ以上必要です。新しいノートパソコンでは、Type-C to Type-Aアダプターが必要な場合があります。エンドポイントプロテクションソフトウェアによっては、USBデバイスの使用ができないものもありますので、授業の前にUSBドライブでシステムをテストしてください。
  • Wi-Fi 802.11機能は必須です。クラス形式でこのコースに参加する際は、クラス内のWi-Fiネットワークに接続する必要があります。Wi-Fiが使えないと、コースの重要な部分に参加することができません。

ホスト構成とソフトウェア要件

  • ホストOSは、Windows 10、Windows 11、macOS 10.15.x以降の最新版である必要があります。
  • 授業前にホストOSを完全にアップデートし、正しいドライバーとパッチがインストールされていることを確認してください。
  • Linuxホストは、多くのバリエーションがあるため、教室ではサポートされていません。Linuxをホストとして使用する場合、教材やVMと連動するように設定することは、各自の責任で行ってください。
  • ローカルアドミニストレーターアクセスが必要です。(はい、これは絶対に必要です。IT チームにそうでないと言われないようにしてください)。もし、あなたの会社がコース期間中、このアクセスを許可しない場合は、別のノートパソコンを持参するよう手配する必要があります。
  • ウイルス対策ソフトやエンドポイント保護ソフトが無効になっているか、完全に削除されているか、またはそのための管理者権限を持っていることを確認する必要があります。当社のコースの多くは、オペレーティングシステムへの完全な管理者権限を必要とするため、これらの製品によってラボの達成を妨げる可能性があります。
  • 退出トラフィックのフィルタリングは、コースのラボを達成するのを妨げる可能性があります。ファイアウォールは無効にしておくか、無効化するための管理者権限が必要です。
  • 授業開始前に、VMware Workstation Pro 16.2.X+(Windows 10ホスト用)、VMware Workstation Pro 17.0.0+(Windows 11ホスト用)、VMWare Fusion Pro 12.2+(macOS ホスト用)をダウンロード、インストールしておいてください。VMware Workstation ProまたはVMware Fusion Proのライセンスをお持ちでない方は、VMwareから30日間の無料体験版をダウンロードすることができます。VMware社のウェブサイトからトライアルに登録すると、期間限定のシリアルナンバーが送付されます。このコースでは、VMwareソフトウェアの「Pro」バージョンが必要です。Player」バージョンでは十分ではありません。
  • Windowsホストでは、VMware製品はHyper-Vハイパーバイザーと共存できない場合があります。最良の体験をするために、VMwareが仮想マシンを起動できることを確認してください。そのためには、Hyper-Vを無効にする必要がある場合があります。Hyper-V、Device Guard、およびCredential Guardを無効にする方法は、コース教材に付属のセットアップ文書に記載されています。
  • 7-Zip(Windowsホスト用)またはKeka(macOSホスト用)をダウンロードし、インストールします。これらのツールは、ダウンロードしたコース教材にも含まれています。

授業用メディアは、現在ダウンロードで配信されています。授業で使用するメディアファイルは、40~50GBの大容量となる場合があります。ダウンロードが完了するまでには、十分な時間が必要です。インターネット接続と速度は、様々な要因によって大きく異なります。そのため、教材のダウンロードにかかる時間の目安をお知らせすることはできません。ダウンロードリンクにアクセスできるようになりましたら、コースメディアのダウンロードを速やかに開始してください。授業初日には、コースメディアがすぐに必要になります。授業開始の前夜にダウンロードを開始すると、失敗する可能性が高くなります。

教材には、ライブ授業に参加する前、またはオンライン授業を開始する前に行うべき重要な手順が記載された「セットアップ手順書」が含まれています。これらの手順を完了するには、30分以上かかる場合があります。あなたのクラスでは、ラボの指導に電子ワークブックを使用しています。

ノートパソコンの仕様に関するその他のご質問は、laptop_prep@sans.org までご連絡ください。

FOR710 コース概要

防御側の分析スキルが向上し、マルウェアの自動検出機能が改善されるにつれ、マルウェアの作成者は、そのマルウェアを攻撃対象の企業で実行できるようにするため、より努力を重ねています。その結果、検知と分析を妨げるため、メモリ内で実行される、難読化を何重にも施したモジュール型のマルウェアが生み出されています。マルウェアアナリストは、これらの高度な機能に対応できるように準備し、可能な限り自動化を進めて、企業を標的とするマルウェアの量、種類、複雑さに対応する必要があります。

FOR710FOR610の次のステップに位置づけられ、中級レベルのマルウェア解析能力を身につけた受講生が、さらに高度な解析能力を身につけるためのコースです。SANS認定インストラクターのAnuj Soniが開発したこのコースは、世間を騒がし、世界中のインシデント対応チームを悩ませるような高度なWindows実行ファイルを解析できるようにするためのものです。

深いリバースエンジニアリングのスキルを身につけるには、一貫した練習が必要です。このコースでは、座学だけでなく、授業中に実際のリバースエンジニアリングの実践演習に取り組む機会も数多く設けられています。

このコースを通じて学べること

  • ステガノグラフィーの使用など、静的コード解析を妨げるコード難読化技術への対処方法
  • プログラムの主要コンポーネントを特定し、メモリ内の多段型マルウェアを解析する方法
  • プログラム実行中のシェルコードを特定し、抽出する方法
  • マルウェア解析において、バイナリ以外の形式を扱う方法
  • PEヘッダーに関連する構造およびフィールドのプロービング
  • WinDBG Preview を使用して、メモリ内の主要なプロセスデータ構造をデバッグおよび評価する方法
  • ファイルの暗号化と鍵の保護に使用されるランサムウェアの暗号化アルゴリズムを特定する方法
  • 暗号化を促進するWindowsAPIを認識し、その目的を明確にする方法
  • Pythonスクリプトを作成し、データ抽出を自動化する方法
  • マルウェアの機能を特定するためのルールを構築する。

  • DBIDynamic Binary Instrumentation)フレームワークを使用して、一般的なリバースエンジニアリングワークフローを自動化することがする方法
  • Ghidra内でスクリプトを記述し、コード解析を円滑にする方法
  • Binary Emulationフレームワークを使用して、コードの実行をシミュレートします。

配布物

  • マルウェア解析・駆除ツールがプリインストールされたWindows 10 VM
  • 授業中および授業後に検査の練習を行うためのマルウェアサンプル
  • 演習の手順が詳細に記載されたテキストおよびワークブック

ライブストリーミングで、コースの著者であるAnuj Soniによるコースのプレビューを聞くことができます。

https://youtu.be/PrP-zgd2aOU

本講座受講にあたっての前提条件

FOR710は、上級レベルのWindowsリバースエンジニアリングを学習するコースです。本コースは、SANS 「FOR610 Reverse-Engineering Malware」で説明したものと同等の知識およびスキルを有することを前提としています。動作解析、動的コード解析(デバッガの使用など)、静的コード解析(逆アセンブルされた実行コンテンツの解析など)を少なくとも6ヶ月以上行った経験があることが望ましいです。この機能に馴染みがない場合は、Anuj Soniによる簡単なイントロダクションをご覧ください。

受講対象者

  • 中級レベルのリバースエンジニアリングのスキルを向上させたい情報セキュリティ担当者
  • 難読化されたコードの解析、マルウェアの暗号化機能の評価、解析作業の自動化、効果的な検出ルールの生成などの能力を向上させたいリバースエンジニアの方

講義内容

  • コードの難読化
  • プログラム実行
  • シェルコード解析
  • ステガノグラフィ
  • 多段型マルウェア
  • WinDbg Preview
  • 暗号化アルゴリズム
  • データの難読化
  • マルウェア解析のためのPythonスクリプト
  • Dynamic Binary Instrumentation (DBI)
  • バイナリエミュレーションのフレームワーク
  • ペイロードとコンフィグの抽出
  • Ghidraによるスクリプティング
  • YARAのルール
  • YARA-パイソン
  • SMDAディスアッセブラー

コース開発者より

マルウェアがより複雑になるにつれ、マルウェア解析も複雑になっています。近年、マルウェアの作者は、独創的な回避技術、堅牢なアルゴリズム、弱点を改善するための反復開発などを用いて、危険で検知されないコードの作成を加速させています。熟練したリバースエンジニアは、綿密なコード解析を行うとともに、自動化を用いてコードの層を分解し、リスクの高い機能を特徴付け、難読化された指標を抽出する必要があります

- Anuj Soni

  • DAY1
  • DAY2
  • DAY3
  • DAY4
  • DAY5

コードの難読化および実行

概要

マルウェアの作成者は、データを隠し、コードを不明瞭にし、解析を妨げるために実行を複雑にし、コードを難読化します。マルウェアの作成者は、回避技術やメモリ内実行を利用して検出を妨害し、リバースエンジニアリングの取り組みを複雑にしています。このセクションでは、コードの難読化と実行について詳しく説明するために、まず、悪意のあるコンテンツを隠すためのステガノグラフィの創造的な使用について説明します。次に、プログラムの実行における重要なステップを説明し、受講者にコードがどのように起動されるかを認識していただき、各機能にラベル付けを行うことができるようにします。これには、Windowsローダーの確認とPortable ExecutablePE)ファイル形式の検査が含まれます。最後に、強力なWindowsデバッガであるWinDbg Previewを活用してシェルコードを解析する方法について説明します。

演習
  • ステガノグラフィ技術によるコード難読化の検討

  • 悪意のあるプログラムの解析
  • シェルコードの解析
トピック
  • コード難読化の分析
    • コード難読化の一般的なアプローチ 

    • ステガノグラフィーのアプローチ
    • キーアセンブリ操作
    • マルチコンポーネントマルウェア
    • Windowsのメモリ割り当て
  • プログラム実行の確認
    • Portable Executable (PE)ヘッダーとフィールド
    • プログラム実行の主要ステップ
    • メモリマップドファイル
    • エントリーポイントの識別
  • シェルコードの実行の理解
    • シェルコードの識別と抽出
    • APIのハッシュ化
    • プロセス環境ブロック(PEB)と関連構造体
    • シェルコード解析のためのWinDbg Preview

マルウェアにおける暗号化

概要

このセクションでは、マルウェアのリバースエンジニアリングにおいて重要な分野である、マルウェアにおける暗号化の使用について取り上げます。暗号技術は、ファイルの暗号化、鍵の保護、コンフィギュレーション設定の隠蔽、コマンド&コントロール(C2)通信の難読化など、さまざまな理由で攻撃者に利用されています。影響力の大きいマルウェアを包括的に調査するためには、熟練したリバースエンジニアが、暗号化を実装するルーチンを調査し、その目的を明確にするための準備を整えておく必要があります。

演習
  • 暗号化の必須知識に関するクイズ
  • ランサムウェアにおけるファイル暗号化とキープロテクトの特定
  • マルウェアにおけるデータ暗号化の分析
トピック
  • 暗号化の要点
    • マルウェアにおける暗号の使用例
    • 対称型暗号と非対称型暗号の比較
    • ブロック暗号とストリーム暗号
    • 動作モード
    • マルウェアによく見られるアルゴリズム
    • Microsoft CryptoAPI
  • ファイル暗号化と鍵の保護
    • コードのアルゴリズムの特定
    • マルウェアによくある実装
    • 暗号化関数の特定
    • 類似の暗号を区別する
  • マルウェアにおけるデータ暗号化
    • マルウェアにおけるデータ暗号化の一般的な使用例
    • データ保護に使用される対称型アルゴリズム
    • 暗号の特定
    • 鍵情報の抽出
    • データの復号

マルウェア解析の自動化

概要

このセクションでは、マルウェア解析を自動化するためのアプローチについて説明します。ここでは、Pythonプログラミング言語を紹介し、設定データの復号化、文字列の難読化、ペイロードの抽出を行うスクリプトを記述します。また、DBIDynamic Binary Instrumentation)フレームワークも紹介し、この機能を使用して、プロセス内にコードを注入して実行し、その内部を調査します。Pythonスクリプトを作成し、デバッグプロセスを自動化し、解凍されたコードをダンプします。

演習
  • Pythonによる設定抽出の自動化

  • Fridaによるペイロード抽出の自動化
トピック
  • マルウェア解析のためのPython
    • Pythonプログラミング入門 
    • Visual Studio Codeの使用
    • ジュピターノートブック
    • PEファイル解析のための主要モジュール
    • コンフィグ復号化・抽出
  • DBIDynamic Binary Instrumentation)フレームワークによるマルウェア解析
    • DBIフレームワークの紹介 
    • DBIフレームワークによるデバッグの自動化
    • Frida Pythonスクリプトを書き、データの復号化とコードのダンプを行う

マルウェア解析の自動化(続き)

概要

このセクションでは、マルウェア解析を自動化するためのアプローチについて引き続き説明します。ここでは、GhidraAPIを紹介し、静的コード解析を高速化するためのPythonスクリプトを記述します。また、バイナリエミュレーションのフレームワークの価値を検証し、Qilingフレームワークを使用して実行をシミュレートし、コードとデータの難読化を解除します。

演習
  • Ghidraを使ったスクリプティング
  • Qilingでコードをエミュレートする(Ghidra使用)
  • Qilingによるコードのエミュレート(SMDAを使用)
トピック
  • Ghidraで分析を自動化する
    • フラットなAPIとプログラムAPI
    • Ghidraを使ったPythonスクリプティング
    • データ難読化の自動化
  • バイナリエミュレーションのフレームワーク
    • Qilingによるコード実行のエミュレート
    • Ghidraのヘッドレスアナライザ
    • SMDAディスアセンブラ
    • フックの実装
    • YARAルール開発とyara-python

アドバンストマルウェア解析大会(エクステンデッドアクセス)

概要

このコースの最終セクションでは、より独立した競争的な環境で新しい知識とスキルを活用する機会を提供します。受講者は、5日間のライブ授業以外にも、CTFcapture the flag)プラットフォームにアクセスし、多肢選択式と短答式を組み合わせた課題に挑戦することになります。受講者は、授業で説明した重要な概念を思い出し、ワークフローを実行することで、トーナメントを成功させ、ポイントを積み重ねる必要があります。このセクションでは、実際の複雑なマルウェアのサンプルを分析し、新しい高度なコード解析のスキルを強化する絶好の機会を提供するものです。

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