何子龍
(深圳供電局有限公司,深圳 518000)
Oracle數據庫安全及安全策略研究
何子龍
(深圳供電局有限公司,深圳 518000)
Oracle數據庫是市場占有率第一的數據庫,其安全問題關系到大部分公司業務數據的安全性、私密性、完整性。從權限管理、用戶管理、審計控制、密碼安全四方面研究Oracle數據庫的安全問題,并針對安全問題進行安全策略優化。經過該安全策略加固方法的實施,可以解決大部分Oracle數據庫安全問題,達到保障數據安全的目的。
Oracle;安全策略;數據庫安全
在大數據爆發式發展的安全事件愈發頻繁發生的背景下,數據安全問題愈發重要。數據安全涉及到企業的重要經濟應用,本文提出的方法能夠抵抗大量數據庫攻擊,如SQL注入攻擊等,有效保障Oracle數據庫數據安全。
在權限管理上,使用最小權限原則,需要回收所有應用賬戶的DBA權限,除了系統管理用戶sys和system有DBA權限,其他用戶都不會有DBA權限。
使用如圖1的語句可以查找出當前系統里除了sys/system用戶外,還有哪些用戶擁有DBA權限。如果發現有DBA權限的應用賬戶,需要回收,只授權滿足應用需要的權限。
DBSNMP用戶是用于EM管理的用戶,數據庫大部分都沒有安裝EM,所以需要我們把DBSNMP用戶手工鎖住。
scott用戶是數據庫演示用戶,對于Oracle數據庫,如果有scott用戶存在,我們也需要把它鎖住。
鎖用戶的語法:
alter user dbsnmp account lock;
alter user scott account lock;
審計可以分為3類。或者說,可以從3種角度去啟用審計。
3.1 語句審計(Statement Auditing)
對預先指定的某些SQL語句進行審計。這里從SQL語句的角度出發,進行指定。審計只關心執行的語句。
例如,audit CREATE TABLE;命令,就表明對"create table"語句的執行進行記錄,不管這語句是否是針對某個對象的操作。
3.2 權限審計(Privilege Auditing)
對涉及某些權限的操作進行審計。這里強調“涉及權限”

圖1
例如,audit CREATE TABLE;命令,又可以表明對涉及“CREATE TABLE”權限的操作進行審計。所以說,在這種命令的情況下,既產生一個語句審計,又產生了一個權限審計。這時“語句審計”和“權限審計”相互重復的。
3.3 對象審計(Object Auditing)
記錄作用在指定對象上的操作。
3.4 如何啟用審計
通過數據庫初始化參數文件中的AUDIT_TRAIL初始化參數啟用和禁用數據庫審計。
DB:啟用數據庫審計并引導所有審計記錄到數據庫的審計跟蹤
OS:啟用數據庫審計并引導所有審計記錄到操作系統的審計跟蹤。可以用AUDIT_FILE_DEST初始化參數來指定審計文件存儲的目錄。
NONE:禁用審計,為默認值。
目前Oracle數據庫使用的啟用方式是OS,將審計記錄到操作系統的目錄下,以減少對數據庫資源占用。
應用于Oracle數據庫的審計策略代碼如下:


解讀:
audit_sys_operations=true sys 用戶在數據庫的所有記錄將會記錄下來。
audit_trail=os 審計記錄的結果存放到操作系統的目錄下。
resource_limit=true 控制用戶對于數據庫資源的使用。
remote_login_passwordfile=none 禁止sys用戶使用網絡方式登錄,只能在服務器本地驗證登錄。
圖2為sys用戶登錄系統后,查詢當前數據庫的所有用戶的結果。
在存放審計記錄的目錄中找到審計文件,可以看到這條記錄被記錄下來了(如圖3)。
圖4演示了sys用戶和其他用戶使用網絡方式登錄數據庫服務器。
結果顯示sys用戶不能使用網絡遠程登錄服務器,其他用戶可以。sys用戶只能通過本地驗證的方式登錄到數據庫服務器。
目前Oracle數據庫實施密碼安全加固的策略,策略的參數包括有:密碼長度、復雜度檢測、最大最小使用時間、過期警報時間、最大登錄失敗次數以及鎖定時間的設置[1]。

圖2

圖3

圖4
Oracle數據庫的密碼安全策略代碼如下:

執行密碼安全策略的代碼后,查詢結果如圖5。

圖5
Oracle默認提供了一個密碼策略的SQL執行文件utlpwdmg.sql。Linux/UNIX默認路徑是$Oracle_HOME/ rdbms/admin/utlpwdmg.sql[2]。Windows路徑位置可以通過搜索來獲得。
(1)文件utlpwdmg.sql的密碼策略設置了密碼長度的檢查,如果密碼長度小于8,密碼設置將會不成功(如圖6)。

圖6
測試:新密碼設置為321*dba失敗,要求必須是8位以上(如圖7)。

圖7
提示密碼的長度小于8位數,用戶pos的密碼修改不成功。
(2)文件utlpwdmg.sql的密碼策略設置了密碼和用戶名是否同名的檢查。如果密碼和用戶一樣,密碼設置將會不成功(如圖8)。

圖8
測試:用戶名和密碼相同,密碼不論是小寫還是大寫,修改都不會成功。顯示密碼復雜度檢測功能開啟(如圖9)。

圖9
(3)文件utlpwdmg.sql的密碼策略設置了密碼是否太簡單。如果是用('welcome1'、'database1'、'account1'、'user1234、'password1'、'Oracle123'、'computer1'、'abcdefg1',、'change_on_install'、'Oracle')這些簡單字符做為用戶的密碼,密碼設置將會不成功(如圖10)。

圖10
測試如圖11。

圖11
(4)文件utlpwdmg.sql的密碼策略設置了密碼必須包含字母和數字。如果密碼沒有密碼和數字,密碼設置將會不成功(如圖12)。
測試:新密碼設置為posofOracle失敗,要求必須至少一個數字、一個字母,說明密碼復雜度檢測已經開啟(如圖13)。
(5)通過配置文件還可以發現目前密碼策略中密碼存活時間為60天,密碼警告時間為3天,登錄失敗次數為3次,鎖定時間為1天,密碼重用需要修改了5次或使用了365天。

圖12

圖13
測試:當密碼登錄失敗3次后,如果密碼再次輸入錯誤,賬號將會被鎖。

圖14
綜上所知:utlpwdmg.sql腳本文件生效,其它的密碼策略也已經生效。
由上所述,本文從權限安全、用戶安全、審計、密碼安全四方面著手闡述數據庫安全問題及其安全策略解決方法。經過本文安全策略加固方法的實施,可以解決大部分Oracle數據庫安全問題,達到保障數據安全的目的。
[1] 劉志敏.Oracle數據庫應用管理解決方案[M].北京:電子工業出版社,2002
[2] 滕永昌.Oracle 10g數據庫系統原理[M].北京:機械工業出版社,2006
Research on the Oracle Database Security and Security Strategy
HE Zi-long
(Shenzhen Power Supply Bureau Limited Company,Shenzhen 518000)
Oracle database has the largest market share of the database market.Its security issues related to the security of the majority of the company's business data,privacy,integrity.Researches on the security problem of Oracle database from four areas:security issue rights management,user management,audit controls and password security.Also researches on security issues for security policy optimization.After implementation of this security policy reinforcement method can solve most of the Oracle database security issues to ensure data security.
Oracle;Security Policy;Database Security
1007-1423(2015)01-0022-05
10.3969/j.issn.1007-1423.2015.01.006
何子龍(1984-),男,廣東深圳人,碩士,中級工程師,從事領域為網絡技術、信息安全技術和管理工作
2014-08-28
2014-12-15