DevSecOpsとは?
DevSecOpsとは、開発サイクルにおける、今日ますます高まるセキュリティ上の懸念に対処するための開発アプローチです。サイバーセキュリティとは、組織、アプリケーション、データ、および運用に対するリスクを管理するための、終わりのない戦いです。セキュリティ部門は、次の2つの要因からプレッシャーにさらされています。
- 市場の圧力により、組織は開発およびリリースサイクル全体を効率化するDevOps手法を採用するようになり、企業がソリューションの革新、構築、リリースを行わなければならないスピードは飛躍的に高まっています。
- サイバー脅威の高度化と増加は劇的に進んでおり、データ漏洩、ランサムウェア、数え切れないほどのマルウェア、その他の脅威による壊滅的な結果をもたらしています。
セキュリティチームは、従来のリスク管理アプローチを見直し、セキュリティテストや検証を製品ライフサイクルに統合するための動的で自動化された手法を構築しています。DevSecOpsは、そのための基本的な戦略として台頭してきました。
変化し続けるセキュリティ環境
セキュリティ環境は、いくつかの要因によって形作られ、絶えず変化しています。
- 脅威の高度化:マルウェアのシグネチャが容易に特定できた時代はとっくに過ぎ去りました。現在のマルウェアはホモモルフィック化されているか、あるいは完全に暗号化されており、検出されることなくデバイス間で拡散することが可能になっています。インターネットに接続された監視されていないハードウェアデバイスは、侵入経路や横方向の移動を許してしまいます。高度な手口を持つ脅威アクターは、甚大な被害をもたらす一方で実質的に検出不可能な攻撃を開発するために、莫大な資金を投入しています。
- 脅威の量:サイバー攻撃は巨大なビジネスとなっています。国家を含む無数の個人や組織が、ランサムウェアの展開、個人情報の窃取、データストアへの侵入を行う動機を持っています。インターネットに接続されたデバイスは、既知の脆弱性をスキャンする自動化ツールによる絶え間ない攻撃にさらされています。
- サイバーセキュリティリソースの不足:サイバーセキュリティおよびセキュリティエンジニアリングのあらゆるスキルセットを兼ね備えた人材は、比較的希少です。組織は、自社のリソースを適切に保護するために、スタッフや有能な人材を維持することにしばしば苦戦しています。特に開発者やエンジニアリングチームは、セキュリティが及ぼす影響を理解し、製品にセキュリティ機能を組み込むための権限を与えられなければなりません。
- DevOpsの手法:製品ライフサイクルがDevOpsを取り入れるために「左側」へシフトしたことに伴い、セキュリティ対策も同様に変化しています。ほんの数年前までは、製品をセキュリティ検証にかけ、必要に応じてコンポーネントを再設計することが可能でした。しかし現在では、包括的なセキュリティ要件と、製品リリースにおける「自動化優先」のアプローチの両方が、統合されたセキュリティ検証を必要としています。
組み込みシステム分野におけるDevSecOps
セキュリティチームは、組織内でセキュリティエンジニアリングやDevSecOpsの統合を構築するにあたり、チーム文化の変革、ハードウェアへの依存回避、新しいツールセットやセキュリティ開発スキルの習得など、いくつかの課題に直面しています。
文化
従来のセキュリティ対策は、多くの場合、エンジニアリング活動というよりは監査に近いものです。セキュリティチームは長年にわたり、チェックリストや厳格な要件を用いて、製品がセキュリティ基準を満たしているかを評価してきました。このアプローチは開発者に「セキュリティ・バイ・デザイン」のための方向性を示すことはできますが、必要なハードウェアや組み込みシステムのノウハウを持つスタッフを維持することは困難です。
さらに大きな課題となっているのは、組み込みシステムのセキュリティを評価するために自動化を活用する必要性です。これには、ツールの開発、DevOpsの専門知識、そして多くの場合、コード開発能力が求められます。チームメンバーは最新の機能についてトレーニングを受ける必要があり、DevOps担当者に遅れを取らないよう、追加のプログラミング専門知識を必要とするメンバーもいるでしょう。しかし、セキュリティチームがこの転換を成し遂げることができれば、その成果は極めて大きなものとなります。
DevSecOpsプラクティスへの移行は、当初は困難を伴うかもしれませんが、最終的にはチームにとって大きな力となります。
ハードウェアへの依存
ほとんどのハードウェアベンダーは、開発者が活用し、セキュリティチームがテストすべきセキュリティ機能を実装していますが、それらは多くの場合、独自仕様であり、プラットフォームごとに異なります。例えば、セキュアブートには、Intel® TXT/tboot や U-Boot など、さまざまな実装が存在します。これらの違いに対応する自動化を構築することは困難です。
セキュリティパターン
セキュリティが組み込みシステム開発の基盤となるにつれ、重要なベストプラクティスには、署名検証と署名付き証明書を利用する「信頼の連鎖(Chain-of-Trust)」に基づくブートローディングの開発、バックドアを排除するための組み込みシステムの生産環境におけるJTAGの無効化、データストレージの保護、およびイメージや接続のなりすましを防ぐための証明書と暗号化鍵の保護などが含まれます。
DevSecOpsは、完全なオンプレミス環境、クラウドベース環境、およびハイブリッド構成のすべてをサポートする必要があります。DevSecOps環境に関連する仕様とベストプラクティスには、以下が含まれます:
- DoDエンタープライズDevSecOpsリファレンスデザイン
- DoD クラウドコンピューティングセキュリティ要件ガイド
- DoD コンテナ強化ガイド
- DoD/DISA コンテナイメージ作成および展開ガイド
- トランスポート層セキュリティ(TLS)実装の選定、構成、および使用に関するガイドライン(NIST 800-52)
- 非連邦システムおよび組織における管理対象非機密情報の保護(NIST 800-171)
- ゼロトラスト・アーキテクチャ(NIST 800-207)
- アプリケーション・コンテナ・セキュリティ・ガイド(NIST 800-190)
- コンピュータセキュリティログ管理ガイド (NIST 800-92)
- 金融サービス部門における特権アカウント管理(NIST 1800-18A)
- 情報システムおよび組織のためのセキュリティおよびプライバシー管理措置(NIST 800-53)
- 「安全な情報共有のための公開標準の利用」、国家セキュリティシステム政策委員会(CNSSP 15)
- デジタル署名規格(FIPS 186-4)
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に示します:
この図は、セキュリティ対策が必要なDevSecOps環境のいくつかの資産を強調しています。これには以下が含まれます:
- リポジトリ
- コード、ローカルアーティファクト、およびリリース済みアーティファクトのリポジトリ
- ソフトウェアコンポーネント
- IDE、リポジトリ、開発およびテスト用コンポーネント
- ビルドツール自体:
- コンパイラおよびリンカ
- コンポーネント間の連携
- 各コンポーネントの設定
- オンプレミスおよびクラウド環境における各コンポーネントのストレージ要素
- すべてのコンポーネントのイベントログ
図には示されていない資産として、ハードウェアセキュリティモジュール(HSM)があります。HSMは、デジタル鍵を保護・管理し、デジタル署名、強固な認証、その他の暗号化機能のための暗号化および復号化機能を実行する物理的なコンピューティングデバイスです。
脆弱性を特定するには、まず定義から始めましょう。「情報セキュリティとは、情報および情報システムを、不正なアクセス、使用、開示、妨害、改ざん、または破壊から保護することを意味する……」。こうした不正な事象は、DevSecOpsシステムに対する攻撃となり得ます。
図3は、各不正な事象が発生した際に脆弱となる資産を特定しています。このリストは、各資産を保護するために必要なセキュリティ対策の決定における基礎となります。
DevSecOps環境を保護するために、複数の技術が組み合わされています。それぞれの機能を図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内でキャプチャされ、アーカイブや再利用のために保存することができます。
» 詳細はこちら
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 内でシステムのモデルを作成すれば、データ漏洩やマルウェア攻撃など、多種多様なセキュリティシナリオをシミュレートできます。 開発チームは、物理的な開発ラボの構築に時間や費用を費やす必要がなくなり、セキュリティチームは、ハードウェア環境が脅威にさらされた際にどのように反応するかを事前に確認できます。その結果、さまざまなシナリオ下で既にテスト済みであるため、保護が容易で、より高品質なコードが得られます。
» 詳細はこちら