米CERT/CC は米国時間3月4日,複数ベンダーのRADIUSサーバーおよびクライアント・ソフトに,2種類のセキュリティ・ホールがあることを明らかにした。特定データを送信されると,RADIUSサーバーを停止させられる恐れがある。最悪の場合,RADIUSサーバー上で任意のプログラムを実行される可能性もある。対策は,パッチの適用やバージョンアップである。
RADIUSは,リモート・アクセス時のユーザー認証を行うプロトコルである。ユーザーからRAS(Remote Access Server)に送られたユーザーIDとパスワードは,あらかじめ登録されたユーザー情報と照らし合わせて,RADIUSサーバーで認証される。認証後は,ユーザーが使用するIPアドレスなどをRASへ通知する。RASが複数あっても,RADIUSサーバーでユーザー情報を一元管理できるので便利である。なお,RADIUSサーバーを使用する場合には,RASはRADIUSクライアント機能を備えている必要がある。
今回明らかにされたセキュリティ・ホールは2種類。一つは,バッファ・オーバーフローに関するセキュリティ・ホールである。RAS(RADIUSクライアント)とRADIUSサーバー間では,パスワードなどが平文で流れないように,ハッシュ関数(MD5)を使用してメッセージ・ダイジェストを作成し,認証のためのやり取りをする。いくつかのベンダーのソフトウエアには,このメッセージ・ダイジェストを計算する際に,入力サイズをチェックしないバッファが存在する。そのため,非常に長いデータを送信すれば,バッファ・オーバーフローが発生して,RADIUSサービスが停止する(DoS状態に陥る)。
RADIUSサーバーあるいはクライアントが動作するマシン上で,任意のコードを実行される恐れもある。メッセージ・ダイジェストを計算する際には,送られた情報とShared Secret(RADIUSサーバーとRADIUSクライアントが共有する秘密情報)を組み合わせる。そのため,Shared Secretを事前に知っている攻撃者ならば,メッセージ・ダイジェストの値を知ることができ,バッファから“あふれる”データを操作できる。
CERT/CCの情報によれば,以下の製品がこのセキュリティ・ホールの影響を受ける(3月5日現在)。
- Ascend RADIUS バージョン 1.16 以前
- Cistron RADIUS バージョン 1.6.4 以前
- FreeRADIUS バージョン 0.3 以前
- GnuRADIUS バージョン 0.95 以前
- ICRADIUS バージョン 0.18.1 以前
- Livingston RADIUS バージョン 2.1 以前
- RADIUS(「Lucent RADIUS」として知られる)バージョン 2.1 以前
- RADIUSClient バージョン 0.3.1 以前
- YARD RADIUS 1.0.19 以前
- XTRADIUS 1.1-pre1 以前
もう一つは,RADIUSプロトコルでやり取りされる,ある特定の属性値の取り扱いが原因のセキュリティ・ホールである。RADIUSには,「Vendor-Specific」と「User-Specific」という属性値(attribute)が用意されている。これらの属性のあるフィールドに,ある値よりも小さい値が指定された場合,RADIUSサービスが停止してしまう。
CERT/CCの情報によれば,このセキュリティ・ホールの影響を受ける製品は以下の通り(3月5日現在)。
- Cistron RADIUS バージョン 1.6.5 以前
- FreeRADIUS バージョン 0.3 以前
- ICRADIUS バージョン 0.18.1 以前
- Livingston RADIUS バージョン 2.1 以前
- YARD RADIUS 1.0.19 以前
- XTRADIUS 1.1-pre1 以前
対策は,各ベンダーが提供するパッチの適用や,影響を受けないバージョンへのアップグレード。ベンダーの対応状況については,CERT/CCが公開している([参考資料1],[参考資料2])
特定のIPアドレス以外からの,RADIUSサーバーへのアクセスを制限することも効果がある。ただし,許可しているアドレスからの攻撃は防げないことに注意する必要がある。
◎参考資料
◆CERT Advisory CA-2002-06「Vulnerabilities in Various Implementations of the RADIUS Protocol」
◆Vulnerability Note VU#589523「Multiple implementations of the RADIUS protocol contain a digest calculation buffer overflow」
◆Vulnerability Note VU#936683「Multiple implementations of the RADIUS protocol do not adequately validate the vendor-length of the vendor- specific attributes」