如何透過 DevSecOps 避免災難性的資料洩露
今年稍早,特斯拉的雲端被劫持用於挖掘加密貨幣,利用公司 Kubernetes 集群中的漏洞。最近,大量的 FedEx 數據被曝光,影響了 119,000 人。Equifax 的洩露事件在估計有 1.455 億美國人受到威脅後,引起了國際關注。另外,我們報導了 Vine Docker 註冊中心的醜聞是如何被黑客攻擊的,留下了令人尷尬的公關痕跡。
這些情境中有什麼共同點?它們本可以透過基本的安全防護措施來避免,而這些措施正是 DevSecOps 理念的基石。讓我們回顧一下,開發人員可以採取哪些具體策略來避免如此可怕的洩露。
基本的 DevSecOps 可以防範漏洞
DevSecOps 被描述為將安全性置於每一個行動的最前線。在雲端工具的世界中,這意味著在構建生命週期的每一點注入保護措施。你可能會認為,這等同於高級的容器和編排安全性、強大的訪問管理以及為內部應用程序建立加強監督,對吧?實際上,許多現代的漏洞簡單地涉及到基本密碼保護的缺失。
案例研究一:特斯拉雲端 Cryptojacking
在 2018 年中,特斯拉的亞馬遜伺服器被惡意軟件劫持,用於為惡意代理挖掘加密貨幣。Gemalto、Aviva 等公司也發生了類似的 cryptojacking 事件。根據 RedLock 的報告,黑客滲透了未設密碼保護的 Kubernetes 控制台。在一個 pod 中,他們找到了進入特斯拉 AWS 環境的訪問憑證。這次洩露暴露了敏感的遙測數據,雖然據特斯拉稱,這些數據僅限於“內部使用的工程測試車”。
如何預防
這裡一個明顯的教訓是,為 Kubernetes 管理控制台設置密碼保護。即使是內部使用的雲賬戶,也必須更好地裝備,並將訪問憑證隔離。當然,培養“安全設計”心態可以幫助限制這類可訪問控制台的數量。
案例研究二:Vine 註冊中心洩露
2016 年,一位化名為 avicoder 的白帽黑客成功滲透 Vine,這是一個視頻分享社交網絡。該黑客使用工具發現子域,在其中一個 — https://docker.vineapp.com — 發現了一個開放的 Docker 私有註冊中心,裡面存有 Vine 的源代碼。這樣的漏洞本可以用來收集用戶詳情或注入惡意軟件。幸運的是,沒有用戶受到影響,Twitter Bug 賞金計劃為 avicoder 的發現頒發了一筆可觀的獎金。
如何預防
在這個特定事件中,Docker 或 Docker 容器本身沒有錯誤。這項服務(本應為私有)僅僅是被公開,且缺乏訪問控制。教訓是,世界上的 URL 就是這樣—對世界公開。如果沒有文檔鏈接到它們,這並不重要;這樣的子域使用爬蟲很容易發現,如果被發現將會被利用。
案例研究三:Equifax 漏洞
在 Equifax 的洩露事件中,數百萬客戶記錄被盜。Equifax 的報告指出,黑客利用了“網站應用程序漏洞”。進一步的報告詳述,2017 年的洩露利用了 Apache Struts 的缺陷,很可能通過零日攻擊,根據 Apache Struts 項目管理委員會的說法。
如何預防
對於 Kubernetes 管理控制台實施密碼保護是一個顯而易見的教訓。所有雲帳戶,即使是內部使用的,也必須配備得更好,並將訪問憑證隔離。無疑,灌輸“安全設計”思維方式可以幫助限制這樣可訪問控制台的數量。
案例研究二:Vine 註冊中心遭破壞
2016年,一位化名為 avicoder 的白帽黑客成功滲透了 Vine 這個視頻分享社交網絡。黑客使用工具發現了子域名,在一個子域名 — https://docker.vineapp.com — 背後發現了一個公開的 Docker 私有註冊中心,其中存有 Vine 的源代碼。這樣的漏洞本可以被用來收集用戶信息或注入惡意軟件以達到惡意目的。幸運的是,沒有用戶受到威脅,Twitter Bug 賞金計劃為 avicoder 的發現獎勵了一筆可觀的金額。
如何預防
在這個特定事件中,Docker 或 Docker 容器本身並無錯誤。這項服務(原本應為私有)卻被公開且缺乏訪問控制。教訓是,世界廣泛網上的 URL 就是那樣 —— 對全世界公開。不論是否有文檔鏈接到它們,這樣的子域名使用爬蟲很容易發現,一旦被發現就會被利用。
案例研究三:Equifax 漏洞利用
在 Equifax 的洩露事件中,數百萬客戶記錄被盜。Equifax 的報告指出,黑客利用了一個“網站應用程序漏洞”。進一步的報告詳細說明了 2017 年的洩露利用了 Apache Struts 的缺陷,可能通過零日利用進行,根據 Apache Struts 項目管理委員會的說法。
如何預防
有些人指出,Apache Struts 應用程序中固有的不受信數據反序列化留下了一些重大漏洞,可能會導致惡意代碼執行。
由於容器的壽命短暫且不持久,因此使得持續性黑客攻擊變得更加困難。它們還可以隔離功能,從而減少攻擊面。關於 Equifax 洩露,Aquasec 推測使用容器可能會減少影響:
“這樣的洩露如果使用容器,可能會更加困難,如果成功,其持續性會更低,影響範圍不會那麼廣泛,並且會更快得到緩解。”
一些人認為,如果配備了行為分析和網絡連接的防火牆,容器可以成為一股強大的力量。然而,其他人指出假設容器更安全是有缺陷的。
無論架構如何,在 DevSecOps 中,客戶數據的安全不是被排到後面;而是融入到整個工具過程中,並在每次構建中都占有同等重要的地位。
灌輸 DevSecOps 文化
DevSecOps 尋求將安全提升到每一個決策中,而不是先構建現在、以後再安全的態度。在每次構建中,都會更深入地考慮到數據處理方式的後果,並將安全與之融合。
Kubernetes 集群的管理控制台必須配備並設置密碼保護,對於私有 GitHub 儲存庫或 Docker 註冊中心也是如此。任何通過雲 SaaS 服務的數據傳遞都必須有授權機制。一個最明顯的教訓是對那些帶有可發現 URL 的“隱藏”註冊中心進行密碼保護。
白帽黑客的賞金計劃繼續引領成功的漏洞檢測。至少對於這些機構來說,有較少的用戶數據被損壞的證據,並且修復工作加快了。
這些都可以通過盡職盡責和培養安全文化來提煉。雖然對一些人來說這聽起來有點空泛,但顯然對於那些不斷降低這些基本安全防護重要性的機構而言,這仍需重申。