sre8 sre10
「我們不能再在無狀態的世界中設計基於狀態的安全性。」 —雷納特
「我們形成了假設,但我們從未對其進行過檢驗。」 —伯格斯特倫
在過去的幾年中,devops,混亂工程和站點可靠性工程(sre)在全球工程界發生了根本性的變化。 安全工程學科已通過devsecops,堅固的devops和其他名稱變體逐漸進入devops。 本文的目的是將混亂的工程和sre應用於網路安全領域,目的是分享我們在旅途中收集到的見解,並向社群提出挑戰,以不同的方式思考安全系統的設計方式。
就像建築物周圍的圍欄一樣,基本的安全控制措施只能起到威懾作用:就像圍欄可以輕鬆突破一樣,憑證和訪問也可以輕鬆實現。 入侵者確定如何獲得訪問許可權後,他們就可能對整個建築物擁有自由統治權。 為了防止這種情況,現代建築設有安全門,限制進入的電梯和內建攝像頭系統。 最安全的地板還包括特別大堂,甚至還有武裝警衛。 系統安全性應採用類似的方法進行設計:限制對api路徑的訪問,允許輕鬆阻止請求,將授權的操作和參與者列入白名單以及對所有流量和儲存進行加密。 就像試圖訪問建築物的未經授權的訪客一樣,不屬於系統的請求也應被標記並停止。
即使現代軟體變得越來越分散,快速迭代並且主要是無狀態的,今天的安全性方法仍然主要是預防性的,有針對性的並且依賴於時間狀態。 它缺乏使現代產品交付成功的快速迭代反饋迴圈。 在產品環境的變化與確保其安全的機制之間應該存在相同的反饋環。 安全措施應具有足夠的迭代性和敏捷性,以根據其執行所在的軟體生態系統的頻率來更改其行為。
安全控制項的設計通常考慮到特定的狀態(即,第0天的生產版本)。 同時,圍繞這些控制項的系統生態系統每天都在swift變化。 微服務,機器和其他元件在不斷旋轉。 通過連續交付,元件更改一天會發生多次,外部api會根據自己的交付時間表不斷變化,等等。安全工具和方法必須足夠靈活,以適應環境中的不斷變化和迭代。 沒有安全反饋迴路,系統最終將陷入安全故障,就像沒有開發反饋迴路的系統會陷入不可靠的執行準備狀態一樣。
在現代分布式系統中,不斷變化的無狀態變數使得幾乎不可能了解系統在任何給定時刻的運**況。 解決此問題的一種方法是通過強大的系統儀表和監視。 您可以將安全檢測分為兩個主要的儲存桶:測試和試驗。 測試是對先前已知結果的驗證或評估,或者簡單地說:在尋找結果之前,我們先知道要尋找的是什麼。 實驗試圖獲得以前未知的新見解和資訊。
「如果您還沒有嘗試過,那就假設它壞了。」 - 未知
「沒有計畫能夠在與敵人第一次接觸中倖存下來。」 - 赫爾穆特·毛奇麵包車
sre的兩個主要職責是量化對其維護系統的信心,並提高對系統預期效能的信心。 置信度可以通過過去的表現來衡量,並可以通過了解未來的可靠性來**。 全面的測試有助於以足夠的細節來**將來的結果,以使其實用和有用。 測試和實驗涵蓋的系統越完整,不確定性和潛在的系統不可靠性就越小。 通過足夠的測試,您可以在系統可靠性降至可接受水平以下之前進行更多更改。
這些相同的測試和檢測方法也適用於安全性實驗。 google的sre核心原則之一是「實踐,實踐,實踐」。 重要的是,不僅要通過一致且嚴格的測試來增加系統內的反饋迴圈,而且還要確保團隊在需要時已做好運營準備和戰鬥力。
將安全故障事件注入系統有助於確保抵禦我們已知的由人為因素造成的漏洞。 與雇用安全顧問闖入高層建築類似,我們一直在測試我們快速識別和修復隱患的能力。 我們努力映象生產安全控制平面中可能發生或歷來發生的安全失敗模式,並尋找在受控環境下模擬這些失敗模式的方法。 sre,產品團隊和安全團隊應實施安全控制並對他們的服務進行編碼,以承受潛在的故障,並在必要時適當降級而不會影響業務。 常見的sre格言是手動執行一次,第二次自動執行。 sre的主要功能是致力於自動化以改善系統。 通過繼續執行安全性實驗,我們可以在生態系統陷入危機之前主動評估和改善此類漏洞。
從歷史上看,將混沌工程應用到網路安全中一直關注於人為因素和系統故障如何直接影響系統安全。 發現安全故障的最常見方法是觸發安全事件。 到這個時候,通常為時已晚,並且已經造成損壞。 我們必須採取更積極的態度。 將這兩個學科結合在一起就導致了安全性實驗,我們希望這將成為發展學習文化的基礎,該文化圍繞組織如何構建,操作,檢測和保護其系統而進行。
在設計安全系統的過程中認識和**故障已經從根本上挑戰了我們所知道的系統運作方式,即使無法展開。 在探索這一新領域時,我們將繼續分享我們的發現。
[請參閱我們的相關故事《 安全混亂工程:網路安全的新範例》 。
翻譯自:sre8 sre10
國際化的SRE
sre在ae的定義僅僅指與可用性相關,當它指一種技術方面時,是指原來的穩定性的概念 當它用來指團隊時,是指各技術團隊負責穩定性的同學組成的虛擬團隊,類似於原來的穩定性小組。因此寫作目的有兩個 一 隨著集團國際化的必然趨勢,以及國際化的共同技術特點,期望能將經驗輸出給集團,甚至是sre的一些工具直接賦...
SRE的七層質量
sre site reliability engineering sre是指site reliability engineer 可靠性工程師 他是軟體工程師和系統管理員的結合,乙個sre工程師基本上需要掌握很多知識 演算法,資料結構,程式設計能力,網路程式設計,分布式系統,可擴充套件架構,故障排除。...
SRE二面面經分享(9 18)
面試官人很好。面試時間1小時。1.自我介紹 2.docker和k8s裡面的網路 3.tcp中的mss 4.問的專案裡面的東西 5.問了你對sre的理解 看過sre後你的理解是什麼。6.硬鏈結是怎麼實現跨系統的 7.linux中刪除乙個檔案是什麼原理 用到的是哪個許可權。8.linux中的正則和通配的...