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

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. 米軍のSNSに対する膨大なスパイアーカイブ、AWS で数十テラ閲覧可(The Register)

    米軍のSNSに対する膨大なスパイアーカイブ、AWS で数十テラ閲覧可(The Register)

  4. 捜査中だった米大統領選に使用されたサーバのデータが消失(The Register)

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

  6. インドのレジストリで情報漏えい、インドのネットを壊滅させるデータのビットコイン価格とは(The Register)

  7. WPA2の新たな脆弱性への攻撃KRACK、暗号化技術の根底にある欠陥(The Register)

  8. Anonymousが幼児虐待の秘密の拠点を閉鎖~Tor小児愛者を攻撃し氏名を暴露(The Register)

  9. スバルのキー・フォブに脆弱性あり、オランダ人技術者語る(The Register)

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

全カテゴリランキング

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

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

×