Microsoft SQL Server:多数の拡張ストアド・プロシージャでのバッファ・オーバーフロー
[翻訳:関谷 麻美]
2002年3月16日
国際
134views
[翻訳:関谷 麻美] 2002年3月16日
◆概要: Microsoft SQL Server は、データベースの範囲外の DLL にある機能を呼び出す能力を提供する。拡張ストアド・プロシージャと呼ばれるそれらの機能は、大いにMicrosoft SQL Server の機能を拡張する。それらの機能はオペレーティング・システム(OS)もしくはネットワークにアクセスする際に使用される。 そして数百本が Microsoft SQL Server に同梱されており、管理者はデータベース用にカスタマイズした拡張ストアド・プロシージャを付け加えることができる。 Microsoft SQL Server 7 および 2000 にある多数の拡張ストアド・プロシージャは、バッファ・オーバーフローを含む。それらのバッファ・オーバーフローは、いくつかのシナリオを引き起こす。 1- データベース・サーバのクラッシュ 2- スタックに割り当てられたメモリが上書きされる(例外が発生する関数呼び出し戻り番地を含む)。
Cesar Cerrudo (sqlsec@yahoo.com)の発見に基づき、上記に列挙された拡張ストアド・プロシージャは、任意のシェルコードをスタックに挿入することを可能にするバッファ・オーバーフローを含む。
多数の拡張ストアド・プロシージャはデフォルトで、パブリックグループ権限に認定される。パブリックグループ権限となるそれらのグループは、高い権限を持たないユーザも OS およびデータベースを完全に制御するのを可能にする。デフォルトでパブリックグループ権限にされていない拡張ストアド・プロシージャの場合でも、いくつかの懸念が依然として残る。
1)あるインスタンス用のDBA は そのサーバ上のプログラム、他のインスタンス、そして OS の完全な制御権を所得できる。 2)DBA が高い権限を持たないユーザに対し、それらの拡張ストアド・プロシージャの一つを実行することを許可した場合、そのユーザはシステムの完全な制御権を取得できる。