SECURITY 542

Web App Penetration Testing and Ethical Hacking
 

日程 2019年7月1日(月)~6日(土)(6日間)
講義時間 9:30 ~ 17:30
会場 秋葉原UDX 6階 MAP
講師 Hassan El Hadary(SANS認定インストラクター)>> 講師プロフィール
定員 40名  英語教材・同時通訳
CPEポイント 36 point
受講料 早期割引価格 720,000円(税抜) 通常価格:760,000円(税抜)
オプション GIAC試験 90,000円(税抜)
OnDemand 90,000円(税抜)
NetWars Continuous 157,000円(税抜)
Core NetWars:Experience 無料 2019年7月11日(木)~12日(金)開催

受講に必要なPC環境

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

SEC542 PC設定詳細

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

注意:実習のためのツール類をインストールすることによって、一部のシステムの動作に支障をきたす可能性があります。また、ネットワークへの接続を伴う実習内容があり、故意過失を問わず、自分のノートコンピュータのデータに他の受講生からアクセスされる可能性もあります。いずれの場合もSANSではデータの破損や読み書きに関して責任をとることはできませんので、重要なデータが格納されているノートPCでの実習はお控えください。

ノートパソコンのハードウェア要件
  • CPU:2GHz以上のプロセッサ
  • RAM:4GB以上(より多くを推奨)
  • USB:2.0以上
  • HDD/SSD:20GB以上の空き容量
  • NW:802.11無線LAN、Ethernet NIC(有線LAN、無線LANともに必要)
  • OS:Windows、Linux、Macのいずれか(VMware製品が正常に動くこと)
  • その他:USBメモリの読込ができること
  • その他:ホストOSのローカルアドミニストレーター権限
  • その他:ウィルス対策製品の停止、解除ができること
  • その他:ファイアウォールの停止、設定変更ができること
ノートパソコンのソフトウェア要件(下記を事前にインストールしてください)

VMware Workstation 9以上、VMware Player 5以上、VMware Fusion 5以上のいずれか

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

留意事項

このコースのワークショップでは、地球上で最も危険なネットワークのひとつに接続します。ご持参いただいたノートPCが攻撃を受けるかもしれません。したがって、システム上にいかなる機密情報も保存しないでください。演習中、他の受講者によって故意過失を問わずアタックを仕掛けられたとしても、SANSは一切の責任を負いません。要件を満たした機器を事前に正しく設定してご持参いただければ、このコースで習得する内容を最大限に活用し、楽しんでいただけることでしょう。

SANS Cyber Defence Japan 2019

7月1日(月)~6日(土)

7月8日(月)~13日(土)

7月11日(木)~12日(金)

 

コース概要

Webアプリケーションが多くの組織で重要な役割を果たしていることは、不正侵害やそれに伴うビジネス上の損失、データ漏えいなどの被害の実態を見れば明らかです。

残念ながら、多くの組織には、「脆弱性検知ツールを使用していれば、確実にシステムの欠陥を発見できる」という『誤った』考えがまん延しています。 SEC542は、犯罪者よりも早く、専門的なペネトレーションテストによって脆弱性を発見しその対策がとれることを目指します。単なるプッシュボタン式のツールによる侵入テストでは限界があることが十分認識できます。

お客様は、Webアプリケーションを通じて重要な機能やデータアクセスが提供されることを期待するようになりましたが、それにも増して、組織内で利用される業務アプリケーションもWebアプリ化しているのが一般的です。残念ながら、このような業務Webアプリケーションには、いわゆる「パッチ火曜日(patch Tuesday)」が適用できないことが多いため、Webアプリケーションの欠陥が重大な情報漏えいや不正侵害の温床になり続けています。攻撃者は、外部公開用のWebアプリケーションと同様に、高い情報価値を持った内部の業務アプリケーションもターゲットにしています。

最新のサイバー防衛では、Webアプリケーションのセキュリティ上の課題を現実的かつ徹底的に理解していなければ太刀打ちできません。Webに対するいくつかのハッキング技術を手軽に学ぶことはできますが、Webアプリケーションの侵入テストではより深くかつ体系化された手法が不可欠です。SEC542は、多くの組織を悩ませているWebアプリケーションのセキュリティ状況を正しく評価し、発見された脆弱性や欠陥の影響を実証するスキルを受講者に提供します。また、各自が所属組織に戻った後も継続してこれらのスキルが活用できるよう、フィールドテストプロセスや反復プロセスなども徹底的に学びます。

ある程度の技術力を持ったいわゆる「セキュリティオタク」は、組織のリスクを業務に関連付けて説明できません。侵入テストの技術の多くは、適切な対策を採用するように組織に働きかけるというよりも、攻撃者が行うのと同等の手法を習得するというリスクの側面の方が強調されがちです。SEC542の目標は、単に高度なハッキングスキルを習得することでなく、侵入テストを正しく活用して組織をより安全にすることです。

SEC542は、高品質なコースコンテンツに加えて、実践的な演習に強く焦点を当てています。経験豊かな世界クラスのインストラクター陣は、そのインストラクションスキルは当然のこと、実務スキルに精通したプラクティショナーとしても最高の能力を有しています。初日から5日目までの30以上の演習項目に加え、最終日には、Webアプリケーションの侵入テストを実行するためのCTF(Capture the Flag)イベントも行います。

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

  • Linuxコマンドラインに関する基本的な業務知識があること

受講対象者

  • ペネトレーションテスター/エシカルハッカー(侵入テストや脆弱性診断を実施しているセキュリティコンサルタントの方)
  • Webアプリケーション開発者
  • Webサイトデザイナー・設計者
※SEC542は、GIAC(GWAPT)認定試験対象コースです。

講義内容の一例

  • Webデバッグプロキシ
  • SQLインジェクション
  • ブラインドSQLインジェクション
  • 反射型クロスサイトスクリプティング(Reflected XSS)
  • 持続型クロスサイトスクリプティング(Stored XSS)
  • ローカルファイルインクルード(Local File Inclusion: LFI)
  • リモートファイルインクルード(Remote File Inclusion: RFI)
  • クロスサイトリクエストフォージェリ(CSRF/XSRF)
  • Day 1
  • Day 2
  • Day 3
  • Day 4
  • Day 5
  • Day 6
Day 1

Introduction and Information Gathering

攻撃者の観点を理解することは、Webアプリ侵入テストの成功の鍵です。1日目は、プロトコル、処理言語、サーバのアーキテクチャを含むWeb技術を、攻撃者の視点に立って綿密に学ぶことから始まります。また、ベーシック認証から、ダイジェスト認証、フォーム認証、統合Windows認証まで、種々の認証の方法を学び、サーバがこれらをどう利用し、逆に攻撃者がどう悪用するかを学びます。

これらに続き、Webアプリ侵入テストの実施プロセスを構成する4段階のステップ、すなわち情報収集、マッピング、発見とエクスプロイトについて議論を進めます。2日目以降、この4段階を掘り下げて学習しますが、1日目はまずこれらの基礎をなす原則を理解ししつつ、循環的な攻撃プロセスとしてどう統合するかを考えます。さらに、侵入テストの種類を整理して、テスト結果レポートがカバーすべき必須項目を説明していきます。

  • 侵入テスト担当者の観点から見たWebの概要
  • さまざまなサーバーとクライアントの探索
  • さまざまなWebアーキテクチャについて
  • セッション状態のしくみ
  • さまざまな種類の脆弱性について
  • WHOISとDNSを使った偵察
  • HTTPプロトコル
  • WebSocketSecure Sockets Layer(SSL)の設定と弱点
  • Heartbleedの悪用
  • Burp Suiteを利用したWebアプリケーションの診断
Day 2

Configuration, Identity, and Authentication Testing

2日目は、実際のテストのプロセスに則り、情報収集とマッピングの段階からスタートします。情報収集とは、対象となる組織とアプリに関する公開情報、対象アプリが稼働しているマシンの特定、関連する複数のサーバのOS、搭載ソフトや設定などのプロファイルをリストしていく過程です。講義では、実践的な実習で対象を探ることで議論を深めます。

マッピングの段階では、実際に「地図」、すなわちアプリのダイアグラムを描いてきます。これは、コンポーネントを特定してそれらの関係を分析し、どのように各要素が協調して動いているかを確定させる作業です。

マッピングフェーズでは、Webアプリケーションのインフラストラクチャコンポーネントの構成上の欠陥を発見するケースがあります。この種の脆弱性について議論した後、具体的にShellshockの脆弱性を、Burp Suite、cURL、および手動で検証し、実例を確認します。その後、Webアプリケーションのスパイダリング/クロールについて学びます。スパイダリングは、マッピングフェーズのみならず、ペネトレーションテスト全体を通じて必要となります。

  • Nmapによるスキャン
  • アプリケーション内のインフラストラクチャを発見
  • マシンとオペレーティングシステムの特定
  • 仮想ホスティングの調査とテストへの影響
  • ロードバランサを特定するための学習方法
  • ソフトウェア設定の発見
  • ウェブサイト巡回ツールの学習
  • リンクされていないファイルやディレクトリの強制探索
  • Shellshockの発見と悪用Web認証
  • ユーザ名の取得とパスワードの推測
  • ファジング
  • Burp Intruder
Day 3

Injection

3日目は、引き続き方法論に従いつつ、発見のフェーズへ進んでいきます。2日目までに収集した情報に、アプリ内の脆弱性を見つけて確認していく探索手法を練り合わせていきます。受講者は、さまざまな脆弱性の相互作用を探求して内容の分析を進めていきます。
主なトピックは、脆弱性発見のための手動テストのテクニックです。手動テストを容易にするために、Pythonの概要を理解することから始め、多くの時間をハンズオンラボに費やします。

カスタムスクリプトに加えて、Webアプリケーションの脆弱性を発見するためのWebデバッグプロキシの役割を理解することに焦点を当てます。3日目のハイライトは、伝統的なSQLインジェクションおよびブラインドSQLインジェクションの欠陥の両方での作業にかなりの時間を費やすことになるでしょう。

発見のフェーズ全体を通して、アプリ内の脆弱性を自動または手動で調べていきますが、どのような場合にどんな手法が有効かを議論します。

  • セッショントラッキング認証
  • バイパスの問題
  • Mutillidae
  • コマンドインジェクション
  • ディレクトリトラバーサルロ
  • ーカルファイルインクルード(LFI)
  • リモートファイルインクルード(RFI)
  • SQLインジェクションブラインド
  • SQLインジェクション
  • エラーメッセージを悪用したSQLインジェクション
  • SQLインジェクションを悪用する
  • SQLインジェクションツール
  • sqlmap
Day 4

XXE and XSS

4日目は、前日に引き続いて発見フェーズの方法論を模索していき、クロスサイトスクリプティング、クロスサイトリクエストフォージェリなどのWebアプリケーション内の主要な脆弱性を発見する方法をカバーします。これらを手動で検出する技術を、実践的な演習を通じて習得します。

また、AJAXやWebサービスの技術が攻撃可能領域をどのように拡大しているか、それをテスターとしてどう活用するかを詳細に吟味する内容も含まれます。既に見てきた脆弱性がAJAXやWebサービスに与える影響も考察します。

さまざまな脆弱性と手動での発見方法を解説した後、4日目は、ZAPおよびBurp Suiteによる手動検出手法を補完するために、様々な自動Webアプリケーション脆弱性スキャナについても学習します。

  • XML外部エンティティ(XXE)
  • クロスサイトスクリプティング(XSS)
  • ブラウザ開発フレームワーク(BeEF)
  • AJAXXMLとJSON
  • ドキュメントオブジェクトモデル(DOM)
  • ロジック攻撃
  • API攻撃
  • データ攻撃
Day 5

CSRF, Logic Flaws and Advanced Tools

5日目は、実在するアプリケーションに対して、実際にエクスプロイトを実施します。これまでの3段階で得た内容をもとに、対象のアプリケーションとネットワークに対しての足場をさらに広げます。ペンテスターとして既に発見している脆弱性をどう有効活用してアクセスを広げていくか、4段階の攻撃の方法論の循環的な本質に光をあてつつ学んでいきます。

演習では、ZAPやBurp Suiteなどのツールを更に活用すると共に、sqlmap、Browser Exploitation Framework (BeEF)、Metasploitなどを利用することで、様々なWebアプリケーションに対するエクスプロイトを行います。実際に、SQLインジェクション、クロスサイトスクリプティング(XSS)、クロスサイトリクエストフォージェリ攻撃などを行います。ここでは、これらの欠陥を悪用して、データの盗難、セッションのハイジャック、パスワード搾取、シェルの奪取、接続されたネットワークへの侵入などを行います。いろいろな形のエクスプロイトを通じて、受講生は組織に対するこれらの欠陥の潜在的なビジネスへの影響を鋭く理解することができます。

  • クロスサイトリクエストフォージェリ(CSRF)
  • Webアプリの侵入テスト用のPython
  • WPScan
  • w3af
  • Webペネトレーションテスター用のMetasploit
  • 攻撃を利用したシステムへのアクセス
  • Webアプリケーションを介して攻撃を仕向ける方法
  • Cookieを盗むためのアプリケーションの悪用
  • Webアプリケーションの脆弱性を介したコマンドの実行
  • ツールが機能しないとき
Day 6

Capture the Flag

6日目には、チームを組んで、Webアプリケーションに対するペネトレーションテストトーナメントで競争を行います。この、NetWarsで組まれたCapture the Flagの演習では、新しく身に付けたスキルや、これまでに持っていたスキルを活用して、質問に答えたり、ミッションを完了させたり、データを抽出したり、コースを通して得られたスキルを試す機会を提供します。チャレンジスタイルと統合されたヒントシステムにより、様々なスキルレベルの受講生が同時にゲーム環境を楽しむことができ、クラスで学んだスキルを固めることができます

このCTFでは、クラス内でローカルエリアネットワークを構築し、演習を行いますが、OnDemandをオプションでお申込みいただいた場合、4ヶ月に渡り、インターネット経由でこのCTF環境をご利用いただけます。


本サイトに記載されている、各会社名、各製品名は、各社の商標または登録商標です。