用于云服務(wù)和應(yīng)用程序的網(wǎng)絡(luò)安全可編程性的數(shù)據(jù)日志管理
0x01摘要
近年來,考慮到網(wǎng)絡(luò)攻擊的復(fù)雜性和多樣化,安全設(shè)備正變得更加重要和嚴(yán)峻。當(dāng)前的解決方案非常笨拙,無法在虛擬服務(wù)和物聯(lián)網(wǎng)(IoT)設(shè)備中運(yùn)行。 因此,有必要發(fā)展到更優(yōu)秀的模型,該模型從大量的異構(gòu)源中收集與安全相關(guān)的數(shù)據(jù),以進(jìn)行集中分析和校正。 在本文中,我們提出了用于訪問安全上下文的靈活抽象層概念。它旨在通過部署在云應(yīng)用程序和IoT設(shè)備中的輕量級(jí)檢查和執(zhí)行掛鉤來編程和收集數(shù)據(jù)。 通過回顧主要軟件組件及其作用,我們對(duì)其實(shí)現(xiàn)進(jìn)行了描述。 最后,我們通過對(duì)PoC實(shí)施的性能評(píng)估來測(cè)試此抽象層,以評(píng)估從虛擬服務(wù)和IoT收集數(shù)據(jù)/日志以進(jìn)行集中式安全性分析的有效性。
0x02簡(jiǎn)介
通過云范式中的虛擬化,可以在構(gòu)建和運(yùn)行信息與通信技術(shù)(ICT)服務(wù)中實(shí)現(xiàn)敏捷性和成本效益。 但是,與當(dāng)前的舊版部署不同,它們帶來了更多的安全問題。
物理和虛擬服務(wù)類似于相同的開發(fā)結(jié)構(gòu)。 在基礎(chǔ)設(shè)施即服務(wù)(IaaS)模型中,常見的做法是將每個(gè)軟件應(yīng)用程序部署在不同的虛擬化環(huán)境中,虛擬化環(huán)境可以是虛擬機(jī),也可以是軟件容器。然后通過虛擬網(wǎng)絡(luò)鏈接將它們互連。 這樣,單個(gè)虛擬機(jī)的故障就不必影響整個(gè)服務(wù)。 應(yīng)用程序可以輕松打包并以云映像形式交付。
虛擬化基礎(chǔ)架構(gòu)中安全機(jī)制的局限性,例如分布式防火墻和安全組; 在跨云部署中協(xié)調(diào)它們的難度; 第三方提供的信任安全服務(wù)的典型差異促使人們?cè)絹碓絻A向于在虛擬服務(wù)的拓?fù)浣Y(jié)構(gòu)中插入遺留的安全設(shè)備。 與此相反,這種方法有幾個(gè)問題:i)每個(gè)設(shè)備都有自己的檢查鉤; ii)由于協(xié)議和應(yīng)用程序的數(shù)量和復(fù)雜性,檢測(cè)需要大量的計(jì)算資源; iii)復(fù)雜的安全設(shè)備無法抵抗錯(cuò)誤和漏洞。
考慮到這些方面,需要新的體系結(jié)構(gòu)范例來建立虛擬服務(wù)的態(tài)勢(shì)感知。 這樣,通過將細(xì)粒度的信息與有效的處理,彈性與魯棒性,自主性與交互性相結(jié)合,就可以克服上述局限性。 因此,有必要從獨(dú)立的安全設(shè)備過渡到更協(xié)作的模型。 對(duì)于協(xié)作模型,我們指的是一種集中式體系結(jié)構(gòu),其中從給定域內(nèi)的多個(gè)來源收集安全信息,數(shù)據(jù)和事件,以進(jìn)行公共分析和關(guān)聯(lián)。 對(duì)于所有主要的網(wǎng)絡(luò)安全應(yīng)用程序供應(yīng)商而言,這是當(dāng)今的趨勢(shì),這些供應(yīng)商正越來越多地為企業(yè)開發(fā)安全事件和信息管理以及安全分析軟件,并利用機(jī)器學(xué)習(xí)和其他人工智能技術(shù)進(jìn)行數(shù)據(jù)關(guān)聯(lián)和識(shí)別攻擊。 它們被設(shè)計(jì)為現(xiàn)有安全應(yīng)用程序的集成工具,并要求在每個(gè)主機(jī)上運(yùn)行重量級(jí)的進(jìn)程。 因此,它們不適用于虛擬服務(wù)。 另外,集中式體系結(jié)構(gòu)提高了檢測(cè)率,同時(shí)減少了每個(gè)終端的開銷。 另一方面,由于上下文不斷變化,因此服務(wù)圖的安全性管理是一項(xiàng)艱巨的任務(wù)。 將安全設(shè)備集成到服務(wù)圖設(shè)計(jì)中并不是最佳解決方案,因?yàn)樗枰謩?dòng)操作。 取而代之的是,應(yīng)該通過定義描述要求的內(nèi)容而不是如何實(shí)現(xiàn)的策略和約束來抽象地描述安全性。
在本文中,我們描述了抽象層的定義,以為檢測(cè)邏輯提供對(duì)虛擬化服務(wù)的異構(gòu)安全上下文的統(tǒng)一和雙向訪問。 我們工作的新穎性在于在內(nèi)核或系統(tǒng)庫(kù)中抽象了輕量級(jí)的可編程鉤子,而無需在VM內(nèi)部署復(fù)雜而繁瑣的安全設(shè)備或在整體服務(wù)圖中將其部署為單獨(dú)的組件。 對(duì)安全性上下文的收集和強(qiáng)制性規(guī)則的配置(這是雙向訪問的手段)進(jìn)行編程的能力,只是對(duì)已經(jīng)作為商業(yè)或開源實(shí)現(xiàn)可用的log 7收集工具的數(shù)量的重大改進(jìn)。 本文的其余部分安排如下。 我們將在第2節(jié)中描述整個(gè)ASTRID體系結(jié)構(gòu)。然后,在第3節(jié)中詳細(xì)說明抽象層的概念及其體系結(jié)構(gòu)設(shè)計(jì),同時(shí)在第4節(jié)中討論當(dāng)前的實(shí)現(xiàn),并對(duì)所選技術(shù)進(jìn)行詳盡的描述。 然后,在第5節(jié)中,我們提供了概念驗(yàn)證實(shí)施的功能驗(yàn)證和廣泛的性能評(píng)估,包括與本地監(jiān)視/執(zhí)行代理的集成。
0x03 ASTRID結(jié)構(gòu)
圖1顯示了組織ASTRID多層體系結(jié)構(gòu)的三個(gè)互補(bǔ)平面。 盡管我們的體系結(jié)構(gòu)與網(wǎng)絡(luò)運(yùn)營(yíng)商沒有直接關(guān)系,但我們使用網(wǎng)絡(luò)術(shù)語(yǔ)。 ASTRID是一種多層體系結(jié)構(gòu),在該體系結(jié)構(gòu)中,公用,可編程且普及的數(shù)據(jù)平面可提供一組強(qiáng)大的多供應(yīng)商檢測(cè)和分析算法(業(yè)務(wù)邏輯)。 一方面,挑戰(zhàn)在于通過實(shí)時(shí)收集來自多個(gè)毛細(xì)血管來源的大量事件,在多個(gè)站點(diǎn)上集合廣泛的知識(shí),同時(shí)保持諸如轉(zhuǎn)發(fā)速度,可伸縮性,自治性,可用性,容錯(cuò)性之類的基本屬性。 ,抵制妥協(xié)和響應(yīng)能力。 另一方面,其目標(biāo)是通過空間和時(shí)間上的域間和域內(nèi)數(shù)據(jù)關(guān)聯(lián)來支持更好和更可靠的態(tài)勢(shì)感知,以便及時(shí)檢測(cè)和響應(yīng)甚至更復(fù)雜的多矢量和跨學(xué)科網(wǎng)絡(luò)攻擊 。
數(shù)據(jù)平面是虛擬化環(huán)境中部署的體系結(jié)構(gòu)的唯一部分。 它收集安全上下文,即包括事件,日志,措施的知識(shí)庫(kù),可用于檢測(cè)已知攻擊或識(shí)別新威脅。
通用控制平面的主要優(yōu)點(diǎn)之一是可以從不同子系統(tǒng)(磁盤,網(wǎng)絡(luò),內(nèi)存,I / O)獲得數(shù)據(jù),而不是像如今的通用做法那樣依賴單一信息源。 由于從多個(gè)來源收集數(shù)據(jù)很容易導(dǎo)致過多的網(wǎng)絡(luò)開銷,因此根據(jù)實(shí)際需要調(diào)整檢查,監(jiān)視和收集過程非常重要。 因此,數(shù)據(jù)平面必須支持單個(gè)組件的重新配置及其虛擬化環(huán)境的編程,才能更改報(bào)告行為,包括每個(gè)應(yīng)用程序特征的參數(shù)(日志,事件),網(wǎng)絡(luò)流量,系統(tǒng)調(diào)用,遠(yuǎn)程過程調(diào)用 (RPC)指向遠(yuǎn)程應(yīng)用程序。 編程還包括將輕量級(jí)聚合和處理任務(wù)卸載到每個(gè)虛擬環(huán)境的功能,從而減少了帶寬需求和延遲。
對(duì)執(zhí)行環(huán)境進(jìn)行編程的靈活性有望潛在地導(dǎo)致所收集數(shù)據(jù)的種類和詳細(xì)程度上的巨大異質(zhì)性。 例如,某些虛擬功能可能報(bào)告詳細(xì)的數(shù)據(jù)包統(tǒng)計(jì)信息,而其他功能可能僅報(bào)告應(yīng)用程序日志。 另外,對(duì)于每個(gè)執(zhí)行環(huán)境,報(bào)告的頻率和粒度可能有所不同。 數(shù)據(jù)在時(shí)間和空間維度上的相關(guān)性自然會(huì)導(dǎo)致針對(duì)不同的時(shí)刻和功能并發(fā)請(qǐng)求相同類型的信息。 最后,最后一個(gè)要求是執(zhí)行快速查找和查詢的能力,還包括某些形式的數(shù)據(jù)融合。 應(yīng)該允許客戶端定義所需數(shù)據(jù)的結(jié)構(gòu),并從服務(wù)器返回完全相同的數(shù)據(jù)結(jié)構(gòu),從而防止返回過多的數(shù)據(jù)。 當(dāng)需要了解不斷變化的情況并識(shí)別攻擊的能力要求檢索和關(guān)聯(lián)超出典型查詢模式的數(shù)據(jù)時(shí),這可能會(huì)變得有用。
控制平面是邏輯上和集中式算法的集合,用于檢測(cè)攻擊和識(shí)別新威脅。 每種算法都從公共數(shù)據(jù)平面檢索所需的數(shù)據(jù)。 這代表了所提出的框架背后的一項(xiàng)主要?jiǎng)?chuàng)新:的確,每種算法都對(duì)整個(gè)系統(tǒng)具有完全的可見性,而無需在每個(gè)虛擬功能中部署本地代理,這些代理通常執(zhí)行相同或類似的檢查操作。 控制平面還應(yīng)包括編程功能,以將本地處理任務(wù)配置和卸載到數(shù)據(jù)平面,從而有效地平衡檢查深度與所產(chǎn)生的開銷。
除了單純地(重新)實(shí)現(xiàn)性能和效率方面的傳統(tǒng)設(shè)備之外,ASTRID方法還專門為通過結(jié)合檢測(cè)方法(基于規(guī)則,機(jī)器學(xué)習(xí))而為新一代檢測(cè)智能鋪平了道路。 大數(shù)據(jù)技術(shù); 目的是在圖形及其組件中定位漏洞,識(shí)別可能的威脅,并及時(shí)檢測(cè)正在進(jìn)行的攻擊。對(duì)來自多個(gè)交織域的安全日志,事件和網(wǎng)絡(luò)流量的組合分析可以極大地增強(qiáng)檢測(cè)能力 能力,特別是在大型多向量攻擊的情況下。 在這方面,機(jī)器學(xué)習(xí)和人工智能的應(yīng)用將有助于檢查和關(guān)聯(lián)大量數(shù)據(jù),事件和度量,這些數(shù)據(jù),事件和度量必須進(jìn)行分析才能可靠地檢測(cè)和識(shí)別甚至復(fù)雜的多矢量攻擊。
管理平面的構(gòu)想是使人員處于循環(huán)中。它會(huì)通知檢測(cè)到的攻擊和異常情況,以便在檢查過程中需要人員專門知識(shí)來補(bǔ)充人工智能時(shí),可以訪問整個(gè)上下文。 管理平面通過定義高級(jí)策略來支持快速有效的補(bǔ)救措施,然后將這些策略從控制平面轉(zhuǎn)換為特定的數(shù)據(jù)平面配置。 管理平面還與業(yè)務(wù)流程工具無縫集成,業(yè)務(wù)流程工具有望廣泛用于自動(dòng)化虛擬服務(wù)的部署和生命周期操作。
0x04 數(shù)據(jù)平面的抽象層
抽象層的主要目的是提供對(duì)底層數(shù)據(jù)平面功能的統(tǒng)一訪問。 根據(jù)第2節(jié)中的一般描述,數(shù)據(jù)平面由異構(gòu)檢查,測(cè)量和實(shí)施掛鉤組成,它們?cè)谔摂M化環(huán)境中實(shí)現(xiàn)。
這些掛鉤包括程序員在其軟件中開發(fā)的日志記錄和事件報(bào)告,以及內(nèi)核和系統(tǒng)庫(kù)中內(nèi)置的監(jiān)視和檢查功能,這些功能可檢查網(wǎng)絡(luò)流量和系統(tǒng)調(diào)用。 它們是可編程的,因?yàn)樗鼈兛梢栽谶\(yùn)行時(shí)進(jìn)行配置,從而根據(jù)不斷發(fā)展的環(huán)境來調(diào)整系統(tǒng)行為。 這意味著可以有選擇地在本地調(diào)整數(shù)據(jù)包篩選器,事件報(bào)告的類型和頻率以及日志記錄的詳細(xì)程度,以獲取準(zhǔn)確的知識(shí)量,而不會(huì)因不必要的信息而使整個(gè)系統(tǒng)不知所措。 目的是在檢測(cè)到可能表示攻擊的異常或網(wǎng)絡(luò)安全團(tuán)隊(duì)發(fā)出有關(guān)剛剛發(fā)現(xiàn)的新威脅和漏洞的警告時(shí),獲取關(guān)鍵或易受攻擊組件的更多詳細(xì)信息。 這種方法即使在并行發(fā)現(xiàn)和緩解的情況下,也可以在風(fēng)險(xiǎn)較低的情況下以較低的開銷進(jìn)行輕量級(jí)的操作,同時(shí)在異常和可疑活動(dòng)的情況下切換到更深入的檢查和更大的事件關(guān)聯(lián)性。 即使對(duì)于最大的服務(wù),這也可以隨著系統(tǒng)復(fù)雜性進(jìn)行擴(kuò)展。
抽象層涵蓋兩個(gè)主要方面:i)隱藏監(jiān)視鉤的技術(shù)異質(zhì)性; ii)抽象整個(gè)服務(wù)圖和每個(gè)節(jié)點(diǎn)的功能。
圖2為預(yù)想的抽象的示意圖。 在本地,在每個(gè)虛擬化框中,本地安全代理(LSA)為不同的鉤子提供了公共接口。 然后,將整個(gè)圖拓?fù)涑橄鬄橹行妮椛鋱D。 在此模型中,每個(gè)節(jié)點(diǎn)代表一個(gè)虛擬功能,每個(gè)節(jié)點(diǎn)鏈接一條通信路徑。 節(jié)點(diǎn)的附屬節(jié)點(diǎn)是安全屬性; 它們既包括監(jiān)視/檢查功能(可以收集,測(cè)量和檢索的內(nèi)容),也包括相關(guān)數(shù)據(jù)(度量,事件,日志)。 同樣,鏈接也具有與加密機(jī)制和利用率度量有關(guān)的屬性(盡管未在圖中明確顯示)。
為了提供綜合指標(biāo),還可以將數(shù)據(jù)融合作為整體抽象框架的一部分。 基本數(shù)據(jù)的預(yù)處理和聚合可以通過相同的查詢完成,因此可以優(yōu)化抽象模型中的查找。 抽象層還包括存儲(chǔ)功能,因此可以為在線和離線分析提供實(shí)時(shí)和歷史信息。 在這種抽象中,總體拓?fù)浜桶踩δ苡蓞f(xié)調(diào)器設(shè)置,而安全數(shù)據(jù)由LSA饋送。
0x05 實(shí)現(xiàn)
如上一節(jié)所述,數(shù)據(jù)平面是體系結(jié)構(gòu)中負(fù)責(zé)差異操作的部分:i)收集安全上下文(就事件,日志,度量等而言),以及ii)實(shí)施安全策略(就術(shù)語(yǔ)而言) 數(shù)據(jù)包過濾,執(zhí)行環(huán)境的重新配置等)。
ELK堆棧提供的集中式日志記錄可在中心位置搜索所有數(shù)據(jù)。 它是開放源代碼軟件工具的多功能集合,這些軟件工具是基于分布式日志收集器方法實(shí)現(xiàn)的,該方法可從數(shù)據(jù)更輕松地收集見解。 簡(jiǎn)而言之,ELK堆棧由三個(gè)核心項(xiàng)目組成:i)作為搜索和分析引擎的Elasticsearch,ii)用于數(shù)據(jù)處理和轉(zhuǎn)換管道的Logstash,以及iii)Kibana Web UI以可視化數(shù)據(jù)。 它們共同構(gòu)成了縮寫ELK。 之后,Elastic啟動(dòng)了第四個(gè)項(xiàng)目Beats(輕量級(jí)和單用途數(shù)據(jù)托運(yùn)人),并決定將所有項(xiàng)目的組合重命名為簡(jiǎn)單的Elastic Stack。
圖3顯示了概念驗(yàn)證(PoC)實(shí)施的體系結(jié)構(gòu)。 生成各種類型的數(shù)據(jù),例如系統(tǒng)日志文件,數(shù)據(jù)庫(kù)日志文件,消息隊(duì)列生成的日志以及其他中間件。 這些數(shù)據(jù)由安裝在所有虛擬功能(服務(wù))上的Beats收集。 Beats以固定的時(shí)間間隔將日志發(fā)送到Logstash的本地實(shí)例。 然后,Logstash在進(jìn)行一些輕量數(shù)據(jù)處理之后,將處理后的輸出發(fā)送到Context Broker(CB),后者是收集數(shù)據(jù)并保存以進(jìn)行集中分析和關(guān)聯(lián)的集中節(jié)點(diǎn)。 在CB內(nèi)部,Kafka將數(shù)據(jù)發(fā)送到Logstash的本地實(shí)例。 在處理之后,Logstash將數(shù)據(jù)發(fā)送到Elasticsearch,Elasticsearch將對(duì)該數(shù)據(jù)進(jìn)行索引和存儲(chǔ)。 最后,Kibana提供了用于搜索和分析數(shù)據(jù)的可視界面。
0x06 結(jié)論
在本文中,我們概述了抽象層的主要功能和初步設(shè)計(jì),這些抽象層提供了對(duì)異構(gòu)信息和源集合的雙向訪問。 這種方法使大數(shù)據(jù)集可用于機(jī)器學(xué)習(xí)和其他人工智能機(jī)制的應(yīng)用,而機(jī)器學(xué)習(xí)和其他人工智能機(jī)制目前是新一代威脅檢測(cè)算法的主要研究領(lǐng)域。 與現(xiàn)有方法不同,我們的目標(biāo)是公開執(zhí)行環(huán)境的可編程功能,這些功能可用于對(duì)本地檢查和監(jiān)視任務(wù)進(jìn)行編程。
我們將詳細(xì)描述基于與Kafka消息代理集成的ELK堆棧的體系結(jié)構(gòu),以及如何滿足收集用于網(wǎng)絡(luò)安全分析的日志的需求。 我們提供PoC實(shí)施的功能驗(yàn)證和廣泛的性能評(píng)估,包括與本地監(jiān)控/執(zhí)行代理的集成。 結(jié)果表明,考慮到容量,該架構(gòu)能夠在不使用最大資源的情況下立即收集數(shù)據(jù)。 在所用資源的限制下(當(dāng)每秒的事件數(shù)等于1000,并且獨(dú)立于輪詢間隔值時(shí)),虛擬函數(shù)中的拍子無法在不引入明顯延遲的情況下收集數(shù)據(jù)。