DevSecOps 入門は、ターミナルの基本操作ができる方を対象に、日々のソフトウェア提供にセキュリティを組み込む方法を学ぶコースです。小さなヘルプデスクアプリケーション DeskLite を、便利な機能を維持しながら改善します。
14 個のガイド付きラボと、対応する 14 個のチャレンジを用意しています。各ラボは、現在の動作を観察し、リスクを理解し、対象を絞って変更し、結果をテストするという小さなステップで概念を紹介します。対応するチャレンジでは、独立した環境と明確な目標に、学習済みのスキルで取り組みます。サービス設定から、コード、コンテナー、セキュリティチェック、承認されたリリースへと段階的に進みます。
学習内容
- HTTP レスポンスを読み、管理用の待ち受け範囲を制限し、サービスのファイルに利用者が必要とするアクセスだけを許可する。
- 非公開設定を Git コミットから除外し、露出したトークンを失効させ、クライアントを保護された認証情報ファイルに切り替える。
- 実際にインストールされた Python の依存パッケージを更新し、固定バージョンの記録を同期して、元のアプリケーションの動作を確認する。
- SQLite のクエリ構造と入力値を分離し、対象を絞ったローカルのセキュリティスキャンを解釈する。
- 許可・拒否されるリクエストのテストを書き、機密データがログに入った場合の回帰テストを追加する。
- root 以外のユーザーで動作するコンテナーをビルドして実行し、ビルド入力を制限して、イメージの各レイヤーにある非公開データを確認する。
- 検出結果やツールエラーで提供処理を止め、ワークフローの権限を制限し、信頼できないテキストを安全に扱う。
- コミット、チェック、イメージ、マニフェスト、パッケージのチェックサムを、ローカルのステージング環境で実行する正確なリリースに結び付ける。
このコースの対象者
DevSecOps の初学者、開発者、運用を学んでいる方で、アプリケーションの実際の動作からセキュリティを理解したい方に適しています。
前提知識:ターミナルを開き、cd、ls、cat を使い、簡単なテキスト編集ができること。セキュリティ、HTTP、Git、Docker、Python、SQL の事前知識は不要です。新しいコマンドと小さなコードのパターンは、使う前に説明します。
学習環境:各ラボは、ブラウザー内の準備済み Linux 環境で独立して始まります。ツール、練習データ、パッケージ、必要なイメージを提供します。個人の GitHub・クラウドアカウントや、ローカルへのインストールは不要です。
よくある質問
アプリケーションを最初から作る必要がありますか?
いいえ。アプリケーションとヘルパーは用意されています。パターンを学びながら、短い設定ファイル、小さな Python の検索関数、テスト、提供用スクリプトを編集します。
チャレンジはどのように進めますか?
対応するガイド付きラボの後に、新しい環境、明確な要件、任意のヒント、完全な解答を使って取り組みます。学習済みのスキルを組み合わせたり別の場面に適用したりするもので、未学習のツールは導入しません。
修正の完了は何で判断しますか?
実際の状態がセキュリティ境界を満たし、必要な業務動作を維持していることで判断します。成功する経路と拒否する経路の両方をテストします。調査メモやスキャンレポートのコピーは不要です。テスト、ロック記録、リリースパッケージが実際の作業成果である場合は、その有効性を確認します。
練習用スキャンに合格すれば、本番環境も安全ですか?
いいえ。再現可能な練習のため、固定された限定的なルールとアドバイザリーデータを使います。各チェックが確認できることと、その範囲の限界を学びます。ワークフローのチェックとステージングへの提供はローカルで行い、実際の GitHub リポジトリの設定や、本番へのデプロイは行いません。




