鄧君華,許道強,徐 超,宋劍楓
(1.國網(wǎng)江蘇省電力有限公司電力科學研究院,江蘇 南京 210000;2.國網(wǎng)江蘇省電力有限公司,江蘇 南京 210000;
3.國網(wǎng)江蘇省電力有限公司南京供電分公司,江蘇 南京 210000)
隨著信息化的不斷發(fā)展,信息交互在各信息化系統(tǒng)中的重要性愈發(fā)凸顯,同時對信息系統(tǒng)海量數(shù)據(jù)的安全性要求也在不斷提高。但目前因信息系統(tǒng)用戶權(quán)限分配漏洞而產(chǎn)生的數(shù)據(jù)泄露事故時有發(fā)生。
2017年京東內(nèi)部員工涉嫌竊取涉及交通、物流、醫(yī)療、社交、銀行等個人信息50億條,通過各種方式在網(wǎng)絡(luò)黑市販賣。在2013至2014年間,雅虎兩次被未經(jīng)授權(quán)的第三方分別盜取超過5億和10億條用戶賬戶信息,內(nèi)容涉及用戶姓名、電子郵箱、電話號碼、出生日期和部分登錄密碼。同樣,順豐出現(xiàn)過多次內(nèi)部人員泄露客戶信息事件,其中包括將個人掌握的公司網(wǎng)站賬號及密碼出售給他人,編寫惡意程序批量下載客戶信息,利用多個賬號大批量查詢客戶信息,通過購買內(nèi)部辦公系統(tǒng)地址、賬號及密碼,侵入系統(tǒng)盜取信息或者研發(fā)人員從數(shù)據(jù)庫直接導出客戶信息等。2016年孟加拉國央行被黑客攻擊,攻擊者通過網(wǎng)絡(luò)攻擊或者其他方式獲得了孟加拉國央行SWIFT系統(tǒng)的操作權(quán)限,導致8 100萬美元被竊取。
以上事件表明,未采取有效的數(shù)據(jù)訪問權(quán)限管理、身份認證管理、數(shù)據(jù)利用控制等措施是大多數(shù)企業(yè)內(nèi)部人員盜竊數(shù)據(jù)的主要原因。因此,加強信息系統(tǒng)數(shù)據(jù)安全管理不僅需要確保對用戶數(shù)據(jù)進行加密處理,還需要對數(shù)據(jù)的訪問權(quán)限進行精準控制。
對于現(xiàn)有電力系統(tǒng)營銷網(wǎng)絡(luò),根據(jù)各項業(yè)務(wù)的要求,系統(tǒng)功能可劃分為兩部分,即營銷管理信息系統(tǒng)(包括核心業(yè)務(wù)模塊、管理功能模塊等)和與其他系統(tǒng)的接口。其對內(nèi)為公司提供經(jīng)營數(shù)據(jù),對外為政府提供社會用電數(shù)據(jù),同時還包含了各服務(wù)提供商以及用戶的大量數(shù)據(jù)。電力營銷系統(tǒng)受多方輸入、操作員隨意性輸入、缺乏數(shù)據(jù)校驗機制、認為故意破壞等因素影響,使得營銷系統(tǒng)中存放的敏感的供電企業(yè)信息與大量客戶數(shù)據(jù)信息易被泄露,而這些數(shù)據(jù)一旦泄露不僅會直接影響業(yè)務(wù)營銷的開展,還可能造成巨大的經(jīng)濟損失和政治損失。因此,如何保障營銷管理信息系統(tǒng)數(shù)據(jù)安全,防止電力系統(tǒng)營銷數(shù)據(jù)不被非法竊取至關(guān)重要。
Lafuente等人[1]從數(shù)據(jù)加密、權(quán)限訪問控制、數(shù)據(jù)管理框架等多個方面總結(jié)了大數(shù)據(jù)背景下面臨的數(shù)據(jù)安全挑戰(zhàn)。ZHOU Mi等人[2]介紹了大數(shù)據(jù)在電力系統(tǒng)中的應(yīng)用以及安全問題。通過總結(jié)移動平臺中基于Token的安全訪問控制[3]和大數(shù)據(jù)平臺的身份認證[4]以及計算機系統(tǒng)中基于Token的權(quán)限管理機制[5],為后續(xù)工作的展開奠定了基礎(chǔ)。近年來發(fā)生的大數(shù)據(jù)安全事件[6-7],風險成因復雜交織,既有外部攻擊,也有內(nèi)部泄露,既有技術(shù)漏洞,也有管理缺陷;既有新技術(shù)新模式觸發(fā)的新風險,也有傳統(tǒng)安全問題的持續(xù)觸發(fā)。而且威脅范圍全域覆蓋,大數(shù)據(jù)安全威脅滲透在數(shù)據(jù)生產(chǎn)、流通和消費等大數(shù)據(jù)產(chǎn)業(yè)鏈的各個環(huán)節(jié),包括數(shù)據(jù)源的提供者、大數(shù)據(jù)加工平臺提供者、大數(shù)據(jù)分析服務(wù)提供者等各類主體。對營銷系統(tǒng)而言,目前信息網(wǎng)絡(luò)高度發(fā)達、移動設(shè)備等十分便捷,使得營銷系統(tǒng)中存放的敏感的供電企業(yè)信息與大量的客戶數(shù)據(jù)信息易被泄露,可能造成巨大的經(jīng)濟損失和政治損失。
為避免數(shù)據(jù)泄露帶來的重大損失,針對作為各個行業(yè)信息化建設(shè)重要基礎(chǔ)支撐的大數(shù)據(jù)在收集、存儲、傳輸和使用過程中面臨的諸多安全風險,分析了大數(shù)據(jù)在這些過程中面臨的安全威脅[8]。闡述了大數(shù)據(jù)相關(guān)系統(tǒng)平臺和大數(shù)據(jù)應(yīng)用中安全保障的關(guān)鍵技術(shù)及最新進展,包括用戶訪問控制、數(shù)據(jù)隔離、數(shù)據(jù)完整性、隱私保護、安全審計、高級持續(xù)性攻擊防范等,以應(yīng)對云計算、物聯(lián)網(wǎng)、移動互聯(lián)等新技術(shù)的快速發(fā)展對大數(shù)據(jù)帶來的安全挑戰(zhàn)和更高的安全要求。大數(shù)據(jù)在電力系統(tǒng)中的應(yīng)用為電力系統(tǒng)的安全保障帶來了更大挑戰(zhàn)[9-10]。為解決這一問題,基于角色的權(quán)限訪問控制被應(yīng)用到數(shù)據(jù)的訪問及存取中[11-12]。此外,當前大部分網(wǎng)絡(luò)信息系統(tǒng)中均存在安全隱患[13-16],因此,如何采取有效的安全措施以防止數(shù)據(jù)泄露至關(guān)重要。
在信息系統(tǒng)中,為了保障數(shù)據(jù)安全,最大程度地防止數(shù)據(jù)被非法讀取或者修改,往往會為不同的用戶分配不同的操作權(quán)限,從而達到保護數(shù)據(jù)不被非法訪問的目的。最簡單有效的做法就是為用戶靜態(tài)分配權(quán)限,即在創(chuàng)建用戶時為該用戶分配相應(yīng)的權(quán)限。例如,管理員具有系統(tǒng)最高權(quán)限,而普通用戶則具有較低權(quán)限。這種方法簡單有效,但也會帶來諸多問題:
(1)用戶權(quán)限過低。當該用戶運行某項業(yè)務(wù)需要訪問超出其所有權(quán)限的部分數(shù)據(jù)時,會導致該項業(yè)務(wù)操作失敗,而要繼續(xù)進行該項業(yè)務(wù)則只能注冊新用戶并分配相應(yīng)權(quán)限,此舉不僅會降低系統(tǒng)應(yīng)用的效率,甚至會為企業(yè)帶來一定的經(jīng)濟損失。
(2)用戶權(quán)限過高。該用戶可以正常進行某些業(yè)務(wù)的操作,但其也具有訪問與操作無關(guān)數(shù)據(jù)的權(quán)限。若該用戶在進行該操作時常訪問與該業(yè)務(wù)無關(guān)的數(shù)據(jù),可能會造成數(shù)據(jù)被非法訪問的安全隱患。
(3)用戶職能的改變。某一用戶職能發(fā)生變化時,其權(quán)限也隨之改變,而對于靜態(tài)分配用戶權(quán)限的信息系統(tǒng)來說,只能注銷舊用戶,然后創(chuàng)建新用戶,但此舉會降低系統(tǒng)效率。
為彌補用戶權(quán)限靜態(tài)分配的缺點,用戶的權(quán)限應(yīng)根據(jù)具體任務(wù)的不同而發(fā)生變化,不應(yīng)處于靜態(tài)。此外,為防止系統(tǒng)內(nèi)部人員或非法操作人員竊取數(shù)據(jù),應(yīng)做到用戶與數(shù)據(jù)的隔離,將用戶與系統(tǒng)業(yè)務(wù)功能相關(guān)聯(lián),將業(yè)務(wù)功能與數(shù)據(jù)相關(guān)聯(lián)。因此有必要探索用戶的動態(tài)權(quán)限管理與認證方法,實現(xiàn)任務(wù)感知的權(quán)限管理。
(1)針對電力系統(tǒng)營銷網(wǎng)絡(luò),明確業(yè)務(wù)分類和業(yè)務(wù)功能與不同身份用戶的關(guān)系;
(2)明確業(yè)務(wù)功能與數(shù)據(jù)的關(guān)系,分清有效數(shù)據(jù)和無關(guān)數(shù)據(jù);
(3)為用戶動態(tài)分配業(yè)務(wù)操作權(quán)限并根據(jù)日志信息動態(tài)修改業(yè)務(wù)與數(shù)據(jù)的關(guān)聯(lián)關(guān)系。實現(xiàn)對用戶非法連接的判斷及安全隱患的檢測,并能及時向系統(tǒng)管理員發(fā)出警報。
此外,還要考慮系統(tǒng)運行環(huán)境的動態(tài)性,當各子系統(tǒng)中增加新設(shè)備時,首先要對該設(shè)備進行安全檢查,比如檢查IP等,如果是合法IP則允許接入系統(tǒng),同時還會在設(shè)備管理模塊增加該設(shè)備的信息。
為防止系統(tǒng)內(nèi)部人員或非法人員直接從數(shù)據(jù)庫中竊取數(shù)據(jù),本文設(shè)計了一種用戶與數(shù)據(jù)隔離的方案,通過為用戶動態(tài)分配業(yè)務(wù)操作權(quán)限和關(guān)聯(lián)業(yè)務(wù)功能與數(shù)據(jù)實現(xiàn)保護系統(tǒng)數(shù)據(jù)安全的目的。具體權(quán)限授予過程如圖1所示。

圖1 業(yè)務(wù)及數(shù)據(jù)操作權(quán)限授予過程
系統(tǒng)根據(jù)用戶的不同身份為其初始化業(yè)務(wù)操作權(quán)限,并且低等級用戶可以向更高等級用戶申請自身不具備的權(quán)限。另外,當用戶向系統(tǒng)發(fā)出操作請求后,由系統(tǒng)生成并分發(fā)給該用戶作為數(shù)據(jù)訪問權(quán)限的Token,在進行數(shù)據(jù)訪問時驗證Token的有效性,進而才能獲取數(shù)據(jù)信息。
為初始化分配不同身份用戶的業(yè)務(wù)操作權(quán)限,需要對業(yè)務(wù)進行分類,根據(jù)業(yè)務(wù)執(zhí)行需要不同的數(shù)據(jù)操作權(quán)限以及需要訪問數(shù)據(jù)的不同敏感程度分為四類。另外,根據(jù)某項業(yè)務(wù)的具體步驟,比如查詢、修改和刪除等,在執(zhí)行相應(yīng)步驟時也需要不同權(quán)限:
(1)一類:查詢類業(yè)務(wù)。包括大部分監(jiān)控類業(yè)務(wù),需要不斷讀取各種運行狀態(tài)(業(yè)務(wù)運行狀態(tài)、接口狀態(tài)、終端狀態(tài)等)信息;臺帳管理中的查詢部分。
(2)二類:數(shù)據(jù)讀寫類業(yè)務(wù)。包括臺帳管理中的運維管理、支撐單位管理和安全督查等,需要對相關(guān)階段的結(jié)果做錄入、修改和刪除等操作。
(3)三類:敏感信息的查詢、修改操作。對用戶信息、設(shè)備資產(chǎn)信息、支撐單位保密信息等的查詢和修改操作。
(4)四類:敏感信息的刪除操作。一般情況下,用戶不具有對敏感信息的刪除操作權(quán)限,需向更高等級用戶申請該權(quán)限。
相應(yīng)地,用戶登記可以根據(jù)不同業(yè)務(wù)或同一業(yè)務(wù)的不同操作分為四類,而相應(yīng)權(quán)限也越來越高。高等級用戶具有低等級用戶的全部操作權(quán)限,而當某低等級用戶需要更高等級的操作權(quán)限才能完成某項工作時,可以向高等級用戶申請操作權(quán)限,高等級用戶的權(quán)限分配方式分為以下兩種:
(1)授權(quán)。高等級用戶通過授權(quán)的方式賦予低等級用戶某項操作權(quán)限,而自已同時也保留此項權(quán)限。
(2)權(quán)限轉(zhuǎn)移。高等級用戶通過權(quán)限轉(zhuǎn)移的方式賦予低等級用戶某項操作權(quán)限,而有時為了保證需要訪問的數(shù)據(jù)只有唯一用戶操作,此時,高等級用戶將暫時不具有此項權(quán)限。
無論是授權(quán)還是權(quán)限轉(zhuǎn)移的方式,低等級用戶得到的某項權(quán)限只是暫時的,在授權(quán)或權(quán)限轉(zhuǎn)移的過程中,高等級用戶需要為該項權(quán)限增加一個有效期或數(shù)據(jù)訪問次數(shù)限制。
2.2.1 業(yè)務(wù)功能與數(shù)據(jù)關(guān)聯(lián)設(shè)計
除了上文中需要為不同用戶分配不同的業(yè)務(wù)操作權(quán)限外,還需要根據(jù)用戶訪問數(shù)據(jù)的日志信息動態(tài)更新業(yè)務(wù)功能與數(shù)據(jù)之間的關(guān)系,因此在數(shù)據(jù)庫中設(shè)計兩張關(guān)系表保存數(shù)據(jù)權(quán)限以及業(yè)務(wù)功能和需要訪問的數(shù)據(jù)之間的關(guān)系。數(shù)據(jù)-權(quán)限關(guān)系見表1所列,業(yè)務(wù)功能-數(shù)據(jù)關(guān)系見表2所列。

表1 數(shù)據(jù)-權(quán)限關(guān)系表

表2 業(yè)務(wù)功能-數(shù)據(jù)關(guān)系表
數(shù)據(jù)權(quán)限關(guān)系表用定長記錄來存儲,為每個數(shù)據(jù)塊分配唯一確定的訪問權(quán)限字段,包括只讀和讀寫權(quán)限,只有取得該數(shù)據(jù)項的訪問權(quán)限才可訪問,每個用戶在操作前先要進行身份認證,認證是否通過則根據(jù)用戶請求的不同操作授予相應(yīng)權(quán)限。
管控系統(tǒng)根據(jù)對日志信息的分析處理得到業(yè)務(wù)功能與數(shù)據(jù)信息的映射關(guān)系表,表明某項功能需要訪問的數(shù)據(jù)項有哪些。其中“訪問數(shù)據(jù)塊標識”字段用變長記錄保存,系統(tǒng)可以通過分析用戶訪問數(shù)據(jù)的日志信息動態(tài)更新此表。當某一用戶需要執(zhí)行某項操作時,首先需要獲取該項業(yè)務(wù)的操作權(quán)限,然后由系統(tǒng)分配給該用戶一個根據(jù)映射關(guān)系表生成的Token,其中包含了需要訪問的數(shù)據(jù)項的權(quán)限字段以及其他相關(guān)信息,如Token的有效期等。在進行數(shù)據(jù)訪問時,系統(tǒng)驗證該用戶Token的有效性,驗證通過則可以訪問數(shù)據(jù)。
2.2.2 Token生成及分發(fā)
利用用戶ID、生成時間、過期時間(此處設(shè)置為24 h)和業(yè)務(wù)功能需要訪問數(shù)據(jù)塊的權(quán)限字段生成一個全局唯一標識符(GUID)作為Token。因為相同用戶在同一時間不會進行兩項操作,所以每次分配給用戶的Token都是唯一的。由于生成的GUID是一個128位數(shù)組,為了方便攜帶以及提高Token的安全性,使用base64編碼把生成的GUID轉(zhuǎn)變?yōu)橐粋€較短的字符串,然后分發(fā)給該用戶。
對于客戶端,Token分發(fā)給相應(yīng)用戶之后,用戶保存在自身賬戶信息中,如瀏覽器的cookies,當該用戶進行某項操作并向服務(wù)器提出請求時,除了要向服務(wù)器發(fā)送請求信息外,還要把本地保存的Token一并發(fā)送到服務(wù)器。對服務(wù)器端而言,在生成Token分發(fā)給用戶的同時還要把生成的Token保存在服務(wù)器中為每個用戶創(chuàng)建的臨時文件中,用于Token的驗證,而不是把Token寫入數(shù)據(jù)庫,這樣在用戶完成某項操作或者退出系統(tǒng)后可以及時釋放該文件。
2.2.3 Token驗證模塊
當用戶向服務(wù)器提交請求以及Token信息后,在服務(wù)器端相應(yīng)用戶的臨時文件中取出Token與用戶提交的Token進行比對,其結(jié)果存在多種情況:
(1)Token有效:Token字段中包含該用戶需要訪問的數(shù)據(jù)權(quán)限字段,并且在其有效時間內(nèi)。
(2)Token 過期:根據(jù)Token中的有效時間判斷該用戶的Token是否過期。
(3)Token 無效:用戶ID錯誤或者該用戶不具有訪問數(shù)據(jù)的權(quán)限。
本文針對營銷系統(tǒng)數(shù)據(jù)安全設(shè)計了一種用戶權(quán)限動態(tài)分配方案,通過用戶與業(yè)務(wù)功能以及業(yè)務(wù)功能與數(shù)據(jù)的動態(tài)關(guān)聯(lián),實現(xiàn)用戶與數(shù)據(jù)的隔離,有效防止電力營銷系統(tǒng)數(shù)據(jù)被非法竊取,保證營銷系統(tǒng)數(shù)據(jù)安全。