アプリケーションセキュリティ
シフトレフトセキュリティ
別称: シフトレフト, 早期セキュリティテスト
定義
セキュリティ活動をソフトウェアライフサイクルの早い段階に前倒しし、コードが本番に到達する前に脆弱性を発見・修正する取り組み。
シフトレフトセキュリティは、欠陥(セキュリティ欠陥を含む)は混入箇所の近くで検出できるほど修正コストが低いという考え方に基づきます。具体的には、設計レビューに脅威モデリングを組み込み、IDE や Pull Request ごとに SAST と SCA を実行し、Infrastructure-as-Code を apply 前に解析し、ビルド時に依存関係やコンテナイメージを検証します。ランタイム防御を置き換えるものではなく補完するものであり、ランタイム側に届く問題の量と深刻度を減らすことが目的です。成功には高速かつ正確なツール、優れた開発者体験、明確な責任分担が不可欠です。
例
- Semgrep の pre-commit フックを設定し、push 前に開発者へ検出結果を提示する。
- CI で Terraform に対して Checkov を実行し、安全でないクラウド設定をブロックする。
関連用語
DevSecOps
セキュリティの責任を DevOps のワークフローに組み込み、安全なソフトウェアを継続的かつ高速に提供するための文化とプラクティス群。
セキュアソフトウェア開発ライフサイクル(SSDLC)
要件・設計・実装・テスト・リリース・運用といったソフトウェア開発の各フェーズにセキュリティ活動を組み込んだライフサイクル。
SAST(静的アプリケーションセキュリティテスト)
ソースコード・バイトコード・バイナリを実行せずに自動解析し、インジェクションや安全でない API、弱い暗号などのセキュリティ欠陥を検出する手法。
SCA(ソフトウェアコンポジション解析)
アプリケーションが利用するオープンソース・サードパーティコンポーネントを自動解析し、既知の脆弱性、ライセンス問題、古い・危険な依存関係を洗い出す手法。
脅威モデリング
資産・脅威・脆弱性・対策を体系的に分析し、セキュリティを後付けではなく設計段階から組み込むための構造化された手法。
Secure Coding
Secure Coding — definition coming soon.