シフトレフトとは?注目される理由や実施のポイントを解説

シフトレフトとは?注目される理由や実施のポイントを解説

公開日
2023年7月27日

ソフトウェアやアプリケーションを開発する企業にとって重要なのは、適切なタイミングでセキュリティ対策やテストを実施して、開発工程を効率化することです。そのような開発を実現する手法として、シフトレフトが注目されています。
この記事では、シフトレフトが注目される理由や、DevOpsやDevSecOpsとの違い、シフトレフト実施のポイントなどを解説します。

シフトレフトはセキュリティ対策やテストの前倒し

シフトレフトは開発工程において、セキュリティ対策やテストを、通常より前倒しして実施する開発手法です。開発工程を図にすると、左から右に時系列で開発プロセスを示すことが多く、図の「右側」で行われてきたセキュリティ対策やテストの工程を「左側」に移動して実施することから、シフトレフトと呼ばれます。

多くの場合に、セキュリティ対策やテストは、開発・実装後に行われますが、シフトレフトではこれらの工程を前倒しして行います。設計の段階にセキュリティ対策やテストを組み込むことで、早期に設定ミスや脆弱性などのセキュリティ上の問題点を発見することが可能です。また、ソフトウェアやアプリケーションを開発し終えてからセキュリティの懸念が顕在化してしまい、最初から開発し直せざるをえない、という事態を避けられるので、開発物のリリースが遅延する可能性も低減できるでしょう。

シフトレフトが注目される理由

シフトレフトが注目される理由は、短期的なサイクルでのシステム開発が一般化したためです。頻繁なリリースと修正を繰り返す開発手法において、従来どおり、セキュリティ対策やテストを最終工程で行うと、修正作業が増えて開発スピードが落ちてしまいます。リリースの遅延による機会損失によって、業績全体に影響を及ぼす可能性もあるでしょう。
セキュリティ対策やテストを、開発フェーズで実行するシフトレフトを導入することによって、潜在的な問題の早期発見と解決が実現します。結果として、リリース後の不具合やトラブルも少なくなり、ソフトウェアやアプリケーションの信頼性を高めることにつながります。

DevOpsやDevSecOpsとの違い

DevOps(デブオプス)やDevSecOps(デブセクオプス)は、開発チームと運用チームが連携してソフトウェア・アプリケーション開発に取り組む体制です。シフトレフトが、セキュリティ対策やテストを前倒しして実施する工程管理の考え方であるのに対し、DevOpsとDevSecOpsは開発体制に注目している点に違いがあります。これら3つの概念は、工程を重視するか、体制に注目するかの違いはありますが、効率的な開発を目指す点は共通しています。

DevOpsは、開発を意味する「Development」と、運用を意味する「Operation」を組み合わせた造語で、明確な定義はありませんが、一般的に開発チームと運用チームとが連携するか、もしくは、組織や担当を統合することで、柔軟かつスピーディーな開発を実現する手法を指しています。DevSecOpsはDevOpsを発展させた開発体制です。DevSecOpsのSec、は「Security(セキュリティ)」を意味し、DevOpsのサイクル全体でセキュリティ対策を実施します。

シフトレフトを実施するためのポイント

ソフトウェアやアプリケーションの開発において、従来セキュリティチームが担当してきたプロセスのシフトレフトを実現するには、これまでの開発手法を変更する必要があります。シフトレフトを実現するための3つのポイントを紹介します。

セキュリティチームを設計に参加させる

シフトレフトを実施するためのポイントは、セキュリティチームを設計に参加させることです。セキュリティチームを、従来関与が少なかった設計の段階から参画させます。これにより、設計の段階から、セキュリティチームのレビューが得られます。結果として、計画していた開発内容を変更しなければならない可能性もありますが、開発の段階での修正が減少し、全体としては効率化が期待できるでしょう。

セキュリティ検証済みのツールを開発に活用する

セキュリティ検証済みのツールを開発に活用することも、シフトレフトを実施するためのポイントです。セキュリティチームが事前にレビューしたツールやライブラリを開発に使用すれば、一定以上のセキュリティレベルを保って開発に取り組めるようになります。属人化しがちなソースコードも統一され、開発の標準化が進むでしょう。
一般的に、業務が属人化すると品質を担保しにくくなります。開発が標準化されることで、誰もがすべてのプロセスを同一のレベルで作業できるようになり、成果物の品質が向上します。結果として、セキュリティレベルの維持にもつながるでしょう。

テストの自動化

テストの自動化もシフトレフトを実施するためのポイントといえるでしょう。自動化したテストで、一般的なセキュリティの脆弱性は特定可能です。開発のテストプロセスに自動化ツールを組み込めば、個別のセキュリティ審査が不要となる上、手作業による評価のばらつきもなくなります。新たなセキュリティホールに対応する必要があるため、継続的に自動テストの設計と開発を行いましょう。

Trend Micro Cloud One - Container Security™とTrend Micro Cloud One - Network Security™でシフトレフトを実現

分かれ道の画像

柔軟かつスピーディーな開発を進めるには、アプリケーションの動作環境を仮想的な独立空間で構築するコンテナ環境が有効です。そして、そこで重要になってくるのが、セキュリティ対策を企画・設計の段階から講じる「Security by Design」の考え方とシフトレフトです。
最後に、コンテナ環境のセキュリティ対策に貢献するTrend Micro Cloud One - Container Security™Trend Micro Cloud One - Network Securityを紹介します。

Container Security

Container Securityは、コンテナ環境を一括して保護するシステムです。イメージスキャンの段階で、脆弱性の検出などを実施し、ポリシーやスキャン結果をもとにコンテナイメージのデプロイを制御します。また、ランタイムの監視では、不正なファイル操作やコマンド実行を検知します。

Network Security

Network Securityは、コンテナやサーバ、サーバレスが混在する環境に適した脆弱性対策のソリューションです。ネットワーク上で仮想パッチ(IPSルール)を提供することで、セキュリティソフトウェアが導入できない環境まで保護することができます。コンテナ環境を守るContainer Securityに対して、Network Securityは環境全体を一括して守るソリューションです。

Trend Cloud Oneで、シフトレフトを実現しよう

セキュリティ対策のシフトレフトは、ソフトウェアやアプリケーションの開発の効率化に貢献します。トレンドマイクロでは幅広いクラウド環境に対応し、お客さまの適切なセキュリティ対策を実現する「Trend Cloud One」を提供しています。ぜひ、「Trend Cloud One」をご活用ください。

3分でわかる!製品概要はこちら

関連記事

新着記事