互联网企业安全之端口监控
外網(wǎng)端口監(jiān)控系統(tǒng)是整個(gè)安全體系中非常重要的一環(huán),它就像眼睛一樣,時(shí)刻監(jiān)控外網(wǎng)端口開(kāi)放情況,并且在發(fā)現(xiàn)高危端口時(shí)能夠及時(shí)提醒安全、運(yùn)維人員做出相應(yīng)處理。
對(duì)安全人員來(lái)說(shuō),互聯(lián)網(wǎng)公司在快速發(fā)展壯大的過(guò)程中,外網(wǎng)邊界的管控容易出現(xiàn)照顧不全的現(xiàn)象。最初我們用Python+Nmap開(kāi)發(fā)的外網(wǎng)端口監(jiān)控系統(tǒng),在公司邊界擴(kuò)大的過(guò)程中已經(jīng)無(wú)法滿(mǎn)足要求了,所以出現(xiàn)過(guò)一例因?yàn)檫\(yùn)維人員誤操作將高危端口曝露至外網(wǎng)導(dǎo)致的入侵事件,為了避免再次出現(xiàn)類(lèi)似由高危端口開(kāi)放而不知情導(dǎo)致的入侵問(wèn)題,我們開(kāi)始重做外網(wǎng)端口監(jiān)控系統(tǒng)。
要理解端口監(jiān)控的意義,首先需要知道什么是 端口掃描 ,根據(jù)Wikipedia的定義:
端口掃描的定義是客戶(hù)端向一定范圍的服務(wù)器端口發(fā)送對(duì)應(yīng)請(qǐng)求,以此確認(rèn)可使用的端口。雖然其本身并不是惡意的網(wǎng)絡(luò)活動(dòng),但也是網(wǎng)絡(luò)攻擊者探測(cè)目標(biāo)主機(jī)服務(wù),以利用該服務(wù)的已知漏洞的重要手段。
對(duì)于攻擊者來(lái)說(shuō),端口掃描往往是他們從外網(wǎng)發(fā)起攻擊的第一步。而對(duì)于企業(yè)安全人員來(lái)說(shuō),端口監(jiān)控則是我們預(yù)防攻擊者從外部直接入侵的一條重要防線,它可以幫助我們:
- 以攻擊者視角了解企業(yè)外網(wǎng)端口的開(kāi)放情況,看我們是否存在容易被利用導(dǎo)致入侵的點(diǎn)
- 趕在攻擊者發(fā)現(xiàn)外網(wǎng)新開(kāi)放的高危端口之前發(fā)現(xiàn)并修補(bǔ)漏洞,降低系統(tǒng)被從外部直接入侵的概率
對(duì)企業(yè)的外網(wǎng)開(kāi)放端口進(jìn)行監(jiān)控不外乎兩種方法,一種是類(lèi)似于黑盒審計(jì)的外網(wǎng)端口掃描,另一種是類(lèi)似于白盒審計(jì)的流量分析。從原理上來(lái)說(shuō)流量分析的方式肯定是最準(zhǔn)確的,但這對(duì)軟硬件都有一定要求,一般的公司不一定有能力做好;外網(wǎng)端口掃描的方式比較直接,雖然也有一些環(huán)境上的依賴(lài),比如網(wǎng)絡(luò)帶寬,但總體上來(lái)說(shuō)要比流量分析的要求小得多,大部分公司都能滿(mǎn)足。這里我們主要介紹一下外網(wǎng)端口掃描的方法,另一種流量分析的方法,以后請(qǐng)具體負(fù)責(zé)同學(xué)給大家分享。
方法1:外網(wǎng)端口掃描
在這里我們先簡(jiǎn)單介紹一下端口掃描的原理,以幫助各位對(duì)這塊不太了解的同學(xué)有個(gè)基本的認(rèn)識(shí)。
端口狀態(tài)
下面以最知名的端口掃描器Nmap對(duì)端口狀態(tài)的劃分進(jìn)行一個(gè)說(shuō)明:
| open | 有一個(gè)應(yīng)用程序在監(jiān)聽(tīng)這個(gè)端口,可以被訪問(wèn) |
| closed | 沒(méi)有應(yīng)用程序在監(jiān)聽(tīng)這個(gè)端口,但它是可達(dá)的 |
| filtered | 在掃描器和端口之間有網(wǎng)絡(luò)障礙,掃描器無(wú)法到達(dá)該端口,所以無(wú)法判斷端口是開(kāi)放還是關(guān)閉的 |
| unfiltered | 端口可達(dá),但是掃描器無(wú)法準(zhǔn)確判斷 |
| open或filtered | 掃描器無(wú)法準(zhǔn)確判斷端口到底是open還是filtered |
| closed或filtered | 掃描器無(wú)法準(zhǔn)確判斷端口到底是closed還是filtered |
但一般情況下我們不用分的這么細(xì),這里為了方便起見(jiàn),將一個(gè)端口的狀態(tài)粗略分為3種:開(kāi)放、限制性開(kāi)放、關(guān)閉。其中「限制性開(kāi)放」指的就是做了訪問(wèn)控制,只有指定白名單列表中的主機(jī)才能訪問(wèn),其它的都無(wú)法訪問(wèn),可以簡(jiǎn)單認(rèn)為是上面的filtered狀態(tài)。
掃描方式
TCP SYN掃描
我們選擇TCP SYN掃描的理由:
- 執(zhí)行得很快,在一個(gè)沒(méi)有防火墻限制的快速網(wǎng)絡(luò)中,每秒鐘可以?huà)呙鑾浊€(gè)端口;
- 相對(duì)來(lái)說(shuō)比較隱蔽,不易被注意到,因?yàn)樗鼜膩?lái)不完成TCP連接;
- 兼容性好,不像Fin/Null/Xmas/Maimon和Idle掃描依賴(lài)于特定平臺(tái),而可以應(yīng)對(duì)任何兼容的TCP協(xié)議棧;
- 明確可靠地區(qū)分open(開(kāi)放的),closed(關(guān)閉的)和filtered(被過(guò)濾的)狀態(tài)。
掃描原理
對(duì)于學(xué)過(guò)計(jì)算機(jī)網(wǎng)絡(luò)的同學(xué)來(lái)說(shuō),TCP/IP建立連接的3次握手過(guò)程想必應(yīng)該不算陌生,大體流程如下:
我們這里使用的TCP SYN掃描就是通過(guò)先主動(dòng)發(fā)送一個(gè)SYN報(bào)文給指定端口(之后并不回復(fù)任何報(bào)文,不完成TCP連接),然后根據(jù)端口的返回信息做出判斷,判斷結(jié)論分為以下3種:
| open | 返回 SYN/ACK |
| closed | 返回 RST |
| filtered | 數(shù)次重發(fā)后仍沒(méi)響應(yīng);或者收到ICMP不可到達(dá)錯(cuò)誤 |
圖例如下:
方法2:流量分析
源碼面前,了無(wú)秘密。
技術(shù)同學(xué)估計(jì)對(duì)侯捷老師的這句話(huà)不會(huì)陌生,這里我想將這一句話(huà)改一改以適應(yīng)我們這里的情景:
流量面前,了無(wú)秘密。
通過(guò)流量分析,我們可以及時(shí)知道有哪些端口對(duì)外開(kāi)放了,然后通過(guò)解包分析的方式獲取它使用的協(xié)議以及提供的服務(wù),對(duì)于無(wú)法準(zhǔn)確判斷的,我們可以再用外網(wǎng)掃描的方式進(jìn)行補(bǔ)充判斷。
Nmap
早期我們就是通過(guò)Python調(diào)用Nmap進(jìn)行的掃描,但隨著公司規(guī)模的不斷擴(kuò)大,網(wǎng)段的不斷增加,Nmap掃描的弊端就逐漸凸現(xiàn)且無(wú)法彌補(bǔ)了——大網(wǎng)段全端口掃描周期太長(zhǎng),無(wú)法及時(shí)出結(jié)果(一個(gè)掃描周期可能長(zhǎng)達(dá)2周),也就根本達(dá)不到外網(wǎng)端口監(jiān)控的目的了。直到后來(lái)出現(xiàn)了Masscan。
Masscan
大體架構(gòu)如下:
Masscan是大網(wǎng)段全端口掃描神器!!! 就掃描速度來(lái)說(shuō)應(yīng)該是現(xiàn)有端口掃描器中最快的,同時(shí)準(zhǔn)確性也比較高。在確定使用Masscan之前我們拿它和Zmap、Nmap一起做了對(duì)比測(cè)試,限于篇幅,具體的測(cè)試過(guò)程就不發(fā)出來(lái)了,這里只說(shuō)測(cè)試結(jié)論:用TCP SYN掃描方式,對(duì)一個(gè)小型IP段進(jìn)行全端口掃描,Masscan速度最快,準(zhǔn)確性較高,可以滿(mǎn)足需要。
經(jīng)驗(yàn)分享
Masscan+Nmap
在Masscan版本上線了之后,全端口掃描的速度得到了大幅提升,外網(wǎng)端口的開(kāi)放情況也了解的比較清楚了,但是對(duì)于Banner的獲取以及具體服務(wù)的識(shí)別還達(dá)不到要求,而這也不是Masscan的強(qiáng)項(xiàng),所以這時(shí)候我們就需要借助Nmap豐富的服務(wù)指紋庫(kù)來(lái)提高我們監(jiān)控?cái)?shù)據(jù)的準(zhǔn)確性了。 和之前相比,就是在Masscan全量掃描環(huán)節(jié)之后增加了一個(gè)只針對(duì)判斷為開(kāi)放的端口用Nmap進(jìn)行增量掃描的環(huán)節(jié),然后將結(jié)果更新至數(shù)據(jù)庫(kù)方便展示、分析。大體架構(gòu)如下:
Masscan+Nmap & DPDK+Storm+Nmap
外網(wǎng)的掃描有它的優(yōu)勢(shì)——以攻擊者視角獲取當(dāng)前外網(wǎng)安全狀態(tài),但是因?yàn)镸asscan全端口掃描再快他也是需要時(shí)間的,特別是在網(wǎng)段較大、帶寬有限的情況下。所以單獨(dú)的周期性外網(wǎng)掃描就存在一個(gè)天然的真空期,如果在這段真空期內(nèi),內(nèi)部員工因?yàn)榇笠鈱y(cè)試端口對(duì)外,且忘了關(guān)閉的情況下,就可能會(huì)被攻擊者進(jìn)行利用,為了應(yīng)對(duì)這種情況(即便可能性比較小),我們決定從實(shí)時(shí)流量中進(jìn)行分析,實(shí)時(shí)找出對(duì)外開(kāi)放的新增/異常端口,然后調(diào)用Nmap進(jìn)行掃描,以解決單獨(dú)外網(wǎng)掃描存在的真空期問(wèn)題。大體架構(gòu)如下:
經(jīng)驗(yàn)分享
端口監(jiān)控系統(tǒng)除了可以起到監(jiān)控外網(wǎng)開(kāi)放的新增高危端口的作用之外,還可以考慮從以下幾個(gè)方面擴(kuò)展一下它的功能和效果,以實(shí)現(xiàn)效用的最大化:
1. 系統(tǒng)漏洞掃描器聯(lián)動(dòng)
對(duì)于非安全的同學(xué)來(lái)說(shuō),他們會(huì)很難理解一個(gè)外網(wǎng)開(kāi)放端口能造成多大的危害,所以經(jīng)常會(huì)出現(xiàn)當(dāng)安全人員找到他們的時(shí)候,他們不認(rèn)為這是一個(gè)安全問(wèn)題,因此溝通起來(lái)會(huì)有點(diǎn)麻煩。 雖然問(wèn)題最終都會(huì)得到解決,但如果能有一個(gè)直觀的演示給到他們的話(huà),他們也會(huì)更愿意配合我們?nèi)バ迯?fù)以及避免這類(lèi)問(wèn)題。所以和系統(tǒng)漏洞掃描器的聯(lián)動(dòng)對(duì)于推動(dòng)問(wèn)題的處理和漏洞的修復(fù)是有幫助的。 注意事項(xiàng):避免高風(fēng)險(xiǎn)性?huà)呙璨僮?/strong>;需要人工確認(rèn)后主動(dòng)觸發(fā)。
2. Web漏洞掃描器聯(lián)動(dòng)
通常情況下我們會(huì)認(rèn)為,新增Web端口對(duì)外是可以接受的,但這是建立在對(duì)應(yīng)的Web系統(tǒng)通過(guò)了完整的內(nèi)部安全測(cè)試的前提下。當(dāng)碰到類(lèi)似于為了方便起見(jiàn)將Zabbix的Web系統(tǒng)對(duì)外,且為弱口令時(shí),情況就不那么樂(lè)觀了,這時(shí)就可以通過(guò)調(diào)用Web漏洞掃描器自動(dòng)對(duì)暴露在外的Web系統(tǒng)進(jìn)行掃描,并將結(jié)果及時(shí)通報(bào),以減少這類(lèi)問(wèn)題帶來(lái)的危害。
3. 內(nèi)部漏洞管理系統(tǒng)聯(lián)動(dòng)
可以獲得的好處有: - 自動(dòng)錄入,由漏洞管理系統(tǒng)流程進(jìn)行自動(dòng)跟進(jìn),效率提升; - 結(jié)果在漏洞管理系統(tǒng)中進(jìn)行展示,風(fēng)格統(tǒng)一。
UDP 高危端口監(jiān)控
上面介紹了常規(guī)服務(wù)器的TCP端口監(jiān)控,意在提醒大家注意一下服務(wù)器的安全;但還有一類(lèi)UDP端口安全的問(wèn)題上面沒(méi)有介紹,也容易被忽略——防火墻、交換機(jī)等網(wǎng)絡(luò)設(shè)備的安全。在2016年8月份的時(shí)候The Shadow Brokers公布了一款針對(duì)思科Adaptive Security Appliance(ASA,實(shí)際涵蓋了防火墻和路由器設(shè)備,PIX也在其列)產(chǎn)品的漏洞利用工具ExtraBacon,雖然漏洞利用有一定條件限制,但是一旦漏洞利用成功,攻擊者就可在無(wú)需輸入身份憑證的情況下建立起SSH或telnet連接。就是不需要輸入有效用戶(hù)名或密碼,就能闖進(jìn)ASA,危害巨大。
針對(duì)這方面的問(wèn)題,有以下幾點(diǎn)建議: - 快速監(jiān)控部分高危UDP端口的狀態(tài); - 如無(wú)必要,關(guān)閉服務(wù)/對(duì)外訪問(wèn); - 如有需要,盡早升級(jí)且限制訪問(wèn)IP來(lái)源。
本文主要介紹美團(tuán)點(diǎn)評(píng)安全團(tuán)隊(duì)對(duì)外網(wǎng)端口監(jiān)控系統(tǒng)的開(kāi)發(fā)演進(jìn)過(guò)程,整理總結(jié)了其中的一些實(shí)踐經(jīng)驗(yàn)以及前景展望。歡迎大家批評(píng)指正,有好的建議也希望能提出來(lái)幫助我們改進(jìn)。我們后續(xù)將不斷優(yōu)化,也將繼續(xù)與大家保持討論。耐心看到這里的讀者,表示十二萬(wàn)分的感謝!
光宗,2015年加入美團(tuán)點(diǎn)評(píng)安全團(tuán)隊(duì),先后從事過(guò)生產(chǎn)網(wǎng)主機(jī)、軟件安全防護(hù)的工作,目前主要負(fù)責(zé)美團(tuán)點(diǎn)評(píng)集團(tuán)內(nèi)部安全審計(jì)系統(tǒng)相關(guān)的開(kāi)發(fā)工作。
最后打個(gè)小廣告,美團(tuán)點(diǎn)評(píng)集團(tuán)安全部正在招Web&二進(jìn)制攻防、后臺(tái)&系統(tǒng)開(kāi)發(fā)、機(jī)器學(xué)習(xí)&算法等各路小伙伴,我們想做的事情:構(gòu)建一套基于海量 IDC 環(huán)境下的,橫跨網(wǎng)絡(luò)層、虛擬化層、Server 軟件層(內(nèi)核態(tài)/用戶(hù)態(tài))、語(yǔ)言執(zhí)行虛擬機(jī)層(JVM/Zend/JavaScript V8)、Web應(yīng)用層、數(shù)據(jù)訪問(wèn)層(DAL)的基于大數(shù)據(jù)+機(jī)器學(xué)習(xí)的全自動(dòng)安全事件感知系統(tǒng),規(guī)模上對(duì)應(yīng)美團(tuán)點(diǎn)評(píng)全線業(yè)務(wù)的服務(wù)器,技術(shù)棧覆蓋了幾乎大多數(shù)云環(huán)境下的互聯(lián)網(wǎng)應(yīng)用,數(shù)據(jù)規(guī)模也將是很大的挑戰(zhàn)。此外我們還關(guān)注 Google Facebook Amazon 這類(lèi)公司在企業(yè)安全建設(shè)方面的實(shí)踐,努力構(gòu)建類(lèi)似于Google的內(nèi)置式安全架構(gòu)和縱深防御體系,對(duì)在安全和工程技術(shù)領(lǐng)域有所追求的同學(xué)來(lái)說(shuō)應(yīng)該是一個(gè)很好的機(jī)會(huì)。如果您想加入我們,歡迎簡(jiǎn)歷請(qǐng)發(fā)至郵箱zhaoyan17#meituan.com。
詳情請(qǐng)點(diǎn)擊:美團(tuán)點(diǎn)評(píng)集團(tuán)安全部招聘安全人才。
總結(jié)
以上是生活随笔為你收集整理的互联网企业安全之端口监控的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 给准保研生/调剂生的几个简历制作的建议
- 下一篇: ICDAR 2019论文:自然场景文字定