シフトレフト

掲載:2023年03月15日

用語集

シフトレフトとは、システムやソフトウェアの開発において、セキュリティ確認のためのプロセスを開発ライフサイクルの早い段階に組み入れる考え方を指します。早い段階でセキュリティテストなどを行うことで、余計な手戻りを防ぎ、結果として開発工期を短縮できるメリットがあります。システム開発の進行は左から右へ流れる形で示されるため、特定のプロセスを後ろ(右側)から前(左側)へシフトするという意味でこのように呼ばれています。

セキュリティ確認は従来、開発ライフサイクルの後半に組み込まれることが一般的でした。例えば「計画→設計→実装→テスト」という工程で進める場合、最後のテストの段階になってようやくセキュリティ確認が行われるという流れです。そこで不具合が見つかると、場合によっては計画や設計の段階まで戻ってやり直さなければなりません。しかし近年は、ビジネス環境の激化や「モバイルファースト」の台頭などにより、より速いスパンでの開発が求められています。このため、より手戻りが少なく、開発工期の短縮につながる考え方としてシフトレフトが注目されるようになりました。

シフトレフトに関連する開発手法として「アジャイル開発」や「DevSecOps」があります。アジャイル開発は従来のウォーターフォール開発のように計画、設計、実装、テストといった開発工程を一つずつ順に進めるのではなく、それらの工程をより小さな単位で何回も小刻みに回しながら完成に漕ぎ着けるアプローチです。アジャイル開発にシフトレフトを組み込むと、工程の中にそれぞれセキュリティ確認を差し込むことができ、よりセキュアで効率的な開発が可能になります。

DevSecOpsは開発担当者と運用担当者が互いに連携して開発を行う「DevOps」の概念に、セキュリティの観点を組み込んだものです。要件定義や設計を含む開発ライフサイクルの全プロセスにセキュリティを統合します。ここにさらにシフトレフトを取り入れると、開発プロジェクト全体を通じて初期段階からセキュリティ確認が行われることになり、さらなる品質向上が期待できます。