DevSecOpsとは
DevSecOpsによって、ソフトウェア開発ライフサイクルのすべてのフェーズにセキュリティーが組み込まれます。
IBMのニュースレターに登録する
黒と青の背景画像
DevSecOpsとは

DevSecOpsは 開発(development)、セキュリティー(security) 、 運用(operation) を略したもので、ソフトウェア開発ライフサイクルのすべてのフェーズ(初期設計から統合、テスト、実装、ソフトウェア・デリバリーまで)でセキュリティーの統合を自動化します。

DevSecOpsは、開発組織のセキュリティーへのアプローチ方法が自然に必要な進化を遂げたものだと言えます。 セキュリティーはかつて、開発サイクルの最後に(まるで後知恵のように)個別のセキュリティー・チームによってソフトウェアに「追加」され、個別の品質保証(QA)チームによってテストされていました。

ソフトウェアの更新が1年に1、2回リリースされていたときは、上記の方法で管理ができていました。 しかし、ソフトウェア開発者が、ソフトウェア開発サイクルを数週間、さらには数日間に短縮することを目的に、アジャイルや DevOps のプラクティスを採用するに従い、 従来型の「追加型」のセキュリティーへのアプローチでは、容認できないボトルネックが生じるようになりました。

DevSecOpsは、アプリケーションとインフラストラクチャーのセキュリティーを、アジャイルとDevOpsのプロセスやツールにシームレスに統合します。 DevSecOpsでは、セキュリティー問題が発生したときに、すなわち、問題により簡単に、迅速に、少ないコストで(実動に入る前に)対応できるタイミングで、その問題に対処します。 さらに、DevSecOpsでは、アプリケーションとインフラストラクチャーのセキュリティーは、独立したセキュリティー部門の単独の責任ではなく、開発チーム、セキュリティー・チーム、IT 運用チームの共同の責任となります。 ソフトウェア開発サイクルを減速させることなく、セキュアなソフトウェアのデリバリーを自動化することで、「ソフトウェアをより安全かつ迅速に」というDevSecOpsのモットーを実現します 。

DevSecOpsのメリット

DevSecOpsの2つの主なメリットは、スピードとセキュリティーです。 開発チームは、より優れた、より安全なコードをより迅速に、そして結果的に、より安く提供できるようになります。

「DevSecOpsの目的と意図は、必要な安全性を犠牲にすることなく、高いレベルで共通認識を持つ人たちにセキュリティーに関する意思決定を迅速かつ大規模に安全に配分することを目標として、誰もがセキュリティーに責任を持つという考えを構築するものです」と、「DevSecOps Manifesto」の共著者のShannon Lietz氏が述べています。

迅速かつコスト効率の高いソフトウェア ・デリバリー
 

DevSecOpsではない環境でソフトウェアを開発する場合、セキュリティー上の問題が発生すると、大幅な遅延につながることがあります。 コードとセキュリティーの問題を修正するには、時間とコストがかかる可能性があります。 DevSecOpsの迅速でセキュアなデリバリーであれば、セキュリティーの問題が起こってしまった後の対応プロセスを繰り返す必要性を最小限に抑えることで、時間とコストを節約します。

そして、統合されたセキュリティーによって重複するレビューや不要な再構築が削減され、よりセキュアなコードになるため、効率とコスト効果が高くなります。

強化された事前対応型のセキュリティー
 

DevSecOpsは、開発サイクルの始めからサイバーセキュリティー・プロセスを導入します。 開発サイクル全体を通して、コードは、セキュリティー問題について検討、監査、スキャン、テストされます。 これらの問題は、特定されるとすぐに対処されます。 セキュリティー問題は、追加の依存関係が導入される前に修正されます。 保護テクノロジーが特定され、サイクルの早い段階で実装される場合、セキュリティー問題の修正のコストは低くなります。

また、開発、セキュリティー、運用の各チーム間のコラボレーションが向上すると、インシデントや問題の発生時の組織の対応力が向上します。 DevSecOpsプラクティスは、脆弱性にパッチを適用する時間を短縮し、セキュリティー・チームを解放して、より価値の高い作業に集中できるようにします。 これらのプラクティスはまた、コンプライアンスの確保と簡素化を行い、セキュリティーのためにアプリケーション開発プロジェクトを変更しないで済むようにします。

セキュリティー・パッチ適用による脆弱性対策の加速
 

DevSecOpsの主要なメリットは、新たに特定されたセキュリティーの脆弱性をいかに迅速に管理できるかにあります。 DevSecOpsは、脆弱性スキャニングとパッチ適用をリリース・サイクルに統合しているため、共通脆弱性識別子(CVE)を特定してパッチを適用する機能はあまり使用されなくなっていきます。 これにより、脅威アクターが一般に公開されている実動システムの脆弱性を利用できる時間を制限することにつながります。

最新の開発と互換性のある自動化
 

組織が 継続的インテグレーション/継続的デリバリー のパイプラインを使用してソフトウェアを出荷する場合、サイバーセキュリティー・テストを運用チームの自動テスト・スイートに統合することができます。

セキュリティー・テストの自動化には、プロジェクトと組織の目標が大きく影響します。 自動化されたテストによって、組み込まれたソフトウェアの依存関係が適切なパッチ・レベルにあるようにし、ソフトウェアがセキュリティー・ユニット・テストに合格することを確認できます。 さらに、最終更新が実動にプロモートされる前に、静的分析と動的分析を使用してコードをテストして保護することができます。

反復可能で適応性のあるプロセス
 

組織が成熟するにつれて、セキュリティー体制が成熟します。 DevSecOpsは反復可能で適応性のあるプロセスに適しています。 これにより、環境が変化し、新しい要件に適合するのに合わせて、動作環境全体に一貫したセキュリティーが確実に適用されます。 成熟したDevSecOpsの実施によって、強力な自動化、構成管理、オーケストレーション、 コンテナ、イミュータブル・インフラストラクチャー、さらに サーバーレス のコンピューティング環境を実現します。

DevSecOpsのベスト・プラクティス

DevSecOpsは、開発、デリバリー、運用の各プロセスにセキュリティー管理を自然に組み込む必要があります。

シフト・レフト
 

「シフト・レフト」はDevSecOpsの信条です。 これは、ソフトウェア・エンジニアに、セキュリティーをDevOps(デリバリー)プロセスの右側(終盤)から左側(序盤)へ移動することを促すものです。 DevSecOps環境においては、セキュリティーは開発プロセスの序盤から不可欠な部分です。 DevSecOpsを使用する組織は、サイバーセキュリティーのアーキテクトとエンジニアを開発チームの一員として参加させます。 彼らの仕事は、すべてのコンポーネントとスタック内のすべての構成アイテムについて、パッチ適用、セキュアな構成、文書化が確実に行われるようにすることです。

シフト・レフトにより、DevSecOpsチームは、セキュリティー・リスクと機密漏れを早期に特定し、これらのセキュリティーの脅威に必ず即時に対応できるようになります。 開発チームは、製品を効率的に構築することを検討するだけでなく、製品を構築する際にセキュリティーも実装しているのです。

セキュリティー教育
 

セキュリティーは、エンジニアリングとコンプライアンスの組み合わせです。 組織は、開発エンジニア、運用チーム、およびコンプライアンス・チームの間の連携を形成し、組織内のすべての人が会社のセキュリティー体制を理解し、同じ基準に従うようにする必要があります。

デリバリー・プロセスに関わる全員が、アプリケーション・セキュリティーの基本原則、Open Web Application Security Project(OWASP)Top 10、アプリケーション・セキュリティー ・テスト、およびその他のセキュリティー・エンジニアリングの実践に精通している必要があります。 開発者は、スレッド・モデルとコンプライアンス検査を理解し、リスクと機密漏れの測定方法とセキュリティー管理の実装方法に関する実用的な知識を備えている必要があります。

文化:コミュニケーション、人々、プロセス、テクノロジー
 

優れたリーダーシップは、組織内の変化を促進する優れた文化を育てます。 プロセスおよび製品の所有権に関わるセキュリティーの責任について伝達することは、DevSecOpsにとって重要で不可欠なことです。 そうすることで初めて、開発者とエンジニアがプロセス所有者となり、それぞれの作業の責任を負うことができます。

DevSecOps運用チームは、チームと現在のプロジェクトに適したテクノロジーとプロトコルを使用して、チームのために機能するシステムを構築する必要があります。 チームがニーズに適したワークフロー環境を構築できるようにすることで、それらのチームはプロジェクトの結果に貢献する利害関係者になります。

追跡可能性、監査適合性、可視性
 

DevSecOpsプロセスに追跡可能性、監査適合性、可視性を導入することで、より深い洞察とよりセキュアな環境を実現することができます。

  • 追跡可能性 は、開発サイクル全体で、要件がコードに実装されるまで構成アイテムを追跡できるようにします。 これは、コンプライアンスの達成、バグの削減、アプリケーション開発におけるセキュアなコードを確保することを実現し、コードを保守しやすいものにするのに役立つため、組織の管理フレームワークにおいて重要な部分を担うことができます。

  • 監査適合性 は、セキュリティー管理のコンプライアンスを確実にするために重要です。 技術、手順、管理上のセキュリティー管理は、監査可能で、適切に文書化され、すべてのチーム・メンバーが従う必要があります。

  • 可視性 は、一般的に優れた管理プラクティスですが、DevSecOps環境にとっては特に重要です。 これは、運用のハートビートを測定し、アラートを送信し、変化やサイバー攻撃が生じたときの認識を高め、プロジェクトのライフサイクル全体で説明責任を提供するために、組織が確固としたモニタリング・システムを配置していることを意味します。
関連ソリューション
IBMのインテリジェント・オートメーション・ソリューション

必要なROIを実現するために設計された、統合機能、AI機能、および自動化機能の包括的なIBMのポートフォリオについて詳しくご覧ください。

IBMのインテリジェント・オートメーション・ソリューションの詳細はこちら
IBM UrbanCode®

IBM UrbanCode®によって、オンプレミス、クラウド、メインフレーム・アプリケーションの任意の組み合わせのソフトウェア・デリバリーをスピードアップし最適化できます。

IBM UrbanCode®の詳細はこちら
IBM DevOpsソリューション

強力なDevOpsソフトウェアにより、複数のデバイス、環境、クラウドにわたって、セキュリティー機能が充実したクラウドネイティブ・アプリを構築、導入、管理することができます。

IBM DevOpsソリューションの詳細はこちら
参考情報 AIでIT運用の将来性を保証

Gartner社の独占分析レポートを入手して、IT用のAIがビジネスの成果を向上させ、収益増加を導き、組織のコストおよびリスクの両方を軽減させている方法についてご覧ください。

AIOpsとは

IT運用向けの人工知能(AIOps)がデータと機械学習を使用して、ITサービス管理を改善し自動化する方法をご覧ください。

AIを活用したIT自動化

IT運用のためのAIを活用した自動化のメリットを示した、IBM Cloud®のインフォグラフィックをダウンロードしてご覧ください。

詳細情報はこちら

IBM UrbanCode®を使用して、ソフトウェア・デプロイメントを自動化し、複雑なリリース・サイクルを制御し、リリース・プロセスをスピードアップし、製品品質を向上させます。

IBM UrbanCode®の詳細はこちら