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

SECURITY 660

Advanced Penetration Testing, Exploit Writing, and Ethical Hacking

Penetration Testing and Ethical Hacking

English
日程

2022年10月17日(月)~10月22日(土)

期間
6日間
講義時間

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

受講スタイル
ハイブリッド (LiveOnlineとOnsiteの同時開催)
会場

◆LiveOnline形式
オンライン

◆Onsite形式
 御茶ノ水トライエッジカンファレンス(https://try-edge.infield95.com/
 東京都千代田区神田駿河台4-2-5 御茶ノ水NKビル(トライエッジ御茶ノ水)11階

GIAC認定資格
GXPN
講師
Barrett Darnell|バレット ダーネル
SANS認定インストラクター
言語
英語 英語教材・同時通訳
定員
40名
CPEポイント
46 Points
受講料

1,050,000円(税込 1,155,000円)

申込締切日
2022年10月7日(金)
オプション
  • GIAC試験  135,000円(税込み 148,500円)
  • OnDemand  120,000円(税込み 132,000円)
  • NetWars Continuous  220,000円(税込み 242,000円)

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

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

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

受講に必要なPC環境

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

SEC660 PC設定詳細

重要!  手順にそってセットアップされたシステムをご用意ください!

このコースの全てに参加するには、適切にセットアップされたシステムが必要です。指示を注意深くお読みください。そうでないとこのコースの要となっている演習に参加できず、結果として満足に受講できなくなる可能性があります。指定されたすべての要件を満たすシステムをご用意いただくことを強くお勧めします。

コースへの参加の前にシステムをバックアップすることは非常に重要です。また、システムには重要情報を保存しないことを強くお勧めします。

PCの必須ハードウェア要件

  • OSWindows 10 ProMaxOS X 10.15またはLinuxの最新バージョン
    (M1プロセッサを搭載したApple製システムは、このコースで必要とする仮想化テクノロジーに現時点で対応していないため、利用ができません)
  • 有線イーサネットアダプタ - ラボで必要とします。
  • CPU:Intel i5/i7 x64 2.0+ GHzプロセッサ以上(64bit必須)
  • RAM:16GB以上(最小8GB以上)
  • 60GBのハードドライブ空き容量
  • USB:3.0 Type-Aポート

PCのその他要件

  • VMware Workstation Player 15.5VMware Fusion 11.5 または VMWare Workstation 15.5 以降のバージョン
  • システムの管理者権限を持っていることを確認
  • ご使用のCPUがVMwareのバージョンをサポートしていることを確認(コースが始まる前に必ずご確認ください)
  • エンタープライズVPNクライアントを一時的に無効にする事ができる
  • ウィルス対策ソフトウェアを無効に設定する事ができる

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

    SANSでは、PDF形式のテキストの提供を始めており、さらに、一部のクラスではPDFに加えて電子ワークブックを使用しています。電子ワークブックを使用しているクラスは急速に増えていくと思われます。このような新しい環境では、講師がプレゼンテーションを行っている間、あるいは演習に取り組んでいる間も授業の資料を確認できるようにしておくために、セカンドモニターやタブレット端末を利用すると効率が上がります。

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

SEC660 コース概要

SEC660は、SANS SEC560:Network Penetration Testing and Ethical Hackingコースを受講された方、またはペネトレーションテストの経験を既にお持ちの方々が、さらなるステップアップできるよう設計されたコースです。このコースの受講対象者は、最も経験豊富な全世界のペネトレーションテスターが実際に使用している、いくつもの攻撃方法を体験する事ができます。はじめに攻撃手順を学んだ後、コンセプトを確立するための実践的なラボ演習を行い、職場ですぐに活用できるように設計されています。また、さらなる技術的な熟練をめざし、コース各日に2時間の短期集中トレーニングが含まれています。コースでは、ペネトレーションテスター向けに必要なPythonの武器化のほか、ネットワークアクセス制御(NAC)や仮想ローカル・エリア・ネットワーク(VLAN)に対する攻撃、ネットワーク機器への攻撃や、LinuxおよびWindowsの制限付き環境からの脱却、IPv6、Linuxの特権昇格とエクスプロイト作成、暗号実装へのテストやファジング、また近年のOSによる制御機構であるアドレス空間配置のランダム化(ASLR)やデータ実行防止(DEP)の回避、リターン指向プログラミング(ROP)、Windowsエクスプロイト作成といった高度かつ広範なトピックを取り上げていきます。

近代の攻撃はより巧妙にそして複雑になっています。最新の攻撃方法を修得するためには、自身の学ぶ意欲や第三者からのサポート、そして練習などから得られる経験の蓄積が必要です。このコースでは、最も有力で優れた攻撃マインドに関する深い知識を提供し、多数の実践的なシナリオを通じて演習できる環境を提供します。簡単なスキャンニングを学ぶだけでなく、ペネトレーションテスト担当者に、高度な攻撃者が標的となる環境でどのようにして重大な欠点を見つけ出す事ができるかのサンプルを示したうえで、これらの弱点に関連するビジネスリスクを提示します。

SEC660では、応用的なペネトレーションコンセプトの紹介や今後に備える準備としての概要の説明から開始します。 1日目はテスターがあまり触れることのない一部のネットワーク攻撃に焦点をあてます。内容にはネットワークへのアクセス、操作、そして攻略方法などが含まれます。攻撃は、NAC、VLAN、OSPF、802.1X、CDP、IPv6、VOIP、SSL、ARPなどに対して実行されます。 2日目は、さまざまな暗号実装に対するペネトレーションテストの技術的な内容から始まり、ネットワークブート攻撃、chrootなどのLinux制限環境やWindows制限デスクトップ環境の回避などに進みます。 3日目は、ペネトレーションテストのためのPythonと、パケット生成のためのScapy、商用製品に対するセキュリティテスト、ネットワークとアプリケーションのファジング、コードカバレッジ技術を説明します。 4日目と5日目はLinuxおよびWindowsオペレーティングシステム上でプログラムをエクスプロイトすることに時間を費やします。このコースでは、特権プログラムの特定、コード実行のリダイレクト、脆弱コード特定のためのプログラムのリバースエンジニアリングや管理シェルアクセスのためのコード実行の取得、また、ROPやその他の手法を使ってASLR、カナリア、DEPなどの最新のオペレーティングシステムに実装されている制御手法を無効化する方法などを修得します。また、クライアント側のエクスプロイトも含むローカルおよびリモートエクスプロイト手法についても解説します。最終日は、多数の難題を解決するCapture the Flagを通じてペネトレーションテストの課題に専念していただきます。

SEC660の最大のメリットの1つは、豊富なラボと追加演習時に提供される専門家レベルの実践的なガイダンスです。

解説する主な内容:

  • ルータやスイッチ、NAC実装といったネットワーク機器に対する安全なペネトレーションテスト実施方法。
  • 暗号実装のテスト方法。
  • 一般権限を活用して、エクスプロイトや権限昇格を行う方法。
  • ネットワークとスタンドアロンアプリケーションに対するファジングテスト方法。
  • LinuxおよびWindowsシステムで実行されているアプリケーションに対するエクスプロイトコード作成方法。
  • ASLR、DEP、Stack Canariesなどのエクスプロイト対策をバイパスする方法。

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

このコースは講義の進行が速く、高度なペネトレーションテストや攻撃の技術を学ぶため、強い学習意欲を必要とする上級コースです。このコースを受講するには、下記のSANSコースを事前に、もしくは同時進行で受講することをお勧めします。
SEC504: Hacker Tools, Techniques, Exploits, and Incident Handling
SEC560: Network Penetration Testing and Ethical Hacking
プログラミングを経験している、またはプログラミング基礎の概念を最低限理解していることを強く推奨します。クラス演習での言語は主にPythonを使用しますが、攻撃で利用するのは主にCおよびC ++コードで書かれたプログラムです。Pythonの入門的な要素は学習しますが、プログラミングの基礎についてはこのコースでは扱いません。
また、このコースの受講には、ペネトレーションテストの基礎知識や LinuxとWindowsへの精通が必須であり、TCP/IPとネットワークの概念についても理解している必要があります。前提条件について不明な点がありましたら、stephen@deadlisting.comまでご連絡ください。

受講対象者

  • ネットワークおよびシステムペネトレーションテスト担当者:SEC660は、既知または未知のアプリケーション、サービス、およびネットワークシステムに対して高度なテストを実行するために必要なトレーニングを、ペネトレーションテスト担当者に提供します。また、複雑な攻撃を実行するための技術や、既存もしくは新しいフレームワークを活用してエクスプロイトを作成するための専門知識を受講者に提供します。
  • インシデント対応者:SEC660コースでは、インシデント対応者が攻撃の脅威レベルを分析し、標的型攻撃を理解するために必要となる知識を提供します。高度な攻撃を理解しコードを分析する能力は、インシデントの特定、検出および対応に役立ちます。
  • アプリケーション開発者:SEC660ではコーディングによる悪影響を学びます。多くの場合、開発者またはコードレビュアーは、コーディングエラーの脅威と影響を明確に示す必要があります。このコースでは、概念実証的な攻撃コードを作成し、その結果を文書化するための知識を開発者に提供します。
  • IDSエンジニア:SEC660はエクスプロイトコードを分析し、弱点を特定する方法を指導します。この知識は、より良いIDSシグネチャを作成し、アラートへの影響を理解するために使用できます。

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

講義内容の一例

  • OSPFなどのルーティング・プロトコルの実装に対するエクスプロイト
  • さまざまなNAC実装タイプのバイパス
  • パッチ更新機能に対するエクスプロイト
  • 中間者攻撃を悪用したSSLの無効化
  • IPv6攻撃
  • CBCビット反転攻撃やハッシュ伸長攻撃などを悪用した弱い暗号化実装へのエクスプロイト
  • ネットワークブート環境のハイジャック
  • 仮想化実装へのエクスプロイト
  • テストを自動化するPythonスクリプト
  • ソフトウェア製品の脆弱性やバグを検出するためのファジング
  • リバースエンジニアリングを用いたアプリケーションのコードソース、脆弱性のあるバグを特定
  • Linuxアプリケーションのデバッグ
  • Windowsアプリケーションのデバッグ
  • バッファオーバーフローの脆弱性に対するエクスプロイトの作成
  • ASLR、DEP、スタックカナリア、SafeSEHなどのエクスプロイト無効化技術のバイパス
  • ROPを使用したセキュリティコントロールのバイパスまたは無効化

コース開発者より

ペネトレーションテストを詳細に実行するにあたっては、日々洗練された攻撃者の活動を模倣しながら、攻撃をうまく回避するため複雑でユニークなソリューションを必要とする状況によく直面します。ソリューションを特定して実装するスキルがなければ、大きな脆弱性を見逃すなど、ビジネスへの影響を適切に判断できない可能性があります。標的とされるシステムの担当者は、環境が保護されているかどうかの判断をあなたに頼っています。攻撃者は常に一歩前を行っており、労力を要して展開した非常に優れたコントロールに関してさえも、それを無効化してくる可能性があります。このコースは、先人が経験したミスを繰返さないように、標的を徹底的に診断するための最先端のテクニックを教え、エクスプロイトを開発するためのスキルを提供できるよう構築されたコースです。
コースに関するご質問がある場合は、stephen@deadlisting.comまでご連絡ください。
- Stephen Sims(Lead author)

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

Network Attacks for Penetration Testers
ペネトレーションテスターのためのネットワーク攻撃

1日目は、SEC560:Network Penetration Testing and Ethical Hackingから得た知識を基に、高度なネットワーク攻撃についての講義を提供します。
まずは、盗聴や攻撃を行うための場所を得るために、ネットワークアクセスを得ることを試行します。ネットワーク機器を悪用したり、ネットワークインフラストラクチャの弱点を突いたり、クライアントの脆弱性を利用したりすることで、ネットワークを操作することに焦点を当てます。

トピック

  • ネットワークアクセス/アドミッション制御(NAC)のバイパス
  • アドミッションコントロールポリシーの例外を使用したデバイスの偽装
  • Ettercap (a free and open-source network security tool)とカスタムフィルターによるカスタムネットワークプロトコル操作
  • 中間者攻撃によりネットワークアクセスを獲得する複数の手法
  • ペネトレーションテスト担当者が押えておくべきIPv6
  • 悪意のあるルーティングアップデートを注入するためのOSPF認証に対する攻撃
  • sslstripツールでのSSLトランスポート暗号化セキュリティの乗っ取り

Crypto and Post-Exploitation
暗号化、エクスプロイト

2日目は、ペネトレーションテスト担当者が使用できる一般的な暗号化の抜け穴を調査し、攻撃するためのテクニックを戦術的に見ていくところから始めます。まずは、暗号がどのように動作するかについて基本的な知識を、複雑な数学で行き詰まることなく理解を深め、その後、実際の暗号化実装を識別、評価、そして攻撃をするためのテクニックに移っていきます。ラボ演習では、日々現場で発生しているアプリケーションの脆弱性と関連した暗号攻撃技術を体験します。

その後は最新テクニックの修得が続きますが、2日目はエクスプロイト後の操作について重点を置いています。私たちは初期の攻略行為を足掛かりに、さらなるネットワークの弱点を利用し、または制限された環境を回避するために許可された機能を悪用していきます。まず、ホストに対するローカル制限の知識を固めるために、デスクトップとさまざまな制限を回避できる可能性がある制限について解説します。次に、攻撃を受ける可能性がある制限設定を構成した上で、ここまでの知識を活用してそれらを回避します。Windows制限回避の演習は、難読化とブラックリスト化に頼った攻撃阻止の制限に対するリスクの存在を実証するはずです。 エクスプロイト後の重要な部分として、PowerShellの基本的な概念とタスクやエンタープライズタスク、および徹底的な攻撃タスクについて説明します。Metasploitの代替として、PowerShell Empireを使用して特権に昇格し、ピボットや追加のペイロードを配布する方法を学びます。この日は、完全にパッチが適用された外部に対する脆弱性のない様々なシステムで構成された完全なネットワーク環境に対して、ブートキャンプに挑戦して終了します。

トピック

  • 暗号実装へのペネトレーションテスト
  • CBCビットフリップ脆弱性のエクスプロイト
  • ハッシュ伸長の脆弱性へのエクスプロイト
  • ネットワークブートとPXEを使った悪意あるオペレーティングシステムのデバイスへの配信
  • 被害者としてのPowerShell
  • 攻撃者としてのPowerShell
  • PowerShellとMetasploitを使用したエクスプロイト後の操作
  • ソフトウェア制限ポリシーの回避
  • データ損失防止ツールによる、2時間半のCTF演習

Python, Scapy, and Fuzzing
Python、Scapy、ファジング

3日目は、ペネトレーションテストのクリエイティブな分析に必要な複数のスキルセットをまとめます。まず、製品のセキュリティテストについて説明します。その後はテスターとしてPythonを活用するための方法について重点的に取り組みます。Pythonに慣れていない受講生がスクリプトを修正して機能を追加できるよう手助けするとともに、熟練したPythonのスクリプト作成者のスキル向上の手助けすることを目的としています。演習ラボでPythonスキルを活用したのち、次にScapyを活用してカスタムネットワークをターゲットとしてプロトコル操作を行います。 Scapyを使用して、IPv6を含め、既存ツールの域を超えてネットワークトラフィックを送受信するための技術を検証します。次に、ネットワークプロトコルとファイル形式のファジングについて見ていきます。ファジングを利用して、一般的なネットワークプロトコルと有名なファイル形式の両方を対象にバグを発見します。実践的な演習にて、カスタムプロトコルのファジングコードを開発し、一般的なソフトウェアのバグを発見します。最後に、コードカバレッジの概念と、それがどのようにファジングと関連しているかについて慎重に検討し、PaimeiのリバースエンジニアリングフレームワークとIDA Proを使用してラボを行い、学んだ技術を実習します。

トピック

  • Pythonの種類について理解する
  • ペンテスターの現実的なタスクに活用できるPythonモジュールの使用
  • Scapyを使用したステートフルプロトコルの操作
  • Scapyを使用したカスタムのワイヤレスデータリークツール作成
  • 製品に対するセキュリティテスト
  • プロトコルの変更に対処するためのTaof (The art of fuzzing)の使用
  • スマートな標的選択によるファジング作業時間の最適化
  • Sulleyを用いたファジング中の標的監視自動化
  • AFL ++を使用したバイナリファジングとコードカバレッジの測定
  • DynamoRioを使用したブロックベースのコードカバレッジ手法

Exploiting Linux for Penetration Testers
ペネトレーションテスト担当者のためのLinuxエクスプロイト

4日目は、攻撃者の観点からみたメモリとx86およびx86-64アセンブラのほか、メモリのローディングやリンクについて解説します。これらのトピックは、高度なレベルでペネトレーションテストを実行するすべての人にとって重要です。プロセッサのレジスタはテスターによって直接操作されるため、深く理解しておく必要があります。逆アセンブル(解析)はテストを実施する上で大変重要な部分であり、コースの後半でも再び出てくるテーマです。ついで、攻撃者の観点から見たLinux OSと、その権限昇格について解説します。SUIDプログラムやその他の脆弱性や誤設定の可能性を調査する方法について紹介し、Linuxアプリケーションのペネトレーションテストを実行する上で重要なテクニックに焦点を当ていきます。

また、権限昇格とコードの実行を行うために、Linux上でのスタックオーバーフローについて詳細を解説します。はじめにデバッガを使用して不十分なパスワードを暴き、次に、プログラム実行のリダイレクションからコード実行を行っていきます。バッファへのリターンやCライブラリへのリターン(ret2libc)などのテクニックについては、リターン指向プログラミングと同様、本コースで取り扱うテーマです。残りの時間は、スタックカナリアやアドレス空間配置のランダム化(ASLR)といったOSに実装されている保護機能を無効化、あるいはバイパスするテクニックもご紹介します。このセクションでは、現代のLinuxシステムが内包している一般的な問題を実際にテストによって明らかにすることが目的です。

項目

  • Linux OS上でのスタックと動的メモリ管理と割り当て
  • バイナリの逆アセンブルとx86およびx86-64アセンブリコードの分析
  • Linux OSでのシンボル解決処理の実行
  • 脆弱なプログラムの特定
  • コード実行のリダイレクト
  • Linux OS上でのスタックベースのオーバーフローの特定と分析
  • スタックへのreturn-to-libc (ret2libc)攻撃の実行
  • リターン指向プログラミング (ROP)
  • Linux OSでのスタック保護の無効化
  • Linux OSでのASLRの無効化

Exploiting Windows for Penetration Testers
ペネトレーションテスト担当者のためのWindowsエクスプロイト

5日目は、Windows環境に追加されたOSセキュリティ機能(ASLR、DEPなど)や、プロセス環境ブロック(PEB)、構造化例外処理(SEH)、スレッド情報ブロック(TIB)、およびWindowsアプリケーションプログラミングインターフェイス(API)といったWindows固有の構造について解説するとともに、LinuxとWindowsの違いについても説明します。これらのトピックは、Windowsベースのアプリケーションを評価する上でとても重要です。次に、Windows OS上で動作するプログラムに対するスタックベースの攻撃に焦点を当てていきます。アプリケーションの脆弱性を見つけた後、Immunity Debuggerを使用して、バクをコード実行と権限昇格へのチャンスに変えて行くのが目的です。また、データ実行防止(DEP)を無効にするなどの高度なスタックベースの攻撃手法についても解説するほか、一般的な攻撃として、クライアントに対する攻略手順なども紹介していきます。引き続き、リターン指向プログラミング(ROP)の話題を取り上げ、脆弱なアプリケーションに対するテクニックを実演しながら、ハードウェアDEPやアドレス空間レイアウト無作為化(ASLR)、Windows 10などの攻略について考察しています。 最後に、LinuxとWindowsでのシェルコードの違いなど、シェルコードについて簡単にレビューを行い、ROPチャレンジに挑戦していただきます。

項目

  • WindowsにおけるOS保護の状態
  • 一般的なWindowsの構造の理解
  • Windows上でのスタックエクスプロイト
  • 追加されたWindows OS保護機能の無効化
  • Metasploitモジュール作成
  • Windows上の先進的なスタックスマッシュ
  • ROPの使用
  • DEPを無効化しASLRバイパスするためのROPチェーンの構築
  • Windows 10のエクスプロイト
  • クライアント側のエクスプロイト
  • Windowsシェルコード

Capture the Flag Challenge
Capture the Flag への挑戦

この日は、コースを通して学んだテクニックを活用しながら、既成概念にとらわれず単純なものから複雑なものまで様々な問題を解決できるように、いくつかの課題に挑戦していただきます。スコアリングのWebシステムとCapture the Flagエンジンが皆さんに提供され、フラグを獲得するとスコアが獲得できる仕組みです。より難しい課題に回答して正解すると、より多くの得点を獲得することができます。この攻撃演習では、LinuxおよびWindowsシステムでのローカル特権昇格からリモートエクスプロイトに至るまでの一連のプロセス、ネットワーク攻撃、および他コースで学んだ題材に関連する様々な課題が出題されます。

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