EAPを使用することにより、LAN環境においても不正アクセスを排除できるようにはなった。一方で、ノートPCを頻繁に持ち歩く人間が多いため、いわゆる持ち込みPCにおける問題が数多く報告されるようになってきた。
ノートPCはさまざまな環境で使用される。出先でインターネットに接続する場合にはやはりダイヤルアップ接続が主流になると思われる。無線LAN環境も徐々にではあるが、普及しつつある。一昔前であれば、こうした接続形態はそれほど危険と見なされなかった。というのは、固定IPではなく、その都度変わるIPを使用するという点である。
だが、現代においてはその常識は通用しない。最近の攻撃手法? を見ていると手当たり次第にpingを送り付け、応答があるとOS(もしくはアプリケーション)の種別を調べ、それに応じた対処を行うといった手順を自動化しているように見受けられる。
特定の個人を狙う目的に対処するのであれば動的に変化するIPアドレスは有効な対応策になり得るのかもしれないが、無差別な攻撃を仕掛けてくるようなアプローチに関しては当然無力である。
そういう意味では、外部に直接さらされる可能性があるノートPCが一番危険な要素となり得る。出先や自宅でうっかりインターネットに接続した際にウイルスやワームに乗っ取られる危険性は十分にある。
こうしたPCを気付かずに社内の環境に接続してしまった場合、ユーザー認証は正規のユーザーなので、当然通過する。その直後に社内ネットワークに大量のワームやウイルスがばらまかれることになる。
当たり前のことだが、こうした脅威に対してユーザー認証のみを行うEAPだけでは対処できない。ユーザーが正当かどうかと、PCがクリーンかそうでないかは別の問題だからである。
実世界でも入国管理と検疫は別になっているのはご存じのとおりである。そこで出てくるのが、検疫ネットワークという概念である。実現方法はいくつかあるが、今回はEAP認証と併用する方法についてお話ししてみようと思う。
まず、検疫を動作させるためにはその基準を設定する必要がある。アンチウイルスの定義ファイルの日付を更新日から一定以内に制限したり、サービスパックの有無などを確認したりするのが一般的と思われる。このほか、特定のサービスの稼働を確認したりすることも必要になると思われる(いくらウイルス対策ソフトウェアの定義ファイルが最新でもウイルス対策ソフトウェアそのものが稼働していないと意味がない)。
PCには(一般に)エージェントと呼ばれるソフトウェアを前もってインストールしておく必要がある。このエージェントがPCの内部を確認して報告する役割を果たす。検査の対象となるものはファイルのサイズ、作成日付、ハッシュ値やレジストリの記述内容などがある。こうした情報を要約したものをHI(Host Integrity)と呼ぶことが多い。
検疫ネットワークを実現する方法は1種類ではないが、ここではEAP認証と連動するタイプのものを例に取って概説する。設定にもよるが、サプリカントでのEAP認証がパスすると認証フェーズはHI検査に移行する(図4参照)。
この時点ではまだEAPの認証フェーズの最中なので、HIの情報はEAPに乗せられて運ばれる。そのため、認証用のRADIUSサーバの手前にRADIUSプロキシを設置し、HIに関する情報をバイパスする。
HI検査に合格すれば社内のVLANにアクセスできるようにVLANIDが設定される。ここで合格しない場合には、隔離VLANにアクセスできるようにVLANIDが設定される。隔離VLANに誘導された場合には、しかるべき措置(サービスパックの適用、ウイルス対策ソフトウェアの定義ファイルの更新など)を済ませる。
この後、再度HI検査を行い、合格すれば社内VLANにアクセスできるようになる。
検証結果に応じたVLANアサインポリシーの例を図5に示す。当然だが、HI検査が一度パスしたからといって、永遠に許可されているわけではない。定期的に検査を行い、条件に合わなければ、対策を行うべく、隔離VLANへ移行させられる。
EAP認証 | HI検証 | VLANアサイン |
---|---|---|
Pass | Pass | 社内VLAN |
Pass | Fail | 隔離VLAN |
Fail | -- | ポート閉じる |
図5 検証結果ごとのVLANアサイン(例) |
また、EAPに合致しない場合には部外者と判断し、ゲストVLANに誘導する場合もある。ゲストVLANからはインターネットにアクセスさせる場合もあるようだが、ウイルスに感染している(かもしれない)PCをこのような場所に誘導するというのは賢明な措置ではないと思われる。グローバルIPアドレスは自社のものになるため、被害が及んだ場合には責任問題が生じる可能性がある。かといって、何もできないという状況が許容できるものかどうか。この辺りは企業のセキュリティポリシーと密接に絡んでくる部分なのでここでは触れない。
こうして、EAPはようやく市民権を得つつあるが、残念ながら広く一般に普及しているとはいい難い。また、検疫ネットワークに関してはまだ歴史が浅いこともあり、いくつか改善の余地があるようにも見受けられる。幸いにして、こうした点についてはベンダが迅速に対処しているので、遅かれ早かれこなれてくるものとは思う。
一方で、セキュリティ対策自体はもはや先延ばしにできない状況となっており、こうした対策を複数組み合わせながら運用していくしかない状況であるともいえる。
実際にRADIUSサーバはどのようにしてユーザーデータベースを管理しているのか。一言でいえば、実装依存ではある。一般には、おおむね下記の方式をサポートしている。テキスト、LDAP、UNIXデータベース、Windowsドメイン、などがある。
よくある質問の中にLDAPとRADIUSのすみ分けにまつわるものがある。LDAPを認証データベースとして使用するケースはそう珍しいものではないため、このような質問が出てくるものと思われる。
しかし、LDAPの場合、本来の用途はディレクトリであるため、RADIUS的な使い方をするのは若干想定外の使用方法といえなくもない。また、アカウンティング情報も取得できない。こういう場合にはRADIUSのユーザーデータベースとしてLDAPを使用するアプローチが適切と思われる。例えば、Windowsサーバに実装されているIAS(RADIUS)はユーザーデータベースとしてActiveDirectoryを使用する。なお、ActiveDirectoryの実体はMicrosoftによるLDAPの拡張実装であり、そういう意味ではRADIUSをフロントエンドにしてLDAPを使用している身近な例ともいえる。
レポーティングツールを使用してレポートを作成した例を紹介したが、実際の運用ではもっと細かい分析が必要になるケースがある。例えば、不正アクセスが行われた際に日時や疑わしいユーザーIDで絞り込むなどである。こういった場合には静的なレポーティングツールよりもRDBによる処理が向いている。
さらに、実装依存ではあるが、FreeRADIUSやOpenRADIUSではMySQLなどへのアカウンティング情報のデータエクスポートの手段が用意されている
今回の概説はOpenRADIUSというオープンソースのRADIUSを使用した。Linux/BSDではすんなり構築できると思う。
以上、簡単ではあるがRADIUSの概要について触れてみた。RASの認証手段として登場したRADIUSではあるが、EAPを取り込むなどして発展を続けている。なお、本文中でも触れたが、セキュリティの確保は認証だけで成り立っているわけではない。だが、認証を含むAAAの概念を理解していることはセキュリティを理解するうえで必須と思われる。
セキュリティを語るうえでテクノロジは必須ではあるが、それがすべてではない。重要なのは運用を含むプロセスである。その点を考えながらシステム構築を進めていただければ幸いである。
ご愛読ありがとうございました
Copyright © ITmedia, Inc. All Rights Reserved.