首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 2000 安全強化完整指南:從作業系統到資料庫層級

     編輯:關於SqlServer

前言:資料庫安全是企業資安的最後一道防線

資料庫儲存核心商業資產:客戶隱私、財務帳務、知識產權、策略規劃。然而企業往往重網路/作業系統輕資料庫,導致「邊界堅固、核心空虛」。SQL Server 2000 廣泛部署於電商、ERP、內部門戶,成為攻擊高價值目標。本文提供系統性強化清單,涵蓋作業系統、安裝配置、認證授權、稽核、擴展程序、網路通訊、埠口隱藏、IP 限制八大面向。

第一階段:基礎環境鞏固 (先決條件)

  1. 作業系統強化:套用最新安全更新、關閉非必要服務、強制密碼原則、啟用稽核原則、配置 IPSec。
  2. 應用程式碼審計:ASP/PHP/JSP 等腳本必須過濾 ' ; @ / -- 等特殊字元,杜絕字串拼接 SQL。
  3. 安裝 Service Pack:SP4 (含 SP3a 累積) 為基準,官方下載。

第二階段:認證與授權強化

1. 強密碼策略

  • sa 帳號必須設定高強度密碼 (長度≥12、大小寫數字符號混合),嚴禁空密碼。
  • 密碼不寫入程式碼/設定檔,使用 Windows 認證或加密儲存 (DPAPI/Key Vault)。
  • 定期輪換 (建議 90 天),稽核弱密碼帳號:
    USE master;
    SELECT name, password FROM syslogins WHERE password IS NULL OR name = 'sa';

2. 帳號策略

  • 禁用/重命名 sa:SQL Server 2000 無法刪除 sa,但可停用 (Enterprise Manager → 登入 → sa → 屬性 → 停用) 或重命名 (SP3+ 支援 sp_rename 系統物件,謹慎操作)。
  • 建立專屬管理帳號 (如 sql_admin_01) 授予 sysadmin,日常運維使用,sa 僅作緊急備援。
  • 嚴控 sysadmin/db_owner 人數,實施特權存取管理 (PAM) 流程。

3. 認證模式選擇

  • 僅 Windows 整合認證:最安全,利用 AD 群組策略、Kerberos、帳號鎖定、密碼複雜度。
  • 若必須混合模式:Enterprise Manager → 伺服器屬性 → 安全性 → 移除 BUILTIN\Administrators 登入 (防止 OS 管理員直接登入 DB),但需保留至少一個 sysadmin SQL 登入以防鎖死。

第三階段:稽核與監控

  • Enterprise Manager → 伺服器屬性 → 安全性 → 稽核層級:**「所有成功與失敗」**。
  • 定期檢視 SQL Server 錯誤日誌 (預設 MSSQL\LOG\ERRORLOG*) 或指令快速篩選:
    FINDSTR /C:"登入" "D:\MSSQL\LOG\ERRORLOG*"
  • 部署資料庫活動監控 (DAM) 或 SIEM 收集、關聯、告警異常登入、大量資料讀取、結構變更等事件。

第四階段:擴展預存程序清理 (關鍵攻擊面縮減)

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 等)。

第五階段:網路通訊加密與埠口隱藏

  1. 強制 SSL/TLS 加密:申請有效憑證 (內部 CA 或公信 CA) → SQL Server 網路工具 → 強制通訊協定加密。所有 TDS 封包 (含登入憑證、資料) 加密傳輸,防中間人竊聽/竄改。
  2. 隱藏執行個體:網路工具 → TCP/IP 內容 → 勾選「隱藏伺服器」。阻擋 UDP 1434 廣播枚舉,客戶端需指定完整執行個體名稱或埠號連線。
  3. 修改預設埠:TCP/IP 內容 → 改為非 1433 埠 (如 2433, 5433)。結合隱藏執行個體,大幅增加偵察成本。
  4. 封鎖 UDP 1434:Windows 2000 IPSec 過濾器 → 封鎖 UDP 1434 入站,防止枚舉與 DoS 攻擊 (UDP 1434 放大攻擊)。

第六階段:IP 存取控制 (網路層微隔離)

  • Windows 2000 IPSec 原則:僅允許應用伺服器 IP、管理工作站 IP 存取 SQL TCP 埠;拒絕其他所有 IP。
  • 或部署前端負載平衡器/防火牆實現相同邏輯,集中管理。
  • 原則範例:允許 10.1.10.0/24 → TCP 2433; 拒絕 * → TCP 2433。

第七階段:持續運維清單

結語

SQL Server 2000 安全強化非單一動作,而是「作業系統→安裝配置→認證授權→稽核→攻擊面縮減→網路加密隔離→持續運維」的系統工程。雖版本已停止支援,但存量系統仍存。對無法升級的舊系統,嚴格執行本指南可將風險降至可接受水平;對新專案,請直接採用 SQL Server 2019/2022 + Always Encrypted + 資料遮罩 + 進階威脅防護,享受現代安全架構紅利。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
頻率任務工具/指令
每日檢查錯誤日誌、稽核日誌、備份狀態Log Parser, 自動化腳本
每週掃描弱密碼、異常登入、權限變更sp_helplogins, sp_helpsrvrolemember
每月套用安全更新、審查擴展程序清單、演練還原MBSA, WSUS, RESTORE VERIFYONLY
每季滲透測試、程式碼審查、災難恢復演練SQLMap, 內部紅隊, DRP