<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          開源了!愛奇藝網(wǎng)絡(luò)流量分析引擎QNSM及其應(yīng)用

          共 5650字,需瀏覽 12分鐘

           ·

          2020-08-09 03:44

          點(diǎn)擊“開發(fā)者技術(shù)前線”,選擇“星標(biāo)?”

          在看|星標(biāo)|留言,? 真愛


          導(dǎo)讀


          一定業(yè)務(wù)規(guī)模的互聯(lián)網(wǎng)公司的基礎(chǔ)設(shè)施的網(wǎng)絡(luò)邊界通常都呈現(xiàn)一定程度的復(fù)雜多分區(qū)的情況,如何進(jìn)行有效的安全防護(hù)和控制會成為安全體系建設(shè)的重點(diǎn)和難點(diǎn)。面對這一挑戰(zhàn),愛奇藝安全團(tuán)隊(duì)自研了網(wǎng)絡(luò)流量分析引擎QNSM,并將其用在各種基于流量分析的跨區(qū)安全檢測和控制場景中,成為了愛奇藝安全防御體系的關(guān)鍵基礎(chǔ)引擎。本文是根據(jù)愛奇藝高級總監(jiān)盧明樊在 QCon 全球軟件開發(fā)大會(上海站)2019 分享《愛奇藝網(wǎng)絡(luò)流量安全檢測能力建設(shè)實(shí)踐》部分內(nèi)容整理而成。

          ?

          ▌互聯(lián)網(wǎng)企業(yè)邊界復(fù)雜性




          上圖是典型的中大型互聯(lián)網(wǎng)公司的網(wǎng)絡(luò)架構(gòu),通常分為:
          ·? 辦公網(wǎng)絡(luò),可能還有如右下角的眾多小的分支機(jī)構(gòu),甚至還有辦公機(jī)房
          ·? 核心數(shù)據(jù)中心, 這些數(shù)據(jù)中心機(jī)房可能分布在全國多個(gè)地方,并通過專線實(shí)現(xiàn)互連,在這個(gè)基礎(chǔ)上構(gòu)建了自己的私有云。
          ·? CDN網(wǎng)絡(luò),這些CDN節(jié)點(diǎn)和核心機(jī)房也存在一定的互連。
          ·? 如果使用公有云基礎(chǔ)服務(wù),呈現(xiàn)混合云的模式,這些基礎(chǔ)服務(wù)與核心數(shù)據(jù)中心存在互連。
          ·? 上述大量的分區(qū)都可能通過不同的方式接入到互聯(lián)網(wǎng)。
          ·? 最后,BYOD和各種無線熱點(diǎn)以及手機(jī)無線熱點(diǎn)等出現(xiàn),導(dǎo)致呈現(xiàn)了大量碎片化的所謂新邊界。
          對企業(yè)安全防御而言,帶來了各種新的挑戰(zhàn):
          ·? 安全防御變得碎片化和多層次化,大邊界內(nèi)部還可能出現(xiàn)更多的小邊界。
          ·? 單個(gè)邊界可能流量會非常大,特別是互聯(lián)網(wǎng)互聯(lián)的邊界,100Gps以上成為常態(tài),如果在這些邊界進(jìn)行流量檢測,要求流量檢測要具備高性能和很好的水平擴(kuò)展能力,隨時(shí)應(yīng)對邊界流量的擴(kuò)展。
          ·? 企業(yè)面臨的內(nèi)外威脅依舊很嚴(yán)峻,流量型攻擊,漏洞型攻擊,邊界突破滲透,內(nèi)部人員的泄露、破壞和控制都是普遍存在。
          ·? 安全防御的體系也在逐步演化,從單純的邊界防御、結(jié)合多層次內(nèi)部防御的縱深防御、以及立足于零信任或者假設(shè)失陷的下緊扣角色和權(quán)限的安全模型都在推動我們安全防御在不斷的升級迭代來應(yīng)對日益嚴(yán)峻的威脅。安全防御體系的演化不代表邊界消失了,邊界防御依舊是基礎(chǔ)和重要一環(huán),有效地流量分析和控制成為了新的安全防御體系重要的數(shù)據(jù)源和關(guān)節(jié)可編排的控制點(diǎn)。
          因此,我們自研了旁路流量分析引擎QNSM(iQiYi Network SecurityMonitoring),通過對業(yè)務(wù)流量和旁路流量的協(xié)同分析,并集成多種可調(diào)度的防護(hù)能力,協(xié)同應(yīng)對多種類型和多種層次的攻擊,并且安全運(yùn)營體系打通,從接入、預(yù)案、響應(yīng)、聯(lián)動、防御、溯源逐步形成閉環(huán)。



          ▌QNSM簡介


          全流量分析是非常重要的, 可以用來進(jìn)行資產(chǎn)發(fā)現(xiàn)、網(wǎng)絡(luò)監(jiān)控和可視化,對安全而言,通過對網(wǎng)絡(luò)流量的分析,對流量構(gòu)建基線建模,從流量中可以發(fā)現(xiàn)異常、風(fēng)險(xiǎn)以及檢測攻擊,從流量中也可以實(shí)現(xiàn)數(shù)據(jù)內(nèi)容提取,發(fā)現(xiàn)潛在的敏感數(shù)據(jù)流動或者泄露,還可以進(jìn)行ACL策略校對,并將網(wǎng)絡(luò)流量產(chǎn)出的數(shù)據(jù)特征通過機(jī)器學(xué)習(xí)和專家分析,可以挖掘更多的信息以及進(jìn)行取證溯源和事件回查。




          QNSM(iQIYI Network Security Monitor)設(shè)計(jì)目標(biāo)是成為一個(gè)全流量,實(shí)時(shí),高性能網(wǎng)絡(luò)安全監(jiān)控引擎,高性能、實(shí)時(shí)性、可擴(kuò)展、多元特征提取是我們需要的關(guān)鍵特性。

          ·? 高性能: 基于DPDK(https://www.dpdk.org/)利用普通x86服務(wù)器即可高速處理10Gbps以上的流量,繞過了內(nèi)核復(fù)雜的協(xié)議棧,并采用輪詢的方式收發(fā)數(shù)據(jù)包,基于主從和流水線架構(gòu),無鎖化設(shè)計(jì)。

          ·? 擴(kuò)展性強(qiáng):旁路部署, 結(jié)合分光分流可以支持多機(jī)快速橫向擴(kuò)展,自身的流水線設(shè)計(jì)也可以方便實(shí)現(xiàn)自定義組件的插入,并且提供基于配置文件的統(tǒng)一資源管理模型,包括隊(duì)列,CPU,MEMPOOL等,能夠快速組建數(shù)據(jù)交換網(wǎng)絡(luò),加速開發(fā)進(jìn)程。

          ·? 多元特征: 多種維度的DDoS檢測特征數(shù)據(jù),支持基本的DFI/DPI,以庫文件形式實(shí)現(xiàn)的Suricata IDPS集成,支持ipv4和ipv6雙協(xié)議。

          ·? 實(shí)時(shí)性: 集成IDPS實(shí)時(shí)檢測,DDoS檢測支持以10s(可調(diào)整)周期輸出聚合數(shù)據(jù),提取的多元特征可以通過Kafka和安全智能分析服務(wù)實(shí)現(xiàn)對接并進(jìn)行后續(xù)分析。


          ▌QNSM架構(gòu)設(shè)計(jì)



          如上圖所示,QNSM是作為服務(wù)軟件運(yùn)行在普通多核X86服務(wù)器上,每一個(gè)服務(wù)器可以有多塊萬兆網(wǎng)卡,并且通過分光或者交換端口鏡像的方式獲得要分析的網(wǎng)絡(luò)流量,如果流量比較大,可以進(jìn)一步通過分流器進(jìn)行分流,將流量分散到不同的服務(wù)器上進(jìn)行分析,進(jìn)而QNSM利用DPDK實(shí)現(xiàn)了多個(gè)多核處理器和多個(gè)多隊(duì)列網(wǎng)卡實(shí)現(xiàn)了高速包處理,其高性能來自于:

          ·? 零拷貝(Zero-copy)

          ·? 預(yù)取、批量收包來減少cache miss和提高吞吐

          ·? Share Nothing的設(shè)計(jì)模式實(shí)現(xiàn)無鎖、無CPU切換

          ·? 充分利用網(wǎng)卡的RSS特性,收包隊(duì)列和CPU核綁定


          1、基礎(chǔ)庫


          QNSM在DPDK的基礎(chǔ)上封裝構(gòu)建了各種基礎(chǔ)庫為構(gòu)建上層流水線提供了基礎(chǔ)能力,包括:


          ·? PORT:對網(wǎng)卡隊(duì)列和核心之間ring隊(duì)列的邏輯封裝,是實(shí)現(xiàn)并行處理和線性擴(kuò)展的基礎(chǔ)。

          ·??MSG:封裝了支持回調(diào)的CPU核心之間的傳遞的通信消息,這些消息可以是策略消息也可以是數(shù)據(jù)消息,這種無阻塞的核間消息支持一對一和一對多通信,實(shí)現(xiàn)數(shù)據(jù)和控制平面分開,數(shù)據(jù)集的輸出和包處理分開。

          ·? ACL: 是支持回調(diào)的五元組的策略描述,例如要指定滿足怎么樣的策略的包要聚合、處理、dump等操作。

          ·? TBL: 是對DPDKrte_hash表的封裝,是數(shù)據(jù)集的存儲,提供CURD操作接口,實(shí)現(xiàn)基于mempool的表項(xiàng)資源分配。

          ·? SCHED: 是對工作線程的封裝,支持自定義的包處理,策略執(zhí)行,自定義計(jì)算邏輯,消息分發(fā)和定時(shí)回調(diào)等。


          2、流水線


          QNSM構(gòu)建了不同的流水線組件來滿足不同場景的安全應(yīng)用,為了支持更多的安全應(yīng)用場景,我們可以在基礎(chǔ)庫的基礎(chǔ)上構(gòu)建更多的流水線組件,進(jìn)而實(shí)現(xiàn)網(wǎng)絡(luò)流量多樣的處理能力。


          ·? SESSM:負(fù)責(zé)包解析,flow數(shù)據(jù)聚合和復(fù)制轉(zhuǎn)發(fā),處理策略消息等。

          ·? SIP_AGG:是對源IP進(jìn)行特征聚合和輸出,在攻擊時(shí)通過響應(yīng)策略消息打開。

          ·? VIP_AGG:實(shí)現(xiàn)目標(biāo)VIP(需要保護(hù)的業(yè)務(wù)IP)的自學(xué)習(xí),以及基于目標(biāo)VIP的進(jìn)行特征提取和向EDGE輸出。

          ·??DUMP:保存數(shù)據(jù)包為PCAP文件供后續(xù)的事件回溯,在攻擊時(shí)通過響應(yīng)策略消息打開。

          ·? EDGE: 負(fù)責(zé)將上游組件發(fā)送的多維數(shù)據(jù)輸出到外部Kafka供進(jìn)一步分析。

          ·? DETECT: 集成Suricata庫,支持IDPS的檢測。

          基于QNSM現(xiàn)有的流水線組件,我們已經(jīng)將其應(yīng)用在DDoS攻擊檢測,IDPS檢測防護(hù),流量監(jiān)控以及網(wǎng)絡(luò)DLP等多種場景,并支撐了各種上層安全產(chǎn)品的開發(fā)。大家可以根據(jù)自己不同安全應(yīng)用的需要,設(shè)計(jì)和插入自開發(fā)的組件。


          3、控制層


          Master是整個(gè)引擎的主控,通過Kafka接收從管理平臺接收策略消息,并下發(fā)到流水線組件實(shí)現(xiàn)對流水線的配置和處理控制。



          4、安全應(yīng)用



          上圖展示了在愛奇藝如何應(yīng)用QNSM來滿足各種安全需求,愛奇藝的QNSM服務(wù)節(jié)點(diǎn)分布在各個(gè)網(wǎng)絡(luò)分區(qū)的邊界上,并通過邊控中心來進(jìn)行管理和維護(hù)。邊控中心(Aegis)是愛奇藝網(wǎng)絡(luò)安全防護(hù)的核心服務(wù),它有如下功能:

          ·? 管理配置所有的QNSM集群,通過Kafka 和QNSM的進(jìn)行控制交互

          ·? 通過IDPS網(wǎng)關(guān)實(shí)現(xiàn)管理和配置QNSM集成的IDPS(Suricata)

          ·? 作為愛奇藝WAF的統(tǒng)一服務(wù)后臺,這里不做重點(diǎn)介紹

          ·? 愛奇藝內(nèi)部的安全大數(shù)據(jù)分析引擎結(jié)合威脅情報(bào)等外源數(shù)據(jù),對從QNSM集群EDGE組件輸出到Kafka的數(shù)據(jù)進(jìn)行分析處理,產(chǎn)出的網(wǎng)絡(luò)攻擊事件會發(fā)送邊控中心,邊控中心會根據(jù)策略進(jìn)一步和態(tài)勢感知系統(tǒng)對接,進(jìn)而和安全運(yùn)營系統(tǒng)對接實(shí)現(xiàn)閉環(huán)運(yùn)營。

          ·? 邊控中心可以按事件驅(qū)動QNSM dump網(wǎng)絡(luò)流量成PCAP文件,并ETL進(jìn)Moloch ( https://github.com/aol/moloch a largescale, open source, indexed packet capture and search system)建立包索引,方便對事件進(jìn)行包級別的分析和溯源。

          我們將會在后續(xù)的分享文章中具體介紹邊控中心的架構(gòu)和設(shè)計(jì),這里不再贅述。下面,簡單介紹我們是如何利用QNSM來滿足我們DDoS攻擊檢測和擴(kuò)展支持IDPS能力的需求。


          4.1 DDoS攻擊檢測


          業(yè)務(wù)接入邊控中心,會提供要保護(hù)的VIP(Virtual IP),此外QNSM也會主動發(fā)現(xiàn)流量中的目標(biāo)VIP并且和CMDB進(jìn)行比對發(fā)現(xiàn)屬于待保護(hù)的VIP。DDoS攻擊檢測方法主要是要基于受保護(hù)的VIP為目標(biāo)的流量進(jìn)行聚合特征數(shù)據(jù)供安全大數(shù)據(jù)分析引擎進(jìn)行判斷以實(shí)現(xiàn)DDoS檢測。整體的檢測思路是構(gòu)建目標(biāo)VIP以及所在機(jī)房的流量基線,計(jì)算流量特征,并進(jìn)行多維異常檢測識別攻擊,常見的流量基線是包括VIP和本機(jī)房的成分基線以及機(jī)房流量基線和流量上邊界,通過當(dāng)前流量與基線進(jìn)行實(shí)時(shí)計(jì)算,構(gòu)建表示當(dāng)前流量與基線的偏離的多維指標(biāo)特征,并利用解釋性強(qiáng)的模型來進(jìn)行檢測判斷(例如評分卡模型等),并且會采取邊控中心運(yùn)營對事件的正負(fù)反饋來進(jìn)一步修正基線和訓(xùn)練模型。


          通過前面的多維異常檢測識別出流量攻擊以后,邊控中心收到攻擊事件和報(bào)警后會立即采取如下行動:

          ·? 邊控中心通過Kafka向Master組件下發(fā)各種策略消息管理和指導(dǎo)流水線的工作,包括dump數(shù)據(jù)包取證,攻擊源IP發(fā)現(xiàn),攻擊源端口提取,反射攻擊協(xié)議DFI等策略消息。

          ·? Master組件根據(jù)策略喚醒SIP_AGG組件,DUMP組件,其中SIP_AGG組件基于源IP聚合特征數(shù)據(jù)(可用于協(xié)助發(fā)現(xiàn)后續(xù)攻擊來源IP), DUMP組件會進(jìn)行dump數(shù)據(jù)包,dump出的PCAP文件投遞到Moloch進(jìn)一步索引和進(jìn)行專家分析。

          ·? VIP_AGG組件基于VIP+SPORT聚合特征數(shù)據(jù),SESSM組件也會針對被攻擊VIP 做協(xié)議DFI識別,以協(xié)助識別是否存在某類協(xié)議的反射攻擊。

          ·? QNSM通過EDGE組件,聚合數(shù)據(jù)進(jìn)入到Kafka,可以作為安全大數(shù)據(jù)分析的數(shù)據(jù)源,并且和其他不同的安全服務(wù)進(jìn)行聯(lián)動。

          ·? DDoS攻擊結(jié)束,邊控中心通過Kafka向Master組件下發(fā)策略關(guān)閉消息管理和指導(dǎo)流水線中的重度組件工作。

          在檢測出VIP的入口流量存在攻擊的情況下,通常需要進(jìn)一步判斷該攻擊是否為反射攻擊,我們會利用QNSM產(chǎn)出的VIP+SPORT聚合特征數(shù)據(jù)以及 SESSM組件的DFI協(xié)議識別特征數(shù)據(jù),在安全大數(shù)據(jù)引擎計(jì)算不同的源端口的流量占比分布和包占比分布等特征進(jìn)而計(jì)算熵值,熵值越小,風(fēng)險(xiǎn)越高(占比越高,風(fēng)險(xiǎn)越高, 流量和包占比如果全部集中在一個(gè)端口,熵將會是0),我們會結(jié)合多維度特征構(gòu)建評分卡模型,最終給出是否是某一類協(xié)議的反射攻擊的判定。

          攻擊確定以后,會根據(jù)應(yīng)急預(yù)案進(jìn)行流量牽引,愛奇藝構(gòu)建了私有的流量清洗中心,并結(jié)合云清洗和運(yùn)營商的近源清洗形成了三位一體的清洗能力。


          4.2 IDPS能力集成


          Suricata是一種基于網(wǎng)絡(luò)流量的IDPS引擎,它有廣泛的規(guī)則集來監(jiān)控網(wǎng)絡(luò)流量,并在發(fā)生入侵事件時(shí)觸發(fā)警報(bào), QNSM使用庫文件的方式將Suricata集成,并通過IDPS網(wǎng)關(guān)接收邊控中心下發(fā)更新Suricata相關(guān)檢測規(guī)則,從SESSM組件復(fù)制轉(zhuǎn)發(fā)過來的包會通過Detect組件調(diào)用Suricata進(jìn)行處理,實(shí)現(xiàn)實(shí)時(shí)檢測和觸發(fā)事件和告警,并通過Kafka將事件和告警輸出到安全大數(shù)據(jù)分析引擎進(jìn)行進(jìn)一步分析處理。通過對Suricata的集成,QNSM可以兼容大量開源和自定義的IDPS規(guī)則集,并且規(guī)則管理方式保持完全一致。


          利用Suricata的DFI能力,QNSM也快速擴(kuò)展支持從流量中識別各類數(shù)據(jù)庫,緩存等云服務(wù)訪問流量的能力,并且支持從流量中提取文件信息(包括文件名,文件大小,文件類型,MD5等),通過Kafka輸出到安全大數(shù)據(jù)分析引擎,最終實(shí)現(xiàn)向DLP平臺(綠盾)輸出數(shù)據(jù)泄露和違規(guī)訪問事件。

          目前支持了愛奇藝內(nèi)部常見的HTTP, MySQL,Redis,CouchBase, Memcached,MongoDB,Elasticsearch,Kafka,VNC,RSYNC等多種協(xié)議和相關(guān)工具的識別,支持對HTTP,SMTP,F(xiàn)TP文件傳輸通道的監(jiān)控。


          ▌開源


          目前QNSM 已經(jīng)應(yīng)用到愛奇藝包括DDOS攻擊檢測檢測、IDPS、網(wǎng)絡(luò)DLP等多種安全檢測場景,累計(jì)部署22+集群共計(jì)130+分析節(jié)點(diǎn),總分析帶寬容量達(dá)到1TBps。


          我們需要大家和我們一起改進(jìn)QNSM,讓它變得更強(qiáng)大,非常歡迎更多的合作和貢獻(xiàn),覆蓋更多的甚至不限于安全應(yīng)用的場景。

          目前,QNSM 項(xiàng)目剔除了和愛奇藝內(nèi)部平臺深度集成部分后,核心代碼開源在GitHub:https://www.github.com/iqiyi/qnsm,歡迎使用、報(bào)告Issues 和 提交 Pull-Request。



          END


          前線推出學(xué)習(xí)交流群,加群一定要備注:
          研究/工作方向+地點(diǎn)+學(xué)校/公司+昵稱(如Java+上海+上交+可可),
          根據(jù)格式備注,可更快被通過且邀請進(jìn)群,領(lǐng)取一份專屬學(xué)習(xí)禮包

          掃碼加我微信進(jìn)群,內(nèi)推和技術(shù)交流,大佬們零距離

          好文點(diǎn)個(gè)在看吧!



          瀏覽 38
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  夜夜躁日日躁狠狠躁综合网 | 韩国免费一级a一片在线播放 | 国产v亚洲v天堂 a 无码99 | 国产成人精品影视 | 婷婷五月亚洲 |