DevSecOps

menu icon

DevSecOps

DevSecOpsは、ソフトウェア開発ライフサイクルのすべてのフェーズにセキュリティーを自動的に組み込み、アジャイルとDevOpsのスピードでのセキュアなソフトウェアの開発を実現します。

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環境にとっては特に重要です。 これは、運用のハートビートを測定し、アラートを送信し、変化やサイバー攻撃が生じたときの認識を高め、プロジェクトのライフサイクル全体で説明責任を提供するために、組織が確固とした監視システムを配置していることを意味します。

DevSecOpsとIBM

DevSecOpsツールとプラクティスを使用する組織は、自動化のニーズがビジネスとIT運用全体にわたって拡大するのに合わせて、デジタル・トランスフォーメーションとアプリケーションのモダナイズのための強力な基盤を構築します。

さらなる自動化への移行は、他のプロセスや組織内の他の部署のために拡張し最適化できる、小規模で計測可能なプロジェクトを成功させることから始める必要があります。

IBMと連携することで、事前に作成されたワークフローを含む、AIを活用した自動化機能を利用して、すべてのITサービス・プロセスをよりインテリジェントなものにし、チームを解放して最も重要なIT問題に集中させて、イノベーションを加速することができます。

IBMには、DevSecOps対応の一連のツールとサービスもあり、セキュアな継続的デリバリー、統合セキュリティー・テスト、クラウドネイティブ・デリバリーのパイプラインを実現します。

詳細情報はこちら:

  • IBM® UrbanCode®を使用して、ソフトウェア・デプロイメントを自動化し、複雑なリリース・サイクルを制御し、リリース・プロセスをスピードアップし、製品品質を向上させます。
  • IBM DevOpsDevOpsの洞察IBM Cloud Pak® for Applications(オプションのDevOpsアドオンを使用 )により、企業の俊敏性を向上させ、リリース・サイクルを短縮し、サイバーセキュリティーを強化します。
  • 洞察と推奨をチームのワークフローに直接提供することで、複数のダッシュボードの必要性をなくし問題解決を迅速化するIBM Cloud Pak for Watson AIOpsを使用して、IT運用ツール・チェーン全体の中核にAIを据える方法をご覧ください。
  • 登録を行ってGartner社レポートをダウンロードし、将来的にも利用可能なAIを使用したIT運用の方法をご確認ください。
  • IT運用のためのAIを活用した自動化のメリットを示した、IBM Cloud®のインフォグラフィック(PDF、464 KB)をダウンロードしてください。

IBM Cloudアカウントを今すぐ始めましょう。