等級保護測評三級詳解測評要求項測評方法及測評步驟
等級保護【數據庫Oracle】測評:
詳解【數據庫Oracle】(三級):身份鑒別、訪問控制、安全審計、資源控制四個控制點的測評要求項、測評方法及測評步驟!
身份鑒別
a)應對數據庫系統的用戶進行身份標識和鑒別;
測評方法及步驟:
1)以默認口令或者常見口令嘗試登錄數據庫,查看是否成功,查看是否需要口令以及是否存在空口令
$ sqlplus/nolog
SQLconnuser/password as sysdba
2)或者使用Oracle客戶端管理控制臺(Enterprise Manager Console)進行登錄
3)默認口令包括sys/change_on_install;system/manager,scott/tiger,常用口令包括oracle:admin/oracle;sys:admin:oracle等。(更改用戶口令alter user user_name identified by password),或者用select * from dba_users;查看賬號口令;
b)數據庫系統管理用戶身份標識應具有不易被冒用的特點,口令應有復雜度要求并定期更換;
測評方法及步驟:
1)select username,profile fromdba_user;了解用戶使用的profile
2)select * from dba_profiles whereprofile='default';查看系統本身的profile的配置參數都有哪些?
PASSWORD_VERIFY_FUNCTIONverify_function為密碼復雜度驗證函數已經開啟。這個oracle默認verify_function()函數,要求口令密碼最小長度4、不能和用戶名相同、至少有一個字母、數字和特殊字母,舊密碼和新密碼至少有三位不同。如果你覺得這個要求還太低,那你就創(chuàng)建自己復雜的驗證函數
3)檢查utlpwdmg.sql中"-- Check for the minimum length of the password"部分中"length (password)
c)應啟用登錄失敗處理功能,可采取結束會話、限制非法登錄次數和自動退出等措施;
測評方法及步驟:
1)select limitfrom dba_profiles where resource_name='FAILED_LOGIN_ATTEMPTS
FAILED_LOGIN_ATTEMPTS:最大錯誤登錄次數
PASSWORD_GRACE_TIME:口令失效后鎖定 時間
PASSWORD_LIFE_TIME:口令有效時間
PASSWORD_LOCK_TIME:登錄超過有效次數鎖定時間
查看有無對各項進行時間/次數上的設置和限制;
d)當對服務器進行遠程管理時,應采取必要措施,防治鑒別信息在網絡傳輸過程中被竊聽;
測評方法及步驟:
1)詢問管理員是否采取加密手段保證數據庫的訪問信息不被竊聽
2)在9i中查看數據庫安裝目錄下的\admin\DB_NAME\pfile\initSID.ora中REMOTE_OS_AUTHENT的賦值,確認是否允許管理員對數據庫進行遠程連接和管理,其他版本用命令“SHOW PARAMETERS AUTH;”記錄是否允許遠程訪問
3)或者圖形界面管理中查看打開Oracle客戶端管理控制臺(Enterprise Manager Console);添加被評估數據庫的連接信息,使用sys或system用戶登錄數據庫;在左側菜單欄中打開“例程”,選中“配置”欄,再選擇“一般信息”頁面,點擊“所有初始化參數”;在彈出的界面中,查看“remote_os_authent”參數行的設置,為是否允許遠程連接,如實記錄該原始數據或拷屏
4)查看lsnrctl status查看是否存在TCPS協議;
e)應為數據庫系統的不同用戶分配不同的用戶名,確保用戶名具有唯一性;
測評方法及步驟:
1)詢問管理員,是否為不同的用戶分配了不同的賬戶。可檢索賬戶“selectusername,account_status from dba_users”,并詢問是否建立制度,確保不同人員使用不同用戶登錄數據庫系統;
f)應采用兩種或兩種以上組合的鑒別技術對管理用戶進行身份鑒別;
測評方法及步驟:
1)詢問管理員數據庫是否采用了2種以上身份鑒別方式進行身份認證,如是否部署CA認證等第三方認證產品進行認證;
2)查看配置文件 db_1\NETWORK\ADMIN目錄下或$TNS_ADMIN/sqlnet.ora的sqlnet.ora,查看SQLNET_AUTHENTICATION_SERVICES的值,確認數據庫管理員指定的鑒別方式是否與管理員回答的一致,值為NTS時,則為使用windows系統認證,當為none時,則需要雙重身份認證。但是不為雙因子認證;
此條中判斷以第一條為準,第二條僅做參考,不對結果造成影響;
訪問控制
a)應啟用訪問控制功能,依據安全策略控制用戶對資源的訪問;
測評方法及步驟:
1)linux下在數據庫的操作系統中打開$ORACLE_HOME\bin目錄,并找到可執(zhí)行程序Oracle;
在操作系統中運行命令:ls –al oracle;查看其運行、讀寫權限;
2)訪談管理員是否有其他方式(如防火墻、ACL、IPsec等方式)進行端口/IP級的訪問限制,或者其他方式對數據庫訪問的控制,并進行驗證;
判定依據主要參考第三條,第一二條為輔助依據;
b)應根據管理用戶的角色分配權限,實現管理用戶的權限分離,僅授予管理用戶所需的最小權限;
測評方法及步驟:
1)查看應用賬戶是否屬于DBA組權限
2)select grantee from dba_role_privs where grante_role='DBA' and grante not in('SYS','SYSTEM','CTXSYS','WmSYS','SYSMAN');
c)應實現操作系統和數據庫系統特權用戶的權限分離;
測評方法及步驟:
詢問管理員是否由不同員工分別擔任操作系統管理員與數據庫管理員
登錄操作系統,查看是否能對數據庫系統進行操作;
d)應限制默認帳戶的訪問權限,重命名系統默認帳戶,修改這些帳戶的默認口令;
測評方法及步驟:
詢問管理員:應盡量重命名數據庫系統的默認賬戶,如果部分賬戶無法重命名,則應加強這些賬戶的口令強度,確保這些賬戶不被授權使用;
e)應及時刪除多余的、過期的帳戶,避免共享帳戶的存在;
測評方法及步驟:
1、在sqlplus中執(zhí)行命令
desc dba_users
selectusername,account_status from dba_users where account_status='OPEN'
2、查看返回結果中是否存在scott、outln、ordsys等范例數據庫賬號,在windows中或者用圖形用戶界面找到安全性查看用戶狀態(tài)檢查是否有過期、共享帳戶存在;
f)應對重要信息資源設置敏感標記;
測評方法及步驟:
1)檢查是否安裝oracle label security模塊(如無,下面步驟可省略)select username from dba_users;查看有無lbacsys的用戶,如無,則無安裝Oracle Label Security模塊
2)查看是否創(chuàng)建策略:select policy_name,statusfrom DBA_SA_POLICIES
3)查看標簽創(chuàng)建情況:select * fromdba_sa_lables;
g)應依據安全策略嚴格控制用戶對有敏感標記重要信息資源的操作;
測評方法及步驟:
登錄sqlplus,查看用戶的標簽
select * fromdba_sa_lables
select * fromdba_sa_tables_policies;可讓管理員演示選擇特定的用戶和表進行驗證敏感標記功能是否正確;
安全審計
a)審計范圍應覆蓋到服務器和重要客戶端上的每個數據庫用戶;
測評方法及步驟:
檢查并記錄數據庫操作審計的配置策略
show parametersaudit;查看數據庫審計的目錄及審計是否開啟,審計級別
1.windows中打開Oracle客戶端管理控制臺(Enterprise Manager Console)
2.添加被評估數據庫的連接信息,使用sys或system用戶登錄數據庫
3.在左側菜單欄中打開“例程”,選中“配置”欄,再選擇“一般信息”頁面,點擊“所有初始化參數”
4.在彈出的界面中,查看“audit_trail”參數行的設置,如實記錄該原始數據或拷屏。如果為linux系統執(zhí)行show parameters audit_trail;查看是否開啟審計功能
5.進行管理員和一般用戶登錄登出,查看審計日志是否能正確記錄
6.以上條件不滿足時,詢問管理員是否有第三方數據庫審計軟件;
b)審計內容應包括重要用戶行為、系統資源的異常使用和重要系統命令的使用等系統內重要的安全相關事件;
測評方法及步驟:
查看AUDIT_TRAIL的值為NONE為關閉審計功能,audit_sys_operations為YES審計系統重要操作;
c)審計記錄應包括事件的日期、時間、類型、主體標識、客體標識和結果等;
測評方法及步驟:
select * fromsys.aud$,select * fromdba_audit_trail,記錄審計記錄中事件的日期、時間、類型、主體標識、客體標識和結果等記錄情況;
d)應能根據記錄數據進行分析,并生產審計報表;
測評方法及步驟:
詢問管理員是否安裝并使用了oracle audit vault等日志分析工具并查看相關報表,或者是否采用了第三方數據庫審計軟件以及具有報表功能并定期生成報表;
e)應保護審計進程,避免受到未預期的中斷;
測評方法及步驟:
詢問是否嚴格限制數據庫管理員權限,系統管理員能否進行與審計相關的操作。用戶可以通過alter system set audit_trail='NONE' scope=spfile;,查看是否成功;
f)應保護審計記錄,避免受到未預期的刪除、修改或覆蓋等;
測評方法及步驟:
詢問數據庫管理員,是否嚴格限制用戶訪問審計記錄的權限,如采用audit vault等,或者第三方審計系統,并檢查是否定期對審計日志做備份;
資源控制
a)應通過設定終端接入方式、網絡地址范圍等條件限制終端登錄;
測評方法及步驟:
方法一:人工審計
1.以文本文件的方式,打開操作系統中的數據庫服務配置文件“SQLNET.ORA”(數據庫目錄下的NETWORK\ADMIN\)
查看是否存在如下內容
tcp.validnode_checking=YES
tcp.excluded_nodes=
tcp.invited_nodes=,如存在則對IP地址進行了限制
3.如實記錄該原始數據或拷屏
4.如果沒有在數據庫系統上進行配置,詢問是否在防火墻或者其他網絡設備/安全設備上進行了相關的配置;
方法一:人工審計
1.以文本文件的方式,打開操作系統中的數據庫服務配置文件“l(fā)istener.ora”;
2.查看“ADMIN_RESTRICTIONS_listener_name=”的設置(此項設置為防止對oracle listener的未經授權的管理,需要),如實記錄該原始數據或拷屏,如為ON則符合,不存在則不符合;
b)應根據安全策略設置登錄終端的操作超時鎖定;
測評方法及步驟:
查看空閑超時設置,selectlimit from dba_profiles where resource_name='IDLE_TIME'.查看超時設置,并記錄或查看系統概要文件;
c)應限制單個用戶對系統資源的最大或最小使用限度;
測評方法及步驟:
執(zhí)行命令,查看用戶使用的profile,select username,profile fromdba_users,查看其限制,set lines 300
查看默認用戶的并行會話數和CPU使用時間
select limitfrom dba_profiles where profile='DEFAULT';,或CPU_PER_SESSION,IDLE_TIME,'SESSIONS_PER_USER'等各設置
下面是全部可用的參數:
SESSIONS_PER_USER 每個用戶名所允許的并行會話數
CPU_PER_SESSION 一個會話一共可以使用的CPU時間,單位是百分之一秒
CPU_PER_CALL 一次SQL調用(解析、執(zhí)行和獲取)允許使用的CPU時間
CONNECT_TIME 限制會話連接時間,單位是分鐘
IDLE_TIME 允許空閑會話的時間,單位是分鐘
LOGICAL_READS_PER_SESSION 限制會話對數據塊的讀取,單位是塊
LOGICAL_READS_PER_CALL 限制SQL調用對數據塊的讀取,單位是塊
COMPOSITE_LIMIT “組合打法”
PRIVATE_SGA 限制會話在SGA中Shared Pool中私有空間的分配;
詳解【數據庫Oracle】(三級):身份鑒別、訪問控制、安全審計、資源控制四個控制點的測評要求項、測評方法及測評步驟!
身份鑒別
a)應對數據庫系統的用戶進行身份標識和鑒別;
測評方法及步驟:
1)以默認口令或者常見口令嘗試登錄數據庫,查看是否成功,查看是否需要口令以及是否存在空口令
$ sqlplus/nolog
SQLconnuser/password as sysdba
2)或者使用Oracle客戶端管理控制臺(Enterprise Manager Console)進行登錄
3)默認口令包括sys/change_on_install;system/manager,scott/tiger,常用口令包括oracle:admin/oracle;sys:admin:oracle等。(更改用戶口令alter user user_name identified by password),或者用select * from dba_users;查看賬號口令;
b)數據庫系統管理用戶身份標識應具有不易被冒用的特點,口令應有復雜度要求并定期更換;
測評方法及步驟:
1)select username,profile fromdba_user;了解用戶使用的profile
2)select * from dba_profiles whereprofile='default';查看系統本身的profile的配置參數都有哪些?
PASSWORD_VERIFY_FUNCTIONverify_function為密碼復雜度驗證函數已經開啟。這個oracle默認verify_function()函數,要求口令密碼最小長度4、不能和用戶名相同、至少有一個字母、數字和特殊字母,舊密碼和新密碼至少有三位不同。如果你覺得這個要求還太低,那你就創(chuàng)建自己復雜的驗證函數
3)檢查utlpwdmg.sql中"-- Check for the minimum length of the password"部分中"length (password)
c)應啟用登錄失敗處理功能,可采取結束會話、限制非法登錄次數和自動退出等措施;
測評方法及步驟:
1)select limitfrom dba_profiles where resource_name='FAILED_LOGIN_ATTEMPTS
FAILED_LOGIN_ATTEMPTS:最大錯誤登錄次數
PASSWORD_GRACE_TIME:口令失效后鎖定 時間
PASSWORD_LIFE_TIME:口令有效時間
PASSWORD_LOCK_TIME:登錄超過有效次數鎖定時間
查看有無對各項進行時間/次數上的設置和限制;
d)當對服務器進行遠程管理時,應采取必要措施,防治鑒別信息在網絡傳輸過程中被竊聽;
測評方法及步驟:
1)詢問管理員是否采取加密手段保證數據庫的訪問信息不被竊聽
2)在9i中查看數據庫安裝目錄下的\admin\DB_NAME\pfile\initSID.ora中REMOTE_OS_AUTHENT的賦值,確認是否允許管理員對數據庫進行遠程連接和管理,其他版本用命令“SHOW PARAMETERS AUTH;”記錄是否允許遠程訪問
3)或者圖形界面管理中查看打開Oracle客戶端管理控制臺(Enterprise Manager Console);添加被評估數據庫的連接信息,使用sys或system用戶登錄數據庫;在左側菜單欄中打開“例程”,選中“配置”欄,再選擇“一般信息”頁面,點擊“所有初始化參數”;在彈出的界面中,查看“remote_os_authent”參數行的設置,為是否允許遠程連接,如實記錄該原始數據或拷屏
4)查看lsnrctl status查看是否存在TCPS協議;
e)應為數據庫系統的不同用戶分配不同的用戶名,確保用戶名具有唯一性;
測評方法及步驟:
1)詢問管理員,是否為不同的用戶分配了不同的賬戶。可檢索賬戶“selectusername,account_status from dba_users”,并詢問是否建立制度,確保不同人員使用不同用戶登錄數據庫系統;
f)應采用兩種或兩種以上組合的鑒別技術對管理用戶進行身份鑒別;
測評方法及步驟:
1)詢問管理員數據庫是否采用了2種以上身份鑒別方式進行身份認證,如是否部署CA認證等第三方認證產品進行認證;
2)查看配置文件 db_1\NETWORK\ADMIN目錄下或$TNS_ADMIN/sqlnet.ora的sqlnet.ora,查看SQLNET_AUTHENTICATION_SERVICES的值,確認數據庫管理員指定的鑒別方式是否與管理員回答的一致,值為NTS時,則為使用windows系統認證,當為none時,則需要雙重身份認證。但是不為雙因子認證;
此條中判斷以第一條為準,第二條僅做參考,不對結果造成影響;
訪問控制
a)應啟用訪問控制功能,依據安全策略控制用戶對資源的訪問;
測評方法及步驟:
1)linux下在數據庫的操作系統中打開$ORACLE_HOME\bin目錄,并找到可執(zhí)行程序Oracle;
在操作系統中運行命令:ls –al oracle;查看其運行、讀寫權限;
2)訪談管理員是否有其他方式(如防火墻、ACL、IPsec等方式)進行端口/IP級的訪問限制,或者其他方式對數據庫訪問的控制,并進行驗證;
判定依據主要參考第三條,第一二條為輔助依據;
b)應根據管理用戶的角色分配權限,實現管理用戶的權限分離,僅授予管理用戶所需的最小權限;
測評方法及步驟:
1)查看應用賬戶是否屬于DBA組權限
2)select grantee from dba_role_privs where grante_role='DBA' and grante not in('SYS','SYSTEM','CTXSYS','WmSYS','SYSMAN');
c)應實現操作系統和數據庫系統特權用戶的權限分離;
測評方法及步驟:
詢問管理員是否由不同員工分別擔任操作系統管理員與數據庫管理員
登錄操作系統,查看是否能對數據庫系統進行操作;
d)應限制默認帳戶的訪問權限,重命名系統默認帳戶,修改這些帳戶的默認口令;
測評方法及步驟:
詢問管理員:應盡量重命名數據庫系統的默認賬戶,如果部分賬戶無法重命名,則應加強這些賬戶的口令強度,確保這些賬戶不被授權使用;
e)應及時刪除多余的、過期的帳戶,避免共享帳戶的存在;
測評方法及步驟:
1、在sqlplus中執(zhí)行命令
desc dba_users
selectusername,account_status from dba_users where account_status='OPEN'
2、查看返回結果中是否存在scott、outln、ordsys等范例數據庫賬號,在windows中或者用圖形用戶界面找到安全性查看用戶狀態(tài)檢查是否有過期、共享帳戶存在;
f)應對重要信息資源設置敏感標記;
測評方法及步驟:
1)檢查是否安裝oracle label security模塊(如無,下面步驟可省略)select username from dba_users;查看有無lbacsys的用戶,如無,則無安裝Oracle Label Security模塊
2)查看是否創(chuàng)建策略:select policy_name,statusfrom DBA_SA_POLICIES
3)查看標簽創(chuàng)建情況:select * fromdba_sa_lables;
g)應依據安全策略嚴格控制用戶對有敏感標記重要信息資源的操作;
測評方法及步驟:
登錄sqlplus,查看用戶的標簽
select * fromdba_sa_lables
select * fromdba_sa_tables_policies;可讓管理員演示選擇特定的用戶和表進行驗證敏感標記功能是否正確;
安全審計
a)審計范圍應覆蓋到服務器和重要客戶端上的每個數據庫用戶;
測評方法及步驟:
檢查并記錄數據庫操作審計的配置策略
show parametersaudit;查看數據庫審計的目錄及審計是否開啟,審計級別
1.windows中打開Oracle客戶端管理控制臺(Enterprise Manager Console)
2.添加被評估數據庫的連接信息,使用sys或system用戶登錄數據庫
3.在左側菜單欄中打開“例程”,選中“配置”欄,再選擇“一般信息”頁面,點擊“所有初始化參數”
4.在彈出的界面中,查看“audit_trail”參數行的設置,如實記錄該原始數據或拷屏。如果為linux系統執(zhí)行show parameters audit_trail;查看是否開啟審計功能
5.進行管理員和一般用戶登錄登出,查看審計日志是否能正確記錄
6.以上條件不滿足時,詢問管理員是否有第三方數據庫審計軟件;
b)審計內容應包括重要用戶行為、系統資源的異常使用和重要系統命令的使用等系統內重要的安全相關事件;
測評方法及步驟:
查看AUDIT_TRAIL的值為NONE為關閉審計功能,audit_sys_operations為YES審計系統重要操作;
c)審計記錄應包括事件的日期、時間、類型、主體標識、客體標識和結果等;
測評方法及步驟:
select * fromsys.aud$,select * fromdba_audit_trail,記錄審計記錄中事件的日期、時間、類型、主體標識、客體標識和結果等記錄情況;
d)應能根據記錄數據進行分析,并生產審計報表;
測評方法及步驟:
詢問管理員是否安裝并使用了oracle audit vault等日志分析工具并查看相關報表,或者是否采用了第三方數據庫審計軟件以及具有報表功能并定期生成報表;
e)應保護審計進程,避免受到未預期的中斷;
測評方法及步驟:
詢問是否嚴格限制數據庫管理員權限,系統管理員能否進行與審計相關的操作。用戶可以通過alter system set audit_trail='NONE' scope=spfile;,查看是否成功;
f)應保護審計記錄,避免受到未預期的刪除、修改或覆蓋等;
測評方法及步驟:
詢問數據庫管理員,是否嚴格限制用戶訪問審計記錄的權限,如采用audit vault等,或者第三方審計系統,并檢查是否定期對審計日志做備份;
資源控制
a)應通過設定終端接入方式、網絡地址范圍等條件限制終端登錄;
測評方法及步驟:
方法一:人工審計
1.以文本文件的方式,打開操作系統中的數據庫服務配置文件“SQLNET.ORA”(數據庫目錄下的NETWORK\ADMIN\)
查看是否存在如下內容
tcp.validnode_checking=YES
tcp.excluded_nodes=
tcp.invited_nodes=,如存在則對IP地址進行了限制
3.如實記錄該原始數據或拷屏
4.如果沒有在數據庫系統上進行配置,詢問是否在防火墻或者其他網絡設備/安全設備上進行了相關的配置;
方法一:人工審計
1.以文本文件的方式,打開操作系統中的數據庫服務配置文件“l(fā)istener.ora”;
2.查看“ADMIN_RESTRICTIONS_listener_name=”的設置(此項設置為防止對oracle listener的未經授權的管理,需要),如實記錄該原始數據或拷屏,如為ON則符合,不存在則不符合;
b)應根據安全策略設置登錄終端的操作超時鎖定;
測評方法及步驟:
查看空閑超時設置,selectlimit from dba_profiles where resource_name='IDLE_TIME'.查看超時設置,并記錄或查看系統概要文件;
c)應限制單個用戶對系統資源的最大或最小使用限度;
測評方法及步驟:
執(zhí)行命令,查看用戶使用的profile,select username,profile fromdba_users,查看其限制,set lines 300
查看默認用戶的并行會話數和CPU使用時間
select limitfrom dba_profiles where profile='DEFAULT';,或CPU_PER_SESSION,IDLE_TIME,'SESSIONS_PER_USER'等各設置
下面是全部可用的參數:
SESSIONS_PER_USER 每個用戶名所允許的并行會話數
CPU_PER_SESSION 一個會話一共可以使用的CPU時間,單位是百分之一秒
CPU_PER_CALL 一次SQL調用(解析、執(zhí)行和獲取)允許使用的CPU時間
CONNECT_TIME 限制會話連接時間,單位是分鐘
IDLE_TIME 允許空閑會話的時間,單位是分鐘
LOGICAL_READS_PER_SESSION 限制會話對數據塊的讀取,單位是塊
LOGICAL_READS_PER_CALL 限制SQL調用對數據塊的讀取,單位是塊
COMPOSITE_LIMIT “組合打法”
PRIVATE_SGA 限制會話在SGA中Shared Pool中私有空間的分配;
