Microsoft SQL Server:多数の拡張ストアド・プロシージャでのバッファ・オーバーフロー | ScanNetSecurity[国内最大級のサイバーセキュリティ専門ポータルサイト]
2017.10.17(火)

Microsoft SQL Server:多数の拡張ストアド・プロシージャでのバッファ・オーバーフロー

国際 海外情報

[翻訳:関谷 麻美]
2002年3月16日

◆概要:
 Microsoft SQL Server は、データベースの範囲外の DLL にある機能を呼び出す能力を提供する。拡張ストアド・プロシージャと呼ばれるそれらの機能は、大いにMicrosoft SQL Server の機能を拡張する。それらの機能はオペレーティング・システム(OS)もしくはネットワークにアクセスする際に使用される。
そして数百本が Microsoft SQL Server に同梱されており、管理者はデータベース用にカスタマイズした拡張ストアド・プロシージャを付け加えることができる。
 Microsoft SQL Server 7 および 2000 にある多数の拡張ストアド・プロシージャは、バッファ・オーバーフローを含む。それらのバッファ・オーバーフローは、いくつかのシナリオを引き起こす。
1- データベース・サーバのクラッシュ
2- スタックに割り当てられたメモリが上書きされる(例外が発生する関数呼び出し戻り番地を含む)。

 それらのバッファ・オーバーフローは、長い文字列のデータをパラメータとして拡張ストアド・プロシージャに渡すと発生する。それらのバッファ・オーバーフローの大部分は、大容量の Unicode バッファを渡したことに起因する。
それらのバッファ・オーバーフローはUnicode 文字列に基づく。しかし、それらを利用することは、"Venetian" 攻略手段のような方法と仮定すると特別に難しいものではない。"Venetian" 攻略手段は、Unicode バッファを使用して任意のシェルコードに書き込むことを可能にする。

◆詳細:
脆弱なシステム:
Microsoft SQL Server 7
Microsoft SQL Server 2000
下記の拡張ストアド・プロシージャは脆弱だ。

xp_controlqueueservice
xp_createprivatequeue
xp_createqueue
xp_decodequeuecmd
xp_deleteprivatequeue
xp_deletequeue
xp_displayqueuemesgs
xp_dsninfo
xp_mergelineages
xp_oledbinfo
xp_proxiedmetadata
xp_readpkfromqueue
xp_readpkfromvarbin
xp_repl_encrypt
xp_resetqueue
xp_sqlinventory
xp_unpackcab

 Cesar Cerrudo (sqlsec@yahoo.com)の発見に基づき、上記に列挙された拡張ストアド・プロシージャは、任意のシェルコードをスタックに挿入することを可能にするバッファ・オーバーフローを含む。

 多数の拡張ストアド・プロシージャはデフォルトで、パブリックグループ権限に認定される。パブリックグループ権限となるそれらのグループは、高い権限を持たないユーザも OS およびデータベースを完全に制御するのを可能にする。デフォルトでパブリックグループ権限にされていない拡張ストアド・プロシージャの場合でも、いくつかの懸念が依然として残る。

1)あるインスタンス用のDBA は そのサーバ上のプログラム、他のインスタンス、そして OS の完全な制御権を所得できる。
2)DBA が高い権限を持たないユーザに対し、それらの拡張ストアド・プロシージャの一つを実行することを許可した場合、そのユーザはシステムの完全な制御権を取得できる。

 渡されるデータタイプやサイズに関して拡張ストアド・プロシージャで仮定しているために、この問題が発生する。拡張ストアド・プロシージャは、他の関数のようにパラメータを直接受け取らない。代わりに、拡張ストアド・プロシージャは、API 関数のセットを用いて渡されるパラメータを受け取る。その中で最も重要なのは、svr_paraminfo だ。下記は、この関数の定義だ。

int srv_paraminfo (
SRV_PROC * srvproc,
int n,
BYTE * pbType,
ULONG * pcbMaxLen,
ULONG * pcbActualLen,
BYTE * pbData,
BOOL * pfNull );

 ストアド・プロシージャはチェックして、渡される各パラメータのデータタイプおよび長さを求める。varchar は 8000 文字に制限され、nvarchar は 4000 文字に制限される。しかし、最大長 2^30 - 1 (1,073,741,823) 文字をもつ ntext データタイプが nvarchar を期待するパラメータに渡され、そして拡張ストアド・プロシージャがそのパラメータをより小さい nvarchar 用に生成されたバッファにコピーする場合、スタックは上書きされる。

 SHATTER チームにより実行された内部バッファ・オーバーフローに関するさらなる調査は、下記の URL で入手可能だ。
http://www.appsecinc.com/resources/alerts/mssql/02-0000.html

◆追加情報:
 Cesar Cerrudo がそれらの脆弱性を発見した。

[情報提供:SecuriTeam]
http://www.securiteam.com/

《ScanNetSecurity》

Scan PREMIUM 会員限定記事

もっと見る

Scan PREMIUM 会員限定記事特集をもっと見る

Scan BASIC 会員限定記事

もっと見る

Scan BASIC 会員限定記事特集をもっと見る

[Web小説] サイバー探偵 工藤伸治の事件簿サーガ (シーズン 1~6 第1話)

もっと見る

[Web小説] サイバー探偵 工藤伸治の事件簿サーガ (シーズン 1~6 第1話)特集をもっと見る

カテゴリ別新着記事

国際 カテゴリの人気記事 MONTHLY ランキング

  1. 搾取される底辺サイバー犯罪者、無料配付トロイにはバックドア(The Register)

    搾取される底辺サイバー犯罪者、無料配付トロイにはバックドア(The Register)

  2. セキュリティ人材の慢性不足、海外の取り組みは(The Register)

    セキュリティ人材の慢性不足、海外の取り組みは(The Register)

  3. フィッシング詐欺支援サービスの価格表(The Register)

    フィッシング詐欺支援サービスの価格表(The Register)

  4. SMSによる二要素認証が招くSOS(The Register)

  5. 「Tor 禁止令」を解く Facebook、暗号化の onion アクセスポイントを宣伝~これからは暗号化通信も完全に OK(The Register)

  6. iCloudからの女優のプライベート画像流出事件、容疑者がフィッシングの罪を大筋で認める

  7. Mac OS X のシングルユーザモードの root アクセス(2)

  8. Cisco のセキュリティビジネスに市場が多大な関心を寄せる理由(The Register)

  9. AWS 設定ミスでウォールストリートジャーナル購読者情報他 220 万件流出(The Register)

  10. 勤務先の内部情報をダークWebに売る社員、闇のインサイダー取引サービス成長中(The Register)

全カテゴリランキング

★★Scan PREMIUM 会員限定コンテンツにフルアクセスが可能となります★★
<b>★★Scan PREMIUM 会員限定コンテンツにフルアクセスが可能となります★★</b>

経営課題としてサイバーセキュリティに取り組む情報システム部門や、研究・開発・経営企画に携わる方へ向けた、創刊19年のセキュリティ情報サービス Scan PREMIUM を、貴社の事業リスク低減のためにご活用ください。

×