NRIセキュアではNews BitesやOUCH! を日本語に翻訳して皆さまにお届けしています。
購読制を採っておりますので、
ご希望の方は、ニュースレター登録からお申し込みください。
Web App Penetration Testing and Ethical Hacking
Penetration Testing and Ethical Hacking
English2023年2月27日(月)~3月4日(土)
1日目:9:00-17:30
2日目~6日目:9:30-17:30
オンライン
【為替差益還元キャンペーン※】1,080,000 円(税込み 1,188,000円)
※キャンペーン価格のため、他の割引の重複適用はできません。ご了承ください。
※オプションの価格は、コース本体と同時にお申し込みいただく場合のみ有効です。
※コース本体のお申し込み後から講義開始までの間に、GIAC試験オプションを追加される場合は、事務手数料10,000円(税込11,000円)をいただきます。
※講義開始後のGIAC試験のお申込みは、こちらのページ(英語)をご参照のうえ、GIACへ直接お申し込みください。
演習で使用するノートPCをご準備下さい。受講に必要なPC環境についてご確認ください。
SANSトレーニングを有意義に受講していただくには、以下の要件を満たすノートPCが必須です。下記要件を確認し、事前に必要な設定を完了しておいてください。セッション中には、下記の設定を実施する時間は設けられていません。必ず事前の確認・設定をお願いいたします。
授業の前にシステムをバックアップしておくことが重要です。また、機密データが保存されているシステムは持ち込まないことを強く推奨します。
重要な注意事項
CPU: 64-bit Intel i5/i7 2.0GHz以上のプロセッサ (M1/M2プロセッサ搭載のMacBooksは不可)
HDD/SSD:50GB以上の空き容量
ホストOS:Windows10/11、macOS 10.15.x以降、またはLinux最新版で、VMwareの仮想化ソフトをインストールしていること
注意:M1プロセッサ搭載のApple社製品は現時点で必要な仮想化を行うことが出来ないため使用できません。
ハードウェアの追加要件
以下の要件は、上記の基本要件に追加されるものです。
授業開始前に、仮想化ソフトウェアをインストールし、以下に示すハードウェアおよびソフトウェアの追加要件を満たしている必要があります。これらの説明をよく読み、それに従わない場合は、このコースに不可欠な実習に参加できないため、満足のいく授業が受けられないことになります。
・Wifi 82.11b/g/n または ネットワークアダプター
コースのメディアがダウンロード版で配信されるようになりました。授業で使用するメディアファイルは大容量で、40~50GBのものもあります。ダウンロードに必要な時間は様々な要因に左右されるため、所要時間を見積もることはできませんが、非常に時間がかかってしまう場合もあります。メールよりダウンロードリンクを取得したら、コースメディアのダウンロードを開始してください。コースメディアは授業初日すぐに必要になります。開始前夜などにダウンロードを開始すると、失敗する可能性が高くなりますので、時間に余裕をもってご準備ください。
SANSでは、PDF形式のテキストの提供を開始しました。さらに、一部のクラスではPDFに加えて電子ブックを使用しています。電子ブックを使用するクラスは今後増えていく予定です。セカンドモニターやタブレット端末を使って、授業の資料を見られるようにしておくと便利です。
Webアプリケーションが多くの組織で重要な役割を果たしていることは、不正侵害やそれに伴うビジネス上の損失、データ漏えいなどの被害の実態を見れば明らかです。
残念ながら、多くの組織には「脆弱性検知ツールを使用していれば、確実にシステムの欠陥を発見できる」という誤った考えがまん延しています。 SEC542は、犯罪者よりも早く、専門的なペネトレーションテストによって脆弱性を発見しその対策がとれることを目指します。単なるプッシュボタン式のツールによる侵入テストでは限界があることが十分認識できます。
お客様は、Webアプリケーションを通じて重要な機能やデータアクセスが提供されることを期待するようになりましたが、それにも増して、組織内で利用される業務アプリケーションもWebアプリケーション化しているのが一般的です。残念ながら、このような業務Webアプリケーションには、いわゆる「パッチ火曜日(Patch Tuesday)」が適用できないことが多いため、Webアプリケーションの欠陥が重大な情報漏えいや不正侵害の温床になり続けています。攻撃者は、外部公開用のWebアプリケーションと同様に、高い情報価値を持った内部の業務アプリケーションもターゲットにしています。
本コースではWebアプリケーションのセキュリティを評価し、発見された脆弱性を攻撃者が悪用した場合のビジネスへの影響を説明することができるようになります。最新のサイバー防衛では、Webアプリケーションのセキュリティ上の課題を現実的かつ徹底的に理解していなければ太刀打ちできません。Webに対するいくつかのハッキング技術を手軽に学ぶことは出来ますが、Webアプリケーションの侵入テストではより深くかつ体系化された手法が不可欠です。本コースでは初心者が専門的な侵入テスト担当者になるための情報とスキルを提供し、基礎的なギャップを全て埋めることができます。
このコースでは、一般的なWebアプリケーションの不具合を理解し、ビジネスへの潜在的な影響を示すための方法を理解します。その過程で、受講生はフィールドテストされた繰り返し可能なプロセスに従って、一貫して欠陥を見つけます。多くの情報セキュリティ専門家は、ビジネス用語を使ってわかりやすくリスクを説明するのに苦労します。一方で、組織がリスクを真剣に受け止め、適切な対策を講じなければ、そうしたハッキングをする価値はほとんどありません。SEC542の目標は、ペネトレーションテストによって組織のセキュリティを向上させることであり、ハッキングの技術を誇示することではありません。このコースでは、Webアプリケーションの脆弱性が実際にどのような影響を与えるか、ハッキングだけではなく、適切に文書化・レポートできるように受講生を導きます。。
SEC542は、高品質なコースコンテンツに加えて、実践的な演習に強く焦点を当てています。本コースでは30以上の実践的なラボを利用してWebアプリケーションの侵入技術を体験するほか、SANS Netwarsのサイバーレンジを利用したCTFトーナメントを実施します。このCTFでは受講者をいくつかのチームに分け、コースを通して習得した侵入テスト技術を駆使します。
ビジネス上の課題:
企業内で使われているWebアプリケーション脆弱性スキャナに意気消沈し、SEC542を参加される受講者は多いものです。ビジネスの側面からスキャンを行う立場にいる受講生たちは、1,000ページ以上のfalse-positiveが散りばめられた出力結果に立ち会うことさえあります。SEC542を教えていて最もやりがいを感じるのは、同じ受講生たちが、1週間で学んだスキルを自分の担当するアプリケーションに応用しようとする熱意を目の当たりにすることです。受講生は、押しボタン式のペネトレーションテストのアプローチではうまくいかないことを本質的に理解している一方、違ったやりかたでの評価を適切かつ効率的に行うための知識・スキルが不足しています。SEC542は、こうした問題を解決します。受講生は、主要なWebアプリケーションの欠陥についての深い知識を身につけ、それらを発見して悪用する方法と、それらの発見結果をインパクトのある方法で提示する方法を身につけて、このコースを完了することができます。
- Eric Conrad、Timothy McKenzie、Bojan Zdrnja
攻撃者の観点を理解することは、Webアプリケーション・ペネトレーションテストの成功の鍵です。1日目は、プロトコル、処理言語、クライアント、サーバのアーキテクチャを含むWeb技術を、攻撃者の視点に立って綿密に学ぶことから始まります。また、攻撃をより成功させるために役立つと思われるデータポイントに特化したオープンソースインテリジェンス(OSINT)の収集に注目します。そして暗号化と HTTPS の重要性を分析します。
次に、質の高い評価の提供を確実にするためにOWASPが推進している方法論と、ペネトレーションテスターのツールキットに必要なものを見ていきます。最も重要なツールであるプロキシツールは、OWASP の Zed Attack Proxy (ZAP) と BurpSuite Professional の初期設定手順を実行することで紹介されます。コースの一日を完了するために、BurpSuite を使用して脆弱性のあるウェブアプリケーションの側面を探ります。
セクション 1 の最後に、基本的な構成を理解するためのターゲットのプロファイリングを行います。収集したデータは、各サーバのプロファイルを作成し、潜在的な設定の欠陥を特定するために使用されます。また、管理されていないバーチャルホストを発見するための偵察を行う、いくつかの実践的なラボを通じて、議論を深めていきます。BurpSuite Pro、cURL、そしてnmapやtestssl.shのようなツールを使った手動によるエクスプロイト技術をより深く体験することができます。
最近のWebアプリケーションは、監視の目が行き届かないことが多く、攻撃者が誰にも気づかれずに脆弱性を発見し、それを利用する機会を与えてしまいます。
システムの設定について、セキュリティ関連のイベントを見逃さないように、適切なロギングとモニタリングを行う必要があります。ロギング設定と基本的なインシデント・レスポンステストについて簡単に説明します。
この日の講義では、アプリケーションのページと機能のマップまたはダイアグラムを作成します。コンポーネントを見つけ出し、コンポーネント間の関係を分析し、各コンポーネントがどのように連携するかを見出します。次に、侵入テストを通じての重要なパートであるスパイダリング/クロールの結果について詳しく学ぶとともに、隠しコンテンツを見つけるための強制ブラウジングについてラボで学びます。このラボでは、非常に高速なファザーであるffufも紹介しています。
2日目の終盤にかけては、Basic認証、Digest認証、Forms認証、Windows Integrated認証、OAuth認証を含むさまざまな認証システムを調べ、サーバがどのようにそれらを使用しているか、攻撃者がそれらをどのように悪用しているかを議論します。ユーザー名の列挙を行い、最後の演習では、Burpの「fuzzer」「Intruder」を使用して、Webアプリケーションへの認証に使用されるパスワードを推測します。ハンズオンを通じ、Burp Sequencerについても知識を得ていきます。そして最後に、認証と承認のバイパスについて説明します。このバイパスは、機密データの窃取、業務上の機能の不正利用につながる可能性があります。Mutillidaeの認証機能の欠陥を題材に学習します。
第2章で認証関連の演習を終えた後、第3章ではウェブサーバのレスポンスに含まれるセキュリティ関連の保護機能であるクッキーフラグやレスポンスヘッダについて学習します。
ターゲットのプロファイリング、スパイダー、強制ブラウジングの演習で特定された情報を基に、アプリケーション内の脆弱性を見つけて検証する方法を探ります。また、受講生は様々な脆弱性の間の相互作用を探り始めます。
さらに、脆弱性発見のための重要な手動テスト技術に深く取り組みます。そして、Webアプリケーションの脆弱性発見のためのインターセプト・プロキシの深い知識について焦点を当てます。最も一般的なインジェクションの欠陥(コマンド・インジェクション、ローカルおよびリモートファイル・インクルージョン)のいくつかを紹介し、発見と悪用について理解するためにラボの演習を続けます。
この他にも、オブジェクト指向プログラミング言語の一般的な脆弱性である、安全でないデシリアライゼーションについてのセクションがあり、受講生はラボでJavaの安全でないデシリアライゼーションの脆弱性を悪用し、脆弱なWebアプリケーションから秘密のファイルを盗むことに挑戦します。このラボではさらなる努力を必要とし、最終的な目標を達成するために一連の脆弱性について学びます。
なお、一日のうちのかなりの部分は、伝統的なSQLインジェクションとブラインドSQLインジェクションに費やします。
トピック
3日目にXXEの学習とその脆弱性について学んだ後、4日目はReflected XX, Stored XSS, DOM Baseなどのクロスサイトスクリプティングの脆弱性悪用について確認を続けていきます。
演習では手動による検知方法を学び、最新のWebアプリケーションのクライアント側のJavaScriptを分析する手段として、ブラウザの開発者用ツールを紹介します。
4日目の講義では、様々な演習で使用されているBrowser Exploitation Framework (BeEF) についても紹介します。AJAXについての詳細な説明をしつつ、侵入テスターが攻撃可能面を拡大するための方法を探ります。また、コースの前半ですでに詳細に説明した、他の脆弱性がAJAXに与える影響についても分析します。最後に、セクション 4 では、サーバサイドリクエストフォージェリ(SSRF)と XML 外部実体攻撃(XXE)を取り上げ、その両方に関連する演習を設けています。この演習でも複数の脆弱性が利用され、これまでに学習した内容も必要になります。
5日目は、現実的なアプリケーションに対して実際の攻撃を開始し、アプリケーション内における足場を広げて、その足場をきっかけにして対象のネットワークにまで攻撃を拡張します。ペネトレーションテスト担当者として、以前に発見された脆弱性を活用し、特にさらなるアクセス権を獲得する方法にフォーカスし、Webアプリケーション侵入テストの周期的な特性にハイライトします。
エクスプロイトの段階では、ZAPやBurpSuite Proなどのツールの使用をさらに拡張し、加えてsqlmapやMetasploitも使用し、様々なWebアプリケーションに対するエクスプロイトを行います。主にSQLインジェクションやクロスサイト・リクエスト・フォージェリ攻撃などを実行します。講義では、これらの欠陥を悪用して、データの窃盗、セッションの乗っ取り、ウェブサイトの改ざん、シェルの取得、接続されたネットワークに対するピボットなどを行います。様々な形での悪用を通じて、受講生はこれらの欠陥が組織に与える潜在的なビジネス上の影響を深く理解することができます。
また、ホワイトハッカーの間で人気の高いオープンソースの脆弱性スキャナツールNucleiを、NucleiとMetasploitを組み合わせたラボで紹介します。
コース全体としては、Webアプリケーションの脆弱性がどのように機能して、どのように悪用されるかを理解することを目的としていますが、5日目にはBurpSuite Proのアクティブ・スキャナー・コンポーネントも紹介します。
受講生が自分のスキルを次の段階にレベルアップするために、5日目の最後のラボでは、ターゲットのWebアプリケーションに存在することが分かっている脆弱性を悪用することを目的として、Metasploitモジュールが失敗した例に注目します。ここでは、欠陥を調査し、手動で脆弱性を悪用し、その後、シェルを取得するためにMetasploitモジュールを再構成するプロセスを探ります。この演習は、自動化されたツールが失敗した場合に、受講生がより深く掘り下げるために必要なスキルを提供します。
最後に、ペネトレーションテストの評価の準備の仕方や、レポート作成などの評価後の重要な活動を復習して、この日の内容を総括します。
トピック
6日目には、チームを組んで、Webアプリケーションに対するペネトレーションテスト・トーナメントを行います。この、NetWarsで組まれたCapture the Flagの演習では、新しく身に付けたスキルや、これまでに持っていたスキルを活用して、質問に答えたり、ミッションを完了させたり、データを抽出したり、コースを通して得られたスキルを試す機会を提供します。チャレンジスタイルと統合されたヒントシステムにより、さまざまなスキルレベルの受講生が同時にゲーム環境を楽しむことができ、クラスで学んだスキルを固めることができます。