朱犇,陳夢嫻,孫望舒,戴文博
(國網(wǎng)浙江省電力有限公司溫州供電公司,浙江溫州 32500)
2017年5月12日,WannaCry勒索病毒事件全球爆發(fā),利用了微軟公司W(wǎng)indows操作系統(tǒng)的SMB服務漏洞(MS17-010)進行傳播感染,兩天時間,約2242.3萬個IP地址遭受“永恒之藍”漏洞攻擊。2017年12月15日, Oracle WebLogic存在CVE-2017-3506/CVE-2017-10352漏洞,被挖礦程序Watch-smartd所利用。2018年2月28日,知名代碼托管網(wǎng)站 GitHub 遭遇了史上最大規(guī)模的 DDoS 網(wǎng)絡攻擊,每秒 1.35 TB 的流量瞬間沖擊了這一開發(fā)者平臺,攻擊者利用了基于 Memcached 的超放大攻擊。以上所有的這些安全事件受影響的設備基本都是暴露在互聯(lián)網(wǎng)上的,因此掌握企業(yè)資產(chǎn)在全互聯(lián)網(wǎng)中的暴露情況非常值得關(guān)注。
近年來互聯(lián)網(wǎng)大發(fā)展,正逐漸改變企業(yè)辦公、系統(tǒng)運維的工作方式,同時推動了生產(chǎn)系統(tǒng)的更新?lián)Q代和生產(chǎn)方式的變革。因企業(yè)業(yè)務需要I T 業(yè)務系統(tǒng)越建越多,資產(chǎn)暴露面越來越大,給別有用心者更多可乘之機,甚至導致災難性的破壞。
企業(yè)信息化工作經(jīng)過數(shù)年發(fā)展,業(yè)務系統(tǒng)、互聯(lián)網(wǎng)業(yè)務、手機應用已經(jīng)得到了推廣,但隨著業(yè)務發(fā)展系統(tǒng)建設仍在不停發(fā)展,未經(jīng)報備私搭私建的情況仍然存在。這些業(yè)務系統(tǒng)未經(jīng)上線安全評估,存在極大的安全風險。主要表現(xiàn)在兩個方面,一是多數(shù)應用使用未經(jīng)安全檢測的第三方應用,二是系統(tǒng)開發(fā)人員安全意識薄弱,業(yè)務安全漏洞層出不窮。
對于日常安全管理來說,基于上述情況,主要要求業(yè)務部門做上線前安全評估,通過系統(tǒng)安全檢測挖掘安全風險,檢測通過方可上線運行,同時發(fā)布上線前安全管理辦法,從管理維度進行約束。雖然從技術(shù)和管理都進行了相應的要求,但仍然無法杜絕私自上線業(yè)務系統(tǒng),破壞安全的行為,給企業(yè)安全管理造成不小影響。
綜上所述,不管從業(yè)務自身安全考慮,還是從企業(yè)安全整體考慮。通過建設自動化監(jiān)測Web應用URL地址工具,來監(jiān)控網(wǎng)絡內(nèi)私自上線業(yè)務系統(tǒng)的行為,勢在必行。
圖1 勒索病毒
現(xiàn)階段上線前安全評估流程在各大企業(yè)是力推的工作,但是一項流程如果通過制度推進,因涉及多個部門等因素通過制度很難推進。如果流程通過線上平臺控制,不僅可以減少運營跟進的人工成本,還能使推進工作更加順暢。資產(chǎn)變更工作,安全部與業(yè)務部門對接較多,如圖1所示,通過建立資產(chǎn)發(fā)現(xiàn)平臺與需求申請平臺、開發(fā)管理平臺等對接,可以最大限度地減少溝通成本,提升推進效率。
很多業(yè)務系統(tǒng)由于用戶較多,需求較大,開發(fā)團隊有時候一周要對一個系統(tǒng)進行多次修改,如果每次修改都需要多個部門介入評審或評估,工作效率極地。同時,大部分企業(yè)對信息安全意識宣貫力度不夠,開發(fā)部門KPI更多的在于業(yè)務連續(xù)性、功能使用等方面,因此為了便捷及KPI會拋棄安全性。
圖2 業(yè)務部門分布
資產(chǎn)風險主要來源主要包括三個方面:一是未經(jīng)上線的業(yè)務系統(tǒng)(Web系統(tǒng)為主);二是未經(jīng)加固直接上線的;三是由于后期運維為了便捷而開啟的運維端口;四是由于業(yè)務需要但未經(jīng)過評估私自開啟的系統(tǒng)互聯(lián)接口。
Web系統(tǒng)方面主要風險為XSS漏洞、SQL注入漏洞、越權(quán)訪問、旁注、任意文件上傳等高危應用層漏洞。輕則系統(tǒng)遭受非法攻擊,重則數(shù)據(jù)泄露、主機權(quán)限丟失等。
未經(jīng)加固的主機及運維端口開啟風險包括:開啟不必要的服務、高危端口、弱口令等??赡苊媾R攻擊包括拒絕服務攻擊、內(nèi)存溢出、提權(quán)等高危風險。
系統(tǒng)互聯(lián)接口包括系統(tǒng)服務接口、W e b 接口、數(shù)據(jù)庫接口、運維端口等。風險包括賬號越權(quán)、弱口令、主機提取等。
圖3 Web2.0安全研究報告
安全部門提供安全編碼規(guī)范,開發(fā)團隊在開發(fā)過程中需要上按照編碼規(guī)范要求。在開發(fā)階段減少安全隱患。規(guī)范需要涵蓋賬號與認證、輸入與輸出驗證、授權(quán)管理、數(shù)據(jù)保護、會話管理、加密管理、日志管理、異常管理等方面,從業(yè)務邏輯建議、代碼編寫建議、管理規(guī)范建議等方面提出安全需求。定期對開發(fā)部門進行安全編碼培訓,講解常見應用漏洞產(chǎn)生原理,提升開發(fā)人員安全編碼意識和安全開發(fā)水平。
新上線系統(tǒng)、修改后的系統(tǒng)上線前,需要經(jīng)過安全部門檢測(包括滲透測試、漏洞掃描、代碼設計等評估),對發(fā)現(xiàn)高危漏洞的系統(tǒng),修復后復測,保證沒有安全隱患后才允許上線。
對正在運行的線上系統(tǒng),每日由滲透測試團隊進行安全檢測,包括Web漏洞掃描和人工滲透測試等措施,漏洞掃描使用多款掃描器交叉掃描,人工滲透根據(jù)制定的漏洞清單Checklist檢測,根據(jù)檢測結(jié)果,建立知識庫,統(tǒng)計出一般掃描器能檢測哪些漏洞,哪些漏洞掃描器不好發(fā)現(xiàn),如邏輯漏洞、越權(quán)漏洞等,只能通過人工滲透方式檢測,保證檢測的廣度和深度,提高檢測效率。
(1)測試使用的應用,遷移到內(nèi)網(wǎng),不在互聯(lián)網(wǎng)暴露。
(2) 對訪問量較少的應用,建議關(guān)閉,訪問量數(shù)據(jù)可以從WAF、防火墻等設備上獲取。
(3)部分網(wǎng)站啟用了HTTPS后,HTTP網(wǎng)站可以繼續(xù)訪問,建議關(guān)閉HTTP網(wǎng)站的訪問。
(4) 業(yè)務系統(tǒng)有關(guān)聯(lián)或者相似的,通過一個U R L 訪問主站,其他業(yè)務系統(tǒng)通過二級目錄訪問。
(1)通過自動化掃描全網(wǎng)存活I(lǐng)P、端口等信息,自動化識別U R L 地址,并判斷U R L 是否有效,通過指紋特征庫識別URL歸屬。
(2)建立指紋特征庫,自動化識別已備案和未備案業(yè)務系統(tǒng),系統(tǒng)應建立指紋算法,根據(jù)不同U R L 信息通過算法算出指紋與后臺指紋庫進行對比,輸出結(jié)果。
(3)自動化掃描全網(wǎng)IP存活情況、端口開放情況,系統(tǒng)根據(jù)用戶輸入I P 資產(chǎn)信息,允許定期、不定期自動化掃描I P 存活情況,自動化分析開放端口情況。
自動化檢測是本文研究重點,通過實時探測分析,可及時發(fā)現(xiàn)風險源。
自動化檢測最重要的工作是自動化檢測資產(chǎn)存活情況,存活情況包括IP存活情況、端口開放情況、系統(tǒng)服務開啟情況等。結(jié)合業(yè)務上線規(guī)律,工具應具備幾點能力:定時自動掃描能力;自動化收集掃描結(jié)果能力;應具備歷史經(jīng)驗庫收集、白名單、黑名單等能力;應能根據(jù)經(jīng)驗庫,黑白名單自動判別的能力。
圖4 自動化檢測流程
第一種方式:使用Shell腳本檢測某個網(wǎng)段內(nèi)存活的主機,主要原理是使用循環(huán)Ping該網(wǎng)段內(nèi)的每一個地址,根據(jù)執(zhí)行是否成功輸出主機是否存活。
第二種方式:使用專業(yè)的網(wǎng)絡工具Nmap、IPscan等。
應允許用戶自定義掃描頻率、掃描內(nèi)容及資產(chǎn)自定義等能力。
當工具檢測到目標主機開啟端口時,工具應自動化判別目標端口是否為Web端口,并對其網(wǎng)站的存活判斷,如果目標站點可用,應對其進行自動化識別。識別依據(jù)來源歷史經(jīng)驗庫和黑白名單庫,如果識別成功,進行標注,如果識別失敗交由人工判斷。
Web資產(chǎn)眾多及開發(fā)迭代較快,安全部門管理需求包括:一是通過工具識別存量業(yè)務;二是通過工具識別新增業(yè)務及未報備的業(yè)務?;诎踩块T需求分析,工具應具備:記錄歷史Web資產(chǎn)信息的能力;具備記錄業(yè)務黑白名單的能力。
當工具完成自動化掃描之后,應根據(jù)掃描策略完成掃描結(jié)果歸集,根據(jù)分析策略進行及時分析,并根據(jù)歷史庫、黑白名單信息完成結(jié)果的梳理。針對分析誤報的情況,工具應提供手工修正的能力。
工具采用Java語言開發(fā),采用了B/S架構(gòu)的模式(表示層-業(yè)務層-數(shù)據(jù)訪問層-數(shù)據(jù)層)四層結(jié)構(gòu)。將各種業(yè)務處理、一系列邏輯判斷及各種運算置于業(yè)務層,將各種復雜的查詢、與數(shù)據(jù)庫的交互置于數(shù)據(jù)訪問層,明確各層的業(yè)務規(guī)則及界限,工具結(jié)構(gòu)圖如5所示。
圖5 自動化工具架構(gòu)圖
(1)表示層:采用Bootstrap來展示前端數(shù)據(jù),jQuery負責處理異常請求及前端業(yè)務邏輯判斷。
(2)業(yè)務層:采用SpringMVC框架實現(xiàn)本系統(tǒng)業(yè)務邏輯處理及數(shù)據(jù)層調(diào)度。
(3)數(shù)據(jù)訪問層:主要采用Mybatis框架實現(xiàn)數(shù)據(jù)交互,包括業(yè)務的增、刪、改、查、視圖查詢等。
(4)數(shù)據(jù)層:以MySQL數(shù)據(jù)庫為承載,存儲改系統(tǒng)的所有補丁及經(jīng)驗庫。
安全防護層:系統(tǒng)中主要集成了Esapi安全框架負責常見的安全漏洞防護。
Web應用URL地址自動化檢測可以有效的監(jiān)控內(nèi)網(wǎng)隨意開啟Web服務的情況,可以有效彌補監(jiān)管難度大的問題,有助于安全部分開展日常安全工作及降低公司整體安全風險。