エンジニアリング哲学:ヨアンナ・ルトコウスカ

要点
- 彼女は「侵害されること」を前提にデスクトップ向けオペレーティングシステムを設計しました。 ヨアンナ・ルトコウスカはポーランドのセキュリティ研究者で、区画化によるセキュリティ(security by compartmentalization)という原則を軸に、Qubes OS――「ほどよく安全なオペレーティングシステム」――を生み出した人物です。システムからバグをなくそうとするのではなく、Qubes はデジタル生活を「qube」と呼ばれる隔離された仮想マシン(仕事用、個人用、銀行用、信頼できないもの用)に分割します。こうすれば、ひとつが破られても被害はそこに封じ込められ、ほかには届きません。12
- 攻撃側としての評価が先にありました――彼女はシステムを壊すことで、どう隔離すべきかを学ぶのです。 Black Hat 2006 で彼女が発表したのが Blue Pill です。これは AMD のハードウェア仮想化を使い、稼働中の OS の真下に薄い悪意あるハイパーバイザーを滑り込ませ、OS 自身には見えない仮想マシンの中に閉じ込めてしまう概念実証ルートキットでした。プラットフォームの最も深い層を攻撃する経験こそが、どの層を決して信用してはならないかを彼女に教えたのです。3
- 彼女は「インフラを信用するな」をアーキテクチャに変えました。 「Security Through Distrusting(不信によるセキュリティ)」と題した基調講演で、ルトコウスカは、構成要素を「信頼できる(trusted)」ものにしようとする業界の習慣は素朴であり、規模に耐えないと論じました。むしろ、どの単一の要素も侵害されうるものとして扱い、そのほぼすべてを疑い、単一障害点を持たないほうがよい、というのです。5 Qubes は、その主張を実際に動くデスクトップへとコンパイルしたものです。2
- 彼女は、誰もが無批判に信用していたプラットフォームの各層を突きました。 Blue Pill にとどまらず、システム管理モード(System Management Mode)や Intel Trusted Execution Technology への攻撃で先駆的な仕事をし、2009 年には 「Evil Maid(邪悪なメイド)」攻撃 という言葉を生み出しました。これは短時間の物理アクセスによって、TrueCrypt のようなフルディスク暗号化を打ち破るものです。これらの攻撃はそれぞれ、嘘であることが判明した信頼の境界線を一本ずつ描き出していきました。14
原則
「ソフトウェアにはすべてバグがある……起こりうるあらゆる悪用を防ごうとするのではなく、Qubes は悪用が起こることを前提とし、被害の封じ込めに専念する。」――Qubes OS の序文より、その設立理念を言い換えたもの2
ほとんどのセキュリティエンジニアリングは、達成不可能な的を追いかけています。コードを監査し、穴を塞ぎ、設定を堅牢にして、「十分に注意すればこのシステムは安全だ」と自分に言い聞かせる。ルトコウスカのキャリアは、その的が蜃気楼にすぎないことを、長く、辛抱強く示し続けてきました。現代のデスクトップは数千万行ものコード――カーネル、ドライバ、ブラウザ、PDF リーダー、ファームウェア――の上で動いており、その一行一行がバグの潜みうる場所です。すべてを見つけ出すことはできず、敵はたったひとつ見つければ足ります。だから誠実な問いは「どうすればバグをなくせるか」ではなく、「何かが侵入したとき――『もし』ではなく『いつ』――それはどこまで届きうるのか」 なのです。2
ルトコウスカが築いた答えが、隔離によるセキュリティ(security by isolation)です。侵害を防げないのなら、それがどこまで広がるかをあらかじめ決めておくことはできます。Qubes はマシンを複数の仮想マシンに分割します――仕事用にひとつ、銀行用にひとつ、個人的なブラウジング用にひとつ、怪しい添付ファイルを開く用にひとつ――そのそれぞれが Xen ハイパーバイザーの上で、独自の境界を持って動きます。信頼できない qube で悪意あるリンクを開いても、マルウェアは密閉された部屋の中に落ちるだけです。それは銀行用の qube と信頼の境界を共有していないので、認証情報には届きません。汚染された qube は、ただ捨ててしまえばよいのです。12 物理世界はすでにこのように動いています――投票も、睡眠も、現金の保管も、仕切りのないひとつの部屋でまとめてやったりはしません。Qubes は、ではなぜコンピュータはそうなっているのか、と問いかけます。2
この原則にはもう半分があり、そちらのほうが難しいものです。インフラを信用せず、信用せざるをえないものを縮小せよ。 「Security Through Distrusting」の基調講演で、ルトコウスカは、ある構成要素を「信頼できる」と呼ぶのは褒め言葉ではなく、それが壊れたときに「私のセキュリティの整合性全体を破壊しうる」という自白にすぎない、と論じました。5 つまり、規律とは、ほぼすべての構成要素を潜在的に侵害されているものとして扱い、単一障害点を取り除き、信頼できるコンピューティング基盤(trusted computing base)――その正しさにほかのすべてが依存しているコード――を可能なかぎり小さく保つことです。52 最後には何かを信用することになります。技は、その「何か」を、ごく小さく、検査可能で、数少ないものにすることにあるのです。
背景
ヨアンナ・ルトコウスカは 1981 年、ポーランドのワルシャワに生まれ、ワルシャワ工科大学でコンピュータサイエンスの修士号を取得しました。1 彼女が頭角を現したのは防御側としてではなく、攻撃側の研究者として――しかも極めて優れた研究者としてでした。2000 年代半ば、彼女は x86 プラットフォームの最も低く、最も信頼された層、つまり防御側のセキュリティが通常は揺るぎない地盤として扱う層を突いていました。
彼女の出世作が Blue Pill で、2006 年 8 月 3 日の Black Hat Briefings で実演されました。同時に、Windows Vista のカーネル保護機構を打ち破る手法も示しました。eWeek は彼女を「2006 年に足跡を残した 5 人のハッカー」のひとりに挙げています。13 2007 年 4 月には、ワルシャワで Invisible Things Lab を設立しました。彼女のプラットフォームセキュリティ研究の拠点となったコンサルティング兼研究組織です。1 その後の数年間、彼女と協力者たち――アレクサンダー・テレシキンやラファウ・ヴォイトチュクら――は、Xen ハイパーバイザー、Intel Trusted Execution Technology、そしてオペレーティングシステムのカーネルよりもさらに下に位置する深い特権実行モード「リング -2」こと システム管理モード への攻撃を次々と発表しました。1 2009 年には Evil Maid 攻撃 という言葉を生み出しました。これは物理アクセスを利用した手法で、ノートパソコンのブートプロセスを侵害し、TrueCrypt のようなフルディスク暗号化のパスフレーズを盗み出すものです。4
そして彼女は、攻撃側の研究者がめったにやらないことをやってのけました――防御を築いたのです。Qubes OS の開発はヴォイトチュクとともに 2010 年頃に始まり、区画化によるセキュリティの原則に基づいて、Qubes 1.0 が 2012 年 9 月 3 日にリリースされました。1 彼女は何年もこのプロジェクトを率い、このアプローチはエドワード・スノーデンや暗号学者ダニエル・J・バーンスタインといった多彩な人物から公に支持を得ました。2 後年、彼女はプライバシーと分散化に関する仕事へと軸足を移していきます。直近のプロジェクトの詳細は、又聞きでまとめるよりも、彼女自身の現在のチャンネルから読むのがいちばんよいでしょう。この記事は、確かに記録に残っていることだけにとどめます。1
仕事
Qubes OS:区画化によるセキュリティ
ここから始めましょう。Qubes こそ、原則を実際に動かせる形にしたものだからです。この設計は、ほとんどのセキュリティツールが勝っているふりをしている戦争に降参するところから始まります――ソフトウェアにはすべてバグがあり、その一部は悪用可能である、と。2 Qubes は破られないシステムであろうとはしません。破られても大して問題にならないシステムであろうとするのです。
その仕組みが Xen ハイパーバイザーです。すべての基盤には薄いハイパーバイザーと、dom0 と呼ばれる特別な管理ドメインがあります。dom0 はディスプレイとハードウェアを制御しますが、意図的にネットワークから切り離されています。その上で動くのが qube です――それぞれが目的と信頼レベルに合わせて区切られた、軽量の仮想マシンです。12 「仕事」用の qube、「銀行」用の qube、「個人」用の qube、そして見知らぬ相手から届いたものを開くための「信頼できない」qube を用意する、といった具合です。各 qube のウィンドウには偽造できない色付きの枠が付くので、あるウィンドウがどのセキュリティドメインに属するかをひと目で見分けられます。2 重要なのは、qube が テンプレート システムを通じてルートファイルシステムを共有することです。これにより各 qube は軽量に保たれ、まとめてパッチを当てられる一方、各自のプライベートなデータは隔離されたままになります。2 そして最もリスクの高い作業のために、使い捨ての qube があります――PDF ひとつ、リンクひとつを開くために立ち上がり、その後は自己破壊して、感染ごと道連れにしてくれる仮想マシンです。2
エンジニアリングとしてなぜ重要なのか。Qubes はセキュリティの単位を「マシン」から「ドメイン」へと組み替えます。通常のデスクトップでは、起動するあらゆるアプリケーションがひとつの信頼のアドレス空間を共有します――ブラウザも、税務ソフトも、開くべきでなかった添付ファイルも、悪いバグひとつで互いに地続きなのです。Qubes は、ドメイン間の境界を、希望的な取り決めではなく、ハードウェアによって強制される壁にします。代償は現実にあります――より多くの RAM、より多くの手間、どの qube にどの作業が属するかを決める規律です。そしてルトコウスカは、不信によるセキュリティが「万能薬ではない」ことを率直に認めています。使いやすさとのトレードオフだからです。5 しかしその見返りとして、最悪のケースが破滅的でなくなります。侵害はもはや「コンピュータを乗っ取られた」ではありません。「使い捨ての部屋ひとつを乗っ取られた――そしてその部屋は、私がこれから削除するところだ」になるのです。
プラットフォームを壊す:Blue Pill、SMM、そして Evil Maid
どの境界が偽物なのかを正確に知らなければ、優れた隔離の境界を設計することはできません。ルトコウスカはそれを、境界を攻撃することで学びました。彼女の 2006 年の Black Hat 実演 Blue Pill は、その最も明快な例です。これは AMD のハードウェア仮想化(AMD-V)を悪用した概念実証ルートキットで、大胆なことをやってのけました――稼働中のマシン上で薄いハイパーバイザーを起動し、動いているオペレーティングシステムをその下の仮想マシンへと、その場で移し替えてしまうのです。3 その仮想マシンの中から見れば、OS には普通の世界が映ります――しかし下にいるハイパーバイザーは「ハードウェア割り込み、データ要求、さらにはシステム時刻まで」傍受し、閉じ込められた OS に好きな答えを返すことができました。3
Blue Pill が何であって何でなかったかは、正確に述べておく価値があります。それは野に放たれたマルウェアではなく 概念実証 でした。そして最も大胆な主張――そのようなハイパーバイザールートキットは「100% 検出不可能」にできる――は異論を呼び、他の研究者がタイミングに基づく検出手法を提案しました。3 しかし、論争を呼んだ見出しが教訓なのではありません。教訓は、それが露わにした攻撃面です。すなわち、どのオペレーティングシステムにも組み込まれている「自分が動いている層は無害だ」という仮定です。Blue Pill は、仮想化によって最も特権の高い層を攻撃者のホームグラウンドに変えうることを示しました――そして、自分より「下」にあると信じているものこそ、「上」からは検証できないものなのです。
同じ本能が彼女の残りの攻撃研究を駆り立てました。協力者たちとともに、彼女はカーネルの下で動く無名の超特権ファームウェアモード システム管理モード を攻撃し、そして信頼を打ち立てることそのものを目的とした機能である Intel Trusted Execution Technology を攻撃しました。1 さらに 2009 年には Evil Maid 攻撃 という言葉を生み出しました――暗号化されたノートパソコンをホテルの部屋に置いたまま離れると、短時間の物理アクセスを得た「メイド」が暗号化されていないブートローダーに細工をし、次にパスフレーズを入力したときにそれを記録できる、というものです。4 TrueCrypt のようなフルディスク暗号化が脆弱だったのは、ブートコードがユーザーに対して自分自身を証明できなかったからです――パスフレーズを尋ねてくるそのローダーが、いまだに自分のものかどうかを知る術がなかったのです。4 これらの攻撃はどれも、持ちこたえなかった信頼の境界の地図です。後に Qubes を築いた防御アーキテクトは、どの壁が荷重を支え、どの壁が描かれただけのものかを、内側からすでに知っていたのです。

インフラを信用しない:信頼できるコンピューティング基盤を縮小する
Qubes は単に「すべてを仮想マシンで動かす」ことではありません。より深い設計原則は、信頼できるコンピューティング基盤を最小化し、なおかつ疑うこと――システム全体のセキュリティがその正しさに依存している構成要素の集合を、です。ルトコウスカの基調講演「Security Through Distrusting」は、その哲学を率直に述べています。構成要素を「信頼できる」ものにしようとする従来の衝動は「過度に素朴で、スケールしない」。なぜならセキュリティにおいて「信頼できる」とは、その要素がうまくいかなかったときに「私のセキュリティの整合性全体を破壊しうる」という意味だからです。5 正しい対応は、どの単一の構成要素も侵害されうると仮定し、そのほぼすべてを疑い、単一障害点が存在しないように設計することです。5
この原則は、Qubes の具体的な選択に見て取れます。管理ドメイン dom0 は意図的にネットワークアクセスを拒否されています。ネットワーク越しに到達できる dom0 があれば、そこが侵害されればマシンを乗っ取られる単一の点になってしまうからです。2 ネットワークと USB そのものも、それぞれ独立した qube に押し出されています。これにより、ネットワークカードのドライバのバグや悪意ある USB デバイスは、すべてが信頼するカーネルではなく、サンドボックスの中に落ちます。2 ドメイン間をまたぐファイルは防御的に扱われます――ルトコウスカが Qubes の画像や PDF の処理に適用したのと同じ「侵害されているものとして扱う」という論理です。5 そして使い捨ての qube は、その不信を最も直接的に体現しています――PDF リーダーが悪用されないことを信用するのではなく、悪用されるものと仮定し、これから破壊するつもりの仮想マシンの中でそれを動かし、何もない部屋の中で爆発させるのです。2
その一貫した筋は、自分自身のコードに対する謙虚さです。大きく複雑な構成要素を信用するシステムは、大きく複雑な賭けをしています。ルトコウスカのアーキテクチャは、その賭けを小さくしようと働きます――信頼できるコンピューティング基盤を、薄いハイパーバイザーとネットワークから隔離された dom0 にまで縮め、その上にあるほぼすべてを、使い捨て可能で、交換可能で、敵対的とみなすのです。25

デスクトップから分散化へ
ルトコウスカは何年も Qubes を率いたあと、オペレーティングシステムでは部分的にしか解決できないより大きな問題へと向き直りました。完璧に区画化されたデスクトップでさえ、その周りのインフラ――クラウドストレージ、ネットワーク、データを預かるサービス――を依然として信用しているのです。15 後年の彼女の仕事はプライバシーと分散化へと移り、同じ不信を、単一のマシンから、それが対話するシステムへと外へ広げていきました。それらのプロジェクトの正確な形や現状は、ここで言い換えるよりも、彼女自身の現在の文章から受け取るのがいちばんです。きれいに通底するのは製品ではなく原則です。本能は変わりません――インフラは侵害されていると仮定し、その仮定の代償が可能なかぎり小さくなるように設計する、ということです。5
方法
Qubes、Blue Pill、SMM と TXT への攻撃、そして「Security Through Distrusting」を横断して読むと、同じ信条が繰り返し現れます。ルトコウスカの方法はスローガンというより、一連の確固たる習慣です。
侵害を前提とし、被害範囲を見越して設計する。 その出発点は、予防は失敗すると認め、侵害がどこまで広がるかを問うことです。2 規模の観点では、これは信頼性のために ヴェルナー・フォーゲルス がやっていることのセキュリティ版です――あらゆるものは常に壊れる、だから失敗を避けられるふりをするのではなく、被害範囲を封じ込めよ、というわけです。この教訓は Qubes をはるかに超えて通用します。何も侵入しないケースに合わせて設計するのではなく、何かが侵入したとき、それが小さな使い捨ての独房に閉じ込められるように設計するのです。これはセキュリティに適用された 証拠の関門 です――「まだ誰も侵入していない」は証拠ではなく、「ここの侵害があそこには届かない」が証拠なのです。
インフラを信用せず、境界を証明する。 あらゆる構成要素を侵害されうるものとして扱い、初期状態では信頼を与えることを拒む。5 これは トンプソンの「信頼を信頼することについての考察」 をデスクトップアーキテクチャに変えたものです――検査していないものは信用できない、だから見えない層を信用するのをやめ、代わりに壁で囲ってしまうのです。規律とは、あらゆる構成要素に対して「これが侵害されたら、何を支配されるのか」と問い、その答えが「ほとんど何も」になるまで境界を引き直すことです。
他人より先に、自分で壊す。 ルトコウスカの防御は 10 年にわたる攻撃――Blue Pill、SMM、Evil Maid――の上に築かれています。偽物だとまず証明していない境界を、隔離することはできないからです。34 これはまさに アディ・シャミア が暗号学に持ち込んだ本能です――守るために攻撃せよ、そして本気で壊そうとする試みを生き延びたものだけを信用せよ。確固たる習慣とは、まず攻撃者の帽子をかぶり、自分の信頼の前提のどれが嘘かを地図に描き、嘘があった場所に壁を設計することです。
信頼できるコンピューティング基盤を縮小する。 セキュリティが依存するコードの行数が少ないほど、賭けは小さくなります。25 薄いハイパーバイザーとネットワークから隔離された dom0 は検査可能な賭けですが、あらゆるドライバとサービスを信頼の境界の内側に抱えたモノリシックなカーネルは、目隠しの賭けです。これは信頼に適用された 最小限の価値ある製品 です――最もクリーンな信頼基盤とは、唯一の仕事をなお果たせる、最も小さなものなのです。信頼を、信頼せざるをえないものにまで削ぎ落とし、残りは敵対的だと見なしましょう。
トレードオフについて正直であれ。 ルトコウスカは誇張しません――不信によるセキュリティは「万能薬ではなく」、使いやすさと利便性を犠牲にする、と率直に述べています。5 習慣とは、買おうとしているセキュリティの代償を隠さずに名指しすることです。そうすれば次のエンジニアがそれを天秤にかけられます。その率直さは、セキュリティに適用された 品質こそが唯一の変数 です――代償とともに述べられた本物の保証は、ひそかに成り立たない心地よい約束よりも価値があります。理解して選んだ境界は、仮定して受け継いだ境界に勝るのです。
影響の連なり
彼女を形づくった人々
2000 年代半ばの攻撃的研究コミュニティ。 ルトコウスカは Black Hat と低レベルシステムハッキングのプラットフォーム攻撃文化の中で頭角を現しました。そこでの仕事は、誰も疑わない前提を見つけ出して壊すことでした。3 その文化の中心的な反射神経――誰もが信用する層を疑え――が、彼女の防御の仕事の背骨になりました。(形成的な影響)
ハードウェア仮想化の波。 Blue Pill が可能だったのは、AMD-V と Intel VT-x がちょうどハードウェア仮想化を主流にしたばかりだったからです。3 2006 年に彼女が武器として使った同じ技術が、Qubes では隔離を築く土台になりました。そこでは Xen がハイパーバイザーを攻撃者の道具から防御者の壁へと変えるのです。12(直接的な影響)
Xen とハイパーバイザーセキュリティの系譜。 Xen を分析し攻撃した歳月が、ハイパーバイザーの隔離がどれほど強く――そしてどれほど脆いか――を彼女に正確に教えました。その知見が、dom0 をネットワークから切り離し、ドライバを隔離されたドメインへ押し出すという Qubes の決断を形づくりました。12(形成的な影響)
彼女が形づくった人々
プライバシーを意識したコンピューティング。 Qubes は、標的型の侵害を前提とせざるをえないジャーナリスト、活動家、セキュリティ研究者にとって推奨されるデスクトップになりました――脅威モデルがスローガンではなく国家であるような人々のための、本物の道具です。2
区画化の発想。 「隔離によるセキュリティ」と「信頼できるコンピューティング基盤を削減する」という考え方は、Qubes をはるかに超えて、サンドボックス化、コンテナの隔離、アプリ単位の仮想化が業界全体でどう論じられるかにまで広がりました。25
まず壊す防御者たち。 ルトコウスカは、最も強い防御アーキテクトがしばしば元攻撃者であること――境界を壊すことで本物の信頼の境界を地図に描くことが、それを正しく引くための前提条件であること――を示す確固たる実例です。34
通底するもの
ルトコウスカは、このシリーズにおける隔離の要石です――「システムは破られる」という事実に、絶望ではなくアーキテクチャで答えた人物です。アディ・シャミア は暗号学において守るために攻撃し、本気で壊そうとする試みを生き延びたものだけを信用しました。ルトコウスカはその同じループを一層下で回し、ハイパーバイザーとブートチェーンを壊すことで、それらが侵害されても生き延びるデスクトップを築いたのです。34 トンプソンとリッチー は、自分で作り検査していないものは信用できないという警告を私たちに与えました。ルトコウスカの「インフラを信用するな」は、その警告を実際に動くオペレーティングシステムに変えたものです。そこでは信用できない層は、希望的観測の対象ではなく、壁で囲われています。5 そして ヴェルナー・フォーゲルス が信頼性のためにあらゆるものは常に壊れる、だから被害範囲を封じ込めよと言うところで、ルトコウスカはセキュリティについて同じことを言います。ラディア・パールマン は、敵対的で失敗するケースを設計の中心に据えてネットワークを設計しました。ルトコウスカはその流儀でマシンを設計します。フォーゲルスが壊れるディスクを封じ込め、パールマンが壊れるリンクを封じ込めるところで、ルトコウスカはこう言うのです――攻撃者はすでに内側にいる――だからあらゆるドメインを隔離し、あらゆる層を疑い、侵害を、捨ててしまえる使い捨ての部屋にせよ、と。(シリーズの橋渡し)
ここから私が受け取るもの
ルトコウスカから私が手放さずにいる教訓は、侵害に逆らうのではなく、侵害を前提に設計せよということです。私の本能は、ほとんどの作り手と同じく、対象を堅牢にすること――入力を検証し、依存関係にパッチを当て、設定をロックする――であり、セキュリティを、十分に高くしようとしている壁として扱うことです。「ソフトウェアにはすべてバグがある」は、その本能への叱責です。壁は破られます。バグは常にもうひとつあるからです。そして本当に重要な問いは、攻撃者が壁を越えたあとに何に届くか、です。だから私はいま何かを作るとき――認証の境界、信頼できない入力を処理するサービス、お金に触れる機能――「これが侵害されたとき、被害範囲はどこまでか」を、「どうやって締め出すか」より先に問うようにしています。安全の誠実な姿は「どう壊れるか想像できない」ではありません。「壊れたとき、被害は私が削除できるひとつの部屋に閉じ込められている」なのです。
2 つ目の教訓は、信用せざるをえないものに対するほどよい疑い深さです。ある構成要素を「信頼できる」と通してしまい、先へ進むのは簡単です。しかしルトコウスカは、その言葉を私にとって組み替えました――何かを信頼できると呼ぶのは、それが壊れたらすべてを破壊しうると認めることだ、と。それが私の境界の引き方を変えました。取り込むあらゆるライブラリ、依存するあらゆるサービス、上に乗るあらゆる層は、それが正しいという賭けであり――そしてその賭けの大きさが、私の信頼できるコンピューティング基盤の大きさなのです。だから私はその基盤を小さく検査可能に保ち、リスクの高いものや複雑なものを敵対的だとみなすサンドボックスへ押し出し、そして彼女のように、隔離が利便性を犠牲にすることを正直に認めようとしています。この疑い深さは悲観ではありません。自分が何を信用しているのかを正確に知り、そのリストを可能なかぎり短くする規律なのです。
FAQ
Qubes OS とは何ですか?
Qubes OS は、ヨアンナ・ルトコウスカが生み出した、無料でオープンソースの、セキュリティ志向のデスクトップ向けオペレーティングシステムで、プロジェクト自身は「ほどよく安全なオペレーティングシステム」と説明しています。2 Xen ハイパーバイザーを使って、コンピューティングを qube と呼ばれる隔離された仮想マシンに分割します――仕事、銀行取引、個人的なブラウジング、信頼できないファイルを開く、といった活動ごとに分かれた区画です。qube は隔離されているので、ひとつが侵害されてもほかには届かず、単一の侵害による被害は封じ込められます。さらに、使用後に自己破壊する使い捨ての qube にも対応し、各ドメインに偽造できない色付きのウィンドウ枠を与えるので、あるウィンドウがどの区画に属するかを見分けられます。12
隔離によるセキュリティ(区画化)とは何ですか?
隔離によるセキュリティ、すなわち区画化とは、Qubes の核心にある原則です。ソフトウェアからバグをなくそうとするのではなく、侵害は起こると仮定し、システムを隔離されたドメインに分割することで被害を封じ込めるのです。2 Qubes の序文は物理的な生活への喩えを示します――人は自然に活動を別々の部屋に分けるものだ、と――そしてそれを、さもなければすべてがひとつの信頼の境界を共有してしまうコンピュータに適用します。2 それを補う半分が「インフラを信用するな」です。あらゆる構成要素を潜在的に侵害されているものとして扱い、単一障害点を取り除き、信頼できるコンピューティング基盤を可能なかぎり小さく保つことです。5
Blue Pill とは何でしたか?
Blue Pill は、ヨアンナ・ルトコウスカが 2006 年 8 月 3 日の Black Hat で実演した概念実証ルートキットです。AMD のハードウェア仮想化(AMD-V)を使って、稼働中のマシン上で薄い悪意あるハイパーバイザーを起動し、動いているオペレーティングシステムをその下の仮想マシンへ移し替えるものでした。これによりハイパーバイザーは、ハードウェア、割り込み、さらにはシステム時刻に対する OS の見え方を傍受し、偽装できました。3 そのようなルートキットが「100% 検出不可能」にできるというルトコウスカの主張は異論を呼び、他の研究者がタイミングに基づく検出を提案しました。これは野に放たれたマルウェアではなく、攻撃面――自分の OS の下にある層が無害だという仮定――を示す研究上の実演でした。3
Evil Maid 攻撃とは何ですか?
Evil Maid 攻撃は、ヨアンナ・ルトコウスカが 2009 年のブログ記事で名づけた、物理アクセスを利用する手法です。攻撃者が、放置された暗号化済みのノートパソコンに――たとえばホテルの部屋で――短時間、監視なしでアクセスできれば、暗号化されていないブートコードに細工をし、次にユーザーがフルディスク暗号化のパスフレーズを入力したときに、それをこっそり記録させることができます。4 TrueCrypt のようなフルディスク暗号化システムが脆弱だったのは、ブートローダーがユーザーに対して自分自身を証明できなかったからです。そのため被害者には、侵害されたローダーと正規のものを見分ける術がありませんでした。4 これは、暗号化だけでは、敵が物理的に触れられるマシンを守れないことを、鮮やかに示すものです。
出典
-
“Joanna Rutkowska,” Wikipedia. ポーランドのセキュリティ研究者。1981 年ポーランドのワルシャワ生まれ。ワルシャワ工科大学でコンピュータサイエンスの修士号を取得。Black Hat 2006 で、ハードウェア仮想化を用いた Windows Vista のカーネル保護への攻撃と Blue Pill 技術を発表。eWeek の「2006 年に足跡を残した 5 人のハッカー」のひとりに選出。2007 年 4 月にワルシャワで Invisible Things Lab を設立。協力者(アレクサンダー・テレシキン、ラファウ・ヴォイトチュク)とともに、Xen ハイパーバイザー、Intel Trusted Execution Technology、システム管理モードへの攻撃研究を発表。2009 年に「Evil Maid」攻撃という言葉を生み出す。2010 年頃にヴォイトチュクとともに Qubes OS の開発を開始。Qubes 1.0 は 2012 年 9 月 3 日にリリースされ、「qube」と呼ばれる隔離された軽量仮想マシンを用いた「区画化によるセキュリティ」の原則に基づく。後にプライバシーと分散化の仕事へと移行。 ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩
-
“Introduction,” Qubes OS documentation (qubes-os.org)、および “Qubes OS,” Wikipedia. Qubes OS は、シングルユーザーのデスクトップ向けコンピューティングのための、無料でオープンソースの、セキュリティ志向のオペレーティングシステムで、プロジェクトのタグラインは「A Reasonably Secure Operating System(ほどよく安全なオペレーティングシステム)」。「隔離によるセキュリティ」/「区画化によるセキュリティ」を実装し、「ソフトウェアにはすべてバグがある」、完璧でバグのないソフトウェアは不可能だ、という前提に立つ――だથからあらゆる悪用を防ごうとするのではなく、Qubes は悪用が起こることを前提とし、価値あるデータをリスクの高い活動から切り離すことで被害の封じ込めに専念する。Xen ハイパーバイザーを使ってアプリケーションを仮想マシン(「qube」)に隔離し、各 qube は目的、性質(Fedora/Debian/Windows のテンプレート)、信頼レベルを持つ。管理ドメイン(dom0)はハードウェアとディスプレイを管理し、ネットワークから切り離される。ネットワークと USB は隔離された qube へ押し出される。機能には、シャットダウン時に自己破壊する使い捨ての qube、アプリ用 qube のための共有テンプレートシステム、split GPG、各セキュリティドメインを識別する偽造できない色付きウィンドウ枠が含まれる。ヨアンナ・ルトコウスカが生み出した(初版は 2012 年 9 月 3 日)。このアプローチは、エドワード・スノーデンやダニエル・J・バーンスタインといった人物から公に支持されている。 ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩
-
“Blue Pill (software),” Wikipedia. Blue Pill は、ヨアンナ・ルトコウスカが設計し、2006 年 8 月 3 日の Black Hat Briefings で初めて実演した概念実証ルートキットで、x86 のハードウェア仮想化(当初は AMD-V/SVM、後に Intel VT-x へ移植)を使用する。「薄いハイパーバイザーを起動して残りのマシンをその下で仮想化することによって、稼働中のオペレーティングシステムのインスタンスを罠にかける」ことで動作し、その後「ハードウェア割り込み、データ要求、さらにはシステム時刻までハイパーバイザーによって傍受され(そして偽の応答が送られ)うる」。ルトコウスカはそれが「100% 検出不可能」を達成できると主張したが、この主張は異論を呼んだ――AMD はそれを退け、他の研究者はタイミングに基づく検出手法を提案した。これは概念実証であり研究上の実演であって、野に放たれたマルウェアではなかった。 ↩↩↩↩↩↩↩↩↩↩↩↩
-
“Evil maid attack,” Wikipedia. evil maid 攻撃は、放置されたデバイスを物理アクセスを通じて標的にし、検出不可能な方法で侵害することで、攻撃者が後でそのデータにアクセスできるようにするもの。この用語は、セキュリティアナリストのヨアンナ・ルトコウスカが 2009 年のブログ記事で導入し、放置されたコンピュータのブートプロセス/ファームウェアを(たとえば外付け USB フラッシュドライブ経由で)侵害して、TrueCrypt のようなフルディスク暗号化を回避する方法を説明した。そうしたシステムが脆弱なのは、「ユーザーに対して自分自身を証明できないために evil maid 攻撃を受けやすい」からであり――攻撃者は暗号化ローダーのコードを書き換えてパスフレーズを捕捉できる。この攻撃には、被害者がデバイスを一度(侵害を仕込むために)、そしてその後にもう一度(捕捉したデータを回収するために)放置することが必要となる。 ↩↩↩↩↩↩↩↩↩
-
Iain Thomson, “Security industry needs to be less trusting to get more secure,” The Register, 2017 年 12 月 7 日。ヨアンナ・ルトコウスカの基調講演「Security Through Distrusting」を報じたもの。Invisible Things Lab の最高経営責任者であるルトコウスカは、システムを「信頼できる」ものにするという従来のセキュリティ業界の焦点は「過度に素朴で、より複雑なシステムにはスケールしない」と論じた。なぜならコンピュータセキュリティにおいて「信頼できる」とは、あるコードが「私のセキュリティの整合性全体を破壊しうる」という意味だからである。彼女の代替案は、システム内のどの単一の構成要素も潜在的に侵害されうるものとして扱い――ほぼすべての構成要素や主体を疑い、単一障害点を持たない――というもので、これは Qubes において画像や PDF ファイルの扱い方に適用した原則である。彼女は「不信によるセキュリティは万能薬ではない。とりわけ使いやすさと利便性において、トレードオフを伴うからだ」と認めた。 ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩