資料庫儲存核心商業資產:客戶隱私、財務帳務、知識產權、策略規劃。然而企業往往重網路/作業系統輕資料庫,導致「邊界堅固、核心空虛」。SQL Server 2000 廣泛部署於電商、ERP、內部門戶,成為攻擊高價值目標。本文提供系統性強化清單,涵蓋作業系統、安裝配置、認證授權、稽核、擴展程序、網路通訊、埠口隱藏、IP 限制八大面向。
' ; @ / -- 等特殊字元,杜絕字串拼接 SQL。sa 帳號必須設定高強度密碼 (長度≥12、大小寫數字符號混合),嚴禁空密碼。USE master;
SELECT name, password FROM syslogins WHERE password IS NULL OR name = 'sa';
sp_rename 系統物件,謹慎操作)。sql_admin_01) 授予 sysadmin,日常運維使用,sa 僅作緊急備援。sysadmin/db_owner 人數,實施特權存取管理 (PAM) 流程。BUILTIN\Administrators 登入 (防止 OS 管理員直接登入 DB),但需保留至少一個 sysadmin SQL 登入以防鎖死。MSSQL\LOG\ERRORLOG*) 或指令快速篩選:
FINDSTR /C:"登入" "D:\MSSQL\LOG\ERRORLOG*"
SQL Server 2000 內建數十個擴展預存程序 (xp_*),多以sysadmin身分執行,直通作業系統層,是提權、滲透的核心武器庫。
| 類別 | 預存程序 | 風險 | 建議動作 |
|---|---|---|---|
| 命令執行 | xp_cmdshell | 直接執行 OS 命令,最大後門 | 立即移除 EXEC sp_dropextendedproc 'xp_cmdshell' |
xp_execresultset | 執行結果集中的命令 | 移除 | |
| OLE 自動化 | sp_OACreate, sp_OAMethod, sp_OAGetProperty, sp_OASetProperty, sp_OADestroy, sp_OAGetErrorInfo, sp_OAStop | 實例化 COM 物件,可存取檔案、註冊表、網路、WMI,攻擊面極大 | 業務不用則移除;需用則嚴格授權 GRANT EXEC ON sp_OA* TO specific_role |
| 註冊表存取 | xp_regread, xp_regwrite, xp_regdeletekey, xp_regdeletevalue, xp_regenumvalues, xp_regaddmultistring, xp_regremovemultistring | 可讀取 SAM/SECURITY 機碼竊取密碼雜湊、修改系統設定、植入啟動項 | 全部移除,極少合法業務需求 |
| 其他高風險 | xp_availablemedia, xp_dirtree, xp_fixeddrives, xp_enumdsn, xp_fileexist, xp_getfiledetails, xp_readmail, xp_sendmail, xp_startmail, xp_stopmail, xp_terminate_process | 資訊洩露、檔案系統探測、郵件濫用、進程終止 | 按需保留,最小授權 |
恢復指令:EXEC sp_addextendedproc 'xp_cmdshell', 'xplog70.dll' (同目錄下 xplog70.dll/xpstar.dll 等)。
允許 10.1.10.0/24 → TCP 2433; 拒絕 * → TCP 2433。| 頻率 | 任務 | 工具/指令 |
|---|---|---|
| 每日 | 檢查錯誤日誌、稽核日誌、備份狀態 | Log Parser, 自動化腳本 |
| 每週 | 掃描弱密碼、異常登入、權限變更 | sp_helplogins, sp_helpsrvrolemember |
| 每月 | 套用安全更新、審查擴展程序清單、演練還原 | MBSA, WSUS, RESTORE VERIFYONLY |
| 每季 | 滲透測試、程式碼審查、災難恢復演練 | SQLMap, 內部紅隊, DRP |