進化するシフトレフト:ソフトウェア開発におけるセキュリティ確保のためのより強力なアプローチ

はじめに
ソフトウェア開発において、スピードとセキュリティの両立は長年の課題となっています。今や「シフトレフト」だけでは急速に進化する脅威に対応しきれない現実において企業に求められるのは、ソフトウェアのライフサイクル全体にわたってセキュリティを組み込む「シフトアップ」という新たな視点です。本稿では、開発スピードを損なわずに高いセキュリティを実現するための実践的なアプローチを紹介します。
シフトレフトの限界
今日の企業には、堅牢なセキュリティを維持しながら、ソフトウェアイノベーションを迅速に実現する、という2つの課題への対処が求められています。サイバー脅威がより巧妙になる中、シフトレフトのアプローチを取るだけではこのバランスを達成できません。開発チームは、ランタイムやリリース後などの後期ステージを含め、開発ライフサイクル全体にわたって強固なセキュリティを確保できる、より包括的なアプローチを取る必要があります。
ここ数年で開発チームがセキュリティをシフトレフトし、開発プロセスにおいて従来よりも早期にセキュリティを組み込めるようになりました。ソフトウェア開発プラットフォームに直接セキュリティポリシーとツールを組み込むことで、ポートフォリオ内のすべてのアプリケーションが同じガードレールを一貫して活用できます。このアプローチであれば、セキュリティ基準へのコンプライアンスを一律に実現できます。
その一方で、シフトレフトによって、後続のチームが対処しなければならない新たな負担も生じています。アプリケーションは開発からデプロイ、本番環境へと移行していきますが、デベロッパーが取るセキュリティ対策は必ずしもその過程に対応できているとは限りません。
シフトレフトに勝るアプローチ
組織はソフトウェア開発プラットフォームを導入する際に、セキュリティツールのテンプレートに加え、ポリシーを組み込んだセキュリティに準拠したワークフローを作成します。作成したワークフローはプロジェクトに適用され、ツールはプロジェクト全体で利用されます。これにより、開発チームは重複する作業とオーバーヘッドコストを削減できます。
また、企業はソフトウェアポートフォリオ全体で積極的かつ包括的なセキュリティ対策の恩恵を受けられます。セキュリティが全員の責任である点に変わりはないものの、セキュリティをスタックの上層部に上げることで、組織全体における管理の強化と一貫性の向上を実現できます。何より重要なのは、このようなセキュリティ対策であれば、コードの最初の1行から本番環境、そしてそれ以降もプロジェクトに「定着」するということです。
アプリケーションレイヤーに
セキュリティをシフトする利点
シフトレフトでは開発プロセスの初期ステージにおけるコード保護に重点を置いていますが、「シフトアップ」モデルを採用すれば、デプロイ、ランタイム、リリース後などの後期ステージまでカバーするようにセキュリティ対策を拡張できます。組織は本番環境まで到達する脆弱性を大幅に低減でき、さらに本番環境に達してしまう脆弱性により適切に対応するため準備できます。
早期段階でのセキュリティプロトコルの統合により、すべての開発活動が規制要件に準拠していることが保証され、罰金や制裁、その他の悪影響を企業が受けるリスクが低減されます。さらに、より安全性の高いソフトウェアを開発すれば、顧客、パートナー、利害関係者からの信頼も得られ、結果として評判と競争力が高まります。
次に、開発チームのリーダーがシフトレフトセキュリティを応用して、ソフトウェア開発ライフサイクル全体をカバーできるようにするための3つのステップを紹介します。
再利用可能な自動化されたセキュリティアナライザーの開発
開発チームは、継続的インテグレーション(CI)環境内のさまざまなプロジェクトやアプリケーションアーキテクチャに適用可能で、かつ再利用もできる自動化されたセキュリティテストコンポーネントを構築する必要があります。
例えば、SAST(静的アプリケーションセキュリティテスト)、DAST(動的アプリケーションセキュリティテスト)、依存関係スキャン、コンテナスキャン用のモジュラーコンポーネントを構築すれば統一が取れ、作業の重複が発生しません。
アナライザーとそのパイプライン実装の間に抽象化レイヤーを入れることで、開発チームに到達する前に結果が標準化されます。これにより、セキュリティルールと設定を一元的に管理できるだけでなく、ダウンストリームでの中断やリワークなしで更新や置き換え、または追加のアナライザーの導入をシームレスに行えます。長期にわたってこのアプローチを取れば、組織全体で統一されたセキュリティ体制を維持しながら変化する要件に合わせて進化する、より柔軟で将来を見据えたセキュリティフレームワークを確立できます。
ガードレールとしてのグローバルセキュリティポリシーの確立
組織内のすべてのプロジェクトとチームにわたるセキュリティ対策を標準化し、指針となる包括的なガイドラインとプロトコルが必要となります。構造化されたフレームワークを提供するこれらのポリシーはガードレールとして機能し、プロジェクトにおいて一貫したセキュリティレベルの遵守が保証される一方でプロジェクトのニーズや要件を考慮し、ある程度の柔軟性も許容します。
その実現のために、まずはリスク許容度のしきい値を定義します。しきい値を設定したら、規制要件や社内コンプライアンス基準に沿ったセキュリティポリシーを作成する必要があります。作成するセキュリティポリシーにはセキュリティスキャンの実行など、全プロジェクトに自動的に適用される必須タスクを含めます。ポートフォリオ全体の管理を容易にし、多様な要件に柔軟に対応できるように、組み合わせ可能な方法でポリシーを設計してください。
状況に応じた承認ゲートの実装
プロジェクト全体にわたるセキュリティポリシーの適用が完了したら、次はセキュリティツールで脆弱性や許容できないリスクが検出された際にコードプロモーションが行われないようにします。その際、結果はデベロッパーに通知されるべきです。また、承認ゲートは必要な場合にのみ使用すべきです。
例えば、SASTスキャナーにより致命的な脆弱性が検出された場合、デベロッパーはそれを解決するか、もしくはコードプロモーションを行う前にセキュリティチームの承認を得る必要があります。脆弱性が発見されなかった場合、またはリスク許容度のしきい値以内である場合、デベロッパーは作業を中断せずに済みます。このアプローチにより、デベロッパーの開発速度を遅らせることなく、責任あるセキュリティ慣行を促進できるのです。
おわりに
ソフトウェア開発ライフサイクル全体に永続的なセキュリティ対策を組み込むセキュリティの「シフトアップ」は、従来のシフトレフトに勝るアプローチです。再利用可能なセキュリティの自動化、グローバルポリシー、状況に応じた承認ゲートの実装により、脆弱性の低減、コンプライアンスの保証、信頼の構築を実現します。これこそが、ソフトウェア開発におけるセキュリティ確保のための積極的かつ持続可能なアプローチと言えます。そして、このアプローチの導入は、セキュリティと迅速なイノベーションの両立を求める企業にとって不可欠なのです。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- DevOpsはここから始めよう
- CNSC 2022からアクセンチュアのセキュリティエンジニアがDevSecOpsの要点を解説
- 【事例】開発プロセスの初期段階からセキュリティを組み込んだ製品を導入することでDevSecOpsやシフトレフトを実現
- 【事例】アジャイル開発を実践する老舗IT企業がCI/CDの効率化で生産性向上とコスト削減を実現
- プロダクトライフサイクルでのシフトレフトを推進―開発者ファーストの思想で一貫したDevSecOps環境を実現するSnyk
- 開発者主導のセキュリティ対策の強い味方、脆弱性スキャンを随所に組み込む「Snyk」の価値
- OSSの脆弱性をチェックするWhiteSourceが日本でのビジネスを本格的に開始
- GitHub Universe 2024、GitHub自体の開発に使われているセキュリティプラクティスを解説
- 「OpenClarity」によるk8sワークロードの脆弱性スキャン
- 新興セキュリティベンダーSnykのVPにインタビュー。デベロッパーファーストセキュリティとは?