3.3.2 Gridにおけるセキュリティ技術
門林 雄基講師
1.はじめに
Gridは分散計算、可視化、ディレクトリサービス、認証など実証計算機科学における近年の技術革新の集大成であるととらえることができる。Grid研究ではこれらの基盤技術を単一のミドルウェアに統合する作業が活発におこわれているが、このうち、最も取り組みが遅れているのがセキュリティ技術の統合作業であると考えられる。
Gridの積極的な応用が始まっている研究分野では、セキュリティ技術の重要性は十分認識されていると考えられる。応用分野として、高エネルギー研究、宇宙科学研究、デバイス技術、バイオテクノロジー研究、ナノテクノロジー研究などが考えられ、またこのうちのいくつかでは応用が始まっているからである。
これまでの研究機関や国立大学に対するサイバー・アタックは高エネルギー研究、バイオテクノロジー研究、宇宙科学研究などをおこう研究部門に対するものが顕著であったことを鑑みれば、Grid技術がこれらの研究部門で広く用いられることになったとき、Gridの個々の基盤技術を精密に分析し、またソフトウェアのバグを洗い出すなどの手段によって、研究の基盤であるところのGridに対するサイバー・アタックが最も効率的な攻撃手段となりうる。
このようにセキュリティやプライバシを最も必要とする応用研究分野においてGrid技術を実際に使っていくためには、Gridのセキュリティアーキテクチャを精査し、またGridのコンポーネントとなるソフトウェアそれぞれについてセキュリティ検査をおこうといった作業が必要不可欠であると考えられる。
現在のところ、このような作業が体系的かつ組織的におこわれているという情報はまったくなく、またそのような作業の必要性も広く認識されているとは言い難い。このような現状において、Gridをセキュリティがもっとも重要視される各応用研究に対して実用に供することは、拙速というほかない。
ここではGridという大きな概念の一実現であるGlobusについて、そのセキュリティアーキテクチャを概観し、その利点と欠点について考察する。むろん、ここでの考察は断片的なものでしかない。包括的なセキュリティアーキテクチャに関する考察や、ソフトウェアの実装にまで踏み込んだセキュリティ検査といったことは近い将来において取り組むべき課題として残されているということに注意されたい。
つぎに、Grid技術の標準化団体であるGrid ForumにおけるGridのセキュリティアーキテクチャ標準化について、潜在的な問題点の有無を点検する。最後に、Gridにおけるセキュリティ研究の方向性について議論をおこなう。2.Globusにおけるセキュリティ
GlobusはUSC/ISI(南カルフォルニア大学情報科学研究所)を中心とする全米の研究者によって活発に設計、開発、改良がすすめられているGridのミドルウェアである。
Globusのセキュリティアーキテクチャの大部分はX.509の電子証明書にもとづくセキュリティアーキテクチャから派生したものである。X.509のセキュリティアーキテクチャは歴史的にはITU-TのX.509作業部会によって標準化がおこなわれ、4年ごとに改版されてきたが、近年は電子商取引をはじめとして、X.509標準のインターネットへの応用が盛んになってきたため、IETFのPKIX作業部会に標準化が引き継がれ、本稿の執筆時点においても活発に機能拡張のための提案作業や規格書の改版作業がPKIX作業部会を中心としておこなわれている。
GlobusではX.509の電子証明書(Digital certificate)をもちいたホストの認証とユーザの認証をおこなっている。それぞれの計算機や、計算機の利用者にたいしてDN(Distinguished Name)と呼ばれる識別子を付与し、それぞれのDNに対して電子証明書を発行する。電子証明書は利用者の計算機においていったん生成され、これをCA(Certificate Authority)においてCAの秘密鍵で署名することによって正式なものとなる。CAは秘密鍵と公開鍵の組をもっており、公開鍵をふくむ情報をCAの電子証明書として広くすべてのホストから参照可能とすることで、どのホストにおいてもユーザの認証が可能となる。ユーザからアクセス権限をもとめられたときに、ホストはみずからが持つCAの公開鍵をもちいてユーザの電子証明書を確認することができる。
DNはグローバルに一意な識別子であるので、これに付帯する電子証明書をもちいることでグローバルなユーザやホストの認証をおこなうことができる。しかしながら、DNは実際にユーザプログラムを実行するうえで個々の計算機のユーザIDにあるため、Globusでは個々のユーザのDNからユーザIDへの変換情報をひとつのファイルにおさめる方式をとっている。変換情報をおさめたファイルはgrid-mapfileと名付けられ、これをシステム管理者が利用権限を許可するユーザごとに書き込むことで個々のホストにおけるアクセス制限が実現される。
このようにGlobusのセキュリティアーキテクチャは既存の優れたアーキテクチャを応用することによってグローバルな認証を実現したものであるが、問題点がないわけではない。以下では、本稿の執筆時点におけるGlobusのセキュリティアーキテクチャにおける問題点について議論する。
Globusのセキュリティアーキテクチャでは認証のみをおこなっており、暗号化に関しては考慮されていない。Globusではジョブの投入、ノード間のメッセージ交換、ファイル転送など、さまざまなコンポーネントにおいてネットワーク上でデータをやりとりするが、このうち、ジョブ投入時の認証以外にはセキュリティを確保するための操作はおこなわれない。現在のところ、Globusの実装ではOpenSSLの認証部分のみを用いて認証をおこなっており、ファイル転送における内容の機密保持や、ノード間のメッセージ交換におけるなりすまし攻撃への対処は考慮されていない。
もちろん、このようなセキュリティアーキテクチャを採用したことには理由がある。認証操作を最小限にとどめることは設計上の選択肢であったと考えられる。認証操作を最小限にとどめることで、ファイル転送やノード間のメッセージ転送における認証のオーバーヘッドをなくし、分散計算を高速化することができる。また、暗号化をおこなわないことでメッセージの送受信における計算負荷をなくすこともできる。しかしながら、常にメッセージの暗号化をおこなわないことと、常にメッセージの認証をおこなわないことはGlobusが用いられる状況によっては危険性をともなう。したがって、アーキテクチャとしてはプログラマに対し選択肢を用意すべきだと考えられる。
また、GlobusにおけるX.509セキュリティアーキテクチャの実現方式にも問題点がある。X.509ではCAを階層化して運営することによって、証明書発行や証明書の維持管理業務の負荷を分散させることが意図されているが、Globusにおいては、本稿の執筆時点ではCAは階層化されておらず、ひとつのCAによってすべてのノードとユーザの証明書が発行され、管理されている。直感的にも明らかなように、単一のCAによるグローバルなユーザ認証とホスト認証には規模の限界がある。
X.509では証明書の秘密鍵が漏洩した場合や利用者が解雇された場合などを想定し、証明書の取り消し(Certificate revocation)という操作が規定され、証明書の有効性を問い合わせるプロトコルが規格化されているが、本稿の執筆時点ではGlobusには証明書の取り消し操作が用意されていない。
以上の議論からわかるように、Globusで用いているのはX.509セキュリティアーキテクチャのサブセットであり、大規模な運用や現実に起こりうることに対応できる運用を可能とするものではない。
Globusセキュリティアーキテクチャのもう一つの問題点として、権限委譲モデルが非常に単純であるということが挙げられる。grid-mapfile にエントリがあるユーザは、権限を与えられた計算機上で通常のユーザとして振る舞うことができ、あたえられたユーザIDに対して許される範囲でファイルの読み書きやプロセスの実行が可能となる。3.Grid Forumにおけるセキュリティ標準化
現在、Globus, LegionなどにおけるGridの設計、実装経験にもとづき、Grid ForumにおいてGridアプリケーションプログラミングインターフェースの標準化が積極的にすすめられている。
Grid ForumにおいてGrid Security Protocolsとして標準化がすすめられているものは、PKIXとKerberosを土台としたものである。また、アプリケーションプログラミングインタフェースとしてはGSS-APIがたたき台として考えられている。
このように、専門家によって設計された既存のセキュリティアーキテクチャにもとづいて標準化作業をすすめることで、Grid Security Protocolsの標準化を早期に完了させることができるという利点がある。しかしそのことは同時に、PKIXやKerberosの抱える問題に並行して取り組まなければならないということも意味する。
PKIXでは電子証明書の本人確認を効率的に行う方法が必要であり、一般的な解決策はない。特にグローバルに分散して存在するGridの利用者をどのようにして効率的に、かつ間違いなく本人確認するのかという問いに対して解決策を見いだす必要がある。このような問題がX.509だけでなく、電子証明書を用いるPKI(Public Key Infrastructure)全般について指摘されている。詳しくは、D. Davis, “Compliance Defects in Public-Key Cryptography”,
Proc. 6th USENIX Security Symposium, pp.171-178, 1996.
http://world.std.com/~dtd/
あるいは
C. Ellison and B. Schneier, “Ten Risks of PKI”, Computer Security,
Journal, 16(1), pp. 1-7, 2000.
http://www.counterpane.com/pki-risks.html
を参照されたい。
このほか、PKIXに基づくセキュリティアーキテクチャでは米国のFederal PKIやわが国のGPKI(Government PKI, 政府認証基盤)と同じ問題に直面することになる。例えば複数のRoot CAが存在する場合、それらをまたがったユーザ認証やホスト認証をおこなうためにはRoot CA同士をつなぐBridge CAが必要だとGPKIでは考えられている。これと同じ問題をGridにおいても解決する必要がある。
また、証明書の有効性問い合わせについても問題点があることが知られている。証明書の有効性問い合わせ間隔をあまり短くとると、証明書検証サーバの負荷が高くなり現実的ではない。逆に、有効性問い合わせ間隔が長すぎると、無効な証明書をもつユーザのアクセスを許可してしまうことがあり、好ましくない。
また、CAにもとづくシステムではCAの秘密鍵の漏洩がもっとも深刻な脅威であり、この問題にたいしてどう対処するのかといった合意形成と、緊急時行動規定の作成が必要である。
以上のような電子証明書の問題点のほかに、個々のノードは従来のインターネット・セキュリティの諸問題を抱えていることは言うまでもない。オペレーティングシステムに標準で付属するデーモンのいくつかにはセキュリティホールがあり、これらを悪用することにより管理者権限を奪取される危険性がある。また、DNSを用いてドメイン名からIPアドレスを検索する際に、なりすまし攻撃によってDNSサーバの応答を誤った応答にすり替えることが可能である。これによってデータの漏洩が起こる可能性がある。
さらに、TCP/IPにおけるよく知られたセキュリティ上の諸問題を悪用した攻撃も想定しておくべきである。たとえば、IP始点アドレスを詐称することにより分散計算のメッセージ交換に悪影響を与えることが可能である。また、TCPコネクションの乗っ取り攻撃によって認証後のコネクションを乗っ取られ、計算機の制御を奪われる可能性もある。
これらの諸問題はGridセキュリティアーキテクチャの構築とは別に解決すべきだと考えられるが、これらの諸問題を抱えたままGrid技術を実用化することは非現実的である。4.Gridにおけるセキュリティ研究の方向性
Gridを実証計算機科学における技術革新の集大成であるととらえれば、Gridにおけるセキュリティ研究のあり方は明確であると考えられる。つまり、近年のインターネット・セキュリティ関連の技術革新を積極的に取り入れ、より安全なGridセキュリティアーキテクチャを構築するのがとるべき方向であろう。
まず、ネットワーク層セキュリティの標準であるIPsec,およびIPsecのための鍵交換プロトコルである IKE を考慮してセキュリティアーキテクチャを設計すべきである。IPsecによって、悪意あるノードからのがい乱トラフィックの挿入を防止することができ、これによってコネクションの乗っ取りや始点アドレスの詐称といった問題を解決することができる。また、DNS応答の偽造とすり替えについてはDNSのセキュリティ拡張であるDNSSECを早期に運用することによって解決すべきである。
また、デーモン等のソフトウェアのバグにより管理者権限が奪取されるという問題に対しては、より安全なオペレーティングシステムを採用することによって回避、もしくは脅威を軽減することができる。そのような安全なオペレーティングシステムとしては、たとえばImmunixを挙げることができる。Immunixでは、Stack protectionという独自の方式によってスタック上での意図しないコードの実行を防ぐことができ、これによってソフトウェアのバグを悪用した管理者権限の奪取をかなりの程度、防止することができる。
しかしながらStack protectionなどの対策方式は特定の状況におけるプログラムの誤動作を防ぐことができるだけであり、完全な対策方式は現在のところ実現不可能だと考えられている。より本質的には、Gridを構成するソフトウェアのコードを一行ずつ検査し、セキュリティホールの有無を人手によって確認するという膨大な作業が必要となる。