DevSecOpsとは?

組込みシステム開発におけるDevSecOpsが、どのように初期段階からセキュリティに対処し、より迅速なイノベーションとデプロイメント、そしてサイバー脅威からの保護を実現するかをご紹介します。

 

DevSecOpsとは?

DevSecOpsは、今日高まりつつあるセキュリティへの懸念を開発サイクルの中で解決するための開発手法です。サイバーセキュリティは、組織、アプリケーション、データ、および運用に対するリスクを管理するための終わりのない競争です。セキュリティ担当の組織は、2つの局面からの圧力に直面しています。

  1. 市場からの圧力により、企業は開発およびリリースサイクル全体を合理化するDevOpsを採用するようになりました。企業がソリューションを革新し、構築し、リリースしなければならないスピードは、これまでになく早くなっています。
  2. サイバー脅威の巧妙さと量は劇的に増加しており、データ侵害、ランサムウェア、無数のマルウェアなどの脅威が壊滅的な脅威をもたらしています。
図1. DevSecOpsは、従来のDevOpsの実践方法に
セキュリティが加わったものです。

セキュリティチームは、従来のリスク管理アプローチを見直し、セキュリティテストと妥当性確認を製品のライフサイクルに統合する、動的で自動化された方法を生み出しています。DevSecOpsは、基本的な戦略として登場しました。

DevOpsとはどう違うのか?

DevSecOpsプロセスは、ソフトウェア開発と運用を循環的な流れを持つ統一されたプロセスに統合し、タスクを自動化し、コード開発に一貫性と構造をもたらすDevOpsから発展したものです。セキュリティの懸念は、開発の後半になってからのアドオンでの対応が不可能であることが明らかになると、DevSecOpsのアプローチが登場し、初期の計画段階からセキュリティを取り入れ、デプロイ後まで貫き通すようになりました。

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

情報セキュリティを取り巻く環境は常に変化しており、いくつかの要因によって形成されています。

  • 脅威の高度化: マルウェアのシグネチャを簡単に識別できる時代はとうに過ぎ去りました。現在では、マルウェアは準同型、あるいは完全に暗号化されており、デバイス間で検知されずに拡散されます。インターネットに接続可能な監視対象外のハードウェアデバイスは、アクセスポイントや横方向の移動を可能にします。洗練された脅威によって多額の資金を手に入れ、非常に有害でありながら実質的に検知されない攻撃を開発できるようになりました。
  • 脅威の量: サイバー攻撃は大きなビジネスになっています。国家を含む無数の個人と組織が、ランサムウェアを起動し、IDを盗み、データストアを侵害しています。インターネットに接続されたデバイスは、既知の脆弱性をスキャンする自動化されたツールによって常に包囲された状態にあります。
  • サイバーセキュリティに関連する人的リソースの希少性:サイバーセキュリティとセキュリティエンジニアリングのための完全なスキルセットを持つ人材の確保はとても困難です。組織はしばしば、リソースを適切に保護するための人材の確保に苦労しています。特に開発者とエンジニアリングチームは、セキュリティの意味を理解し、製品設計に落とし込む必要があります。
  • DevOpsの方法論: 製品のライフサイクルがDevOpsを取り入れるためシフトレフトに移行すると、セキュリティの取り組みも同様にシフトレフトになりました。ほんの数年前までは、製品のセキュリティの検証を行ってから、必要に応じてコンポーネントを再設計することが可能でした。現在では、包括的なセキュリティのニーズと製品リリースの自動化を優先するアプローチにまたがる、統合的なセキュリティの検証が必要になっています。

組込みシステムの世界におけるDevSecOps

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

文化

従来のセキュリティ対策は、エンジニアリングの取り組みというよりも、むしろ監査のように見えることが多い状況でした。セキュリティチームは長い間、チェックリストと厳しい要求事項を用いて、セキュリティ規格に照らして製品を評価してきました。このアプローチは、開発者に計画的なセキュリティの方向性を与えますが、必要なハードウェアや組込みシステムのノウハウを持った人材を確保することは困難です。

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

DevSecOpsプラクティスへの移行は、当初は困難ですが、
最終的にはチームにとって強力なものになります。

ハードウェアへの依存性

ほとんどのハードウェアベンダーは、開発者が活用し、セキュリティチームがテストすべきセキュリティ機能を実装していますが、それらはしばしばプロプライエタリで、各プラットフォームに固有のものです。例えば、セキュアブートには、 Intel® TXT/tbootU-Bootなど、さまざまな実装が存在します。これらの違いを処理する自動化を実現することは困難です。

セキュリティのパターン

セキュリティが組込みシステム開発の基礎となる中で、重要なベストプラクティスがあります。例えば、署名検証や署名付き証明書によって信頼チェーンが確立されたブートローディングの開発、バックドアを排除するための組込みシステムの製造におけるJTAGの無効化、データストレージの保護、イメージや接続の偽装を防ぐための証明書や暗号化キーの保護などです。

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

ウインドリバーのアプローチ

ウインドリバーが提供するDevSecOps環境

ウインドリバーは、組込みシステムの世界におけるアジャイル開発で、どの組織よりも多くの経験を積み、自社製品の開発においてこのプロセスを開拓しました。ウインドリバーのプロフェッショナルサービスチームは、ベストプラクティスを用いて当社の最先端の開発ツールを最も効果的に活用し、お客様がDevSecOpsを活用するお手伝いをします。

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

強力なセキュリティは、1行のコードが書かれる前に始まります。設計から始まり、セキュリティ原則のベストプラクティスをできるだけ早い段階で実装することを確実にします。これはDevSecOpsの世界での自動化されたセキュリティにとって特に重要です。なぜなら、これらの原則は、CI/CDパイプラインで実装される自動化と脆弱性測定に情報を与えるからです。

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

ウインドリバーのさまざまな製品が、DevSecOpsを実践するチームをサポートします。

設計を通してのセキュリティ

あまりにも多くの場合、セキュリティはせいぜい製品ライフサイクルの一段階としか考えられていません。おそらく、強力なセキュリティ要件が早期に確立されたにもかかわらず、開発プロセスの後半になるまで評価されないのでしょう。あるいは、セキュリティの監査はリリース直前に行われ、その時点ではリアルタイムで修正するには法外なコストがかかるため、将来のリリースに先送りされることになります。

DevSecOpsは、設計からリリースまでのサイクル全体を通したセキュリティの測定を可能にするもので、Wind River Studioなどのプラットフォームの活用によって、その効果がもたらされます。Wind River Studioは、エッジシステムのための開発、デプロイ、運用、およびサービスを行う総合的なプラットフォームを提供します。システムがこのような方法で管理されれば、ライフサイクル全体にわたるセキュリティの自動化が可能になります。

図2では典型的なDevSecOps環境を示します。

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

この図では、DevSecOps環境において、セキュリティの確保が必要な資産を紹介しています。

  • リポジトリ
    • コード、ローカルアーティファクト、リリース済みアーティファクトのリポジトリ
  • ソフトウェアのコンポーネント
    • IDE、リポジトリ、開発、テスト用コンポーネント
  • ビルドツールそのもの
    • コンパイラおよびリンカー
  • コンポーネント間の接続性
  • 各コンポーネントの構成
  • オンプレミス環境とクラウド環境の両方に対応した、コンポーネントのストレージ要素
  • 全てのコンポーネントのイベントログ

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

脆弱性を判断するには、まず定義からです。「情報セキュリティという用語は、情報や情報システムを不正なアクセス、使用、開示、混乱、修正、破壊から保護することを意味する…」。これらの不正なイベントは、DevSecOpsのシステムに対する攻撃となり得るものです。

図3は、それぞれの不正なイベント発生時に脆弱となる資産を特定したものです。このリストは、各資産を保護するために必要なセキュリティ実装を決定するための基礎となるものです。

DevSecOps環境のセキュリティを確保するために、複数の技術が結集されています。それぞれの能力を図4に示します。

Types of attacks
図3. 各アセットが保護されるべき攻撃の種類


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

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

ウインドリバーは、バックポート、検証、パッチ適用前のテストなど、CVE緩和に関して必要な推奨事項を含む専門的なガイダンスを提供します。これにより、お客様のアプリケーションは、セキュリティ要件の観点から最新の状態に保たれ、安定性と継続性を維持することができます。

ウインドリバー製品によるDevSecOpsの実現

Wind River Studio

Wind River Studio は、開発チームがエッジでのビルド、テスト、デプロイを加速できるようにする、完全なライフサイクル管理プラットフォームを提供します。また、完全なクラウドネイティブプラットフォームをサポートし、CI/CDワークフローにおける開発状態をエンドツーエンドで可視化します。DevOpsチームが高度な自動化を実現できるようにすることで、Wind River Studioはセキュリティの自動化を実現する真の機会を提供します。自動化のトリガーとデジタルフィードバックループのサポートは、開発の自動化の水準を高めるだけでなく、セキュリティの統合もサポートします。

Wind River Studioでは、開発チームとセキュリティチームが一元管理を通じて協力し、製品開発のライフサイクルの中でセキュリティ検証が失われることがないようにすることも可能です。アーティファクトはWind River Studio内にアーカイブとして保存され、再利用することができます。

» 詳細はこちら
Wind River Products

RTOS

DevSecOpsの自動化は、適切なツールの使用に依存しています。業界最先端のWind River Studioリアルタイムオペレーティングシステム(RTOS)powered by VxWorks®は、サードパーティのセキュリティツールのネイティブサポートとともに、インスツルメンテーションのためのプラットフォームを提供します。VxWorksは、Wind River Studioを通じてDevOpsパイプラインの開発と、CI/CDモデルの実現をサポートします。

VxWorksは、自動化によって評価可能な暗号サービスやアクセス制御などのセキュリティ機能も内蔵していますので、開発者はこれらのセキュリティ機能を最大限に活用することができます。

» 詳細はこちら

LINUX OS

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

VxWorksと同様にWind River Linuxは、Wind River Studioを通じたDevOpsパイプラインの開発とCI/CDモデルの実現をサポートしています。エンドツーエンドプラットフォームで開発することにより、DevSecOpsチームは、プロトタイプから生産に至る、製品のライフサイクルにわたり完全性の監視を実行できます。

» 詳細はこちら

シミュレーション

上述のようにハードウェアへの依存は、DevSecOpsの実践を目指すチームにとって課題となり得ます。Wind River Studioフルシステムシミュレータ(powered by Wind River Simics®)は、このような依存性を排除します。Simicsは、さまざまな種類のハードウェアやオペレーティングシステムの機能を再現できるため、セキュリティチームは自動セキュリティテストと検証をより容易に開発することができます。

例えばSimicsを使用するチームは、あるソフトウェアがさまざまなタイプのセキュリティの脅威にどう反応するかを示すことができます。開発者がSimicsでシステムのモデルを作成すると、データ侵害やマルウェア攻撃など、さまざまなセキュリティシナリオをシミュレーションできるようになります。開発チームは、物理的な開発ラボの設置に時間と費用を費やす必要がなくなり、セキュリティチームは、脅威の下ではハードウェアのデプロイメントの反応を事前に確認することができます。多くの異なるシナリオですでにテストされている結果、より保護しやすい高品質なコードを作成することができます。

» 詳細はこちら

DevSecOpsに関するFAQ

DevSecOpsは、ソフトウェア開発(Dev)、セキュリティ(Sec)、運用(Ops)を統合して、ソフトウェアアプリケーションのセキュリティに対する責任を組織全体で共有する手法です。
DevSecOpsのメリットは開発するソフトウェア自体および開発プロセスにおけるセキュリティの向上、リリースサイクルの高速化、チーム間のコラボレーションの向上、透明性と説明責任の向上などが挙げられます。
DevSecOpsは、従来のソフトウェア開発プロセスではその最終段階で、かつ独立したプロセスで行われてきたセキュリティ対策を実施するやり方と異なり、ソフトウェア開発ライフサイクル(SDLC)全体を通じてセキュリティを重視します。
ソフトウェア開発ライフサイクル(SDLC)におけるセキュリティの確保、セキュリティプロセスの自動化、継続的インテグレーションと継続的デリバリー(CI/CD)パイプラインへのセキュリティの統合、チーム全体によるセキュリティの責任の強化などがあります。
静的コード解析ツール、動的アプリケーションセキュリティテスト(DAST)ツール、脆弱性スキャンツール、セキュリティ情報・イベント管理(SIEM)ツールなどがあります。
自動化は、セキュリティプロセスをCI/CDパイプラインに統合し、セキュリティの脆弱性や脅威をリアルタイムで特定し、手動で行うセキュリティタスクに必要な時間と労力を削減することで、DevSecOpsにおいて重要な役割を担っています。
DevSecOpsは、クラウド環境におけるセキュリティプロセスの自動化、クラウドネイティブアーキテクチャへのセキュリティコントロールの統合、セキュリティリスクやコンプライアンス達成の可視化と制御により、クラウドセキュリティの課題を解決します。
定期的なセキュリティテストと脆弱性評価の実施、コード実装によるセキュリティコントロール、セキュリティイベントとインシデントのリアルタイムでの監視、セキュリティプロセスと手順の継続的な改善などがあります。
変化に対する文化的抵抗の克服、既存のプロセスやツールへのセキュリティの統合、セキュリティとDevOpsのスキル差への対応などがあります。
セキュリティに関する明確なビジョンと戦略の確立、コラボレーションと共有責任の文化の構築、セキュリティプロセスの自動化とCI/CDパイプラインへのセキュリティの統合、フィードバックと測定によるセキュリティプロセスと手順の継続的な改善によって、DevSecOpsを開始することができます。