首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle 資料庫安全風險分析與防護指南:常見攻擊向量與緩解措施

     編輯:Oracle 資料庫相關知識

前言

本文針對常見的 Oracle 資料庫滲透測試指令進行風險分析,並提供對應的防護建議。嚴禁將此資訊用於未授權的系統測試或攻擊行為。所有技術細節僅供防禦參考,協助 DBA 與資安人員建立完善防線。

風險一:預設/弱密碼帳號

攻擊向量

  • CONNECT / AS SYSDBA(OS 驗證繞過密碼)
  • 預設帳號:SYS/CHANGE_ON_INSTALL、SYSTEM/MANAGER、SCOTT/TIGER
  • CONNECT INTERNAL/ORACLE AS SYSDBA(舊版相容)

防護措施

  • 安裝後立即修改所有預設帳號密碼,啟用密碼複雜度驗證函數(VERIFY_FUNCTION)。
  • 鎖定並過期不需使用的預設帳號:ALTER USER scott ACCOUNT LOCK PASSWORD EXPIRE;
  • 限制作業系統 dba 群組成員,僅授權可信任人員使用 OS 驗證。
  • 啟用 SEC_CASE_SENSITIVE_LOGON = TRUE(11g+)強制大小寫敏感。

風險二:過度授權與權限提升

攻擊向量

  • GRANT CONNECT, RESOURCE, DBA TO user; 過度授予 DBA 權限
  • GRANT SYSDBA TO user; 直接授予系統管理權限
  • 查詢 V_$PWFILE_USERS 列舉具備 SYSDBA/SYSOPER 的帳號

防護措施

  • 遵循最小權限原則:應用帳號僅授予必要物件權限,不授予系統權限。
  • 定期審核 DBA_SYS_PRIVS、DBA_ROLE_PRIVS、DBA_TAB_PRIVS。
  • 建立自訂角色彙整業務所需權限,避免直接授予 RESOURCE、DBA。
  • 審計關鍵權限變更:AUDIT GRANT ANY PRIVILEGE, GRANT ANY ROLE, ALTER USER;

風險三:資料庫啟動與關閉控制

攻擊向量

  • STARTUP、SHUTDOWN IMMEDIATE 等實例控制指令

防護措施

  • 限制 SYSDBA、SYSOPER 登入來源(sqlnet.ora 設定 SQLNET.AUTHENTICATION_SERVICES = (NTS) 或防火牆限制)。
  • 使用 Oracle Restart (Grid Infrastructure) 管理實例生命週期,避免手動操作。

風險四:資訊洩露與偵察

攻擊向量

  • 查詢 V$DATABASE、V$INSTANCE、ALL_TABLES 取得結構資訊
  • DESC 查看表結構
  • SELECT * FROM user_source 取得 PL/SQL 原始碼

防護措施

  • 移除 PUBLIC 對敏感字典視圖的 SELECT 權限:REVOKE SELECT ON V_$DATABASE FROM PUBLIC;
  • 啟用 O7_DICTIONARY_ACCESSIBILITY = FALSE(預設)防止非 SYS 存取 SYS 物件。
  • 使用 DBMS_DDL.WRAP 加密 PL/SQL 原始碼(參見文章 125367)。
  • 實施資料庫防火牆 / SQL 防火牆 封鎖異常查詢模式。

風險五:作業系統層面滲透

  • SU - ORACLE 切換至 Oracle 安裝擁有者帳號
  • 讀取 $ORACLE_HOME/network/admin/tnsnames.ora、sqlnet.ora 取得連線資訊

防護措施

  • OS 層面最小權限:Oracle 軟體擁有者不可為 root,禁止直接登入(/sbin/nologin)。
  • 網路加密:啟用 SQLNET.ENCRYPTION_SERVER = REQUIRED、SQLNET.CRYPTO_CHECKSUM_SERVER = REQUIRED。
  • 定期審核 listener.ora、sqlnet.ora 設定,關閉不需的服務(如 EXTPROC)。

綜合防護清單

  1. 帳號管理:強密碼、鎖定預設帳號、定期輪換、審計登入失敗。
  2. 權限管控:最小權限、角色基礎授權、定期審核、審計關鍵操作。
  3. 網路加密:Native Network Encryption、TCPS (SSL/TLS)。
  4. 資料加密:TDE (Transparent Data Encryption) 保護靜態資料。
  5. 審計與監控:Unified Auditing、Fine-Grained Auditing、Real-time SQL Monitoring。
  6. 補丁管理:及時套用 Critical Patch Update (CPU)。
  7. 備份與恢復:定期測試 RMAN 備份、Data Guard 異地容災。

結語

資料庫安全是纵深防禦體系的核心層。瞭解攻擊者視角的常見向量,轉化為具體的防護配置與稽核機制,才能有效降低資料外洩與系統癱瘓風險。

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