◆概要: マサチューセッツ工科大学(Massachusetts Institute of Technology)のKerberos 5 リリース1.2.xに含まれるFTPサーバーのフォーマットストリングの欠陥を利用して、攻撃者がリモートルートアクセスを実行できる可能性がある。 Kerberosはネットワーク認証プロトコルで、クライアント/サーバーアプリケーション用の強力な認証機能を提供するために設計されている。Kerberosは、強力な秘密鍵暗号を利用して、不安定なネットワーク接続におけるクライアントとサーバー間の相互確認を可能にする。クライアントとサーバーがKerberosを利用して相互確認を終了した後は、全ての通信を暗号化して、機密性とデータの完全性を保護することができる。詳しい情報については、 http://web.mit.edu/kerberos/www を参照。 setproctitle システムコールの入力フィルタの安全性が低いために、バグの悪用が可能になる。setproctitle システムコールは、プロセス識別子情報の表示に利用するものである。このコールは、一部のシステム上でsetproctitle (char *fmt,...); として定義されており、vsnprintf() 関数を呼び出す。そのため、フォーマットストリング攻撃の影響を受けやすくなる。 この種のFTP脆弱性は、特に目新しいものではない。2000年7月には、多数のFTPディストリビューションで、setproctitle システムコールに関連した同一のセキュリティの問題が発見されている。詳しい情報については、CERT勧告 http://www.cert.org/advisories/CA-2000-13.html を参照。2000年7月に発見された脆弱性については、Mitre社のCommon Vulnerabilities and Exposures(CVE:一般的な脆弱性と暴露性)データベースへの追加が検討されており、CAN-2000-0574の識別番号が付与されている。詳細については、http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2000-0574+ を参照。◆情報ソース:・iDEFENSE Labs, May 14, 2002・iDEFENSE Intelligence Operations, May 14, 2002・CERT ( http://www.cert.org/advisories/CA-2000-13.html ), July 07, 2000・ Massachusetts Institute of Technology ( http://web.mit.edu/kerberos/www/ ), May 14, 2002◆分析:(iDEFENSE 米国) 今回のケースでも、他のフォーマットストリングの脆弱性と同様に、攻撃者がメモリーのロケーションを操作し、FTPホスト上で任意コードをルート実行できる。攻撃者は、匿名アクセスが可能であるとの仮定をもとに匿名ユーザーとしてシステムにログインすると同時に、異常な電子メールアドレスを提供してこの問題を悪用する可能性がある。 iDEFENSEには、この脆弱性のために特別に作成された悪用コードが公開されているとの情報は入手していない。しかし、この種の問題は広く知れ渡っているため、被害を懸念する管理者は、リリースされ次第パッチを適用する必要がある。iDEFENSEでは、この脆弱性についてマサチューセッツ工科大学に問い合わせ済みであり、本レポート作成の時点では回答を待っている状態である。ベンダーによる正式なパッチまたは回答が公表され次第、アップデートがリリースされる見込みである。◆検知方法: setproctitleシステムコールをサポートするオペレーティングシステム上にインストールされた、Kerberos 5リリース1.2.xの全てのディストリビューションで脆弱性が確認されている。ただし、匿名FTPアクセスをサポートしていないKerberos 5 FTP、またはsetproctitle() コールをサポートしていないオペレーティングシステムは、この問題の影響を受けていない。◆暫定処置: ftpd.cソースコードの全てのsetproctitle(proctitle); をsetproctitle("%s",proctitle); に変更し再編成する。この変更を以下に示す。 ─ setproctitle(proctitle); + setproctitle("%s", proctitle); ftpd.c ── if (guest) { reply(230, "Guest login ok, access restrictions apply."); #ifdef SETPROCTITLE sprintf(proctitle, "%s: anonymous/%.*s", rhost_sane, sizeof(proctitle) - strlen(rhost_sane) - sizeof(": anonymous/"), passwd); setproctitle(proctitle); #endif /* SETPROCTITLE */ if (logging) syslog(LOG_INFO, "ANONYMOUS FTP LOGIN FROM %s, %s (%s)", rhost_addra, remotehost, passwd); } else { if (askpasswd) { askpasswd = 0; reply(230, "User %s logged in.", pw->pw_name); } #ifdef SETPROCTITLE sprintf(proctitle, "%s: %s", rhost_sane, pw->pw_name); setproctitle(proctitle); #endif /* SETPROCTITLE */ if (logging) syslog(LOG_INFO, "FTP LOGIN FROM %s, %s (%s)", rhost_addra, remotehost, pw->pw_name); }※この情報はアイ・ディフェンス・ジャパン ( http://www.idefense.co.jp/ )より提供いただいております。 アイディフェンス社の iAlert サービスについて http://shop.vagabond.co.jp/p-alt01.shtml 情報の内容は以下の時点におけるものです。 【16:35 GMT、05、15、2002】