New Relic Now+ Learn about New Relic’s most transformative platform update yet with 20+ product launches.
Register in EMEA or APAC.

DevSecOpsとは?メリットやよくある誤解を解説

速度と品質の両立が求められる現代のソフトウェア開発では、セキュリティの重要性が高まっています。そこで、注目されているのが「DevSecOps」というアプローチです。その解釈は使われる場面によって異なり、開発者に「開発速度が落ちる」「面倒な手続きが増える」といったネガティブな印象を与えたまま実践しているケースも少なくありません。しかし、本来、DevSecOpsは開発者にとってひとつのチャンスだといえます。

ここでは、一般的なDevSecOpsの定義や誤解、New Relicが考えるDevSecOpsの本質を解説した上で、メリットや実践方法、実践時の課題を解決するソリューションについて解説します。

一般的なDevSecOpsの定義と誤解

DevSecOpsは、一般的に、DevOpsのプロセスにセキュリティを統合したアプローチのことを指します。従来の手法では、セキュリティは最終段階で行われることが多く、手戻りによって開発や運用に多くの作業負荷がかかるほか、脆弱性を見過ごす可能性もありました。そこで、DevSecOpsでは、セキュリティの検討をプロジェクトの初期段階から進め、開発のスピードを維持しながら、効率性とリスク管理を両立します。

しかし、実際の現場では、下記のような誤解が生じているケースが少なくありません。

<DevSecOpsに関する誤解の一例>

・DevSecOpsとは、セキュリティチームと連携するための方法論
・DevSecOpsは、セキュリティ担当者を開発チームに配置すれば実践できる
・DevSecOpsは、既存の開発プロセスにセキュリティチェックを追加すること

「プロセスにセキュリティを統合する」といっても、セキュリティの責任範囲が不明確のまま開発チームとセキュリティチームが連携したり、セキュリティ担当者を開発チームに入れたり、単に開発プロセスにセキュリティチェックを追加したりしただけでは、問題は解決しないことが多いでしょう。結局、開発への手戻りが発生し、開発スピードが鈍ってしまいかねません。
セキュリティは後付けでなく、設計の段階から考慮することが理想的です。

New Relicが定義するDevSecOps

DevSecOpsは本質を取り違えやすく、上記のような多くの誤解が生じています。そのため、New Relicでは、独自の定義を定めました。
本記事では、「DevSecOpsとは、開発、運用、セキュリティの垣根を取り払い、システム価値の最大化を目指す統合的なエンジニアリング実践のこと」と定義して、説明します。

■DevSecOpsのイメージ

図版_DevSecOps

DevSecOpsは、セキュリティを単なるオプションではなく、DevOpsのプロセスに統合することを意味し、初期段階からセキュリティを考慮したソフトウェア開発を行うアプローチです。その目的は、製品のリリース速度(アジリティ)を落とさずに顧客価値を最大化することです。
安全性も含めた顧客価値を作るには、セキュリティをセキュリティチームやセキュリティエンジニアに任せるのではなく、開発者一人ひとりが主体性を持って対応することが理想といえます。

つまり、DevSecOpsは、単なるチーム間の協力やセキュリティ工程の追加ではなく、開発者が生産性・信頼性・安全性を同時に追求するパラダイムシフトを意味しています。

開発者の役割の変化

DevOpsの登場により、開発者の役割は大きく変化しました。従来のソフトウェア開発では、開発者は主にアプリケーションの機能開発に集中し、運用やセキュリティは別チームに委ねることが一般的でした。DevOps登場後、開発者は運用の視点も持ち、システム全体のパフォーマンスや安定性を考慮しながらコードを記述することが求められるようになったのです。

しかし、開発と運用が密接に連携できるようになった一方で、セキュリティはいまだ別の組織として位置付けられていることが少なくありません。開発プロセスにおいても、セキュリティは開発の最終段階でチェックされ、問題が生じた場合は開発プロセスまで巻き戻して修復することが一般的です。
修正の手間やコストが増大し、品質やリリース速度に悪影響を及ぼすこともあります。これでは、かつての開発と運用の対立を生む関係と変わりません。

こうした課題を解決すべく登場したのがDevSecOpsです。
DevSecOpsは、リリース速度を落とさずに顧客価値を最大化することが目的のため、開発者は、安定的な稼働だけではなく、セキュリティの意識を持ってリスクを最小限に抑えながら、高品質で安全な製品を迅速に提供することが求められます。
これは、開発者の可能性を大きく広げる革命的な変化といえます。

DevOpsについては、以下の記事をご覧ください。

「DevOpsを効果的に実践するポイントと陥りやすい課題への解決策」
https://newrelic.com/jp/blog/best-practices/key-to-effective-devops-best-practices

ストリームアラインドチームの概念の重要性

DevSecOpsの実践において、ストリームアラインドチームの概念は重要な役割を担います。ストリームアラインドチームとは、Team Topologies で提唱されるチーム構成パターンのひとつで、製品の価値提供を高速かつ最適に行うため、特定のストリーム(顧客価値の流れ)に焦点を当てたチーム構成のことです。この概念を導入することで、ストリームを妨げる課題を素早く解決できるため、開発、運用、セキュリティにおいてもスムーズなコラボレーションが期待できます。

DevOpsでは、セキュリティチームとの連携不足や責任の不明確さによって、作業遅延や品質低下、リスク管理の不備などが発生しやすくなっていました。しかし、DevSecOpsの実践としてストリームアラインドチームの概念を導入することで、セキュリティの責任がチーム全体に共有されるため、セキュリティチームに依存することはありません。

ストリームアラインドチームの概念を活用して、セキュリティ、スピード、効率をバランスよく実現できれば、DevSecOpsの効果を最大限に引き出すことができるでしょう。

開発ミッションの転換:機能開発から顧客価値創造へ

DevSecOpsと聞いて、「追加の責任」とネガティブな印象をもつ開発者もいるかもしれません。しかし、むしろ開発者がより大きな自律性と創造性を持つチャンスととらえることができます。
現在、開発ミッションとして求められているのは、顧客価値の創造です。従来のソフトウェア開発では、機能開発が主な目標とされ、要件にもとづいて機能を実装することが最優先とされてきました。しかし、技術の進化や顧客ニーズの多様化により、単なる機能提供だけでは競争力を維持できない時代に突入しています。
現代のデジタルビジネスでは、奔流のように顧客に価値を提供し続ける「バリューストリーム」を創造できるかが、成果を左右します。セキュリティが顧客価値に含まれていることも、大きな変化です。

DevSecOpsでは、早期にセキュリティリスクを特定・解決できるため、通常のエラー対応の作業負荷を軽減したり、リリース遅延を防いだりするだけではなく、信頼性の高い製品を迅速に提供することができます。
開発者はその価値創造の中心的な役割を担うことになるのです。

新しいアプローチがもたらすメリット

DevSecOpsやストリームアラインドチームのような新しいアプローチは、ソフトウェア開発プロセスの効率性、品質、セキュリティを大幅に向上させながら、ビジネス全体の競争力を強化する重要なメリットをもたらします。

まず、セキュリティを開発初期から統合することで、脆弱性を早期に発見・解決でき、修正コストやリスクの削減が可能です。また、チーム間のコラボレーションが強化されれば、コミュニケーションエラーや作業の重複を防ぎ、生産性が向上します。さらに、継続的なモニタリングと自動化ツールを活用することで、開発サイクルが短縮され、迅速なリリースが可能となるでしょう。

DevSecOpsを実践するための導入ステップ

DevSecOpsを実践するには、チーム全体の意識改革がカギとなります。実践するための導入ステップは以下のとおりです。

ステップ1. チームの教育と文化の醸成

DevSecOpsを実践するために最初に行うことは、チームの教育と文化の醸成です。まず、開発を含む全員がDevSecOpsの基本原則を理解し、セキュリティの重要性を理解することが必要です。また、組織全体でセキュリティに関する知識を学び、最新の脅威に対応できるように教育を継続することも重要です。

ステップ2. 自動化ツールの導入

次に、自動化ツールの導入を検討しましょう。CI/CDパイプラインにセキュリティテストを自動化するツールを選定し、導入します。これにより、手動作業を減らし、迅速かつ効率的な対応が可能になり、一貫したセキュアなリリースができます。

ステップ3. オブザーバビリティの実践

最後に、オブザーバビリティを導入します。監視に加えて、リアルタイムでシステムの動作を把握し、問題分析と原因特定が可能なオブザーバビリティを活用し、セキュリティやパフォーマンスを確認します。異常があれば、早期に検知し、その原因特定と対処が可能です。

DevSecOpsの実現に必要なオブザーバビリティ

DevSecOpsを実践する際、オブザーバビリティの環境があれば、開発者の業務負荷を大幅に軽減できます。オブザーバビリティとは、システム全体がどのような状態にあるかを常に観測し、必要な情報を収集する指標あるいは特性のことです。システム内の情報を関連づけて分析することで、異常が起こった際に迅速な原因の追求、解決が可能になります。

オブザーバビリティを実装したツールやプラットフォームは、開発、運用、セキュリティの各分野の状況を一元的に把握し、定量的な情報として可視化できます。問題が起こりそうな箇所を事前に察知でき、予防的な措置を講じることも可能です。リアルタイムな可視化によって、システムのどこに改善すべきポイントがあるのか、どこにセキュリティ上の脅威があるのかを検知できるため、パフォーマンスの最適化が実現できます。
DevSecOpsを実践するには、オブザーバビリティはなくてはならないものだといえるでしょう。

開発者にとってのオブザーバビリティについては、下記の記事をご覧ください。

「開発者にとってのオブザーバビリティとは?従来のログデバッグとオブザーバビリティデバッグの違いを解説」
https://newrelic.com/jp/blog/best-practices/what-is-observability-difference-from-debugging

DevSecOpsを支えるNew Relic

DevSecOpsを実践するなら、オブザーバビリティ・プラットフォームであるNew Relicがおすすめです。New Relicは、クラウドでもオンプレミスでも、システム全体を細部に至るまでモニタリングし、どこで何が起こっているのかをリアルタイムで可視化します。何らかの障害が起こった際には、AIが根本原因を瞬時に特定・分析してレポートも可能です。

また、New Relicは、2023年2月にVulnerability Management(脆弱性管理)をリリースしたことを皮切りに、セキュリティ分野へオブザーバビリティの提供を開始し、DevSecOpsの支援を宣言しました。その後も2024年2月にはNew Relic IASTの正式リリースを開始し、アプリケーションを中心としたセキュリティソリューションを展開しました。
Vulnerability Management(脆弱性管理)とNew Relic IASTについてご紹介します。

Vulnerability Management(脆弱性管理)

Vulnerability Management(脆弱性管理)は、開発者がアプリケーションに存在する脆弱性を簡単に把握し、迅速なセキュリティ対応を実現する機能です。
アプリケーションライブラリをチェックすることで、システム全体のアプリケーションライブラリの脆弱性を特定できます。また、どのバージョンにアップデートすべきか、あるいは、どのアプリケーションにどのようなライブラリ脆弱性があるか、その関係性の可視化が可能です。これにより、スタック全体から脆弱性を特定し、適切な対処ができるのです。
開発サイクルの中で脆弱性のあるライブラリやその他の脆弱性を特定し、本番はもちろんテスト環境や開発環境に適用できるため、開発者のセキュリティ対応の手間が削減できます。

脆弱性管理に関連する情報については、下記の記事をご覧ください。

「脆弱性診断(セキュリティ診断)とは?重要性とツールの種類について」
https://newrelic.com/jp/blog/how-to-relic/how-to-security-monitoring

New Relic IAST

New Relic IASTは、アプリケーションの動的なテストを通してコードレベルで悪用可能な脆弱性を特定し、トリアージを可能にするソリューションです。ゼロに近い誤検知率で、短時間で脆弱性を特定・修正できます。また、ガイド付きの修正機能があるため、高度な技術も専門知識も不要です。アプリケーションの実行環境で特別なテストシナリオの作成が不要であることもメリットです。
CI/CDにてアプリケーションセキュリティテストを自動化して、誤検知を限りなく少なくしているため、効率的にセキュア開発が実践できます。

IASTについては、下記の記事をご覧ください。

「IASTとは?開発時のセキュリティ対応を大幅に省力化する方法を解説」
https://newrelic.com/jp/blog/best-practices/what-is-iast

New Relicとともに新たな開発チームへの第一歩を踏み出そう

開発、運用、セキュリティがサイロ化していた時代では、それぞれのチームは互いに対立や反目を繰り返していました。より早く顧客の価値提供を行えるように、効率的な環境が模索される中でDevOpsが生まれ、さらにDevSecOpsという概念が登場しました。

現代のデジタルビジネスにおける熾烈な競争を勝ち抜くためには、開発者が運用もセキュリティも「自分ごと」として捉えてソフトウェアライフサイクルを高速回転させていくことがベストだと、New Relicは考えています。そのため、New Relicでは開発者の負荷を軽減するための機能を用意しています。

New Relicを活用すれば、開発から運用、セキュリティに至るまでのプロセスを統合的なオブザーバビリティが実現可能です。異常の検知から原因特定、さらに解決までの時間が劇的に短縮できるほか、ダッシュボードで可視化したデータを活用し、ビジネスを担う事業側も含めた企業全体のコラボレーションが期待できます。
また、New Relicは、アプリケーション実行環境(ランタイム)におけるセキュリティ分野へ注力し、DevSecOpsを実践するソリューションを提供しています。
これまでは、強固なセキュリティを実現するためには、専門性の高いセキュリティチームの存在が不可欠でした。しかし、New Relicを導入すれば、開発者がセキュリティミッションを達成するための強力な武器になるでしょう。

まずはNew Relicの無料プランから始めて、セキュリティとパフォーマンスの現状を把握してみましょう。この小さな一歩が、継続的な価値提供の基盤を築くきっかけになるはずです。