楊大哲,孫瑞浩
(國網(wǎng)山西省電力公司電力科學研究院,山西 太原 030001)
基于電力行業(yè)信息系統(tǒng)等級保護的Oracle數(shù)據(jù)庫安全加固實踐
楊大哲,孫瑞浩
(國網(wǎng)山西省電力公司電力科學研究院,山西 太原 030001)
針對O r a c l e數(shù)據(jù)庫管理系統(tǒng),按照信息安全等級保護要求,從身份鑒別、訪問控制、入侵防范、安全審計等方面,利用數(shù)據(jù)庫自身的安全機制,進行了具體加固實踐,加強數(shù)據(jù)的防泄密能力與防篡改能力,提高電力信息系統(tǒng)的安全防護水平。
Or a c l e數(shù)據(jù)庫;安全加固;信息系統(tǒng)等級保護
Oracle數(shù)據(jù)庫作為主流的大中型數(shù)據(jù)庫管理軟件系統(tǒng),在電力行業(yè)的應用系統(tǒng)中得到廣泛應用。據(jù)統(tǒng)計,在電力公司的應用系統(tǒng)中,85%以上的數(shù)據(jù)庫管理軟件均采用Oracle數(shù)據(jù)庫管理軟件。
數(shù)據(jù)庫管理系統(tǒng)作為信息系統(tǒng)的核心部件,存儲了應用系統(tǒng)的全部數(shù)據(jù)和信息。數(shù)據(jù)庫的安全性與保密性對于整個信息系統(tǒng)安全是至關重要的?!秶译娋W(wǎng)公司SG186工程信息系統(tǒng)安全等級保護驗收標準》對數(shù)據(jù)庫安全從身份鑒別、訪問控制、安全審計、剩余信息保護、入侵防范等五個方面提出了明確要求。
Oracle數(shù)據(jù)庫作為大型關系型數(shù)據(jù)庫,自身具有強大的安全機制。本文主要從三級系統(tǒng)安全防護要求出發(fā),利用Oracle數(shù)據(jù)庫管理軟件自身的功能和基本操作,完成數(shù)據(jù)庫的安全加固,使其能夠滿足等級保護相關技術要求,提高信息系統(tǒng)整體的安全性。
根據(jù)信息系統(tǒng)的安全保護等級,國家電網(wǎng)公司SG186工程中多的信息系統(tǒng)要求具有相應等級。第二級信息系統(tǒng)應至少按照第二級安全技術指標進行安全加固,第三級信息系統(tǒng)應至少按照第三級安全技術進行安全加固。其中數(shù)據(jù)庫方面涉及身份鑒別、訪問控制等5類20個指標,具體包括用戶標識鑒別、口令復雜度、口令策略、登陸限制、用戶唯一性、多種鑒別技術、訪問限制、默認賬戶管理、用戶賬戶管理、最小權限原則、審計范圍、審計內(nèi)容、審計記錄屬性、審計數(shù)據(jù)安全、審計分析、審計可用性、關閉不必要服務、補丁更新、廢棄數(shù)據(jù)空間的釋放、廢棄用戶空間的釋放等。
信息系統(tǒng)安全加固工作具體實施流程分為五個階段:啟動準備階段、方案制定階段、數(shù)據(jù)備份階段、現(xiàn)場實施階段、驗證總結(jié)階段。
2.1 身份標識與鑒別
身份標識是用戶身份的象征,是進行數(shù)據(jù)庫審計的基礎。在進行Oracle數(shù)據(jù)庫加固時,可使用select username,account_status from dba_users檢查數(shù)據(jù)庫中所有處于開放狀態(tài)的用戶,對無關或測試的賬號及時刪除或鎖定;在數(shù)據(jù)庫維護中,應按照用戶所需的權限授予不同的角色,同時做到賬號專用,禁止共用賬號。
身份鑒別是指驗證用戶提交的身份鑒別信息,核實用戶的身份。數(shù)據(jù)庫登陸、數(shù)據(jù)操作等均需要首先進行身份鑒別,確保只有符合要求的賬戶才能進行。
Oracle數(shù)據(jù)庫可通過設置每個用戶的概要文件,制定用戶密碼策略設置,防止口令被暴力破解,設置口令審核函數(shù),增強口令的健壯性,從而加強數(shù)據(jù)庫用戶口令的安全性。具體設置方法如下。
CREATEPROFILEmyprofile
LIMIT FAILED_LOGIN_ATTEMPTS 3---(單位次)
PASSWORD_LIFE_TIME 90---(單位天)
PASSWORD_REUSE_TIME 90---(單位天)
PASSWORD_REUSE_MAX 3---(單位次)
PASSWORD_VERIFY_FUNCTIONverify_ function;
PASSWORD_LOCK_TIME 1/24
PASSWORD_GRACE_TIME 90;
用下面的命令把新創(chuàng)建的profile賦給制定的用戶ALTERUSER user1 PROFILEmyprofile;
對于用戶口令,一般要求口令長度至少為8位,由字母、數(shù)字、特殊字符3種字符組成??赏ㄟ^設置審核函數(shù),并將審核函數(shù)賦予用戶所屬概要文件,從而限制用戶在設置、修改口令時都必須符合口令復雜度要求。下面是一個典型的口令審核函數(shù)。該函數(shù)限制用戶口令不能與用戶名相同,不能為常見易猜測的密碼,口令長度不能少于8位,并且必須包含大小寫字母、1個數(shù)字、1個特殊字符中的3種。并且限制用戶在修改口令時,至少有3個不同于上次的口令字符出現(xiàn)。函數(shù)具體邏輯如下。
IF NLS_LOWER(password)=NLS_LOWER (username)THEN
raise_application_error(-20001,'Password same as or similar to user');
END IF;
IF length(password)<8 THEN
raise_application_error(-10001,'口令長度不能少于8位');
END IF;
IF NLS_LOWER (password)IN ('system', 'database','123456','111111','password','oracle', 'abcd')THEN
raise_application_error(-10001,'口令過于簡單');
END IF;
isdigit:=FALSE;
m:=length(password);
FOR i IN 1..10 LOOP
FOR j IN 1..m LOOP
IF substr(password,j,1)=substr(digitarray,i,1) THEN
isdigit:=TRUE;
GOTO findchar;
END IF;
END LOOP;
END LOOP;
IF isdigit=FALSETHEN
raise_application_error(-10002,'口令至少含有一個數(shù)字、字符和特殊符號');
END IF;
2.2 訪問控制
訪問控制就是按用戶身份及其所歸屬的對象組來限制用戶對數(shù)據(jù)庫資源的訪問,主要作用為保證合法主體訪問所需資源,防止非法主體訪問受保護的資源及合法的用戶非授權的訪問受保護的資源。Oracle數(shù)據(jù)庫作為大型關系數(shù)據(jù)庫,在數(shù)據(jù)庫監(jiān)聽、遠程登錄、數(shù)據(jù)字典訪問、可訪問IP、連接超時、默認端口方面進行加固,以提高數(shù)據(jù)庫的訪問控制能力。
數(shù)據(jù)庫超級管理員具有數(shù)據(jù)庫的最高權限,應限制具有SYSDBA權限的用戶遠程登錄,具體可修改initSid.ora令REMOTE_LOGIN_PASSWORDFILE=’NONE’ 。
在數(shù)據(jù)庫用戶權限配置過程中,應按照用戶所必需的權限,根據(jù)最小權限原則,賦予用戶權限。一般情況下不應授予普通用戶DBA角色。
Oracle數(shù)據(jù)字典是用來描述數(shù)據(jù)庫數(shù)據(jù)的組織方式,由表和視圖組成。應限制普通用戶訪問數(shù)據(jù)字 典 , 可 通 過 修 改 initSid.ora 令O7_DICTIONARY_ACCESSIBILITY=FALSE,啟用數(shù)據(jù)字典保護,確保只有SYSDBA用戶才能訪問數(shù)據(jù)字典基礎表,從而提高數(shù)據(jù)字典的安全性。
Oracle監(jiān)聽負責接受客戶端與實例溝通的主要組件,默認是沒有密碼,能訪問的用戶可隨意遠程關閉監(jiān)聽器。為更好地保障監(jiān)聽器的安全,應設置LISTENER的啟動關閉密碼,防止用戶的未授權操作,具體設置如下。
$lsnrctl
LSNRCTL>change_password
Old password:--舊口令
New password:--新口令
Reenter new password:--再次輸入新口令
LSNRCTL>save_config--保存配置
Oracle 的 網(wǎng) 絡 配 置 文 件 為$ORACLE_HOME/network/admin/ 目 錄 下 的tnsnames.ora、sqlnet.ora、listener.ora。其中 sqlnet. ora主要用于確定解析方式,為提高訪問控制能力,在 sqlnet.ora文 件 中 添 加 以 下 配 置 :tcp. validnode_checking=yes tcp.invited_nodes=(192. 168.x.x,192.168.x.x),這樣就只有信任的IP地址才能通過監(jiān)聽器訪問數(shù)據(jù)庫;設置參數(shù)SQLNET. EXPIRE_TIME=10,數(shù)據(jù)庫定期檢測客戶端是否活動,當超過10min未活動時,數(shù)據(jù)庫自動斷開連接。
Oracle默認的端口是1521,黑客通常對該端口進行監(jiān)聽,以確定該服務器是否存在Oracle數(shù)據(jù)庫可通過在tnsnames.ora,listener.ora文件中增加新的監(jiān)聽器,使用其他端口(如1522),避免黑客發(fā)現(xiàn)。具體設置如下:listener1=(DESCRIPTION= (ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP) (HOST=hostname)(PORT=1522))。
2.3 安全審計
Oracle數(shù)據(jù)庫審計總體上可分為標準審計和細粒度審計。在Oracle10g中標準審計可分為用戶級審計和系統(tǒng)級審計。用戶級審計是任何用戶可設置的審計,主要是用戶針對自建創(chuàng)建的表或視圖進行的審計,記錄所有用戶對這些表或視圖的成功和不成功的訪問,系統(tǒng)級審計由DBA用戶設置,用以監(jiān)測成功或失敗的登陸請求、檢測GRANT和REVOKE的操作及其他數(shù)據(jù)庫級權限的操作。通過修改初始化參數(shù)文件(initsid.ora)alter system set audit_trail=db scope=both,重啟數(shù)據(jù)庫,設置需要審計的信息,即開啟Oracle數(shù)據(jù)庫標準審計。細粒度審計能夠記錄SCN號和行級的更改,主要利用數(shù)據(jù)庫中DBMS_FGA包完成配置和管理工作。
對于用戶登陸行為的審計,主要記錄用戶登錄的賬號、登錄的成功與失敗、登錄時間以及登錄時使用的IP地址。對于用戶操作行為的審計,應對新建、刪除賬號,變更權限、變更密碼、讀取和修改數(shù)據(jù)庫配置進行記錄,同時還應記錄進行操作的用戶賬號、具體時間、內(nèi)容以及結(jié)果。
2.4 入侵防范
數(shù)據(jù)庫的入侵防范主要為及時修復系統(tǒng)漏洞與服務,防止黑客利用漏洞進行入侵。具體操作包括關閉不必要的服務,及時更新系統(tǒng)補丁。對于oracle早期版本,其中有很多不必要的服務,如OracleMTSRecoveryService、 OracleServiceOEMREP、OracleClientCache、 OraclePagingServer、OracleSNMPPeerMasterAgent、OracleSNMPPeerEncapsulator。上述服務應及時關閉。Oracle公司會根據(jù)系統(tǒng)漏洞發(fā)布系統(tǒng)補丁,數(shù)據(jù)庫管理員應及時更新數(shù)據(jù)庫至最新版本。
Oracle數(shù)據(jù)庫作為大型數(shù)據(jù)庫,安全防護更多地在于數(shù)據(jù)庫本身的安全水平。通過實施數(shù)據(jù)庫系統(tǒng)自身的安全加固,在身份鑒別、訪問控制、安全審計、入侵防范等方面進行全面全防護,可大幅提升數(shù)據(jù)庫系統(tǒng)的安全防護能力,加強應用系統(tǒng)數(shù)據(jù)的保密性與完整性,從而提高應用系統(tǒng)安全水平。
充分利用Oracle本身自帶了安全機制,并加以一定的外部防御設備(防火墻、入侵防御設備等),數(shù)據(jù)庫系統(tǒng)能夠基本滿足三級信息系統(tǒng)等級保護測評的相關要求,可有效提升Oracle數(shù)據(jù)庫管理系統(tǒng)的整體防護水平,保障重要數(shù)據(jù)的安全。
Practice of Classified-protection-based Oracle Database Security Reinforcement in Electric Power Information Systems
YANG Dazhe,SUN Ruihao
(State Grid Shanxi Electric Power Research Institute,Taiyuan,Shanxi 030001,China)
In view of Oracle databasemanagement system,and according to the requirements on information security classified protection,this studymake use of the database's own securitymechanism to have completed the security reinforcementpractice from the aspects of authentication,access control,intrusion prevention and security audits,after which,the capabilities of data leak prevention and anti-tampering are strengthened,and the security levelofelectric power information systems is improved.
Oracle database;security reinforcement;classified protection of information system
TP309
A
1671-0320(2015)05-0038-03
2015-06-22,
2015-07-10
楊大哲(1983),男,河南南陽人,2009年畢業(yè)于山東大學熱能工程專業(yè),碩士,工程師,從事信息安全工作;
孫瑞浩(1987),男,山西運城人,2012年畢業(yè)于馬來西亞理工大學電力系統(tǒng)機器自動化專業(yè),碩士,工程師,從事繼電保護工作。