DevSecOpsとは?

組み込みシステム開発におけるDevSecOpsが、サイバー脅威からの保護を図りつつ、イノベーションと導入の迅速化を実現するために、開発の初期段階からセキュリティにどのように取り組んでいるかをご紹介します。

 

DevSecOpsとは?

DevSecOpsとは、開発サイクルにおける、今日ますます高まるセキュリティ上の懸念に対処するための開発アプローチです。サイバーセキュリティとは、組織、アプリケーション、データ、および運用に対するリスクを管理するための、終わりのない戦いです。セキュリティ部門は、次の2つの要因からプレッシャーにさらされています。

  1. 市場の圧力により、組織は開発およびリリースサイクル全体を効率化するDevOps手法を採用するようになり、企業がソリューションの革新、構築、リリースを行わなければならないスピードは飛躍的に高まっています。
  2. サイバー脅威の高度化と増加は劇的に進んでおり、データ漏洩、ランサムウェア、数え切れないほどのマルウェア、その他の脅威による壊滅的な結果をもたらしています。
図1:DevSecOpsは、おなじみのDevOpsプラクティスにセキュリティを追加する

セキュリティチームは、従来のリスク管理アプローチを見直し、セキュリティテストや検証を製品ライフサイクルに統合するための動的で自動化された手法を構築しています。DevSecOpsは、そのための基本的な戦略として台頭してきました。

DevOpsとはどう違うのか?

DevSecOpsのプロセスは、DevOpsから発展したものです。DevOpsは、ソフトウェア開発と運用を周期的なフローを持つ統一されたプロセスに統合し、タスクを自動化することで、コード開発に一貫性と構造をもたらしました。セキュリティ上の懸念を後段階での追加措置として対処することはできないことが明らかになった際、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への移行を実現できるよう支援いたします。

設計段階からのセキュリティ

強固なセキュリティは、1行のコードも記述される前から始まります。それは設計段階から始まり、ベストプラクティスに基づくセキュリティ原則を可能な限り早い段階で確実に実装することです。これはDevSecOps環境における自動化されたセキュリティにとって特に重要です。なぜなら、これらのセキュリティ原則が、CI/CDパイプラインによって実装されるべき自動化や脆弱性測定の指針となるからです。

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

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

設計段階からのセキュリティ

あまりにも多くの場合、セキュリティはせいぜい製品ライフサイクルのひとつのフェーズとしてしか考えられていません。初期段階で厳格なセキュリティ要件が策定されたとしても、開発プロセスの終盤になるまで評価されないことがあります。あるいは、リリース直前にセキュリティ監査が実施されることがありますが、その時点ではリアルタイムでの修正には法外なコストがかかるため、修正は将来のリリースに先送りされてしまいます。

DevSecOpsが約束するのは、設計からリリースに至るサイクル全体を通じてセキュリティを測定することです。Wind River Studioなどのプラットフォームを活用することで、チームはこの約束を実現できます。Studioは、エッジシステムの開発、展開、運用、および保守のための包括的なプラットフォームを提供します。システムをこのように管理することで、ライフサイクル全体にわたるセキュリティの自動化が可能になります。

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

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

この図は、セキュリティ対策が必要なDevSecOps環境のいくつかの資産を強調しています。これには以下が含まれます:

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

図には示されていない資産として、ハードウェアセキュリティモジュール(HSM)があります。HSMは、デジタル鍵を保護・管理し、デジタル署名、強固な認証、その他の暗号化機能のための暗号化および復号化機能を実行する物理的なコンピューティングデバイスです。

脆弱性を特定するには、まず定義から始めましょう。「情報セキュリティとは、情報および情報システムを、不正なアクセス、使用、開示、妨害、改ざん、または破壊から保護することを意味する……」。こうした不正な事象は、DevSecOpsシステムに対する攻撃となり得ます。

図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パイプラインに統合し、フィードバックと測定を通じてセキュリティプロセスや手順を継続的に改善することが挙げられます。
-->