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

Oracle 易被忽視的安全隱患:DBSNMP 默認口令與過高權限

     編輯:Oracle 資料庫相關知識

隱患描述

Oracle 典型安裝後自動創建用戶 DBSNMP (密碼同名),用於運行 Intelligent Agent (IA)。眾多 DBA 修改 SYS/SYSTEM 密碼卻忽略此用戶。

權限分析

SQL> CONNECT dbsnmp/dbsnmp
SQL> SELECT * FROM session_privs;
-- 關鍵系統權限:
CREATE SESSION
ALTER SESSION
UNLIMITED TABLESPACE      -- 可無限制佔用表空間
CREATE PUBLIC SYNONYM     -- 可創建公共同義詞
CREATE TABLE, CREATE VIEW, CREATE PROCEDURE, CREATE TRIGGER, ...
ANALYZE ANY
CREATE TYPE, CREATE OPERATOR, CREATE INDEXTYPE

攻擊後果

  1. 拒絕服務 (DoS): 利用 UNLIMITED TABLESPACE 寫入垃圾數據填滿表空間,導致數據庫掛起/崩潰,7×24 業務中斷。
  2. 命名空間污染: CREATE PUBLIC SYNONYM 可劫持公共對象解析路徑,誤導應用查詢惡意視圖/表。
  3. 對象創建/分析: 可創建表/視圖/Procedure、執行 ANALYZE ANY 干擾優化器統計信息。

修復建議

-- 1. 立即修改密碼 (複雜度滿足 Profile 要求)
ALTER USER dbsnmp IDENTIFIED BY "Str0ngP@ssw0rd!" ACCOUNT UNLOCK;

-- 2. 若不使用 Enterprise Manager / Grid Control / Cloud Control
--    可鎖定該用戶 (IA 將無法啟動,評估業務影響)
ALTER USER dbsnmp ACCOUNT LOCK;

-- 3. 審計:啟用統一審計或標準審計記錄 DBSNMP 登錄嘗試
AUDIT SESSION BY dbsnmp BY ACCESS;

最佳實踐清單

  • [ ] 安裝後立即修改 **所有** 默認口令用戶 (SYS, SYSTEM, DBSNMP, OUTLN, ORACLE_OCM 等)。
  • [ ] 實施 PASSWORD_VERIFY_FUNCTION 強制密碼複雜度。
  • [ ] 定期掃描 DBA_USERS_WITH_DEFPWD 視圖 (11g+) 發現默認密碼賬戶。
  • [ ] 最小權限原則:僅授予 IA 運行所需權限,回收 UNLIMITED TABLESPACE、CREATE PUBLIC SYNONYM 等高危權限 (需測試 IA 功能)。
  • [ ] 網絡層面限制:防火牆/ACL 僅允許管理主機訪問 1521/1158/5500 端口。

延伸:Oracle 12c+ 內部賬戶管理

  • ORACLE_MAINTAINED = 'Y' 標記內部維護賬戶,不可直接登錄 (需 ALTER SESSION SET "_ORACLE_SCRIPT"=TRUE 解鎖)。
  • DBSNMP 在 12c+ 仍存在但權限收斂,建議同樣修改密碼並鎖定 (若不用 EM)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved