VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入 

[推薦]SQL Server 2000的安全配置

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> SQL 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
Ruey



註冊時間: 2003-03-12
文章: 1698
來自: tunglo

第 1 樓

發表發表於: 星期六 二月 14, 2004 1:02 pm    文章主題: [推薦]SQL Server 2000的安全配置 引言回覆

資料庫是電子商務、金融以及ERP系統的基礎,通常都保存著重要的商業夥伴和客戶資訊。大多數企業、組織以及政府部門的電子資料都保存在各種資料庫中,他們用這些資料庫保存一些個人資料,比如員工薪水、個人資料等等。資料庫伺服器還掌握著敏感的金融資料。包括交易記錄、商業事務和帳號數據,戰略上的或者專業的資訊,比如專利和工程資料,甚至市場計畫等等應該保護起來防止競爭者和其他非法者獲取的資料。資料完整性和合法存取會受到很多方面的安全威脅,包括密碼策略、系統後門、資料庫操作以及本身的安全方案。但是資料庫通常沒有象作業系統和網路這樣在安全性上受到重視。
微軟的SQL Server是一種廣泛使用的資料庫,很多電子商務網站、企業內部資訊化平臺等都是基於SQL Server上的,但是資料庫的安全性還沒有被人們更系統的安全性等同起來,多數管理員認為只要把網路和作業系統的安全搞好了,那麼所有的應用程式也就安全了。大多數系統管理員對資料庫不熟悉而資料庫管理員有對安全問題關心太少,而且一些安全公司也忽略資料庫安全,這就使資料庫的安全問題更加嚴峻了。資料庫系統中存在的安全漏洞和不當的配置通常會造成嚴重的後果,而且都難以發現。資料庫應用程式通常同作業系統的最高管理員密切相關。廣泛SQL Server資料庫又是屬於“埠”型的資料庫,這就表示任何人都能夠用分析工具試圖連接到資料庫上,從而繞過作業系統的安全機制,進而闖入系統、破壞和竊取資料資料,甚至破壞整個系統。
這堙A我們主要談論有關SQL Server2000資料庫的安全配置以及一些相關的安全和使用上的問題。
在進行SQL Server 2000資料庫的安全配置之前,首先你必須對作業系統進行安全配置,保證你的作業系統處於安全狀態。然後對你要使用的操作資料庫軟體(程式)進行必要的安全審核,比如對ASP、PHP等腳本,這是很多基於資料庫的WEB應用常出現的安全隱患,對於腳本主要是一個過濾問題,需要過濾一些類似 , ‘ ; @ / 等字元,防止破壞者構造惡意的SQL語句。接著,安裝SQL Server2000後請打上補丁sp1以及最新的sp2。
下載地址是: http://www.microsoft.com/sql/downlo...ds/2000/sp2.asp
在做完上面三步基礎之後,我們再來討論SQL Server的安全配置。
1、使用安全的密碼策略
我們把密碼策略擺在所有安全配置的第一步,請注意,很多資料庫帳號的密碼過於簡單,這跟系統密碼過於簡單是一個道理。對於sa更應該注意,同時不要讓sa帳號的密碼寫于應用程式或者腳本中。健壯的密碼是安全的第一步!
SQL Server2000安裝的時候,如果是使用混合模式,那麼就需要輸入sa的密碼,除非你確認必須使用空密碼。這比以前的版本有所改進。
同時養成定期修改密碼的好習慣。資料庫管理員應該定期查看是否有不符合密碼要求的帳號。比如使用下面的SQL語句:
Use master
Select name,Password from syslogins where password is null
2、使用安全的帳號策略。
由於SQL Server不能更改sa用戶名稱,也不能刪除這個超級用戶,所以,我們必須對這個帳號進行最強的保護,當然,包括使用一個非常強壯的密碼,最好不要在資料庫應用中使用sa帳號,只有當沒有其他方法登錄到 SQL Server 實例(例如,當其他系統管理員不可用或忘記了密碼)時才使用 sa。建議資料庫管理員新建立一個擁有與sa一樣許可權的超級用戶來管理資料庫。安全的帳號策略還包括不要讓管理員許可權的帳號氾濫。
SQL Server的認證模式有Windows身份認證和混合身份認證兩種。如果資料庫管理員不希望作業系統管理員來通過作業系統登陸來接觸資料庫的話,可以在帳號管理中把系統帳號“BUILTINAdministrators”刪除。不過這樣做的結果是一旦sa帳號忘記密碼的話,就沒有辦法來恢復了。
很多主機使用資料庫應用只是用來做查詢、修改等簡單功能的,請根據實際需要分配帳號,並賦予僅僅能夠滿足應用要求和需要的許可權。比如,只要查詢功能的,那麼就使用一個簡單的public帳號能夠select就可以了。
3、加強資料庫日誌的記錄。
審核資料庫登錄事件的“失敗和成功”,在實例屬性中選擇“安全性”,將其中的審核級別選定為全部,這樣在資料庫系統和作業系統日誌堶情A就詳細記錄了所有帳號的登錄事件。如圖:
請定期查看SQL Server日誌檢查是否有可疑的登錄事件發生,或者使用DOS命令。
findstr /C:"登錄" d:Microsoft SQL ServerMSSQLLOG*.*
4、管理擴展存儲過程
對存儲過程進行大手術,並且對帳號調用擴展存儲過程的許可權要慎重。其實在多數應用中根本用不到多少系統的存儲過程,而SQL Server的這麼多系統存儲過程只是用來適應廣大用戶需求的,所以請刪除不必要的存儲過程,因為有些系統的存儲過程能很容易地被人利用起來提升許可權或進行破壞。
如果你不需要擴展存儲過程xp_cmdshell請把它去掉。使用這個SQL語句:
use master
sp_dropextendedproc 'xp_cmdshell'
xp_cmdshell是進入作業系統的最佳捷徑,是資料庫留給作業系統的一個大後門。如果你需要這個存儲過程,請用這個語句也可以恢復過來。
sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
如果你不需要請丟棄OLE自動存儲過程(會造成管理器中的某些特徵不能使用),這些過程包括如下:
Sp_OACreate Sp_OADestroy Sp_OAGetErrorInfo Sp_OAGetProperty
Sp_OAMethod Sp_OASetProperty Sp_OAStop
去掉不需要的註冊表訪問的存儲過程,註冊表存儲過程甚至能夠讀出作業系統管理員的密碼來,如下:
Xp_regaddmultistring Xp_regdeletekey Xp_regdeletevalue Xp_regenumvalues
Xp_regread Xp_regremovemultistring Xp_regwrite
還有一些其他的擴展存儲過程,你也最好檢查檢查。
在處理存儲過程的時候,請確認一下,避免造成對資料庫或應用程式的傷害。
5、使用協定加密
SQL Server 2000使用的Tabular Data Stream協定來進行網路資料交換,如果不加密的話,所有的網路傳輸都是明文的,包括密碼、資料庫內容等等,這是一個很大的安全威脅。能被人在網路中截獲到他們需要的東西,包括資料庫帳號和密碼。所以,在條件容許情況下,最好使用SSL來加密協定,當然,你需要一個證書來支援。
6、不要讓人隨便探測到你的TCP/IP埠
默認情況下,SQL Server使用1433埠監聽,很多人都說SQL Server配置的時候要把這個埠改變,這樣別人就不能很容易地知道使用的什麼埠了。可惜,通過微軟未公開的1434埠的UDP探測可以很容易知道SQL Server使用的什麼TCP/IP埠了(請參考《深入探索SQL Server網路連接的安全問題》)。
不過微軟還是考慮到了這個問題,畢竟公開而且開放的埠會引起不必要的麻煩。在實例屬性中選擇TCP/IP協定的屬性。選擇隱藏 SQL Server 實例。如果隱藏了 SQL Server 實例,則將禁止對試圖枚舉網路上現有的 SQL Server 實例的用戶端所發出的廣播作出回應。這樣,別人就不能用1434來探測你的TCP/IP埠了(除非用Port Scan)。
7、修改TCP/IP使用的埠
請在上一步配置的基礎上,更改原默認的1433埠。在實例屬性中選擇網路配置中的TCP/IP協定的屬性,將TCP/IP使用的默認埠變為其他埠。如圖:
9、拒絕來自1434埠的探測
由於1434埠探測沒有限制,能夠被別人探測到一些資料庫資訊,而且還可能遭到DOS攻擊讓資料庫伺服器的CPU負荷增大,所以對Windows 2000作業系統來說,在IPSec過濾拒絕掉1434埠的UDP通訊,可以盡可能地隱藏你的SQL Server。
10、對網路連接進行IP限制
SQL Server 2000資料庫系統本身沒有提供網路連接的安全解決辦法,但是Windows 2000提供了這樣的安全機制。使用作業系統自己的IPSec可以實現IP資料包的安全性。請對IP連接進行限制,只保證自己的IP能夠訪問,也拒絕其他IP進行的埠連接,把來自網路上的安全威脅進行有效的控制。
關於IPSec的使用請參看: http://www.microsoft.com/china/tech...ty/ipsecloc.asp
上面主要介紹的一些SQL Server的安全配置,經過以上的配置,可以讓SQL Server本身具備足夠的安全防範能力。當然,更主要的還是要加強內部的安全控制和管理員的安全培訓,而且安全性問題是一個長期的解決過程,還需要以後進行更多的安全維護。
原作者:tonny
來 源:轉載

_________________
#############################
快樂媽咪系列幸福宅配,喝十全雞湯~原來幸福那麼簡單!!

學會VFP使用者社區的搜尋,Code才會更有趣~
#############################
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> SQL 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作