DevOpsとの違いは?
DevOpsは開発と運用の壁を取り払う。DevSecOpsはさらにセキュリティの壁も取り払う。従来は開発が完了してからセキュリティチームが検査していた。DevSecOpsではCIパイプラインにセキュリティスキャンを組み込んで、コードを書いた段階で脆弱性を検出する。「セキュリティは最後」から「セキュリティは最初から」への転換だよ
CIに何を組み込むの?
①SAST(Static Application Security Testing):ソースコードの脆弱性を静的解析、②SCA(Software Composition Analysis):依存ライブラリの脆弱性をチェック(Dependabot、Snyk)、③シークレットスキャン(ハードコードされたAPIキーの検出)、④コンテナイメージのスキャン(Trivy)。全部CIで自動実行するよ
Shift Leftって何?
開発プロセスのタイムラインを左(早い段階)にセキュリティテストを移動すること。設計段階で脅威モデリング、コーディング段階でSAST、テスト段階でDAST(Dynamic AST)、リリース前にペンテスト。問題の発見が早いほど修正コストは低い。本番で見つかるバグの修正は設計時の100倍のコストがかかるという研究もあるよ
文化面で大事なことは?
①セキュリティを「ブロッカー」ではなく「イネーブラー(実現者)」と位置づける、②開発者にセキュリティトレーニングを提供、③セキュリティチームが自動化ツールを提供して開発者のセルフサービスを促進、④脆弱性を報告した人を責めない文化。「セキュリティは全員の仕事」という意識改革が最も重要だよ