Edgio的《超越邊緣》簡介播客第5集:識別和緩解由資深Andrew Johnson主持的零日威脅 產品行銷經理–Edgio的安全。
Andrew Johnson: 歡迎來到超越邊緣(Beyond the Edge),在這裏我們深入瞭解影響現代數字業務的趨勢。 我是Andrew Johnson,您的本集的共同飛行員。 今天,我們正在探討零日威脅的主題,特別是我們如何識別和減輕威脅。 今天加入我們的有工程副總裁Dave Andrews Edgio和Edgio首席研究科學家Marcel Flores。
歡迎,Dave。 Marcel,讓你們倆都來這裏很棒。 你能告訴我們一點關於你自己和你在埃吉奧的角色嗎?
戴夫·安德魯斯: 是的。 感謝Andrew。 很高興能夠繼續。 所以我是工程副總裁。 我在Edgio工作了11年,我認爲只是一個陰影。 從工程角度來看,我負責邊緣平臺和許多中央基礎架構。
Andrew Johnson: 太棒了。 謝謝你。
馬塞爾·弗洛雷斯: 是的。 非常感謝您的光臨。 正如您所說,我是Marcel Flores。 我是Edgio Labs的首席研究科學家,Edgio實驗室的研究小組。 我的團隊致力於通過嚴格的研究和開發以及與更廣泛的系統和網路研究社羣的互動來提高網路的性能,可靠性和營運。
什麼是零日?
Andrew Johnson: 太棒了。 再次感謝大家今天加入我們。 因此,在零日威脅的主題中,我認爲必須快速向我們的受衆提供一個關於零日漏洞和攻擊的背景。 我將在介紹您保護Edgio和我們的客戶的一些經驗之前先簡要介紹一下這一點。 那麼,我們在這裏談論的是什麼零日? 嗯,基本上現代的應用程式,現代的企業,現代的服務是由軟體,軟體從開源碼,商業化的代碼基礎不同的協議等組成 我們知道沒有任何軟體是完美的,而且會不時在該代碼中檢測到漏洞。 基本上,”零日”是指發現漏洞的時間段,以及提出修補程序或變通辦法的時間,對嗎?
因此,開發人員一旦知道漏洞,就會嘗試儘快修補它,或者向客戶和用戶提供他們可以採取的軟體步驟來防止漏洞利用。 但是,就像我提到的那樣,這是一個問題並沒有消失。 我們發現,與2021年相比,在2022年,CVE或常見漏洞和暴露的數量每年增加約25%。 發現更多漏洞並不足爲奇。 有AI工具可以快速掃描代碼庫。 肯定有財政激勵措施鼓勵好行爲者和壞行爲者找到這些脆弱性的好行爲者一方。 有一些bug bounty程序。
您熟悉Apple一直爲您的iPhone推出代碼修復的情況。 優秀的白帽子研究人員正在向這些開發人員提交漏洞利用,然後還有一些惡意的攻擊者也在利用漏洞。 所以,只是一些背景。 也許是您最近聽說過的一些常見問題。 HTTP2/Rapid Reset是應用程式安全領域中最值得注意的一件事。 也許您聽說過Log4j,Spring4Shell,或幾年前,Apache Struts 2漏洞在美國造成了大量數據泄露,實際上是在世界各地。 這只是零日威脅的一些背景,但是的,也許我會先問Dave一點,告訴他您如何保護Edgio和我們的客戶免受零日威脅。
Edgio如何保護自己及其客戶免受零日威脅?
戴夫安德魯斯: 是的,是的。 所以我認爲安全是關於深度防禦的,對吧? 就像,您從來沒有做過任何特定的事情。 更重要的是確保您有多個層疊在一起。 如果一層或兩層不完美,因爲它們都是因爲我們有非常聰明的人積極嘗試打破它們,那麼層的數量和重疊的保護和緩解措施是設計的,這裏的整個重點是, 如果有一件事情失敗,這並不重要,因爲還有五件事情可以保護您。 所以,像第一個步驟,我認爲最重要的事情之一是一般地屬於準備桶.
這至少有三個不同的方面。 第一個讓我想起的是衛生。 保持良好的安全衛生絕對至關重要。 而且它在很大程度上有助於減少您的關注領域。 那麼,我指的是衛生呢? 主要有兩件事。 其中一種是使軟體保持最新狀態或定期修補。 這是世界上最無聊的東西。 這也是最重要,最重要的防線之一。 這意味着您充分利用您所談論的所有負責任的披露,安德魯,優秀的白帽子研究人員,發現漏洞, 向供應商披露,修復和推出修復。
您可以利用所使用軟體中所有基本已知的攻擊媒介。 因爲它很無聊並不一定意味着它很容易,特別是當您在Edgio以及其他許多地方工作時,它非常 很難管理定期升級所有軟體所帶來的風險。 因此,正如我們稍後將看到的那樣,我們在操作上做了很多事情,以使這項工作更安全,更輕鬆。 但如果你願意,它仍然相當地落在衛生桶裏。 下一件置於衛生環境中的是掃描。 以下哪一點是積極尋找表明您在壞演員找到問題之前遇到問題的事情。
因此這採取了多種形式。 它可以是內部安全小組或資訊安全小組。 您可以僱用外部人員執行掃描。 它可以是兩者。 通常,組織利用bug bounty基本上鼓勵人們走白帽子路,發現漏洞向我們或特定方披露,以便在它們被積極利用之前修復它們。 那麼這些東西就會落在你可以修復的東西的桶裏,先修復,對吧? 就像,利用整個社羣正在做的良好工作,使網際網路和軟體總體上更安全. 然後主動查看您自己的應用程式,嘗試查找漏洞並儘可能主動地修復它們。 接下來我要談的是準備工作,我要向Marcel介紹一下,這是可觀察性。
Marcel Flores: 是的,謝謝Dave。 因此,我認爲,在許多情況下,要做的另一件重要的事情是能夠了解您的網路或基礎架構的情況。 因此,我認爲這種類型分爲兩類,從根本上講是相同的,但我認爲重要的是要呼籲。 首先是思考應用程式級別的行爲,對吧? 確保您瞭解哪些請求進入您的網路,以及這些請求的功能,它們的形狀,它們的正常外觀以及在某些事件中它們的外觀。 我認爲同樣重要的是,要記住,每當您在網際網路上進行通信時,這是一種完全堆棧操作,對嗎?
每個請求都要通過應用層,也要通過低層協議。 因此,關注堆棧下面的情況非常重要,對吧? 並瞭解低層系統可能存在複雜的行爲和響應,而這些應用層行爲並未很好地捕獲到這些行爲。 因此,必須跟蹤這兩個組件的某種情況,並對這兩種情況下發生的事情具有觀察性。 我認爲關鍵是能夠理解交通何時發生變化,對吧? 當您的流量達不到預期時,對吧? 您可能會開始看到應用程式請求的功能,而這些功能不是您通常看到的,對吧? 例如,HTTP帖子突然增加而不是GET,考慮應用層,考慮協議級別,對吧?
這可能是一個非常複雜的協議,如HTTP2或更低. 並思考TCP套接字發生了什麼,以及該層級的通訊協定互動發生了什麼,尤其是當您想要嘗試利用特定弱點的DDoS攻擊等事情時。 我認爲擁有這些漏洞的關鍵在於,這一可觀察性不僅是擁有可讓您瞭解發生了什麼情況的指標,而且還能夠深入瞭解這些行爲,對吧? 並相應地將它們分成一部分,對吧? 瞭解是否有特定的用戶羣產生了一組特定的流量。 有特定網路,特定客戶,特定客戶的特定財產,對嗎? 所以你可以理解和縮小事情的實際發生位置以及它們可能發生的方式。
Andrew Johnson: 這很有趣。 真有意思。 那麼,在觀察到這些不同類型的行爲或您認爲可能是零日的行爲之後,您可以採取哪些操作步驟?
您可以採取哪些步驟來緩解零日威脅?
戴夫·安德魯斯: 是的,我可以拿到那個,安德魯。 是的。 馬塞爾所說的兩種元素真的是基礎,對吧? 就像第一個是看事物,看趨勢,從一個角度來看,總的來看東西,對吧? 例如,整體看起來是什麼? 整個問題是,您可以從高級角度瞭解正在發生的事情,並且可以非常快速地識別變化,正如您所說的那樣。 深度潛水的第二部分實際上是能夠取悅和發展你的理解,什麼變化,它的操作水平,它是風險,對嗎? 就像,你知道,網際網路是狂野的,狂野的西部,對嗎? 就像,事情總是改變的。
新的行爲一直在發生。 不是所有這些都是安全問題,對嗎? 就像這樣,擁有更廣泛的彙總資訊集的能力,但讓您深入瞭解,詢問,觀察或回答更細緻的問題,讓您瞭解發生了什麼變化和原因的核心,並讓您做出決策。 “哦,我的天哪,我的天哪,這是好的。” 這是一位新客戶在做一些事情。 或者你知道這實際上是一個問題,或者我們需要去看看。 因此,您應該遠離,瞭解發生了什麼,並發展對這一問題的理解。 你進入了像,偉大的領域,那麼什麼?
“你說什麼?” 這一桶我們稱之爲營運敏捷性和敏捷性。 在考慮營運靈活性時,我們會考慮一些高級主題。 同樣,三個方面是響應性,安全性和冗餘性。 因此,只需花點時間處理每個響應速度,這正是它聽起來的樣子,對吧? 當從安全角度來看出現問題時,時間至關重要,對吧? 如您所知,您希望能夠非常迅速地關閉安全問題,以便讓攻擊者最少時間進行破壞,並給您最大的清理時間。 因此,我們的目標是從非常廣泛的角度來看,不僅圍繞安全問題,而且圍繞我們所做的各種操作更改,我們的目標是大約5秒鐘,達到99.99%的基礎設施。
這就是目標。 我們並不總是這樣做,因爲有些事情需要更長的時間,但這就是我們的目標。 我們的許多子系統確實達到了這一目標。 安全性是一種奇怪的主題,需要考慮操作敏捷性。 所以讓我把那一個分開一點點。 當您嘗試以較高的回應速度執行某項作業時,其中一個風險是,假設您擁有完美的觀察能力,並且完全瞭解正在發生的事情,您可以非常快速地解決問題。 您可以完美地預測您即將做出的更改的響應。 這很棒,而且很多時候都是這樣。 但是,您對其中任何一種事物的理解也可能不完美,而且很快就會使它變得更糟。
沒有人想要這樣。 因此,關於安全的整個要點是,您將系統,流程,自動化以及許多其他事情都放在其中,以確保您實際上不會使它變得更糟。 這可歸結爲幾件非常,非常高級別的事情。 開始時。 這就像是主動建模。 這實際上適用於基本容量規劃,對嗎? 例如,如果由於某種原因必須使機器停止生產以進行修補,因爲它要求基於任何原因重新啓動服務。 如果您嘗試非常快速地完成這項工作,其中一個風險是您將太多的機器停用,而不再承受他們目前所承受的負載。 你可以提前知道,對嗎?
因此,我們有許多與工作流系統集成的建模系統,因此當請求儘可能快地修補所有內容時,它不會立即將所有伺服器從生產中撤出。 因此,您可以建立並整合基本的安全系統,以防止自己的腳部拍攝。 因此,假設我們不會從這一角度來使事情變得更糟,只是從純粹的容量規劃基礎架構角度來看,我們還想知道我們所做的更改在應用程式級別或任何級別,可觀察性應用程式,協議等方面都具有預期的效果。 無論我們嘗試減輕的是什麼。 我們所做的就是利用我們稱之爲煤礦的系統。 我們之前已經在部落格上討論過它並公開談論過它,但這個想法基本上就像我們稱之爲煤礦中的金絲雀——運河一樣。
這一點,全球一次沒有任何事情發生,無論它多麼可怕。 至少兩個階段用於外出。 因此,我們將它放在基礎設施的子集上。 通常情況下,我們會驗證它是否符合我們的預期,然後在稍後很快推出該事件的基礎架構。 很抱歉,請滾動,更廣泛地推出,並驗證整體問題是否已在全球層面解決。 因此煤礦和運河與它們的測量和觀測系統緊密集成,以便您可以一目瞭然地聯繫起來,這是什麼? 對於我正在查看的彙總指標,此金絲雀做了哪些工作? 因此,我們得到了實時反饋,嘿,我們所做的改變實際上是解決了這個問題。
這非常非常方便。 我們目前正在進行的實際工作以及準備在內部和以後啓動的工作,我們將爲客戶及其配置更改製作此工具,基本上是完全自動化的度量分析。 因此,目前,當我們做出這樣的更改時,需要一個人坐在那裏看它,確保發生了正確的事情,並確保他們所關心的指標朝着正確的方向前進。 然後基本上推進金絲雀,告訴系統,你已經通過了第一階段。 一切看起來都很好。 繼續前進,進入該金絲雀的全球階段。 我們這樣做,我們利用系統進行所有更改,不僅是您知道安全操作更改,而且整個系統中的所有更改。
而我們所遇到的問題是,當我們對銷售點建立越來越多的可見性,越來越多的可見性,越來越多的指標,越來越多的關於正在發生的事情的資訊,越來越多的人要看,對吧? 而這種負載正達到它太高的程度。 所以人類開始犯錯誤,對吧? 因爲只有太多的圖表可以看,太多的圖表可以看,人們都累了,人們也不完美。 因此,我們正在啓動一個名爲”賞鳥者”的系統,它基本上是觀察運河的東西,它會對指標進行一些複雜的統計分析,例如,變化正在進行,並給它一個大拇指或一個大拇指。 這與煤礦集成在一起,這樣我們就可以說,嘿,我們得到了一些跡象,表明金絲雀是好的,它在做我們所期望的事情。
另外,它也沒有做任何我們沒有預料到的壞事,而且在沒有人爲干預的情況下,這一推廣將繼續進行。 所以對此感到非常興奮。 這將使我們的響應速度更快,更安全。 因此,當我們談論安全問題時,我們會考慮這些主要因素,以便能夠快速安全地解決問題。 我提到的最後一點是冗餘,這是相對不言自明的。 我們利用和部署了一個關鍵點或理念,這基本上是對許多這些變化的雙重途徑,儘可能多。 因此,雙路徑意味着,我們所思考的兩條路徑基本上是快速,最大努力和緩慢,可靠的。 我們的理念是,我們在世界各地非常,非常不同的地方營運大量的基礎設施。
在幾秒鐘內以100%的可靠性完成所有任務的能力是童話。 就像這樣,這並不是可行的。 某個地方總是有問題。 您根本無法對此做任何事情。 那麼,我們所做的是,我們基本上把這些東西放在一起,類似於安全性,深入防禦,對吧? 就像,你把這兩件事放在一起,而這實際上是利用快速道路。 儘可能多地擊打。 如果您錯過了什麼,我們將確保我們有一個冗餘可靠的路徑,我們將不斷重試,直到它工作正常爲止,速度稍慢一些。 因此,爲此,我們將在不到五秒的時間內對大約99.9%的基礎架構進行更改,對吧?
同樣,99.9%是可重複且可靠的。 然後,慢速可靠的路徑以60秒的順序執行。 這個系統將繼續努力直到它基本上成功。 因此,通過將這兩種方法結合起來,我們可以充分利用這兩種方法。 如果其中一個子系統完全停機,並不意味着一切都停機了,我們仍需要在五分鐘後繼續。 因此,這兩件事一起爲我們提供了這種響應能力和敏捷性,並提供了我們所需要的可靠性。 還有其他類似的,有趣的小事情來確保我們有一些冗餘。 喜歡您如何啓動這些系統? 就像很多系統一樣,聊天機器人集成在一起,所以非常非常簡單。
任何人都可以在世界任何地方通過手機完成這項工作。 很多其他東西都有API。 許多子系統都有一個CLI。 因此,確保不只有一種方法可以啓動這些任務,這是我們如何在冗餘中構建的另一個示例,以便無論發生什麼情況或某個特定系統可能遇到問題,我們始終可以在指尖處獲得操作敏捷性。 我們確保我們擁有所需的控制能力和營運能力。 你知道,這些東西都是通用的,但正如我所說,我們儘可能地利用它們。 從我們自己的基礎架構工作流程,例如將機器脫機,修補到客戶配置更改,一切都是如此。 這一切都利用了與我們養食品相同的核心系統,並積極地利用自己。 因此,我們向客戶展示的產品非常可靠,非常可靠。
Andrew Johnson: 太棒了。 太棒了 感謝Dave。 Marcel,我認爲您談到了安全團隊可以應用於他們的實踐的最佳實踐或考慮事項。 感謝這些提示。 我知道你們一定會在野外處理一些非常有趣的零日示例,以保護Edgio和我們的客戶。 我相信您有一些關於這些最佳實踐的好故事和應用。 你能談談這一點嗎?
零日示例:HTTP2/Rapid Reset
戴夫安德魯斯: 是的,是的。 我認爲最相關或最新的,我猜,有趣的是,你前面提到的是HTTP2/Rapid Reset攻擊。 這是一次非常有趣的經歷。 因此,爲了從Edgio的角度來傳達這一點,我們在這個人發生的時候寫了一個小部落格。 HTTP2/Rapid Reset是一種零日攻擊,人們認識到,不僅僅實現HTTP2伺服器庫在HTTP2 RFC,規範,協議規範等方面都採取了某種形式,並基本上在庫本身中進行了編碼。 這是允許同時請求的數量,很抱歉,允許在特定連接上執行的併發流數量,在規範中,寫成100個。
這與H2有趣的小方面相結合,也就是說,多路複用(在單個TCP套接字上有大量請求)和取消請求的能力導致了這一非常有趣的漏洞或DDoS漏洞。 在那裏,攻擊者正在尋找的東西,只是爲攻擊者花費了一小部分的費用,而爲另一端的人花費了更多的費用 他們在HTTP2快速重置中發現了它。 這基本上意味着攻擊者可以非常,非常,非常迅速地像一個發起請求的單個數據包那樣反覆地取消它,就像數百個單一套接字上的數據包一樣,在一個數據包上發送到伺服器。
然後,伺服器需要做更多的工作,而不僅僅是發送一個數據包。 我們必須創建請求,通常必須啓動代理連接。 這就是CDN去取攻擊者所要求的任何資產的方法。 最後,我們必須記錄請求是否發生。 因此,攻擊者能夠生成這些啓動和取消請求的事實非常迅速。 基本上,與遭受這種攻擊的人一樣,它的成本更高。 處理這些問題的費用比生成這些問題的費用要高。 因此,這將成爲DDoS漏洞。 所以我們喜歡這個行業中的其他許多人,你知道,他們受到了這種攻擊。
每個人都在同一時間受到攻擊,這使得它特別有趣。 這是一個非常廣泛的攻擊。 我很想了解攻擊者開始時的想法。 因爲他們同時攻擊許多,許多提供商。 當我們開始與其他提供商交談時,我們發現了什麼,哦,您什麼時候看到了? 哦,這正是我們看到它的同時,我們偶然發現了這種攻擊。 由於Marcel所說的可觀察性,我們確定了發生的事情。 我們開始構建緩解措施,對吧? 因此,緩解措施看起來就像是增加了更多的可觀察性,以便準確地掌握正在發生的事情的核心,然後建立營運控制,讓我們調整應對措施。
因此,實際看起來是什麼樣子的,請跟蹤客戶端在特定套接字上重置請求的次數,如果其中的百分比超過預定義閾值,則終止該連接。 因此,這個想法基本上是不允許攻擊者不斷地發送這些請求以對其設定上限,從而能夠減輕攻擊。 因此,我們在構建了緩解措施後發佈了該部落格,部署了該緩解措施,實施了該緩解措施,並驗證了它實際上可以防止這些攻擊再次發生。 然後,我們有業界的人聯繫,喜歡,哦,我們看到了部落格。 實際上,我們也受到了這種影響,我們正在致力於負責任的披露。 所以我們與業界的一個團隊合作,例如Vince, 這是通過負責任的披露流程的證書的一部分,請確保在這種情況下實施HTTP2庫或HPD伺服器的人員有時間生成修補程序,在之前部署這些修補程序,該漏洞得到了更廣泛的宣傳。
所以這是一個非常非常有趣的流程。 我們能夠很快地扭轉這一局面,對吧? 在某種程度上,由於我們在衛生和營運以及營運可見性和敏捷性方面所做的工作,我們能夠做出很小的變革,對吧? 就像這樣,你知道,哦,我的天哪,我們必須升級這個庫,我們就像後面的10個版本,因爲我們沒有定期更新它。 它並不是實際上我們落後了一個版本,對嗎? 例如,因爲我們定期修補程序升級,所以風險降低了,因爲它是一個小跳,這意味着您可以在保持我們擁有的低風險閾值的同時,非常快地完成。 因此,我們非常迅速地完成了這項工作,並且能夠將其推出並減輕攻擊。 然後,我們在不知道這次攻擊在一定程度上打擊了更多的人,試圖與我們的客戶以及行業進行社交。 就像,嘿,這是我們看到的奇怪的東西,它看起來並不是Edgio特有的,實際上可能更適用。 原來是這樣。
Andrew Johnson: 這真的很有趣。 看到你所知道的內部視圖是很酷的,全球的安全社羣共同努力,爲每個人改善成果。 “你想說什麼?”
Marcel Flores: 是的,我只是想補充一點,我認爲這個例子是一個有趣的例子,我們最初的觀察能力肯定表現出了奇怪的行爲,Dave是描述的,對吧? 這種較低級別協議功能與CDN較高級別行爲的交互會產生一些真正意想不到的行爲。 其中的一部分,在確定這裏發生的事情的一部分是理解存在着這種嚴重的不平衡,對吧? 我們看到的請求數與我們實際向客戶發送的請求數相比有偏差,對吧? 這一點很突出。 儘管這兩個指標都是我們收集的指標,但我們並沒有完全按照這種方式比較它們。 因此,部分結果是坐下來看看它,說,嘿,我們如何將我們已經擁有的可見性結合到爲檢測這個問題而定製的東西中? 我們能夠通過稍微不同的角度來查看我們已經擁有的數據,從而完全提高了我們的可見性。
Andrew Johnson: 太棒了。 太棒了 請記住這一點。 感謝您的評分,Marcel。 是的,夥計們,所以我想我們正在總結。 如果您想分享其他建議? 我認爲我們涵蓋了一個高水平,一些非常好的。
加強安全性的建議
戴夫·安德魯斯: 好問題。 我認爲一般的建議是衛生至關重要。 專注於您的觀察能力,我認爲我要呼籲的是找到能提供幫助的人,對吧? 就像Edgio這樣的公司所提供的關鍵價值主張的一部分,我們肯定能提供幫助,對吧? 您有一組像我和Marcel這樣的人,他們正在努力解決這一問題,並努力主動防止所有類型的攻擊影響到人們。 所以找到可以幫助的人吧,對吧? 就像我們構建的一堆工具和技術一樣,社羣提供的工具和技術可以使您的工作更輕鬆。 當我們談論的時候,你知道,通常網際網路上的東西,WAF就是最重要的,也像最基本的一樣,我認爲這是最重要的例子。
它使您能夠在適當實施時,將敏捷性和安全性元素結合在一起。 因此,Edgio WAF以雙模式執行,這意味着您可以將新規則部署到生產中,部署到正在獲取該規則的實際機器上,這些機器正在觀察流量。 你可以看到正在發生的事情。 一個很好的例子就是Log4j,你知道,它是一個小小的時間回溯。 當我們對此做出回應時,我們能夠非常快速地開發規則,並非常快速地驗證規則。 因爲我們正在推送規則更新,並且能夠在實際機器上以警報模式部署它們,並看到它們與攻擊相匹配,所以向我們的客戶表明他們要麼沒有受到攻擊,要麼受到攻擊。 然後做出一項非常基於數據的決策,使該規則進入阻止模式,並實際上防止這些攻擊向我們的客戶發起。 所以它將所有這些東西結合在一起,對吧? 例如響應速度,安全性,冗餘性和可靠性。 找到可以幫助的人。 我認爲這是我的主要建議。
安德魯·約翰遜: 這很有意義。 我很欣賞這一點,Dave。 是的,我的意思是,當對零天做出回應時,時間至關重要。 因此,擁有這些專門的解決方案,更重要的是,能夠幫助您解決這一問題的人員是關閉攻擊者大門的關鍵。 因此,各位非常感謝您加入我們。 我也要感謝觀衆,我們將在下一集見到您。 謝謝你。