DevSecOpsとは?

組み込みシステム開発におけるDevSecOpsが、開発の初期段階からセキュリティを組み込み、サイバー脅威への対策と迅速な開発・導入をどのように両立するのかをご紹介します。

 

DevSecOpsとは?

DevSecOpsは、開発ライフサイクル全体を通じてセキュリティを組み込むことで、今日ますます高まるセキュリティ要件に対応する開発アプローチです。サイバーセキュリティは、組織、アプリケーション、データ、運用を脅威から保護するための継続的な取り組みです。現在、セキュリティ部門は次の2つの大きな課題に直面しています。

  1. 市場競争の激化により、企業は開発からリリースまでのプロセス全体を効率化するDevOps手法を採用し、イノベーション、開発、リリースのスピードを飛躍的に高めています。
  2. サイバー脅威は量・質ともに急速に高度化しており、データ漏えい、ランサムウェア、多様化するマルウェア、その他の攻撃による被害が深刻化しています。
図1:DevSecOpsは、従来のDevOpsプラクティスにセキュリティを組み込んだアプローチです。

セキュリティチームは、従来型のリスク管理手法を見直し、セキュリティテストや検証を製品ライフサイクルに継続的かつ自動的に組み込む新しい手法を導入しています。その中核となるアプローチがDevSecOpsです。

DevOpsとの違い

DevSecOpsは、DevOpsから発展した考え方です。 DevOpsは、ソフトウェア開発(Development)と運用(Operations)を統合し、自動化によって開発プロセスに一貫性と効率性をもたらしました。しかし、セキュリティを開発後半で追加的に対応するだけでは不十分であることが明らかになりました。その結果生まれたのがDevSecOpsです。DevSecOpsでは、企画・設計の初期段階からセキュリティを組み込み、本番環境への展開後まで継続的にセキュリティ対策を行います。つまり、セキュリティを後付けではなく、開発プロセス全体に組み込むことがDevSecOpsの最大の特徴です。

変化するセキュリティ環境

セキュリティ環境は常に変化しており、その背景にはいくつかの重要な要因があります。

  • 脅威の高度化:マルウェアのシグネチャを容易に検出できた時代は、すでに過去のものとなりました。現在のマルウェアは、暗号化や高度な難読化によって検出を回避しながら拡散することが可能です。また、インターネットに接続された十分に管理されていないデバイスは、攻撃者に侵入口や横展開(ラテラルムーブメント)の足掛かりを提供してしまいます。さらに、高度な攻撃を行う脅威アクターは豊富な資金や技術力を持っており、大きな被害をもたらす一方で発見が難しい攻撃手法を継続的に開発しています。
  • 脅威の増加:サイバー攻撃は巨大な産業となっています。国家レベルの組織を含む多くの攻撃者が、ランサムウェア攻撃、個人情報の窃取、データ侵害などを目的として活動しています。インターネット接続されたデバイスは、既知の脆弱性を探索する自動化ツールによる継続的な攻撃にさらされています。
  • サイバーセキュリティ人材の不足:サイバーセキュリティやセキュリティエンジニアリングに必要なスキルを備えた人材は依然として不足しています。多くの組織は、システムやデータを適切に保護するために必要な人材の確保や維持に苦労しています。特に開発者やエンジニアリングチームは、セキュリティが製品に与える影響を理解し、設計段階からセキュリティを組み込める環境を整える必要があります。
  • DevOps手法の普及:製品ライフサイクルがDevOpsを取り入れるために「シフトレフト」へと移行したことに伴い、セキュリティ対策も同様に変化しています。数年前までは、開発の後工程でセキュリティ検証を行い、必要に応じてコンポーネントを再設計することが可能でした。しかし現在では、包括的なセキュリティ要件への対応と、自動化を前提としたリリースプロセスの両方から、開発ライフサイクル全体に組み込まれたセキュリティ検証が求められています。

組み込みシステム分野におけるDevSecOps

セキュリティチームは、組織内でセキュリティエンジニアリングやDevSecOpsの統合を構築するにあたり、チーム文化の変革、ハードウェアへの依存回避、新しいツールセットやセキュリティ開発スキルの習得など、いくつかの課題に直面しています。

文化

従来のセキュリティ対策は、多くの場合、エンジニアリング活動というよりは監査に近いものです。セキュリティチームは長年にわたり、チェックリストや厳格な要件を用いて、製品がセキュリティ基準を満たしているかを評価してきました。このアプローチは開発者に「セキュリティ・バイ・デザイン」のための方向性を示すことはできますが、必要なハードウェアや組み込みシステムのノウハウを持つスタッフを維持することは困難です。

さらに大きな課題となっているのは、組み込みシステムのセキュリティを評価するために自動化を活用する必要性です。これには、ツールの開発、DevOpsの専門知識、そして多くの場合、コード開発能力が求められます。チームメンバーは最新の機能についてトレーニングを受ける必要があり、DevOps担当者に遅れを取らないよう、追加のプログラミング専門知識を必要とするメンバーもいるでしょう。しかし、セキュリティチームがこの転換を成し遂げることができれば、その成果は極めて大きなものとなります。

DevSecOpsプラクティスへの移行は、当初は困難を伴うかもしれませんが、最終的にはチームにとって大きな力となります。

ハードウェア依存

多くのハードウェアベンダーは、開発者が活用し、セキュリティチームが検証すべきセキュリティ機能を提供しています。しかし、それらの機能は多くの場合ベンダー固有であり、プラットフォームごとに実装が異なります。例えば、セキュアブートには、Intel® TXT/tboot や U-Boot など、さまざまな実装方式があります。そのため、こうした違いを吸収して自動化する仕組みを構築することは容易ではありません。

セキュリティパターン

セキュリティが組み込みシステム開発の基盤となるにつれ、重要なベストプラクティスには、署名検証と署名付き証明書を利用する「信頼の連鎖(Chain-of-Trust)」に基づくブートローディングの開発、バックドアを排除するための組み込みシステムの生産環境におけるJTAGの無効化、データストレージの保護、およびイメージや接続のなりすましを防ぐための証明書と暗号化鍵の保護などが含まれます。

DevSecOpsでは、オンプレミス環境、クラウド環境、ハイブリッド環境のすべてをサポートする必要があります。DevSecOps環境に関連する主な仕様やベストプラクティスには、以下のようなものがあります。:

Wind Riverのアプローチ

Wind RiverのDevSecOps環境

Wind River®は、組込みシステム分野におけるアジャイル開発で豊富な実績を有しています。私たちは、自社製品の開発を通じてDevSecOpsの実践を先駆的に進めてきました。Wind Riverのプロフェッショナルサービスチームは、最先端の開発ツールを最大限に活用するためのベストプラクティスを提供し、お客様のDevSecOps導入を支援します。

セキュリティ・バイ・デザイン

強固なセキュリティは、コードを書き始める前の段階から始まります。重要なのは、設計段階からベストプラクティスに基づくセキュリティ原則を組み込むことです。これはDevSecOps環境において特に重要です。なぜなら、これらのセキュリティ原則が、CI/CDパイプラインに組み込まれる自動化されたセキュリティチェックや脆弱性評価の基盤となるからです。

Wind Riverは、Intel、NXP、Xilinx/AMDをはじめとする多くのハードウェアベンダーと連携し、開発者が各プラットフォームのセキュリティ機能やベストプラクティスを最大限に活用できるよう支援しています。

Wind Riverのさまざまな製品が、DevSecOpsの実践に取り組むチームをサポートしています。

デザインによるセキュリティ

セキュリティは、製品ライフサイクルの中の単なる1工程として扱われることが少なくありません。初期段階で厳格なセキュリティ要件が定義されていても、その検証が開発プロセスの後半まで行われない場合があります。また、リリース直前にセキュリティ監査を実施した結果、問題が発見されても、その時点で修正するには多大なコストがかかるため、次回リリースへ先送りされることもあります。

DevSecOpsの目的は、設計からリリースまでのライフサイクル全体を通じて継続的にセキュリティを検証することです。Wind River Studioのようなプラットフォームを活用することで、この考え方を実践できます。Wind River Studioは、エッジシステムの開発、展開、運用、および保守を統合的に管理できるプラットフォームです。システムを一元的に管理することで、ライフサイクル全体にわたるセキュリティの自動化が可能になります。

典型的なDevSecOps環境を図2に示します:

typical DevSecOps environment
図2. 典型的なDevSecOps環境

この図では、保護対象となるDevSecOps環境の主要な資産が示されています。これには以下が含まれます:

  • リポジトリ
    • コード、ローカルアーティファクト、およびリリース済みアーティファクトのリポジトリ
  • ソフトウェアコンポーネント
    • IDE、リポジトリ、開発およびテスト用コンポーネント
  • ビルドツール自体:
    • コンパイラおよびリンカ
  • コンポーネント間の連携
  • 各コンポーネントの設定
  • オンプレミスおよびクラウド環境における各コンポーネントのストレージ要素
  • すべてのコンポーネントのイベントログ

図には示されていませんが、重要な資産として**ハードウェアセキュリティモジュール(HSM)**があります。HSMは、暗号鍵の生成・保護・管理を行う専用ハードウェアであり、デジタル署名、強力な認証、暗号化・復号化処理などを担います。

脆弱性を特定するためには、まず情報セキュリティの基本的な考え方を理解する必要があります。情報セキュリティとは、「情報および情報システムを、不正なアクセス、利用、開示、妨害、改ざん、または破壊から保護することである。」これらの不正行為は、DevSecOps環境に対する攻撃として発生する可能性があります。図3では、それぞれの攻撃によって影響を受ける資産が示されています。この一覧は、各資産を保護するために必要なセキュリティ対策を決定する際の基礎となります。

図3は、各不正な事象が発生した際に脆弱となる資産を特定しています。このリストは、各資産を保護するために必要なセキュリティ対策の決定における基礎となります。

DevSecOps環境を保護するために、複数の技術が組み合わされています。それぞれの機能を図4に示します。

Types of attacks
図3. 各資産を保護すべき攻撃の種類


technologies to mitigate attacks
図4. 特定された攻撃を軽減するための技術の機能

セキュリティとコンプライアンス

Wind Riverは、複雑な組込みソフトウェアシステム向けに設計された、自動化されたセキュリティおよびコンプライアンススキャンを提供しています。これにより、開発チームはリスクの高い脆弱性を特定し、その優先順位付けを行うことができます。このスキャンサービスは、Common Vulnerabilities and Exposures(CVE) データベースを活用し、アプリケーションやオープンソースパッケージに存在するリスクや脆弱性を特定します。

また、Wind RiverはCVE対策に関する専門的なガイダンスも提供しており、パッチ適用前に必要となるバックポート、検証、およびテストに関する推奨事項を提示します。これにより、アプリケーションの安定性と継続運用を維持しながら、最新のセキュリティ要件への準拠を支援します。

Wind River製品を活用したDevSecOps

Wind River Studio

Studioは、開発チームがエッジ環境での構築、テスト、デプロイを加速できる、包括的なライフサイクル管理プラットフォームを提供します。Studioは、完全なクラウドネイティブプラットフォームをサポートするだけでなく、CI/CDワークフロー全体にわたる開発状況のエンドツーエンドの可視化を実現します。DevOpsチームが高度な自動化を達成できるよう支援することで、Studioは組織がセキュリティ自動化を導入するための真の機会を創出します。Studioは、自動化のトリガーやデジタルフィードバックループをサポートしており、開発自動化の水準を引き上げるだけでなく、セキュリティ統合も支援します。

また、Studioは、開発チームとセキュリティチームが単一のインターフェースを通じて連携できるようにし、製品開発ライフサイクル全体を通じてセキュリティ検証が決して見落とされることのないよう保証します。アーティファクトはStudio内でキャプチャされ、アーカイブや再利用のために保存することができます。

» 詳細はこちら
Wind River Products

RTOS

DevSecOpsの自動化には、適切なツールが不可欠です。VxWorks®を搭載したStudioの業界をリードするリアルタイムオペレーティングシステム(RTOS)は、計測機能のためのプラットフォームを提供するとともに、サードパーティ製セキュリティツールをネイティブでサポートしています。VxWorksは、Studioを通じてDevOpsパイプラインの開発およびCI/CDモデルをサポートします。

また、VxWorksは、自動化を通じて評価可能な暗号化サービスやアクセス制御などの組み込みセキュリティ機能も提供します。これにより、開発者がこれらのセキュリティ機能を最大限に活用できるようになります。

» 詳細はこちら

Linux OS

Wind River Linuxを基盤とするStudio Linuxオペレーティングシステムは、DevSecOpsエンジニアにオープンソースのパワーと、セキュリティ自動化を実装するための共通のLinuxプラットフォームを提供します。アプリケーションのコンテナ化と分離をサポートしており、セキュリティチームがよりきめ細かなレベルでセキュリティ検証を実施できるようにします。また、自動化された評価を通じて測定可能な強力なアクセス制御と職務分離も提供します。

VxWorksと同様に、Wind River LinuxはStudioを通じてDevOpsパイプラインの開発およびCI/CDモデルをサポートします。エンドツーエンドのプラットフォーム上で開発を行うことで、DevSecOpsチームはプロトタイプから本番環境に至るまでの製品ライフサイクル全体にわたって完全性モニタリングを実行できます。

» 詳細はこちら

シミュレーション

前述のように、ハードウェアへの依存は、DevSecOpsプラクティスを導入しようとするチームにとって課題となる場合があります。Wind River Simics® を基盤とする Studio のフルシステムシミュレータは、この依存関係を解消します。Simics は多種多様なハードウェアやオペレーティングシステムの機能を再現できるため、セキュリティチームは自動化されたセキュリティテストや検証をより容易に開発できます。

例えば、Simics を使用するチームは、特定のソフトウェアがさまざまな種類のセキュリティ脅威にどのように反応するかを示すことができます。開発者が Simics 内でシステムのモデルを作成すれば、データ漏洩やマルウェア攻撃など、多種多様なセキュリティシナリオをシミュレートできます。 開発チームは、物理的な開発ラボの構築に時間や費用を費やす必要がなくなり、セキュリティチームは、ハードウェア環境が脅威にさらされた際にどのように反応するかを事前に確認できます。その結果、さまざまなシナリオ下で既にテスト済みであるため、保護が容易で、より高品質なコードが得られます。

» 詳細はこちら

DevSecOpsに関するFAQ

DevSecOpsとは、ソフトウェア開発(Dev)、セキュリティ(Sec)、運用(Ops)を統合し、ソフトウェアアプリケーションのセキュリティに対する責任を共有する文化を醸成するための手法です。
DevSecOpsのメリットには、ソフトウェアのセキュリティ向上、リリースサイクルの短縮、チーム間の連携強化、透明性と説明責任の向上などが挙げられます。
DevSecOpsは、セキュリティを最終段階の独立したプロセスとして扱うのではなく、ソフトウェア開発ライフサイクル(SDLC)全体を通じて重視するという点で、従来のソフトウェア開発手法とは異なります。
DevSecOpsの主な原則としては、ソフトウェア開発ライフサイクル(SDLC)においてセキュリティ対策を「左側(初期段階)」に前倒しすること、セキュリティプロセスの自動化、継続的インテグレーションおよび継続的デリバリー(CI/CD)パイプラインへのセキュリティの統合、そして部門横断的なチームがセキュリティに対する責任を担えるようにすることなどが挙げられます。
一般的なDevSecOpsツールには、静的コード解析ツール、動的アプリケーションセキュリティテスト(DAST)ツール、脆弱性スキャンツール、セキュリティ情報イベント管理(SIEM)ツールなどがあります。
自動化は、セキュリティプロセスをCI/CDパイプラインに統合し、セキュリティの脆弱性や脅威をリアルタイムで特定し、手動によるセキュリティタスクの実行に必要な時間と労力を削減することで、DevSecOpsにおいて極めて重要な役割を果たしています。
DevSecOpsは、クラウド環境におけるセキュリティプロセスの自動化、クラウドネイティブアーキテクチャへのセキュリティ制御の統合、およびセキュリティリスクやコンプライアンス達成状況に対する可視性と制御の提供を通じて、クラウドセキュリティの課題に対処するのに役立ちます。
一般的なDevSecOpsのベストプラクティスには、定期的なセキュリティテストや脆弱性評価の実施、セキュリティ制御の「コードとしての実装」、セキュリティイベントやインシデントのリアルタイム監視、そしてセキュリティプロセスや手順の継続的な改善などが挙げられます。
DevSecOpsの導入に伴う課題としては、変化に対する組織文化的な抵抗の克服、既存のプロセスやツールへのセキュリティの統合、セキュリティおよびDevOps分野におけるスキルギャップの解消などが挙げられます。
組織がDevSecOpsを開始するには、セキュリティに関する明確なビジョンと戦略を策定し、協働と責任分担の文化を醸成し、セキュリティプロセスを自動化してCI/CDパイプラインに統合し、フィードバックと測定を通じてセキュリティプロセスや手順を継続的に改善することが挙げられます。
-->