始める前に
- ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
- ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
- 画面左上の [ラボを開始] をクリックして開始します
Launch a virtual machine
/ 20
Set up and run the vulnerable application
/ 20
Scan the application
/ 20
Remediate the vulnerabilities
/ 20
Re-scan the web application
/ 20
脆弱性を特定して修復手法を実装することは、さまざまなシステムやアプリケーションのセキュリティと安定性を確保するうえで非常に重要です。多くのアプリケーションやシステムは、個人情報、財務記録、知的財産などの機密情報を扱っています。脆弱性を特定することで、この機密データを不正アクセスや潜在的な侵害から保護できます。通常、開発プロセスの早い段階で脆弱性に対処する方が、後でセキュリティ侵害に対処するよりも費用対効果が高くなります。そもそも、脆弱性を修復する費用は、脆弱性を防止する費用よりもはるかに高くなることがよくあります。
セキュリティ アナリストとして、脆弱性を定期的にスキャンすることで、悪意のある攻撃の前に弱点を特定して対処し、潜在的な脅威を事前に軽減できます。アプリケーションの攻撃対象領域に関する分析情報を提供し、悪用される可能性のある経路を把握して、改善すべき重要な領域に優先順位を付けるのに役立ちます。
このラボでは、脆弱なアプリケーションをセットアップして実行する方法だけでなく、脆弱性をスキャンする方法も学びます。
Cymbal Bank では、法人顧客向けの新しいバンキング アプリケーションを開発しました。このアプリケーションは、新しいクラウド インフラストラクチャでホストおよびデプロイされる予定です。最高情報セキュリティ責任者(CISO)のハビエルは、このアプリケーションの顧客に向けたリリースに先がけて、セキュリティを優先したいと考えています。あなたはチームリーダーのクロエから、この新しいアプリケーションの脆弱性を特定して軽減するよう指示されました。そこで、Google Cloud の Web Security Scanner を使用して、クロスサイト スクリプティング(XSS)と呼ばれる OWASP® のウェブ アプリケーションの脆弱性上位にランクインする脆弱性について、アプリケーションをスキャンします。
方法は次のとおりです。まず、静的 IP アドレスを作成し、仮想マシンを起動します。次に、脆弱なアプリケーションをデプロイします。次に、アプリケーションをセットアップして実行します。次に、アプリケーションにアクセスしてスキャンします。最後に、脆弱性を修正してアプリケーションを再スキャンします。
こちらの手順をお読みください。ラボには時間制限があり、一時停止することはできません。[ラボを開始] をクリックすることでスタートするタイマーは、Google Cloud のリソースを利用できる時間を示しています。
この実践ラボでは、シミュレーションやデモ環境ではなく、実際のクラウド環境を使ってご自身でアクティビティを行うことができます。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、以下が必要です。
[ラボを開始] ボタンをクリックします。左側の [ラボの詳細] パネルには、以下が表示されます。
[Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。新しいブラウザタブで [ログイン] ページが開きます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておくと、簡単に切り替えられます。
必要に応じて、下のGoogle Cloud ユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。[Next] をクリックします。
[ラボの詳細] パネルでも Google Cloud ユーザー名を確認できます。
[ラボの詳細] パネルでも Google Cloud のパスワードを確認できます。
しばらくすると、このタブで Cloud コンソールが開きます。
このタスクでは、静的 IP アドレスを作成し、脆弱性のあるアプリケーションを実行する仮想マシンを起動します。
このコマンドは、xss-test-ip-address という名前の静的 IP アドレスを作成します。この静的 IP は、脆弱性のあるウェブ アプリケーションのスキャンに使用されます。
プロンプトが表示されたら、[承認] をクリックします。
このコマンドは、生成した静的 IP アドレスを返します。
このコマンドは、脆弱性のあるアプリケーションを実行するための VM インスタンスを作成します。
[進行状況を確認] をクリックして、このタスクが正しく完了したことを確認します。
このタスクでは、脆弱性のあるアプリケーションのウェブ アプリケーション ファイルをダウンロードして展開し、ブラウザ内 SSH でアプリケーションをデプロイします。
まず、Web Security Scanner が脆弱性のあるアプリケーションにアクセスできるようにするファイアウォール ルールを作成します。
このコマンドは、任意の送信元 IP アドレスからウェブ アプリケーションへのアクセスを許可するファイアウォール ルールを作成します。これにより、Web Security Scanner が脆弱性のあるアプリケーションにアクセスしてスキャンを実行できるようになります。
次に、SSH 接続を使用して VM インスタンスに接続します。
これにより、新しいウィンドウで VM インスタンスへの SSH 接続が開きます。
次に、ウェブ アプリケーション ファイルを抽出します。
このコマンドは、脆弱なウェブ アプリケーション ファイルをダウンロードして抽出します。
Enter キーを押します。
最後に、次のコマンドを [ブラウザでの SSH] ページにコピーします。
このコマンドでアプリケーションが起動します。
アプリケーションが稼働中であることを示すメッセージが表示されます。
[進行状況を確認] をクリックして、このタスクが正しく完了したことを確認します。
このタスクでは、クロスサイト スクリプティング(XSS)と呼ばれる脆弱性についてアプリケーションをテストします。XSS の脆弱性は、ウェブブラウザに配信されるコンテンツ内の HTML コードなどの悪意のあるスクリプトによって悪用される可能性があります。
<YOUR_EXTERNAL_IP> をタスク 1 でメモ帳に保存した VM の静的 IP アドレスに置き換えます。ウェブフォームを備えた Cymbal Bank の法人向けバンキング ポータルが表示されます。
このコードは OWASP® の脆弱性を注入します。
注入されたコードは、ブラウザにメッセージを表示しました。このアクション自体は悪意のあるものではありませんが、攻撃者は悪用可能なアプリケーションに悪意のあるコードを導入して、そこからデータを盗んだり、ユーザーのデバイスにマルウェアを植え付けたりする可能性があります。
アラート ウィンドウが開き、「This is an XSS Injection to demonstrate one of OWASP vulnerabilities」というメッセージが表示されます。
このタスクでは、Web Security Scanner を使用してアプリケーションをスキャンし、脆弱性を検出します。
Web Security Scanner API を有効にする
次に、アプリケーションの脆弱性をスキャンします。
Web Security Scanner API が有効になっている場合は、Cloud Web Security Scanner ページにスキャン構成の詳細が表示されます。
Cloud Web Security Scanner ツールバーで、[+ 新しいスキャン] をクリックします。
[名前] セクションで、スキャンに「Cross-Site Scripting scan」という名前を付けます。
[開始 URL] セクションの [開始 URL 1] フィールドには、静的 IP アドレスが事前入力されているはずです。
ブラウザ内 SSH ウィンドウで、Web Security Scanner が潜在的な脆弱性がないか、すべての URL を検査しているときに生成されるログを確認します。
[結果] タブにクロスサイトの脆弱性が表示され、Web Security Scanner で XSS 脆弱性を検出できることがわかります。
脆弱性は、[Security Command Center] の [脆弱性] タブでも確認できます。
[進行状況を確認] をクリックして、このタスクが正しく完了したことを確認します。
このタスクでは、アプリケーションの XSS 脆弱性を修復し、新しい修正を適用してアプリケーションを再実行します。
現在の脆弱性を修正するための推奨事項は、信頼されていないユーザーが提供したデータを検証してエスケープすることです。これには、対応する OWASP® ルールも示されています。
これを行うには、脆弱なアプリケーションのコードを編集して、ユーザーが提供したデータを検証およびエスケープするコード行を含めます。
次に、nano エディタを使用して app.py ファイルを編集します。
このコマンドを実行すると、nano コードエディタが開きます。
Enter キーを押します。
XSS の脆弱性を修正するには、出力文字列変数を検証します。出力文字列は、ユーザーが指定したウェブフォーム入力の処理された出力です。
アプリケーションがユーザー入力を HTML コードとして受け入れないようにします。代わりに、ユーザー入力で指定された特殊文字をエスケープします。これを行うには、出力文字列を設定している 2 行を見つけます。
このコマンドはアプリケーションを再実行します。
[進行状況を確認] をクリックして、このタスクが正しく完了したことを確認します。
このタスクでは、アプリケーションを再スキャンして、脆弱性がないことを確認します。
[結果] タブに、脆弱性が検出されなかったことが示されます。
[進行状況を確認] をクリックして、このタスクが正しく完了したことを確認します。このタスクの完了が認められるには、スキャンが完了するまで待つ必要があります。
これで完了です。
このラボでは、アプリケーションの脆弱性をスキャンする実践的な経験を積みました。また、アプリケーションの脆弱性をスキャンするセキュリティ アナリストの能力の重要性についても学びました。これは、潜在的な弱点の特定と対処、リスクの管理、コンプライアンス要件の遵守、最終的には組織のアセットと評判を保護するための堅牢なセキュリティ ポスチャーの維持に不可欠です。
セキュリティのギャップを埋めて弱点に対処することで、潜在的な悪用を防ぎ、セキュリティ インシデントの影響を最小限に抑え、業界規制へのコンプライアンスを維持できます。
このラボでは、プロアクティブなサイバーセキュリティ戦略の基本的な側面の一つを完了しました。
すべてのタスクが問題なく完了したことを確認してから、ラボを終了してください。準備ができたら、[ラボを終了] をクリックし、[送信] をクリックします。
ラボを終了すると、ラボ環境へのアクセス権が削除され、完了した作業にもう一度アクセスすることはできなくなります。
Copyright 2026 Google LLC All rights reserved. Google および Google のロゴは、Google LLC の商標です。その他すべての社名および製品名は、それぞれ該当する企業の商標である可能性があります。
このコンテンツは現在ご利用いただけません
利用可能になりましたら、メールでお知らせいたします
ありがとうございます。
利用可能になりましたら、メールでご連絡いたします
1 回に 1 つのラボ
既存のラボをすべて終了して、このラボを開始することを確認してください