DevSecOps セキュリティを考慮した開発

01. DevSecOps の概要

1) DevOps とは?

・デブセックオプス(DevSecOps)の前 デブオプス(DevOps) について調べてみよう。
・デブオプス(DevOps)はソフトウェア開発と運用(Operation)の合成語 で、ソフトウェア開発者と運用者とのコミュニケーション、協業及び統合を強調する開発環境もしくは、文化を意味する。
・DevOpsは製品及びサービスのリリース時間(Time-To-Market)の短縮のため、製品の持続的な統合と配布を通じて要求事項を早く対応するためのものである。
・最近クラウドサービスの増加、それに従って、コンテナ基盤のサービスの配布、マイクロサービス(MSA)の登場で単純な開発の効率性と生産性の向上を超えてビジネスにリアルタイムで対応でき開発文化である。

image.png

・DevOpsは開発と運用を合わせてアプリケーションの改善に集中する。この過程で自動化ツールを利用して開発と生産性の効率は高めるが、セキュリティまでは自動化できないため改善が必要である。

2) DevOps の定義

・デブセックオプス(DevSecOps)とはソフトウェア開発(Development)と運用(Operation)、セキュリティ(Security)の合成語でアプリケーション開発者と運用、セキュリティ担当者間のコミュニケーション協業、統合を強調する開発文化である。
・過去の一般的なIT組織は開発と運用、セキュリティ組織を分離することを基本とした。これは職務分離(Separation of Duty)及び責任追跡性(Responsibility)を確保するためでああった。しかし最近のビジネス及びICT環境では過去IT組織の体系では急速に変化するビジネス環境に対応が難しくなり、DevOpsとセキュリティ(Security)が合わせたデブセックオプス(DevSecOps)が注目されている。

3) DevSecOps の必要性

最近の開発周期は数日もしくは数週の早い開発周期の環境で既存のセキュリティ方法とポリシーは全体的な効率性を下げる原因として認識され、最終段階でセキュリティチェックを形式的な行為で処理してしまう場合が発生している。これを改善するためにはDevSecOpsを通じて開発Pipelineの改定からセキュリティポリシー及び技術を自動化することが必要である。

必要性説明
DevOpsの限界開発と運用の合わせでAgileを実現できるようになったが、増加するセキュリティ脆弱性及びサイバー脅威に対しての対応に限界がある
クラウドサービスの活性化既存On-Premise環境からクラウド基盤のサービスに変化し、サービスに対しての配布と変更などにリアルタイムに対応ができる環境が必要になっている
マイクロサービス(MSA)の登場クラウド、ドッカー(Docker)基盤のコンテナなど益々軽量化したマイクロサービス単位での開発、ビルド、テスティング、配布などができる環境の要求
サービス生産性急速に変化している市場の要求に合わせて開発してリリースできるようにDevOps Pipelineの自動化されたプロセスにセキュリティを自動化を加え、サービスの生産性を保証
ビジネス変化対応最近のビジネスは過去とは違って生命周期が短くなり、従って急速に変化しているビジネス要求事項に即時的に対応ができる方法論が必要になっている
セキュリティ性向上DevOps開発の全ての過程にセキュリティを適用して自動化されたツール及びセキュリティテスティング環境を構築して早い開発、配布、脆弱性の解決ができるようになる。

4) DevSecOps の期待効果

ア.技術的な期待効果

・セキュリティ安全性:DevOps開発プロセス内からペネトレーションテスト、セキュリティテストを行うことができ、アプリケーション及びワークロードを配布する際、プラットフォーム脆弱性診断にも利用できる。DevOpsプロセスが行われることでアプリケーション及びワークロードがもっとセキュリティ的に安全になる。
・インシデントの減少:DevOpsの全てのプロセスの過程にセキュリティ自動化技術を適用して脆弱性を減少させる。
・脆弱性対応時間の短縮:脆弱性発見時、脆弱性の対応時間を短縮して、インシデントに繋がる可能性がある状況を素早く対応できる。

イ.ビジネス的な期待効果

・Time To Market:コーディングが終わって運用環境に移行する所要時間の短縮、統合された変更管理、自動化配布、テストを通じて再作業を除去することができる。
・Cycle Time短縮:サーバとICT環境をアップデートする際に発生する所要時間が短縮できる。また、標準化されたプロセスと自動化されたツールなどを通じて開発とセキュリティ適用の時間が短縮できる。
・生産性及び効率性の向上:開発チームと運用チーム、セキュリティチーム間のコミュニケーションチャンネルを単一化し、単純化して素早く意思決定をして開発の生産性と効率性に良い影響を与える。

02. DevSecOps の構成要素

1) DevSecOpsの構成図

DevSecOps


【▲ 参考:Gartner】

2) DevSecOpsの構成要素

区分説明重要要素
文化– 文化的な変化に対して計画樹立 – 組織分解に対しての変化、開発とセキュリティ、運用部署がセキュリティを共通責任する文化を組成セキュリティ組織の初期参加
プロセス– 組織プロセスの再配置 – 組織のセキュリティ、コンプライアンス担当者がプロセス、ポリシー、要求事項をDevOps組織とWorflowに統合プロセス初期にセキュリティ分析及びテスト
自動化– 効率性と正確性のための自動化(Automation) – セキュリティテスト、セキュリティ共有ストレージ作成、Devopsのためのセキュリティ手順の単純化コードセキュリティ管理(Security as Code)
ツール– DevOpsと効果的に連携できるツールの選択 – コミット前にセキュリティ把握、コミット前にコードチェック、動的Appセキュリティテストツールなど – DevOps CI/CD Pipelineとセキュリティツール間の有機的な結合セキュリティ診断ツール
成果評価– 成果測定のためにマトリックス準備 – 送信リードタイム(Lead time to delivery)、配布頻度及び周期(The number and frequency of deployment)、障害復旧時間(Mean time to recover, MTTR) – 比率に表現された欠陥の数変化などのデータを活用セキュリティコードの品質点数提供

3) DevSecOps段階ごとの適用ツール

DevSecOps


【▲ DevSecOps Pipeline適用Tool(参考:Stackify)】

・DevSecOpsの成功的に適用するためにDevOps開発の全ての段階で自動化されたツール及びセキュリティツールが適用できる。これを通じて開発の生産性、効率性、セキュリティ性が確保できる
・DevOpsの開発過程と同じくソースコードを作成する段階から配布及びモニタリング段階までDevOps Pipelineと有機的に連携される自動化されたセキュリティツール(Tool)の適用が必要である。

03. Micro Focus Enterprise DevSecOps Suitを通じて見たDevSecOpsの重要機能

1) アーキテクチャ

DevSecOpsの体表的なソリューションであるMicro Focus社から提供している「Micro Focus Enterprise DevSecOps Suite」を通じて開発から運用まで全体のライフサイクルを包括する重要機能について調べてみよう。

DevSecOps

2) 重要モジュール

重要モジュール説明
Continu ous Planning– 開発全般にわたって持続的に計画を統合し、IT投資が前略的ビジネスの目標に合わせられるように要求事項とプロジェクト、リソースを管理して優先順位を指定する機能を提供
Continuous Integration– 開発者が作ったコードを共有ストレージに自動統合する作業を担当 – 構成管理、変更管理ソリューションにチェックインされた各コードはビルド過程で自動検証されるため、コードの問題の初期発見ができる
Continuous Deployment and Release– DevOps Pipelineの様々な段階から生産環境へコードを配布するモジュール – 配布基準はテスト状態及び完全な自動化で配布
Continuous Testing– ソフトウェアPipelineの一部で自動化されたテスト実行し、これを通じてリリースに関するリスクを素早く対処してソフトウェアの品質が高められる
Continuous Security– コードレベルスキャニングからPipelineの全ての段階で体系的なセキュリティテストサポート – 24×7モニタリング、保護サービスを提供
Continuous Operations– 運用中のサービスの過負荷、起動中止時間の最小化などができるようにサービスの可用性と信頼性をサポート
Continuous Collaboration– DevOps導入過程に必要な文化的な変化である協業をサポート – チャットボットとボイスボットを利用したチャットオプス(ChatOps)を活用してDevOpsチーム員たちのコミュニケーションを強化して持続的な共通作業をサポート
Continuous Assessment– 製品を開発して配布する全ての段階のフィードバックを処理 – 繰り返す改善のためにサービスがどのように運用されているか、組織がどのように協業しているか情報を収集して分析し、数値化してサービスの改善方法を提案

Micro Focus Enterprise DevSecOps SuiteはEnd-to-End DevOps Ecosystemでモジュール式運用とMicro Focusの全ての技術を統合をサポートするシステムでCP(Continuous Planning), CI(Continuous Integration), CD(Continuous Deployment & Release), CT(Continuous Testing), CS(Continuous Security), CO(Continuous Operations), CC(Continuous Collaboration), CA(Continuous Assessment)総8つのモジュールに構成されている。

04. DevSecOps の成功的な導入のための条件

1) 組織文化及び業務プロセスの条件

①開発文化改善

  • DevSecOps組織内に成功的に適用するためには開発と運用、セキュリティ部署ががセキュリティを共通の責任とする文化及び認識が必要である。
  • このためにDevOpsとDevSecOpsを学習し及び教育し、組織内の構成員の意見と主張をお互いにコミュニケーションする文化が必要である

②構成員の専門性を高める

  • 過去伝統的な開発の生命周期は短いと数カ月、長いと1年以上の開発期間が所要される場合もあった。
    ビジネスの変化とICT環境の変化に御客のNeedsは多様になり、RTE(Real Time Enterprise)をサポートするためには早い開発と配布が重要である。
  • このような要求事項に適切に対応するためにはDevSecOpsの構成員は高級開発者以上の開発の能力と技術力があってこそ成功的なDevSecOpsが可能になる

③業務プロセスの改善

  • DevSecOpsを具現するためにはセキュリティコンプライアンス組織がそれぞれのプロセス、ポリシー、要求事項を開発及び運用部門に活用できるようにDevOpsワークフローを統合しなければならない。
    セキュリティ組織が開発と運用のプロセス、技術、ツールを正確に理解できない場合DevSecOpsを成功的に導入することは難しい。
  • セキュリティ組織は開発初期段階からセキュリティの考慮をして分析し、テスティングを行う必要がある。開発者はセキュアコーディングに対して学習と適用が必要で、セキュリティ組織は開発者にこれに対しての教育を行わなければならない

④セキュリティを全過程に内在化

  • セキュリティを全体アプリケーション開発、運用の過程の重要価値として内在化する具体的な方法と専門家のサポートが必要である。組織内で強くDevSecOps文化を内在化するためにはセキュリティポリシー及び指針のレベルで「規定化」する方法も一つの事例になる。
  • セキュリティを規定化するためには開発の全ての過程を自動化し、精巧的なソリューションが必要である。セキュリティポリシーのアップデートが開発過程から迅速で持続的に行われる必要があり、必要に応じて外部ツールと連携できるようにする必要がある。

2) 技術的な条件

①自動化を通じて効率性と正確性を高める

  • DevOpsとDevSecOpsの重要なことの一つは自動化(Automation)である。
  • 全過程で自動化されたツールを活用してセキュリティテスティングなどを行う必要がある。
    例えばソースコードを開発時にgitrob, CHECKMARKツールを利用してソースコードをチェックし、CT Build時にSplunkを通じてソースコードのエラー有無をチェックするなど開発プロセスの段階ごとにツールを活用して自動化を実施する。
  • これのためには開発、運用、セキュリティ組織がお互いに協業し、各ツールの理解と成熟度も必要である。

②DevSecOpsの段階的な適用

  • IT開発組織がいきなりDevSecOpsを適用すると言ったら構成員はどのように受け入れるのであるか。
    たぶん、みんなが混乱するだろう。これを抑えるためには段階的に適用するのも一つの方法である。
    段階的な適用を通じてDevSecOps組織の成熟度を上げてBest Practice Modelを通じて開発全体組織に拡大することができる。
  • また、自動化ソリューションの一部モジュールを導入することで組織内の成熟度を向上していく方法もある。
  • 8つのモジュールの中でContinuous Testingモジュールをまず購入し、テスト段階に適用し、テストのボトルネックを改善することで、短期間でROI(投資対比評価)を実現できる。

③効果的なツールの選択

  • DevSecOps CI/CD Pipelineと既存ツールに簡単、そして効果的に連携できるツールの選択が必要である。また、各種セキュリティに関するツールが使いやすく有機的に連携されてツールごとの機能及び自動化レベルも考慮する必要がある。

④持続的な繰り返しと改善

  • DevSecOpsの適用を成功させるには、運用を継続することである。一気で達成するのではなく、持続的な繰り返しと改善を行うことである。
    結果的成功するためにはすぐに手に入る成果に拘るより新しい企業文化が組織全体に広がるように最新技術ソリューションを持続的にサポートし、教育することが一番大事である。

05. 最後に

現在のICT環境は既存On-Permise環境からクラウドサービス及びコンテナ基盤のサービスの形に進化されている。組織ではこれに関するセキュリティ脆弱性を即時に対応できるDevSecOpsに対しての要求が益々増えると思う。
それに限らず、ビジネス及びサービスに関する既存のドメイン単位より軽量化されたマイクロサービス(MSA)単位での開発配布などが増加し、セキュリティ脆弱性に素早く対応できる開発文化の形が必要になっている。
さらに、最近はCOVID-19のようなグローバルパンデミック現象のため、業務環境がスマートワーク及びリモートワークに変化し、新たなセキュリティ脅威及び脆弱性が増えると思う。
今後、ビジネス及びICT環境は既存の情報システムインフラ、データ及び情報などを対象にするこれまでのセキュリティ脅威から進化して予測できない色んなセキュリティ脅威が増加すると思う。このようなセキュリティ脅威を素早く対応するためにはDevSecOpsを通じた開発と運用、セキュリティ組織を統合して柔軟に対応できる開発文化及び自動化された技術を適用うることが大事である。

06. イメージ参考

The Rise of DevSecOps – A Game Changer for IT Ops

セキュリティトレンドやITトレンド、
お知らせなどを配信。

Share:

More Posts

コメント*
お名前*
メールアドレス*

コメント*

お名前*
メールアドレス*

Copyright 2020 © CYBERFORTRESS, INC. All rights Reserved.
Scroll Up