# 多層セキュリティ(MLS) ## 定義 多層セキュリティ(multilevel security, MLS)とは、情報を機密度のラベル(Unclassified/Confidential/Secret/Top Secretなど)に応じて区分し、クリアランスがラベル以上の主体だけがその情報を読めることを保証するセキュリティポリシーモデルである。情報フロー制御(information flow control, IFC)とも呼ばれる。MLSは1972年のAnderson reportが導入したreference monitor/TCB(信頼計算基盤)という実装戦略と、1973年のBell-LaPadulaモデル(BLP、simple security property=no read up、\*-property=no write down)という形式的なポリシー定式化によって具体化された。BLPを反転させて完全性(integrity)に適用したのが1975年のBibaモデルであり、機密性の「読む側の制約」と完全性の「書く側の制約」は双対の関係にある。これらの初期モデルを強制するアクセス制御は、利用者の裁量に依らないという意味で**強制アクセス制御(mandatory access control, MAC)**と呼ばれ、利用者が自らの権限でアクセスを決められる**裁量アクセス制御(discretionary access control, DAC)**と対比される。(Source: [[@2020__Wiley__Security Engineering 3e - Chapter 9 Multilevel Security]] ch.9 §9.1, §9.3.1, §9.3.2, §9.3.5) BLPは多くの批判と派生モデルを生んだ。System Zをめぐる論争(John McLean対Dave Bell)は平穏性(tranquility、ラベルが運用中にどう変化してよいかの規定)という性質の明示を促し、noninterference(Goguen & Meseguer, 1982)・nondeducibility(Sutherland, 1986)・Harrison-Ruzzo-Ullmanモデル・Compartmented Mode Workstation(CMW)ポリシーなど理論・実務双方の代替が提案された。中でも現代のシステムに最も影響を与えたのは、Earl BoebertとDick Kainによるtype enforcement(TE)モデルであり、SELinuxやDomain and Type Enforcement(DTE)に発展した。1992年にはDavid FerraioloとRichard Kuhnがrole-based access control(RBAC)を導入し、個々の利用者・機械ではなく役割に権限を紐づけることでポリシーの複雑さを管理しようとした。(Source: [[@2020__Wiley__Security Engineering 3e - Chapter 9 Multilevel Security]] ch.9 §9.3.3, §9.3.4) ## 歴史的展開と実装 MLSの実装史は、ADEPT-50(1967-68年、IBM S/360向け、プログラム単位の主体でTrojan Horseに脆弱)からMultics(BLPの土台となり、Paul KargerとRoger Schellの評価がコンパイラへのマルウェア混入という着想の初出になった)、そしてSCOMP(→ [[SCOMP]]。Multicsの派生で1983年発表、形式検証されたハードウェア・ソフトウェアを持ち、Orange Book(→ [[Orange Book (TCSEC)]])のA1評価を最初に得た)へと連なる。SCOMPは軍用メールガードやCommand and Control Guard(C2G)に使われ、Orange Book自体が英国・ドイツ・カナダなど同盟国の国家標準やCommon Criteriaの原型になった。実運用ではNRLのPumpのようなdata diode(一方向データ転送装置)を使い、複数レベルを1つのシステム内で処理しない"system high"構成でMLSを実現する道が主流になった。(Source: [[@2020__Wiley__Security Engineering 3e - Chapter 9 Multilevel Security]] ch.9 §9.3.4, §9.4.1, §9.4.2) ## MLSが実務として敗れた理由 多層セキュリティは1980年から2005年ごろまで米国防総省が数十億ドルを投じた研究計画だったが、本書は次の要因が積み重なった結果として、機密性目的のMLS研究が事実上縮小したと説明する。 - **composability(合成可能性)の欠如**: 個別に証明可能なほど安全なコンポーネントでも、フィードバックが存在すると合成した全体は安全でなくなる。単純な情報フロー・noninterference・nondeducibilityのいずれも合成しない。 - **cascade問題**: Orange Bookのspan-limit規則(1つのシステムが同時に扱えるレベル数の上限)を個別には満たすシステムどうしを接続すると、規則全体としては破られる。 - **covert channel(隠れチャネル)**: Lampson(1973)が指摘した、通信のために設計されていない仕組みを悪用した情報伝達経路。米国防総省の目標ですら帯域を1bps程度に抑えるにとどまり、根絶は不可能に近い。2018年以降のMeltdown・Spectre・Foreshadowはマイクロアーキテクチャを悪用した隠れチャネルで、MLSが前提としてきた分離の保証をハードウェアの層で揺るがしている。 - **マルウェアの脅威**: Fred Cohenが1983年にウイルスでMLSシステムを8時間で侵入させた実験は、当時Trojanしか想定していなかった防衛コミュニティに衝撃を与えた。TCBが健全でも、マルウェアはLowからHighへ自己複製し、隠れチャネルで情報を漏らせる。 - **polyinstantiation(多重実体化)**: High/Lowの利用者が同名のファイル・レコードを作ろうとしたときの情報漏洩と整合性のトレードオフ。米国方式(cover story併記)と英国方式(一律"classified")のいずれも根本解決にならない。 - **実務上のコスト**: 小ロット生産、独特な管理ツール、アプリケーションの書き換え要求、ラベルの自動昇格によるTCB肥大化("TCB bloat")、分類自体の複雑さ(非単調な分類、集約による機密度の上昇、ダウングレードの必要性)が積み重なった。 - **便益そのものへの疑問**: MLSは望ましくない情報漏洩だけでなく、望ましい情報共有(機関横断の検索など)も妨げる。9/11後には多くの規則が緩和されたが、その代償がSnowden開示だったと本書は指摘する。 これらの結果、本書執筆時点(2020年)ではMLS研究計画は事実上縮小し、実運用は単一分類レベルで動く"system high"と、ファイアウォールやdata diodeによるネットワークレベルの分離("MILS"、multiple independent levels of security)へ後退した。一方でMAC機構そのものは、機密性目的の軍事システムとしては下火になった一方、WindowsのBiba系完全性モデル・SELinux・Androidにおける完全性保護として生き残っている。(Source: [[@2020__Wiley__Security Engineering 3e - Chapter 9 Multilevel Security]] ch.9 §9.6, §9.7) ## 横断的知見 - **第6章はMAC/MLSの起源を「軍が1970年代に始めた計算機セキュリティ研究計画」として一行で要約し、詳細は「Part 2で語る魅力的な物語」として本章(第9章)へ明示的に先送りしている**: 第6章§6.2.5は、DAC(supervisorモードで管理者がすべてを制御する古いモデル)からMAC(遠隔の政府当局がセキュリティポリシーを定め、supervisor自身がその配下に置かれるモデル)への転換を、Top Secret文書がSecretクリアランスの利用者に渡らないことを保証するという1文で要約するにとどめ、"a fascinating story, which I tell in Part 2 of the book"と明記して本章へ委ねる。本章はこの委ねられた物語の中身——Anderson report・BLP・Biba・composability/cascade/covert channel/polyinstantiationという失敗の系譜——を実際に提供しており、両章を合わせて初めて「MACの起源」という一文の意味が具体的な歴史・数理モデル・失敗事例として肉付けされる。(Source: [[@2020__Wiley__Security Engineering 3e - Chapter 6 Access Control]] ch.6 §6.2.5, [[@2020__Wiley__Security Engineering 3e - Chapter 9 Multilevel Security]] ch.9 §9.3.1-§9.3.5, §9.6) - **第6章は「DRMも一種のMAC(強制アクセス制御)である」という類推を、サブスクリプション利用者が非利用者と楽曲を共有できないようにする仕組みと、Top Secret利用者がSecret利用者へ情報を渡せない仕組みの対比として提示するが、本章はDRMを扱わないため、この類推が本章のBLP/MACの形式的性質(no read up/no write down)とどこまで厳密に対応するのかは本章単独では検証できない**: 第6章§6.2.5はTPMとtrusted bootによるMACの商用転用(Windows Vista以降)を、DRM実現のための業界連合(Trusted Computing Group)の文脈で説明する。本章はBLP/Bibaという2つの形式モデルと、それらが軍事システムで実際にどう失敗したかを詳述するが、DRMへの応用(第24章で扱われる予定)には立ち入らない。両章を合わせると、「MACは機密性(BLP)・完全性(Biba)・DRMという3つの異なる目的に転用可能な同一の強制機構である」という広がりが見える一方、DRMへの転用がBLP/Bibaのどちらの性質(あるいは両方)を借用しているのかという問いは、両ソースの突き合わせだけでは解決しない。(Source: [[@2020__Wiley__Security Engineering 3e - Chapter 6 Access Control]] ch.6 §6.2.5, [[@2020__Wiley__Security Engineering 3e - Chapter 9 Multilevel Security]] ch.9 §9.3.2, §9.3.5) - **covert channel(隠れチャネル)の根絶不可能性という本章の主張(§9.6.3)と、Meltdown/Spectreとの関係は、第19章と突き合わせると「隠れチャネルより広い脅威が実在する」という、当初の想定より悲観的な形で確定する**: 本章はLampson(1973)の隠れチャネル——highプロセスがlowプロセスへ**意図的に**信号を送る経路——を、MLSの分離保証を脅かす脅威として扱い、Meltdown・Spectre・Foreshadowをその現代的な現れだと位置づけていた。しかし第19章が詳述するこれらの攻撃の実態は、被害者プロセスが協力する必要のない、投機的実行という通常の最適化の副作用を攻撃者が一方的に観測するというものであり、Lampsonが想定した「双方が信号をやり取りする」隠れチャネルの定義には本来当てはまらない、より受動的なサイドチャネルである。したがって、本章の「隠れチャネルの根絶は不可能に近い」という結論は、意図的な信号伝達に限定した場合よりもさらに悲観的な形で成り立つ——被害者の意図やプロセス間の協力が一切なくても、ハードウェアが共有されている限り分離は破られうる。(Source: [[@2020__Wiley__Security Engineering 3e - Chapter 9 Multilevel Security]] ch.9 §9.6.3, [[@2020__Wiley__Security Engineering 3e - Chapter 19 Side Channels]] ch.19 §19.4.5) ## 未解決の問い - 第6章はTPM/trusted bootによるMACの商用転用を「Windows Vista以降」の一事例として説明するが、本章はこれをBiba系の完全性モデルの生き残りとして位置づける(§9.5.1)。TPMのtrusted bootとBiba/high water mark原則が形式的にどう対応するのかは、両ソースを突き合わせただけでは厳密に確定できない。 - MLS研究計画の縮小(2005年ごろ)と、Common Criteria・Orange Bookという評価制度自体の存続は、本章単独では両立の理由が明示されない。評価制度がMLS特有の要求からどう分離して存続したのかは、第28章(Assurance and Sustainability)を読む必要がある。 - 第6章のDAC/MAC二分法と、[[認可モデル]] concept が扱う裁量アクセス制御/非裁量アクセス制御という*Principles of Computer System Design*由来の二分法は、同じ軸を異なる語彙で切り取ったものだと[[認可モデル]]ページで既に指摘されているが、本章のBLP/Bibaという具体的な形式モデルが、その二分法のどちら側の理論的な精緻化に当たるのかは、3つのソースを突き合わせないと確定できない。 ## 関連 - ソース: [[@2020__Wiley__Security Engineering 3e - Chapter 9 Multilevel Security]] / [[@2020__Wiley__Security Engineering 3e - Chapter 6 Access Control]](§6.2.5) / [[@2020__Wiley__Security Engineering 3e - Chapter 19 Side Channels]](§19.4.5) - 概念: [[認可モデル]](DAC/MAC・非裁量アクセス制御との対応) / [[セキュリティ設計原則]](機構の経済性・完全な仲介との関係) / [[信頼計算基盤(TCB)]](reference monitor/TCBの起源) / [[ポリシー]](セキュリティポリシーモデルという用語法) / [[サイドチャネル攻撃]](隠れチャネルより広い受動的漏洩の系譜) / [[投機的実行とマイクロアーキテクチャサイドチャネル(Meltdown・Spectre)]](Meltdown/Spectreの技術的詳細) - 実体: [[Multics]](BLPの土台) / [[SCOMP]](A1評価の最初の実装) / [[Orange Book (TCSEC)]](評価基準) ## 出典 - Ross Anderson, *Security Engineering: A Guide to Building Dependable Distributed Systems*, 3rd Edition, John Wiley & Sons, 2020, Chapter 9. - Ross Anderson, *Security Engineering: A Guide to Building Dependable Distributed Systems*, 3rd Edition, John Wiley & Sons, 2020, Chapter 6, §6.2.5. - Ross Anderson, *Security Engineering: A Guide to Building Dependable Distributed Systems*, 3rd Edition, John Wiley & Sons, 2020, Chapter 19, §19.4.5.