資料庫是電商、金融、ERP核心,存放敏感商業/客戶/財務/策略資料。多數企業重視OS/網路安全卻忽略資料庫,DBA不懂安全、安全公司忽略DB,導致隱患嚴重。SQL Server屬「埠型」資料庫,誰都能用分析工具嘗試連線繞過OS安全機制闖入竊取破壞。本文系統闡述SQL Server 2000安全配置九大措施。
基礎三步驟(配置前必做)
- 先完成作業系統安全配置,確保OS處於安全狀態。
- 對使用資料庫的應用軟體(ASP/PHP等腳本)進行安全審核,重點過濾
, ' ; @ /等字元,防SQL注入。
- 安裝SQL Server 2000後必打SP3補丁(下載:微軟官網)。
九大安全配置措施
- 強健密碼策略: 所有帳號密碼勿過簡單,sa帳號尤嚴,密碼勿寫在程式/腳本中。安裝選混合模式時必須輸入sa密碼(除非確認需空密碼)。定期修改密碼,DBA定期查詢不符合要求帳號:
USE master SELECT name,Password FROM syslogins WHERE password IS NULL。
- 安全帳號策略: sa無法改名/刪除,必須最強保護(強密碼、不用於應用、僅緊急時用)。建議新建同權限超級用戶管理DB。防止管理員帳號濫用:應用僅需查詢/修改等簡單功能時,按需分配最小權限(如僅
public帳號select)。若不想OS管理員透過OS登入碰觸DB,可刪除BUILTIN\Administrators(但sa忘密碼將無法恢復)。
- 強化資料庫日誌稽核: 實例屬性→安全性→稽核等級選「全部」(失敗與成功),詳細記錄所有帳號登入事件。定期查看SQL Server日誌或用DOS指令:
findstr /C:"登錄" d:\Microsoft SQL Server\MSSQL\LOG\*.*。
- 管理擴展預存程序: 大多數應用用不到系統預存程序,請刪除不必要者(易被利用提權/破壞)。重點刪除:
xp_cmdshell(進入OS最佳捷徑,最大後門):USE master EXEC sp_dropextendedproc 'xp_cmdshell'(需時可用sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'恢復)。
- OLE自動化預存程序(
sp_OA*系列,共7個)。
- 註冊表存取預存程序(
xp_reg*系列,共7個,甚至能讀出OS管理員密碼)。
- 其他擴展預存程序亦請檢查。操作前確認避免傷害DB/應用。
- 協議加密: SQL Server用TDS協議交換資料,不加密則全明文(含密碼/資料),極大威脅。條件允許下使用SSL加密(需憑證支援)。
- 隱藏TCP/IP埠: 預設1433埠,改埠不夠(UDP 1434仍可探測)。實例屬性→TCP/IP協議屬性→勾選「隱藏SQL Server實例」,禁止回應列舉廣播,阻擋1434探測(除非Port Scan)。
- 修改TCP/IP使用埠: 在上述基礎上,將預設1433改為其他埠(<65535)。
- 拒絕1434埠探測: Win2000用IPSec過濾拒絕UDP 1434通訊,最大程度隱藏SQL Server。
- IP限制網路連線: SQL Server本身無網路連線安全方案,但Win2000提供IPSec實現IP封包安全。限制僅允許自身IP存取,拒絕其他IP埠連線,有效控制網路威脅。IPSec用法參考微軟文件。
結語
經上述配置,SQL Server具備足夠防禦能力。但更關鍵的是強化內部安全控制與管理員安全培訓,安全是長期持續維護的過程。