唐菁敏,王紅彬,王朝陽,張 偉,周 旋
(昆明理工大學(xué),云南 昆明 650500)
隨著社會全面進(jìn)入互聯(lián)網(wǎng)時代,用戶在享用高質(zhì)量網(wǎng)絡(luò)服務(wù)的同時,在復(fù)雜的網(wǎng)絡(luò)環(huán)境中,存在著大量釣魚網(wǎng)站、木馬、軟件本身缺陷等危害用戶安全的問題[1]。如2017年爆發(fā)的新型“蠕蟲式”勒索軟件就是由不法分子,利用漏洞“EternalBlue”(永恒之藍(lán))進(jìn)行傳播,使至少150個國家、30萬名用戶中招,造成損失達(dá)80億美元,影響到金融,能源,醫(yī)療等眾多行業(yè),引起世界范圍內(nèi)對漏洞安全的廣泛關(guān)注。
目前處理漏洞主要途徑是對擁有主機(jī)進(jìn)行單獨漏洞掃描,發(fā)現(xiàn)漏洞進(jìn)行安裝補(bǔ)丁[2-3]。但是該流程還有可以繼續(xù)優(yōu)化,如對漏洞進(jìn)行跟蹤,對漏洞數(shù)據(jù)整理,展示漏洞不同解決方案,漏洞庫實時更新等。根據(jù)以上問題,根據(jù)漏洞檢測工具 cvechecker提供的漏洞掃描接口[4],開發(fā)設(shè)計了基于SSM-ZD[5-8]的漏洞管理平臺,可以使用戶通過漏管平臺,下發(fā)漏洞掃描任務(wù),查看漏洞處理流程,便于更好的管理系統(tǒng)存在漏洞并及時處理。
漏洞管理平臺由三個核心模塊組合而成,分別為基礎(chǔ)管理模塊、漏洞管理模塊和數(shù)據(jù)中心模塊,平臺以這些模塊進(jìn)行功能實現(xiàn)并擴(kuò)展,如圖1所示為漏洞管理平臺功能模塊。
圖1 漏管平臺功能模塊Fig.1 Leakage tube platform function module
基礎(chǔ)管理模塊下包括了用戶管理、系統(tǒng)公告。平臺管理員通過用戶管理添加用戶并設(shè)置相應(yīng)權(quán)限來新增訪問賬號,為保護(hù)用戶安全,平臺設(shè)置多種登錄方式以供挑選,如若用戶僅需要簡單保護(hù)措施,可使用靜態(tài)密碼登錄方式。如若平臺安全級別需要提升,也可使用其他登錄認(rèn)證方式如:短信+密碼認(rèn)證、證書認(rèn)證、Radius認(rèn)證和密碼+令牌認(rèn)證的方式[9],為用戶提供安全可靠的保證。
管理員可將最新的漏洞補(bǔ)丁情況以公告信息通知平臺用戶,便于各個用戶能即使獲取相關(guān)信息。公告會以彈窗形式來通知所有在線用戶,并在平臺首頁實時動態(tài)顯示。
漏洞管理模塊包括漏洞采集、漏洞管理、漏洞跟蹤和告警配置。用漏洞采集配置包括數(shù)據(jù)類型、接口地址、賬號密碼、廠商。配置完成即可運行漏洞采集任務(wù),并進(jìn)入漏洞管理界面。
漏洞管理頁面展示平臺下發(fā)掃描任務(wù),所有漏洞信息可在該界面查看并進(jìn)行處理,點擊可查看漏洞詳情及相關(guān)解決辦法。漏洞跟蹤界面可對漏洞進(jìn)行處理,不同業(yè)務(wù)線管理人員可對自己負(fù)責(zé)主機(jī)進(jìn)行漏洞整改,管理員可在該界面查詢漏洞具體的解決方法。
告警配置可設(shè)置系統(tǒng)告警方式、告警級別、跟蹤級別、漏洞延期及漏洞延期率等相關(guān)配置。通過上述配置,當(dāng)系統(tǒng)超過閾值可以通過配置告警方式進(jìn)行告警,通知相關(guān)人員及時處理,以免對系統(tǒng)照成影響。
數(shù)據(jù)中心模塊包括漏洞報表、系統(tǒng)報表和離線報表。該模塊主要進(jìn)行數(shù)據(jù)可視化處理,用圖表方式展示漏洞數(shù)據(jù)背后的系統(tǒng)可靠性,使用戶更加直觀清楚地了解各管理下各個系統(tǒng)安全及漏洞情況。平臺也可生成word或pdf離線報表格式供用戶下載使用。
平臺后臺框架采用SSM[10-12](Spring、SpringMVC、MyBatis)框架整合而成,框架模型如圖2所示。
圖2 SSM框架模型Fig.2 SSM framework model
Spring:Spring是整個項目中裝配bean的工廠,根據(jù)設(shè)置的配置文件使用特定的參數(shù)去調(diào)用實體類的構(gòu)造方法來實例化對象。其核心思想是 IoC(控制反轉(zhuǎn)),可以不再繁瑣的顯式地`new`一個對象,而是讓Spring框架解決并減少工作重復(fù)工作。
SpringMVC:主要進(jìn)行頁面的請求攔截與用戶響應(yīng)。組件有前端控制器,處理器映射器,處理器適配器,視圖解析器,處理器Handler,視圖View。SpringMVC在項目中攔截用戶請求,它的核心Servlet即 DispatcherServlet承擔(dān)中介或是前臺這樣的職責(zé),將用戶請求通過 HandlerMapping去匹配Controller,Controller就是具體對應(yīng)請求所執(zhí)行的操作。
Mybatis:主要進(jìn)行jdbc的封裝,它讓數(shù)據(jù)庫底層操作變的透明。操作使用 sqlSessionFactory實例展開,通過xml配置文件關(guān)聯(lián)到各實體類的Mapper文件,Mapper文件中配置了每個類對數(shù)據(jù)庫所需進(jìn)行的sql語句映射。通過sqlSessionFactory拿到一個sqlSession,執(zhí)行 sql命令與數(shù)據(jù)庫交互返回給業(yè)務(wù)層[13]。
為了應(yīng)對用戶分布廣泛,黑客攻擊,數(shù)據(jù)量過大的問題,平臺采用整合Dubbo和zookeeper來構(gòu)建系分布式架構(gòu)[14-15]。使用Dubbo來管理我們的服務(wù)的,以前我們都是自己調(diào)自己的服務(wù),如果服務(wù)掛掉的話,那么整個系統(tǒng)就掛掉了,現(xiàn)在是我們把服務(wù)交給 dubbo去統(tǒng)一管理,然后通過 zookeeper來管理我們的dubbo的,具體模型圖3所示。
圖3 Dubbo整合zookeeper模式圖Fig.3 Dubbo integration zookeeper mode diagram
ZooKeeper:Google發(fā)布的開放源碼的分布式協(xié)調(diào)服務(wù),平臺通過引入ZooKeeper作為存儲媒介,實現(xiàn)負(fù)載均衡,因為單一服務(wù)器的承載能力是有限的,使用ZooKeeper群配合Dubbo服務(wù)框架完成分布式服務(wù)器,在流量達(dá)到一定程度的時候?qū)崿F(xiàn)分流;使用ZooKeeper集群實現(xiàn)不同節(jié)點之間的數(shù)據(jù)和資源同步,讓不同主機(jī)服務(wù)更多用戶。
Dubbo:阿里巴巴公司開源的一個高性能優(yōu)秀的服務(wù)框架,使用透明化的遠(yuǎn)程方法調(diào)用,實現(xiàn)負(fù)載均衡及容錯機(jī)制,可在內(nèi)網(wǎng)替代硬件負(fù)載均衡器,降低成本,減少單點。并且服務(wù)自動注冊與發(fā)現(xiàn),能夠平滑添加或刪除服務(wù)提供者,和 Zookeeper整合可與Spring框架無縫集成。
在本平臺中,通過 dubbo的服務(wù)在 zookeeper上面創(chuàng)建一個臨時節(jié)點,表明自己的ip和端口,當(dāng)用戶需要提交請求時,會先在zookeeper上面查詢[16]。根據(jù)zookeeper配置,做一些負(fù)載的選擇(比如隨機(jī)、輪流),找到服務(wù)相應(yīng)的dubbo提供者,然后按照這些信息,為訪問服務(wù)提供相應(yīng)響應(yīng)。通過添加分布式服務(wù),可使平臺成倍的增長服務(wù)能力,提供更可靠服務(wù)。
前端 WEB主要為用戶提供操作界面,平臺前端頁面采用Freemark模板引擎,前后端通過JSON來進(jìn)行交互,解耦前后端的關(guān)聯(lián)程度。在數(shù)據(jù)中心使用Echarts進(jìn)行頁面的數(shù)據(jù)可視化展示,并提供豐富的圖表類型,使用Bootstrap技術(shù)簡化前端頁面維護(hù)難度及提高開發(fā)效率[17]。
根據(jù)上述漏洞管理平臺的功能模塊分析及技術(shù)選型,完成對整體框架模型設(shè)計開發(fā),因本文篇幅有限,現(xiàn)在僅對漏管平臺核心模塊漏洞管理模塊進(jìn)行詳細(xì)介紹,漏洞管理使用流程如圖4所示。
圖4 漏洞管理流程圖Fig.4 Vulnerability management flowchart
通過漏洞采集,將得到漏洞數(shù)據(jù)保存到 Mysql數(shù)據(jù)庫中,數(shù)據(jù)庫按照漏洞ID、發(fā)布日期、等級危害等關(guān)鍵字對保存數(shù)據(jù)進(jìn)行分類排序,方便后續(xù)查詢讀取數(shù)據(jù)。掃描配置信息及漏洞詳細(xì)描述會以DES加密算法處理[18],秘鑰通過XML配置文件保存在代碼中,加密的工作主要保證平臺的漏洞信息安全,防止安全信息泄露會被竊取。
漏洞告警主要負(fù)責(zé)及時通知平臺安全狀態(tài),用戶通過配置檢測主機(jī)ip、安全告警級別、通知方式、通知人等信息,平臺可自動檢測目標(biāo)主機(jī)的漏洞安全狀況,及時通知先關(guān)人員,避免問題處理不及時,造成不必要損失。
本平臺部署在云服務(wù)器中,分 A、B兩個相同配置服務(wù)器同時運行,服務(wù)器為CPU核數(shù):4核,內(nèi)存:3.74 GB,通過騰訊WeTest壓測大師對平臺進(jìn)行壓力測試[19-21],主要測試了響應(yīng)平均時間、事務(wù)成功率、收發(fā)包率等關(guān)鍵參數(shù)。設(shè)置模擬1000人并發(fā)訪問系統(tǒng)各項功能1小時,檢測并記錄關(guān)鍵數(shù)據(jù)如下表1所示。
表1 服務(wù)器壓力測試數(shù)據(jù)Tab.1 Server stress test data
壓力測試結(jié)果表明,在模擬一萬人同時訪問漏管平臺時,系統(tǒng)性能穩(wěn)定相應(yīng)速度穩(wěn)定在合理范圍之內(nèi),事務(wù)基本全部成功執(zhí)行,服務(wù)器可以穩(wěn)定運行。
圖5,圖6為部分關(guān)鍵頁面的效果圖。
圖5 漏洞管理主頁Fig.5 Vulnerability Management Homepage
圖6 漏洞下發(fā)界面Fig.6 Vulnerability distribution interface
平臺針對互聯(lián)網(wǎng)漏洞管理的問題進(jìn)行分析研究,通過SSM框架并整合Zookeeper和Dubbo分布式服務(wù),設(shè)計并開發(fā)了一個可提供高效穩(wěn)定的的漏洞管理平臺,平臺可為用戶提供一個簡單快捷的漏洞管理工具。但是漏洞管理平臺還有很多模塊并未添加,目前所接觸僅僅是系統(tǒng)的一部分,還有需要進(jìn)一步集成并完善。隨著互聯(lián)網(wǎng)安全的發(fā)展及網(wǎng)絡(luò)安全標(biāo)準(zhǔn)的建立,漏洞管理平臺必然會成為未來網(wǎng)絡(luò)安全的重要解決方案。
[1] 石建國, 周檬, 石彥芳. 計算機(jī)系統(tǒng)漏洞與安全防范技術(shù)探討[J]. 無線互聯(lián)科技, 2014(11).
[2] 張蜻. 計算機(jī)系統(tǒng)漏洞與安全防范技術(shù)探索[[J]. 電子技術(shù)與軟件工程, 2014(8).
[3] 劉西青. 淺談計算機(jī)網(wǎng)絡(luò)安全問題[J]. 軟件, 2013, 34(12):239.
[4] 印杰, 李千目. 軟件代碼漏洞的電子取證技術(shù)綜述[J]. 軟件, 2015, 36(12): 49-59.
[5] 姚成浪. 基于ZooKeeper與dubbo的集群計算系統(tǒng)設(shè)計與實現(xiàn)[D]. 哈爾濱: 哈爾濱工程大學(xué). 2007.
[6] 王楊. 基于校園網(wǎng)的網(wǎng)絡(luò)安全與開銷研究[J]. 軟件, 2014,35(4): 189-192.
[7] 馬立新, 金月光. 基于策略的網(wǎng)絡(luò)安全管理系統(tǒng)設(shè)計與實現(xiàn)[J]. 軟件, 2013, 34(6): 25-26.
[8] 夏德友, 陳艷華. 探究微信技術(shù)架構(gòu)及安全漏洞和防范技術(shù)[[J]. 信息技術(shù)與信息化, 2015(9).
[9] 王倩宜, 李潤娥, 李庭晏. 統(tǒng)一用戶管理和身份認(rèn)證服務(wù)的設(shè)計與實現(xiàn)[J]. 實驗技術(shù)與管理, 2014.
[10] 吳黎明, 陸曉輝, 漏洞管理平臺框架結(jié)構(gòu)設(shè)計, 2013, 8.
[11] 張桂元、賈燕楓、姜波《征服Ajax Web 2.0快速入門與項目實踐(Java)》人民郵電出版社, 2006.
[12] 高寅生《安全漏洞庫設(shè)計與實現(xiàn)》, 《微電子學(xué)與計算機(jī)》,2007年第24卷第3期.
[13] (美)威爾德, 斯尼德等著, 趙利通譯. SpringFramework 2入門經(jīng)典[M]. 北京: 清華大學(xué)出版社, 2015.
[14] 譚玉靖. 基于ZooKeeper的分布式處理框架的研究與實現(xiàn)[J]. 計算機(jī)工程, 2014, 29(22): 93-95.
[15] 王潤華, 任化敏, 周艷芳分布式系統(tǒng)開發(fā)利器——ZooKeeper研究[J]. 中國電子商情: 通信市場, 2012(1): 64-67.
[16] 曹黎波. Web應(yīng)用的漏洞檢測與防范技術(shù)研究[[J]. 中國礦業(yè)大學(xué), 2015(6).
[17] 鄭力明, 李曉冬, 羅建祿. 服務(wù)器與集群系統(tǒng)節(jié)能技術(shù)研究[J]. 軟件, 2013, 34(4): 59-61.
[18] 龍著乾. 流媒體服務(wù)器集群的負(fù)載均衡研究[J]. 軟件,2013, 34(4): 62-64.
[19] Charles P. Pfleeger, Shari Lawrence Pfleeger《信息安全原理與應(yīng)用》(第4版).
[20] Ron Patton. 軟件測試[M]. 機(jī)械工業(yè)出版社, 2010.
[21] 涂華軻, 鄒華, 林榮恒. 增強(qiáng)的云化并行計算框架系統(tǒng)的設(shè)計與實現(xiàn)[J]. 新型工業(yè)化, 2012, 2(12): 33-40.