作者 blog: http://zxsv.com/
拿到MS SQL 2005還沒有一天,總的來說,MS SQL 2005的安全性比SQL 2000要強上不少,不過默認設(shè)置還是有和原來一樣的漏洞,下面我們來修改一下默認設(shè)置。
1、安裝MSSQL時使用混合模式,當然SA密碼最好不能為空,在SQL2005中,可以對SA這個超級用戶名進行修改或刪除。 use master ALTER LOGIN [sa] WITH NAME=[zxs] /*修改SA帳號*/ sp_password '111111','123456','sa' /*修改SA密碼*/ 使用以上命令可修改SA帳號,也可進行圖形化的修改 使用安全的帳號策略。對SA或等同用戶進行最強的保護,當然,包括使用一個非常強壯的密碼,如下圖
這里可以看到SQL 2005比SQL 2000 增強的地方了。
2、SQL的認證有Windows身份認證和混合身份認證。在2005中,登陸SQL可以使用indows身份認證和混合身份認證方便,如果不希望系統(tǒng)管理員接觸數(shù)據(jù)庫的話,可以在安全性==登錄名是把系統(tǒng)帳號“BUILTIN\Administrators”刪除。當然,還有別的多余的帳號也可一同禁止,只需要在帳號==屬性==狀態(tài)中把是否允許連接到數(shù)據(jù)庫引擎改為拒絕,還有登錄改為禁用即可,不過這樣的壞處就是當你忘了SA的密碼時,我也沒辦法幫你啦。
也可用命令sp_change_users_login 'report' 搜索一下獨立的帳戶再刪除
3、管理擴展存儲過程 刪除不必要的存儲過程,因為有些存儲過程能很容易地被人利用起來提升權(quán)限或進行破壞。 如果你不需要擴展存儲過程xp_cmdshell請把它去掉。xp_cmdshell根本就是一個大后門。
如果不需要請丟棄OLE自動存儲過程(會造成管理器中的某些特征不能使用),這些過程包括如下: sp_OACreate sp_OADestroy sp_OAGetErrorInfo sp_OAGetProperty sp_OAMethod sp_OASetProperty sp_OAStop 去掉不需要的注冊表訪問的存儲過程,注冊表存儲過程甚至能夠讀出操作系統(tǒng)管理員的密碼來,如下: xp_regaddmultistring xp_regdeletekey xp_regdeletevalue xp_regenumvalues xp_regread xp_regremovemultistring xp_regwrite 還有一些其他的擴展存儲過程,你也最好檢查檢查。 在處理存儲過程的時候,請確認一下,避免造成對數(shù)據(jù)庫或應(yīng)用程序的傷害。運行以下SQL語句可刪除所有危險的SP。
DROP PROCEDURE sp_makewebtask exec master..sp_dropextendedproc xp_cmdshell /*命令行*/ exec master..sp_dropextendedproc xp_dirtree /*可以展開你需要了解的目錄,獲得所有目錄深度*/ exec master..sp_dropextendedproc xp_fileexist /*用來確定一個文件是否存在*/ exec master..sp_dropextendedproc xp_getnetname /*可以獲得服務(wù)器名稱*/ exec master..sp_dropextendedproc xp_terminate_process exec master..sp_dropextendedproc sp_oamethod exec master..sp_dropextendedproc sp_oacreate exec master..sp_dropextendedproc xp_regaddmultistring exec master..sp_dropextendedproc xp_regdeletekey exec master..sp_dropextendedproc xp_regdeletevalue exec master..sp_dropextendedproc xp_regenumkeys exec master..sp_dropextendedproc xp_regenumvalues exec master..sp_dropextendedproc sp_add_job exec master..sp_dropextendedproc sp_addtask exec master..sp_dropextendedproc xp_regread exec master..sp_dropextendedproc xp_regwrite exec master..sp_dropextendedproc xp_readwebtask exec master..sp_dropextendedproc xp_makewebtask exec master..sp_dropextendedproc xp_regremovemultistring exec master..sp_dropextendedproc sp_OACreate DROP PROCEDURE sp_addextendedproc
5、SQL Server 2005本身就具有加密功能,完全集成了一個密鑰管理架構(gòu)。不過,最好遠程網(wǎng)絡(luò)連接時使用SSL來加密協(xié)議,這就需要一個證書來支持。這里搜索一下就會有很多這方面的說明,就不多說了。
6、使用IPSec策略阻止所有地址訪問本機的TCP1433與UDP1434端口,也可對TCP1433端口進行修改,但是在SQL2005中,可以使用TCP動態(tài)端口,(在SQL Server Configuration Manager的SQL 2005網(wǎng)絡(luò)配置中)如下圖
這是SQL幫助中的說明 如果某個 SQL Server 實例已配置為偵聽動態(tài)端口,則在啟動時,該實例將檢查操作系統(tǒng)中的可用端口,并為該端口打開一個端點。傳入連接必須指定要連接的端口號。由于每次啟動 SQL Server 時端口號都可能會改變,因此 SQL Server 提供 SQL Server 瀏覽器服務(wù)器,來監(jiān)視端口并將傳入連接指向該實例的當前端口。 也可對每個IP進行偵聽
這是SQL幫助中的說明 指定 SQL Server 是否偵聽所有綁定到計算機網(wǎng)卡的 IP 地址。如果設(shè)置為“否”,則使用每個 IP 地址各自的屬性對話框?qū)Ω鱾 IP 地址進行配置。如果設(shè)置為“是”,則 IPAll 屬性框的設(shè)置將應(yīng)用于所有 IP 地址。默認值為“是”。
當然你也可以下面的SQL Native Client 配置中新建一別名來指定你的SQL服務(wù)器和端口,也可在服務(wù)器屬性==連接==遠程服務(wù)器鏈接==把允許遠程鏈接到本服務(wù)器的勾去掉 關(guān)閉遠程鏈接命令行為 EXEC sys.sp_configure N'remote access', N'0'
8、對遠程網(wǎng)絡(luò)連接進行IP限制,SQL Server 2005如同SQL 2000一樣沒有提供網(wǎng)絡(luò)連接的安全解決辦法,但是Windows 2K以上系統(tǒng)了提供了IPSec策略。對遠程網(wǎng)絡(luò)連接的IP進行限制,只保證需要的IP能夠訪問,拒絕其他 IP進行的端口連接,把安全威脅降到最低。
9、在服務(wù)器的屬性安全中,啟用登錄審核中的失敗與成功登陸,啟用C2審核跟蹤,C2是一個政府安全等級,它保證系統(tǒng)能夠保護資源并具有足夠的審核能力。C2模式允許我們監(jiān)視對所有數(shù)據(jù)庫實體的所有訪問企圖。如圖
啟用C2審核的命令為 EXEC sys.sp_configure N'c2 audit mode', N'1'
以上的方法不是很完整,因為時間關(guān)系以后再慢慢研究。
出處:藍色理想
責任編輯:藍色
◎進入論壇網(wǎng)絡(luò)編程版塊參加討論
|