セキュリティ設計の敗北史|PSOS・Multics・Unixが証明した「修正可能性」の正義

セキュリティ

1970年代、OS設計は一つの根本的な問いに直面していた。

「安全性をどこまで構造に埋め込むべきか?」

理想を極限まで追うのか、現実に合わせて妥協するのか。この分岐がその後50年の計算機基盤を決定づけた。そして勝者は、最も安全な設計ではなかった。「最も修正しやすい設計」だったのだ。

情シス部門でインフラ設計を担当してきた立場から言うと、この歴史の教訓は今のゼロトラスト設計にも、IaCにも、CI/CDにも直接つながっている。古い話ではなく、現代の設計判断の根拠になる話だ。


この記事でわかること

  • PSOSが「数学的に完璧」でも失敗した理由
  • Multicsが安全性に優れながらも覇権を逃した構造的な弱点
  • UnixがPSOSより「弱い」のに世界を制した逆説
  • PSOS→Multics→Unixの教訓が現代のIaC・サービスメッシュに直結する理由

1. PSOS|形式検証という理想の重さ

📌 要点:PSOSは数学的な証明でバグの侵入を原理的にゼロにしようとした完璧主義の設計だったが、「変更コスト」の爆発によって実用に耐えられなかった。

PSOS(Provably Secure Operating System)はOSを数学的な「正しさ」から構築しようとした。

  • 数理論理での記述:仕様を数式で定義する
  • 実装の証明:実装が仕様を満たすことを論理的に証明する
  • 原理的排除:バグが入り込む余地を理論上ゼロにする

比喩で理解するなら:
PSOSは「一分の狂いもない精密な設計図で建てられた金庫室」だ。一度建てたら、鍵穴一つ変えるのにも設計図全体の再証明が必要になる。

この完璧さが致命傷になった。コードを1行修正するたびに膨大な数式の再計算が必要になる。モジュール間の依存関係が増えるほど、証明の手間が指数関数的に増大する「証明爆発」が起きた。

市場は、動かない(進化できない)「正しさ」よりも、不完全でも「動くこと」を選んだのだ。


2. Multics|リング保護という構造的防御

📌 要点:Multicsはハードウェアの「リング保護モデル」で安全性を構造化したが、専用大型機を前提とした経済性と拡張性の限界に直面した。

Multicsはハードウェアの力を借りて「構造」の中に防御を組み込もうとした。

内側ほど高い権限を持つ階層構造(Ring 0〜7)を採用し、権限のないアクセスを物理的に遮断する「リング保護モデル」だ。

リング役割
Ring 0(最内部)カーネル(最高権限)
Ring 1〜2OSサービス・デバイスドライバ
Ring 3〜7(外側)ユーザーアプリケーション

このモデルは後のx86アーキテクチャ(CPU設計)に多大な影響を与えた。しかし専用の大型機を前提としたため、経済性と拡張性の壁にぶつかり、汎用OSとしての覇権を逃した。


3. Unix|「書き直せる」という最強の武器

📌 要点:Unixはセキュリティの完璧さより「軽さ・移植性・変更しやすさ」に全振りした。「パッチが出せる」という柔軟性が、結果として最強の防御になった。

Unixは方向を180度反転させ、理想よりも「軽さ」と「移植性」に全振りした。

  • C言語での記述:どんなハードウェアにも移植可能
  • 統一抽象:「Everything is a file(すべてはファイルである)」
  • シンプルな権限:ユーザー/グループ/その他の3段階パーミッション

セキュリティは完璧ではなかった。しかし「パッチが出せる(直せる)」という柔軟性と、ハードウェアを選ばない移植性が爆発的な普及を招いた。安全性より「変更可能性」を優先したことが、結果として最強の武器となったのだ。


4. 三者比較|勝敗を決めた「修正容易性」

📌 要点:勝者は最も安全な設計ではなく、最も修正しやすい設計だった。安全性と変更コストはトレードオフであり、市場は常に「直せる」ものを選ぶ。

評価軸PSOS(理想主義)Multics(官僚主義)Unix(現実主義)
安全性極大
変更コスト極大
移植性
普及度失敗限定的覇権

情シス部門として20年以上インフラ設計に関わってきて確信していることがある。「完璧なセキュリティ設計」を追求して変更不能なシステムを作ると、脅威が変化したときに対応できなくなる。「直しやすいシステム」の方が長期的には安全だ。PSOSとUnixの対比は、この現場の実感を歴史的に証明してくれている。


5. 現代への接続|Unix思想の正統な進化系

📌 要点:現代のクラウド設計(マイクロサービス・CI/CD・IaC)はUnix思想の進化系だ。「急所だけに形式検証を絞る」という現実解が完成している。

現在のクラウド設計は、Unix思想の正統な進化系だ。

  • マイクロサービス:被害を一部に閉じ込める(局所化)→ MulticsのRingを動的に実現
  • CI/CD:「安全に壊し、爆速で直す」サイクルの最大化→ Unix的な変更容易性
  • 自動テスト:数学的な証明の代わりに膨大なテストコードで安全を補完→ PSOSへの現実的な回答

かつての形式検証(PSOS的な思想)は消えていない。今は「認証基盤」や「暗号アルゴリズム」など、絶対に外せない急所にのみ限定して適用される「現実解」に落ち着いている。


6. 実務への落とし込み|現代版「変更可能性」の実装

📌 要点:PSOSのようなガチガチの固定を避け、Unix的な柔軟な防御を現代環境で実現するための3つのプラクティスがある。

① インフラのコード化(IaC)
セキュリティ設定をTerraformなどのコードで管理する。設定ミスが起きても1世代前のコードにロールバックするだけで数秒で復旧できる。「何度でも同じ形に作り直せる」状態を維持することが肝心だ。

② サービスメッシュによる「爆破区画」の構築
システムをマイクロサービス化し、その通信をIstio等で制御する。1つのサービスが突破されても、隣への通信を瞬時に遮断できる。ソフトウェアレイヤーで動的に「保護リング」を形成する発想だ。

③ 「自動バリデーション」による局所的な形式検証
PSOSが目指した数学的証明をCI/CDの中で自動実行する。AWSの「Zelkova」はS3のポリシーが意図せず公開されていないかを数理的に自動検証する。全部を証明するのではなく、「急所」だけに検証を絞る。


よくある質問(FAQ)

Q
PSOSは今も存在しますか?
A

汎用OSとしてのPSOSは失敗しましたが、形式手法(Formal Methods)という概念は生き続けています。
航空制御・原子力・医療機器など、一瞬のミスが物理的破壊に直結する領域では今も使われています。

Q
UnixはLinuxと同じものですか?
A

UnixはLinuxと異なります。
Linuxは1991年にリーナス・トーバルズがUnixと互換性を持つように設計したOSカーネルです。Unix思想を継承しながら、独立して開発されました。今日のサーバー・スマートフォン(Android)・Mac(macOSはBSD Unixベース)に広く使われています。

Q
「ゼロトラスト」はどのOS設計思想に近いですか?
A

ゼロトラストはUnixとMulticsの融合に近いです。
「信頼しない」という基本姿勢(PSOS的)を持ちながら、動的に権限を付与・剥奪する柔軟性(Unix的)を組み合わせた考え方です。

Q
現代のWindowsはどのOS設計思想に近いですか?
A

現代のWindowsはMulticsのリング保護モデルを強く継承しています。
Ring 0(カーネルモード)とRing 3(ユーザーモード)の区別が基本構造です。同時にCI/CDやIaCを取り込んでいる点でUnix的な進化もしています。

Q
中小企業の情シス担当者がこの歴史から学べる実践的な教訓は?
A

「変更できないシステムは時代遅れになる」という一点です。
高価なアプライアンス製品を導入してバージョンアップできない状況を作るのと、IaCで管理して即座にアップデートできる状況を作るのでは、長期的なセキュリティ水準に決定的な差が出ます。


まとめ

  • PSOSは数学的に完璧だったが「変更コストの爆発」で市場から消えた
  • Multicsは安全性に優れたが専用ハードウェア依存で拡張性の限界に直面した
  • Unixは安全性より「変更可能性」を優先したことで爆発的に普及し、50年後の現代にまで続く覇権を確立した
  • 現代のクラウド設計(IaC・マイクロサービス・CI/CD)はUnix思想の正統な進化系だ
  • セキュリティ設計の本質は「どれだけ守れるか」ではなく「どれだけ速く正確に直せるか」にある

歴史を味方につけ、あえて「壊れることを前提に、爆速で直す」構造を設計してほしい。それこそが、UNIXが50年かけて証明した唯一の正解だ。


🔗 関連記事:

タイトルとURLをコピーしました