パスワードを忘れた? アカウント作成
11849971 journal
日記

Torisugariの日記: セキュリティと懐疑論 4

日記 by Torisugari

私はセキュリティの専門家でも何でもないのですが、時に、周囲の人に特権昇格の話をしても通じないことが多々あります。しかし、私が思うに、この種の特権(Privilege)について配慮することは、現代社会で生活する上では避けては通れません。さほど難しいことを言っているわけでもないので、不慣れな人のために例を交えて説明しておきたいと思います。

---
例1

例えば、あなたが道端でノートパソコン端末(あるいはタブレット)を拾ってしまったとします。そして、落とし主を調べるために画面を覗き込むと、そこには小学校の成績表が表示されており、図らずも、あなたは隣の家のA君の算数の成績が1だったことを知ってしまうのです。結局、その端末の持ち主はA君の担任のB教諭だったので、あなたはB教諭に端末を届けて、この端末紛失事件は解決します。なべて世はこともなし。しかし、あくる日、あなたはA君に出会って「こんにちは。」と挨拶するとき、ふと、こう考えてしまうのです。「こいつの算数の成績は1なんだよな。」と。

これは、「学校の成績が部外者である『あなた』に漏れてしまった」という不祥事です。しかし、それは、あくまでも最終的な結果の話ですから、具体的にマズかったポイントを指摘できているわけではありません。そこで、特権、すなわち「誰かが何かをする権限」という概念を使って上記の例を再構成すると、こうなります。

  • B教諭は「A君の成績表を見る特権」を持っている。
  • A君は終業式に「A君の成績表を見る特権」を持つ予定である。
  • あなたは「A君の成績表を見る特権」を持つべきではない。

B教諭はA君の成績表を作った本人ですから、見ることができて当たり前です。そして、A君は自分の成績表なのですから、少なくとも終業式で通信簿を貰ったあとは自分の成績を知っていなければおかしいわけです。しかし、あなたの場合は、知る筋合いが全くなかったにも関わらず、知ってしまっているわけですから、逆算すると、あなたにも成績を知る権限があったからこそ知っているわけです。「成績表を通信簿で渡す」という仕組み上は想定されていないあなたに特権が与えられていたことが不祥事の本質であって、この、あなたの権限が不当に上昇していた状態を指して、特権昇格(privileges escalation)と言うのです。

つまり、

  • あなたは「A君の成績表を見る特権」を端末の拾得と同時に与えられ、B教諭への返却とともに失った。

という一時的な特権昇格が不祥事なのです。

上記の例の場合、「A君の成績表を見る特権」は以下のような性質を持っています。

  • 特権を持つものは持たざる者に特権を与えることができる。
  • 一端与えた特権は取り上げても手遅れで、取り消すことに積極的な意味はない(あなたは一度見たA君の成績を忘れるとは限らない)。

A君は確かに特権を持っていますが、その特権は生得のものではなく、終業式でB教諭に与えらる予定のものです。社会上のルールを考えれば、A君には自分の成績の閲覧を請求する権利がありますし、B教諭には閲覧を拒む権利はないはずです。しかし、それはあくまで制度上の特権の推移の話であって、現場の特権の推移ではありません。B教諭は終業式で意地悪をしてA君に成績表を渡すのを拒むこともできるのです。逆に、紛失事件がなくてもB教諭はあなたに世間話のついでにA君の成績を教えるかもしれません。ですから、制度的な「要求仕様上の役割としての教諭」と比べて、「現実の教諭」は遥かに巨大な権限を持っており、このポイントこそが脆弱性の温床となりえるのです。

学校教員のモラルハザードの話、一般化すると「特定の場所に不必要にみえるほど特権が集中してしまう問題」、はあながち絵空事というわけではありませんが、とりあえず、全ての教員に十分な善性が備わっているとして話を進めましょう。実際問題として、B教諭は別にA君に対する悪意やあなたとの間に汚職があったわけではないのに、この不祥事のトリガーを引いているのです。

この「例1」は現実にあった事件を元にした例であり、現実には対処法が考えられています。すなわち、「B教諭は端末を校外に持ち出してはいけない」というのがそれです。B教諭も人間ですから、端末紛失の確率をゼロにすることはできません。しかし、少なくとも持ち出さなければ端末を紛失しても、あなたが道端で端末を拾得することはできませんから、あなたの特権昇格は防ぐことができたはずだ、という理屈です。

「例1」において、あなたが画面を覗き込んだ時に、あるいは画面を見ずに持ち主がB教諭だと特定できていたかもしれません。すると、情報漏洩事件を引き起こさずに端末紛失事件が解決されていたことになります。しかし、あなたが端末を手にした時点で、特権上昇事件は既に発生していたのです。運に頼らずに情報漏洩を防ぐには、「情報閲覧の特権」という抽象的な概念の所在を制御する必要がある、ということです。

---
以上を踏まえた上で、次の例を考えてみたいと思います。

例2

あなたが商品Cを検索エンジン(Googleなど)で検索したとします。商品Cは何でもいいですが、毛生え薬、バイアグラ、大きいお友達向きの玩具など、余人に公言したくはならない商品だとした方が理解を助けると思います。とにかく、そいう商品名をGoogleで検索すると、あなたがその商品に興味を示しているとGoogleが判断するでしょう。このとき、あなたは暗黙の裡に「あなたの興味があることを知る権利」をGoogleに対して与えています。ここでのGoogleの行動の理非もいろいろ議論の対象とはなりますが、まあ、ここは許容されていると考えましょう。

その後、Googleはこの情報を使って第三者のウェブサイト、例えばスラッシュドットに広告を出すわけですが、実のところ、この広告内容はスラッシュドットの知るところとなります。より厳密に考えると、広告がiframe内にだけ表示されるなら、Googleはあなたの情報をスラッシュドットに漏らさずに「インタレストマッチした広告」を出稿することが可能かもしれません。しかし、現実にGoogleの広告が全てiframe内に納まっているわけではなく、スラッシュドット(のトップのDOM)からアクセスできる位置に広告が埋め込まれていることもあります。この問題の厄介なところは、スラッシュドットが必ずしもユーザーに出された広告内容を解析するスクリプトを自身のサイトに仕込んでいるとは限らない、という点です。しかし、スラッシュドットは既にそうできる立場にあるわけですから、「あなたの興味があることを知る権利」を持っています。

その後、スラッシュドットはその商品情報とログイン情報を組み合わせた新しい個人情報を別のサイト、例えばBingに売ることができます。すると、GoogleとBingの間に業務提携が全く存在していなくても、Bingは「あなたの興味があることを知る権利」を得ることができます。

要約すると、「Googleでカツラを検索すれば、Bingが毛生え薬を売り込んできても全く不思議ではない」ということです。それどころか、「あなた」はそういった特権をGoogleだけでなくBingに対しても与えているのです。もし、これがあなたの望む結果でないのなら、どこかで特権昇格が起きた情報漏洩事件、ということになりますが、例1の「端末を校外に持ち出してはいけない」といったような対策を打ち出すことは可能でしょうか?

---

以上の話を読んで、なるほどな、と思ってしまった「あなた」は注意が必要です。最初に言ったように、私はセキュリティの専門家でも何でもないのです。プロの提言ですら疑ってかかるのが常道というもの、素人の言い分を真に受けたとすれば、「あなた」はどこかで「私」の特権昇格を許してしまった、ということになるでしょうね。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

Stay hungry, Stay foolish. -- Steven Paul Jobs

読み込み中...