唐菁敏,王紅彬,王朝陽,張 偉,周 旋
(昆明理工大學,云南 昆明 650500)
隨著社會全面進入互聯網時代,用戶在享用高質量網絡服務的同時,在復雜的網絡環境中,存在著大量釣魚網站、木馬、軟件本身缺陷等危害用戶安全的問題[1]。如2017年爆發的新型“蠕蟲式”勒索軟件就是由不法分子,利用漏洞“EternalBlue”(永恒之藍)進行傳播,使至少150個國家、30萬名用戶中招,造成損失達80億美元,影響到金融,能源,醫療等眾多行業,引起世界范圍內對漏洞安全的廣泛關注。
目前處理漏洞主要途徑是對擁有主機進行單獨漏洞掃描,發現漏洞進行安裝補丁[2-3]。但是該流程還有可以繼續優化,如對漏洞進行跟蹤,對漏洞數據整理,展示漏洞不同解決方案,漏洞庫實時更新等。根據以上問題,根據漏洞檢測工具 cvechecker提供的漏洞掃描接口[4],開發設計了基于SSM-ZD[5-8]的漏洞管理平臺,可以使用戶通過漏管平臺,下發漏洞掃描任務,查看漏洞處理流程,便于更好的管理系統存在漏洞并及時處理。
漏洞管理平臺由三個核心模塊組合而成,分別為基礎管理模塊、漏洞管理模塊和數據中心模塊,平臺以這些模塊進行功能實現并擴展,如圖1所示為漏洞管理平臺功能模塊。

圖1 漏管平臺功能模塊Fig.1 Leakage tube platform function module
基礎管理模塊下包括了用戶管理、系統公告。平臺管理員通過用戶管理添加用戶并設置相應權限來新增訪問賬號,為保護用戶安全,平臺設置多種登錄方式以供挑選,如若用戶僅需要簡單保護措施,可使用靜態密碼登錄方式。如若平臺安全級別需要提升,也可使用其他登錄認證方式如:短信+密碼認證、證書認證、Radius認證和密碼+令牌認證的方式[9],為用戶提供安全可靠的保證。
管理員可將最新的漏洞補丁情況以公告信息通知平臺用戶,便于各個用戶能即使獲取相關信息。公告會以彈窗形式來通知所有在線用戶,并在平臺首頁實時動態顯示。
漏洞管理模塊包括漏洞采集、漏洞管理、漏洞跟蹤和告警配置。用漏洞采集配置包括數據類型、接口地址、賬號密碼、廠商。配置完成即可運行漏洞采集任務,并進入漏洞管理界面。
漏洞管理頁面展示平臺下發掃描任務,所有漏洞信息可在該界面查看并進行處理,點擊可查看漏洞詳情及相關解決辦法。漏洞跟蹤界面可對漏洞進行處理,不同業務線管理人員可對自己負責主機進行漏洞整改,管理員可在該界面查詢漏洞具體的解決方法。
告警配置可設置系統告警方式、告警級別、跟蹤級別、漏洞延期及漏洞延期率等相關配置。通過上述配置,當系統超過閾值可以通過配置告警方式進行告警,通知相關人員及時處理,以免對系統照成影響。
數據中心模塊包括漏洞報表、系統報表和離線報表。該模塊主要進行數據可視化處理,用圖表方式展示漏洞數據背后的系統可靠性,使用戶更加直觀清楚地了解各管理下各個系統安全及漏洞情況。平臺也可生成word或pdf離線報表格式供用戶下載使用。
平臺后臺框架采用SSM[10-12](Spring、SpringMVC、MyBatis)框架整合而成,框架模型如圖2所示。

圖2 SSM框架模型Fig.2 SSM framework model
Spring:Spring是整個項目中裝配bean的工廠,根據設置的配置文件使用特定的參數去調用實體類的構造方法來實例化對象。其核心思想是 IoC(控制反轉),可以不再繁瑣的顯式地`new`一個對象,而是讓Spring框架解決并減少工作重復工作。
SpringMVC:主要進行頁面的請求攔截與用戶響應。組件有前端控制器,處理器映射器,處理器適配器,視圖解析器,處理器Handler,視圖View。SpringMVC在項目中攔截用戶請求,它的核心Servlet即 DispatcherServlet承擔中介或是前臺這樣的職責,將用戶請求通過 HandlerMapping去匹配Controller,Controller就是具體對應請求所執行的操作。
Mybatis:主要進行jdbc的封裝,它讓數據庫底層操作變的透明。操作使用 sqlSessionFactory實例展開,通過xml配置文件關聯到各實體類的Mapper文件,Mapper文件中配置了每個類對數據庫所需進行的sql語句映射。通過sqlSessionFactory拿到一個sqlSession,執行 sql命令與數據庫交互返回給業務層[13]。
為了應對用戶分布廣泛,黑客攻擊,數據量過大的問題,平臺采用整合Dubbo和zookeeper來構建系分布式架構[14-15]。使用Dubbo來管理我們的服務的,以前我們都是自己調自己的服務,如果服務掛掉的話,那么整個系統就掛掉了,現在是我們把服務交給 dubbo去統一管理,然后通過 zookeeper來管理我們的dubbo的,具體模型圖3所示。

圖3 Dubbo整合zookeeper模式圖Fig.3 Dubbo integration zookeeper mode diagram
ZooKeeper:Google發布的開放源碼的分布式協調服務,平臺通過引入ZooKeeper作為存儲媒介,實現負載均衡,因為單一服務器的承載能力是有限的,使用ZooKeeper群配合Dubbo服務框架完成分布式服務器,在流量達到一定程度的時候實現分流;使用ZooKeeper集群實現不同節點之間的數據和資源同步,讓不同主機服務更多用戶。
Dubbo:阿里巴巴公司開源的一個高性能優秀的服務框架,使用透明化的遠程方法調用,實現負載均衡及容錯機制,可在內網替代硬件負載均衡器,降低成本,減少單點。并且服務自動注冊與發現,能夠平滑添加或刪除服務提供者,和 Zookeeper整合可與Spring框架無縫集成。
在本平臺中,通過 dubbo的服務在 zookeeper上面創建一個臨時節點,表明自己的ip和端口,當用戶需要提交請求時,會先在zookeeper上面查詢[16]。根據zookeeper配置,做一些負載的選擇(比如隨機、輪流),找到服務相應的dubbo提供者,然后按照這些信息,為訪問服務提供相應響應。通過添加分布式服務,可使平臺成倍的增長服務能力,提供更可靠服務。
前端 WEB主要為用戶提供操作界面,平臺前端頁面采用Freemark模板引擎,前后端通過JSON來進行交互,解耦前后端的關聯程度。在數據中心使用Echarts進行頁面的數據可視化展示,并提供豐富的圖表類型,使用Bootstrap技術簡化前端頁面維護難度及提高開發效率[17]。
根據上述漏洞管理平臺的功能模塊分析及技術選型,完成對整體框架模型設計開發,因本文篇幅有限,現在僅對漏管平臺核心模塊漏洞管理模塊進行詳細介紹,漏洞管理使用流程如圖4所示。

圖4 漏洞管理流程圖Fig.4 Vulnerability management flowchart
通過漏洞采集,將得到漏洞數據保存到 Mysql數據庫中,數據庫按照漏洞ID、發布日期、等級危害等關鍵字對保存數據進行分類排序,方便后續查詢讀取數據。掃描配置信息及漏洞詳細描述會以DES加密算法處理[18],秘鑰通過XML配置文件保存在代碼中,加密的工作主要保證平臺的漏洞信息安全,防止安全信息泄露會被竊取。
漏洞告警主要負責及時通知平臺安全狀態,用戶通過配置檢測主機ip、安全告警級別、通知方式、通知人等信息,平臺可自動檢測目標主機的漏洞安全狀況,及時通知先關人員,避免問題處理不及時,造成不必要損失。
本平臺部署在云服務器中,分 A、B兩個相同配置服務器同時運行,服務器為CPU核數:4核,內存:3.74 GB,通過騰訊WeTest壓測大師對平臺進行壓力測試[19-21],主要測試了響應平均時間、事務成功率、收發包率等關鍵參數。設置模擬1000人并發訪問系統各項功能1小時,檢測并記錄關鍵數據如下表1所示。

表1 服務器壓力測試數據Tab.1 Server stress test data
壓力測試結果表明,在模擬一萬人同時訪問漏管平臺時,系統性能穩定相應速度穩定在合理范圍之內,事務基本全部成功執行,服務器可以穩定運行。
圖5,圖6為部分關鍵頁面的效果圖。

圖5 漏洞管理主頁Fig.5 Vulnerability Management Homepage

圖6 漏洞下發界面Fig.6 Vulnerability distribution interface
平臺針對互聯網漏洞管理的問題進行分析研究,通過SSM框架并整合Zookeeper和Dubbo分布式服務,設計并開發了一個可提供高效穩定的的漏洞管理平臺,平臺可為用戶提供一個簡單快捷的漏洞管理工具。但是漏洞管理平臺還有很多模塊并未添加,目前所接觸僅僅是系統的一部分,還有需要進一步集成并完善。隨著互聯網安全的發展及網絡安全標準的建立,漏洞管理平臺必然會成為未來網絡安全的重要解決方案。
[1] 石建國, 周檬, 石彥芳. 計算機系統漏洞與安全防范技術探討[J]. 無線互聯科技, 2014(11).
[2] 張蜻. 計算機系統漏洞與安全防范技術探索[[J]. 電子技術與軟件工程, 2014(8).
[3] 劉西青. 淺談計算機網絡安全問題[J]. 軟件, 2013, 34(12):239.
[4] 印杰, 李千目. 軟件代碼漏洞的電子取證技術綜述[J]. 軟件, 2015, 36(12): 49-59.
[5] 姚成浪. 基于ZooKeeper與dubbo的集群計算系統設計與實現[D]. 哈爾濱: 哈爾濱工程大學. 2007.
[6] 王楊. 基于校園網的網絡安全與開銷研究[J]. 軟件, 2014,35(4): 189-192.
[7] 馬立新, 金月光. 基于策略的網絡安全管理系統設計與實現[J]. 軟件, 2013, 34(6): 25-26.
[8] 夏德友, 陳艷華. 探究微信技術架構及安全漏洞和防范技術[[J]. 信息技術與信息化, 2015(9).
[9] 王倩宜, 李潤娥, 李庭晏. 統一用戶管理和身份認證服務的設計與實現[J]. 實驗技術與管理, 2014.
[10] 吳黎明, 陸曉輝, 漏洞管理平臺框架結構設計, 2013, 8.
[11] 張桂元、賈燕楓、姜波《征服Ajax Web 2.0快速入門與項目實踐(Java)》人民郵電出版社, 2006.
[12] 高寅生《安全漏洞庫設計與實現》, 《微電子學與計算機》,2007年第24卷第3期.
[13] (美)威爾德, 斯尼德等著, 趙利通譯. SpringFramework 2入門經典[M]. 北京: 清華大學出版社, 2015.
[14] 譚玉靖. 基于ZooKeeper的分布式處理框架的研究與實現[J]. 計算機工程, 2014, 29(22): 93-95.
[15] 王潤華, 任化敏, 周艷芳分布式系統開發利器——ZooKeeper研究[J]. 中國電子商情: 通信市場, 2012(1): 64-67.
[16] 曹黎波. Web應用的漏洞檢測與防范技術研究[[J]. 中國礦業大學, 2015(6).
[17] 鄭力明, 李曉冬, 羅建祿. 服務器與集群系統節能技術研究[J]. 軟件, 2013, 34(4): 59-61.
[18] 龍著乾. 流媒體服務器集群的負載均衡研究[J]. 軟件,2013, 34(4): 62-64.
[19] Charles P. Pfleeger, Shari Lawrence Pfleeger《信息安全原理與應用》(第4版).
[20] Ron Patton. 軟件測試[M]. 機械工業出版社, 2010.
[21] 涂華軻, 鄒華, 林榮恒. 增強的云化并行計算框架系統的設計與實現[J]. 新型工業化, 2012, 2(12): 33-40.