シフトレフトとは、開発プロセスの早い段階でセキュリティを移行することを指します。 アプリケーションを X 軸としてアプリケーション開発のプロセスをグラフ化すると、このプロセスは、有料の顧客に販売するアプリケーションを開発するか、社内で使用するアプリケーションを開発するかにかかわらず、テクノロジまたはサービスが満たすニーズを認識することから始まります。 ソリューションが構想、設計、開発、構築、テストの段階を経るにつれて、多くの場合、セキュリティはデプロイメント前の最後のステップでした。 セキュリティは、エンドユーザーにリリースされる前に、アプリケーションの外側にラップされただけでした。 そして、このステップは、必然的に時間を追加しました。
さらに、プロセス全体でセキュリティをより緊密に統合することで、最後にセキュリティに取り組むのではなく、セキュリティの成果が向上します。
シフトレフトは、これらの問題を解決する方法です。
ソフトウェアがすぐに公開されると、リスクもすぐに公開されます。
ザ DevSecOps の 6 つの柱クラウドセキュリティ アライアンス (CSA) が公開している Automation では、「セキュリティは、設計されて初めて実現できる」と述べています。セキュリティ対策を後回しにすると、大惨事を招くことになります。
セキュリティ保護は、同じ自動化されたパスに従う必要があります。 開発ライフサイクル全体を通じてセキュリティを緊密に統合することで、リリースまでの時間を短縮できるだけでなく、セキュリティも向上します。
開発が完了した後、リリース前にセキュリティを実装する従来のプロセスでは、セキュリティチームと開発チームの間で頻繁に衝突が発生していました。 開発チームは、タスクの自分の役割を完了すると、アプリケーションをエンドユーザーの手に渡し、作業の結果を提供し、フィードバックの収集を開始し、期限に間に合わせようとしました。 セキュリティがリリースにブレーキをかけると、両者の間に敵対関係が生じました。
ShiftLeftが165人以上の開発者、アプリケーションセキュリティ、DevOpsの専門家を対象に実施した調査によると、回答者の89%が、開発者とサイバーセキュリティチームの間の現在の断絶が生産性の最大の阻害要因であると回答しています。
セキュリティをシフトレフトすることで、チームは代わりに協力し、アプリを予定どおりに安全にリリースするために必要なプロセスを統合できます。
シフトレフトには、セキュリティのベストプラクティスをいつ、どこで、どのように適用するかを変更することが含まれます。 セキュリティは、開発者とDevOpsとの信頼関係を構築する必要があります。 DevOps 自動化の文化と、コードのデプロイ速度を理解しておくと役に立ちます。
シフトレフトの一環として、 作業を追加せずに安全に作業を行うためのツールを開発者に提供する必要があります。 これには、デプロイメントの時点での脆弱性スキャンの実行やLambda関数のアクセス許可の生成などのセキュリティの自動化が含まれます。
セキュリティはプロアクティブでなければなりませんが、その速度を維持しながら達成することは困難です。 制御、ガバナンス、オブザーバビリティを確保する必要があります。 セキュリティの専門家は、ビジネスを制限するのではなく、可能にする必要があります。
開発者は、安全なコーディング方法を理解することが重要です。 これにより、セキュリティアナリストではなく開発者が脆弱性を早期にチェックして排除することができます。
最高技術セキュリティ責任者(CTO)のMarco Rottigni氏は、 Computer Business Review誌に「開発者は、DevOpsプロセスのあらゆる段階でセキュリティとコンプライアンスの制御をトリガーするプラグインを活用できるようにし、脆弱なコードの迅速な修復を可能にするために、一般的に使用するツール内で結果を公開する必要があります」と述べています。
左傾化の進展はあるものの、それだけでは十分ではないことも少なくありません。 GitLabの 「Mapping the DevSecOps Landscape 2020 Survey」では、回答者の42%以上が、 テストはライフサイクルの後半で行われると回答しています。
セキュリティの自動化がなければ、DevOpsチームは人間の承認を待つ必要があるため、しばしば妨げられます。
Paul Holland氏が Computer Weeklyに書いているように、「CISOは、開発者には安全に開発する時間が与えられるべきであり、構築にかかる時間だけでパフォーマンスを判断するべきではないことを認識する必要があります」。
アプリケーションのセキュリティに関する追加の義務を開発者に割り当てながら、開発者が猛烈なペースを維持することを期待するのは不合理です。 セキュリティをシフトレフトすると、プロセスがより効率的になり、市場投入までの時間を短縮できますが、コードレビューなどのセキュリティタスクに時間を割り当てる必要があります。
「セキュリティ制御は、タイムリーで有意義なフィードバックを可能にする自動化されたセキュリティ機能なしではうまく統合できません 。 ささやかな自動セキュリティ機能を採用することで、あらゆるリスクを排除できる可能性があります」と、クラウドセキュリティアライアンスのリサーチアナリストである Sean Heide氏は述べています。
修復を自動化します。 自動化された方法で解決できる問題を解決するためにチケットを作成しないでください。 開発者に、デプロイしようとしているスタックのセキュリティを評価するためのセルフサービスを提供します。
Puppetのフィールド最高技術責任者であるNigel Kersten氏は、DevSecOpsの実践において自動化を大規模に展開する ことの重要性を強調し ました。 「(大規模な自動化を)行わなければ、組織は同じ手作業のプロセスと相反するインセンティブを抱えることになります。 そうなると、これらのビジネスにはDevSecOpsの代わりに、Dev、Sec、Opsだけが残ることになります」
異種のソリューションでは不十分です。 特に、アプリのセキュリティは、アプリの変更に自動的に適応するようには設計されていませんでした。 ほとんどのクラウドインフラストラクチャは大規模で、動的な環境も備えているため、セキュリティは特に困難です。
今日のセキュリティ専門家は、すべてのクラウド環境に多層セキュリティを導入し、すべての業務において一貫したセキュリティアプローチとポリシー言語を導入する必要があります。 チェック・ポイントは、クラウドの規模とスピードで保護する自動化されたセキュリティ アプローチを提供します。 ポスチャー管理、資産に関する忠実度の高い可視性により、構成を追跡します。 ベスト プラクティスと独自のポリシーに従って保護を維持します。 クラウドインフラストラクチャ全体を継続的に監視し、アクションを実行します。