Linux × 機能安全 突破口はアーキテクチャ

Why functional safety starts with architecture, not auditing

Linux × 機能安全 突破口はアーキテクチャ

読了時間:8分

安全性が求められるシステムにLinuxを使用しようとするチームが、認証やチェックリストに頼ることがよくあります。「カーネルを監査できるか?」「静的解析を使えばどうか?」「コンサルタントにお墨付きをもらえないか?」特に機能安全が義務づけられている業界では、このような疑問が出るのは当然です。しかし、これらの問いは、根深い誤解を反映しているとも言えます。

機能安全は、あとから追加できるものではありません。綿密な文書記録や監査の完了によって得られるものでもありません。それは、最初のコードが書かれる前、アーキテクチャレベルでの意思決定の結果として得られるものなのです。本記事では、オープンソースソフトウェアで安全なシステムを構築するには、ドキュメントではなく分離・制御・設計から始める必要がある理由を解説します。

さらに、エレクトロビットのEB corbos Linux for Safety Applicationsが、こうした思想をどのように実践しているかもご紹介します。

 

後付けの「認証」という幻想

多くのチームは、努力すれば何でも認証できると信じて機能安全の議論に臨みます。そして多くの場合、まずは標準のLinuxから始めて、それを安全にしようという戦略をとります。チームは監査を導入し、形式手法を適用し、大量の成果物を作り出します。しかしその結果は、大量の書類が山積みになるだけで、進展はわずかです。

根本的な問題は、そもそもLinuxは、機能安全向けに設計されたものではないということです。Linuxは汎用コンピューティング向けに最適化された、大規模で協調的なコミュニティ主導のOSです。要件のトレーサビリティはなく、決定性を重視しておらず、明確なドキュメントや後方互換性がないまま、急速に変化します。
このようなシステムを後から安全認証しようとすると、多くの場合は行き詰ります。作業量は飛躍的に増加し、議論はますます難しくなり、時間とエンジニア工数は膨れ上がります。さらに深刻なのは、たとえ安全なシステムであっても、安全性を納得できる形で証明できないという理由で、認証が却下されてしまうことです。

機能安全とは、単なる挙動だけではありません。それは予測可能性、透明性、信頼性に関わるものなのです。こうした特性は監査から得られるものではなく、設計段階から意図的に組み込む必要があります。

LiSA and FuSA paperwork

 

ペーパーワークよりも隔離と監視が重要な理由

Linuxを安全用途で使いたい場合、正しい問いはどのようにLinuxを認証するか?ではありません。Linuxが安全に関わる処理に干渉しないようにするにはどうするか?です。

この視点の転換により、焦点は認証からアーキテクチャへと移ります。機能安全とは、安全の境界を定め、それをいかなる要因によっても破られないようにすること、特に、Linuxのような複雑なOSを保護することが重要になります。

そこで必要になるのが、隔離・監視・フェイルオーバーという考え方です。Linuxそのものを安全だと証明しようとするのではなく、Linuxが危害を加えられないようにする設計が必要です。たとえば次のような方法が挙げられます。

  • Linuxを安全機能とは厳密に分離された仮想パーティションで実行
  • Linuxドメインを監視し、異常時には復旧を行うウォッチドッグ監視機構の導入
  • 安全が要求されるI/Oを専用ハードウェアやマイコンにリダイレクト
  • Linuxと安全機能が共有するリソースを厳格に制御

こうした技術は新しいものではありませんが、多くの場合、監査主導のアプローチに気を取られて見落とされがちです。しかし、これは明らかに誤りです。隔離によって制御が可能になり、ウォッチドッグが保証します、これらを組み合わせることで、Linuxのような強力で柔軟なコンポーネントを使いつつ、安全目標も達成できるのです。

そしてこの設計では、もはやLinuxの全てのコードが安全であることを証明する必要はありません。Linuxが安全ドメインに影響を及ぼさないこと、そしてそれが設計によるものであることを示すことができるのです。

LiSA and FuSA flip the script

 

EB corbos Linuxが機能安全の常識を覆す方法

EB corbos Linux for Safety Applicationsは、当初からこうしたアーキテクチャ思想に基づいて設計されています。Linuxを安全にすることは目指していないのです。むしろ、設計段階からLinuxを安全システムで使えるようにすることを目的としています。

最大の特長は、アーキテクチャによる分離です。EB corbos Linuxは、安全認証済みコンポーネントと並列して仮想環境で動作します。その挙動は厳格に制限され、安全境界を侵すことはできません。この構成により、安全性に必要な分離性と予測可能性を両立しながら、豊富な最新のソフトウェアスタックの利用したシステムが実現します。

具体的には次のような構成です。

  • リアルタイムおよび組み込み向けに構成され、強化されたLinuxカーネル
  • Linuxの挙動を監視する追跡可能な最小限のセーフティスーパーバイザー
  • 明確に定義されたプロセス間通信メカニズムと制御されたインターフェース
  • ASIL分解をサポートし、安全機能と非安全機能が独立して動作可能

このモデルでは、Linux自体の認証は不要です。代わりに、Linuxを封じ込める仕組みと監視機構が安全性の根拠となります。これにより、システム全体の複雑性を抑えつつ、認証の説得力と信頼性が格段に向上します。

EB corbos Linuxの真価は、その結果として得られる自由度にあります。開発者は、最新なツールやミドルウェア、アプリケーションを活用しながら、安全性を損なうことなく開発を進められるのです。

LiSA High Level Architecture

 

安全プロジェクトでOSSを評価するチームへの教訓

組み込みシステムにおけるオープンソースソフトウェア(OSS)の普及は止まりません。開発者は使い慣れたツールを使いたいと思い、企業はベンダーロックインを避けたいと考えます。そして、Linuxの持つプラットフォームの機能は無視できないほど魅力的です。

しかし、安全性には規律が必要です。安全性が求められるアプリケーションへのOSS挿入を検討する際、次のようなポイントを意識しなければなりません。

  • アーキテクチャから始める:安全境界を定義し、封じ込め設計を行い、それに合ったコンポーネントを選択する。
  • 分離できるものだけを認証しようとしない:仮想化、プロセス分離、ウォッチドッグなどを活用し、信頼できないコードが安全に影響しないようにする。
  • 安全性に精通したパートナーを選ぶ:OSSは強力ですが、選定と運用にはガバナンスが必要。EB corbos Linuxのようなソリューションは、構造と信頼を提供。
  • 安全規格を正しく理解する:ISO 26262やIEC 61508は、すべての要素の認証を求めているわけではなく、設計によってリスクが軽減されているという説得力のある論拠が必要。
  • 正しいツールとプロセスに投資する:形式手法、トレーサビリティ、テストは依然として重要。ただし、それらは安全性を前提としたアーキテクチャでこそ真価を発揮する。

安全とオープンソースは両立します。ただし、その鍵はアーキテクチャにあります。それは、境界を定めて分離を徹底し、リスクを生まない範囲でOSSを使用することです。

チェックリストに従った安全アプローチは一見シンプルで安心感があります。認証までの道筋が明確に見えるからです。しかし、Linuxのように複雑で変化の早いソフトウェアの場合、そのアプローチは誤解を招くことがあります。

安全とは、書類ではありません。アーキテクチャの問題です。それは、システムが想定外の状況でも期待通りに動くように設計することです。つまり、失敗を前提に設計するということでもあります。

EB corbos Linux for Safety Applicationsは、まさにその考え方を体現しています。Linuxと戦うのではなく、封じ込め、制御し、安全に共存させる。そしてそれが、オープンイノベーションと機能安全の両立を実現しています。

安全性が求められるシステムへのLinuxの導入を考えているなら、最初にすべきは監査ではなく、アーキテクチャの設計です。安全はそこから始まります。

EB corbos Linux for Safety Applicationsを無料でお試しいただけます。ダウンロードはこちらこちら

著者

Isaac Trefz
シニアプロダクトマネージャー HPC OS