當你在AWS上部署基礎設施時,你可以啟動EC2實例,這些實例有一個與它們相關的IP。當你創建指向這些IP的DNS記錄,但在EC2實例被賦予一個新IP或被銷毀後忘記刪除DNS記錄時,你很容易受到子域劫持攻擊。
研究人員已經創建了一個名為Ghostbuster的工具,它的工作原理是枚舉與你擁有的每個AWS 賬戶關聯的所有彈性/公共IP,然後檢查是否有任何DNS 記錄指向你不擁有的任何彈性IP AWS 賬戶。請務必注意,此工具要求你完全覆蓋你的AWS 賬戶,以避免誤報。
關於如何設置和使用該工具的進一步說明可以在Github repo的README文件中找到。
在過去的十年裡,很多公司都切實採用了AWS、Azure和GCP等雲服務提供商,快速構建基礎設施,以滿足不斷增長的業務需求。遷移到雲原生架構給採用它的組織帶來了許多挑戰,從雲攻擊面的可見性到雲特定的安全漏洞。
雖然主要的雲服務提供商確實提供了許多安全方面的好處,但當涉及到安全時,它們都是在“共享責任”的模式下運行的。研究人員已經在AWS中看到了大量的配置錯誤漏洞,包括Route53 劫持、Cloudfront 劫持、ELB 劫持,以及現在的Elastic IP 劫持。這些錯誤配置被認為是屬於共享責任模型的客戶方,雖然AWS最終在其平台上部署了Route53、Cloudfront和ELB劫持的緩解措施,但這些漏洞被利用了好幾年。
值得注意的是,AWS並不是唯一一個在這些漏洞上存在漏洞的公司,微軟Azure和谷歌云平台在其基於雲的產品中也面臨著這一漏洞,許多其他雲提供商也是如此。
隨著雲攻擊面的快速擴展和流動性的增加,很難獲得對這些風險的可見性,尤其是在規模上。再加上雲提供商在部署緩解他們認為應該是共享責任模型中客戶方面的漏洞時行動緩慢,許多組織都在努力控制這些錯誤的配置漏洞。
為此安全公司Assetnote開源一個名為Ghostbuster的工具,Ghostbuster 是一款自動化瀏覽器測試工具,基於phantomjs,意味著你得到一個真正的瀏覽器,一個真正的DOM,仿真測試環境,可用於修復AWS環境中潛在的懸掛彈性IP(dangling elastic IP)漏洞。
什麼是懸掛彈性IP漏洞?當你將基礎設施部署到AWS 時,你可能會啟動具有關聯IP 的EC2 實例。當你創建指向這些IP 的DNS 記錄,但在EC2 實例被賦予新IP 或被銷毀後忘記刪除DNS 記錄時,你很容易受到子域劫持攻擊。
關於彈性IP劫持已經做了大量的研究,攻擊者可能會不斷地聲稱彈性IP,直到他們獲得與目標公司的子域名相關聯的IP。
雖然AWS經常會禁止試圖執行這種攻擊模式的賬戶,但AWS還沒有發布修復方案。
懸掛彈性IP子域劫持攻擊的影響比典型的子域劫持更嚴重,在子域劫持中,你只能控制所服務的內容。通過懸掛的彈性IP劫持,攻擊者可能還會進行如下操作:
通過ACME TLS 質詢為子域申請SSL 證書;
監聽所有端口上的流量(可能發現敏感信息仍在發送到子域);
運行具有竊取HTTPOnly cookie 能力的服務器端腳本,當cookie 範圍為*.domain.com 時,通常會導致一鍵式帳戶劫持攻擊;
研究人員並不是第一個注意到這個漏洞的人,最早關於彈性IP劫持的文章可以追溯到2015年,作者是Matthew Bryant。
自2015年以來,許多人嘗試了與Matthew類似的解決方案,他們堅持使用彈性IP分配和釋放的方法,直到他們找到目標公司使用的彈性IP。
其他PoC包括EIP Fish和Flying a False Flag - Cloud Racoon。
值得注意的是,一些漏洞賞金獵人對懸掛彈性ip的漏洞進行了大量研究。除了通過漏洞獎勵計劃或購買像安全平台(能夠主動檢測此漏洞)這樣的產品的公司之外,對於這些攻擊,研究人員唯一的保護措施就是AWS禁止他們認定的執行彈性IP劫持的賬戶。不幸的是,禁止賬戶並不是一個可行的解決方案。
AWS是如何處理這個漏洞的?研究人員已經與AWS的各個團隊就這個漏洞進行了多次討論,並試圖構建工具,以幫助該企業找到並緩解懸掛彈性IP劫持。
從歷史上看,AWS採取的方法是將這種行為有效地視為對其公共API 的濫用,並簡單地禁止那些分配或釋放彈性IP 過快的賬戶,或者AWS認為是濫用的模式。雖然這在一定程度上(特別是在規模上)提高了攻擊的門檻,但這並不是有效的長期緩解根本漏洞的辦法。
AWS表示,他們正在努力緩解這一漏洞,但這項緩解措施的具體細節和實施表仍不清楚。
就目前而言,這些技術仍然可行。
使用Ghostbuster緩解Ghostbuster是一款自動化瀏覽器測試工具,基於phantomjs,意味著你得到一個真正的瀏覽器,一個真正的DOM,仿真測試環境。
這個漏洞普遍存在,受此攻擊載體影響的組織數量不斷增加,因為公司繼續將更多的服務遷移到公共雲,特別是AWS。在關閉EC2實例後沒有刪除DNS記錄,這是一個很容易被引用的漏洞,並且由於自動配置而變得更加嚴重。
在AWS發布任何官方修復之前,研究人員建議你查看其新發布的開源工具Ghostbuster,它可以用來檢測潛在的懸掛彈性ip。
你可以通過運行:pip3 install ghostbuster 來安裝該工具,然後通過使用ghostbuster 命令來使用該工具。
該工具的工作原理是枚舉與你擁有的每個AWS帳戶相關的所有彈性/公共ip,然後檢查是否有任何DNS記錄指向你的任何AWS帳戶中不擁有的彈性ip。需要注意的是,該工具要求你完全覆蓋你的AWS帳戶,以避免誤報。
該工具對用戶非常友好,並使用你的.aws/config和.aws/憑據文件來遍歷每個配置的帳戶並執行處理。
此外,如果你使用Cloudflare 而不是Route53 來管理你的DNS,該工具還與Cloudflare 集成,以提取區域和關聯的DNS 記錄以進行分析。
如果你不使用Route53或Cloudflare來管理你的DNS區域,你可以向該工具(CSV)提供手動輸入。也可以配置Slack的webhook,以便該工具在檢測到潛在的劫持時發送通知。
該工具的設計方式使其可以頻繁地作為cron 作業運行,從而通知你隨時可能出現的潛在彈性IP劫持。
使用該工具時可以使用以下選項:
該工具的輸出如下所示:
關於如何設置和使用該工具的更多說明可以在我們的Github repo for Ghostbuster中的README 文件中找到。
總結大規模管理雲架構的安全性可能很困難,公司在EC2資源被破壞後留下DNS記錄是非常普遍的。
與僅能控制頁面內容的典型子域劫持攻擊不同,彈性IP劫持的風險要高得多,攻擊者能夠聲稱SSL證書,偵聽流量,並在海量cookie範圍的情況下執行帳戶劫持攻擊。
AWS 的預期緩解措施的細節及其發布的時間表仍不清楚。與此同時,你可以使用Ghostbuster在AWS環境中獲取懸掛的彈性ip。
Recommended Comments