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

SECURITY 760

Advanced Exploit Development for Penetration Testers

Penetration Testing and Ethical Hacking

English
日程

2021年2月22日(月)~2月27日(土)

期間
6日間
講義時間

9:00 ~ 19:00

受講スタイル
Live Online
会場

オンライン

GIAC認定資格
-
講師
James Shewmaker|ジェームズ シェウメイカー
SANSプリンシパルインストラクター
言語
英語 英語教材・同時通訳
定員
40名
CPEポイント
46 Points
受講料

■通常価格:880,000円(税抜)

申込締切日
2021年2月12日(金)
オプション
  • OnDemand 95,000円(税抜)
  • NetWars Continuous 174,000円(税抜)

受講に必要なPC環境

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

SEC760 PC設定詳細

重要:以下の手順に従って設定されたPCを各自用意してください。

SANSトレーニングを有意義に受講していただくには、以下の要件を満たすノートPCを受講者自らご用意いただきます。下記要件をよく確認し、事前に必要な設定を完了しておいてください。セッション中には、下記の設定を実施する時間は設けられていません。必ず事前の確認・設定をお願いいたします。

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

コース開始前の事前準備として、5つのことをお願いしています。早めの準備をすることで、トレーニングを最大限に活用することができます。まず、適切に設定されたノートPCの持参をお願いいたします。この資料では、クラスに必要なシステムのハードウェアとソフトウェアの設定について詳しく説明しています。また、準備に関してのビデオをhttps://sansurl.com/sans-setup-videosから閲覧することができます。

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

講義での演習では、予め複数のOSを実行できるようにVMwareを導入しておく必要があります。コースの初日には演習に必要なすべてのツール(Windows 10や複数のLinuxディストリビューション、4ヶ月間有効なライセンス付きIDA Pro(ディスカウント購入レートオプション付き)などが提供されます。いくつかの演習ではOSとアプリケーションの設定を適切に行う必要があります。これらの演習では、RDPを使って教室に敷設されたネットワーク上の仮想マシンへ接続します。これらのシステムは持ち帰ることはできませんが、ご自宅に戻られてから再度システムを構築するための詳細情報が共有されます。

ウイルス対策やパーソナルファイアウォールなど、すべてのセキュリティソフトウェアと保護機能を無効にする管理機能があることを確認してください。このレベルの権限がない場合、演習を完了できない可能性があります。管理またはセキュリティ制御によってブロックされる可能性のあるソフトウェアのインストールを行う場合、制御を一時的に回避する方法があることことを確認してください。Windowsカーネルデバッグ用のWindowsデバッグツールをネットワーク接続経由でホストOSにインストールできる必要があります。また使用する端末は、Windows10をホストOSとして使用することを推奨します。ホストがMac OSまたはLinuxディストリビューションの場合は、Windows10のゲストOSを用意する必要があります。

 

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

  • RAM:16GB以上
  • Windows 10、macOS 10.15以降、または Linux の最新バージョン
  • VMware Workstation Pro 15.5、VMware Player 15.5、Fusion 11.5以上
  • VMware Workstation、VMware Player、VMware Fusionをインストール。30日間トライアルライセンスはhttp://www.vmware.comから入手可能
  • Windows 10でのVMware Workstation ProおよびVMware Playerは、Credential GuardおよびDevice Guardテクノロジーを無効にしてください。
  • HDD:100GB以上の空き容量
  • CPU:64ビット Intel i5/i7プロセッサ 2.0 GHz以上
  • 4ヶ月間有効なライセンス付きIDA Proがコース教材に含まれます。ライセンス登録にはHex-Rays社(IDA Pro開発元)へ受講者の名前とメールアドレスの提供を受入れる必要があります。受入れない場合にはご自身で手配したIDA Pro 7.4 advanced以降をご持参ください。

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

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

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

SEC760 コース概要

Microsoft Windows 10、Server2012、最新のLinuxディストリビューションなど、最近のオペレーティングシステムの脆弱性は、非常に繊細で巧妙なことがよくあります。しかし、非常に熟練した攻撃者によって悪用された場合、これらの脆弱性は組織の防御を弱体化させ、重大な損害にさらす可能性があります。
基本的なレベルで脆弱性が存在する理由や、脆弱性を悪用するためのエクスプロイトコードを作成する方法を理解するのはもちろん、発見するスキルを持ったセキュリティ専門家はほとんどいません。逆に、攻撃者は、それらの複雑さに関係なく、このスキルセットを維持する必要があります。SANS SEC760:Advanced Exploit Development for Penetration Testersでは、32ビットおよび64ビットアプリケーションのリバースエンジニアリング、リモートユーザーアプリケーションおよびカーネルのデバッグの実行、1-dayエクスプロイトによるパッチの分析、複雑なエクスプロイトの作成 (最新のソフトウェアおよびオペレーティングシステムに対する無停止使用の攻撃など) に必要なスキルについて説明します。

あなたは、次のことができるようになります(一例)。

  • Windows 7/8/10オペレーティングシステムに対する最新のエクスプロイトを作る方法
  • use-after-free、カーネルエクスプロイト、パッチ分析による1-day exploit、その他の高度なトピックなど、複雑な攻撃を実行する方法
  • さまざまなデバッガやプラグインを効果的に利用した脆弱性の調査とスピードを向上させる方法
  • エクスプロイトの成功阻止や攻撃継続の意図を挫けさせることを目的とした現代のセキュリティ緩和策への対応

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

本コースでは、SANS SEC660:Advanced Penetration Testing,Exploit Writing,Ethical Hackingで解説するエクスプロイトを自身で作成し攻撃を行うといった経験が必須となります。

これには、LinuxとWindowsの両方でのスタックベースのバッファオーバーフローの経験、およびData Execution Prevention(DEP)、Address Space Layout Randomization(ASLR)、カナリア、およびSafeSEHなどの最新の攻撃緩和対策の無効化などを含みます。
Sulley Fuzing FrameworkやPeachなどのFuzzingツールの経験または理解も必要であるとともに可能であればC/C++の経験が推奨されます。少なくとも、Python、Perl、Ruby、LUAなどでのスクリプト作成経験は必須です。関数、ポインタ、呼び出し規約、構造、クラスなどのプログラミングの基礎は前提知識としてあることが想定されます。デバッガや逆アセンブラの内部からx86の逆アセンブルを読み取る能力と同様に、脆弱なコードのリバースエンジニアリングの経験も必要です。
LinuxとWindowsの両方の深い理解に基づく操作経験、およびTCP/IPの経験が必要です。これらの前提条件を満たせない場合、本コースの内容は非常に困難になることが予想されます。

SEC760につながるコース:
SEC660:Advanced Penetration Testing, Exploit Writing, and Ethical Hacking
FOR610:Reverse-Engineering Malware: Malware Analysis Tools and Techniques

SEC760の前提条件となるコース:
SEC660:Advanced Penetration Testing, Explit Writing, and Ethical Hacking

SEC760コースは、IDAによるリモートデバッグ、IDA PythonとIDCスクリプトの作成、SDLと脅威モデリング、Linuxヒープオーバーフロー、Patch Differing、use-after-free攻撃、Windowsカーネルのデバッグとエクスプロイトなどを含む非常にハイレベルなトピックを網羅しています。詳細については、本ページの記載内容を参照し、推奨される前提条件とラップトップの要件をご確認ください。
繰り返しとなりますが、WindowsおよびLinuxアプリケーション用のエクスプロイトを作成する方法、DEPやASLRなどのエクスプロイト攻撃緩和対策を回避する方法、return-oriented shellcode(ROP)を使用する方法などはすでに習得している必要があります。

SANSは受講者が本コースに対して準備ができているか? SEC660を先に受講した方がよいかなど多くの質問を受けます。これらの質問に対してオールマイティな回答はありません。SANSの推奨事項は、受講を検討しているすべてのコースについて、コースのシラバスと受講前提条件の説明を熟読することです。コース開発者であるStephen Sims氏は、十分な情報に基づいた意思決定を行うために、受講者からの質問にお答えします。連絡先はこちら(stephen@deadlisting.com)になります。

SANSでは、受講者がSEC660とSEC760のどちらのコースが適しているかを判断するための10問のテストを公開しています。これは純粋に攻撃開発の観点から行われるものです。SEC660には、エクスプロイトの開発とエクスプロイト攻撃緩和対策の回避に関する内容が盛り込まれています。ネットワークデバイスの活用(ルーター、スイッチ、ネットワークアクセス制御)、暗号実装に対するペンテスト、Fuzzing、Python、ネットワークブート攻撃、LinuxやWindowsの制限された環境からの脱出など、広範囲にわたる高度な侵入テストのトピックに関する2日間分にわたるものです。SEC760の多くの受講生は、Offensive Security、Exodus Intelligence、Corelanなどのトレーニングを受けています。一部のセクションには重複がありますが、重複のない固有のセクションが多数あります。

受講者が学ぶ内容

  • パッチ適用されたOS上でのプログラムのゼロデイ脆弱性の発見
  • 詳細なペンテストプロセスを通じた脆弱性を悪用するためのエクスプロイトの作成
  • IDA Proの高度な機能とカスタムIDC、IDA Pythonスクリプト作成
  • LinuxとWindowsアプリケーションに対するリモートデバッグの実行
  • Linuxヒープオーバーフローの理解とエクスプロイト
  • Retrun-Oriented Shellcodeの記述
  • パッチ適用された脆弱性を探査するためのプログラム、ライブラリ、ドライバに対するパッチの拡散
  • Windowsヒープオーバーフローの実行とuse-after-free攻撃
  • 攻撃成功率を向上させるための正確なヒープスプレイ
  • 64ビットWindows 10 ビルド 1903 までのカーネルデバッグの実行
  • Windowsカーネルエクスプロイト

受講対象者

  • シニアネットワーク、システムペネトレーションテスター
  • セキュアアプリケーション開発者(C、C++)
  • リバースエンジニアリング専門家
  • シニアインシデントハンドラー
  • シニア脅威分析者
  • 脆弱性研究者
  • セキュリティ研究者

コース開発者より

「ずっと情報セキュリティを学ぶ者として私はSEC760:Advanced Exploit Writing for Penetration Testersを提供できることに興奮しています。エクスプロイトの開発は最近のホットな話題であり、今後も重要性が増していくでしょう。Windows10などのOSが提供している最新のエクスプロイト緩和コントロール機能を考えると、実用的なエクスプロイトを作成するスキルを持つ専門家の数は非常に限られています。脆弱性を発見し、脆弱性が悪用可能かどうかを判断し、セキュリティ調査を行う能力を持つ専門家を雇用する企業が増えている中で、このコースはこのような非常に人気の高いポジションに就くために役立つように作られました。また、ターゲットを徹底的に評価するための最先端のテクニックを習得し、エクスプロイト開発能力を向上させるスキルを提供します。」-- Stephen Sims

---------

「著者への指導と支援SEC760:Advanced Exploit Writing for Penetration Testersは、私に、エクスプロイト開発に関する過去の経験と技術的なシステム知識を共有する機会を与えてくれました。このコースではさまざまな活用テクニックを紹介し、現代のアプリケーションやシステムを活用するための素晴らしい出発点となります。エクスプロイト開発や脆弱性の調査に従事する予定がない場合でもこのコースではエクスプロイト開発に至る思考プロセスとそれが成功しないようにするために存在するテクノロジーを理解することができます。」-- Jaime Geiger

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

Exploit Mitigations and Reversing with IDA

このコースは、成熟したエクスプロイトの緩和と現代的なエクスプロイトの緩和の両方を深く掘り下げることから始まります。今日、OSやアプリケーションは複数の緩和策を組み合わせて脆弱性の悪用を防ぐことが一般的と言えます。
産業用制御システムやIoTの分野などでは時代遅れのOSやアプリケーションは確かに存在していますが、それはこのコースの焦点ではありません。ここでは、Windows Defender Exploit Guardで実装されているコントロールなど、各コントロールの有効性と技術的な詳細について説明します。
その後、コースに同梱されているIDA Proを使用して残りの時間を過ごします。簡単に逆アセンブラであるIDA Proを習得し、ツールを使ったリモートデバッグに移行します。Day1はIDA FLIRTとFLAIRを活用し、さらにIDAPythonスクリプトを記述してバグ探索および分析を行います。

トピック

  • Exploitの緩和
  • Windows Defender Exploit Guard
  • IDA Proの紹介
  • IDA Proを使ったデバッギング
  • FLIRTとFLAIRの利用
  • IDAPythonとPhython 3によるスクリプト

Linux Application Exploitation

より高度なリバースエンジニアリングとエクスプロイトを活用するにはSEC660でカバーするような基本的なソフトウェアの脆弱性について、専門家レベルで理解している必要があります。
ヒープオーバーフローは、最新のエクスプロイトテクニック習得のために避けては通れないものです。Day2はこの知識ギャップを埋め、より抽象的な考え方を刺激することを目的としています。Linuxはこれらのテクニックを習得するための比較的理解しやすいオペレーティングシステムであり、これがWindowsの世界へ足を踏み入れる際の恰好の入り口になるでしょう。エクスプロイト開発に関するほとんどのコースはWindows OSのみに焦点を当てていますが、Linux OSの脆弱性研究についても理解しておくことが重要です。

トピック

  • Linuxヒープ管理、構築、環境
  • ヒープのナビゲーション
  • unlink() や frontlink()マクロの悪用
  • ポインター機能の上書き
  • フォーマットストリングエクスプロイト
  • Linuxのエクスプロイト回避策の突破
  • Linuxアプリのエクスプロイトに対するIDAの利用
  • フォーマットストリングバグを使ったASLRバイパス

Patch Diffing, One-Day Exploits, and Return-Oriented Shellcode

脆弱性は時に秘密裏に修正されることがあるため、攻撃者はMicrosoftなどのベンダーからパッチが提供されると、パッチによってどんな脆弱性が改修されたのかを探し出すために真っ先にそれをダウンロードして解析を行います。そうすることで、パッチが適用されていないシステムにどんな脆弱性が潜んでいるかを把握し、それらのシステムの制御権を奪おうとします。このテクニックは、インシデントハンドラ、IDS管理者やベンダ、ペンテスト企業、および政府機関などによっても実行されます。Day3で紹介する資料を使い、ベンダーがパッチを当てたにも関わらず存在するバグを特定し、それを悪用することになります。また、シェルコードをエミュレートするガジェットをつなぎ合わせるために、Return Oriented Programming (ROP)を使用することにも焦点を当てます。

トピック

  • Microsoftのパッチ管理プロセスと「火曜(日本では水曜)」のパッチ
  • パッチの入手とパッチ抽出
  • BinDiff 5を使用したバイナリ比較
  • コード変更の視覚化と修正の特定
  • 32ビットと64ビットのアプリケーションとモジュールのリバースエンジニアリング
  • パッチがが適用された脆弱性のトリガー
  • 1-dayエクスプロイトの記述
  • ROPを使用したオンザフライコンパイルシェルコード(Return-Oriented Shellcode)

Windows Kernel Debugging and Exploitation

Day4は、複雑で扱いにくいWindowsカーネルと最近のバージョンで追加された数々のエクスプロイト緩和策の理解を進めます。
複数のWindows OSのカーネルデバッグを実施し、固有の複雑さへの対処方法を学びます。さらに、Ring 0ドライバ脆弱性を解析し、エクスプロイトテクニックを調べ、実際に動作するエクスプロイトを見つけます。

トピック

  • Windowsカーネルの理解
  • Windowsカーネルの探索
  • 現代のカーネル保護方法
  • Windows 10 カーネルとドライバのデバッグ
  • WinDbg
  • カーネル脆弱性とその種類の解析
  • カーネルエクスプロイトテクニック
  • トークン盗難とHALディスパッチテーブルの上書き

Advanced Windows Exploitation

Day5の焦点は、Windows OS上で実行されているアプリケーションの高度なエクスプロイトです。長年にわたり、メモリ破壊のバグはWindowsアプリケーションにおいては最も標準的なエクスプロイト手段でした。たとえば、Use After Free(UAF)やType Confusionのバグなどがあります。これらの脆弱性の多くはオブジェクト追跡や動的メモリ管理など大規模なC++アプリケーションの複雑さが原因で発生します。このセクションでは、Windows7、8、および10オペレーティングシステムにおけるこれらのアプリケーションの脆弱性に焦点を当てます。

トピック

  • Windowsヒープ管理、構築、環境
  • LFH(Low Fragmentation Heap:低断片化ヒープ)の理解
  • ブラウザベース、クライアントサイドエクスプロイト
  • C++ vftable/vtable 挙動の理解
  • Use-After-Free攻撃とポインター
  • MemGC、隔離されたヒープなどの保護の回避
  • ASLR、DEPや一般的な緩和策の突破

Capture the Flag Challenge

6日目には、 「Capture the Flag」 イベントを開催します。このイベントでは、1週間を通じて学習した内容に基づいて、さまざまな課題を取り上げます。リバースエンジニアリング、バグ発見、およびエクスプロイト作成のスキルを 「Capture the Flag」で試してみてください!

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