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

FORENSICS 710

Reverse-Engineering Malware: Advanced Code Analysis
※本コースは中止となりました。
次回開催をお待ちください。

Digital Forensics and Incident Response

English
日程

2023年3月6日(月)~3月10日(金)

期間
5日間
講義時間

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

受講スタイル
Live Online
会場

オンライン

GIAC認定資格
-
講師
Michael Murr|マイケル マー
SANSプリンシパルインストラクター
言語
英語 英語教材・同時通訳
定員
40名
CPEポイント
36 Points
受講料

【為替差益還元キャンペーン※】1,080,000 円(税込み 1,188,000円)

※キャンペーン価格のため、他の割引の重複適用はできません。ご了承ください。

申込締切日
【お申込み締切】2023年2月24日(金)
オプション
  • OnDemand  135,000円(税込み 148,500円)
  • NetWars Continuous  235,000円(税込み 258,500円)

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

受講に必要なPC環境

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

FOR710 PC設定詳細

受講に必要なPC環境

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

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

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

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

ハードウェア条件

  • CPU 64ビット Intel i5/i7 (4th generation+) - x64 bit 2.0+ GHz プロセッサまたはそれ以上の最新のプロセッサが必要です。
  • M1プロセッサを使用するAppleシステムは、必要な仮想化機能を実行できないため、このコースには一切使用できません。
  • 64ビットの仮想マシンがラップトップ上で動作するように、CPUとオペレーティングシステムが64ビットをサポートしていることが重要です。VMware は、お使いのホストが 64 ビットのゲスト仮想マシンをサポートしているかどうかを検出する Windows 用の無償ツールを提供しています。トラブルシューティングのために、この記事は、WindowsユーザがCPUとOSの能力についてより詳しく判断するための良い手順を提供しています。Mac の場合は、Apple のこのサポートページを使用して 64 ビット機能を判断してください。
  • 「Intel-VT」のような仮想化技術を有効にするために、BIOS設定を行う必要があります。パスワードで保護されている場合は、変更が必要な場合に備えて、BIOSにアクセスできることを確認してください。授業の前にテストしておくようにしてください。
  • このクラスでは16GB(ギガバイト)以上のRAMが必須です。
  • USB 3.0 Type-Aポートが必要です。USB 3.0 Type-Aポートが少なくとも1つ開いていて、動作していることが必要です。そのため、新しいノートパソコンでは、Type-CからType-Aへのアダプタが必要になる場合があります。エンドポイント保護ソフトウェアの中には、USBデバイスの使用を妨げるものがあります。授業の前にUSBドライブでシステムをテストし、コースデータを読み込めるかどうかを確認してください。
  • システムのハードディスクに200ギガバイトの空き容量があることが必要です。ハードディスクの空き容量は、配布するVMをホストするために重要です。
  • ローカル管理者権限が必須です。もし、会社のPCで管理者権限が付与されていない場合は、別のPCをご用意ください。
  • Wi-Fi 802.11機能は必須です。クラス形式でこのコースに参加する際は、クラス内のWi-Fiネットワークに接続する必要があります。Wi-Fiが使えないと、コースの重要な部分に参加することができません。

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

  • ホストOSは、Windows 10 Pro、Linux、またはmacOS 10.14以降が動作し、後述のVMware仮想化製品をインストールおよび実行できるシステムであることが必要です。
  • 最新のUSB3.0デバイスを利用するために、事前にホストOSを完全にアップデートし、正しいドライバとパッチをインストールしておくことが必要です。
  • Linux ホストを使用する場合は、適切なカーネルまたは FUSE モジュールを使用して、exFAT パーティションにアクセスできるようにすることが必要です。
  • 7-Zip (Windows ホスト用) または Keka (macOS) をダウンロードし、インストールしてください。これらの解凍ソフトがないと、授業で提供する大きなアーカイブファイルを解凍することができません。

VMware Workstation Pro

  • VMware Workstation ProまたはVMware Fusion Proの最新バージョンを授業前にダウンロードし、インストールしてください。VMwareの最新バージョンを使用していない場合、VMwareが最新のOSと互換性がないという問題が発生します。VMware WorkstationまたはFusionのライセンスをお持ちでない方は、VMware社から30日間の無料体験版をダウンロードすることができます。VMware社のホームページからトライアルに登録すると、期間限定のシリアルナンバーが送られてきます。
  • 製品名に "Pro "と記載されているバージョンを入手する必要があります。無償の非Pro版(VMware Workstation Playerなど)は、本コースで必要となるスナップショット機能をサポートしていないため、本コースでは使用できません。
  • VirtualBoxやHyper-Vなどの他の仮想化ソフトウェアは、互換性や授業中に遭遇する可能性のあるトラブルシューティングの問題があるため、使用できません。
  • Windows 10上のVMware Workstation Proは、Windows 10のCredential GuardおよびDevice Guardテクノロジーと互換性がありません。これらの機能がシステム上で有効になっている場合は、VMwareのガイドに従って、授業中はこれらの機能を無効にしてください。

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

SANSでは、PDF形式の印刷物の提供を開始しました。さらに、一部のクラスでは、PDFに加え、電子ワークブックを使用しています。電子ワークブックを使用するクラスは、今後急速に増加すると思われます。この新しい環境では、セカンドモニターやタブレット端末があれば、講師の講義中やラボの演習中に授業資料を見ることができ、便利です。

FOR710 コース概要

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

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

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

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

  • ステガノグラフィーの使用など、静的コード解析を妨げるコード難読化技術への対処方法
  • プログラムの主要コンポーネントを特定し、メモリ内の多段型マルウェアを解析する方法
  • プログラム実行中のシェルコードを特定し、抽出する方法
  • マルウェア解析において、バイナリ以外の形式を扱う方法
  • PEヘッダーに関連する構造およびフィールドのプロービング
  • WinDBG Preview を使用して、メモリ内の主要なプロセスデータ構造をデバッグおよび評価する方法
  • ファイルの暗号化と鍵の保護に使用されるランサムウェアの暗号化アルゴリズムを特定する方法
  • 暗号化を促進するWindowsAPIを認識し、その目的を明確にする方法
  • Pythonスクリプトを作成し、データ抽出を自動化する方法
  • DBIDynamic Binary Instrumentation)フレームワークを使用して、一般的なリバースエンジニアリングワークフローを自動化することがする方法
  • Ghidra内でスクリプトを記述し、コード解析を円滑にする方法
  • マルウェアサンプルを関連付け、悪意のあるバイナリ間の類似点と相違点を特定し、亜種の進化を追跡する方法
  • マルウェアを識別、分類するためのルールの構築方法

配布物

  • マルウェア解析・駆除ツールがプリインストールされた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ルール
  • Capaルール

コース開発者より

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

- 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)フレームワークを紹介し、DBIツールが一般的なリバースエンジニアリングのワークフローをどのように補完し、自動化できるかを検証します。Pythonの知識を応用して、ペイロードと設定を自動的に抽出し、デバッグ作業を加速し、Ghidraを使用して静的コード解析をサポートします。

演習
  • Pythonで静的設定抽出ツールを書く
  • Fridaによるペイロード抽出の自動化
  • GhidraFID機能を利用したコードのマッチング
  • Ghidraスクリプトを使ったコンテンツデコード
トピック
  • マルウェア解析のためのPython
    • Visual Studio Codeの使用
    • キー構文
    • ファイルの入出力
    • 関数
    • ループ
    • PEファイル解析のための主要モジュール
    • コードとデータ抽出のためのスクリプトの作成
  • DBIDynamic Binary Instrumentation)フレームワークによるマルウェア解析
    • DBIフレームワークによるデバッグの自動化

    • データの復号化とコードのダンプを行うDBIツールの作成

  • Ghidraでの解析の自動化
    • ファンクションID(FID)データベースの作成
    • Ghidraによるスクリプティング
    • 静的コード解析時のコンテンツ難読化処理

マルウェアとの相関分析とルールの構築

概要

相関分析により、マルウェアのサンプル間の類似点と相違点を特定することができます。これにより、コードの再利用を把握し、YARAルールやCAPAルールの作成が容易になり、マルウェア・ファミリーを追跡することができます。相関分析には、単純なハッシュ比較のほか、関数レベルの差異を特定する複雑な試みも含まれます。ここでは、バイナリの差分を取るためのいくつかのアプローチについて説明し、その利点と限界について評価します。

演習
  • 複数のマルウェアサンプル間の類似点と相違点の整理
  • マルウェアサンプル群を特定するためのYARAルールの構築
  • 指定されたアルゴリズムとマルウェア技術を識別するためのCAPAルールの構築
トピック
  • 相関分析
    • コードの再利用の検出
    • マルウェア・ファミリーの特定
    • 相関技術
    • バイナリ差分
  • YARAルールの構築
    • ルール作成のベストプラクティス
    • 自動化の検討
    • ルールの検証
  • CAPAルールの構築
    • ルール作成のベストプラクティス
    • ルールの検証

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

概要

このコースの最終セクションでは、CTFcapture the flag)を実施します。CTFのプラットフォームにアクセスし、多肢選択問題や短答式問題の組み合わせに挑戦します。受講者は、授業で学んだ重要なコンセプトを思い出し、技術を駆使してトーナメントを成功させ、ポイントを積み重ねる必要があります。このセクションでは、実際の複雑なマルウェアサンプルを解析し、新しい高度なコード解析技術を強化するための素晴らしい機会を提供します。

 

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