NRIセキュアではNews BitesやOUCH! を日本語に翻訳して皆さまにお届けしています。
購読制を採っておりますので、
ご希望の方は、ニュースレター登録からお申し込みください。
Advanced Penetration Testing, Exploit Writing, and Ethical Hacking
Penetration Testing and Ethical Hacking
2020年10月12日(月)~10月17日(土) (6日間)
1~5日目:9:00~19:00
6日目:9:00~17:00
オンライン
■通常価格:810,000円(税抜)
※上記試験費用は講義と同時お申し込み時のみ有効です。
※講義申込み完了後から講義開始までの間に追加でお申し込みいただく際には別途、事務手数料(1万円)が発生します。
※また講義開始後のお申し込みについてはこちらのページ(英語)を参照のうえ、SANS/GIACへ直接お申込みください。
演習で使用するノートPCをご準備下さい。受講に必要なPC環境についてご確認ください。
クラスの演習では、「VMware Workstation」または「VMware Fusion」などで仮想化環境を構築し複数のOSを実行する必要があります。VMwareのライセンス使用権を所有していない場合は、www.vmware.comから30日間試用版を無料でダウンロードできます。ウェブサイトで試用版に登録すると、期限付きシリアル番号がVMwareから送信されます。 Windows10仮想マシンおよびLinux仮想マシンと必要なツールは、コースの初日に提供します。
ウィルス駆除ソフトやパーソナルファイアウォールを含むすべてのセキュリティソフトウェアと保護を無効にする管理者権限があることを確認してください。この設定変更なしでは演習を完了することができないかもしれません。また、管理設定やセキュリティ設定上、通常ブロックされるようなソフトウェアがインストールできることも確認してください。さまざまなデバッガと脆弱なアプリケーションを仮想マシンにインストールします。
Macを使用する際の注意:「VMware Fusion」を用いることで、Mac OS XでもSEC660の演習を行えますが、実行しているFusionのバージョンや、システムに組み込まれている、もしくは接続されているハードウェアによっては、問題が発生する可能性があります。 このことから、OS X 10.6「Snow Leopard」以降が動作していなければなりません。また、デバッグの演習の際には、OS X上の仮想アプリケーションを介してF7やF9などのファンクションキーを割り当てる必要があります。
コースで使用するツールを含むUSBドライブが提供されます。このドライブはexFATでフォーマットされています。 LinuxまたはMac OS Xを使用する場合は、exFATファイルシステムを読み込むためのドライバがインストールされていることを確認してください。
ワークショップでは、最も危険なネットワークの1つに接続するため、あなたのPCが攻撃される可能性もあります。機密データ等はシステムに保存しないでください。クラス内の誰かがワークショップ中に攻撃した場合、SANSはあなたのシステムに対して一切責任を負いません。
PC仕様に関するその他のご質問は、laptop_prep@sans.orgまでお問い合わせください。
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、SNMPなどに対して実行されます。 2日目は、さまざまな暗号実装に対するペネトレーションテストの技術的な項目から始まり、ネットワークブート攻撃、chrootなどのLinux制限環境やWindows制限デスクトップ環境の回避などに進みます。 3日目は、ペネトレーションテストのためのPythonと、パケット生成のためのScapy、商用製品に対するセキュリティテスト、ネットワークとアプリケーションのファジング、コードカバレッジ技術を説明します。 4日目と5日目はLinuxおよびWindowsオペレーティングシステム上でプログラムをエクスプロイトすることに時間を費やします。このコースでは、特権プログラムの特定、コード実行のリダイレクト、脆弱コード特定のためのプログラムのリバースエンジニアリングや管理シェルアクセスのためのコード実行の取得、また、ROPやその他の手法を使ってASLR、カナリア、DEPなどの最新のオペレーティングシステムに実装されている制御手法を無効化する方法などを修得します。また、クライアント側のエクスプロイトも含むローカルおよびリモートエクスプロイト手法についても解説します。最終日は、多数の難題を解決するCapture the Flagを通じてペネトレーションテストの課題に専念していただきます。
SEC660の最大のメリットの1つは、豊富なラボと追加演習時に提供される専門家レベルの実践的なガイダンスです。
詳細なペネトレーションテストを実行するには、実際のますます洗練された攻撃者の活動を模倣しながら、攻撃をうまく回避するためのユニークで複雑なソリューションが必要な状況に直面することがよくあります。ソリューションを特定して実装するスキルがなければ、大きな脆弱性を見逃すなどビジネスへの影響を適切に判断できない可能性があります。標的とされるシステムの担当者は、環境が保護されているかどうかの判断をあなたに頼っています。攻撃者は常に一歩前を行っており、労力を要して展開した非常に優れた制御に関してさえも、それを無効化してくる可能性があります。このコースは、他の人が経験したミスを繰返さないように、標的を徹底的に診断するための最先端のテクニックを教え、エクスプロイトを開発するためのスキルを提供できるよう構築されたコースです。
コースに関するご質問がある場合は、stephen@deadlisting.comまでご連絡ください。
- Stephen Sims(Lead author)
1日目は、SEC560:Network Penetration Testing and Ethical Hackingから得た知識を基に、高度なネットワーク攻撃の授業を提供します。
まずは、盗聴や攻撃を行うための場所を得るために、ネットワークアクセスを得ることを試行します。ネットワーク機器を悪用したり、ネットワークインフラストラクチャの弱点を突いたり、クライアントの脆弱性を利用したりすることで、ネットワークを操作することに焦点を当てます。
2日目は、ペネトレーションテスト担当者が使用できる一般的な暗号化の抜け穴を調査し、攻撃するためのテクニックを戦術的に見ていくところから始めます。まずは、暗号がどのように動作するかについて基本的な知識を、複雑な数学で行き詰まることなく理解を深め、その後、実際の暗号化実装を識別、評価、そして攻撃をするためのテクニックに移っていきます。 ラボ演習では、日々現場で発生しているアプリケーションの脆弱性と関連した暗号攻撃技術を体験します。
その後は最新テクニックの修得が続きますが、2日目はエクスプロイト後の操作について重点を置いています。私たちは初期の攻略行為を足掛かりに、さらなるネットワークの弱点を利用し、または制限された環境を回避するために許可された機能を悪用していきます。まず、ホストに対するローカル制限の知識を固めるために、デスクトップとさまざまな制限を回避できる可能性がある制限について解説します。次に、攻撃を受ける可能性がある制限設定を構成した上で、ここまでの知識を活用してそれらを回避します。Windows制限回避の演習は、難読化とブラックリスト化に頼った攻撃阻止の制限に対するリスクの存在を実証するはずです。 エクスプロイト後の重要な部分として、PowerShellの基本的な概念とタスクやエンタープライズタスク、および徹底的な攻撃タスクについて説明します。Metasploitの代替として、PowerShell Empireを使用して特権に昇格し、ピボットや追加のペイロードを配布する方法を学びます。この日は、完全にパッチが適用された外部に対する脆弱性のない様々なシステムで構成された完全なネットワーク環境に対して、ブートキャンプに挑戦して終了します。
3日目は、ペネトレーションテストの創造的分析に必要な複数のスキルセットをまとめます。まず、製品のセキュリティテストについて説明します。その後はテスターとしてPythonを活用するための方法について重点的に取り組みます。Pythonに慣れていない受講生がスクリプトを修正して機能を追加できるよう手助けするとともに、熟練したPythonのスクリプト作成者のスキル向上の手助けすることを目的としています。演習ラボでPythonスキルを活用したのち、次にScapyを活用してカスタムネットワークをターゲットとしてプロトコル操作を行います。 Scapyを使用して、IPv6を含め、既存ツールの域を超えてネットワークトラフィックを送受信するための技術を検証します。次に、ネットワークプロトコルとファイル形式のファジングについて見ていきます。ファジングを利用して、一般的なネットワークプロトコルと有名なファイル形式の両方を対象にバグを発見します。実践的な演習にて、カスタムプロトコルのファジングコードを開発し、一般的なソフトウェアのバグを発見します。最後に、コードカバレッジの概念と、それがどのようにファジングと関連しているかについて慎重に検討し、PaimeiのリバースエンジニアリングフレームワークとIDA Proを使用してラボを行い、学んだ技術を実習します。
4日目は、攻撃者の観点からみたメモリとx86アセンブラのほか、メモリのローディングやリンクについて解説します。これらのトピックは、高度なレベルでペネトレーションテストを実行するすべての人にとって重要です。プロセッサのレジスタはテスターによって直接操作されるため、深く理解しておく必要があります。逆アセンブル(解析)はテストを実施する上で大変重要な部分であり、コースの後半でも再び出てくるテーマです。ついで、攻撃者の観点から見たLinux OSと、その権限昇格について解説します。SUIDプログラムやその他の脆弱性や誤設定の可能性を調査する方法について紹介し、Linuxアプリケーションのペネトレーションテストを実行する上で重要なテクニックに焦点を当ていきます。
また、権限昇格とコードの実行を行うために、Linux上でのスタックオーバーフローについて詳細を解説します。はじめにデバッガを使用して不十分なパスワードを暴き、次に、プログラム実行のリダイレクションからコード実行を行っていきます。バッファへのリターンやCライブラリへのリターン(ret2libc)などのテクニックについては、リターン指向プログラミングと同様、本コースで取り扱うテーマです。残りの時間は、スタックカナリアやアドレス空間配置のランダム化(ASLR)といったOSに実装されている保護機能を無効化、あるいはバイパスするテクニックもご紹介します。このセクションでは、現代のLinuxシステムが内包している一般的な問題を実際にテストによって明らかにすることが目的です。
5日目は、Windows環境に追加されたOSセキュリティ機能(ASLR、DEPなど)や、プロセス環境ブロック(PEB)、構造化例外処理(SEH)、スレッド情報ブロック(TIB)、およびWindowsアプリケーションプログラミングインターフェイス(API)といったWindows固有の構造について解説するとともに、LinuxとWindowsの違いについても説明します。これらのトピックは、Windowsベースのアプリケーションを評価する上でとても重要です。次に、Windows OS上で動作するプログラムに対するスタックベースの攻撃に焦点を当てていきます。アプリケーションの脆弱性を見つけた後、Immunity Debuggerを使用して、バクをコード実行と権限昇格へのチャンスに変えて行くのが目的です。また、データ実行防止(DEP)を無効にするなどの高度なスタックベースの攻撃手法についても解説するほか、一般的な攻撃として、クライアントに対する攻略手順なども紹介していきます。 さらにWindows 7、Windows 8、Windows 10上のハードウェアDEPとアドレス空間レイアウトのランダム化(ASLR)を無効化する方法を学び、脆弱なアプリケーションに対するリターン指向プログラミング(ROP)についても演習を通じながら理解を深めていただきます。また、、エクスプロイトをMetasploit Frameworkにポーティングするための方法をご紹介しますので、シェルコードに含まれる悪意のある文字列を迅速に判別し、プログラムへの入力としてどのように識別すべきか理解できるようになるでしょう。 最後に、LinuxとWindowsでのシェルコードの違いなど、シェルコードについて簡単にレビューを行い、ROPチャレンジに挑戦していただきます。
この日は、コースを通して学んだテクニックを活用しながら、既成概念にとらわれず単純なものから複雑なものまで様々な問題を解決できるように、いくつかの課題に挑戦していただきます。スコアリングのWebシステムとCapture the Flagエンジンが皆さんに提供され、フラグを獲得するとスコアが獲得できる仕組みです。より難しい課題に回答して正解すると、より多くの得点を獲得することができます。この攻撃練習の出題範囲は、LinuxおよびWindowsシステムでのローカル特権昇格からリモートエクスプロイトに至るまでの一連のプロセス、ネットワーク攻撃、および他コースで学んだ題材に関連する様々な課題が出題されます。