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

Oracle 資料庫安全加固全維度指南(下):從作業系統到網絡層的纵深防禦

     編輯:Oracle 資料庫基礎

核心原則:纵深防禦,假設失敗

單一防線必將被突破。安全體系需覆蓋:物理/作業系統/網絡/資料庫/應用/管理六層,每層獨立驗證、最小權限、審計追溯。

一、作業系統層加固

用戶組與文件權限模型 (Unix/Linux)

/etc/group 關鍵配置:
oinstall:x:54321:oracle,grid
dba:x:54322:oracle
oper:x:54323:oracle
asmadmin:x:54324:grid
asmdba:x:54325:grid,oracle

關鍵目錄權限:
$ORACLE_HOME/bin          750  oracle:dba
$ORACLE_HOME/dbs/*.ora    640  oracle:dba
$ORACLE_BASE/admin/*/pfile 640 oracle:dba
數據文件/*.dbf            660  oracle:dba
控制文件/日志文件         660  oracle:dba

原則:僅擁有者可寫,組可讀,其他無權。啟用 SELinux/AppArmor 強制訪問控制。

Windows 環境加固

  • Oracle 服務運行賬號:專用域用戶,非 LocalSystem
  • NTFS 權限:Oracle_Home 僅 Administrators/Oracle_Home_User 可寫
  • 禁用不必要的服務(OracleJobScheduler、OracleMTSRecoveryService 等)
  • 啟用 Windows 防火牆高級安全,僅放行 1521/2484 入站規則綁定應用服務器 IP

二、網絡層安全架構

傳輸加密

  • 配置 SQLNET.ENCRYPTION_SERVER=REQUIRED、SQLNET.ENCRYPTION_TYPES_SERVER=(AES256)
  • 配置 SQLNET.CRYPTO_CHECKSUM_SERVER=REQUIRED、SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER=(SHA512)
  • 客戶端同步設置 _CLIENT 參數

監聽器加固

listener.ora 關鍵配置:
ADMIN_RESTRICTIONS_LISTENER=ON          # 禁止遠程管理
INBOUND_CONNECT_TIMEOUT_LISTENER=10     # 連接超時 10s
SECURE_REGISTER_LISTENER=IPC            # 僅本地 IPC 註冊
PASSWORDS_LISTENER=          # 監聽器管理密碼 (LSNRCTL SET PASSWORD)
  • 禁用外部過程 (EXTPROC) 或限制於專用 SID
  • 啟用監聽器日志 LOG_DIRECTORY_LISTENER、LOG_FILE_LISTENER,定期審計

遠程 DBA 訪問控制

  • 參數 REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE,配合強密碼
  • 原則:禁止直接遠程 SYSDBA,跳板機 + MFA + 審計 + 時效賬號
  • Data Guard 環境:主備密碼文件手動同步或共享存儲

三、資料庫層核心加固清單

賬號與認證

  1. 立即修改 SYS/SYSTEM/DBSNMP/OUTLN 等默認賬號密碼,長度 ≥15 位
  2. 鎖定/過期無業務賬號:ALTER USER ... ACCOUNT LOCK PASSWORD EXPIRE
  3. 啟用密碼驗證函數 @?/rdbms/admin/utlpwdmg.sql,關聯 Profile
  4. 實施 SEC_MAX_FAILED_LOGIN_ATTEMPTS=3、PASSWORD_LOCK_TIME=1/24 (1小時)
  5. 區分大小寫:SEC_CASE_SENSITIVE_LOGON=TRUE (11g+)

權限最小化與角色工程

  • 收回 PUBLIC 權限:REVOKE EXECUTE ON UTL_FILE FROM PUBLIC 等高危包
  • 建立業務角色:CREATE ROLE app_read; GRANT SELECT ON schema.tbl TO app_read
  • 應用賃戶僅授予角色,不授予系統權限
  • 定期審計 DBA_SYS_PRIVS、DBA_TAB_PRIVS、DBA_ROLE_PRIVS

審計與監控

-- 統一審計策略 (12c+)
CREATE AUDIT POLICY audit_dml ACTIONS INSERT, UPDATE, DELETE ON schema.sensitive_tbl;
AUDIT POLICY audit_dml BY app_user;

-- 傳統審計 (11g)
AUDIT CREATE SESSION, ALTER USER, GRANT ANY PRIVILEGE BY ACCESS;
AUDIT SELECT TABLE, INSERT TABLE, UPDATE TABLE, DELETE TABLE BY app_user BY ACCESS;
  • 審計記錄寫入 SYS.AUD$ / 統一審計表空間,設置保留策略、異地備份
  • 部署 Oracle Audit Vault / Database Firewall 實時告警

數據加密與脫敏

  • TDE 表空間加密:CREATE TABLESPACE secure_ts ENCRYPTION USING 'AES256' DEFAULT STORAGE(ENCRYPT)
  • 敏感列加密:CREATE TABLE pii (id NUMBER, ssn VARCHAR2(11) ENCRYPT NO SALT)
  • 動態數據遮罩 (12c+) / Virtual Private Database (VPD) 行級安全
  • 非生產環境強制靜態脫敏 (Data Masking Pack)

四、管理流程與合規

  1. 變更管理:所有 DDL/DCL 變更走工單、審批、執行腳本版本化、回滾方案預案
  2. 脆弱性掃描:季度運行 Oracle Database Security Assessment Tool (DBSAT),修復 HIGH/MEDIUM 項目
  3. 權限複核:半年一次業務賬號權限複核,撤銷離職/轉崗人員權限
  4. 應急預案:制定數據洩露、勒索軟件、誤操作恢復演練腳本,季度實戰演練
  5. 合規對標:等保 2.0 三級、GDPR、PCI-DSS、SOX 要求映射至具體配置基線

五、已知漏洞類別與應對 (歷史參考)

  • 9iAS Web Cache DoS (2002) → 升級/禁用/補丁
  • OID LDAP 緩衝區溢位 → 限制網絡訪問/補丁
  • JSP 源碼洩露 → 移除默認示例/配置安全
  • Linux 特定版本提權 → 內核升級/最小化安裝

核心認知:漏洞不可避免,關鍵在於暴露面最小化、補丁時效性、補丁前緩解措施、入侵檢測能力。

結語

Oracle 安全非產品屬性,而是系統工程。將上述清單轉化為自動化基線腳本(Ansible/Terraform/OEM Compliance Framework),納入 CI/CD 管道與日常巡檢,方能構建可持續演進的安全體系。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved