- 本文轉自美團點評技術學院,未經做者許可,不容許私自轉載!
- 加入美團雲技術交流羣(QQ羣:469243579),每日分享更多精彩技術文章。
背景
外網端口監控系統是整個安全體系中很是重要的一環,它就像眼睛同樣,時刻監控外網端口開放狀況,而且在發現高危端口時可以及時提醒安全、運維人員作出相應處理。
對安全人員來講,互聯網公司在快速發展壯大的過程當中,外網邊界的管控容易出現照顧不全的現象。最初咱們用Python+Nmap開發的外網端口監控系統,在公司邊界擴大的過程當中已經沒法知足要求了,因此出現過一例由於運維人員誤操做將高危端口曝露至外網致使的入侵事件,
爲了不再次出現相似由高危端口開放而不知情致使的入侵問題,咱們開始重作外網端口監控系統。
意義
要理解端口監控的意義,首先須要知道什麼是
端口掃描 ,根據Wikipedia的定義:
端口掃描的定義是客戶端向必定範圍的服務器端口發送對應請求,以此確承認使用的端口。雖然其自己並非惡意的網絡活動,但也是網絡攻擊者探測目標主機服務,以利用該服務的已知漏洞的重要手段。
對於攻擊者來講,端口掃描每每是他們從外網發起攻擊的第一步。而對於企業安全人員來講,
端口監控則是咱們預防攻擊者從外部直接入侵的一條重要防線,它能夠幫助咱們:
- 以攻擊者視角瞭解企業外網端口的開放狀況,看咱們是否存在容易被利用致使入侵的點
- 趕在攻擊者發現外網新開放的高危端口以前發現並修補漏洞,下降系統被從外部直接入侵的機率
方法
對企業的外網開放端口進行監控不外乎兩種方法,一種是相似於黑盒審計的
外網端口掃描,另外一種是相似於白盒審計的
流量分析。從原理上來講流量分析的方式確定是最準確的,但這對軟硬件都有必定要求,通常的公司不必定有能力作好;外網端口掃描的方式比較直接,雖然也有一些環境上的依賴,好比網絡帶寬,但整體上來講要比流量分析的要求小得多,大部分公司都能知足。這裏咱們主要介紹一下外網端口掃描的方法,另外一種流量分析的方法,之後請具體負責同窗給你們分享。
在這裏咱們先簡單介紹一下端口掃描的原理,以幫助各位對這塊不太瞭解的同窗有個基本的認識。
端口狀態
下面以最知名的端口掃描器Nmap對端口狀態的劃分進行一個說明:
但通常狀況下咱們不用分的這麼細,這裏爲了方便起見,將一個端口的狀態粗略分爲3種:開放、限制性開放、關閉。其中「
限制性開放」指的就是作了訪問控制,只有指定白名單列表中的主機才能訪問,其它的都沒法訪問,能夠簡單認爲是上面的
filtered狀態。
掃描方式
TCP SYN掃描
咱們選擇TCP SYN掃描的理由:
- 執行得很快,在一個沒有防火牆限制的快速網絡中,每秒鐘能夠掃描幾千個端口;
- 相對來講比較隱蔽,不易被注意到,由於它歷來不完成TCP鏈接;
- 兼容性好,不像Fin/Null/Xmas/Maimon和Idle掃描依賴於特定平臺,而能夠應對任何兼容的TCP協議棧;
- 明確可靠地區分open(開放的),closed(關閉的)和filtered(被過濾的)狀態。
掃描原理
對於學過計算機網絡的同窗來講,TCP/IP創建鏈接的3次握手過程想必應該不算陌生,大致流程以下:
咱們這裏使用的TCP SYN掃描就是經過先主動發送一個SYN報文給指定端口(
以後並不回覆任何報文,不完成TCP鏈接),而後根據端口的返回信息作出判斷,判斷結論分爲如下3種:
圖例以下:
源碼面前,了無祕密。
技術同窗估計對侯捷老師的這句話不會陌生,這裏我想將這一句話改一改以適應咱們這裏的情景:
流量面前,了無祕密。
經過流量分析,咱們能夠及時知道有哪些端口對外開放了,而後經過解包分析的方式獲取它使用的協議以及提供的服務,對於沒法準確判斷的,咱們能夠再用外網掃描的方式進行補充判斷。
演進過程
早期咱們就是經過Python調用Nmap進行的掃描,但隨着公司規模的不斷擴大,網段的不斷增長,Nmap掃描的弊端就逐漸凸現且沒法彌補了——大網段全端口掃描週期太長,沒法及時出結果(一個掃描週期可能長達2周),也就根本達不到外網端口監控的目的了。直到後來出現了Masscan。
大致架構以下:
Masscan是大網段全端口掃描神器!!!
就掃描速度來講應該是現有端口掃描器中最快的,同時準確性也比較高。在肯定使用Masscan以前咱們拿它和Zmap、Nmap一塊兒作了對比測試,限於篇幅,具體的測試過程就不發出來了,這裏只說測試結論:用TCP SYN掃描方式,對一個小型IP段進行全端口掃描,Masscan速度最快,準確性較高,能夠知足須要。
經驗分享
- 掃描服務器的帶寬是關鍵;
- 掃描最好避開業務高峯期;
- 掃描選項須要根據具體帶寬、機器配置、掃描範圍、掃描速度要求進行調優;
- 只要是遠程檢測的方法,就存在必定的不肯定性,檢測結果的準確性只能接近100%,沒法達到100%,因此不要徹底依賴外網掃描的結果;
- 實際狀況中單IP的開放端口數是有限的,若是你發現掃描結果中有單個IP開放了大量端口,你就要注意該IP對應的設備是否是在「欺騙」你了;
- 前期對掃描結果作一個完整的梳理,後期只須要處理新增的高危端口就行。
在Masscan版本上線了以後,全端口掃描的速度獲得了大幅提高,外網端口的開放狀況也瞭解的比較清楚了,可是對於Banner的獲取以及具體服務的識別還達不到要求,而這也不是Masscan的強項,因此這時候咱們就須要藉助Nmap豐富的服務指紋庫來提升咱們監控數據的準確性了。
和以前相比,就是在Masscan全量掃描環節以後增長了一個只針對判斷爲開放的端口用Nmap進行增量掃描的環節,而後將結果更新至數據庫方便展現、分析。大致架構以下:
外網的掃描有它的優點——以攻擊者視角獲取當前外網安全狀態,可是由於Masscan全端口掃描再快他也是須要時間的,特別是在網段較大、帶寬有限的狀況下。因此單獨的週期性外網掃描就存在一個自然的真空期,若是在這段真空期內,內部員工由於大意將測試端口對外,且忘了關閉的狀況下,就可能會被攻擊者進行利用,爲了應對這種狀況(即使可能性比較小),咱們決定從實時流量中進行分析,實時找出對外開放的新增/異常端口,而後調用Nmap進行掃描,以解決單獨外網掃描存在的真空期問題。大致架構以下:
經驗分享
- 聯合相關兄弟團隊全面梳理IP、設備資產信息,同時資產變動系統化(避免手工操做)勢在必行;
- 掃描範圍最好(必定)經過API拉取,避免出現由於資產變更而致使漏掃的狀況;
- 這種狀況下安全監控信息的時效性要高於準確性,但準確性也很重要(因此要先拿Masscan縮小範圍,再拿Nmap獲取細節);
- 發現典型高危案例要記得抄送雙方老闆,在有可能的狀況下看能不能升級至更高層面,由於制度或政策的確立由高往低會比較好推進。
延伸擴展
端口監控系統除了能夠起到監控外網開放的新增高危端口的做用以外,還能夠考慮從如下幾個方面擴展一下它的功能和效果,以實現效用的最大化:
對於非安全的同窗來講,他們會很難理解一個外網開放端口能形成多大的危害,因此常常會出現當安全人員找到他們的時候,他們不認爲這是一個安全問題,所以溝通起來會有點麻煩。
雖然問題最終都會獲得解決,但若是能有一個直觀的演示給到他們的話,他們也會更願意配合咱們去修復以及避免這類問題。因此和系統漏洞掃描器的聯動對於推進問題的處理和漏洞的修復是有幫助的。
注意事項:
避免高風險性掃描操做;
須要人工確認後主動觸發。
一般狀況下咱們會認爲,新增Web端口對外是能夠接受的,但這是創建在對應的Web系統經過了完整的內部安全測試的前提下。當碰到相似於爲了方便起見將Zabbix的Web系統對外,且爲弱口令時,狀況就不那麼樂觀了,這時就能夠經過調用Web漏洞掃描器自動對暴露在外的Web系統進行掃描,並將結果及時通報,以減小這類問題帶來的危害。
能夠得到的好處有:
- 自動錄入,由漏洞管理系統流程進行自動跟進,效率提高;
補充
上面介紹了常規服務器的TCP端口監控,意在提醒你們注意一下服務器的安全;但還有一類UDP端口安全的問題上面沒有介紹,也容易被忽略——防火牆、交換機等網絡設備的安全。在2016年8月份的時候The Shadow Brokers公佈了一款針對思科Adaptive Security Appliance(ASA,實際涵蓋了防火牆和路由器設備,PIX也在其列)產品的漏洞利用工具ExtraBacon,雖然漏洞利用有必定條件限制,可是一旦漏洞利用成功,攻擊者就可在無需輸入身份憑證的狀況下創建起SSH或telnet鏈接。就是不須要輸入有效用戶名或密碼,就能闖進ASA,危害巨大。
針對這方面的問題,有如下幾點建議:
結語
本文主要介紹美團點評安全團隊對外網端口監控系統的開發演進過程,整理總結了其中的一些實踐經驗以及前景展望。歡迎你們批評指正,有好的建議也但願能提出來幫助咱們改進。咱們後續將不斷優化,也將繼續與你們保持討論。耐心看到這裏的讀者,表示十二萬分的感謝!
做者簡介
光宗,2015年加入美團點評安全團隊,前後從事過生產網主機、軟件安全防禦的工做,目前主要負責美團點評集團內部安全審計系統相關的開發工做。
方法1:外網端口掃描
狀態
說明數據庫 |
open安全 |
有一個應用程序在監聽這個端口,能夠被訪問服務器 |
closed網絡 |
沒有應用程序在監聽這個端口,但它是可達的架構 |
filtered運維 |
在掃描器和端口之間有網絡障礙,掃描器沒法到達該端口,因此沒法判斷端口是開放仍是關閉的工具 |
unfiltered測試 |
端口可達,可是掃描器沒法準確判斷優化 |
open或filtered計算機網絡 |
掃描器沒法準確判斷端口究竟是open仍是filtered |
closed或filtered |
掃描器沒法準確判斷端口究竟是closed仍是filtered |
結論
緣由 |
open |
返回 SYN/ACK |
closed |
返回 RST |
filtered |
數次重發後仍沒響應;或者收到ICMP不可到達錯誤 |
方法2:流量分析
Nmap
Masscan
Masscan+Nmap
Masscan+Nmap & DPDK+Storm+Nmap
1. 系統漏洞掃描器聯動
2. Web漏洞掃描器聯動
3. 內部漏洞管理系統聯動
UDP 高危端口監控
上面介紹了常規服務器的TCP端口監控,意在提醒你們注意一下服務器的安全;但還有一類UDP端口安全的問題上面沒有介紹,也容易被忽略——防火牆、交換機等網絡設備的安全。在2016年8月份的時候The Shadow Brokers公佈了一款針對思科Adaptive Security Appliance(ASA,實際涵蓋了防火牆和路由器設備,PIX也在其列)產品的漏洞利用工具ExtraBacon,雖然漏洞利用有必定條件限制,可是一旦漏洞利用成功,攻擊者就可在無需輸入身份憑證的狀況下創建起SSH或telnet鏈接。就是不須要輸入有效用戶名或密碼,就能闖進ASA,危害巨大。
針對這方面的問題,有如下幾點建議:
- 快速監控部分高危UDP端口的狀態;
- 如無必要,關閉服務/對外訪問;
- 若有須要,儘早升級且限制訪問IP來源。
結語
本文主要介紹美團點評安全團隊對外網端口監控系統的開發演進過程,整理總結了其中的一些實踐經驗以及前景展望。歡迎你們批評指正,有好的建議也但願能提出來幫助咱們改進。咱們後續將不斷優化,也將繼續與你們保持討論。耐心看到這裏的讀者,表示十二萬分的感謝!
做者簡介
光宗,2015年加入美團點評安全團隊,前後從事過生產網主機、軟件安全防禦的工做,目前主要負責美團點評集團內部安全審計系統相關的開發工做。