クラウドや仮想化のような新しい技術が盛り上がっています。それらの新技術に、セキュリティは追いつけているのでしょうか(編集部)
「クラウド」は大ブームの様相を呈しています。クラウドの定義そのものもあいまいなので、猫もしゃくしもクラウドと名乗り始めました。ついこの前、ASPをSaaSと呼び変えていましたが、それが今度はクラウドと呼ばれています。日本人は言葉の定義がないと落ち着かないのでしょう(ここでは何がクラウドであるのかについては触れません)。
クラウドと同じくもてはやされているのが「仮想化技術」です。いまではデスクトップPCの仮想化だけでなく、ハイパーバイザと呼ばれる、これまでの基本OSを必要としない制御プログラムまで実用化され始めました。
仮想化というのはいまに始まったものではなく、物理的に不連続なメモリや、記憶装置の仮想化、Javaのようなアプリケーションの仮想化など、すでに私たちは仮想化技術に深くかかわっています。
これまでの個々の仮想化技術においても、セキュリティは大きな課題でした。Javaなどではサンドボックスという考え方に基づいて動作するアプリケーションが、ほかのアプリケーションやOSに「悪さ」をしないように改良を重ねられてきました。
一方で、新技術とセキュリティはいつもパフォーマンスとの両立が大きな課題です。一般的にセキュリティ技術は「後付け」である場合が多く、利便性を高めるための新技術の足を引っ張る存在でもあります。
現在のところ、クラウドに欠かせないといわれている仮想化技術において、セキュリティ技術に関してはいまだ実装検討段階といっても過言ではありません。一般的に紹介されている、ハイパーバイザ型仮想化技術での“セキュリティ”は以下のようなものです。
つまり仮想化技術でのセキュリティとは、アクセス制御によって、ハードウェアが個別に存在しているOSと同じようなセキュリティレベルが保たれる、ということを指しています。もちろん、ホストOSが侵入される仮想化環境なんて考えたくもないですし、お隣さんからベランダ越しに窓から侵入されるようなゲストOS間の脆弱性もお断りです。
これらのセキュリティ対策は十分に行われているとベンダは主張していますが、これまでの新技術と脆弱性の関係を振り返ると、仮想化技術に特化した何らかの脆弱性が発見されても不思議ではありません。
仮想化環境で最も厄介な問題の1つは、「ゲストOS間の通信の監視」です。複数台のコンピュータが物理的に1台のマシンに格納されれば、CPUや記憶装置などのリソースが共有できて、エコにつながる――それに間違いはないのですが、そのときにセキュリティ機器を仮想化することが置き去りにされているのです。
物理的に独立している個々のサーバに対しては、以下のようなセキュリティ機器が一般的に使われています。
ところが、これらの機器はまだほとんど仮想化されておらず、いずれも歴史的に「アプライアンス」への道を突き進んできました。専用のハードウェアにすることによるコストダウンや性能向上をしてきたのです。
しかし、これらのアプライアンスでさえ、ギガビットを超える高速ネットワークでは「パケット脱落」が起こることは珍しくないのが現状です。スペック上高速インターフェイスが付いていても、現実的にはギガビットを超えるネットワークで安心して使える機器はほとんどありません。
これらのセキュリティ機器の仮想化環境への組み込みは以下の2通りが考えられます。
そもそもの仮想化の考え方からすれば前者の方法で「1台に集約」することが最も効率的、と思われるかもしれませんが、残念ながら現状ではそれは実現できません。高速ネットワークで動作させるのがやっとという現状なのに、物理サーバ内部に格納されている仮想サーバそれぞれについてのルールやシグネチャを、1台の機器でカバーすることは非常に困難で、現実的ではありません。
アプリケーション層レベルのパケットを監視する場合、個別のサーバに対する通信の内容が丸見えとなってしまい、それを1つの業者がすべて取り扱うという体制面での問題もあります。それぞれの物理的なマシンに格納されている仮想サーバをすべて1つの会社が利用するのであればいいですが、クラウドになればどんな会社と一緒になるかも分かりません。これらを1つのセキュリティ企業が監視を行うことは実現困難でしょう。
つまり、物理的な仮想マシン内部にある個々のゲストサーバに、セキュリティ機器を仮想的に配置運用しなければならない、というのが現実解であるはずなのですが、残念ながら現在の物理的な機器と同程度のセキュリティは得られていません。
Copyright © ITmedia, Inc. All Rights Reserved.