受影響的軟件:
Microsoft SQL Server 7.0
Microsoft Data Engine (MSDE) 1.0
Microsoft SQL Server 2000
Microsoft Desktop Engine (MSDE) 2000
版本:如上所列
這是什麼? 微軟安全快速反應中心已經發布的微軟安全公告 MS02-056,內容關於SQL Server的薄弱環節. 建議客戶仔細閱讀我們的公告。如果可以運行的話,對運行環境進行測試、並應用這個補丁。
薄弱環節: 本公告共涉及四個薄弱環節,其中最嚴重的可能使攻擊者有機會控制受影響的服務器。
技術細節: 本公告所提供的補丁包含了以前所有針對SQL Server 7.0, SQL Server 2000, Microsoft Data Engine (MSDE) 1.0 以及Microsoft Desktop Engine (MSDE) 2000的補丁。除此之外,該補丁還解決了最新發現的四個薄弱環節:
第一個薄弱環節與用戶驗證有關。由於在SQL Server 2000以及 MSDE 2000的用戶認證代碼中存在緩沖區溢出的問題,因而攻擊者可以通過發送一個特殊的登錄請求造成服務器停機或獲得在服務器上覆蓋內存的能力,從而進一步導致攻擊者可能在服務器上運行自己的代碼。利用該薄弱環節時,攻擊者無需通過身份檢驗,也無須向服務器直接發送命令。
第二個因緩沖區溢出而導致的薄弱環節出現在SQL Server 7.0和SQL Server 2000的一個Database Console Commands (DBCCs) 中。在最壞情況下,該薄弱環節使攻擊者能夠在SQL Server服務器進程中運行自己的代碼,進而能夠控制受到攻擊的服務器上的所有數據庫。
第三個薄弱環節與SQL Server 7.0 及SQL Server 2000中的scheduled jobs有關。SQL Server允許未授權用戶創建scheduled jobs並交由SQL Server Agent執行。根據SQL Server的設計,SQL Server Agent在執行時使用的是發出請求的用戶的身份,但當SQL Server Agent所執行的一個任務是創建一個文件時,它將使用自己的身份而非任務的所有者的身份。因此,一個未授權用戶能夠利用這個薄弱環節來覆蓋系統文件致使是系統崩潰,或者在其scheduled job中創建一個包含一系列系統指令的文件,並將其放在另一個用戶的Startup目錄中(這樣,當另一個用戶登錄時,這些指令就會被運行而造成破壞)。
本公告所提供的補丁還能夠防止SQL Server中的非管理員用戶在非SQL OLEDB的數據源上隨意運行查詢。雖然用戶的這種操作目前並未導致薄弱環節產生,但是更新後的系統能夠更有效地防止服務器中有問題的數據驅動程序被濫用。
如何防止: SQL Server 2000用戶認證程序中的薄弱環節:
該薄弱環節只和SQL Server 2000和MSDE 2000有關。SQL Server 7.0和MSDE 1.0不會受到影響。對於處在Internet環境中的服務器來說,如果防火牆關閉了1433端口(即SQL Server的端口),該薄弱環節就不會受到來自Internet的攻擊。該薄弱環節使得攻擊者有機會獲得SQL Server服務進程所用賬號的權限,但是默認情況下,該服務進程以域用戶的身份運行(而不是系統管理員身份,因而可以防止進一步的損失)。
Database Console Commands中的薄弱環節:
與上一個薄弱環節類似,該薄弱環節使得攻擊者有機會獲得SQL Server服務進程所用賬號的權限,但是默認情況下,該服務進程以域用戶的身份運行(而不是系統管理員身份,因而可以防止進一步的損失)。對於這個薄弱環節來說,攻擊者必須先通過SQL Server的身份驗證或者獲得直接在服務器上執行查詢的權限,才有可能實施對該薄弱環節的攻擊。
對於這個薄弱環節來說,攻擊者必須先通過SQL Server的身份驗證才有可能實施進一步的操作。