
インタラクティブなセキュアコーディングトレーニング。OWASP Top 10のWebおよびAPI脆弱性、Git/シークレット露出、10以上の言語での修正例を網羅したハンズオンSCORM演習を提供します。
無料のオープンソース・セキュアコーディング演習 40 本。SQL インジェクション、クロスサイトスクリプティング (XSS)、アクセス制御の欠陥などの実際の脆弱性を悪用し、その修正コードを書くという、開発者が学ぶのと同じ方法で Web アプリケーションセキュリティを教えます。OWASP Top 10 for Web、API、Git リポジトリセキュリティなどをカバーするインタラクティブな SCORM モジュール。修正例は JavaScript、TypeScript、Java、C#、Python、Scala、PHP、Ruby、Go、Kotlin で提供されています。

👥 創業者に相談する | 🔗 全ライブラリを閲覧する | 🎮 ライブ DOM XSS デモを試す
OWASP Top 10 を年に一度読んで選択式クイズに合格しても、本番環境の Web アプリケーション脆弱性は防げません。開発者には、実際のエクスプロイトが何をするのか — SQL インジェクションによるデータベースのダンプ、セッションを乗っ取るクロスサイトスクリプティング、別ユーザーのデータを露出させるアクセス制御の欠陥 — を確認し、それを防ぐセキュアなコードを書く経験が必要です。
このライブラリのすべての演習は「悪用 (exploit) → 追跡 (trace) → 修正 (remediate)」の 3 フェーズ手法に従います。
意図的に脆弱性を持たせたアプリケーションに対してハンズオンのペネトレーションテストを実行します — データベースへの SQL インジェクション、ブラウザで発火する XSS、クラウドメタデータエンドポイントに到達する SSRF — そして、その脆弱性がどのようにしてコードへ混入したのかを正確に追跡し、セキュアコーディングのベストプラクティスを適用して修正します。
演習でカバーする内容:
すべての演習は、100% の合格基準を設けたクイズで締めくくられます。開発者が本番コードを書く頃には、あらゆる一般的な Web アプリケーション脆弱性をすでに悪用した経験があり、それを防ぐセキュアコーディングのベストプラクティスを身につけています。
すべての演習は SCORM 1.2 .zip として提供されます — あらゆる LMS (Moodle、SAP SuccessFactors、Cornerstone、TalentLMS、その他 SCORM 準拠の任意のシステム) にインポートし、SDLC トレーニングパイプラインに組み込むか、展開前に SCORM Cloud でプレビューできます。
ホワイトラベル対応 — ロゴなし、バックリンクなし、ベンダーロックインなし。DevSecOps プログラム、セキュア SDLC イニシアチブ、または単独のアプリケーションセキュリティトレーニングとして利用できます。
Creative Commons Attribution-NonCommercial 4.0 International の下で提供されます。社内トレーニング、ワークショップ、大学の講義など、あらゆる非商業目的のために、帰属表示付きで使用、改変、再配布できます。コンテンツを単体製品として再販することはできません。
自前の LMS を運用せずに、大規模なセキュアコーディングトレーニングが必要ですか?エンジニアリングチーム向けのアプリケーションセキュリティトレーニング専用に設計された エンタープライズクラウドプラットフォーム を提供しています。実際の動作を見たい方は お問い合わせください。
ゼロから設計されたマルチテナント対応 — 単一のペインからクライアントポートフォリオ全体にアプリケーションセキュリティトレーニングを提供:
ご興味がありますか? お問い合わせください。
クリックジャッキング — 透明な iframe を重ねて銀行の承認ボタンのクリックを奪い、実際の承認を取得した上で、CSP の frame-ancestors で修正する。
コマンドインジェクション — 傍受したリクエストを改ざんしてサーバー側ツールに 2 つ目のコマンドを連結し、サーバーの秘密情報が漏えいするのを確認した上で、引数リスト方式の実行に修正する。
既知の脆弱性を持つコンポーネント — 公開済み CVE を悪用して古いライブラリ経由でコード実行を獲得し、細工したアップロードでコマンドを実行した上で、バージョンを上げて CI でスキャンする。
クロスサイトリクエストフォージェリ — 被害者が信頼したことのないページからクロスサイト転送を自動送信して送金させ、Cookie がなぜ一緒に送られるのかを確認した上で、セッションごとのトークンと SameSite を追加する。
ディレクトリトラバーサル — ダウンロードリンク経由で意図されたフォルダの外へ抜け出し、サーバーから /etc/passwd を取得した上で、パスを正規化して検証する。
DOM XSS — URL ハッシュにペイロードを隠してサーバーが検知できない XSS を発火させ、危険な innerHTML シンクを追跡した上で、textContent に置き換える。
強制ブラウジング — リンクされていないルートの内部 URL に匿名で到達して従業員の PII エクスポートを取得し、秘匿性はアクセス制御ではないことを確認した上で、サーバー側で認証を強制する。
水平特権昇格 — 1 桁の数字を変えるだけで別の顧客のデータを読める IDOR を両側から調査し、連番のレコード ID を列挙した上で、欠けている所有権チェックを追加する。
ホストヘッダインジェクション — X-Forwarded-Host ヘッダーを偽造してパスワードリセットメールを似たようなドメインにリダイレクトさせ、クリックされたリセットトークンを盗み取った上で、設定済みのベース URL に固定する。
安全でない URL リダイレクト — next パラメータを悪用してフィッシングページを本物のログインの背後に隠し、ドメインが正しく見える理由を確認した上で、相対ターゲットのみを許可する。
残存するデバッグコード — 環境変数をダンプするエンドポイントを見つけて JWT とデータベースの秘密情報を読み取り、忘れられたデバッグルートから本番環境の秘密情報を取得した上で、許可リストによるフェイルクローズで修正する。
URL 内の PII — クエリ文字列内の識別子を見つけてリンクから直接個人データを取得し、ログとリファラーへの漏えいを追跡した上で、不透明なトークンに書き換える。
機能レベル認可の欠陥 — 読み取り専用アカウントからアナリストとして管理者ルートに到達し、スタッフ専用エンドポイントを呼び出して名簿を取得し支払いをキューに入れた上で、ルーターレベルのロールガードを追加する。
オブジェクトレベル認可の欠陥 — リクエスト内のオブジェクト ID を変更して別のライダーのデータを読み取る IDOR を悪用し、ID を順に辿ってレコードを収集した上で、オブジェクトごとの所有権チェックを強制する。
ユーザー認証の欠陥 — 制限のない検証エンドポイントを攻撃して 6 桁のログインコードを総当たりし、メールアドレスだけでアカウントを乗っ取った上で、アカウントごとに 429 でレート制限をかける。
過剰なデータ露出 — レンダリングされたページと生の JSON を比較して UI が一切表示しないフィールドを読み取り、電話番号、生年月日、座標を見つけた上で、フィールドの許可リストでシリアライズする。
不適切なインベントリ管理 — v2 を非推奨の v1 に置き換えて廃止済み API バージョン経由でレコードを読み取り、新バージョンが強制する制御をバイパスした上で、旧バージョンを 410 Gone で廃止する。
インジェクション — カタログのクエリを抜け出して検索ボックスをデータベース全体の読み取りに変え、UNION で users テーブルをダンプした上で、入力がデータとしてのみ扱われるようパラメータ化する。
不十分なログ記録とモニタリング — チケットなしでレコードにアクセスして顧客を検索し、跡を残さずに閲覧する。誰もそれを特定できない理由を確認した上で、監査記録とアラートを追加する。
マスアサインメント — PATCH ボディにフィールドを追加して 2 つの余分なキーでロイヤルティ残高を作り出し、所有すべきでない属性を書き込んだ上で、編集可能なフィールドのみにバインドする。
セキュリティ設定の誤り — 任意の CORS オリジンを反射させて、あらゆる Web サイトからサインイン中のアカウントを読み取り、おとりページを武器化した上で、CORS を許可リストに限定する。
制限のないリソース消費 — リクエストからページサイズを設定して 1 回の過大なリクエストでカタログをスクレイピングし、一度に 250,000 件のレコードを取得した上で、サーバー側でページサイズに上限を設ける。
Git 履歴内の秘密情報 — クリーンアップされた設定ファイルの履歴を辿り、削除したコミットから現在も有効な API キーを復元して、ローテーションされていないキーをリプレイした上で、まずキーをローテーションし、git filter-repo で履歴を消去する。
露出した .git ディレクトリ — Web ルートに閲覧可能な .git を見つけ、リポジトリをダンプしてソースコードを復元することで、1 つの公開 URL からコードベース全体を再構築した上で、リポジトリではなくビルド成果物をデプロイする。
コミットされた秘密ファイル — 最初のコミットから追跡されている秘密ファイルを見つけて公開リポジトリをクローンし、コミット済みの .env を読み取った上で、git rm --cached で追跡を外してローテーションし、.gitignore と pre-commit フックを追加する。
コミット作者のなりすまし — git log から作者の ID を収集し、メンテナーの名前を語ってバックドアを仕込み、Unverified (未検証) 署名バッジを確認した上で、管理者を含むすべての貢献者に署名付きコミットを要求する。
ブランチ保護のバイパス — 保護されていないブランチで履歴を書き換えて main に強制プッシュし、レビューと CI をすり抜けて未レビューのコードを本番環境にそのまま出荷した上で、プルリクエスト、レビュアー、チェックを必須にする。
漏えいしたアクセストークン — 過剰な権限を持つトークンが何に到達できるかを確認し、公開 gist のトークンでプライベートリポジトリをクローンした上で、gist の削除だけでなくトークンを失効・ローテーションし、きめ細かい権限を持つ短期間のトークンを再発行する。
悪意のあるプルリクエスト — 説明文ではなく完全な diff を読むことで、穏当なテスト修正の内側に隠されたバックドアを見つけ、デプロイスクリプトへの範囲外の編集にフラグを立てた上で、CODEOWNERS とフォーク制限でレビューを強化する。
CI/CD の秘密情報の露出 — 秘密情報を echo するワークフローステップを見つけて公開ビルドログからデプロイキーを直接取得し、信頼できない入力をシェルコマンドとして実行させないようにした上で、アクションをコミット SHA で固定しキーをローテーションする。
反射型 XSS — 検索ページでペイロードを反射させ、開いた瞬間に実行される悪意のある URL を作成し、被害者がリンクをクリックする流れを理解した上で、レンダリング境界でエスケープ処理する。
サーバーサイドリクエストフォージェリ — リンクプレビュー機能を悪用してサーバー自身にクラウド認証情報を取得させ、メタデータエンドポイントに到達させた上で、送信先を検証する。
セッションフィクセーション — 既知のセッション ID を被害者に固定し、ログインがその ID を使い回すのを確認することで、被害者のログインを乗っ取り、ログインのたびにセッション ID を再生成する。
SQL インジェクション — トートロジー (恒真式) のペイロードを悪用して無防備な 1 つの検索フォームからデータベースをダンプし、UNION SELECT でテーブルを外部に取り出した上で、パラメータ化による修正を実装する。
格納型 XSS — ユーザーコンテンツにペイロードを格納してコメント内にスクリプトを仕込み、次の訪問者に対して実行されるのを確認した上で、レンダリング時に出力をエスケープする。
URL 内のトークン露出 — リダイレクト URL 内のトークンを捕捉してリファラーログから収集したセッショントークンを入手し、実際のアカウントでリプレイした上で、HttpOnly Cookie に移行する。
ユーザー列挙 — エラーメッセージの違いを読み取り、応答時間の漏えいを計測してログインフォームから有効な顧客リストを収集し、エラーとタイミングを統一する。
垂直特権昇格 — セッショントークンを改ざんしてロールクレームを偽造し、閲覧者から管理者へ権限を昇格させた上で、トークンを信頼する前に検証する。
弱い乱数生成 — ジェネレーターからトークンをサンプリングして Math.random() の状態を復元し、パスワードリセットトークンを予測してアカウントを乗っ取った上で、crypto.randomBytes に移行する。
XXE インジェクション — 細工した注文書を送信して外部エンティティを解決させ、XML アップロード経由でパスワードファイルを読み取った上で、エンティティ解決を無効化する。