Oracle
Oracle 數據庫安全問題:任何人都可以使用 SQL*PLUS 登錄,使用任何使用者名和任何錯誤的密碼
我在 CentOS 6.4 上使用 Oracle DB 11g-R2,不幸的是,有一個可怕的問題嚇壞了我。
任何人都可以使用 SQL*PLUS 登錄,使用任何使用者名和任何錯誤的密碼。
考慮有人使用
SYS AS SYSDBA
錯誤的密碼登錄,並獲取他想要的所有數據庫和表。不是很糟糕嗎?我知道你可能會說,當有人身體進入時,他們可以繞過其餘的,是的。但是任何知道這個問題的人都不需要親自進入,他們只需要 IP 地址和您的數據庫名稱即可遠端登錄或使用腳本通過 SQL*PLUS 執行他們需要的操作。
幸運的是,任何人使用錯誤的密碼登錄 3 次,下次將被鎖定。但是有什麼好處呢?作為一名攻擊者,我只需要一次進入某人的數據庫就可以獲得我需要的所有東西。
有誰知道我該如何解決這個問題以及為什麼會這樣?
OSDBA 組(通常為 dba)
首次在系統上安裝 Oracle 數據庫軟體時必須創建此組。
SYSDBA
該組標識具有數據庫管理權限(特權)的作業系統使用者帳戶。這是預期的行為,因為您正在從屬於
DBA
OS 組的 OS 使用者記錄 Oracle 數據庫。[oracle@localhost Desktop]$ sqlplus sys/abc as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Tue Nov 15 11:23:20 2016 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options [oracle@localhost Desktop]$ groups oinstall dba [oracle@localhost Desktop]$ su joe [joe@localhost oracle]$ sqlplus sys/abc as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Tue Nov 15 11:26:56 2016 Copyright (c) 1982, 2011, Oracle. All rights reserved. ERROR: ORA-01031: insufficient privileges
Joe
讓我們看看屬於哪個作業系統使用者組。[joe@localhost oracle]$ groups joe
在這裡,OS User
Joe
不屬於DBA
OS 使用者組,他不能用錯誤的密碼登錄數據庫。但是任何知道這個問題的人都不需要親自進入,他們只需要 IP 地址和數據庫的名稱就可以遠端登錄或使用腳本來做他們需要的事情
sqlplus
。不,這是不正確的,這可以通過
remote_os_authent
初始化參數來控制:SQL> show parameter remote_os_authent NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ remote_os_authent boolean FALSE
設置這個參數
FALSE
可以防止這種情況。我應該如何解鎖在三次錯誤嘗試後被鎖定的使用者?
您可以將
alter user username account unlock
命令用作SYSDBA
.