Docs/学習者向け/学習モード

学習モード

学習モードでは、シミュレートされたブラウザ環境でのインタラクティブなステップバイステップ攻撃シナリオを提供します。実世界の攻撃チェーンを順を追って体験して、脆弱性がどのように悪用され、どのように防止するかを理解します。

仕組み

学習モードは、インタラクティブな攻撃シナリオに沿って進むガイド付きの分割画面インターフェースを使用します:

左パネル — シナリオガイド

ステップバイステップの指示、シナリオコンテキスト、攻撃チェーン全体を案内するナレーター。各ステップは何をすべきかを正確に伝えます。

右パネル — シミュレートされた環境

アクションを実行する完全にインタラクティブなブラウザ、モバイルデバイス、またはプロキシシミュレーション — ボタンをクリックし、フォームを記入し、リアルタイムで応答を観察します。

学習モードインターフェース

シナリオ中の分割画面学習モードは次のようになります:

app.securecodinghub.com/learn/owasp-top-10/idor
ステップ 3 / 12EXPLOITATION
他のユーザープロフィールを発見

URL内のid/profile/1から/profile/2に変更します。アプリが所有権を確認せずに2人目のユーザーのデータを提供することに注意してください。

ナレーター
典型的なIDOR — ルートハンドラーは、セッションを確認する代わりに信頼の情報源としてparams.idを信頼しています。
vulnerable-app.com/profile/2
プロフィール — Jane Doe
メールjane@example.com電話+1 555 0190ロールadmin
⚠ リーク — 認可なしにアクセスされました

シナリオ構造

すべてのシナリオは、実世界のセキュリティアセスメントを反映した一貫した5段階パターンに従います:

1
導入
ターゲットアプリケーション、あなたの役割、探索する脆弱性に関するコンテキスト。
2
発見
アプリケーションを探索し、攻撃面を特定します — アプリが通常どのように動作するかを観察します。
3
悪用
ステップバイステップで攻撃を実行 — ペイロードを注入したり、リクエストを操作したり、制御をバイパスします。
4
影響
脆弱性の現実の結果を見る — データリーク、権限昇格、またはセッションハイジャック。
5
防止
脆弱性を修正し、将来の悪用を防ぐための正しいコードと構成変更を学びます。

シミュレートされた環境

学習モードは、脆弱性カテゴリに応じて3種類のシミュレーションを使用します:

環境使用対象説明
SimBrowserWeb脆弱性URLバー、ナビゲーション、フォーム、動的応答を備えた完全にインタラクティブなWebブラウザシミュレーション。XSS、CSRF、SQL Injection、その他のWeb攻撃に使用。
SimMobilePhoneモバイル脆弱性ネイティブUI要素、ステータスバー、タッチインタラクションを備えたiOSとAndroidデバイスのシミュレーション。安全でないストレージ、WebViewインジェクション、証明書ピンニングシナリオに使用。
SimWebProxyAPI脆弱性生のAPI呼び出し、ヘッダー、ペイロードを表示するHTTPリクエスト/レスポンスプロキシ。BOLA、マスアサインメント、壊れた認証、その他のAPIセキュリティシナリオに使用。

進捗トラッキング

各シナリオは、終了した場所から正確に再開できるように進捗を追跡します:

メトリック説明
現在のステップ / 合計ステップシナリオ内の位置を表示 — 例: 「ステップ 8 / 14」
完了ステータスin_progressまたはcompleted
再開サポートシナリオを閉じて後で戻ることができます — 最後のステップから再開します

シナリオ進捗

シナリオリストには現在の進捗が一目で表示されます:

app.securecodinghub.com/learn
あなたのシナリオ
3つ進行中 · 1つ完了
IDOR — 直接オブジェクト参照
ステップ 8 / 14 · OWASP Web
進行中
SQL Injection — ログインバイパス
ステップ 11 / 11 · OWASP Web
完了
XSS — 蓄積型クロスサイトスクリプティング
ステップ 3 / 16 · OWASP Web
進行中
次のステップ: コードレビューチャレンジで知識をテストするために練習モードを試すか、ダッシュボードから完全なシナリオカタログを探索してください。

ガイド付きシナリオがコードレビューチャレンジで教えられないことを教えるとき

練習モードのコードレビューチャレンジは自己完結型のスニペットを渡します。それは脆弱性が行レベルでどのように見えるかの公正な表現ですが、ほとんどの実際の脆弱性は単一の行にはありません。それらはファイル間、サービス間、またはクライアントとサーバー間の境界にわたって存在します。IDORは典型的な例です: 悪いコードはデータベースクエリではなく、スタックを3層上にある欠落した認可チェックです。学習モードは、アプリケーション全体を目の前に置くため、そのギャップを示すことができる形式です。

悪用がセッション状態、複数ステップのリクエストフロー、または攻撃者制御のタイミングに依存する脆弱性についても同じことが言えます。蓄積型XSSは、ペイロードが1人のユーザーから別のユーザーに移動して初めて重要になります。マスアサインメントは、モデル層が露出すべきでなかったリクエストボディキーを信頼するときに初めて重要になります。スニペットはそのチェーンを示すことはできません。シナリオはそれができます。なぜなら、ログインし、アクションを実行し、応答を観察し、脆弱性がリアルタイムで侵害に変わるのを見るからです。上の5段階のシナリオ構造は、まさにその弧の周りに設計されています。

すでにシニアの場合に学習モードを使用する方法

シニア開発者とセキュリティエンジニアは、ナレーターとステップバイステップの指示が遅く感じるため、学習モードをスキップすることがあります。それは個人的に数十回悪用した脆弱性クラスについては公正です。シニア学習者にとっての学習モードの正しい使用法は、完了主義ではなく的を絞ったものです。導入を流し読みし、発見を流し読みし、攻撃面が馴染みのないときだけ悪用で減速してください。iOSコードを書いたことがないバックエンドエンジニアは、同じカテゴリで20回の練習チャレンジよりも、単一のモバイル安全でないストレージシナリオから多くを学びます。なじみのない部分は概念ではなくプラットフォームだからです。

もう1つのシニアユースケースは言語ギャップを埋めることです。よく知らないスタックを使用するチームに参加した場合、そのスタックの学習シナリオは、レビューするアプリケーションの形状と攻撃面の高速ツアーとしても機能します。スタック設定からのスタックに合わせた練習と組み合わせて、ドキュメントを読むだけよりも早く新しいコードベースにランプアップしてください。

カスタムコースは学習と練習を1つにバンドル

組織管理者は、学習シナリオと練習トピックを単一の厳選されたパスに混在させる名前付きのシーケンスを構築できます — ビルドフローについてはカスタムコースを参照。カスタムコースがあなたに割り当てられると、組み込みコースであるかのように/learn/custom/<courseId>で消費し、項目は管理者が定義した順序で表示されます。練習項目は練習モードと同じようにスコアし、XPを報酬します。学習項目はここと同じようにシナリオごとの進捗を書き込みます。