摘 要: 簡述了數據庫安全,詳細介紹了電力信息系統(tǒng)對數據庫安全的要求,并介紹了在電力信息系統(tǒng)中用到的保障數據庫安全的具體措施。
關鍵詞: 電力信息系統(tǒng);數據庫安全;MySql;Oracle;Sybase;SQL Server
1 信息系統(tǒng)安全等級保護
隨著信息技術的發(fā)展,越來越多的信息化、自動化設備被用于政府辦公自動化和企業(yè)的生產經營活動,公用信息基礎設施建設使得群眾生活、生產日益依靠信息系統(tǒng)。信息系統(tǒng)在給政府、企業(yè)帶來便利的同時,也引入了信息安全問題,黑客入侵和網絡攻擊的日益增多,信息系統(tǒng)中存在的漏洞、后門,運行維護人員信息安全知識的匱乏等使得部分關系到國計民生的關鍵系統(tǒng)受到了前所未有的安全挑戰(zhàn)。特別是信息安全事件所引發(fā)的連鎖安全事故,危害極大,如花旗集團受到黑客攻擊導致36萬多的客戶賬戶信息被竊取,直接導致金融的混亂;四川某水電站無故全廠停機造成川西電網瞬間缺電80萬千瓦引起的大面積停電事故等。這些均說明了信息安全的重要作用。
為此,公安部、國家保密局、國家密碼管理局、國務院信息化工作辦公室聯(lián)合頒布了關于印發(fā)《信息安全等級保護管理辦法》的通知,要求公民、法人和其他組織對信息系統(tǒng)分等級實行安全保護,對等級保護工作的實施進行監(jiān)督、管理。GB/T 22239-2008《信息安全技術 信息系統(tǒng)安全等級保護基本要求》作為信息系統(tǒng)等級保護的國家標準,從物理安全、網絡安全、主機安全、應用安全和管理安全等方面對其安全強度做出了具體的規(guī)定[1]。
電網企業(yè)、國家電力監(jiān)管委員會、公安部等同樣非常關注電力行業(yè)的信息系統(tǒng)安全等級保護,分別制定了相應的規(guī)范、作業(yè)指導書用于其等級保護測評。數據庫是信息系統(tǒng)的重要組成部分,也是等級保護測評主要的測評實體之一。隨著近年來智能電網研究的發(fā)展,數據庫作為重要的技術之一在電力信息系統(tǒng)中得到越來越多的應用,如能量管理系統(tǒng)、調度自動化系統(tǒng)和配網自動化系統(tǒng)等廣泛使用數據庫來保存關鍵數據。因此,保證數據庫的安全,防止敏感數據被竊取、被篡改有著十分重大的實現意義。
數據庫威脅可以分為物理威脅和邏輯威脅。按照GB/T 22239-2008《信息安全技術 信息系統(tǒng)安全等級保護基本要求》,數據庫物理威脅主要包括物理位置的選擇、物理訪問控制、防盜竊和防破壞、防雷擊、防火、防水和防潮、防靜電等(其中物理位置的選擇主要是指如數據庫主機應該放置在防震、防風、防雨的建筑內[1],物理訪問控制主要是指數據庫主機所在機房應該設置門禁等),具體的要求可以查看相應的國家標準。數據庫物理威脅防護措施比較簡單,主要通過機房建設得以保證。而邏輯威脅的防護內涵十分豐富,是本文研究的重點。
在電力信息系統(tǒng)中,經常使用的數據庫包括MySql、Oracle、SQL Server和Sybase等。數據庫的語法包括三類[2-3]:數據操作語言DML(Data Manipulation Language),用于查詢、插入、刪除和修改數據庫中的數據;數據控制語言DCL(Data Control Language),用來控制存取許可、存取權限等;數據定義語言DDL(Data Definition Language),用來建立數據庫、數據庫對象和定義其列,本文將根據電力信息系統(tǒng)中的數據庫實際防護措施,選擇相應的配置指令進行介紹。
2 數據庫的身份鑒別
數據庫的身份鑒別是數據庫安全的第一道門檻,電力信息系統(tǒng)絕大部分是二級信息系統(tǒng)和三級信息系統(tǒng),GB/T 22239-2008《信息安全技術 信息系統(tǒng)安全等級保護基本要求》對二/三級信息系統(tǒng)均要求:“操作系統(tǒng)和數據庫系統(tǒng)管理用戶身份標識應具有不易被冒用的特點,口令應有復雜度要求并定期更換;應采用兩種或兩種以上組合的鑒別技術對管理用戶進行身份鑒別”[1]。在實際數據庫安全測評時,數據庫所處機房的門禁系統(tǒng)可作為第一種鑒別技術,第二種身份鑒別技術主要通過數據庫系統(tǒng)的登錄密碼來實現。數據庫的身份鑒別技術主要包括用戶名和密碼驗證、密碼的定期更換、遠程登錄管理的數據防竊聽三部分內容[4]。
2.1 用戶名和密碼的驗證
數據庫安全防護的第一步是檢查數據庫是否采取用戶名+密碼形式的登錄驗證方式[3,5]。數據庫的安全配置及網絡登錄必須采取用戶名+密碼的驗證形式;密碼在數據庫當中以密文的形式保存;且需要及時修改數據庫默認帳號的默認密碼。
在MySql數據庫中,使用如下指令查看數據庫中的用戶權限信息(包含是否采用用戶名+密碼的驗證方式登錄):
Use Mysql;(選擇數據庫,數據庫的用戶權限列表保存在Mysql數據庫中的user表中)
Select*from user;(查詢用戶權限列表)
根據查詢的結果檢查相應用戶是否設置了密碼,并通知未設置密碼的用戶設置密碼。
Oracle數據庫帶有很多默認賬戶,如sys、system、sysman、scott、aqadm和dbsnmp,其默認的密碼分別為change_on_install、Manager、oem_temp、tiger、aqadm、dbsnmp。需要及時修改這些默認賬戶及相關密碼,防止非授權用戶通過默認賬戶登錄數據庫系統(tǒng)竊取、篡改數據等。
2.2 密碼的定期更換
按照等級保護的要求,系統(tǒng)運維人員需要對數據庫的登錄密碼進行定期更換。
MySql數據庫使用SET PASSWORD FOR root=PASSWORD(′new_password′)指令更換密碼(注:在該模式下需再次使用FLUSH PRIVILEGES指令告訴服務器再次讀入授權表,使密碼更換生效),如在shell模式下,可采用mysqladmin-u root password new_password指令更換密碼。
如果使用Oracle數據庫[6],則可以使用select*from dba_profiles指令查看數據庫用戶密碼策略,其查詢結果PASSWORD_GRACE_TIME XX 表示賬戶密碼的生命周期(單位為“天”)。
2.3 遠程登錄管理的數據防竊聽
電力信息系統(tǒng)一般要求數據庫不開放遠程登錄功能,但并未是強制性要求。如果開放了遠程管理的功能,則需采取必要的網絡防護措施對網路通信進行加密,如采用加密模式對網絡通信進行加密或開啟數據庫的OpenSSL功能等。
在SQL Server數據庫當中,可以采用exec sp_configure "remote access"指令來查看是否可以對數據庫進行遠程連接,其結果:1表示容許遠程訪問,0表示不容許遠程訪問。
3 數據庫的訪問控制
電力信息系統(tǒng)要求數據庫啟用訪問控制功能,其主要包括:用戶的權限管理、權限最小原則等。
3.1 用戶權限管理
數據庫的用戶權限管理主要是指對不同的用戶分配不同的權限,不使用特權用戶對數據庫操作及配置。
以MySql數據庫為例,數據庫的用戶權限查看及修改指令如下:
Use Mysql;(選擇數據庫)
Select * from user;(查詢用戶權限列表)
根據查詢到的用戶權限結果,使用GRANT和REVOKE指令對用戶的權限進行修改,語法如下:
GRANT priv_type[(column_list)]
[,priv_type[(column_list)]...]
ON {tbl_name|*|*.*|db_name.*}
TO user_name [IDENTIFIED BY ′password′]
[,user_name [IDENTIFIED BY ′password′] ...]
[WITH GRANT OPTION]
其中,GRANT代表對用戶進行授權操作,可用于授權及創(chuàng)建用戶;priv_type指的是數據庫操作權限,可以從如下集合中取值{ALL PRIVILEGES, FILE,RELOAD,ALTER,INDEX,SELECT,CREATE,INSERT,SHUTDOWN,DELETE,PROCESS,UPDATEDROP,REFERENCES,USAGE};參數ON{tbl_name|*|*.*|db_name.*}為用戶權限的使用范圍,*.*代表用戶權限范圍為所有數據庫的所有表,db_name.*代表db_name數據庫的所有表。
3.2 權限最小原則
權限最小原則是指針對不同的用戶,為其分配使用數據庫的最小權限,若使用MySql數據庫,其指令如下:
REVOKE priv_type[(column_list)]
[,priv_type[(column_list)]...]
ON{tbl_name|*|*.*|db_name.*}
FROM user_name[,user_name...]
其中REVOKE用于用戶權限的收回,其他參數的含義同GRANT指令參數。
對于數據庫的多余用戶賬戶,應及時刪除。在MySql數據庫中,可以使用Delete user where User=‘username′指令刪除多余賬戶。在Oracle數據庫中,可以使用指令select*from dba_users;select*from dba_users t where t.expiry_date<sysdate;select LOCK_DATE, username from dba_users;來查看數據庫中是否有多余、過期或被鎖定的賬號。
4 安全審計
除了數據庫的身份鑒別、訪問控制以外,還需對數據庫進行安全審計。審計的范圍包括服務器及重要的客戶端,審計的內容包括用戶行為、系統(tǒng)資源的使用情況和重要系統(tǒng)指令的使用情況等。
以Oracle數據庫為例,數據庫安全審計的檢查應該包含如下內容:
?。?)檢查數據庫是否開啟了審計功能:
show parameter audit_trai;
?。?)檢查數據庫中的日志使用情況:
select*from V$LOG
(注:檢查結果中的group表示日志組號,bytes顯示日志文件大小,ARC顯示日志文件是否歸檔,status表示日志有狀態(tài))
?。?)檢查數據庫的審計級別:
select*dba_stmt_audit_opts
?。?)根據數據庫的審計級別查看審計內容:
select*from dba_stmt_audit_opts;
select privilege,user_name from dba_priv_audit_opts;
select owner,object_name,object_type,INS,SEL from dba_obj_audit_opts;
5 資源控制功能
除了對數據庫本身的訪問控制以外,還需對安裝數據庫的服務器進行資源控制,包含對服務器的CPU、硬盤、內存和網絡資源使用情況進行監(jiān)視,設置客戶端操作超時鎖定等[7]。
6 入侵防范及網絡數據安全傳輸
如同大部分網絡服務器一樣,在裝有數據庫的服務器上需要部署入侵防范措施。在電力信息系統(tǒng)中,通常在網絡邊界上部署防火墻或者其他IDS設備實現服務器的保護。在實際應用中,可以結合網絡SSL協(xié)議、IPSec協(xié)議和HTTPS協(xié)議等保護數據的安全傳輸。
還可以使用在數據庫表中加入校驗字段的方式實現數據加密[7-8],客戶端在對服務器數據庫數據進行操作之前,使用加密算法,將需要傳輸的數據由明文轉化為密文;在服務器端,使用特定的程序將密文轉化為明文,并通過校驗字段的檢查來判斷通信的數據是否被修改。此外,對于特別重要的數據還可以采用硬件加密的形式對其加密等。
本文主要討論了電力信息系統(tǒng)中數據庫安全防護的具體措施,總結了電力信息系統(tǒng)中使用的數據庫安全技術,并給出了相應操作的代碼。在實際的工作中,需根據實際情況采取相應的防護措施,及時形成電力信息系統(tǒng)數據庫安全防護規(guī)范,以便在實際應用中開展安全防護工作。
參考文獻
[1] GB-T 22239-2008.信息安全技術 信息系統(tǒng)安全等級保護基本要求.2008.
[2] 王珊,薩師煊.數據庫系統(tǒng)概論[M].北京:高等教育出版社,2010.
[3] 朱良根,雷振甲,張玉清.數據庫安全技術研究[J].計算機應用研究,2004(9):127-138.
[4] 王靜,易軍凱.基于入侵檢測的數據庫安全模型研究[J].微計算機信息,2006,22(9-3):84-86.
[5] 馬鮮艷.數據庫安全技術探析[J].西安郵電學院學報,2008,13(3):99-102.
[6] 李東風,謝昕.數據庫安全技術研究與應用[J].計算機安全,2008(1):42-44.
[7] 胡志奇.數據庫安全與加密技術研究[J].計算機與現代化,2003(11):58-61.
[8] 張剡,夏輝,柏文陽.數據庫安全模型的研究[J].計算機科學,31(1):101-104.