TOMOYO Linux: A Mandatory Access Control Method Based on Application Execution State
本論文は、従来のアプリケーションとファイルの組み合わせのみに依存するのではなく、アプリケーションの実行履歴と意図を評価することによって、悪意のあるアクセスや操作ミスによるリスクを低減し、システムセキュリティを強化する新しい強制アクセス制御手法であるTOMOYO Linuxを導入するものである。
原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む
あなたのコンピュータを、巨大で賑やかなオフィスビルだと想像してみてください。このビルの中には、仕事をこなすために何千人もの従業員(アプリケーション)がいます。ファイルを読み込む必要がある人もいれば、レポートを作成したり、電話(ネットワーク接続)をかけたりする必要がある人もいます。
旧来のやり方:「あなたは誰ですか?」と尋ねる警備員
長い間、コンピュータ・セキュリティは、入り口に立つ非常に単純で、少し混乱した警備員のようなものでした。その警備員は、たった2つの質問しかしませんでした。
- 「あなたは誰ですか?」(どのアプリケーションですか?)
- 「どのドアを開けようとしていますか?」(どのファイルにアクセスしようとしていますか?)
もし警備員が、「ウェブブラウザ」という従業員が「秘密のパスワード」というファイルを開こうとしているのを見たら、彼はリストを確認します。もしリストに「ウェブブラウザはパスワード・ファイルを開くことができる」と書かれていれば、彼を通します。そうでなければ、彼を阻止しました。
問題点: このシステムはあまりにも無骨すぎます。なぜウェブブラウザがそのファイルを開こうとしているのか、その「理由」を気にかけないのです。
- シナリオA: ブラウザが通常のウェブページを読み込んでいる。(安全)
- シナリオB: ブラウザがハッカーに騙され、パスワードファイルを盗もうとしている。(危険!)
旧来の警備員は、同じ従業員(ウェブブラウザ)と、同じドア(パスワード・ファイル)を見ているに過ぎません。彼は、それが安全な訪問なのか、それとも窃盗行為なのかを区別できません。そのため、全員を通してしまう(リスクが高い)か、全員を締め出す(非現実的である)かのどちらかになってしまいます。
新しいやり方:TOMOYO Linux(「ストーリーテリング」を行う警備員)
この論文の著者たちは、Linuxコンピュータのための新しい種類の警備員、TOMOYOを提案しています。この警備員は単に「あなたは誰ですか?」と尋ねるのではなく、**「どのようにしてここに辿り着いたのですか? あなたのストーリー(経緯)は何ですか?」**と尋ねるのです。
「実行履歴」の魔法
想像してみてください。オフィスで従業員が採用されたり、新しいタスクを開始したりするたびに、彼らはパスポートのスタンプを与えられます。
- もしメインロビーからログインしたなら、スタンプはこうなります:ロビー → 受付 → あなたのデスク。
- もしあなたがハッキングされ、裏窓からシステム内に強制侵入させられたなら、あなたのスタンプは次のように見えるかもしれません:裏窓 → 通気口 → あなたのデスク。
TOMOYOは、コンピュータ上で動いているすべてのプログラムについて、この履歴全体を追跡します。それは、アプリケーションが現在の状態に至るまでに辿った正確な経路を把握しています。
実践における仕組み
シェル(コマンドを入力できるコマンドラインツール)を例に見てみましょう。旧来のシステムでは、シェルは単なるシェルです。しかし、TOMOYOにおいては、警備員はパスポートをチェックします。
- 安全なシェル: あなたが自分のコンピュータのコンソールからログインしました。
- 履歴: カーネル → ログイン画面 → あなたのシェル。
- 警備員の判断: 「よし、これは信頼できるユーザーだ。必要なプログラムはほぼ何でも実行してよい。」
- 不審なシェル: Apacheウェブサーバー(ウェブサイトを運営するプログラム)がハッキングされ、侵入のためにシェルを生成しました。
- 履歴: カーネル → ウェブサーバー → ハッキングされたシェル。
- 警備員の判断: 「待てよ! ウェブサーバーから発生したシェルは不審だ。お前ができるのは、ログファイルを読み取るといった、非常に限定的な作業だけだ。危険なプログラムを実行したり、ファイルを削除したりすることは許可しない。」
これらは全く同じプログラムファイル(/bin/bash)であっても、TOMOYOは、彼らのストーリーが異なるため、全く異なる扱いをします。
「ホワイトリスト」のアプローチ
TOMOYOは、厳格なホワイトリストのように機能します。
- 旧来のシステム(ブラックリスト): 「悪いものだと分かったら止める。」(しかし、ハッカーは常に「悪いもの」の新しい方法を編み出しています。)
- TOMOYO(ホワイトリスト): 「私は、あなたの特定のストーリーに書き込まれていることだけを許可する。」
もしプログラムが、その特定の「ストーリー・リスト」に載っていないことをしようとした場合、警備員は即座にそれを阻止します。たとえそのプログラムが「スーパーユーザー(管理者)」の権限で実行されていても、警備員は気にしません。ルールは全員に適用されます。
なぜこれが優れているのか(論文の主張)
この論文は、この手法が旧来のシステムでは解決できなかった問題を解決すると主張しています。
- 「変装した」攻撃を阻止する: もしハッカーが、危険なファイルを安全なファイルに見せかけるよう名前を変えたとしても、旧来の警備員は騙されるかもしれません。しかし、TOMOYOは履歴と引数(プログラムに与えられた具体的な指示)を見て、その行動が理にかなっているかを判断します。
- 管理が容易である: 管理者は、複雑なルールを建物全体に対して推測する代わりに、「学習モード」を観察することができます。システムは、すべてが正常に動作している時の従業員の「実際の動き」を記録し、それ以外のすべてをロックダウンします。それは、通常の日のオフィスの様子を写真に撮り、その通りの動きだけを許可するようなものです。
- 高速である: 著者たちはテストを行い、これがコンピュータにわずかな負荷(警備員がパスポートをチェックするのに一瞬かかるようなもの)を加えるものの、オフィスを著しく遅延させることはないことを発見しました。ほとんどのタスクにおいて、その遅延はユーザーには目に見えません。
結論
TOMOYO Linuxは、セキュリティを静的な「IDチェック」から、動的な「ストーリーチェック」へと変えます。それは、文脈(コンテキスト)が重要であることを理解しています。ある状況下で行われる一つの動作は安全かもしれませんが、別の状況下(例えば、ハッカーにハイジャックされた後など)で行われる全く同じ動作は危険なのです。すべてのアプリケーションの旅路を追跡することで、TOMOYOは従来のセキュリティ警備員には到底見通せなかった攻撃を阻止することができるのです。
自分の分野の論文に埋もれていませんか?
研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。