數(shù)據(jù)收集的一切指南
對(duì)于一個(gè)成功的企業(yè)來說,僅僅推出“足夠好”的產(chǎn)品是不夠的。今天的企業(yè)必須提供高質(zhì)量的數(shù)字體驗(yàn) 不僅高性能、高可用性,而且私密、安全。
但是你如何實(shí)現(xiàn)這一切呢?一種方法是團(tuán)隊(duì)采用可觀察性實(shí)踐使用日志(和其他手段)來收集大范圍的數(shù)據(jù) 跨越您的用戶體驗(yàn)和威脅環(huán)境。通過記錄和分析安全性和可觀察性數(shù)據(jù),您可以更好地檢測(cè)和修復(fù)大量問題,如性能問題、漏洞和安全違規(guī),從而獲得更高質(zhì)量的體驗(yàn)。
在本文中,我們將關(guān)注廣泛數(shù)據(jù)收集的來龍去脈日志是如何幫助你的 。我們將看看可觀察性數(shù)據(jù)和安全性數(shù)據(jù)之間的區(qū)別,以及如何最好地收集所有這些數(shù)據(jù)。然后,我們將探討如何使用這些數(shù)據(jù)來改進(jìn)您的應(yīng)用程序,并最終了解如何為您的數(shù)據(jù)收集實(shí)現(xiàn)一個(gè)集中的一站式商店。
什么是可觀測(cè)性數(shù)據(jù)?什么是安全數(shù)據(jù)?
可觀察性是系統(tǒng)的一個(gè)屬性,它定義了操作員可以告訴系統(tǒng)的當(dāng)前和歷史狀態(tài)。由此引出,可觀察性數(shù)據(jù) 是系統(tǒng)狀態(tài)的表示——想想錯(cuò)誤百分比、內(nèi)存使用和流量。可觀測(cè)性數(shù)據(jù)可以是從各種來源記錄的原始數(shù)據(jù),也可以是下采樣、匯總和處理的數(shù)據(jù)。
這與安全數(shù)據(jù)有何不同?
安全數(shù)據(jù) 是用于發(fā)現(xiàn)安全威脅的可觀察性數(shù)據(jù)的子集。如果這看起來模糊,那是因?yàn)樗?
例如,如果一個(gè)應(yīng)用程序表現(xiàn)出緩慢的響應(yīng)時(shí)間,它是安全數(shù)據(jù)嗎?看情況。也許應(yīng)用程序只是針對(duì)當(dāng)前負(fù)載進(jìn)行了錯(cuò)誤配置,或者也許攻擊者已經(jīng)損害了系統(tǒng),并且正在運(yùn)行的工作負(fù)載降低了一切速度。
甚至通常不被認(rèn)為是安全數(shù)據(jù)的數(shù)據(jù)也可能是安全數(shù)據(jù)。例如,如果為某個(gè)特定的庫發(fā)布了一個(gè)新的CVE,您需要知道哪些服務(wù)依賴于該庫的版本。有時(shí)明確的安全數(shù)據(jù)案例——例如,某個(gè)API端點(diǎn)的調(diào)用者的身份——對(duì)于跟蹤非安全錯(cuò)誤也很有用。
最后,我們可以說一段可觀察性數(shù)據(jù)可能是安全數(shù)據(jù)也可能不是。這取決于用例的細(xì)節(jié),而這通常是事后才知道的。
可觀測(cè)性數(shù)據(jù)的三大支柱
當(dāng)我們查看可觀察性數(shù)據(jù)時(shí),我們通常將其分為三個(gè)支柱:日志、度量和跟蹤。讓我們看看這些,以及它們?nèi)绾螒?yīng)用于可觀察性和安全性數(shù)據(jù)。
日志
日志捕獲帶時(shí)間戳的事件,并提供系統(tǒng)發(fā)生情況的時(shí)間線。例如,如果您的應(yīng)用程序無法連接到數(shù)據(jù)庫,它可能會(huì)發(fā)出一條日志消息,并且可能會(huì)將誰執(zhí)行了某個(gè)操作寫入審計(jì)日志。任何重要的系統(tǒng)都會(huì)有許多不同的日志。在一個(gè)集中的日志記錄系統(tǒng)中記錄和組織這些日志是可觀測(cè)性數(shù)據(jù)收集的一個(gè)主要方面。
日志分析數(shù)據(jù)對(duì)于監(jiān)控、故障排除和調(diào)查可靠性和安全性問題至關(guān)重要,有助于找到問題發(fā)生的根本原因。日志數(shù)據(jù)通常是關(guān)于公司系統(tǒng)的最詳細(xì)的可用信息,因此將這些數(shù)據(jù)用于工作是有意義的,可以在整個(gè)組織中提取日志文件以實(shí)現(xiàn)端到端的可見性和更快的故障排除。
韻律學(xué)
雖然日志通常包含文本信息,但指標(biāo)是數(shù)字時(shí)間序列—例如,一段時(shí)間內(nèi)集群中的掛起 數(shù)量。指標(biāo)通常會(huì)定期記錄,有助于識(shí)別趨勢(shì)和異常情況。度量比日志經(jīng)濟(jì)得多。它們不需要解析和轉(zhuǎn)換,傳輸和存儲(chǔ)的成本也更低。指標(biāo)是系統(tǒng)的重要標(biāo)志。警報(bào)主要建立在指標(biāo)之上。
跟蹤
分布式跟蹤將標(biāo)識(shí)符與每個(gè)請(qǐng)求相關(guān)聯(lián)。請(qǐng)求的蹤跡是跨度和引用的集合。您可以將跟蹤視為一個(gè)有向無環(huán)圖,它表示請(qǐng)求在分布式系統(tǒng)組件中的遍歷。每個(gè)區(qū)間記錄請(qǐng)求在給定組件中花費(fèi)的時(shí)間,引用是連接一個(gè)區(qū)間和后續(xù)區(qū)間的圖的邊。對(duì)于基于微服務(wù)、無服務(wù)器功能和隊(duì)列的現(xiàn)代系統(tǒng)來說,跟蹤是一個(gè)非常重要的工具。它為系統(tǒng)運(yùn)營商提供了一個(gè)“監(jiān)管鏈”,這對(duì)分析性能和安全問題至關(guān)重要。
那么這些支柱是如何與安全數(shù)據(jù)交叉的呢?
如何收集數(shù)據(jù)
現(xiàn)在我們已經(jīng)了解了可觀察性和安全性數(shù)據(jù),它們?yōu)槭裁粗匾?,它們來自哪里,讓我們看看一些更?shí)際的方面:如何收集數(shù)據(jù)以及如何有效地使用數(shù)據(jù)。
讓我們看看每個(gè)支柱、一些最佳實(shí)踐和一些有用的工具。這些步驟適用于您的所有數(shù)據(jù)—可觀察性和安全性。
日志
您可能有許多由您的操作系統(tǒng)和您的云提供商創(chuàng)建的日志。您的應(yīng)用程序和第三方軟件也會(huì)生成日志文件。然而,標(biāo)準(zhǔn)日志帶來了幾個(gè)挑戰(zhàn):
- 跨許多主機(jī)訪問各種各樣的日志文件效率低下,并且不便于用戶使用。
- 日志文件最終會(huì)填滿磁盤(除非您使用云持久存儲(chǔ))。
- 如果您通過輪換日志文件來解決磁盤空間問題,那么您會(huì)丟失歷史數(shù)據(jù)。
- 您的服務(wù)器可能會(huì)不時(shí)崩潰。
- 磁盤可能會(huì)損壞。
為了解決這些問題,最佳實(shí)踐是在每臺(tái)主機(jī)上使用日志收集器代理,將日志傳送到一個(gè)集中的可觀察性平臺(tái)。集中式日志管理系統(tǒng)將在持久存儲(chǔ)中存儲(chǔ)日志,提供查詢界面,提供聚合和其他轉(zhuǎn)換,并根據(jù)合規(guī)性和查找歷史趨勢(shì)的需要保留日志備份。
韻律學(xué)
指標(biāo)比日志更容易處理,因?yàn)閬碜匀魏蝸碓吹乃兄笜?biāo)都可以統(tǒng)一表示為一個(gè)時(shí)間序列,并帶有一組與之關(guān)聯(lián)的標(biāo)簽。與日志收集器類似,度量收集器可以在每個(gè)主機(jī)上運(yùn)行,并定期讀取相關(guān)數(shù)據(jù),如每個(gè)進(jìn)程的CPU和內(nèi)存使用情況或正在進(jìn)行的請(qǐng)求數(shù)量,并將其發(fā)送到。
可以通過兩種方式收集應(yīng)用程序級(jí)指標(biāo):應(yīng)用程序可以公開一個(gè)標(biāo)準(zhǔn)接口,指標(biāo)代理可以抓取該接口,或者,應(yīng)用程序可以被檢測(cè)(通常使用庫)以將其指標(biāo)直接發(fā)送到可觀察性平臺(tái)。數(shù)據(jù)點(diǎn)以固定的間隔被捕獲,并被發(fā)送到可觀測(cè)性平臺(tái)進(jìn)行分析。
對(duì)于度量標(biāo)準(zhǔn),是無可爭議的王者,它被設(shè)計(jì)用來清除暴露應(yīng)用程序度量標(biāo)準(zhǔn)的應(yīng)用程序端點(diǎn)。非常好地將您的度量可視化。
描摹
跟蹤是通過檢測(cè)應(yīng)用程序和服務(wù)來收集的,以攔截請(qǐng)求,并在調(diào)用其他服務(wù)時(shí)附加一個(gè)跟在請(qǐng)求后面的id。軌跡被發(fā)送到可觀測(cè)性平臺(tái)進(jìn)行分析。
如何使用數(shù)據(jù)來提高應(yīng)用程序的安全性?
您如何使用所有這些數(shù)據(jù)來專門提高您的應(yīng)用程序安全性?讓我們考慮一下這些可觀察性數(shù)據(jù)在事件檢測(cè)和響應(yīng)的不同方面可能扮演的角色。
我們從事件檢測(cè) ,它依賴于捕獲指標(biāo)來檢測(cè)異?;顒?dòng)。在可觀察性平臺(tái)的監(jiān)控下,這些指標(biāo)將向團(tuán)隊(duì)發(fā)出警報(bào)。
此時(shí),團(tuán)隊(duì)只知道發(fā)生了異常情況,但不知道這是否是與安全相關(guān)的事件。到識(shí)別 事件發(fā)生后,檢查日志變得至關(guān)重要。如果事件與安全相關(guān),團(tuán)隊(duì)可以使用日志來確定惡意參與者是如何訪問系統(tǒng)的街區(qū) 通過撤銷受損用戶或服務(wù)的訪問權(quán)限來進(jìn)一步訪問。
接下來,團(tuán)隊(duì)可以使用日志、指標(biāo)和跟蹤的組合來評(píng)估違規(guī)影響 ,確定系統(tǒng)的哪些部分受到了影響,以及數(shù)據(jù)是否被泄露。通過了解影響的廣度,團(tuán)隊(duì)可以減小爆炸半徑 通過使這些組件不可用,直到它們被修復(fù)。
最后,團(tuán)隊(duì)可以使用日志和指標(biāo),特別是在執(zhí)行驗(yàn)尸 ,幫助分析所有事故、安全事故或其他事故的根本原因。由此產(chǎn)生的行動(dòng)可能包括加強(qiáng)訪問控制 , 修補(bǔ) 易受攻擊的系統(tǒng) ,或者微調(diào)可觀察性策略 更進(jìn)一步。
這在實(shí)踐中是什么樣子的?
當(dāng)您將所有不同的數(shù)據(jù)源和技術(shù)集成到一個(gè)有凝聚力的平臺(tái)中,使您能夠深入了解您的系統(tǒng)時(shí),精英級(jí)別的可觀察性就出現(xiàn)了。
您可以使用已經(jīng)提到的許多開源項(xiàng)目自己構(gòu)建這個(gè)。雖然這提供了高度的可定制性,但它需要大量的工作來構(gòu)建、維護(hù)和操作,尤其是如果您想要一個(gè)健壯、可伸縮且始終可用的系統(tǒng)。此外,你還需要觀察你的可觀測(cè)平臺(tái)。
另一個(gè)選擇是選擇一個(gè)托管平臺(tái)來處理可觀測(cè)性問題。這可以讓你專注于你的核心競爭力。
黑色星期五的一個(gè)例子
我們來看一個(gè)黑色星期五前后的例子。隨著許多網(wǎng)站(尤其是零售網(wǎng)站)的用戶活動(dòng)增加,如何利用可觀察性數(shù)據(jù)和平臺(tái)來幫助減少安全事件?我找到了這個(gè)及時(shí)發(fā)布關(guān)于使用無效密碼嘗試和每個(gè)IP地址和每個(gè)國家的登錄嘗試等指標(biāo),所有可能的欺詐活動(dòng)指標(biāo)。
將這些指標(biāo)泵入的可觀察性平臺(tái),該平臺(tái)提供暴力攻擊儀表板來幫助事件檢測(cè)。從那里,事件響應(yīng)團(tuán)隊(duì)可以開始分析日志,以確定和解決安全事件的根本原因,就像我們?cè)谏厦孀哌^的一樣。
平臺(tái)吸收、聚集、豐富并保留所有的可觀測(cè)性數(shù)據(jù)。允許您決定是在本地安裝數(shù)據(jù)收集器還是在AWS上運(yùn)行托管收集器。它還集成了可觀察性產(chǎn)品,這可以簡化遷移工作,并減輕對(duì)供應(yīng)商鎖定的擔(dān)憂。
結(jié)論
收集大范圍的可觀察性和安全性數(shù)據(jù)是為用戶提供高質(zhì)量數(shù)字體驗(yàn)的關(guān)鍵。要取得成功,您需要依賴可觀察性的所有三個(gè)支柱:日志、度量和分布式跟蹤。您需要使用這些數(shù)據(jù)來檢測(cè)、隔離和緩解攻擊。