The MILS Architecture for High-Assurance Embedded Systems

背景

問題意識

  • 高信頼システムの構築には,かなり厳密な設計・検証が必要だが毎度一からやるのは面倒
  • MILSを高信頼組み込みシステムの設計につかうとどうなるか

問題への貢献

  • MILSは,高信頼組み込みシステムの構築と相性が良さそうという考察

具体的な手法など

  • MLSというのが前身にあって,複数のセキュリティレベルを持つ部品が相互作用するようなシステムの検証が考えられていたが(e.g. bell-lapadula),検証(certification)の前にセキュリティ特性の解析を要求されるので複雑でMILSで整理された

  • MILS(multiple independent levels of security): データをどのように扱うかによって部品を分類し,セキュリティ機構と関心を分離した

    • SLS: 単一のセキュリティレベル.データも単一のセキュリティレベル内で扱われる
    • MSLS: 複数のSLSが集まったシステム.異なるセキュリティレベル間の通信などはない
    • MLS: 複数の異なるセキュリティレベルの部品が相互作用する
      • 高位のセキュリティレベルを持つ部品から低位のものへ(あるいは逆の流れで)情報が伝達できる
  • こうしたMILSシステムは例えば共有のチャネルを通じて各MILSコンポーネントがメッセージパッシングするようなシステムで実装できる

    • ただし,セキュリティポリシーを強制するような機構が必要になる
  • 上記のセキュリティポリシーを強制する機構として以下のような階層化を考える

    • Partitioner Layer(Separation Kernel)
    • Middleware Layer
    • Application Layer
  • SK Layer

    • 単一のプロセッサ内で以下の責務
      • data separation
      • information flow control
    • Data Separation: メモリ空間,カーネルオブジェクトなど
    • Information Flow: inter-partitionな通信を適切に行うための機構.badgeとか
    • Sanitization: 共有リソースの掃除(Context Switchとか)
    • Damage Limitation: preemptionとかで暴れプロセスを殺すなど.リソースの制限機構
  • SKの実装に必要なハードウェアの要件

    • WCETの実現に必要なだけのCPU
    • atomicity
    • privileged mode
    • MMU
    • instruction trap
    • timer
    • I/O Access limitation: MMIOならMMUあればおkみたいな
  • Middleware Services Layer

    • SKのポリシーを前提として拡張
    • 単一プロセッサ内だけではなく,e2eな通信について責任がある
    • Labelling: partition間の通信において,メッセージが当該partitionのセキュリティレベル・アイデンティティについて適切にラベル付されているか
    • Filtering: 全てのメッセージが適切な相手に届き,不適切な相手に届かないことを保証
    • Maintaining Information Flow: システムの設計者が指定した情報伝達に関するポリシーを強制
      • authorized information flow: 設計者は各コンポーネント間がどのように通信できるか・出来ないかを指定できる
  • Application Layer

    • application specificなsoftware-firewall的なのが定義できる
    • 部品の例
      • Collapter: 下位のセキュリティレベルをもつ部品から上位に情報を伝達する.データのセキュリティレベルを変更するのでMLS component
      • Downgrader: 上位のセキュリティレベルを持つ部品から下位のものに情報を伝達する
      • Encrypter: 暗号化して伝達. 異なるセキュリティレベル間でも伝達するのでMLS
      • MMR: 複数の異なるセキュリティレベルの部品からメッセージを受け取って宛先などがポリシーと整合するかを確かめ,特定の宛先(メッセージ内のもととは限らない)に伝達する.この宛先はアプリケーションレベルのポリシーを強制するための部品かもしれない.メッセージのセキュリティレベルを変更しないのでMSLS(静的な変更に限ればMSLSなのか?).