eMicro: Real-Time Multi-Hop Access Control for Microservices with eBPF
本論文は、セキュリティポリシーを決定性有限オートマトンとしてエンコードすることで、複雑なマルチホップ攻撃を防ぎつつ、無視できるほどの実行時オーバーヘッドでマイクロサービスに対するリアルタイムのマルチホップ・アクセス制御を実現する、効率的なeBPFベースのパス認識型防御システムであるeMicroを提案する。
原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む
インターネットを、巨大で賑やかな都市だと想像してみてください。そこでは、すべての建物が「マイクロサービス」と呼ばれる、小さくて専門化された働き手です。一つの巨大な工場がすべてを行う代わりに、これらの働き手は仕事を完了させるために、お互いにメモを回し合います。時には、パン屋から銀行へ、次に警備員へ、そして最後に金庫へとメモが送られることもあります。これが現代のアプリが動く仕組みです。それらは、複雑なダンスを踊るように会話する、何千ものこれら小さなサービスで構成されています。
しかし、ここには厄介な問題があります。通常、警備員は目の前に立っている人物だけをチェックします。もしパン屋が銀行にメモを送った場合、警備員は「パン屋が銀行と話すことが許可されているか」を確認します。彼らは、パン屋が「どのようにしてそこに辿り着いたのか」までは調べません。これが、巧妙な抜け穴を生み出します。悪党がパン屋を騙して、銀行にメモを送らせることができた場合、銀行は「ああ、パン屋が私に話しかけている。これは問題ないな!」と判断してしまうかもしれません。パン屋が実際にはハッカーによって強制されていたということに気づかずに。これは「マルチホップ攻撃」と呼ばれます。悪党が、正当な働き手から別の働き手へと飛び移り、一歩一歩は正当に見えるものの、最初から最後までを見れば災難であるような、信頼の連鎖を築き上げる手法です。
これからあなたが読む論文「eMicro」は、まさにこの問題に取り組んでいます。彼らはこう問いかけます。「どうすれば、処理を遅らせたり、すべての働き手に重い歴史のバックパックを背負わせたりすることなく、この巧妙な連鎖を阻止できるだろうか?」バージニア工科大学、IBM、その他の研究者チームは、超スマートで目に見えない交通整理員のようなシステムを構築しました。彼らは、単にドアの前にいる人をチェックするのではなく、そのメモの旅の「物語全体」を知る仕組みを作りました。彼らは、eBPF(プログラムをコンピュータのコアエンジン内で安全に実行させる技術)という特別な技術を使用し、働き手の制服を変えることなく経路を追跡します。また、彼らはDFA(決定性有限オートマトン:一種のフローチャート)という巧妙な数学的トリックを用いて、ルールを極めて効率的に記憶することで、容量をほとんど消費しないようにしました。その結果、リアルタイムでこれらの巧妙な攻撃を阻止し、驚異的な速さで動作し、大規模なクラウドシステムにも負担をかけることなく適合するシステムを実現したのです。
巧妙な連鎖反応
例えば、写真共有アプリがあるとしましょう。そこには、玄関口(nginx)、フォトエディター(media)、ストレージ室(cloud)、そしてパスワード用の金庫(creds)があります。通常の日常では、ユーザーが玄関口に写真をリクエストします。すると、玄関口がエディターに頼み、エディターがストレージ室に頼み、そして――パッ!――写真は手に入ります。これは安全な経路です。
さて、ハッカーが玄関口に小さな隙間を見つけたと想像してください。彼らは、まるで通常の要求であるかのように装って、玄関口にパスワード金庫への鍵を求めるよう仕向けます。従来のセキュリティガードは、玄関口とパスワード金庫を見て、「おっと、玄関口は時々金庫と話すことが許可されているから、通してよし!」と言ってしまうでしょう。警備員は、玄関口が本来はフォトエディターと話すべきであり、金庫と話すはずではなかったという事実を見逃してしまいます。ハッカーはワークフローを「曲げて」しまったのです。
これが「マルチホップ」問題です。攻撃は一度の大きな爆発ではなく、一見合法に見える小さなステップの積み重ねであり、それが最終的に災難へと繋がります。論文では、古いセキュリティシステムは、目の前に立っている人しか見ない警備員のようだと説明しています。その人が、5ステップ前で知らない人に背中を押されたかどうかについては、彼らは関心を持たないのです。
eMicroの登場:物語の番人
著者たちは、この問題を解決するためにeMicroを構築しました。eMicroを、すべてのリクエストに「ストーリー・タグ」を与えるシステムだと考えてください。リクエストが始まると、それは小さなラベルを受け取ります。リクエストが玄関口からエディターへと移動すると、ラベルは「私は玄関口から来ました」と更新されます。エディターからストレージ室へ移動すると、ラベルは「私は玄関口から来て、次にエディターを経由しました」となります。
もしハッカーが、玄関口を騙してパスワード金庫へ直接行かせようとした場合、ラベルが一致しなくなります。ラベルは「私は玄関口です」と表示されますが、金庫側は「玄関口を経由した後の状態の玄関口」というラベルを期待しています。システムはこの不一致を検知し、即座にリクエストを遮断します。
しかし、ここからが魔法の部分です。すべてのリクエストに対して完全な物語のタグを持ち歩くことは、重くて遅くなってしまいます。メッセージを送るたびに、それまでに話した全員の50ページの伝記を添付しなければならない状況を想像してみてください。それではネットワークが詰まってしまいます。
魔法のフローチャート(DFA)
この「重いバックパック」問題を解決するために、研究者たちは**決定性有限オートマトン(DFA)**という巧妙な数学的トリックを使用しました。物語をすべて書き出す代わりに、システムはルールを巨大で効率的なフローチャートに変換します。
次のようなフローチャートを想像してください。
- 円0:スタート。
- 円1:あなたは玄関口と話しました。
- 円2:あなたは玄関口、次にエディターと話しました。
- 円3:あなたは玄関口、エディター、次にストレージと話しました。
システムは「玄関口、エディター、ストレージ」という言葉を持ち歩くのではありません。ただ、自分が今どの円の中にいるかという「円の番号」(例:「円3」)を運ぶだけです。もしあなたが円1から直接パスワード金庫へ飛び越えようとしたら、フローチャートは「待て、円1から金庫へ向かう線は存在しない!」と判断し、あなたをブロックします。
これは非常に効率的です。論文では、標準的な方法で履歴を記述すると数百ビット(長い1と0の列)が必要になる一方で、このフローチャート方式がいかに情報を圧縮できるかを示しています。彼らのテストでは、5,000万個の異なるセキュリティルールを、わずか100 MBのスペースに格納できました。これは、図書館にある数百万冊の本を、たった一つのスマートフォンに収めるようなものです。
見えない交通整理員(eBPF)
eMicroは、個々のコンピュータプログラムのコードを変更させることなく、どのようにしてこれほど速くラベルを更新できるのでしょうか? その答えはeBPFです。
eBPFを、コンピュータのエンジン(カーネル)内で安全に動作する小さなプログラムを実行できる特別なツールだと考えてください。通常、何が起きているかを追跡するには、すべてのアプリにトラッカーをインストールするよう依頼する必要がありますが、これは開発者にとって悪夢です。eMicroはそんなことはしません。代わりに、ネットワークのパイプやコンピュータ内部のプロセスに、この小さなプログラムを付着させます。
リクエストのパケットがサービスから離れるとき、eBPFプログラムがそれをキャッチし、「円の番号(ラベル)」を更新して送り出します。これは非常に高速に行われるため、リクエスト自体が気づくことさえありません。論文ではこれを測定し、eMicroによるチェックの遅延は1マイクロ秒(100万分の1秒)未満であることが示されました。これは人間の瞬きの速度よりも速いものです。
研究結果
チームは、eMicroが実際に機能するかどうかを確認するために、いくつかの異なる方法でテストを行いました。
- 攻撃の阻止: 彼らは、サービスに間違った場所へ話しかけるよう騙したり、悪意のあるソフトウェアを使用してネットワークをスキャンしたりする、3種類の巧妙な攻撃をシミュレートしました。eMicroはこれらの攻撃を**100%阻止しました。対照的に、従来の「隣の確認」を行うセキュリティ手法は、ごくわずかな部分しか捉えることができませんでした。例えば、6ステップの連鎖において、旧来の手法はわずか0.3%**の不正なパスしか検知できませんでしたが、eMicroはすべてを検知しました。
- スピード: 彼らは1,200万件のリクエストをシステムに通しました。eMicroはトラフィックをスムーズに流し続け、遅延をほとんど発生させませんでした。これは、毎回中央のボスに許可を求めなければならない従来の集中型システムよりも35%高速でした。
- 容量: 前述の通り、彼らは5,000万個のポリシーを100 MBのメモリ内に格納しました。これは、ギガバイト単位の容量を必要とした旧来の手法と比較して、劇的な改善です。
- 信頼性: ネットワーク内のコンピュータがクラッシュした場合の影響についてもテストを行いました。eMicroはRaftと呼ばれるシステムを使用して、すべてのコンピュータがルールに合意するようにしています。もし一台がダウンしても、他のコンピュータが役割を引き継ぎ、システムは4秒以内に復旧します。
なぜ重要なのか
論文は、eMicroが実用的で現実的なソリューションであると結論付けています。それは世界のすべてのソフトウェアを書き換えることを要求せず、かつ処理を遅らせることもありません。それは、リクエストの「物語全体」を知ることができるセキュリティガードを持つことが可能であることを証明しています。
著者たちは、eMicroはマイクロサービスには素晴らしいものですが、あらゆるセキュリティ問題に対する魔法の杖ではないことも明記しています。このシステムは、コンピュータのコアエンジン(カーネル)が安全であることを前提としています。もしハッカーがコンピュータの「脳」の完全な制御権を手に入れた場合、ガードをオフにできてしまいます。しかし、ハッカーがサービス間の隙間を縫って忍び込もうとする、大多数のクラウド攻撃に対しては、eMicroはその穴を塞ぐことができます。
要約すると、eMicroは現代のアプリの複雑で目に見えないウェブに、明確で高速、かつ壊れることのないルールを与えます。それは、混沌とした都市の働き手たちを、全員が「誰と話すべきか」を正確に理解している、よく組織されたチームへと変えるのです。そして、誰も裏口から忍び込むことはできません。
自分の分野の論文に埋もれていませんか?
研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。