Content last updated 2026-04-29

GitLab セキュリティ セキュアコーディングトレーニング

このページには、GitLab セキュリティチームが主催するセキュアトレーニングイニシアチブに関する情報が掲載されています。

セキュリティ開発プロセス

GitLab でセキュリティ修正を開発する方法については、 セキュリティ修正の準備のためのパッチリリースランブック を参照してください。 (必須)

セキュアコーディングガイドライン

GitLab セキュアコーディングガイドライン (必須) では、GitLab で特定されている特定のクラスの脆弱性に対処する方法をカバーしています。

Secure Code Warrior

GitLab は継続的なセキュアコーディングトレーニングを提供するために Secure Code Warrior を使用しています。対象となるチームメンバーは Okta 経由でログインできます。トレーニングは年次で割り当てられますが、自分自身で探索することもできます (この Okta タイルがある場合)。

アクセス権を持っているはずなのに Okta に表示されない場合は、#security_help に問い合わせて支援を求めてください。

Secure Code Warrior の使い方

チームメンバーにはコースが割り当てられる場合があります。Ruby、Go、Vue.JS、Python など、利用可能な任意の言語でコースを修了できます。コースを見つけて修了するには、以下の手順に従ってください: https://help.securecodewarrior.com/hc/en-us/articles/360040802312-Courses-Module-Overviewhttps://portal.securecodewarrior.com/#/courses/course-list でコースリストを確認できます。

セキュアコーディングについて学び、スキルを磨くために、毎月チャレンジやミッションの形でトレーニングを自分で選択することをお勧めします。これらのハンズオン例は、より良いコードを書き、コードレビュー中に潜在的なセキュリティ上の懸念点を発見するのに役立ちます。詳細は https://help.securecodewarrior.com/hc/en-us/articles/360035983992-Training-Module-Overview をご覧ください。

時々、セキュリティ部門は トーナメント を実施することもあります。トーナメント開始日に先立って、これらの詳細情報がリリースされます。

サポートを得る

Slack チャンネル #security_help を訪れて、チャットしたり、質問したり、フィードバックを提供したり、サポートを得たりしてください。

バグ、混乱を招くコンテンツ、または不正確な回答を見つけましたか? Secure Code Warrior の組み込みバグ報告を使用してください。右上の「Help」を選択し、次に「Submit bug or feedback」を選択します。これにより、すべてのユーザーのプラットフォームの改善に役立ちます。

必須トレーニング

GitLab は、開発責任を持つチームメンバーが、少なくとも年に 1 回、特定のセキュアコードトレーニングコースを修了することを義務付けています。各チームメンバーは、遅くとも会計年度末までにそれを修了する必要があります。

トレーニングは Secure Code Warrior 経由で提供され、コースのタイトルは 「GitLab Secure Development Short Course」 です。所要時間は 1 〜 3 時間です。要件はコースを修了することのみです: ヒントを使ってもよく、不正解でも問題ありません。楽しんで学んでください!

必須トレーニングを修了する必要のあるロールを表示するには展開してください。

包含基準は以下のとおりです:

  • ロールの説明に、GitLab の RED データと相互作用する可能性のあるコードの記述またはレビューが含まれており、Secure Code Warrior でサポートされている言語でのものであるか?
    • これは通常、個人貢献者とその直属マネージャーです。シニアマネージャー以上は現時点では除外されています。
  • AppSec はそのロールがいずれにせよセキュアコードトレーニングから利益を得ると信じているか?

ロールがすでにリストにあるが Okta に SCW が表示されない場合は、Slack の #security_help でサポートを求めてください。AppSec チームメンバーがあなたを Google グループ に追加し、ベースラインエンタイトルメント / オンボーディングチェックリストを更新して、将来そのロールの人が含まれるようにします。

ロールは以下のとおりです:

  • ENG_DEVELOPMENT ジョブファミリーに割り当てられたチームメンバー

追加の登録のため手動でフォローアップするチーム:

  • セキュリティアシュアランス

その他のトレーニング

言語固有のガイドライン

その他のガイドラインとリソース

Jim Manico とのセキュアコーディングトレーニング

説明

Jim Manico と Brakeman の作者である Dr. Justin Collins が開催した、開発者向けのアプリケーションセキュリティトレーニングが、2019 年 7 月 29 日と 30 日に行われました。 セキュアコーディング全般に加えて、Ruby on Rails アプリケーションの特定の脅威と緩和策もカバーしています。コンテンツは軽快でエンターテインメント性のある方法で提示されています。

録画されたプライベート YouTube ストリームは以下にあります:

これらのビデオはデフォルトでプライベートです。視聴するには、GitLab Unfiltered アカウントに切り替える 必要があります。

推奨事項

  • 自分に関連する各トピックのビデオを視聴するか、スライドを読んで ください。
  • ビデオは 2 日間の全日にわたって録画されました。 視聴を複数日にわたってトピック別および/または時間別に分割することをお勧めします。
  • ビデオを 1.25 倍速 で視聴することを検討してください

スケジュールとトピック

Day 1

Day 1 Morning
  1. アプリケーションセキュリティ入門 (4:33)
  2. 脅威モデリング
  3. OWASP Top Ten 2017 概要 (42:57)
  4. A1: インジェクション (52:03)
  5. A2: 認証の不備とセッション管理 (1:19:50)
  6. A7: クロスサイトスクリプティング - XSS (2:09:45)
  7. A8: 安全でないデシリアライゼーション (2:15:10)
  8. A9: 既知の脆弱性のあるコンポーネントの使用 (2:22:26)
  9. A10: 不十分なロギングとモニタリング (2:24:30)

カバーされているその他のトピック:

  • OWASP ASVS 4.0
  • マルチフォームワークフローのセキュリティ
Day 1 Afternoon
  1. XSS 防御 - HAML (1:51)
  2. 安全なクライアントサイド JSON ハンドリング (1:45:31)
  3. iFrame サンドボックス化 (1:57:25)
  4. 入力の検証 (2:04:50)
  5. 検証されていないリダイレクト (2:22:14)
  6. DevOps ベストプラクティス (3:14:30)
  7. コンテンツセキュリティポリシー (3:36:31)
  8. Brakeman と静的解析 (4:09:20)

カバーされているその他のトピック:

  • DevOps ベストプラクティス
  • Vue.js アプリケーションを安全にコーディングする
  • ファイルアップロードとファイル IO セキュリティ ・複数ステップの安全なファイルアップロード防御、ファイル I/O セキュリティ
  • 入力検証 基本 (許可リスト検証と安全なリダイレクト)
  • サードパーティライブラリのセキュリティ管理 (安全でないサードパーティライブラリの検出と管理)

Day 2

Day 2 Morning
  1. アクセス制御 (4:28)
  2. Rails での安全でない直接オブジェクト参照 (58:20)
  3. クロスサイトリクエストフォージェリ (1:28:33)
  4. Rails でのクロスサイトリクエストフォージェリ保護 (1:52:32)
  5. Cookie オプションとセキュリティ (2:33:45)
  6. サーバサイドリクエストフォージェリ SSRF (2:44:22)

カバーされているその他のトピック:

  • 動的レンダーパスとローカルファイルインクルージョン
  • IDOR とスコープ付きクエリ
  • SSRF 防御
  • 複数のアーキテクチャタイプ (ステートレス、API、Web など) 向けのクロスサイトリクエストフォージェリ CSRF 防御
Day 2 Afternoon
  1. 認証のベストプラクティス (5:40)
  2. Rails 6 のセキュリティ機能 (2:23:15)
  3. OAuth 認可プロトコル v1 入門 (2:48:21)
  4. OAuth v2 (2:51:05)
  5. クライアント登録 (3:04:06)
  6. 認可コードグラント (3:07:44)
  7. OAuth 2.0 用語 (3:21:06)
  8. OAuth 2.0 トークン (3:35:35)

カバーされているその他のトピック:

  • 安全なシークレットストレージ
  • 暗号化されたシークレット/認証情報

ロール別の推奨トピック

フロントエンドエンジニア

  • Day 1
    • アプリケーションセキュリティ入門 (4:33)
    • 脅威モデリング
    • OWASP top 10 概要 (42:57)
    • インジェクション (52:03)
    • 認証の不備 (1:19:50)
    • クロスサイトスクリプティング (2:09:45)
    • 安全でないデシリアライゼーション (2:15:10)
    • 脆弱なコンポーネントの使用 (2:22:26)
    • XSS 防御 (1:51)
    • 安全なクライアントサイド JSON ハンドリング (1:45:31)
    • iFrame サンドボックス化 (1:57:25)
    • 検証されていないリダイレクト (2:22:14)
    • コンテンツセキュリティポリシー (3:36:31)
    • Brakeman と静的解析 (4:09:20)
  • Day 2
    • アクセス制御 (4:28)
    • クロスサイトリクエストフォージェリ (1:28:33)
    • Cookie オプションとセキュリティ (2:33:45)
    • SSRF (2:44:22)
    • 認証 (5:40)
    • Rails6 のセキュリティ機能 (2:23:15)
    • OAuth (2:51:05)

バックエンドエンジニア

  • Day 1
    • アプリケーションセキュリティ入門 (4:33)
    • 脅威モデリング
    • OWASP top 10 概要 (42:57)
    • 認証とセッション管理 (1:19:50)
    • 安全でないデシリアライゼーション (2:15:10)
    • 脆弱なコンポーネント (2:22:26)
    • ロギング & モニタリング (2:24:30)
    • XSS 防御 (1:51)
    • 入力の検証 (2:04:50)
    • DevOps ベストプラクティス (3:14:30)
    • Brakeman (4:09:20)
  • Day 2
    • アクセス制御 (4:28)
    • 安全でない直接オブジェクト参照 (58:20)
    • SSRF (2:44:22)
    • 認証のベストプラクティス (5:40)
    • Rails 6 のセキュリティ機能 (2:23:15)
    • OAuth (2:51:05)

SRE

  • Day 1
    • アプリケーションセキュリティ入門 (4:33)
    • 脅威モデリング
    • OWASP top 10 概要 (42:57)
    • DevOps ベストプラクティス (3:14:30)

追加リソース