ストーリー
シフトレフトセキュリティとは
従来型 vs シフトレフト
| 観点 | 従来型(シフトライト) | シフトレフト |
|---|---|---|
| セキュリティチェックのタイミング | リリース前、本番デプロイ前 | コーディング時、コミット時、PR時 |
| 発見のコスト | 高い(修正に時間がかかる) | 低い(即座に修正可能) |
| 責任 | セキュリティチームが責任 | 開発者が責任(Security as Code) |
| フィードバック速度 | 遅い(数日〜数週間) | 速い(数分) |
従来型のセキュリティ:
開発 → テスト → ステージング → セキュリティレビュー → 本番
↑
ここで初めて脆弱性を発見
→ 修正コスト: 大
シフトレフト:
↓ セキュリティチェック
開発 → テスト → ステージング → 本番
↑ IDE ↑ PR ↑ デプロイ前
Lint/SAST SAST/SCA DAST/Pen Test
ここで脆弱性を発見
→ 修正コスト: 小
シフトレフトの4つのレイヤー
レイヤー1: 開発者のローカル環境
開発者がコードを書いている段階でセキュリティ問題を検出します。
| ツール | 検出内容 | タイミング |
|---|---|---|
| IDE プラグイン(Snyk, SonarLint) | コード上の脆弱性パターン | リアルタイム |
| pre-commit hooks | シークレットの誤コミット | コミット前 |
| ローカルSAST | セキュリティバグパターン | 保存時 |
レイヤー2: Pull Request
PRの段階でセキュリティレビューを自動化します。
| チェック | ツール例 | 必須/推奨 |
|---|---|---|
| SAST(静的解析) | Semgrep, CodeQL | 必須 |
| SCA(依存関係チェック) | Snyk, Dependabot | 必須 |
| シークレットスキャン | GitLeaks, TruffleHog | 必須 |
| ライセンスチェック | FOSSA, License Finder | 推奨 |
レイヤー3: CI/CDパイプライン
ビルドとデプロイの過程でセキュリティを検証します。
| チェック | タイミング | ツール例 |
|---|---|---|
| コンテナイメージスキャン | ビルド後 | Trivy, Grype |
| IaCスキャン | デプロイ前 | tfsec, Checkov |
| DAST(動的解析) | ステージングデプロイ後 | OWASP ZAP |
| SBOM生成 | ビルド後 | Syft, CycloneDX |
レイヤー4: ランタイム
本番環境で継続的にセキュリティを監視します。
| チェック | ツール例 | 目的 |
|---|---|---|
| ランタイム脆弱性検出 | Falco, Sysdig | 異常な挙動の検出 |
| ネットワークポリシー | Calico, Cilium | 不正な通信の防止 |
| 新規CVE通知 | Snyk Monitor | デプロイ済みの脆弱性の追跡 |
組織への導入戦略
シフトレフトを20チームに一気に導入することはできません。段階的なアプローチが必要です。
Phase 1: 検知(Detect)— 最初の1ヶ月
- セキュリティスキャンをパイプラインに追加(警告のみ、ブロックしない)
- 現状の脆弱性の可視化
- 開発者への意識付け
Phase 2: 防止(Prevent)— 2-3ヶ月目
- 高リスクの脆弱性はPRをブロック
- シークレットスキャンを必須化
- SCA(依存関係チェック)を必須化
Phase 3: 自動化(Automate)— 4-6ヶ月目
- 自動修正(Dependabotによる自動PR)
- SBOM自動生成
- コンプライアンスレポートの自動化
「最初から全部ブロックすると、開発チームの反発を招く。まずは可視化から始めて、開発者自身がセキュリティの重要性を実感するプロセスが必要だ」 — 田中VPoE
まとめ
| ポイント | 内容 |
|---|---|
| シフトレフト | セキュリティチェックを開発の早期段階に移動 |
| 4レイヤー | ローカル、PR、CI/CD、ランタイムの4層で防御 |
| 段階的導入 | 検知→防止→自動化の3フェーズで展開 |
| 開発者体験 | ブロックの前に可視化から始める |
チェックリスト
- シフトレフトセキュリティの概念を理解した
- 4つのレイヤーでの防御戦略を理解した
- 組織への段階的導入アプローチを理解した
次のステップへ
次は「SAST・DAST・SCAの統合戦略」です。具体的なセキュリティスキャンツールの選定と、パイプラインへの統合方法を学びましょう。
推定読了時間: 30分