DevSecOpsは 開発(development)、セキュリティー(security) 、 運用(operation) を略したもので、ソフトウェア開発ライフサイクルのすべてのフェーズ(初期設計から統合、テスト、実装、ソフトウェア・デリバリーまで)でセキュリティーの統合を自動化します。
DevSecOpsは、開発組織のセキュリティーへのアプローチ方法が自然に必要な進化をしたものだと言えます。 セキュリティーはかつて、開発サイクルの最後に(まるで後知恵のように)別個のセキュリティー・チームによってソフトウェアに「追加」され、別個の品質保証(QA)チームによってテストされていました。
ソフトウェア更新のリリースが1年に1回か2回だったときには、これで管理可能でした。 しかし、ソフトウェア開発者が、ソフトウェア開発サイクルを数週間、さらには数日間に短縮することを目的に、アジャイルや DevOps のプラクティスを採用するに従い、 従来型の「追加型」のセキュリティーへのアプローチでは、容認できないボトルネックが生じるようになりました。
DevSecOpsは、アプリケーションとインフラストラクチャーのセキュリティーを、アジャイルとDevOpsのプロセスやツールにシームレスに統合します。 DevSecOpsでは、セキュリティー問題が発生したときに、それらの問題に対応します。これは、より簡単に、より迅速に、より少ないコストで(実動に入る前に)対応できるタイミングです。 さらに、DevSecOpsでは、アプリケーションとインフラストラクチャーのセキュリティーは、独立したセキュリティー部門の単独の責任ではなく、開発チーム、セキュリティー・チーム、IT 運用チームの共同の責任となります。 ソフトウェア開発サイクルを減速させることなく、セキュアなソフトウェアのデリバリーを自動化することで、「ソフトウェアをより安全かつ迅速に」というDevSecOpsのモットーを実現します 。
DevSecOpsの2つの主なメリットは、スピードとセキュリティーです。 開発チームはより優れたより安全なコードをより迅速に、そしてその結果、より安く提供できます。
「DevSecOpsの目的と意図は、必要な安全性を犠牲にすることなく、高いレベルで共通認識を持つ人たちにセキュリティーに関する意思決定を迅速かつ大規模に安全に配分することを目標として、誰もがセキュリティーに責任を持つという考えを構築するものです」と、「DevSecOps Manifesto」の共著者のShannon Lietz氏が述べています。
DevSecOpsではない環境でソフトウェアを開発する場合、セキュリティー上の問題が発生すると、大幅な遅延につながることがあります。 コードとセキュリティーの問題の修正は、時間とコストがかかる可能性があります。 DevSecOpsの迅速でセキュアなデリバリーは、セキュリティー問題が起こってしまった後に対処するプロセスを繰り返す必要性を最小限に抑えることで、時間とコストを節約します。
そして、統合されたセキュリティーによって重複するレビューや不要な再構築が削減され、よりセキュアなコードになるため、効率とコスト効果が高くなります。
DevSecOpsは、開発サイクルの始めからサイバーセキュリティー・プロセスを導入します。 開発サイクル全体を通して、コードは、セキュリティー問題について検討、監査、スキャン、テストされます。 これらの問題は、特定されるとすぐに対処されます。 セキュリティー問題は、追加の依存関係が導入される前に修正されます。 保護テクノロジーが特定され、サイクルの早い段階で実装される場合、セキュリティー問題の修正のコストは低くなります。
また、開発、セキュリティー、運用の各チーム間のコラボレーションが向上すると、インシデントや問題の発生時の組織の対応が向上します。 DevSecOpsプラクティスは、脆弱性にパッチを適用する時間を短縮し、セキュリティー・チームを解放して、より価値の高い作業に集中できるようにします。 これらのプラクティスはまた、コンプライアンスの確保と簡素化を行い、セキュリティーのためにアプリケーション開発プロジェクトを変更しないで済むようにします。
DevSecOpsの主要なメリットは、新たに特定されたセキュリティーの脆弱性を迅速に管理する方法です。 DevSecOpsは、脆弱性スキャニングとパッチ適用をリリース・サイクルに統合しているため、共通脆弱性識別子(CVE)を特定してパッチを適用する機能があまり使われなくなります。 これにより、脅威アクターが一般に公開されている実動システムの脆弱性を利用できる時間が制限されます。
組織が 継続的統合/継続的デリバリー のパイプラインを使用してソフトウェアを出荷する場合、サイバーセキュリティー・テストを運用チームの自動テスト・スイートに統合することができます。
セキュリティー・テストの自動化には、プロジェクトと組織の目標が大きく影響します。 自動化されたテストによって、組み込まれたソフトウェア依存関係が適切なパッチ・レベルであるようにし、ソフトウェアがセキュリティー・ユニット・テストに合格することを確認できます。 さらに、最終更新が実動にプロモートされる前に、静的分析と動的分析を使用してコードをテストして保護することができます。
組織が成熟するにつれて、セキュリティー体制が成熟します。 DevSecOpsは反復可能で適応性のあるプロセスに適しています。 これにより、環境が変化し、新しい要件に適合するのに合わせて、環境全体に一貫してセキュリティーが確実に適用されます。 成熟したDevSecOpsの実施によって、強力な自動化、構成管理、オーケストレーション、 コンテナ、改変不可能なインフラストラクチャー、さらに サーバーレス のコンピューティング環境を実現します。
DevSecOpsは、開発、デリバリー、運用の各プロセスにセキュリティー管理を自然に組み込む必要があります。
「シフト・レフト」はDevSecOpsの信条です。 これは、ソフトウェア・エンジニアに、セキュリティーをDevOps(デリバリー)プロセスの右側(終盤)から左側(序盤)へ移動することを促すものです。 DevSecOps環境においては、セキュリティーは開発プロセスの序盤から不可欠な部分です。 DevSecOpsを使用する組織は、サイバーセキュリティーのアーキテクトとエンジニアを開発チームの一員として参加させます。 彼らの仕事は、すべてのコンポーネントとスタック内のすべての構成アイテムについて、パッチ適用、セキュアな構成、文書化が確実に行われるようにすることです。
シフト・レフトにより、DevSecOpsチームは、セキュリティー・リスクと機密漏れを早期に特定し、これらのセキュリティーの脅威が必ず即時に対応されるようにできます。 開発チームは、製品を効率的に構築することを検討しているだけでなく、製品を構築する際にセキュリティーも実装しているのです。
セキュリティーは、エンジニアリングとコンプライアンスの組み合わせです。 組織は、開発エンジニア、運用チーム、コンプライアンス・チームの間の連携を形成し、組織内のすべての人が会社のセキュリティー体制を理解し、同じ基準に従うようにする必要があります。
デリバリー・プロセスに関わる全員が、アプリケーション・セキュリティーの基本原則、Open Web Application Security Project(OWASP)Top 10、アプリケーション・セキュリティー ・テスト、その他のセキュリティー・エンジニアリングの実践に精通している必要があります。 開発者は、スレッド・モデルとコンプライアンス検査を理解し、リスクと機密漏れの測定方法とセキュリティー管理の実装方法に関する実用的な知識を備えている必要があります。
優れたリーダーシップは、組織内の変化を促進する優れた文化を育てます。 プロセスと製品の所有権のセキュリティーの責任を伝達することは、DevSecOpsにとって重要で不可欠なことです。 そうすることで初めて、開発者とエンジニアがプロセス所有者となり、それぞれの作業の責任を負うことができます。
DevSecOps運用チームは、チームと現在のプロジェクトに適したテクノロジーとプロトコルを使用して、チームのために機能するシステムを構築する必要があります。 チームがニーズに適したワークフロー環境を構築できるようにすることで、それらのチームはプロジェクトの結果に貢献する利害関係者になります。
DevSecOpsプロセスに追跡可能性、監査適合性、可視性を導入することで、より深い洞察とよりセキュアな環境を実現することができます。
DevSecOpsツールとプラクティスを使用する組織は、自動化のニーズがビジネスとIT運用全体にわたって拡大するのに合わせて、デジタル・トランスフォーメーションとアプリケーションのモダナイズのための強力な基盤を構築します。
さらなる自動化への移行は、他のプロセスや組織内の他の部署のために拡張し最適化できる、小規模で計測可能なプロジェクトを成功させることから始める必要があります。
IBMと連携することで、事前に作成されたワークフローを含む、 AIを活用した自動化機能を利用して、すべてのITサービス・プロセスをよりインテリジェントなものにし、チームを解放して最も重要なIT問題に集中させて、イノベーションを加速することができます。
IBMには、DevSecOps対応の一連のツールとサービスもあり、セキュアな継続的デリバリー、統合セキュリティー・テスト、クラウドネイティブ・デリバリーのパイプラインを実現します。
次のステップに進みます:
IBM Cloudアカウント で今すぐ始めましょう。
信頼性のあるさまざまなクラウドで、アプリケーションを安全に構築、モダナイズ、管理します。
IBMは、お客様のビジネス・ワークフローからIT運用まで、AIを活用した自動化を提供いたします。
IBM UrbanCode ソフトウェア製品ファミリーは、アプリケーションの配信を高速化し、手動プロセスを削減することで、ソフトウェアをより早く市場に投入するご支援をします。
IBM Cloud上のDevOpsサービスをご利用になれば、ソフトウェアやサービスを市場が求めるスピードで容易に提供できます。
IBM Cloud Pak for Applicationsを使用して、チームの生産性を向上させ、お客様のペースでモダナイズを行い、どこでも実行できるようにします。
IBM Cloud Pak for Watson AIOps はIT の運用担当者が ITOps ツールチェーンの中枢に AI を置くことを可能にする、IT 運用管理ソリューションです。