朱犇,陳夢嫻,孫望舒,戴文博
(國網浙江省電力有限公司溫州供電公司,浙江溫州 32500)
2017年5月12日,WannaCry勒索病毒事件全球爆發,利用了微軟公司Windows操作系統的SMB服務漏洞(MS17-010)進行傳播感染,兩天時間,約2242.3萬個IP地址遭受“永恒之藍”漏洞攻擊。2017年12月15日, Oracle WebLogic存在CVE-2017-3506/CVE-2017-10352漏洞,被挖礦程序Watch-smartd所利用。2018年2月28日,知名代碼托管網站 GitHub 遭遇了史上最大規模的 DDoS 網絡攻擊,每秒 1.35 TB 的流量瞬間沖擊了這一開發者平臺,攻擊者利用了基于 Memcached 的超放大攻擊。以上所有的這些安全事件受影響的設備基本都是暴露在互聯網上的,因此掌握企業資產在全互聯網中的暴露情況非常值得關注。
近年來互聯網大發展,正逐漸改變企業辦公、系統運維的工作方式,同時推動了生產系統的更新換代和生產方式的變革。因企業業務需要I T 業務系統越建越多,資產暴露面越來越大,給別有用心者更多可乘之機,甚至導致災難性的破壞。
企業信息化工作經過數年發展,業務系統、互聯網業務、手機應用已經得到了推廣,但隨著業務發展系統建設仍在不停發展,未經報備私搭私建的情況仍然存在。這些業務系統未經上線安全評估,存在極大的安全風險。主要表現在兩個方面,一是多數應用使用未經安全檢測的第三方應用,二是系統開發人員安全意識薄弱,業務安全漏洞層出不窮。
對于日常安全管理來說,基于上述情況,主要要求業務部門做上線前安全評估,通過系統安全檢測挖掘安全風險,檢測通過方可上線運行,同時發布上線前安全管理辦法,從管理維度進行約束。雖然從技術和管理都進行了相應的要求,但仍然無法杜絕私自上線業務系統,破壞安全的行為,給企業安全管理造成不小影響。
綜上所述,不管從業務自身安全考慮,還是從企業安全整體考慮。通過建設自動化監測Web應用URL地址工具,來監控網絡內私自上線業務系統的行為,勢在必行。

圖1 勒索病毒
現階段上線前安全評估流程在各大企業是力推的工作,但是一項流程如果通過制度推進,因涉及多個部門等因素通過制度很難推進。如果流程通過線上平臺控制,不僅可以減少運營跟進的人工成本,還能使推進工作更加順暢。資產變更工作,安全部與業務部門對接較多,如圖1所示,通過建立資產發現平臺與需求申請平臺、開發管理平臺等對接,可以最大限度地減少溝通成本,提升推進效率。
很多業務系統由于用戶較多,需求較大,開發團隊有時候一周要對一個系統進行多次修改,如果每次修改都需要多個部門介入評審或評估,工作效率極地。同時,大部分企業對信息安全意識宣貫力度不夠,開發部門KPI更多的在于業務連續性、功能使用等方面,因此為了便捷及KPI會拋棄安全性。

圖2 業務部門分布
資產風險主要來源主要包括三個方面:一是未經上線的業務系統(Web系統為主);二是未經加固直接上線的;三是由于后期運維為了便捷而開啟的運維端口;四是由于業務需要但未經過評估私自開啟的系統互聯接口。
Web系統方面主要風險為XSS漏洞、SQL注入漏洞、越權訪問、旁注、任意文件上傳等高危應用層漏洞。輕則系統遭受非法攻擊,重則數據泄露、主機權限丟失等。
未經加固的主機及運維端口開啟風險包括:開啟不必要的服務、高危端口、弱口令等??赡苊媾R攻擊包括拒絕服務攻擊、內存溢出、提權等高危風險。
系統互聯接口包括系統服務接口、W e b 接口、數據庫接口、運維端口等。風險包括賬號越權、弱口令、主機提取等。

圖3 Web2.0安全研究報告
安全部門提供安全編碼規范,開發團隊在開發過程中需要上按照編碼規范要求。在開發階段減少安全隱患。規范需要涵蓋賬號與認證、輸入與輸出驗證、授權管理、數據保護、會話管理、加密管理、日志管理、異常管理等方面,從業務邏輯建議、代碼編寫建議、管理規范建議等方面提出安全需求。定期對開發部門進行安全編碼培訓,講解常見應用漏洞產生原理,提升開發人員安全編碼意識和安全開發水平。
新上線系統、修改后的系統上線前,需要經過安全部門檢測(包括滲透測試、漏洞掃描、代碼設計等評估),對發現高危漏洞的系統,修復后復測,保證沒有安全隱患后才允許上線。
對正在運行的線上系統,每日由滲透測試團隊進行安全檢測,包括Web漏洞掃描和人工滲透測試等措施,漏洞掃描使用多款掃描器交叉掃描,人工滲透根據制定的漏洞清單Checklist檢測,根據檢測結果,建立知識庫,統計出一般掃描器能檢測哪些漏洞,哪些漏洞掃描器不好發現,如邏輯漏洞、越權漏洞等,只能通過人工滲透方式檢測,保證檢測的廣度和深度,提高檢測效率。
(1)測試使用的應用,遷移到內網,不在互聯網暴露。
(2) 對訪問量較少的應用,建議關閉,訪問量數據可以從WAF、防火墻等設備上獲取。
(3)部分網站啟用了HTTPS后,HTTP網站可以繼續訪問,建議關閉HTTP網站的訪問。
(4) 業務系統有關聯或者相似的,通過一個U R L 訪問主站,其他業務系統通過二級目錄訪問。
(1)通過自動化掃描全網存活IP、端口等信息,自動化識別U R L 地址,并判斷U R L 是否有效,通過指紋特征庫識別URL歸屬。
(2)建立指紋特征庫,自動化識別已備案和未備案業務系統,系統應建立指紋算法,根據不同U R L 信息通過算法算出指紋與后臺指紋庫進行對比,輸出結果。
(3)自動化掃描全網IP存活情況、端口開放情況,系統根據用戶輸入I P 資產信息,允許定期、不定期自動化掃描I P 存活情況,自動化分析開放端口情況。
自動化檢測是本文研究重點,通過實時探測分析,可及時發現風險源。
自動化檢測最重要的工作是自動化檢測資產存活情況,存活情況包括IP存活情況、端口開放情況、系統服務開啟情況等。結合業務上線規律,工具應具備幾點能力:定時自動掃描能力;自動化收集掃描結果能力;應具備歷史經驗庫收集、白名單、黑名單等能力;應能根據經驗庫,黑白名單自動判別的能力。

圖4 自動化檢測流程
第一種方式:使用Shell腳本檢測某個網段內存活的主機,主要原理是使用循環Ping該網段內的每一個地址,根據執行是否成功輸出主機是否存活。
第二種方式:使用專業的網絡工具Nmap、IPscan等。
應允許用戶自定義掃描頻率、掃描內容及資產自定義等能力。
當工具檢測到目標主機開啟端口時,工具應自動化判別目標端口是否為Web端口,并對其網站的存活判斷,如果目標站點可用,應對其進行自動化識別。識別依據來源歷史經驗庫和黑白名單庫,如果識別成功,進行標注,如果識別失敗交由人工判斷。
Web資產眾多及開發迭代較快,安全部門管理需求包括:一是通過工具識別存量業務;二是通過工具識別新增業務及未報備的業務?;诎踩块T需求分析,工具應具備:記錄歷史Web資產信息的能力;具備記錄業務黑白名單的能力。
當工具完成自動化掃描之后,應根據掃描策略完成掃描結果歸集,根據分析策略進行及時分析,并根據歷史庫、黑白名單信息完成結果的梳理。針對分析誤報的情況,工具應提供手工修正的能力。
工具采用Java語言開發,采用了B/S架構的模式(表示層-業務層-數據訪問層-數據層)四層結構。將各種業務處理、一系列邏輯判斷及各種運算置于業務層,將各種復雜的查詢、與數據庫的交互置于數據訪問層,明確各層的業務規則及界限,工具結構圖如5所示。

圖5 自動化工具架構圖
(1)表示層:采用Bootstrap來展示前端數據,jQuery負責處理異常請求及前端業務邏輯判斷。
(2)業務層:采用SpringMVC框架實現本系統業務邏輯處理及數據層調度。
(3)數據訪問層:主要采用Mybatis框架實現數據交互,包括業務的增、刪、改、查、視圖查詢等。
(4)數據層:以MySQL數據庫為承載,存儲改系統的所有補丁及經驗庫。
安全防護層:系統中主要集成了Esapi安全框架負責常見的安全漏洞防護。
Web應用URL地址自動化檢測可以有效的監控內網隨意開啟Web服務的情況,可以有效彌補監管難度大的問題,有助于安全部分開展日常安全工作及降低公司整體安全風險。