控制點 |
安全要求 |
要求解讀 |
測評方法 |
預期結果或主要證據 |
身份鑒別 |
a)應對登錄的用戶進行身份標識和鑒別,身份標識具有唯一性,身份鑒別信息具有復雜度要求並定期更換 |
應檢查Oracle數據庫的口令策略配置,查看其身份鑒別信息是否具有不易被冒用的特點,例如,口令足夠長,口今復雜(如規定字符應混有大,小寫字母數字和特殊字符),口令定期更新,新舊口令的替換要求 |
1)訪談數據庫管理員系統用戶是否已設置密碼,並查看登錄過程中系統賬戶是否使用了密碼進行驗證登錄 2)查看是否啟用口令復雜度函數: select limit from dba_profiles where profile= ' DEFAULT' and resource_name=' PASSWORD_VERIFY_FUNCTION' 3)檢查utlpwdmg.sql 中“-- Check for the minimum length of the password“部分中“length(password)<"后的值 4) PASSWORD_LIFE_TIME(口令過期時限) |
1)需要登錄密碼 2)dba_profiles 策略中PASSWORD_VERIFY_FUNCTION'的值不為UNLLIMITED 3)utlpwdmg.sql 中“-- Check for the minimum length of the password“部分中“length(password)<"后的值為8或以上 4)dba_profiles策略中 PASSWORD_LIFE_TIME不為UNLIMITED |
|
b)應具有登錄失敗處理功能,應配置並啟用結束會話、限制非法登錄次數和當登錄連接超時自動退出等相關措施 |
應檢查數據庫系統,查看是否已配置了鑒別失敗處理功能,並設置了非法登錄次數的限制值,對超過限制值的登錄終止其鑒別會話或臨時封閉帳號。查看是否設置網絡登錄連接超時,並自動退出 |
1)查看是否啟用登錄失敗限制策略,執行: select limit from dba_profiles where profile= ' DEFAULT' and resource name=' FAILED_LOGIN_ATTEMPTS 2)查看是否啟用登錄失敗鎖定策略,執行: select limit from dba_profiles where profile= 'DEFAULT' and resource_ name= PASSWORD_ LOCK_TIME" 3)查看是否啟用登錄超時退出策略,執行:select limit from dba_profiles= 'DEFAULT and resource name= 'IDLE_ TIME' |
1)dba_pofiles策略中 FAILED_LOGIN_ATTEMPTS不為UNLIMITED 2)dba_pofiles策略中 PASSWORD_LOCK_TIME不為UNLIMITED 3)dba_pofiles策略中IDLE_ TIME不為UNLIMITED |
|
c)當進行遠程管理時,應采取必要措施、防止鑒別信息在網絡傳輸過程中被竊聽 |
為了防止包括鑒別信息在內的敏感信息在網絡傳輸過程中被竊聽,應限制從遠程管理數據,如果業務模式需要從遠程進行管理,則應提供包括SSH在內的方式對傳輸數據進行加密 |
1)查看initsSID.ora (%ORAClE_HOME\db_1\NETWORK\ADMIN)中REMOTE_0S _AUTHENT的賦值 2)查看listene.ora (%ORAClE_HOME\db_1\NETWORK\ADMIN)文件中的"LISTENER”-"DESCRIPTION "-"ADDRESS_LIST"-"ADDRESS"- "PROTOCOL"項目的 賦值 3)執行show parameter remote_login_passwordfile |
1)符合,且本項為false, 則符合(為true,遠程操作系統認證。 2)應存在以下項目: PROTOCOL=TCPS (實際為TCP) 3)結果應為NONE,遠程無法登錄,Exclusive (唯 一的數據庫密碼文件登錄 |
|
d)應采用口令、密碼技術、生物技術等兩種或兩種以上組合的鑒別技術對用戶進行身份鑒別,且其中一種鑒別技術至少應使用密碼技術來實現 |
Oracle不能集成其他身份鑒別措施,應通過對操作系統層面實現雙因素,強化數據庫安全 |
查看和詢問系統管理員在登錄數據庫的過程中使用了哪些身份鑒別方法,是否采用了兩種或兩種以上組合的鑒別技術,如口令、數字證書Ukey. 令牌、指紋等,是否有一種鑒別方法使用密碼技術 |
除口令之外,采用了另外一種鑒別機制,此機制采用了密碼技術,如調用了密碼機或采取SM1-SM4等算法 |
訪問控制 |
a)應對登錄的用戶分配賬戶和權限 |
應檢查數據庫系統的安全策略,查看業務數據的管理員是否具有系統管理功能,業務數據庫的操作人員是否具有刪除數據庫表或存儲過程的權限 |
查看每個登錄用戶的角色和權限,是否是該用戶所需的最小權限 |
MGMT_UIEW, SYS, SYSTEM, DBSNMP, SYSMAN是open的狀態,其他都是鎖定 |
|
b)應重命名或刪除默認賬戶,修改默認賬戶的默認口令 |
1)在oracle系統安裝時存在部分默認口今,如 SYS:CHANGE_ON_INSTALL SYSTEM:MANAGER 2)常用口令: oracle:oracle/admin/ora92(ora+版本) sys: oracle/admin system: oralce/admin |
1)登錄驗證sys的口令是否為CHANGE_ON_INSTALL 2)登錄驗證system的口令是否為manager 3)登錄驗證dbsnmp的口今是否為dbsnmp |
1)2)3)使用默認口令無法登陸數據庫賬戶 |
|
c)應及時刪除或停用多余的、過期的賬戶,避免共享賬戶的存在 |
應刪除數據庫中多余的過期的賬戶,如測試帳號等 |
1)在sqIplus中執行命令: select username , account_ status_from dba users 2)查看返回結果中是否存在scott. out1n、 ordsys 等范例數據庫帳號 3)針對上述命令獲得的用戶帳號,查看是否存在過期賬戶,詢問數據庫管理員是否每一個賬戶均為正式、有效的賬戶 4)針對上述命令獲得的用戶帳號,詢問是否存在多人共享賬戶的情況 |
1)不存在示例帳戶 2)應不存在acount status 為“expired"的帳戶;所有帳戶均為必要的管理帳戶或者數據庫應用程序帳戶(不存在測試帳戶/臨時賬戶) 3)每一個數據庫帳戶與實際用戶應為一一對應關系 4)不存在多人共享帳戶的情況 |
|
d)應授予管理用戶所需的最小權限,實現管理用戶的權限分離 |
在Oracle數據庫中,盡量將數據庫系統特權用戶的權限進行分離 |
詢問是否由不同員工分別擔任操作系統管理員與數據庫管理員 |
由不同員工分別擔任操作系統管理員與數據庫管理員 |
|
d)應由授權主體配置訪問控制策略,訪問控制策略規定主體對客體的訪問規則 |
應檢查數據庫系統的安全策略,查看是否明確主體(如用戶)以用戶和/或用戶組的身份規定對客體(如文件或系統設備,目錄表和存取控制表等)的訪問控制,覆蓋范圍是否包括與信息安全直接相關的主體(如用戶)和客體(如文件,數據庫表等)及它們之間的操作[如讀、寫或執行) |
詢問數據庫管理員,數據庫系統是否由特定賬戶進行配置訪問控制策略,具體訪問控制策略是什么 |
由特定賬戶進行配置訪問控制策略,並根據用戶角色限制賬戶權限 |
|
e)訪問控制的粒度應達到主體為用戶級或進程級,客體為文件、數據庫表級 |
明確提出訪問控制的粒度要求,重點目錄的訪問控制的主體可能為某個用戶或某個進程,應能夠控制用戶或進程對文件、數據庫表等客體的訪問 |
詢問數據庫管理員, 訪問控制的粒度主體是否用戶級或進程級,客體是否為文件、數據庫表級 |
由管理用戶進行用戶訪問權限分配進行設置,依據訪問控制策略,對各類文件和數據庫表級進行訪問 |
|
f)應對重要主體和客體設置安全標記,並控制主體對有安全標記信息資源的訪問 |
應通過Oracle數據庫或其它措施對重要的信息資源設置敏感標記,從而實現強制訪問控制功能 |
1)檢查是否安裝Oracle Lable Security模塊 2)查看是否創策略:SELECT policy_name,status form DBA_SA_POLICIES 3)查看是否創建級別: SELECT * form dba_sa_levels ORDER BY level_number 4)查看標簽創建情況: select * from dba_sa_labels. 5)詢問重要數據存儲表格名稱 6)查看策略與模式|表的對應關系: select * from dba_sa_tables policles, 判斷是否針對重要信息資源設置敏感標簽 |
1)返回的用戶用戶中應存在'LBACSYS' 2)存在狀態為"enable' 的標簽策略 3) -4)返回結果不為空 5)重要資源所在的表格名稱 6)返回結果應不為空,且項目包含5)的結果 |
安全審計 |
a)應啟用安全審計功能,審計覆蓋到每個用戶,對重要的用戶行為和重要安全事件進行審計 |
應檢查數據庫系統是否開啟安全審計功能,查着當前審計范圍是否覆蓋到每個用戶 |
1)執行: selecet value form v$parameter where name='audit_trail', 查看是否開啟審計功能 2)用不同的用戶登錄數據庫系統並進行不同的操作,在Oracle數據庫中查看日志記錄是否滿足要求。 |
1) audit_trail 結果應不為pone 2)可在Oracle數據庫中查看不同的用戶登錄數據庫系統並進行不同的操作日志記錄。 |
|
b)審計記錄應包括事件的日期和時間,用戶、事件類型,事件是否成功及其他與審計相關的信息 |
應檢查數據庫系統,查看審計策略是否覆蓋系統內重要的安全相關事件,例如,用戶登錄系統、自主訪問控制的所有操作記錄、重要用戶行為(如增加/刪除用戶,刪除庫表)等 |
1)show parameter audit_trail ?>show parameter audit_sys_operations 3)select sel,upd,del,ins,gra from dba_obj_audit _opts 4)select sel,upd,del,ins,gra from dba_stmt_audit _opts 5)select sel,upd,del,ins,gra from dba_priv_audit _opts 6)記錄一條日志內容,確認其包括事件發生的日期與時間、觸發事件的主體與客體、事件的類型、事件成功或失敗、身份鑒別事件中請求的來源(如末端標識符)、事件的結果等內容 |
1)應不為none 2)應為true 3)返回對象審計選項,應不全部為“-/-” 4)返回語句審計選項,應不全部為“-/-” 5)返回特權審計選項,應不全那為“-/-” 6)默認滿足 |
|
c)應對審計記錄進行保護,定期備份,避免受到未預期的刪除、修改或覆蓋等 |
應檢查Oracle數據庫系統, 查看是否對日志進行了權限設置,非授權人員不能對日志進行操作,另外,應防止審計日志空間不夠而導致無法記錄日志的情況發生 |
是否嚴格限制用戶訪問審計記錄的權限,如采用audit vault 等 |
安全審計管理員定期對審計記錄進行備份,對審計記錄的維護和導出由專人負責 |
|
d)應對審計進程進行保護,防止未經授權的中斷 |
對於Oracle數據庫系統默認符合,但是如果采取了第三方工具,則應檢查數據庫系統,查看未授權用戶是否能中斷審計進程 |
1)詢問是否嚴格限制管理員權限 2)用戶可以通過alter system set audit_trail=none並重啟實例關閉審計功能,查看是否成功 |
1)已限制管理員審計功能權限 2)測試其他人員無法對審計進程開啟、關閉操作,並記錄 |
入侵防范 |
a)應通過設定終端接入方式或網絡地址范圍對通過網絡進行管理的管理終端進行限制 |
Oracle數據庫限制遠程連接IP地址 |
查看在sqlnet. ora文件中是否配置參數: tcp.validnode_checking ,tcp,invited_nodes tcp.validnode_checking=yes tcp.invited_nodes=() #運維訪問的IP列表,各IP之間用逗號分隔 |
在sqlnet. ora文件中tcp.validnode_checking=yes tcp.invited_nodes已配置參數ip列表 |
|
b) 應能發現可能存在的已知漏洞,並在經過充分測試評估后,及時修補漏洞 |
攻擊者可能利用操作系統存在的安全漏洞對系統進行攻擊,應對系統進行漏洞掃描,及時發現系統中存在的已知漏洞,並在經過充分測試評估后更新系統補丁,.避免遭受由系統漏洞帶的風險 |
訪談Oracle補丁升級機制,查看補丁安裝情況: #cd $ORACLE HOME/0patch opatch lsinventory |
返回OPatch version信息和OUI version信息 |
數據備份恢復 |
a)應提供重要數據處理系統的熱冗余,保證系統的高可用性 |
數據庫系統至少達到以下的備份要求:提供本地實時備份的功能,當數發生錯誤時,能及時恢復數據 |
1)詢間系統管理員數據庫的備份和恢復策略是什么,查看是否達到上述要求 2)檢查相關文檔和配置,查看是否與系統管理員回答的一致 |
)核查備份結果與備份策略一致 2)核查近期恢復測試記錄能夠進行正常的數據恢復 |
|
b)應提供異地實時備份功能,利用通信網絡將重要數據實時備份至備份場地 |
應提供災備中心,對重要的數據提供異地數據級備份,保證當本地系統發生災難性后果不可恢復的,利用異地保存的數據對系統數據能進行恢復 |
1)詢問系統管理員是否提供異地數據備份功能,是否定時批量傳送至備用場地 2)如果條件允許,則查看其實現技術措施的配置情況 |
1)已部署異地備份機房,並符合備份策略通過網絡定期進行異地備份 2)查看實現的配置結果與備份策略一致 |