Topics DevSecOps

DevSecOpsとは?


現在利用しているDevSecOpsとアプリケーションセキュリティは、最新の開発手法に対応できていますか?次世代のソフトウェアでは、アプリケーションセキュリティに対するどのような新しいアプローチが必要となるかをご紹介します。

DevSecOpsとは?

従来、セキュリティは開発ライフサイクルの最後に位置づけられていました。そのため、コードを修正する際にデベロッパーに戻さざるを得ず、コストと時間が余分にかかっていました。開発、セキュリティ、オペレーションを組み合わせたDevSecOpsは、開発ライフサイクル全体にわたってセキュリティを組み込むソフトウェア開発アプローチです。

DevSecOpsとDevOpsの比較

DevOpsは、開発とオペレーションを組み合わせた開発手法であり、従来のプロセスと比較して、効率性、スピード、安全性に優れたソフトウェア開発とデリバリーを実現します。ソフトウェア開発ライフサイクルの高速化により、企業と顧客に競争優位性がもたらされます。DevOpsを最もわかりやすく説明するとすれば、関係者が協働して安全なソフトウェアをできる限り速く構想、ビルド、デリバリーすることだと言えるでしょう。DevOpsの実践により、ソフトウェア開発(Dev)とオペレーション(Ops)チームは、自動化、共同作業、迅速なフィードバック、および繰り返し行う改善作業を通じて、ソフトウェアデリバリーを加速できます。「DevSecOps」は_Sec_が真ん中に入っているだけで、一見「DevOps」と同じように見えますが、それだけではありません。DevSecOpsはDevOpsから進化を遂げた開発手法であり、稼働中のアプリケーションを保護しモニタリングするためのツールと手法を用いて、デプロイを通じてプロセスソフトウェア開発の各ステージにアプリケーションセキュリティ対策を組み込みます。コンテナやオーケストレーターなどの新たなアタックサーフェスは、アプリケーション自体と併せてモニタリングして、対策を講じる必要があります。DevSecOpsツールはセキュリティワークフローを自動化して、開発チームとセキュリティチーム向けに適応力に優れたプロセスを作り出すことで、コラボレーションを改善してサイロを解消します。ソフトウェア開発ライフサイクルにセキュリティを組み込むことで、目まぐるしく回る反復的なプロセスを確実に保護し、品質を犠牲にすることなく効率性を向上できます。

cost-savings-to-shift-left

アプリケーションセキュリティとは?

アプリケーションセキュリティとは、外部の脅威からアプリケーションを守るために、ソフトウェアやハードウェア、理路整然とした方法を使用することです。最新のアプローチとして、_シフトレフト_や開発プロセスの早い段階での脆弱性の発見および修正に加え、本番環境でのアプリケーションやそのInfrastructure as Codeを保護するための_シフトレフト_などが挙げられます。ソフトウェア開発ライフサイクル自体を守ることも、しばしば必要となります。開発プロセスとオペレーションプロセスにセキュリティを組み込むこのアプローチによって、DevOpsの開発手法がDevSecOpsの開発手法へと効率的に生まれ変わります。このアプローチはエンドツーエンドのDevOpsプラットフォームと使用することで、最大限に効果を発揮できます。

DevSecOpsの基本

DevOpsへの流れが始まるきっかけとなった書籍『The Phoenix Project』を読んだことがある方なら、自動化、一貫性、メトリクス、コラボレーションの重要性を理解していらっしゃると思います。基本的にDevSecOpsではこれらの技術をソフトウェアファクトリーに適用しながら、サイロ化された別のプロセスとしてではなく、その過程でセキュリティ機能を組み込んでいきます。開発チームとセキュリティチームの双方が脆弱性を発見できますが、通常これらの問題を修正するのは開発チームです。そのため、開発チームがコードに取り組んでいる間に、脆弱性を見つけて修正できるようにすることは理にかなっています。スキャンだけでは不十分です。迅速に行動できるために必要な背景情報を添えて、適切な人々が正しいタイミングで結果を得られるようにすべきです。DevSecOpsの基本要件には、ポリシーのガードレールと可視性に加え、自動化とコラボレーションが含まれます。

自動化

GitLabの2022年DevSecOps調査によると、大多数のDevOpsチームが静的アプリケーションセキュリティテスト(SAST)、動的アプリケーションセキュリティテスト(DAST)、またはその他のセキュリティスキャンを定期的に行っているものの、デベロッパーの3分の1未満が実際にはワークフローにおいてその結果を確認できていないことが明らかになりました。セキュリティ担当者の多くは、自社のDevOpsチームがシフトシフトしていると回答しています。また、47%のチームは完全にテストを自動化済みと報告しています。

コラボレーション

脆弱性とその修正方法を信頼できる唯一の情報源で確認できるようにすることで、開発チームとセキュリティチームに大いに必要とされる透明性を実現します。これにより、サイクルを効率化し、デベロッパーエクスペリエンスを向上させ、摩擦やツール間での無駄な情報のやりとりをなくせます。

ポリシーのガードレール

企業によって、許容できるリスクのレベルは異なります。セキュリティポリシーには自社において適切な内容が反映される一方で、遵守すべき規制要件も適用しなければならないポリシーに影響を与えます。ガードレールは自動化と連動して、セキュリティとコンプライアンスポリシーが一貫して適用されるように保証します。

可視性

エンドツーエンドのDevSecOpsプラットフォームを利用することで、監査担当者はソフトウェアライフサイクルの初めから終わりに至るまで、いつどこで、どのような理由により何が変更されたかを明確に確認できます。また、信頼できる唯一の情報源を活用することで、アプリケーションリスクを早い段階で可視化できます。

DevSecOpsを採用するメリット

脆弱性を事前に発見して修正できる

DevSecOpsでは、セキュリティ対策が最後に行われる従来のアプローチとは異なり、ソフトウェア開発ライフサイクルの早い段階でセキュリティのシフトレフトが行われます。開発プロセスをとおしてコードのセキュリティ問題を確認、スキャン、テストすることで、事前にセキュリティ上の懸念を特定し、余計な依存関係が生じる前、またコードが顧客にリリースされる前に、即座に対処できます。

より安全なソフトウェアを迅速にリリースできる

プロジェクトの最後までセキュリティの脆弱性を発見できないとすると、開発チームは最後の最後で急いで問題に対処しようとしなければならず、大幅な遅れが生じる可能性があります。DevSecOpsアプローチを使用すれば、デベロッパーはコーディング中に脆弱性を修正できるため、セキュアなコードの書き方を習得でき、セキュリティレビュー中のやりとりが減ります。これにより、ソフトウェアをより迅速にリリースできるようになるだけでなく、ソフトウェアの安全性とコスト効率も向上します。

最新の開発手法に対応できる

顧客や事業部門のステークホルダーは、信頼性が高く、高速で安全なソフトウェアを求めています。このようなニーズに対応するために、開発チームはセキュリティテストの自動化、継続的インテグレーションと継続的なデリバリー(CI/CD)、脆弱性へのパッチ適用など、コラボレーションやセキュリティに関する最新の技術を活用する必要があります。DevSecOpsが目指すところは、開発、セキュリティ、オペレーションチーム間のコラボレーションを改善して、組織の効率を向上させ、チームがビジネス価値を高める作業に注力できるようにすることです。

DevSecOpsのあなたのチームとの適合性

DevSecOpsを採用することで得られるメリットは、スピード、効率性、コラボレーションと明確なものです。しかし、自社のチームに合っているかどうかはどのように判断すればよいのでしょうか?もし、あなたの組織が次のうちいずれかの課題に直面しているならば、DevSecOpsアプローチを採用したほうがよいかもしれません。

  1. 開発チーム、セキュリティチーム、運用チームが分断されている。開発チームと運用チームがセキュリティ上の問題を確認できなければ、安全なソフトウェアをビルドすることはできません。また、セキュリティチームが開発プロセスに携わっていない場合、事前にリスクを特定できません。DevSecOpsは、チームの足並みをそろえて、ワークフローを改善し、アイデアを共有できるようにします。組織における従業員の士気と定着率が向上することすらあります。

  2. 開発サイクルが長すぎて、顧客やステークホルダーの要求に応えるのが難しい。苦戦している背景には、セキュリティが関係している可能性があります。DevSecOpsは、開発ライフサイクルのあらゆるステップでセキュリティが実装されます。そのため、堅牢なセキュリティにより、プロセス全体を停止させずに済みます。

  3. クラウドに移行中(または移行を検討中)である。クラウドに移行する場合、通常は新たな開発プロセスやツール、システムを導入することになります。そのため、プロセスの安全性を高め、高速化するには絶好のタイミングです。そして、DevSecOpsならこれらの目標をとても簡単に実現できます。

DevSecOps文化の醸成

組織はDevSecOpsアプローチに移行することで、セキュリティ上の脅威にリアルタイムで対処できるようになるものの、この変化は一夜にして実現できるものではありません。正しい考え方を持つことは、大きな変化を遂げる上で、正しいツールセットの利用と同じくらい大切です。DevSecOpsを活用するにあたり、ご自身(そしてチーム)で行うべき5つの準備方法についてご紹介します。

  1. セキュリティ、そしてセキュリティ担当者は重要なアセットであり、ボトルネックや障壁ではないことを念頭に置く。大きな視点で考えることを忘れないようにしましょう。プロセスの後のほうになってからでないと脆弱性を見つけられなければ、修正が難しくなるだけでなく、コストも余分にかかります。

  2. 短いイテレーションで作業する。コードを小分けしてリリースすることで、より迅速に脆弱性を見つけられるようになります。

  3. 誰もがコントリビュートできるようにする。誰もがコードとプロセスにコメントし、改善を提案できるように規範を確立します。チームメンバー全員に変更を提出するよう促すことで、コラボレーションが活性化され、プロセスの改善が全員の責任になります。

  4. 常に監査に備えておく。チームメンバー全員がコンプライアンスの重要性を理解していることを確認します。また、コンプライアンス情報の収集・更新に関する規範を確立するようにしてください。

  5. セキュリティのベストプラクティスに関するトレーニングを全員に受けてもらう。詳細なセキュリティガイドラインを案内し、実践的なトレーニングを提供することで、開発チームと運用チームが安全な開発に関して十分なトレーニングを十分受けられるようにします。

はじめる

DevSecOpsの利用を開始するにあたり、まずはGitLabがどのように役立つかをぜひご確認ください。

DevSecOpsのソリューションページでは、あらゆる詳細情報に加え、Ultimateプランの機能をご利用いただける無料トライアルについてご案内しています。

ツールチェーンに管理される前に、ツールチェーンを管理しましょう

チームで使用されるツールの数が増えていることから、視覚的で安全かつ効果的なツールチェーンを構築することは困難になっており、ステークホルダー全員に負担がかかっています。この調査では、このような複雑さを増す状況に対処するために、課題、考えられる解決策、主な推奨事項について詳しく説明します。

今すぐGitLabをお試しください

単一プラットフォームで実現するソフトウェアデリバリーで、チームの力を引き出しましょう。

無料トライアルを開始する
Headshots of three people

ご不明な点がありますか? ご不明な点がございましたら、お気軽にお問い合わせください。

お問い合わせ