Docs/はじめに/プラットフォーム概要

プラットフォーム概要

SecureCodingHubは、開発者が実践的な演習を通じてセキュリティ脆弱性を特定して修正する方法を学べる、インタラクティブなセキュアコーディングトレーニングプラットフォームです。カタログは現在提供されている4つのOWASPトップ10ファミリー (Web、API、モバイル、クライアントサイド) にわたる200以上のトピックを網羅しており、学習者体験は8つのUI言語で利用可能です。

SecureCodingHubとは?

SecureCodingHubは、実世界のセキュアコーディングスキルを構築するために設計された2つのトレーニングモードを提供します:

練習モード

開発者が脆弱なコードブロックを見つけ、正しい修正を選択するコードレビューチャレンジ。7つのバックエンド言語、6つのフロントエンドスタック (React、Vue、Angular — 各々TypeScriptとJavaScript)、2つのモバイルプラットフォームで利用可能。

学習モード

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

サポートされているOWASPカテゴリ

トレーニングコンテンツは、4つの主要なOWASPセキュリティ標準にわたって編成されています:

カテゴリトピック説明
Web Top 1010モジュール、約88トピックSQL Injection、XSS、CSRF、Broken Access Control、その他
API Top 1010モジュール、約45トピックBOLA、Broken Authentication、Mass Assignment、SSRF、その他
Mobile Top 1010モジュール、約47トピックInsecure Storage、WebView Injection、Certificate Pinning、その他
Client-Side Top 1010モジュール、約46トピックDOM XSS、Prototype Pollution、Local Storage Secrets、その他

サポート言語とフレームワーク

バックエンド言語

JavaScript
TypeScript
Python
Java
C#
PHP
Go

フロントエンドフレームワーク

React (TS)
React (JS)
Vue (TS)
Vue (JS)
Angular (TS)
Angular (JS)

モバイルプラットフォーム

Swift (iOS)
Kotlin (Android)

ユーザーロール

各組織内で、ユーザーは2つのロールのいずれかになります:

ロールアクセス権
組織管理者ユーザー、チーム、課題、カスタムコース、SSO、SCIM、SCORM、APIキー、Webhook、監査ログ、コンプライアンスダッシュボード、組織設定を管理します。
学習者練習チャレンジと学習シナリオを完了し、個人の進捗を追跡し、XPを獲得します。

詳細はロールと権限を参照してください。

UI言語

学習者と管理者のインターフェースは8つの言語に翻訳されています。ユーザーはトップバーからUI言語を選択でき、選択はセッション間で維持されます。

English (en)
Türkçe (tr)
Español (es)
Français (fr)
Deutsch (de)
Русский (ru)
日本語 (ja)
한국어 (ko)

トレーニングコンテンツの翻訳は別途展開中です — チャレンジシナリオと散文は、ローカライズされるにつれて同じ言語セットに翻訳されます。

ダッシュボードの概要

こちらが初回サインイン時に表示される管理者ダッシュボードです:

app.securecodinghub.com/organization
ダッシュボード
組織全体のトレーニングスナップショット
完了率
76%
アクティブユーザー
89 / 124
平均スコア
132 / 160
ユーザーあたりの平均チャレンジ数
14.9
リーダーボード
XPトップ5
#1Sarah Chen87 chal12 scn4,280 XP
#2James Park87 chal12 scn3,910 XP
#3Emma Wilson87 chal12 scn3,650 XP
#4Alex Kumar87 chal12 scn3,420 XP
#5Maria Santos87 chal12 scn3,100 XP
次のステップ:クイックスタートガイドに進んで組織をセットアップし、最初のユーザーを追加してください。

2つのモードがどのように補完し合うか

練習と学習は、2つの形式の同じ演習ではありません。練習モードはコードレベルのパターン認識を対象としています: 数行のコードを与えられたとき、安全でないプリミティブを見つけて、安全な置換を選択できるかどうかです。これは高速で反復可能であり、幅広い脆弱性タイプにわたる筋肉記憶を構築するのに最適です。PythonとTypeScriptで40種類のSQLインジェクションの亜種を見てきた開発者は、実際のプルリクエストで次のものを考えることなく検出します。2段階フローについては練習モードを参照してください。

学習モードは練習モードがカバーできないものを扱います。コードレビューチャレンジはスニペットを示しますが、実際の脆弱性は2つのファイル、2つのサービス、または2つの信頼層のギャップに存在します。学習シナリオはシミュレートされたアプリケーションの前にあなたを置き、攻撃者の経路を順を追って案内します: 発見、悪用、影響、防止。そのコンテキストこそが、チェックリストの緩和策を設計の本能に変えるものです。幅には練習を、深さには学習を使用してください。新入社員は通常、そのカテゴリの練習を集中的に行う前に、各カテゴリで1つの学習シナリオから始めます。シナリオ構造については学習モードを参照してください。

プラットフォームが脆弱性クラスを中心に構築されている理由

カタログはOWASPカテゴリと脆弱性タイプによって編成されており、プログラミング言語ではありません。これは意図的なものです。脆弱性は言語に依存しない概念です: SQLインジェクションは、クエリがPython、Java、Goで存在するかどうかに関係なく、ユーザー入力がクエリプランに到達する方法の問題です。言語別に編成されたプラットフォームは、知識のサイロ化を招きます。自分の言語でXSSを学ぶPython開発者は、同じプリミティブがVue、Angular、Reactに異なるエスケープルールで現れることを決して見ません。クラス別に編成することで、このギャップを回避します。

スタック設定システムは、その下にある言語固有の表面積を処理します。スタック設定を介してスタックを一度選択すると、すべてのチャレンジはあなたが流暢に読める構文にデフォルト設定されます。その下では、同じ脆弱性クラスが、サポートされているすべてのスタックにわたって同じ概念的フレームで教えられます。後でチームを移動したり新しい言語を学んだりするとき、概念は最初から1つの構文に縛られていなかったため、すぐに転送されます。