米CERT/CC米Internet Security Systems(ISS)は米国時間12月12日,Solaris などに含まれる「login(/bin/login)」プログラムに,バッファ・オーバーフローを引き起こすセキュリティ・ホールがあること公表した。

 loginプログラムは,Telnet や rlogin などのサーバー・プログラム(telnetdやrlogind)が,ユーザーを認証する際に呼び出すプログラムである。そのため,攻撃対象のマシンにTelnetなどで接続し,ユーザー名とパスワードを要求された際に,バッファ・オーバーフローを発生させるような文字列を打ち込むことで,そのマシンのroot権限(管理者権限)を奪うことが可能となる*

* 正確には,loginプログラムを呼び出したプログラムの権限を奪うことが可能になる。telnetdやrlogindの場合には,root権限である。

 米CERT/CCによれば,セキュリティ・ホールが確認されているOSは以下の通り。

  • IBM AIX バージョン 4.3 および 5.1
  • SCO OpenServer 5.0.6 およびそれ以前のバージョン
  • SGI IRIX 3.x
  • Sun Solaris 8 およびそれ以前のバージョン

 現時点では,このセキュリティ・ホールをふさぐためのパッチはほとんど公開されていない。そのため,影響を回避するためには,loginプログラムを使用する,リモートからアクセス可能なサーバー・プログラム(サービス)を停止するか,アクセス制限を施す必要がある。

 具体的には,Telnetやrloginのサービスを停止する。代わりに,リモート・ログインのためには,SSH(Secure Shell)を使用する。SSHは独自のloginプログラムを使用するので,今回のセキュリティ・ホールの影響を受けない(ただし,OSに含まれるloginプログラムを使用するように設定することも可能なので,注意が必要)。

 外部からの攻撃を防ぐためには,ファイアウオールやルーターなどで,Telnet(TCP 23番)やrlogin(TCP 513番)が使用するポートをふさぐことも効果がある。ただし,内部からの攻撃は防げない。

 通常,セキュリティ・ホール情報は,ベンダーからパッチなどが公開されてから公表される。しかしながら,セキュリティ・ホールを検証する「Exploit」コードが既に出回っているために,公表に踏み切ったとしている。

 Exploitコードが悪用される可能性は十分にある。root権限が奪われる恐れがあり,非常に危険なセキュリティ・ホールである。パッチが公開されるまでは,Telnetなどを停止しなければならない。いくつかのベンダーは,現在パッチを開発中としているので,ベンダーやCERT/CCのサイトをチェックして,公開され次第,適用したい。

 そもそも,Telnetなどは,パスワードを含むすべてのデータを暗号化せずに通信するため,盗聴などの危険もありセキュアなサービスではない。外部からのTelnetアクセスは禁止するべきである。リモート・ログインをする必要がある場合には,SSH を使用したい。もちろん,SSH といえども万全ではないが,Telnetなどに比べれば,十分セキュアである。

◎参考資料
Buffer Overflow in /bin/login(米ISS)
CERT Advisory CA-2001-34 Buffer Overflow in System V Derived Login(米CERT/CC)
System V derived login contains a remotely exploitable buffer overflow(米CERT/CC)

(勝村 幸博=IT Pro編集)