五層立體防禦模型
Oracle 9i 採用**縱深防禦**策略,從物理到邏輯構建五層安全體系:
- 物理層:服務器機房門禁、UPS、防火、防盜、硬件冗余(RAID、雙電源)。
- 用戶/身份層:誰能連接、用什麼認證(密碼、外部 OS 認證、PKI、Kerberos、Radius)、密碼策略(Profile 管理複雜度、過期、鎖定)。
- 作業系統層:OS 补丁、最小權限原則運行 Oracle 進程、禁用不必要服務、審計關鍵文件變更。
- 網絡層:Oracle Net 加密 (AES/3DES)、數據完整性校驗 (SHA-1/MD5)、SSL/TLS、防火牆限制 1521 端口、IP 白名單、Connection Manager 代理與訪問控制。
- 數據庫系統層:核心權限模型(系統權限、對象權限、角色)、虛擬私有數據庫 (VPD/細粒度訪問控制)、審計 (Standard/細粒度 FGA)、加密 (TDE 表空間/列加密)、標籤安全 (OLS/行級標籤)。
兩大核心安全機制
1. 系統安全性機制 (System Security)
控制**實例級**操作權限:
- 系統權限:`CREATE SESSION`、`CREATE TABLE`、`ALTER SYSTEM`、`SYSDBA`/`SYSOPER` 等 200+ 權限。
- 角色管理:預定義角色 (`DBA`、`RESOURCE`、`CONNECT`)、自定義業務角色、密碼保護角色、安全應用角色(通過 PL/SQL 包驗證上下文才啟用)。
- 用戶認證:數據庫內部、外部 (OPS$)、全局 (Enterprise User Security/EUS)。
- 配置文件:密碼生命周期、失敗鎖定、資源限制 (CPU、連接時間、邏輯讀)。
2. 數據安全性機制 (Data Security)
控制**對象級**訪問權限:
- 對象權限:`SELECT/INSERT/UPDATE/DELETE/EXECUTE/REFERENCES/INDEX/ALTER/FLASHBACK` 等。
- 視圖/同義詞封裝:隱藏基表結構、列子集、行過濾(`WHERE` 子句)。
- VPD (Virtual Private Database):動態在查詢後附加謂詞,實現多租戶行級隔離,無需修改應用 SQL。
- FGA (Fine-Grained Auditing):基於內容的審計(如 `salary > 10000` 才記錄),支持事件處理程序發送告警。
- TDE (Transparent Data Encryption):表空間/列級加密,數據文件/備份/紅靈日志自動加密,應用無感知。
- OLS (Oracle Label Security):軍事級標籤(機密級、秘密級),基於支配關係的行級訪問控制。
關鍵配置清單(生產環境基線)
| 項目 | 建議設置 |
| 密碼驗證函數 | 啟用 `UTLPWDMG.SQL` 或自定義複雜度函數 |
| 遠程登錄密碼文件 | `REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE` |
| 網絡加密 | `SQLNET.ENCRYPTION_SERVER=REQUIRED`, `SQLNET.ENCRYPTION_TYPES_SERVER=(AES256)` |
| 網絡校驗和 | `SQLNET.CRYPTO_CHECKSUM_SERVER=REQUIRED`, `SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER=(SHA1)` |
| 審計 | `AUDIT_TRAIL=DB,EXTENDED`(含 SQL 文本/綁定變量) |
| TDE 錢包 | 啟用自動登錄錢包,備份錢包文件異地存儲 |
| 公共權限清理 | 撤銷 `PUBLIC` 不必要的對象權限、`EXECUTE` 於危險包 |
總結
Oracle 9i 通過**五層防禦**與**系統/數據雙機制**,提供從邊界到數據內核的全方位保護。實施時應遵循「最小權限、默認拒絕、審計一切、加密敏感」原則,並定期進行滲透測試與合規掃描。