您好,歡迎來(lái)電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊(cè)]

您的位置:電子發(fā)燒友網(wǎng)>電子百科>電腦硬件>服務(wù)器>

Windows SQL Server 安全檢查列表

2010年01月29日 11:13 www.ttokpm.com 作者:佚名 用戶評(píng)論(0
關(guān)鍵字:WINDOWS(86724)

Windows SQL Server 安全檢查列表

1. 確認(rèn)已經(jīng)安裝了NT/2000和SQL Server的最新補(bǔ)丁程序,不用說(shuō)大家應(yīng)該已經(jīng)安裝好了,但是我覺(jué)得最好還是在這里提醒一下。

  2. 評(píng)估并且選擇一個(gè)考慮到最大的安全性但是同時(shí)又不影響功能的網(wǎng)絡(luò)協(xié)議。 多協(xié)議是明智的選擇, 但是它有時(shí)不能在異種的環(huán)境中使用。

  3. 給 "sa" 和 "probe" 帳戶設(shè)定強(qiáng)壯的密碼來(lái)加強(qiáng)其安全性。設(shè)定一個(gè)強(qiáng)壯的密碼并將其保存在一個(gè)安全的地方。 注意: probe帳戶被用來(lái)進(jìn)行性能分析和分發(fā)傳輸。 當(dāng)在標(biāo)準(zhǔn)的安全模態(tài)中用的時(shí)候 , 給這個(gè)帳戶設(shè)定高強(qiáng)度的密碼能影響某些功能的使用。

  4. 使用一個(gè)低特權(quán)用戶作為 SQL 服務(wù)器服務(wù)的查詢操作賬戶,不要用 LocalSystem 或sa。 這個(gè)帳戶應(yīng)該有最小的權(quán)利 ( 注意作為一個(gè)服務(wù)運(yùn)行的權(quán)利是必須的)和應(yīng)該包含( 但不停止)在妥協(xié)的情況下對(duì)服務(wù)器的攻擊。 注意當(dāng)使用企業(yè)管理器做以上設(shè)置時(shí) , 文件,注冊(cè)表和使用者權(quán)利上的 ACLs同時(shí)被處理。

  5. 確定所有的 SQL 服務(wù)器數(shù)據(jù),而且系統(tǒng)文件是裝置在 NTFS 分區(qū),且appropraite ACLs 被應(yīng)用。 如果萬(wàn)一某人得到對(duì)系統(tǒng)的存取操作權(quán)限,該層權(quán)限可以阻止入侵者破壞數(shù)據(jù),避免造成一場(chǎng)大災(zāi)難。

  6.如果不使用Xp_cmdshell就關(guān)掉。 如果使用 SQL 6.5, 至少使用Server Options中的SQLExecutieCmdExec 賬戶操作限制非sa用戶使用XP_cmdshell.

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

  use master

  exec sp_dropextendedproc’xp_cmdshell’

  如果你不需要 xp_cmdshell 那請(qǐng)停用它。請(qǐng)記住一個(gè)系統(tǒng)系統(tǒng)管理員如果需要的話總是能把它增加回來(lái)。這也好也不好 - 一個(gè)侵入者可能發(fā)現(xiàn)它不在,只需要把他加回來(lái)??紤]也除去在下面的 dll但是移除之前必須測(cè)試因?yàn)橛行ヾll同時(shí)被一些程序所用。 要找到其他的程序是否使用相同的 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發(fā)現(xiàn)其他的擴(kuò)展儲(chǔ)存操作是否使用該dll。

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

  用戶可以用同樣的辦法處理下面步驟中其他你想去掉的進(jìn)程。

  7. 如不需要就停用對(duì)象連接與嵌入自動(dòng)化儲(chǔ)存程序 ( 警告 - 當(dāng)這些儲(chǔ)存程序被停用的時(shí)候 , 一些企業(yè)管理器功能可能丟失). 這些包括:

  Sp_OACreate

  Sp_OADestroy

  Sp_OAGetErrorInfo

  Sp_OAGetProperty

  Sp_OAMethod

  Sp_OASetProperty

  Sp_OAStop

  如果你決定停用該進(jìn)程那么請(qǐng)給他們寫(xiě)一個(gè)腳本這樣在以后你用到他們的時(shí)候你能夠把他們重新添加回來(lái) 。 記住, 我們?cè)谶@里正在做的是鎖定一個(gè)應(yīng)用程序的功能 - 你的開(kāi)發(fā)平臺(tái)應(yīng)該放到其他機(jī)器上。

  8. 禁用你不需要的注冊(cè)表存取程序。(同上面的警告)這些包括:

  Xp_regaddmultistring

  Xp_regdeletekey

  Xp_regdeletevalue

  Xp_regenumvalues

  Xp_regremovemultistring

  注意 :我過(guò)去一直在這里列出 xp_regread/ xp_regwrite但是這些程序的移除影響一些主要功能包括日志和SP的安裝,所以他們的移除不被推薦

  9.移除其他你認(rèn)為會(huì)造成威脅的系統(tǒng)儲(chǔ)存進(jìn)程。 這種進(jìn)程是相當(dāng)多的,而且他們也會(huì)浪費(fèi)一些cpu時(shí)間。 小心不要首先在一個(gè)配置好的服務(wù)器上這樣做。首先在開(kāi)發(fā)的機(jī)器上測(cè)試,確認(rèn)這樣不會(huì)影響到任何的系統(tǒng)功能。在下面是我們所推薦的有待你評(píng)估的一些列表:

  sp_sdidebug

  xp_availablemedia

  xp_cmdshell

  xp_deletemail

  xp_dirtree

  xp_dropwebtask

  xp_dsninfo

  xp_enumdsn

  xp_enumerrorlogs

  xp_enumgroups

  xp_enumqueuedtasks

  xp_eventlog

  xp_findnextmsg

  xp_fixeddrives

  xp_getfiledetails

  xp_getnetname

  xp_grantlogin

  xp_logevent

  xp_loginconfig

  xp_logininfo

  xp_makewebtask

  xp_msver xp_perfend

  xp_perfmonitor

  xp_perfsample

  xp_perfstart

  xp_readerrorlog

  xp_readmail

  xp_revokelogin

  xp_runwebtask

  xp_schedulersignal

  xp_sendmail

  xp_servicecontrol

  xp_snmp_getstate

  xp_snmp_raisetrap

  xp_sprintf

  xp_sqlinventory

  xp_sqlregister

  xp_sqltrace

  xp_sscanf

  xp_startmail

  xp_stopmail

  xp_subdirs

  xp_unc_to_drive

  xp_dirtree

  10. 在企業(yè)管理器中"安全選項(xiàng)" 之下禁用默認(rèn)登錄。(只有SQL 6.5) 當(dāng)使用整合的安全時(shí)候,這使未經(jīng)認(rèn)可的不在 syslogins 表中使用者無(wú)權(quán)登陸一個(gè)有效的數(shù)據(jù)庫(kù)服務(wù)器。

  11. 除去數(shù)據(jù)庫(kù)的guest賬戶把未經(jīng)認(rèn)可的使用者據(jù)之在外。 例外情況是master和 tempdb 數(shù)據(jù)庫(kù),因?yàn)閷?duì)他們guest帳戶是必需的。

  12. 若非必須,請(qǐng)完全地禁用SQL郵件功能。它的存在使?jié)撛诘墓粽哌f送潛在的 trojans ,病毒或是簡(jiǎn)單實(shí)現(xiàn)一個(gè)DOS攻擊成為可能

  13. 檢查master..Sp_helpstartup看有無(wú)可疑的木馬進(jìn)程。 確定沒(méi)有人已經(jīng)在這里放置秘密的后門(mén)程序。 使用 Sp_unmakestartup 移除任何可疑進(jìn)程。

  14. 檢查master..Sp_password看有無(wú)trojan代碼。比較你的產(chǎn)品scripts和一個(gè)新安裝的系統(tǒng)的默認(rèn)scripts而且方便的保存。

  15. 記錄所有的用戶存取訪問(wèn)情況。 從企業(yè)管理器做這些設(shè)定或通過(guò)以sa登陸進(jìn)入查詢分析器的下列各項(xiàng):

  xp_instance_regwrite N’HKEY_LOCAL_MACHINE’, N’SOFTWARE\ Microsoft\MSSQLServer\MSSQLServer’,N’AuditLevel’,REG_DWORD,3

  16. 重寫(xiě)應(yīng)用程序使用更多用戶定義的儲(chǔ)存和察看進(jìn)程所以一般的對(duì)表的訪問(wèn)可以被禁用。 在這里你也應(yīng)該看到由于不必經(jīng)常進(jìn)行查詢計(jì)劃操作而帶來(lái)的性能提升。

  17. 除去不需要的網(wǎng)絡(luò)協(xié)議。

  18. 注意SQL 服務(wù)器的物理安全。把它鎖在固定的房間里,并且注意鑰匙的安全。只要有機(jī)會(huì)到服務(wù)器面前,就總是會(huì)找到一個(gè)方法進(jìn)入。

  19. 建立一個(gè)計(jì)劃的任務(wù)運(yùn)行:

  findstr/C:" Login Failed"\mssql7\log\*.*’

  然后再重定向輸出到一個(gè)文本文件或電子郵件,因此你監(jiān)測(cè)失敗的登錄嘗試。這也為系統(tǒng)管理員提供一個(gè)好的記錄攻擊的方法。 也有很多用來(lái)分析NT日志事件的第三者工具。 注意: 你可能需要將路徑換成你安裝SQL的路徑。

  20. 設(shè)定非法訪問(wèn)和登陸失敗日志警報(bào)。到 企業(yè)管理器中的"Manager SQL Server Messages "搜尋任何有關(guān)無(wú)權(quán)訪問(wèn)的消息 ( 從查找"login failed"和"denied"開(kāi)始). 確定你所有感興趣的信息被記錄到事件日志。然后在這些信息上設(shè)定警報(bào) , 發(fā)送一個(gè)電子郵件或信息到一個(gè)能夠?qū)?wèn)題及時(shí)響應(yīng)的操作員。

  21. 確定在服務(wù)器和數(shù)據(jù)庫(kù)層次上的角色都只被授給了需要的用戶。 當(dāng) SQL Server 安全模型 7 有許多增強(qiáng)的時(shí)候, 它也增加額外的許可層,我們必須監(jiān)控該層,確定沒(méi)有人被授予了超過(guò)必需的權(quán)限。

  22. 經(jīng)常檢查組或角色全體會(huì)員并且確定用組分配權(quán)限,這樣你的審計(jì)工作能夠簡(jiǎn)化。 確定當(dāng)你在的時(shí)候 , 公眾的組不能從系統(tǒng)表執(zhí)行選擇操作。

  23. 花些時(shí)間審計(jì)用空密碼登陸的請(qǐng)求。 使用下面的代碼進(jìn)行空密碼檢查:

  使用主體

  選擇名字,

  password

  from syslogins

  where password is null

  order by name

  24. 如果可能,在你的組織中利用整合的安全策略。 通過(guò)使用整合的安全策略,你能夠依賴系統(tǒng)的安全,最大簡(jiǎn)化管理工作從維護(hù)二個(gè)分開(kāi)的安全模型中分離開(kāi)來(lái)。這也不讓密碼接近連接字串。

  25. 檢查所有非sa用戶的存取進(jìn)程和擴(kuò)充存儲(chǔ)進(jìn)程的權(quán)限。 使用下面的查詢定期的查詢哪一個(gè)進(jìn)程有公眾存儲(chǔ)權(quán)限。(在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. 當(dāng)時(shí)用企業(yè)管理器的時(shí)候,使用整合的安全策略。 過(guò)去,企業(yè)管理器被發(fā)現(xiàn)在標(biāo)準(zhǔn)的安全模態(tài)中儲(chǔ)存 "sa" 密碼在注冊(cè)表的 plaintext 中。 注意: 即使你改變模態(tài),密碼也會(huì)留在注冊(cè)表中。 使用 regedit 而且檢查鍵:

  HKEY_CURRENT_USER\SOFTWARE\Microsoft\

  MSSQLServer\SQLEW\ Regedi\

  SQL 6.5

  現(xiàn)在數(shù)據(jù)被隱藏在

  HKEY_USERS\{yourSID}\software\Microsoft\Microsoft SQL server\80\tool\SQLEW\registered server X\SQL server group

  ("SQL server組" 是默認(rèn)值但是你可能已建立用戶組因此相應(yīng)地改變其位置)

  27. 發(fā)展一個(gè)審核計(jì)劃而且訂定每月的安全報(bào)告,對(duì)IT主管可用的報(bào)表包括任何的新exploit,成功的攻擊 , 備份保護(hù) , 和對(duì)象存取失敗統(tǒng)計(jì)。

  28. 不要允許使用者交互式登陸到 SQL Server之上。這個(gè)規(guī)則適用任何的服務(wù)器。 一旦一個(gè)使用者能夠交互式進(jìn)入一個(gè)服務(wù)器之內(nèi),就有能用來(lái)獲得管理員的存取特權(quán)得到管理員權(quán)限。

  30. 盡力限制對(duì)SQL Server的查詢與存取操作。用戶可以用最小權(quán)限查詢sql server中的很多東西。若非必須不要給他們機(jī)會(huì)。

非常好我支持^.^

(0) 0%

不好我反對(duì)

(0) 0%

( 發(fā)表人:admin )

      發(fā)表評(píng)論

      用戶評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?