
Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Create the VM with desired configurations
/ 20
Download vulnerable web application files on the VM
/ 20
Enable the Web Security Scanner API
/ 20
Run a Web Security Scanner scan and detect application vulnerabilities
/ 20
Correct vulnerabilities and rescan your application using Web Security Scanner
/ 20
Security Command Center の組み込みサービスの一つである Web Security Scanner(WSS)を使用すると、App Engine、Google Kubernetes Engine(GKE)、Compute Engine の各ウェブ アプリケーションにおけるセキュリティの脆弱性を特定できます。
このサービスは、アプリケーションをクロールして、開始 URL の範囲内にあるすべてのリンクをたどり、できる限り多くのユーザー入力とイベント ハンドラを実行します。クロスサイト スクリプティング(XSS)、Flash インジェクション、混合コンテンツ(HTTPS 内の HTTP)、古い / 安全ではないライブラリなど、4 つのよくある脆弱性を自動的にスキャンし検出します。
偽陽性率は非常に低く、早期に脆弱性を特定できます。セキュリティ スキャンの設定、実行、スケジュール、管理を簡単に行うことができます。
このラボでは、Web Security Scanner を使用して Python Flask アプリケーションをスキャンし、脆弱性の有無を確認します。
このラボでは、次のタスクを行う方法について学びます。
各ラボでは、新しい Google Cloud プロジェクトとリソースセットを一定時間無料で利用できます。
Qwiklabs にシークレット ウィンドウでログインします。
ラボのアクセス時間(例: 1:15:00
)に注意し、時間内に完了できるようにしてください。
一時停止機能はありません。必要な場合はやり直せますが、最初からになります。
準備ができたら、[ラボを開始] をクリックします。
ラボの認証情報(ユーザー名とパスワード)をメモしておきます。この情報は、Google Cloud Console にログインする際に使用します。
[Google Console を開く] をクリックします。
[別のアカウントを使用] をクリックし、このラボの認証情報をコピーしてプロンプトに貼り付けます。
他の認証情報を使用すると、エラーが発生したり、料金の請求が発生したりします。
利用規約に同意し、再設定用のリソースページをスキップします。
Cymbal Bank は、米国のリテールバンクで、全米 50 州に 2,000 以上の支店があります。堅牢な支払いプラットフォームを基盤とした包括的なデビットおよびクレジット サービスを提供しています。従来の金融サービス機関からの変革を目指し、デジタル トランスフォーメーションを推進しています。
Cymbal Bank は、1920 年に Troxler という名前で設立されました。Cymbal Group 独自の ATM への積極的な投資を行っていた Cymbal Group は、Troxler を 1975 年に買収しました。Cymbal Bank は、全米をリードする銀行に成長するにつれ、支店での対面サービスと 2014 年にリリースしたアプリを通じオンラインにおいても、カスタマー エクスペリエンスを近代化させることに注力しました。Cymbal Bank は、全国で 42,000 人を雇用し、2019 年には 240 億ドルの収益をあげました。
Cymbal Bank は、Google Cloud 技術を使った法人顧客向けの新しいバンキング アプリケーションの開発に関心を持っています。アプリケーションのセキュリティは、非常に重要であり、CTO は Google Cloud により、セキュリティの脆弱性をどのように特定し、軽減できるのかを知りたいと考えています。あなたは Cloud Security Engineer として、Security Command Center 最新のアプリケーション脆弱性スキャンのデモンストレーションを任されました。
このタスクでは、Cymbal Bank の CTO にアプリケーションの脆弱性をデモンストレーションするためのインフラストラクチャを設定します。具体的には、仮想マシンをデプロイし、デプロイしようとしている脆弱性のあるアプリケーションに Web Security Scanner がアクセスできるようにするためのファイアウォール ルールを開きます。
Google Cloud コンソールのタイトルバーで、「Cloud Shell をアクティブにする」アイコン()をクリックします。プロンプトが表示されたら、[続行] をクリックします。
次のコマンドを実行して、静的 IP アドレスを作成します。この静的 IP アドレスを使用して、脆弱性のあるウェブ アプリケーションをスキャンできます。
IP アドレス(出力結果に 1 行で表示)をコピーし、メモ帳に保存します。
次のコマンドを実行し、脆弱性のあるアプリケーションを起動するための VM インスタンスを作成します。
この起動スクリプトにより、Python Flask というウェブ アプリケーション フレームワークがインストールされます。この Python Flask を使用して、シンプルな Python アプリケーションを実行し、ウェブ アプリケーション セキュリティ脆弱性として一般的なクロスサイト スクリプティング(XSS)をデモンストレーションします。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
このタスクでは、アプリケーション コードを取得して、Web Security Scanner で検出する脆弱性を取り込みます。この脆弱性は、ユーザーの入力を受け取って変更せずに出力する、シンプルなフォームのアプリケーション形式になっています。
Cloud コンソールのナビゲーション メニュー()で、[Compute Engine] > [VM インスタンス] の順にクリックします。
最初に初期化する際は 1 分ほどかかることがあります。
次に、インスタンスの隣にある [SSH] ボタンをクリックします。
新しいウィンドウに VM インスタンスへの SSH 接続が表示されます。
出力:
先ほどメモ帳にコピーした VM の静的 IP アドレスを準備します。
以下の URL フィールドの YOUR_EXTERNAL_IP
をその IP アドレスに置き換え、新しいブラウザタブでその URL を開きます。
ウェブフォームを備えた Cymbal Bank の法人向けバンキング ポータルが表示されます。
次の警告ウィンドウが表示されます。
これはウェブ アプリケーションによくある脆弱性、クロスサイト スクリプティングの脆弱性です。クロスサイト スクリプティング(XSS)は、攻撃者がアプリケーションの環境を利用して、ユーザーのブラウザで、悪意のあるスクリプトを実行することを可能にする脆弱性です。ブラウザは、文字列を正当な JavaScript として解釈し、実行してしまいます。
XSS のバグを悪用する攻撃者は、HTML ページに JavaScript を注入することで、そのページを訪れたユーザーのログイン セッションに事実上無制限にアクセスできるようになります。ユーザーデータを盗んだり、改ざんしたり、プライバシーやセキュリティ設定を変更したり、あるいはプロダクトの見た目や動作を完全に変えてしまうこともあります。アプリケーション内の XSS 脆弱性は、どんなに些細なものであれ、同じドメイン内の他のコンテンツを危険にさらす可能性があります。
これは、Web Security Scanner により特定できる、アプリケーションの脆弱性の一つです。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
脆弱性のあるアプリケーションが起動されたので、CTO に Web Security Scanner の機能をデモンストレーションします。ただし、その前に、WSS が実行に使用する API を構成する必要があります。
Cloud コンソールのブラウザタブに戻ります。
ナビゲーション メニュー()から、[API とサービス] > [ライブラリ] を選択します。
[API とサービスを検索] フィールドに「Web Security Scanner
」と入力し、Enter キーを押します。
[Web Security Scanner API] を選択します。
[有効にする] をクリックして、Web Security Scanner API を有効にします。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
このタスクでは、アプリケーションにセキュリティの脆弱性があるかどうかを調べるためのスキャンを構成して設定します。
ナビゲーション メニュー()を開き、[セキュリティ] > [Web Security Scanner] を選択します。
[+ 新しいスキャン] をクリックします。
[開始 URL] セクションの [開始 URL 1] フィールドには、静的 IP アドレスが事前入力されているはずです。
ポート番号 8080 を追加して、次のような開始 URL にします。
[開始 URL 2] を削除します(ある場合)。
[新しいスキャンの作成] 画面のその他のフィールドも確認します。
[認証] が [なし] に設定されており、[スケジュール] も [なし] に設定されていることを確認します。
[さらに表示] をクリックして、その他の設定も確認します。
[保存] をクリックして、スキャンを作成します。
セッションがタイムアウトした場合は、次のコマンドを実行してアプリケーションを再起動してください。
SSH ウィンドウで、以下のようなログが生成され始めます。これは、Web Security Scanner が潜在的な脆弱性がないか、すべての URL を検査していることを意味します。
出力:
次の HTTP ステータス コードを含んだ、ログ ステートメントが表示される場合があります。
詳細については、HTTP ステータスとエラーコードのドキュメントをご覧ください。
スキャンが実行されている間、[結果]、[クロールした URL]、[詳細] のタブを自由に確認いただけます。また、Web Security Scanner の詳細については、スタートガイドの動画または脆弱性スキャンの動画をご覧ください。
Web Security Scanner は、すべての開始 URL をスキャンし、Cymbal Bank アプリケーションの XSS 脆弱性を検出することができました。このような重要な脆弱性の検出を自動化できることは、Cymbal Bank のようなセキュリティを重視する組織にとって大きな利点です。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
Web Security Scanner が XSS 脆弱性を検出できることを実証できたので、次は、脆弱性を修復し、アプリケーションのスキャンを再度実行します。
#
記号を削除し、次の行の先頭に追加します(コードを適切にインデントしてください)。最終的に、次のような行になります。
html_escape_table
は、「<」などの特殊な HTML 文字とそのテキスト表現の 1 対 1 の対応関係を保持する辞書です。このテーブルを使用して、特殊な HTML 文字をエスケープすることで、送信されたデータをフォームで生のテキストとして取り込んで解釈できるようにしています。詳細については、HTML エスケープの概要のドキュメントをご覧ください。CTRL+X キー、Y キー、Enter キーの順に押して変更を保存します。
アプリケーションを再実行します。
Google Cloud コンソールのブラウザタブに戻ります(Web Security Scanner のページがまだ開いているはずです)。
ページ上部の [実行] をクリックします。
SSH ウィンドウで、ログが表示され始めます。これは、Web Security Scanner がアプリケーションの URL に潜在的な脆弱性がないかテストしていることを意味します。
出力:
スキャン結果を待つ間、別タブでブラウザを使って URL、http://<EXTERNAL_IP>:8080
にログインしてください。
ウェブフォームが再び表示されます。
このウェブフォームに、以前入力したものと同じ文字列を入力します。
入力したら、[POST] ボタンをクリックします。
今回はブラウザに次の文字列が表示されていることを確認します。
Google Cloud コンソールの先ほど中断した Web Security Scanner のページに戻ります。
ページ上部の [実行] をクリックし、アプリケーションを再度スキャンします。
結果には、XSS 脆弱性がもう表示されないはずです。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
Google Cloud の強力な Web Security Scanner ソリューションを使用して、XSS 脆弱性を特定し修復する方法を Cymbal Bank の CTO にデモンストレーションすることができました。
ラボが完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Google Cloud Skills Boost から削除され、アカウントの情報も消去されます。
ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。
星の数は、それぞれ次の評価を表します。
フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。
フィードバックやご提案の送信、修正が必要な箇所をご報告いただく際は、[サポート] タブをご利用ください。
Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。クラスでは、技術スキルとベスト プラクティスを迅速に身につけ、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。
マニュアルの最終更新日: 2025 年 2 月 10 日
ラボの最終テスト日: 2025 年 2 月 10 日
Copyright 2020 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。
このコンテンツは現在ご利用いただけません
利用可能になりましたら、メールでお知らせいたします
ありがとうございます。
利用可能になりましたら、メールでご連絡いたします
One lab at a time
Confirm to end all existing labs and start this one