NRIセキュアではNews BitesやOUCH! を日本語に翻訳して皆さまにお届けしています。
購読制を採っておりますので、
ご希望の方は、ニュースレター登録からお申し込みください。
Advanced Web App Penetration Testing, Ethical Hacking, and Exploitation Techniques
Penetration Testing and Ethical Hacking
English2021年11月29日(月)~12月4日(土)
1日目:9:00-17:30 (日本時間)
2日目~6日目:9:30-17:30 (日本時間)
オンライン
■通常価格:880,000円(税込み:968,000円)
演習で使用するノートPCをご準備下さい。受講に必要なPC環境についてご確認ください。
このコースに完全に参加するには、適切に構成されたシステムが必要です。これらの指示を注意深く読み、従わないと、このコースに不可欠な実践的な演習に参加できないため、講義への参加を満足できないままにしてしまう可能性があります。したがって、指定されたすべての要件を満たすシステムをご用意いただくことを強くお勧めします。
Windows 10、macOS 10.15.x以降、またはLinuxの最新バージョンで、後述するVmwareの仮想化製品をインストールして実行できること。最新のUSB 3.0デバイスを利用するために適切なドライバとパッチがインストールされていることを確認するため、講義の開始前にホストオペレーティングシステムを完全に更新する必要があります。Linuxホストを使用するユーザーは、適切なカーネルまたはFUSEモジュールを使用してexFATパーティションにアクセスできなければなりません。
注:M1プロセッサーを使用しているAppleシステムは、現時点では必要とする仮想化を実行できないため使用できません。
VMware Workstation Pro 15.5.x、VMware Player 15.5.x、またはFusion 11.5.x以降のバージョンを講義の開始前にダウンロードしてインストールします。VMware WorkstationまたはFusionのライセンス版を所有していない場合は、VMwareから無料の30日間試用版をダウンロードできます。VMwareのWebサイトでトライアルに登録すると、期限付きのシリアル番号が送信されます。
VirtualBoxやHyper-Vなどの他の仮想化ソフトウェアは、講義中、互換性に関する問題やトラブルシューティング上の問題が発生する可能性があるため、適切ではありません。
Windows 10上のVMware Workstation ProやVMware Playerは、Windows 10 Credential GuardやDevice Guardテクノロジーとの適合性がありません。システムでこれらの機能が有効になっている場合は、このドキュメント(https://sansorg.egnyte.com/dl/wO5QUU3BK5/Power_Computing_-_Generic_Laptop_Requirements_Checklist_v2.0.docx_)の指示に従って、講義の期間中は機能を無効にしてください。
このコースでは通常必要ありませんが、演習によってはアンチウイルスツールを一時的に無効にする必要がある場合があります。そのためにはアンチウイルスツールの設定ができる管理者権限が必要です。ほとんどのアンチウイルスツールは関連するサービスやプロセスが終了しても機能するため、アンチウイルスツールのサービスやプロセスを終了するだけの計画は立てないでください。多くの企業向け管理クライアントでは、アンチウイルスツールを無効にするために、Administratorアカウントのパスワードとは異なるパスワードを必要としています。アンチウイルスツールの管理者パスワードをご用意ください。
演習では、講義用のネットワークに接続します。いかなる攻撃も、演習のルールやSANSの倫理ポリシーに違反することですが、お持ちのノートパソコンが攻撃されてしまう可能性があります。システムに機密データを保存しないでください。受講生の誰かがワークショップであなたのシステムを攻撃したような場合においても、SANSは責任を負いません。
適切なノートPCを持ってきて事前に準備しておくことにより、このコースを通じた発見・学びが最大化され、同時に多くの楽しみが得られることでしょう。
コースメディアはダウンロードで配信されます。授業で使用するメディアファイルは大容量で、40~50GBのものもあります。ダウンロードに必要な時間は様々な要因に左右されるため、所要時間を見積もることはできませんが、非常に時間がかかってしまう場合もあります。メールよりダウンロードリンクを取得したら、コースメディアのダウンロードを開始してください。コースメディアは授業初日すぐに必要になります。開始前夜などにダウンロードを開始すると、失敗する可能性が高くなりますので、時間に余裕をもってご準備ください。
SANSでは、PDF形式のテキストの提供を開始しました。さらに、一部のクラスではPDFに加えて電子ブックを使用しています。電子ブックを使用するクラスは今後増えていく予定です。セカンドモニターやタブレット端末を使って、授業の資料を見られるようにしておくと便利です。
最新のWebアプリケーションは、新しいテクノロジを採用して、洗練され、より重要な業務をサポートするように複雑になっています。ベーシックなHTMLによるリクエストとレスポンスの時代はとっくに過ぎ去っています。HTTPというプロトコルや最新の複雑なWebアプリケーションは、驚異的な速さで進化していっています。高可用性Webクラスタや、クラウド導入への期待を受け、Webアプリケーションはバックエンドインフラストラクチャへの負荷を軽減しつつより小さなパケットで多くの機能を提供することを志向しています。暗号化、WebSockets、HTTP/2など、さまざまな要素が登場する新しい時代へようこそ。あなたが今現在持っているウェブアプリケーションの評価・ペネトレーションテストのスキルは、このような印象的な新技術を評価して安全を確保するのに十分ですか?
このペネトレーションテストに関するトレーニングでは、最新のWebアプリケーションと次世代のテクノロジーをテストするのに必要となる高度なスキルと技術について学習します。このコースでは、講義、実環境での経験、実践的な演習を組み合わせ、長期間稼働し続けているような自社開発のWebシステムから最先端のインターネット対応アプリケーションまで、セキュリティをテストするための手法について説明します。最終日のコースでは Capture-the-Flag コンテストが開催されます。このコンテストでは、それまでの5日間で習得した知識を、実際のテクノロジーをベースに作られた興味深い環境で試してみることができます。
このコースでは、まず、現代の複雑なアプリケーションの多くが脆弱性をかかえているであろうと考えられる高度な攻撃テクニックについて調べていきます。最新のWebフレームワークやWebバックエンドについて学び、Webアプリケーションに関連する暗号化について調べ、Webで使用されている暗号化についても深く掘り下げていきます。具体的には、アプリケーション内で使用されている暗号化の種類を識別するための技術や、暗号化を悪用する方法などを学んでいきます。次に、Webアプリケーションやモバイル・アプリケーションなどのフロントエンドについて確認し、HTTP/2やWebSocketなどの新しいプロトコルを確認していきます。コースの最後のセクションで行われるCapture-the-Flagコンペティションの前には、Webアプリケーションファイアウォール、フィルタリング、およびその他の保護技術などをバイパスする方法について焦点を当てていきます。
Webペネトレーションテストのテクニックと方法論をしっかり理解していることが参加の前提条件です。受講生は、HTTPプロトコル、HTML、およびWebアプリケーションに精通している必要があります。最低1~2年間のWebペネトレーションテストの経験や、GIAC GWAPT認定の取得、SANS SEC 542コースの受講経験などがこれらの前提条件を満たしています。
SANS SEC 642:Advanced Web Application Penetration Testing, Ethical Hacking, and Exploitation Techniqueでは、他のコースでは扱っていないような内容について取り扱っています。最新のアプリケーション、最新のプロトコル、そして最新の攻撃について検討していきます。また、新たな脆弱性の特定・悪用において使用されるツールやテクニックを詳細に調べていきます。このコースの受講により、Webアプリケーションのペネトレーションテストのレベルをまったく新たで高度な次元にまで引っ張り上げます。私は常々、情報セキュリティコミュニティに恩返しをすることが、他の何より自分のキャリアにプラスになっていると感じてきました。これが私たちが他のみんなに "Pay It Forward" する (他者からの親切による恩を次へとつなげていく)やり方です。受講生の皆さんには、私がこのコースを開発していたときと同じくらい楽しんでいただけたらと思います。
- Adrien de Beaupre
アプリケーションとその脆弱性がより複雑になってゆく一方で、ペネトレーションテスターは高度なターゲットに立ち向かうことができなければなりません。講義の始まりでは、Document Object Model (DOM) に基づいたクロスサイト・スクリプティングを使用し、クロスサイト・リクエスト・フォージェリ (CSRF) トークンを盗用する小規模アプリケーションのペネトレーションテストからウォーミングアップしていきます。このテストについてレビューをした後、MongoDBのNoSQLインジェクションによるサーバの脆弱性に対する、より高度なテクニックをいくつか紹介します。次に、Server-Side Request Forgery (SSRF) 、Lightweight Directory Access Protocol (LDAP) インジェクション攻撃、およびSecurity Markup (SAML) Single Sign On (SSO) の権限エスカレーションについて説明します。HTTP Desync攻撃は、リクエスト・スマグリング攻撃とも呼ばれ、Webアプリケーションファイアウォール (WAF) をバイパスすることを可能にします。これらの脆弱性を発見した後、現在一般的に使用されている方法以外のさまざまな方法で脆弱性を悪用してゆきます。こうした高度な技術は、ペネトレーションテストの担当者が高度にカスタマイズされたエクスプロイトによる脆弱性について組織に説明していく方法を見出すために役立つことでしょう。
暗号化の不備がウェブアプリケーションの脆弱性の主な要因である一方、その欠陥を調査し、エクスプロイトに利用するだけのスキルを持つペネトレーションテスターはほとんどいません。Webアプリケーションの暗号化に対する攻撃を調査する場合、Webアプリケーションでの暗号化の実装と使用を対象とするのが一般的です。一般的なWebプログラミング言語や開発フレームワークの多くでは、開発者が暗号化のサービスを利用できるようになっています。ですが、多くの場合、暗号化されたデータが攻撃から保護されていないか、開発者による暗号化の利用の仕方によって脆弱なものになっています。この日の講義では、暗号アルゴリズム自体の欠陥をエクスプロイトに利用するのではなく、こうした実装の誤りに焦点を当てます。また、暗号化や、安全でない方法でハッシュを使用しているアプリケーションの様々な例についても説明します。受講生は、暗号化のタイプの識別から暗号化やハッシュ技術におけるさまざまな欠陥の使ったエクスプロイトに至るまで、様々な技術を学んでいきます。
Webアプリケーションは、従来のHTMLベースのインタフェースだけに限らなくなっています。Webサービスやモバイルアプリケーションは世の中で一般的になっており、企業や組織を攻撃するために頻繁に利用されています。したがって、ペネトレーションテストの担当者がそうしたシステムのセキュリティを評価する方法を理解することが非常に重要になっています。この日の講義では、アプリケーションやバックエンド・システム内の欠陥を発見するためのさまざまな手法を、Burp Suiteやその他の自動化ツールを使って確認していきます。ラボ演習では、HTTP/2やWebSocketなど最新のプロトコルについて学習し、それらのプロトコルで露呈している脆弱性を使ったエクスプロイトを行います。次に、モバイルバックエンド、Representational State Transfer (REST) およびSimple Object Access Protocol (SOAP) 、Application Programming Interfaces (API) 、Graph Query Language (GraphQL) 、XML XPathインジェクション、およびXML External Entity (XXE) 攻撃について学習していきます。
この日の講義では、フレームワークと言語の根底となっているインフラの調査を開始します。すべてはポピュラーなフレームワークのアーキテクチャについて探求するところから始まります。Mass Assignmentのようなフレームワークで新たに発見されたばかりのアーキテクチャ上の脆弱性などについても取り上げていきます。Node JSを使ったサーバーサイドJavaScriptフレームワークのような新しいフレームワークには、いくつかのエクスプロイトの選択肢があります。受講生は、脆弱性を悪用してJavaScriptコードのブロックをフレームワークの内部に追加し、システム全体を乗っ取る方法を探求していきます。次に、Modern PHPについて見ていきます。PHPはかなり非難を受けている言語ではありますが非常に人気があります。Modern PHPを調べてみると、型推論のバグによる問題点が悪用され、システム操作やコントロールのバイパスにつながる可能性があることがわかります。次に、PHP Deserializationのバグについて説明します。受講生は、カスタムのPHP Deserializationペイロードを発見していきます。最後に、PHARペイロードを構築した結果、Deserializationが発生して基盤となるシステムを利用できるようになるような演習を行います。この日の講義で説明するトピックは、より複雑なフレームワークを扱う際に役立つことでしょう。
この日の講義では、Webフレームワークを取り上げていきます。まず、SinatraやRuby on RailsなどのRuby・Rackベースのアプリケーションを扱うところから始めていきます。開発担当者はRackベースのアプリケーションを不適切にセットアップしてしまう可能性があります。そうした設定ミスに端を発する、Rubyデシリアライゼーションによるミドルウェア層の悪用について調べていきます。次に、Java言語とその複雑さについて説明します。Java言語は成熟したエンタープライズ言語であると主張する人もいれば、セキュリティ障害に他ならないと主張する人もいます。受講生は、Javaアプリケーションを評価、活用するために、Javaのセキュリティ機能とセキュリティ上の問題点を確認します。この日の講義では、リフレクション、シリアライゼーションの問題、RMI、およびJava-Jarベースのペイロードの使用を通じてJava攻撃を構築する方法についてウォークスルーを行います。
Modern FrameworkについてのセクションはJavaに関する講義によって締めくくられ、次に、アプリケーション保護のバイパスについてのトピックへと進んでいきます。今日のアプリケーションでは、攻撃を防ぐために多くのセキュリティ制御が使用されています。これらのコントロール (Webアプリケーションファイアウォールやフィルタリング技術など) により、ペネトレーションテストが難しくなっています。こうした制御は、セキュリティ上の欠陥を発見するために使われる自動化ツールやシンプルなテクニックの多くをブロックするものです。受講生は、HTML 5、UNICODE、その他のエンコーディングを使用して、保護されたアプリケーション内で検出のためのテクニックを使用できるようにします。この日の講義の最後では、OSのコマンドを使用して、PHPの機能を乱用します。インタープリターの機能の操作によってシステムが危険にさらされる可能性があります。
最終日の講義では、ネットワークに接続し、ペネトレーション・テスト全体を完遂させるチャレンジを行います。目標は、5日間学習したテクニック、ツール、方法論をすべて振り返ることです。これらのスキルは、現実世界でのエクストラネットやイントラネットに対しても使用できます。チャレンジの最後には、完遂までに実施した調査の結果とその方法を口頭で報告します。受講生には、Burp Suite ProがインストールされたSEC 642 Slingshot仮想マシンを含むVMイメージが提供されますので、講義中のみならず、講義を終わり仕事に戻った後でもご利用いただけます。