SECURITY 642 | ||||||||||||||||||||||||||||||||||||
Advanced Web App Penetration Testing, Ethical Hacking, and Exploitation Techniques |
||||||||||||||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||||||||||
受講に必要なPC環境
演習で使用するノートPCをご持参下さい。受講に必要なPC環境についてご確認ください。
SEC642 PC設定詳細
PCの必須ハードウェア要件
- x64互換のCPU、2 GHz以上を推奨
- 最低20 GBのハードドライブ空き容量
- 最低4 GB以上のRAM、8 GB以上のRAMを推奨
- 有線イーサネットアダプタ - 教室内のネットワークに接続します
- その他:USBメモリの読込ができること
- その他:ウィルス対策製品の管理者権限で停止、解除ができること
- ご使用のCPUがVMwareのバージョンをサポートしていることを確認 (コースが始まる前に必ずご確認ください)
PCのソフトウェア要件
以下のバージョンまたはそれ以前のVMwareを事前インストールする必要があります。
VMware Workstation Player 12、VMware Workstation Pro 12、VMware Fusion 8、またはVMware Fusion Pro 8を含みます。これらのいずれかを無料で30日間試用することができます。 ParallelsやVirtualBoxなど他の仮想化ソフトウェアについては、ご自身で対応することができれば使用する事ができます。 ただし、場合によってはVMwareをバックアップとしてインストールする必要があります。
留意事項
演習の一部では場合により一時的にアンチウィルスツールを無効にする必要があるため、アンチウィルス管理者権限を持っていることを確認してください。関連するサービスやプロセスが終了した場合でも、ほとんどのウィルス対策ツールは引き続き機能するため、多くのエンタープライズ管理クライアントでは、ウィルス対策ツールを無効にすると、管理者アカウントのパスワードとは異なるパスワードが必要になることがあります。
ワークショップでは、最も危険なネットワークの1つに接続するため、あなたのPCが攻撃される可能性もあります。機密データ等はシステムに保存しないでください。クラス内の誰かがワークショップ中に攻撃した場合、当社はあなたのシステムに対して一切責任を負いません。
PC仕様に関するその他のご質問は、laptop_prep@sans.orgまでお問い合わせください。
コース概要
SEC642:「Advanced Web App Penetration Testing, EthicalHacking, and Exploitation Techniques」コースは、SANS SEC542:Web App Penetration Testing and Ethical Hackingコースを修了した方、またはペネトレーションテストの経験を既にお持ちの方々が、さらなる論理的な進歩をなしとげられるよう設計されたコースです。
新たなる攻撃手法の猛攻撃に、あなたのWebアプリケーションは耐えることができるでしょうか?
最新のWebアプリケーションは、さらなる新技術を利用して、さらに重要な操作をサポートするに伴い、より洗練され複雑になりつつあります。長い間、基本的なHTMLのリクエストとレスポンスが用いられてきました。 Web 2.0とAJAXの時代でさえ、HTTPと最新のWebアプリケーションの複雑さは驚異的なスピードで進化しています。可用性の高いWebクラスタとクラウド導入の需要によりWebアプリケーションは、バックエンドインフラストラクチャの負担を軽減しながら、より小規模なパケットでより多くの機能が提供できることを目指しています。洗練された暗号化手法、WebSocket、HTTP/2などを含む時代へようこそ。 Webアプリケーションの評価と侵入テストのスキルは、これらの新技術を評価してより安全に対応できる準備ができているでしょうか?
最先端の技術を使ってWebアプリケーションをテストする準備はできていますか?
このペネトレーションテストコースでは、最新のWebアプリケーションや次世代技術のテストに必要な高度なスキルとテクニックを学ぶためのコースです。講義、現実の体験、実践的な演習を組み合わせて、実証済みの内部エンタープライズWebテクノロジのセキュリティをテストするテクニック、最先端のインターネット対応アプリケーションを学びます。 最終日は、過去5日間に得た知識を現実の技術に基づく環境でキャプチャ・ザ・フラッグ(CTF)を行います。
高度なWebアプリケーション開発技術の実践的な学習について
最初に、複雑なアプリケーションをすべて脆弱にする可能性のある高度な技術と攻撃を探ることから始めます。アプリケーション内で使用されている暗号化の種類を特定するテクニックや、それを悪用する方法について、 新しいWebフレームワークとWebバックエンドについて学び、Webアプリケーションに関する暗号化を探究し、Webで使用される実用的な暗号化について深く掘り下げます。受講生は、WebアプリケーションやモバイルアプリケーションなどのWebサービスの代替フロントエンドを見て、HTTP/2やWebSocketなどの新しいプロトコルを調べ、最終的には、Webアプリケーションのファイアウォール、フィルタリング、およびその他の保護技術を識別してバイパスする方法に焦点を当てます。
習得知識内容:
- 最新のWebフレームワーク、テクノロジ、バックエンドの脆弱性を発見して悪用する方法
- HTTP/2、WebSocket、Node.jsなどの特定技術をテスト、活用するためのスキル習得
- 最新のWebアプリケーションで、暗号化の多用途における脆弱性の評価と発見方法
- エンタープライズで使用されるモバイルバックエンドおよびWebサービスをテストおよび評価するためのスキル習得
- カスタム開発、Webフレームワーク、およびWeb Application Firewallを用いた防御を認識してバイパスする方法
コースメニューへ▲ ページトップへ▲
本講座受講にあたっての前提
このコースでは、Webの現行技術と方法論について十分に理解していることを前提とする上級コースです。 このため、HTTPプロトコル、HTML、およびWebアプリケーションに精通している必要があります。 Webペネトレーションテストの経験、GWAPT認定の完了、または下記SANSコースの受講などが前提となります。
SEC542: Web App Penetration Testing and Ethical Hacking
コースメニューへ▲ ページトップへ▲
受講対象者
- Webペネトレーションテスト担当者
- Redチームメンバー
- 脆弱性評価担当者
- ネットワークペネトレーションテスト担当者
- セキュリティコンサルタント
- 開発者
- 品質テスター
- システム管理者
- IT管理者
- システムアーキテクト
コースメニューへ▲ ページトップへ▲
習得内容一例
- Cross-Site Request Forger(XSRF)の発見と活用と組み合わせた高度なローカルファイルインクルージョン(LFI)/リモートファイルインクルージョン(RFI)、ブラインドSQLインジェクション(SQLi)、クロスサイトスクリプティング(XSS)
- Mass Assignment、タイプジャグリング、オブジェクト直列化など、ほとんどのバックエンド言語に共通する高度な脆弱性を利用する
- ExpressJS、Node.js、NoSQLに対してJavaScriptベースのインジェクションを実行する
- SharePointやWordPressなどのコンテンツ管理システムの特別なテスト方法を理解する
- Webアプリケーションおよびフレームワーク内での暗号化実装の特定と活用
- SOAPまたはREST Webサービスおよびその他のデータストアのXMLエンティティおよびXPathの脆弱性を発見する
- ツールとテクニックを使用したHTTP/2とWebSocketに対するエクスプロイト
- システム悪用のためのWeb Application Firewallやアプリケーションフィルタリングテクニックの識別とバイパス
様々な攻撃に対して、Webアプリケーションとそのモバイル対応製品がより複雑で強化されるに伴い、ペネトレーションテスト担当者はこれらシステムのセキュリティを評価するために使う技術とツール類を絶えず更新しなくてはいけません。 その対応には、さまざまな新技術の仕組みの理解、HTTP/2やNoSQLのような最先端技術で動作するツール、Web Application Firewall検査など特殊なペンテストの実行方法、アプリケーションの最大影響を実証するカスタムエクスプロイトの実行方法などが含まれます。このコースは、方法論を超えた高度なウェブペネトレーションテストの課題を提示されたときの「方法」を分析し、より難解な「なぜこれらの技術とツールが機能するのか」を掘り下げることで、必要に応じた評価が行えるようになるでしょう。
- Justin Searle
「SANS SEC 642:Advanced Web App Penetration Testing, EthicalHacking, and Exploitation Techniques」は、他の下位コースを終えた後に選ばれるコースとなっています。このコースでは、新たな方法で脆弱性を特定し悪用するために使用されるツールと手法について詳細に調べていきます。Webアプリケーションの侵入テストに於いては、全く新しいより高度なレベルにまで高めています。 私はいつも情報セキュリティコミュニティに投資、還元することは、他の何よりも私のキャリアに恩恵をもたらしていることを常に見出してきました。そして、私たちが作り上げたこのコースを楽しんで頂けることを願っています。
- Adrien de Beaupre
高度な攻撃
アプリケーションとその脆弱性がより複雑になるにつれて、ペンテスターは先進的なターゲットに対応できなければなりません。 始めにアプリケーションのペンテスト練習からコースを開始します。 この練習問題をレビューした後、LFI/RFIやSQLiといった、サーバーベースの欠陥のための、より高度な技術を幾つか探求します。次に、XSSとXSRFを組み合わせた攻撃に挑戦します。そこでは、2つの脆弱性を活用してより大きな効果を得ることで、その欠陥を発見した後は、さらなる手段でこれらの欠陥を悪用するさまざまな方法で操作を行います。 この先進的なテクニックは、これらの脆弱性を高度でカスタムなエクスプロイトを通じて、ペンテスターが組織に明示する為の方法を見出すのに役立ちます。
演習
- ウォームアップ演習
- ファイルインクルージョンの利用
- ブラインドSQLiの活用
- XSSとXSRFの組み合わせ
トピック
- テスト方法の見直し
- Web侵入テストでBurp Suiteを使用する
- ローカルおよびリモートファイルインクルージョンを利用する
- SQLインジェクションやその他のサーバーベースの欠陥に関する高度な検出手法の検討
- 複合攻撃におけるXSSとXSRFの高度な利用を検討する
- 高度なエクスプロイト技術の学習
Webフレームワーク
今日の複雑なWebアプリケーションの高度な技術とエクスプロイト技術を引き続き探求していきます。バックエンド言語で書かれたWebアプリケーションに影響を与える可能性のある脆弱性を見て、アプリケーション、特にMass Object Assignmentのロジックの欠陥が、セキュリティにどのように壊滅的な影響を及ぼす可能性があるかを調べます。バックエンドプログラミング言語のコア開発チームが行った前提を掘り下げ、タイプジャグリングとオブジェクト直列化を使用して、変数のデータ型を処理するだけでもWebが活用されていることについても学びます。次に、さまざまな一般的なアプリケーションとフレームワーク、およびWeb侵入テストの中で発見手法をどのように変更するかを検討します。この一部は、ブラウザ、Webサーバー、およびバックエンドのNoSQLストレージからJavaScriptが活用されるMEANスタックのような最先端の技術に結びつきます。最後のセクションでは、SharePointやWordPressなどのコンテンツ管理システムで、テスターにとってより複雑で実りあるテストを行う、ユニークなニーズと機能を備えたアプリケーションを検証します。
演習
- CakePHPでのMass Assignment
- PHPでの認証バイパス
- MEANスタック攻撃
- SharePoint
- WordPress
トピック
- Webアーキテクチャ
- Webデザインパターン
- 言語とフレームワーク
- JavaとStruts
- PHP型ジャグリング
- ロジックの欠陥
- オブジェクト直列化に対する攻撃
- MEANスタック
- コンテンツ管理システム
- SharePoint
- WordPress
Web暗号化手法
暗号の弱点はWebアプリケーションでは主要な脆弱性の分野ですが、これらの欠陥を調査、攻撃、悪用する能力を持つペンテスト担当者はごく僅かです。 Webアプリケーションの暗号攻撃を調べる際には、一般的に現代のWebアプリケーションでの暗号化の実装と使用をターゲットとしています。 一般的なWebプログラミング言語や開発フレームワークは、開発者が暗号化サービスを利用できるようにしています。 多くの場合、暗号化されたデータが攻撃されるのを防ぐことはできません。また、開発者が脆弱な方法で暗号を使用してしまうケースもあります。こうした実装ミスは、暗号アルゴリズム自体の不備の利用とは対照的に、このセクションでの焦点となります。 また、アプリケーションが暗号化やハッシングを安全に使用しないさまざまな方法についても検討します。 受講生は、暗号化の種類の特定から、暗号化やハッシング技術におけるさまざまな欠陥の利用に至るまで、さまざまなテクニックを学びます。
演習
- 暗号化の分析
- データエンコーディングにおける不明瞭な作業
- バックエンドシステムによって選択された脆弱なキーを利用する
- ストリーム暗号を攻撃する
- WebアプリケーションでのECBシャッフルの発見と活用
- WebアプリケーションでのCBCビット反転の検出と活用
- WebアプリケーションでのパッディングOracle攻撃の発見と活用
トピック
- Webアプリケーションで使用される暗号化の識別
- 暗号化キーの分析と攻撃
- ストリーム暗号IVの衝突の利用
- ブロックシャッフルを使用したECB(Electronic Codebook)モード暗号の活用
- ビット反転を使用したCBC(Cipher Block Chaining)モードの活用
- PKCS#7パディング実装の脆弱性
代替Webインターフェイス
Webアプリケーションは従来のHTMLベースのインターフェイスに限定されなくなりました。 Webサービスとモバイルアプリケーションは一般的になり、クライアントや組織を攻撃するために定期的に使用されています。 したがって、ペネトレーションテスト担当者は、これらシステムのセキュリティを評価する方法を理解することが非常に重要になっています。 ここでは、Flash、Java、Active X、およびSilverlightの欠陥を検証します。 アプリケーションとバックエンドシステム内の欠陥を発見するためのさまざまな手法を探求します。 これらのテクニックでは、Burp Suiteやその他の自動ツールセットなどのツールを使用します。 演習では、HTTP/2やWebSocketの新しいプロトコルを探り、それぞれのプロトコルに含まれる欠陥を利用します。
演習
- カスタム化されたペンテスターのリクエストのWiresharkストリーム展開
- Flashオブジェクトの逆コンパイル
- SOAPベースのWebサービスの利用
- SocketToMeを用いたWebSocketの利用
- H2OのHTTP/2実装における弱点の発見
トピック
- Webサービスおよびモバイルアプリケーションからのトラフィックのインターセプト
- Flash、Java、ActiveX、およびSilverlightの脆弱性
- SOAPおよびREST Webサービス
- Webサービスの侵入テスト
- WebSocketプロトコルの問題と脆弱性
- 新しいHTTP/2プロトコルの問題と侵入テスト
Webアプリケーションファイアウォールとフィルタのバイパス
今日のアプリケーションでは、多くのセキュリティコントロールを使用して攻撃を防ぎます。 Webアプリケーションファイアウォールやフィルタリング技術など、これらのコントロールにより、ペネトレーションテスターのテストがより困難になります。 これらのコントロールは、欠陥を発見するために使用される多くの自動ツールと容易な手法をブロックします。 本日は、コントロールのマップに使用される手法と、そのコントロールが攻撃をブロックするように設定されている方法について調べていきます。 ルールセットをマップして、Webアプリケーションファイアウォールがどのように攻撃を検出したかを特定することができます。 このマッピングは、コントロールをバイパスする攻撃を判断するために使用されます。 HTML5、UNICODEなどのエンコーディングを使用して、保護されたアプリケーション内で検出手法を使用できるようにします。
演習
- NET FrameworkとModSecurity Web Application Firewallの防御の違い比較
- ModSecurityルールの分析と意図的なルールのトリガー
- 防御しにくいWebの脆弱性に基づいたテストとフィンガープリントの防御
- XSSの防御を通じた複合データURIの処理
- sqlmapのカスタム改ざんスクリプトによるSQLインジェクション防御のバイパス
トピック
- Webアプリケーションのファイアウォールとフィルタリング技術の理解
- アプリケーションを保護するルールセットの決定
- 使用された防衛技術のフィンガープリント
- HTML5インジェクションの仕組みを
- UNICODE、CTYPE、およびデータURIを使用した制限のバイパス
- Web Application Firewallの最も守られた脆弱性、XSSとSQLiのバイパス
Capture the Flag
最終日は、ネットワーク上に配置された全ての侵入テストを完了させるための機会が与えられます。 この練習での目標は、過去5日間に学んだテクニック、ツール、方法論を探求することです。 現実的なエクストラネットとイントラネットに対してこれらのスキルを使用することができます。 最後に、テストを完了するために従った調査結果と方法論を発表していただきます。 受講生には、Samurai Web Testing Framework(SamuraiWTF)を含む仮想マシンが提供され、このコースや、仕事に戻った後でも使いながら復習することができます。