Oracle 常被宣稱「牢不可破」,但駭客視角下,錯誤配置、預設帳號、未修補漏洞、過度授權構成巨大攻擊面。本文從攻擊者視角拆解八大經典滲透路徑,並提供 DBA 可落地的防禦清單,構建纵深防御體系。
Web 應用未對輸入參數化/過濾,攻擊者在表單注入 ' OR 1=1-- 或 '); SELECT * FROM all_users;--,繞過驗證、竊取數據、甚至提權。
利用 DBMS_EXPORT_EXTENSION 觸發異常處理程序以 SYS 權限執行任意代碼,歷史版本 8i~10g 普遍受影響。
EXECUTE IMMEDIATE ... USING 或 DBMS_SQL.BIND_VARIABLESELECT/INSERT/UPDATE/DELETE 業務表,無 CREATE PROCEDURE、EXECUTE ANY PROCEDURE| 用戶 | 預設密碼 |
|---|---|
| SYS | CHANGE_ON_INSTALL / MANAGER |
| SYSTEM | MANAGER / CHANGE_ON_INSTALL |
| SCOTT | TIGER |
| DBSNMP | DBSNMP |
| CTXSYS | CHANGE_ON_INSTALL |
| OUTLN | OUTLN |
ALTER USER scott ACCOUNT LOCK PASSWORD EXPIRE;PASSWORD_VERIFY_FUNCTION 強制複雜度、歷史記憶、鎖定策略SELECT username, account_status FROM dba_users WHERE password_versions LIKE '%10G%'; (檢測舊弱雜湊)SYS AS SYSDBA 帳號預設**不鎖定**,成首選目標FAILED_LOGIN_ATTEMPTS = 5 (Profile 設定)PASSWORD_LOCK_TIME = 1 (鎖定 1 天)AUDIT SESSION WHENEVER NOT SUCCESSFUL;UTL_TCP 發送低頻數據流至外部伺服器DBMS_CRYPTO、DBMS_OBFUSCATION_TOOLKIT 加密隱藏流量規避 IDSBACKUP ENCRYPTION)、異地存儲、存取審計UTL_TCP、UTL_SMTP、UTL_HTTP 公共執行權限:REVOKE EXECUTE ON utl_tcp FROM PUBLIC;LOG_FILE 指向 .rhosts,寫入信任主機實現無密碼 rsh/rloginSID_LIST_LISTENER 操縱)LSNRCTL> SET PASSWORD → SAVE_CONFIGADMIN_RESTRICTIONS_LISTENER=ON 禁止遠程修改參數VALID_NODE_CHECKING_REGISTRATION_LISTENER=ON + REGISTRATION_INVITED_NODES 白名單LOG_DIRECTORY_LISTENER、LOG_FILE_LISTENER 定期分析CREATE ANY TRIGGER 的低權用戶SYS.AUD$、應用日誌表)SYS schema 建立觸發器,觸發條件為該表 INSERT/UPDATEAUTHID CURRENT_USER 存儲過程 → EXECUTE IMMEDIATE 'GRANT DBA TO low_user'SYS 權限執行 → 獲得 DBACREATE ANY TRIGGER/PROCEDURE/TYPE 等強權限AUD$, FGA_LOG$) 設為 READ ONLY 或移至專用表空間AUDIT GRANT ANY PRIVILEGE, GRANT ANY ROLE, CREATE ANY TRIGGER BY ACCESS;DBA_SYS_PRIVS、DBA_TAB_PRIVS 掃描異常授權DBMS_SCHEDULER 建立 EXECUTABLE 作業CREATE LIBRARY 載入惡意共享庫REVOKE EXECUTE ON dbms_java FROM PUBLIC;、REVOKE CREATE LIBRARY FROM PUBLIC;SYS 操作 OSUTL_FILE 讀寫 OS 檔案 (需 CREATE DIRECTORY 權限)java.io.File 直接存取ORACLE_LOADER) 讀取敏感檔案DIRECTORY 物件控管路徑,回收 CREATE ANY DIRECTORY$ORACLE_HOME、數據文件目錄權限 750、擁有者 oracle:oinstallUTL_FILE、DBMS_SCHEDULER、EXTERNAL TABLE 操作| 層面 | 關鍵動作 | 驗證頻率 |
|---|---|---|
| 帳號 | 修改預設密碼、鎖定無用帳號、Profile 複雜度/鎖定 | 月度 |
| 網路 | Listener 密碼/白名單、防火牆僅開應用 IP | 季度 |
| 權限 | 回收 ANY 權限、最小化應用帳號、審計 GRANT/DDL | 月度 |
| 補丁 | CPU 季度評估、關鍵漏洞 30 天內修補 | 季度 |
| 加密 | 備份加密、敏感欄 TDE、傳輸 TLS | 半年 |
| 監控 | DAM/統一審計、異常登入/提權/外連告警 | 實時 |
| OS | 最小權限安裝用戶、目錄權限收緊、禁用非必要外部程序 | 年度 |
資料庫安全**不是產品功能,而是持續流程**。駭客只需一個疏忽;防禦者需在每一層都不留縫隙。將上述清單納入例行運維、審計、應急演練,才能將 Oracle 真正變成「牢不可破」的資產金庫。