30步檢查SQL Server安全檢查列表

2021-08-25 00:25:02 字數 4235 閱讀 7515

1. 確認已經安裝了nt/2000和sql server的最新補丁程式,不用說大家應該已經安裝好了,但是我覺得最好還是在這裡提醒一下。

2. 評估並且選擇乙個考慮到最大的安全性但是同時又不影響功能的網路協議。 多協議是明智的選擇, 但是它有時不能在異種的環境中使用。

3. 給 "sa" 和 "probe" 帳戶設定強壯的密碼來加強其安全性。設定乙個強壯的密碼並將其儲存在乙個安全的地方。 注意: probe帳戶被用來進行效能分析和分發傳輸。 當在標準的安全模態中用的時候 , 給這個帳戶設定高強度的密碼能影響某些功能的使用。

4. 使用乙個低特權使用者作為 sql 伺服器服務的查詢操作賬戶,不要用 localsystem 或sa。 這個帳戶應該有最小的權利 ( 注意作為乙個服務執行的權利是必須的)和應該包含( 但不停止)在妥協的情況下對伺服器的攻擊。 注意當使用企業管理器做以上設定時 , 檔案,登錄檔和使用者權利上的 acls同時被處理。

6.如果不使用xp_cmdshell就關掉。 如果使用 sql 6.5, 至少使用server options中的sqlexecutiecmdexec 賬戶操作限制,非sa使用者使用xp_cmdshell.

在任何的 isql/ osql 視窗中( 或查詢分析器):

use master

exec sp_dropextendedproc'xp_cmdshell'

對 sqlexecutivecmdexec 的詳細情況請檢視下列文章:

如果你不需要 xp_cmdshell 那請停用它。請記住乙個系統系統管理員如果需要的話總是能把它增加回來。這也好也不好 - 乙個侵入者可能發現它不在,只需要把他加回來。考慮也除去在下面的 dll但是移除之前必須測試因為有些dll同時被一些程式所用。 要找到其他的程式是否使用相同的 dll:

首先得到該 dll 。

select o.name,c.text from dbo.syscomments c , dbo.sysobjects o where c.id=o.id and o.name='xp_cmdshell'

其次,使用相同的 dll發現其他的擴充套件儲存操作是否使用該dll。

select o.name,c.text from dbo.syscomments c , dbo.sysobjects o where c.id=o.id and c.text='xplog70.dll'

使用者可以用同樣的辦法處理下面步驟中其他你想去掉的程序。

7. 如不需要就停用物件連線與嵌入自動化儲存程式 ( 警告 - 當這些儲存程式被停用的時候 , 一些企業管理器功能可能丟失). 如果你決定停用該程序那麼請給他們寫乙個指令碼這樣在以後你用到他們的時候你能夠把他們重新新增回來 。 記住, 我們在這裡正在做的是鎖定乙個應用程式的功能 - 你的開發平台應該放到其他機器上。

8. 禁用你不需要的登錄檔訪問程式。(同上面的警告)這些包括:

xp_regaddmultistring

xp_regdeletekey

xp_regdeletevalue

xp_regenumvalues

xp_regremovemultistring

注意 :我過去一直在這裡列出 xp_regread/ xp_regwrite但是這些程式的移除影響一些主要功能包括日誌和sp的安裝,所以他們的移除不被推薦。

9.移除其他你認為會造成威脅的系統儲存程序。 這種程序是相當多的,而且他們也會浪費一些cpu時間。 小心不要首先在乙個配置好的伺服器上這樣做。首先在開發的機器上測試,確認這樣不會影響到任何的系統功能。

10. 在企業管理器中"安全選項" 之下禁用預設登入。(只有sql 6.5) 當使用整合的安全時候,這使未經認可的不在 syslogins 表中使用者無權登陸乙個有效的資料庫伺服器。

11. 除去資料庫的guest賬戶把未經認可的使用者據之在外。 例外情況是master和 tempdb 資料庫,因為對他們guest帳戶是必需的。

12. 若非必須,請完全地禁用sql郵件功能。它的存在使潛在的攻擊者遞送潛在的 trojans ,病毒或是簡單實現乙個dos攻擊成為可能

13. 檢查master..sp_helpstartup看有無可疑的木馬程序。 確定沒有人已經在這裡放置秘密的後門程式。 使用 sp_unmakestartup 移除任何可疑程序。

14. 檢查master..sp_password看有無trojan**。比較你的產品scripts和乙個新安裝的系統的預設scripts而且方便的儲存。

15. 記錄所有的使用者訪問訪問情況。 從企業管理器做這些設定或通過以sa登陸進入查詢分析器的下列各項:

xp_instance_regwrite n'hkey_local_machine', n'software microsoftmssqlservermssqlserver',n'auditlevel',reg_dword,3

16. 重寫應用程式使用更多使用者定義的儲存和察看程序所以一般的對錶的訪問可以被禁用。 在這裡你也應該看到由於不必經常進行查詢計畫操作而帶來的效能提公升。

17. 除去不需要的網路協議。

18. 注意sql 伺服器的物理安全。把它鎖在固定的房間裡,並且注意鑰匙的安全。只要有機會到伺服器面前,就總是會找到乙個方法進入。

19. 建立乙個計畫的任務執行:

findstr/c:" login failed"mssql7log*.*'

然後再重定向輸出到乙個文字檔案或電子郵件,因此你監測失敗的登入嘗試。這也為系統管理員提供乙個好的記錄攻擊的方法。 也有很多用來分析nt日誌事件的第三者工具。 注意: 你可能需要將路徑換成你安裝sql的路徑。

20. 設定非法訪問和登陸失敗日誌警報。到 企業管理器中的"manager sql server messages "搜尋任何有關無權訪問的訊息 ( 從查詢"login failed"和"denied"開始). 確定你所有感興趣的資訊被記錄到事件日誌。然後在這些資訊上設定警報 , 傳送乙個電子郵件或資訊到乙個能夠對問題及時響應的操作員。

21. 確定在伺服器和資料庫層次上的角色都只被授給了需要的使用者。 當 sql server 安全模型 7 有許多增強的時候, 它也增加額外的許可層,我們必須監控該層,確定沒有人被授予了超過必需的許可權。

22. 經常檢查組或角色全體會員並且確定用組分配許可權,這樣你的審計工作能夠簡化。 確定當你在的時候 , 公眾的組不能從系統表執行選擇操作。

23. 花些時間審計用空密碼登陸的請求。 使用下面的**進行空密碼檢查:

使用主體

選擇名字,

password

from syslogins

where password is null

order by name

24. 如果可能,在你的組織中利用整合的安全策略。 通過使用整合的安全策略,你能夠依賴系統的安全,最大簡化管理工作從維護二個分開的安全模型中分離開來。這也不讓密碼接近連線字串。

25. 檢查所有非sa使用者的訪問程序和擴充儲存程序的許可權。 使用下面的查詢定期的查詢哪乙個程序有公眾儲存許可權。(在sql server中 使用 "type" 而不是 "xtype"):

use master

select sysobjects.name

from sysobjects,sysprotects

where sysprotects.uid=0

and xtype 在 ('x','p')

and sysobjects.id=sysprotects.id

order by name

26. 當時用企業管理器的時候,使用整合的安全策略。 過去,企業管理器被發現在標準的安全模態中儲存 "sa" 密碼在登錄檔的 plaintext 中。 注意: 即使你改變模態,密碼也會留在登錄檔中。 使用 regedit 而且檢查鍵:

hkey_current_usersoftwaremicrosoft

mssqlserversqlew regedi

sql 6.5

現在資料被隱藏在

hkey_users\softwaremicrosoftmicrosoft sql servertoolsqlewregistered server xsql server group

("sql server組" 是預設值但是你可能已建立使用者組因此相應地改變其位置)

27. 發展乙個審核計畫而且訂定每月的安全報告,對it主管可用的報表包括任何的新exploit,成功的攻擊 , 備份保護 , 和物件訪問失敗統計。

28. 不要允許使用者互動式登陸到 sql server之上。這個規則適用任何的伺服器。 一旦乙個使用者能夠互動式進入乙個伺服器之內,就有能用來獲得管理員的訪問特權得到管理員許可權。

30. 盡力限制對sql server的查詢與訪問操作。 使用者可以用最小許可權查詢sql server中的很多東西。若非必須不要給他們機會。

sqlserver 日常檢查指令碼

隨筆分類 運維 運維 使用filezilla搭建ftp伺服器 windows svn 在windows伺服器下安裝svn,並在客戶端能維護 版本 tomcat 2.配置tomcat伺服器端口和https tomcat 1.tomcat在windows系統的安裝和使用 運維 使用serv u搭建ftp...

SQL Server連線Oracle詳細步驟

sql server連線oracle詳細步驟 我們知道sql server和oracle其實很多原理都類似.特別是一些常用的sql語句都是按照標準來.所以它們也可以有一定的互操作性的.這裡講一下,怎麼配置讓sql server連線乙個oracle.然後你在sql server中也能檢視oracle中...

SQL Server連線Oracle詳細步驟

我們知道sql server和oracle其實很多原理都類似.特別是一些常用的sql語句都是按照標準來.所以它們也可以有一定的互操作性的.這裡講一下,怎麼配置讓sql server連線乙個oracle.然後你在sql server中也能檢視oracle中表的內容.我先說下我使用的環境 作業系統 wi...