上一章節(jié)中,我們討論了開展紫隊演練工作所面臨的一些挑戰(zhàn)以及紫隊的類型。在這一章節(jié),我會接著上一章的討論,繼續(xù)闡述幾種不常見的紫隊類型。
當場抓住測試
當場抓住測試是一個“紅隊”術語的游戲,紅隊要接受被當場抓住。在當場抓住測試期間,評估人員打算故意被藍隊抓住。這類紫隊測試側重于評估的各個階段,原因不同,反應也不同。測試從紅隊被發(fā)現(xiàn)之前的評估部分作為開始,紅隊行動中被發(fā)現(xiàn)的點,以及被確定后的評估部分。我參加過這種紫隊演練活動,發(fā)現(xiàn)它對客戶組織非常有用。如前所述,這種類型的測試可能會導致團隊之間的沖突。
當場抓住測試當然可以手動完成,也可以通過自動化完成。在這樣的活動中,評估人員會慢慢地暴露他們的諜報技術,直到他們笨手笨腳的讓藍隊抓住他們所做的事情。在這個關頭,紫隊的工作可以沿著兩條路中的一條進行。藍隊找到紅隊后,停止了紫隊的活動,并與紅隊一起重建在紅隊被發(fā)現(xiàn)之前發(fā)生的事情以及為什么沒有被早點抓到。或者,藍隊通知紅隊成員他們監(jiān)控到的情況,紅隊慢慢開始加強他們的諜報技術并隱藏自己,直到他們變得無法被藍隊區(qū)分是否合法活動。作為一個持久的紫隊演練,這兩個步驟在藍隊學習和改進監(jiān)控并識別紅隊活動的過程中,會不斷重復。這種方法的一個問題是,它不是一種標準化的、可重復的或可防御的方法來改進藍隊,并且可能不適用于所有組織。
另一種進行當場抓住測試的方法是借助道德黑客諜報技術實現(xiàn)自動化。在這種當場抓住測試的過程中,大部分人為因素被去除,演練結果中更多的是對組織已經具備的預防和監(jiān)測能力的評估。
我第一次看到這個技術是由一個非常大的企業(yè)的紅隊成員實現(xiàn)的。在我們提升了對目標數(shù)據(jù)中心里面幾乎所有設備的訪問權限之后,我們開始執(zhí)行自動化的當場抓住測試。諜報技術的作用是為工具選擇執(zhí)行點。一些目標是在同一個數(shù)據(jù)中心內選擇的,一些則是在數(shù)據(jù)中心之間進行通信的,還有一些是在DMZ和目標范圍內的其他管理子網中選擇的。我們安裝的工具中有一組攻擊性的安全攻擊活動,有多種不同的復雜程度。比如包括向SSH用戶添加密鑰、持久化二進制文件或腳本、創(chuàng)建用戶以及其他此類操作。這些活動是按從最不可能被發(fā)現(xiàn)到最可能被發(fā)現(xiàn)的順序執(zhí)行的,并且同時在每個設備上執(zhí)行。在完成這些工具的執(zhí)行之后,我們與藍隊合作,以確定是哪些行為命中了他們的監(jiān)控規(guī)則,哪些行為被阻止了,以及觸發(fā)了哪些警報。這使得藍隊成員能夠清楚地了解自己的防守能力。在某些情況下,他們認為他們會100%的對已發(fā)現(xiàn)攻擊操作發(fā)出警報,但由于配置不當?shù)木W絡監(jiān)聽和其他問題,他們但監(jiān)控并沒有發(fā)現(xiàn)某些攻擊操作。
這種當場抓住的測試可以和藍隊一起進行,藍隊提前提供他們的監(jiān)控和防御規(guī)則,紅隊輸入被防御裝置捕獲的測試動作。這種策略提供了補救需求的即時圖像,因為如果警報被遺漏,它們將直接與藍隊認為正在失敗的活動相關。另一種選擇是讓紅隊提出攻擊行動,在交戰(zhàn)結束時將其納入匯報中,并與藍隊一起審查,以便他們能夠調整自己的能力來應對此類攻擊行動。這也允許采取從最高危到最低危的補救順序,因為錯過的極其危險或明顯的攻擊活動應作為優(yōu)先事項處理。
前兩種慣用的當場抓住測試方法主要針對基于簽名的安全操作,在這些操作中,有機藍隊識別出已知操作中應該記錄或應該阻斷的弱點。我和一位同行討論過的一個新思路是使用機器學習自動測試組織的監(jiān)控裝置。這顯然偏離了這本書的主題,但我覺得這與其他當場抓住測試的紫隊的概念一樣值得提及。從本質上講,一個工具安裝在組織和互聯(lián)網的不同位置,該工具監(jiān)聽并了解組織的基線網絡流量。在此基礎上,它所做的與啟發(fā)式監(jiān)控軟件所做的事情恰恰相反。它開始發(fā)送自己的流量,并慢慢變得更笨。隨著工具發(fā)送的流量開始越來越不像網絡基線,不同復雜度的監(jiān)控軟件應該識別不同點的異常流量。如果他們的啟發(fā)式或甚至基于簽名的流量監(jiān)控被配置為能夠捕獲他們希望捕獲的內容,那么在網絡流的關鍵點放置和執(zhí)行這樣的工具可以允許組織獲得事實性的理解。
七擒七縱
當場抓住測試更側重于改進或識別藍隊方法中的差距。抓住并釋放是一種紫隊演練,旨在測試紅隊行動的彈性,以及藍隊識別和跟蹤紅隊活動的能力。在這種紫隊演練中,紅隊會被抓住。當這種情況發(fā)生時,紅隊被告知他們所采取的行動中已經被藍隊發(fā)現(xiàn)的信息,然后在藍隊開始積極嘗試隔離他們的工具并將他們踢出網絡之前,給紅隊隊員們一小段時間。通知并捕獲或防御活動之間的時間量應與系統(tǒng)記錄的紅隊操作所觸發(fā)的監(jiān)控裝置中的警報所需的時間和分析人員注意到它從而啟動事件響應所花費的時間相關。抓住并釋放中的“捕獲”可以是模擬警報,也可以是藍隊對紅隊活動的真實識別。這種評估中的“釋放”是給紅隊留出時間,以減輕被抓獲的行動,并繼續(xù)堅持滲透網絡。
這樣做的好處是,紅隊可以進行任何裁員和提高應變能力的活動,以試圖在組織中保持立足點。此外,藍隊可以進行真實的事件響應,其中他們積極嘗試清除網絡中的攻擊者,因為攻擊者知道應急響應已經啟動了。在所有討論過的紫隊活動中,這種類型的紫隊活動允許紅隊和藍隊培養(yǎng)創(chuàng)造力并改進他們的流程。同樣,在一個有紅隊和藍隊的組織中,這種情況更可能發(fā)生。不過,我認為這是一種非常有益的紫隊演練方式,它充分實踐了攻擊模擬的概念以及對組織應急響應的評估。
七擒七縱測試也強調了紅隊、藍隊、紫隊和進攻安全的一個非常有價值的觀點。被抓住并不意味著威脅已經被擊敗。通常情況下,當演練還在進行時,在藍隊告訴我們他們抓住了我們,那么在演練已經結束時,我就會參與匯報或對話。從個人經驗來看,在活動發(fā)生后的數(shù)小時甚至數(shù)天內都會發(fā)出行動警報,而且?guī)缀踉谌魏吻闆r下,僅捕獲該活動并不能阻止攻擊者的存在。如果藍隊發(fā)現(xiàn)我在主機上執(zhí)行了一個有風險的特權提升漏洞,然后發(fā)現(xiàn)我在主機上挖掘信息,但他們在我執(zhí)行這個漏洞兩小時后,在我已經停止與該機器交互一個多小時后才發(fā)現(xiàn)了我,那并不完全意味著我被打敗了。我可能已經跳轉到了幾個其他主機。我敦促防御性和進攻性安全從業(yè)人員理解,在評估和實際活動中,如果后續(xù)的事件響應無法擊潰組織中的攻擊者,那么捕捉到一個攻擊動作是無用的。當一個藍隊暗示,因為他們抓到了某個攻擊行為,所以評估并不復雜,或者后來紅隊的行動是無聲的,結果是不相關的,那么這是非常令人沮喪的。我一次又一次地遇到過這種情況,但都沒有抓住重點。對于組織來說,這是一個很好的用來學習自身局限性的機會,并實踐組織對攻擊者的事件響應,與真正的黑客不同,它不會向公眾泄露數(shù)據(jù)和漏洞。
樂于助人的黑客
最不具有對抗性和最容易實施的紫隊活動是在攻擊性安全評估之后、補救和緩解調查結果期間發(fā)生的事情。無論是作為一種有目的的紫隊,還是簡單地將演練結果報告提升到一個更高的級別,攻擊者對補救和緩解策略的輸入都是非常寶貴的。此輸入可確保防御者以擊敗攻擊而不是模擬攻擊者的方式修正演練所發(fā)現(xiàn)的安全問題。這也有助于有效地確定演練發(fā)現(xiàn)的安全問題清單的優(yōu)先次序和處理順序。在參與紫隊演練活動時,我目睹了許多這樣的例子:客戶的安全人員想出了解決安全問題的想法,阻止了紅隊進行的模擬攻擊,但沒有解決問題的根源。這類似于治療癥狀而不是治療感染的原因。以下是我遇到的真實例子,在這些例子中,安全人員提出的最初的解決方案針對的是一種癥狀,而不是我們最終與他們合作實施的旨在治療病因的方案。
有兩個類似的例子都涉及到目標組織中使用的安全產品,這些安全產品在演練過程中被紅隊用于在整個企業(yè)組織中橫向移動。其中一個是基于 Linux 的企業(yè)配置管理軟件,它集中管理組織的大部分工作。另一個是由服務器集中管理的Windows端點防病毒軟件。在Linux軟件中,憑證重用允許遠程訪問,內核權限提升允許紅隊在配置管理服務器上站穩(wěn)腳跟。從那時起,紅隊就可以對企業(yè)進行更改,例如安裝后門、更改密碼和其他操作,所有這些操作都為每個托管節(jié)點提供了特權訪問。在Windows主機上,在一臺計算機上復制一個半特權用戶帳戶可以讓評估人員將注意力轉向防病毒管理服務器。從那里,紅隊能夠“解密”本地存儲的防病毒網絡控制臺的密碼,一旦驗證了密碼,紅隊就能夠以系統(tǒng)權限在域中的所有計算機上執(zhí)行二進制文件,包括域控制器。在這兩個例子中,在匯報的時候,客戶安全人員提出了一些緩解措施,這些措施只集中在問題的癥狀上。對于Linux問題,安全人員建議升級內核版本并更改相關的用戶憑據(jù)。對于Windows問題,安全人員建議將防病毒軟件升級到最新版本,這樣可以更好地隱藏 web 控制臺密碼。對于這兩個例子,紅隊評估人員建議改變組織安全態(tài)勢的真正弱點。在這兩種情況下,一個非常強大的管理工具應該與其他機器“隔離開來”,并且還應該使用它自己的身份驗證(特定于管理軟件機器本身)。像這種特權機器的分離才是真正的問題;其他漏洞只允許評估人員訪問它們。這并不是說安全人員的建議不應該被執(zhí)行;那些方案也很重要。但是,紅隊的攻擊思維提出了額外的建議來阻止一般的攻擊,而不是特定的攻擊路徑。
一個更簡單的例子是組織內有一個嚴格的Linux數(shù)據(jù)中心。紅隊通過在一臺機器上獲得root權限訪問并重用同一個root帳戶訪問所有其他Linux服務器來拿下整個數(shù)據(jù)中心的權限。安全團隊只是簡單地禁用了root 到SSH的能力,阻斷了紅隊使用的攻擊路徑。在與藍隊成員進一步的情況介紹中,紅隊告訴他們,他們可以使用另一個用戶遠程登錄,并在本地的每個命令行窗口中“切換到root”,以安裝他們需要的任何工具,因為root帳戶密碼在每臺機器上都保持不變。紅隊建議禁止使用SSH的用戶切換到root,或者在不同的服務器上更改root憑據(jù),以防止憑據(jù)重用。
最后一個例子說明了藍隊和紅隊給出的緩解建議之間的區(qū)別,以及兩者作為紫隊工作的好處。這個例子涉及到二進制文件的執(zhí)行。在一個簡短的發(fā)言中,紅隊強調了在攻擊過程中,他們能夠使用Windows機器上的計劃任務執(zhí)行一個 .exe 工具。防守者提出,他們將為使用scheduled tasks 工具啟動新的。exe 二進制文件時編寫一個簽名。同樣,這個解決方案是值得的,但它只解決了某個特定的攻擊方法,而不是根本原因。紅隊與安全人員合作,幫助他們理解這一問題,他們可以簡單地編寫一個。dll并通過調度rundll.exe來執(zhí)行,甚至可以使用另一個文件擴展名,如。tlb。所以潛在的問題是,計劃任務被允許使用系統(tǒng)上下文來啟動二進制文件。這個例子也順便說明了紅隊與藍隊一起合作可以減輕威脅本身。
不管是哪一個例子,都應該清楚的是,當組織的安全人員以及具有攻擊性的評估人員共同制定補救和緩解行動的策略時,這是極其有益的。紫隊的執(zhí)行方式只受想象力的限制,每個組織的實施都應該探索利用這一概念的最佳方式,以改善組織的整體安全狀況,提高藍隊和紅隊成員的技能,更好地了解彼此的思維。
總結
本章討論了紫隊的概念、面臨的挑戰(zhàn)以及紫隊演練活動的一些不同類型。各種紫隊類型的獨特優(yōu)點和缺點也都涵蓋在其中,以突出使用它們的最佳情況?,F(xiàn)實生活場景鞏固了本章所傳達的信息。