クリーム色の背景、色付き表示、高コントラスト、大きな文字のほうが読みやすいですか?配色と文字を選ぶと、すべてのページに一度で反映されます。

無料レッスン

WrongSecrets の基本

レッスン全文をここで読めます。無料アカウントを作成すると、実際のラボで実践できます。

コンテナラボ読了目安 9分コマンド3個

このレッスンでやること

シークレットとは、パスワードやキー、トークンのように、人に知られてはいけないものです。開発者は、それを間違った場所に置いてしまうことがよくあります。コードに直接書く、ブラウザーに送ってしまう、監視用のページで見せてしまう、などです。WrongSecrets は、それをわざとすべてやってしまうアプリケーションです。これを使って、見つけ方を学びます。アプリが動いているかを確かめ、聞けばだれにでも何を教えてしまうかを調べ、すべての訪問者に送られるスクリプトを読みます。

守るべき約束

注意

このラボでは、わざと危険に作られたウェブサイトが動きます。攻撃していいのは、このサイトだけです。あなた専用のコピーで、インターネットへの出口もないので、ほかのだれにも影響しません。自分のものではないサイトで、これらを試してはいけません。英国のコンピューター不正使用法(Computer Misuse Act 1990)では犯罪にあたります。

はじめる前に

メモ

このレッスンの上にあるバーのラボを起動を押して、動いていると表示されるまで待ってください。アプリケーションは、バーの OWASP WrongSecrets のリンクから開きます。下の実行ボタンを押すと、コマンドが順番に、同じセッションのラボのターミナルへ入力されます。実行の様子を見たり、自分でコマンドを打ったりするときは、バーのターミナルを開く(新しいタブ)を押します。

1. アプリケーションが動いているか確かめる

これは、アプリケーションに、動いている状態かどうかを尋ねます。答えは {"groups":["liveness","readiness"],"status":"UP"} で、準備ができているという意味です。

コマンド
curl -s -w "\n" http://wrongsecrets:8080/actuator/health

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

2. Challenge 0 をやってみる

ラボのバーの OWASP WrongSecrets のリンクを押して、Challenges メニューから Challenge 0 を選びます。ゲームの説明と、その答えが表示されます。答えを入力欄にコピーして Submit を押すと、ページに Your answer is correct!(正解です)と出ます。先に適当な答えを入れてみると、Your answer is incorrect, try harder ;-)(不正解です、もっとがんばって)と出ます。

3. だれにでも見せてしまうものを調べる

アプリケーションには、運営する人向けのページがよくあります。このアプリケーションは、アクセスできる人ならだれにでも、その一覧を教えてくれます。一覧には3つ、auditevents、health、info が出ます。(sort -u は並べ替えて、重複を消します。一覧に health が2回出てくるからです。)3つのうち、知らない人に読まれたくないのはどれでしょうか。考えてみてください。Challenge 42 は、そのうちの1つについての問題です。

コマンド
curl -s http://wrongsecrets:8080/actuator | grep -o 'actuator/[a-z]*' | sort -u

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

4. すべての訪問者に届くスクリプトを読む

アプリケーションによっては、ブラウザーが実行するスクリプトの中にシークレットを入れています。このアプリケーションは、index.js というスクリプトを、すべての訪問者に送ります。最初の部分は、読みにくいようにわざとぐちゃぐちゃにしてあります。でも、ブラウザーは動かすために全体をダウンロードしなければならず、curl も同じです。ブラウザーが必要とするシークレットは、みんなが持っているシークレットです。Challenge 16 では、その中にあるシークレットを探します。

コマンド
curl -s http://wrongsecrets:8080/js/index.js | head -n 1 | cut -c 1-120

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

5. 続けてみよう

ブラウザーで Challenge 16 と Challenge 42 に挑戦してください。行き詰まったら、各チャレンジの下にあるヒントを使います。ラボのコピーにはないものを求める問題も多く(インターネットへの出口がないからです)、そういう問題はとばして、ほかの問題を選んでください。見つけたシークレットごとに、それがどこにあったか、本当はどこに保管するべきだったかを書き留めましょう。

先生へ

ヒント

このレッスンは、ラボで進めるレッスンの小さな例です。手順と実行ボタンがレッスンで、ラボは生徒一人ひとりのコピーです。WrongSecrets には、コード、コンテナ、設定、ログにまたがる何十ものチャレンジがあるので、同じラボで単元ひとつ分の授業ができます。自動採点は行いません。解いた各チャレンジのスクリーンショットと、シークレットを本来どこに保管するべきだったかを説明した1文を提出させてください。自分のモジュールにコピーして変更するか、レッスンビルダーのラボメニューから最初から作ってください。

このラボとソースについて: WrongSecrets のラボ:埋め込まれた秘密情報を見つけ、保管の正しい場所を学ぶ

授業で教えていますか?これらのレッスンを生徒に割り当て、採点と生徒ごとのラボを使えます。