シフトレフトセキュリティは、アプリケーションが設計、開発、デプロイ、テストの各段階を経る際に、セキュリティを最後の手段とすべきではないことを認識しています。セキュリティは、エンドユーザーにリリースされる前のアプリケーションライフサイクルの最終段階でアプリケーションを包み込む最終要素と見なされてきました。シフトレフトセキュリティは、アプリケーション開発ライフサイクル全体を通じてセキュリティ対策を最優先することで、この視点を転換します。これにより、開発段階でのセキュリティプロトコルの緊密な統合が可能となり、セキュリティ機能やリリースを早期に実装するよう推進します。個人識別情報(PII)および機密データの保存に関するプライバシー上の考慮事項も扱います。
開発者は課題の最前線で取り組み、中核的な脆弱性を修正することで、より優れたユーザー体験を提供し、新たな脅威への懸念を軽減できます。本ブログでは、セキュリティにおけるシフトレフトについて解説し、以下の基本事項を読者に説明します。

シフトレフトセキュリティとは?
組織は、アプリケーション開発ライフサイクル中にセキュリティ脆弱性に対処しないことで、毎年損失を被っています。これにより新たなセキュリティリスクが生じ、開発者は修正すべき問題のリストを抱え、事態は急速に悪化する可能性があります。開発者はセキュリティ対策の設計において継続的な支援を必要とし、セキュリティチームと緊密に連携する必要があります。
シフトレフトセキュリティは、セキュリティを左側に移動させ、開発の最も早い段階に移行させます。ハッカーはシステムの脆弱性を悪用する手段として独自性を悪用し、他のコンテキスト情報を使って機密データを再識別することが可能です。予測APIを介して外れ値が漏洩する可能性があり、シフトレフトセキュリティモデルは様々なユースケースにおける実シナリオを再現する合成データを生成できます。
なぜシフトレフトセキュリティなのか?
シフトレフトセキュリティは、開発の初期段階でアプリケーションの潜在的な問題を評価し、それらに対処するためのコストを抑えます。ソフトウェア設計上の問題を初期段階で検出・修正することで、組織はデリバリーを効率化し顧客満足度を向上させられます。DevOpsが勢いを増しており、組織は世界中で分散型マイクロサービスの導入を段階的に進めています。
シフトレフトセキュリティはDevSecOps文化の一部であり、開発者が追加ツールに依存したり作業負荷を増やしたりすることなく、安全に業務を遂行できるようにします。ベストプラクティスを開発者のツールチェーンに統合し、自動化された脆弱性テストを実行する継続的インテグレーションパイプラインを実装します。
シフトレフトとシフトライトセキュリティの違い
シフトレフトテストは、開発パイプラインの初期段階でアプリケーションをテストし、セキュリティを左側に移動させるものです。アプリケーション設計段階で脅威を特定・隔離し、後工程で問題化・拡大する前にバグや脆弱性を検出します。
開発者は個々のユニットをバージョン管理にプッシュする前にテストを実行し、アプリケーションのパフォーマンス、エンドツーエンドの自動化、TDDおよびBDD駆動型テストを優先します。
シフトライトセキュリティは反対側、つまりセキュリティを極限まで右側に押しやるものです。エンドユーザーにリリースされた後のアプリケーションをテストします。チームはAPIを監視し、ソフトウェアの運用に基づくユーザビリティやリソース使用状況に関する知見を得られます。また、開発者は継続的な改善とセキュリティ境界の拡大を通じて、機能の最適化や新規機能の追加が可能になります。シフトライトセキュリティは、アプリケーションが実際に処理できるトラフィック量やユーザーリクエストの規模も監視します。これは本番環境前のテストでは検証できない側面です。
シフトライトセキュリティの種類
シフトレフトセキュリティを実現するための標準ツールには、コンプライアンススキャン、依存関係スキャン、コンテナスキャン、動的アプリケーションセキュリティテスト(DAST)、静的アプリケーションセキュリティテスト(SAST)があります。
シフトレフトセキュリティの4つの主要な種類は以下の通りです:
- 従来型シフトレフトテスト
- 段階的シフトレフトテスト
- アジャイル/DevOps型シフトレフトセキュリティ
- モデルベース型シフトレフトセキュリティ
1. 従来型シフトレフトテスト
従来のシフトレフトテストは、ボトムアップのテストを重視し、統合テストとユニットテストの実行に焦点を当てています。
2.インクリメンタル・シフトレフトテスト
インクリメンタル・シフトレフトセキュリティはウォーターフォール開発サイクルに従い、複雑なプロジェクトを小さな増分単位に分割します。また、運用テストと開発テストを左側にシフトさせます。
3.アジャイル/DevOps シフトレフトセキュリティ 
アジャイル/DevOps シフトレフトセキュリティはテスト駆動開発アプローチを採用し、広範かつ継続的なテスト戦略です。必須要件を明確化し、そのフェーズでは運用テストを含みません。
4. モデルベースのシフトレフトセキュリティ
他の3種類のシフトレフトテストとは異なり、モデルベースのシフトレフトセキュリティはコードの欠陥を発見することに重点を置いています。アーキテクチャ性能の遅延を解消し、実行可能コンポーネントのダウンタイムを防止するなど、様々な効果があります。
シフトレフトセキュリティ導入の手順
組織がビジネスワークフローにシフトレフトセキュリティを導入する方法は以下の通りです:
- 1. 戦略の定義
- 2. シフトレフトソフトウェア開発文書の作成
- 3. 開発チームのトレーニング
1. 戦略の定義
組織は、シフトレフトセキュリティの取り組みを定義する1ページの文書を作成します。その目的、担当者、ツール、プロセスを詳細に記述します。この文書には、誰が全体的な所有権を持ち、セキュリティチームに役割がどのように割り当てられるかを記載する必要があります。また、主要業績評価指標(KPI)と重要なシフトレフトセキュリティ指標を追跡します。
2.シフトレフトソフトウェア開発文書の作成
優れたシフトレフトセキュリティは、現在のソフトウェア開発プロセスを考慮に入れます。組織の運用、管理手法、CI/CDツール、および初期開発から本番環境への移行方法を特定することが不可欠です。この文書では、現行のセキュリティ対策の一覧と、その有効性を順位付けして説明します。
3. 開発チームの育成
開発チームに対し、コードを安全に扱い、クラウド上で最適なサイバー衛生習慣を実践するよう訓練します。開発者は関連トレーニングを受講し、クラウド環境全体における新たなサイバー脅威への理解を深めることで、セキュリティ対策に対する高い意識を獲得できます。これにより運用コストが削減され、リスクが軽減され、将来のデータ侵害の可能性を最小限に抑えることができます。
シフトレフトセキュリティのメリットとは?
シフトレフトセキュリティのメリットは以下の通りです:
- シフトレフトセキュリティは、アプリケーション開発ライフサイクルの初期段階で脆弱性を発見します。潜在的なセキュリティリスクを特定し、それらの問題を修正します。
- シフトレフトセキュリティは組織全体のクラウドセキュリティ態勢を強化し、運用コストを削減します。最適な納期を確保し、セキュリティ統合を効率化することで成功率を達成します。
- セキュリティプロセスの最適化により、信頼性とパフォーマンスが向上します。シフトレフトセキュリティアプローチは、事業収益の向上や、様々なプロジェクトにおける第三者・外部エージェントとの連携強化に寄与します。
シフトレフトセキュリティのベストプラクティスとは?
組織におけるシフトレフトセキュリティのベストプラクティスを以下に示します:
- セキュリティポリシーの定義
セキュリティポリシーを定義することで、境界を自動的に適用し、重要な情報を保護することでシフトレフトセキュリティを向上させます。これにより、DevSecOpsプロセスはより効率的、俊敏、スケーラブル、かつ迅速になります。
- 可視性を文化に組み込む
シフトレフトセキュリティの主要な目的は、リリース中およびリリース後もコードの安全性を確保することです。これを実現するには、セキュリティチームがアプリケーションセキュリティを継続的に可視化する必要があり、最新の更新をリリースすることで必要に応じて問題を即座に修正できます。
- 自動化の追加
自動化により、シフトレフトセキュリティのワークフローを高速化し、脆弱性を特定し、潜在的な修正を適用することができます。また、クラウドアプリケーションやシステムに対する外部脅威に対処し、ソフトウェア開発とデプロイの市場投入までの時間を短縮できます。
- コード作成時のセキュリティ修正の実装
開発者は、コード作成時にシフトレフトセキュリティ修正を実装することで、ベストプラクティスを認識できます。これによりエラーを早期に発見し、最適なパフォーマンスと結果を得るために可能な限り迅速にフィードバックを提供します。
- ソフトウェアの構築方法を評価する
ソフトウェアの製造プロセスを理解することは、シフトレフトセキュリティ対策のギャップ解消に役立ちます。これにはSDLCの再検証と、コードベースに関連するツールの特定が含まれます。
結論
事業主が組織に導入するシフトレフトセキュリティソリューションの種類は、予算と要件によって異なります。優れたシフトレフトセキュリティは最も重大な脆弱性に対処し、企業規模での継続的なコンプライアンスを確保します。企業はこれらの先進的なソリューションを導入することで、リアルタイムでの誤検知の検出、アラート疲労の軽減、リリース時間の短縮も実現できます。
シフトレフトセキュリティは最終手段ではなく、アプリケーションセキュリティ強化のための積極的なアプローチと見なされています。組織はクラウドネイティブアプリ開発に伴う懸念を大幅に軽減する方法を模索しており、シフトレフトセキュリティの導入はリリース間隔を短縮する優れた手段です。継続的テストはDevOpsチームが大幅な時間とコストを節約し、ユーザー体験を大幅に向上させる最新機能をアプリにシームレスに追加することを意味します。
シフトレフトセキュリティに関するよくある質問
シフトレフトセキュリティとは、セキュリティチェックをソフトウェア開発の初期段階に移行させる手法です。テストやデプロイまで待つのではなく、開発者は計画段階でセキュリティ要件を定義し、セキュアコーディング手法を採用し、CI/CDパイプラインで自動スキャンを実行します。
これにより、脆弱性はコードレビューやビルド段階で検出され、後々のコストのかかる修正を削減し、セキュリティを最初から全員の責任とします。
リリースまで欠陥を発見せずにいると、高額な手直し作業、ローンチの遅延、そしてより大きな侵害リスクにつながります。セキュリティをシフトレフトすることで、修正コストが最も低い開発段階でコーディングエラーや設定ミスを発見できます。
早期テストはまた、チームがセキュリティ目標に一致して取り組むことを可能にし、土壇場での予期せぬ事態を減らし、最初からより安全なアプリケーションを構築します。これにより、稼働中のシステムに慌ててパッチを適用する必要がなくなります。
設計文書にセキュリティ要件を追加し、開発者にコーディングのベストプラクティスを教育することから始めます。SAST、DAST、シークレットスキャンをCI/CDパイプラインに統合し、コミットごとにチェックを実行します。テスト環境ではIASTツールを活用し、より深い洞察を得ましょう。
開発者に機能バグと並行してセキュリティ上の発見事項を確認するよう促し、機能計画段階では定期的な脅威モデリングセッションを実施します。
静的アプリケーションセキュリティテスト(SAST)ツールは、SQLインジェクション、XSS、ハードコードされたシークレットをソースコードでスキャンします。動的アプリケーションセキュリティテスト(DAST)は、実行中のビルドに対する攻撃をシミュレートします。対話型アプリケーションセキュリティテスト(IAST)は、実行時にコードを監視することで両者を融合します。
ソフトウェア構成分析(SCA)は脆弱なオープンソースライブラリを検出します。シークレット検出ツールは、リポジトリに到達する前に露出された認証情報をフラグ付けします。
シフトレフトセキュリティでは、インジェクション脆弱性、クロスサイトスクリプティング、認証不備、機密情報の漏洩といった不安全なコーディングパターンを発見できます。また、オープンソース依存関係における古いライブラリや脆弱なライブラリもフラグ付けします。
自動スキャンにより、インフラストラクチャ・アズ・コードの設定ミス、暗号化の欠如、ハードコードされた認証情報が本番環境に混入する前に検知され、運用開始初日から攻撃対象領域を縮小します。
ソフトウェア構成分析(SCA)による依存関係のスキャンで悪意のあるパッケージや古いパッケージを検知し、サプライチェーンリスクを低減します。セキュリティを早期に統合することで、サードパーティ製ライブラリが組み込まれる前に監査できます。
改ざんされたコンポーネントをすべて阻止できるわけではありませんが、CI/CD環境で危険なコードを検知し、厳格なバージョン管理を実施することで、隠れたバックドアが潜り込むのを大幅に困難にします。
問題を早期に発見できるため、バグ修正にかかる時間とコストを削減できます。リリースが迅速化され、後期段階でのエラーが減少し、チームは時間をかけてセキュリティスキルを習得します。アプリケーションはより強固なセキュリティ態勢で開始されるため、稼働中のパッチ適用やインシデント対応の負担が軽減されます。全体として、シフトレフトはワークフローを円滑にし、将来の緊急修正を減らします。
マージ前とリリース後の脆弱性検出率を比較し、早期発見率の向上を目指します。コード段階での発見に対する平均修復時間(MTTR)を追跡します。スキャナーの調整と開発者の関与維持のため、誤検知率を監視します。また、ビルド時にブロックされた脆弱なオープンソースコンポーネントの数と、後で発見されたものの数を監視します。
クラウドネイティブアプリケーション保護プラットフォーム(CNAPP)は、コードセキュリティ、インフラストラクチャのポスチャーチェック、脆弱性スキャンを一元的に統合します。SAST、SCA、IaCセキュリティをツールチェーンに組み込み、本番環境導入前のリスクを一元的に可視化します。
CNAPPはポリシー適用と脆弱性管理を効率化するため、個別のポイントツールやダッシュボードを操作することなくシフトレフトを実現できます。

