萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 電腦基礎知識 >  >> 健康知識

建立 Web 資料庫安全模型:身分驗證、存取控制、稽核追蹤、備份加密與視圖機制全方位防護

Web 資料庫安全威脅模型

Web 應用與資料庫交互面臨:SQL 注入、權限提升、敏感資料洩露 (傳輸/靜態)、審計缺失、備份外洩、內部人員濫用權限。需建立纵深防御模型,涵蓋應用層、資料庫層、網路層、管理層。

一、安全模型三層防線

1. 身分驗證與鑑別

  • 應用層: 使用者向 Web App 提供憑證 → Web App 驗證 (密碼雜湊比對、MFA、OAuth2/OIDC/SAML 聯合身分) → 建立 Session/JWT。
  • 資料庫層: Web App 使用專用低權限資料庫帳號 (非 SA/root) 連線連線池。密碼儲存於加密配置檔/金鑰保管庫 (Azure Key Vault, HashiCorp Vault, AWS Secrets Manager),嚴禁硬編碼。
  • 傳輸加密: 強制 TLS 1.2+ 加密資料庫連線 (Force Encryption, Verify Certificate),防止中間人竊聽/竄改 SQL 流量。

2. 存取控制 (授權)

層級機制實作要點
應用系統 (訪問控制)RBAC/ABAC角色/屬性基礎授權,控制使用者可存取功能模組、工作流、資料範圍 (如多租戶隔離)。
資料庫 (存取控制)GRANT/REVOKE、行級安全 (RLS)、動態資料遮罩• 原則:最小權限。Web App 布號僅擁有特定 Schema/Table 的 SELECT/INSERT/UPDATE/EXEC (存儲過程)。
• 禁止直接授予 DDL (CREATE/ALTER/DROP)、TRUNCATE、BULK INSERT、xp_cmdshell 權限。
• RLS: 依使用者身分自動過濾資料列 (多租戶、部門隔離)。
• 動態遮罩: 非特權使用者查詢敏感欄位 (身分證、信用卡、薪資) 顯示遮罩值。

3. 稽核追蹤與資料備份

  • 資料庫稽核: 啟用 SQL Server Audit / Oracle Unified Auditing / PostgreSQL pgaudit / MySQL Audit Plugin。記錄:DDL/DML 操作、登入登出、權限變更、敏感資料查詢、失敗嘗試。日誌寫入不可變儲存 (WORM/Object Lock) 或轉發 SIEM。
  • 應用層稽核: 記錄使用者業務操作 (誰、何時、什麼業務、輸入參數、結果)、API 請求/回應 (OpenTelemetry/ELK)。
  • 備份恢復策略:
    • 完整備份 (每日/每週) + 差異/記錄備份 (每 15-60 分鐘) → RPO ≤ 1 小時。
    • 備份加密 (AES-256) + 離線/異地/不可變儲存 (Azure Immutable Blob, AWS S3 Object Lock, Veeam Hardened Repository)。
    • 定期演練還原 (每季至少 1 次),驗證 RTO/RPO 達標。
    • 備份存取控制:僅備份作業帳號可寫入,管理員僅可讀取/還原,嚴禁直接刪除備份集。

二、資料庫原生進階防護機制

視圖機制

  • 為不同角色建立視圖,僅暴露必要欄位/資料列 (如 `CREATE VIEW v_employee_public AS SELECT id, name, dept FROM employee WHERE dept = CURRENT_USER_DEPT();`)。
  • 結合 `GRANT SELECT ON v_employee_public TO role_analyst;` 實現欄位/列級存取控制。
  • 注意:視圖本身不提供加密,需搭配 TDE/欄位加密保護靜態資料。

資料加密

層級技術保護範圍金鑰管理
透明資料加密 (TDE)資料庫引擎自動加密資料/日誌/備份檔案整個資料庫檔案 (MDF/LDF/備份)主金鑰 (DMK) → 憑證/非對稱金鑰 → 資料庫加密金鑰 (DEK) → 儲存於金鑰保管庫/HSM
欄位級加密 (Column Encryption)應用/資料庫層加密特定敏感欄位 (Always Encrypted, pgcrypto, Vault Transit)個別欄位 (身分證、信用卡、醫療紀錄)應用端持有金鑰 (Client-side) 或 KMS 管理,資料庫不可見明文
傳輸加密TLS 1.2/1.3 (Force Encryption, Verify Server Certificate)網路傳輸路徑CA 簽署伺服器憑證,客戶端信任錨點

三、常見 Web 資料庫安全技術實作清單

  1. 參數化查詢 / 預備語句: 徹底杜絕 SQL 注入 (所有語言/ORM 均支援)。
  2. 輸入驗證與輸出編碼: 白名單驗證、長度/格式/型別限制、HTML/JS/SQL/CSS/URL 編碼輸出。
  3. 錯誤訊息最小化: 生產環境隱藏堆疊追蹤、SQL 錯誤細節,回傳通用錯誤代碼。
  4. 連線池最小化權限: 不同功能模組使用不同資料庫帳號 (唯讀、讀寫、批次作業)。
  5. 資料庫防火牆 / SQL 防火牆: 學習模式建立基線 → 強制模式阻擋異常 SQL (UNION SELECT, OR 1=1, xp_cmdshell, 大量下載)。
  6. 敏感資料發現與分類: 自動掃描標記 PII/PCI/PHI 欄位,套用遮罩/加密/稽核策略。
  7. 補丁管理: 訂閱廠商安全公告,建立測試→預發→生產 修補流程,關鍵漏洞 72 小時內修補。

四、治理與合規層面

  • 法規對應: GDPR (個人資料保護)、PCI-DSS (支付卡資料)、HIPAA (醫療資訊)、個資法 (台灣)、網安法/資安法 (中國)、SOX (財務報導)。
  • 資料保留與銷毀政策: 自動化歸檔/刪除符合法規要求。
  • 事件響應預案: 資料庫入侵偵測 → 隔離/快照 → 取證 → 根因分析 → 通報主管機關/受影響主體 → 恢復驗證。
  • 安全開發生命週期 (SDL): 威脅建模 → 程式碼審查 (SAST/DAST/IAST) → 安全測試 → 上線審批。

結語

Web 資料庫安全非單一技術可解,需「身分驗證、最小權限、傳輸/靜態加密、全方位稽核、彈性備份、安全開發流程、法規合規」七位一體。將安全控制點前移至程式碼與基礎設施代碼階段,配合零信任架構持續驗證,才能有效守護核心資料資產。

copyright © 萬盛學電腦網 all rights reserved