我們正處于云計(jì)算時(shí)代,虛擬服務(wù)器和存儲(chǔ)空間等資源通常根據(jù)需要通過(guò)部署腳本以編程方式進(jìn)行配置。盡管剝離這類資產(chǎn)幾乎是一個(gè)立竿見(jiàn)影的過(guò)程,但在不再需要它們時(shí)將其移除并不是那么簡(jiǎn)單。簡(jiǎn)單地刪除云資產(chǎn),而不確保你的公司刪除了可能指向它們的所有記錄,無(wú)論是在你的域的DNS區(qū)域中還是在你的代碼庫(kù)中,都可能會(huì)為攻擊者打開(kāi)嚴(yán)重的安全漏洞進(jìn)行攻擊。
想象一下這樣的場(chǎng)景:你想要為你的客戶運(yùn)行一個(gè)特殊的節(jié)日活動(dòng),并且你決定為它創(chuàng)建一個(gè)微型站點(diǎn)來(lái)托管所有的促銷材料、注冊(cè)表單等。你的開(kāi)發(fā)人員開(kāi)始工作,他們?cè)O(shè)計(jì)網(wǎng)站,他們?cè)贏WS或任何云計(jì)算服務(wù)上配置一個(gè)新的虛擬服務(wù)器來(lái)托管它,以及一個(gè)存儲(chǔ)桶來(lái)存儲(chǔ)網(wǎng)站的數(shù)據(jù)。
云服務(wù)提供商將從其可重復(fù)使用的IP地址池中為你的EC2實(shí)例分配一個(gè)可公開(kāi)訪問(wèn)的IP地址,并將在其域-Bucket-name下為你的存儲(chǔ)桶分配一個(gè)主機(jī)名——s3.Region-code.amazonaws.com——這樣你就可以通過(guò)API訪問(wèn)它。
用戶需要訪問(wèn)你的站點(diǎn)和搜索引擎,而機(jī)器人需要對(duì)其進(jìn)行索引,因此下一步是在你的主域名上為其創(chuàng)建一個(gè)子域,并將其指向IP地址,以便可以從你的子域訪問(wèn)Web服務(wù)器,然后,為S3存儲(chǔ)桶創(chuàng)建一個(gè)子域,并創(chuàng)建一條DNS CNAME記錄,將其指向存儲(chǔ)桶的AWS主機(jī)名。假設(shè)你還有一個(gè)移動(dòng)應(yīng)用程序?qū)?shù)據(jù)發(fā)送到該競(jìng)選網(wǎng)站,因此主機(jī)名也會(huì)成為該應(yīng)用程序的代碼。由于統(tǒng)計(jì)數(shù)據(jù)跟蹤或數(shù)據(jù)庫(kù)備份等原因,你還有其他內(nèi)部應(yīng)用程序和工具需要與網(wǎng)站集成。
你現(xiàn)在創(chuàng)建的是位于不同位置的大量記錄,這些記錄實(shí)質(zhì)上是臨時(shí)的云資源。如果你曾經(jīng)刪除這些云資產(chǎn),因?yàn)樗鼈円呀?jīng)達(dá)到了它們的目的,但你沒(méi)有同時(shí)刪除你的開(kāi)發(fā)人員和基礎(chǔ)設(shè)施工程師為它們創(chuàng)建的記錄,那么你就產(chǎn)生了很大的風(fēng)險(xiǎn)。
攻擊者可以使用你的子域進(jìn)行釣魚(yú)網(wǎng)站、惡意軟件傳播
攻擊者可以從亞馬遜獲得相同的IP地址,因?yàn)樗F(xiàn)在是免費(fèi)的,并且他們有你的子域指向它,因此他們可以創(chuàng)建釣魚(yú)站點(diǎn)或惡意軟件服務(wù)站點(diǎn)。他們可以使用相同的名稱注冊(cè)S3存儲(chǔ)桶,因?yàn)樗麄冊(cè)谀愕膽?yīng)用程序代碼中發(fā)現(xiàn)了一個(gè)引用,現(xiàn)在你的應(yīng)用程序正在向他們擁有的存儲(chǔ)桶發(fā)送敏感數(shù)據(jù)。
這是TikTok安全工程師Abdullah Al-Sultani最近在布加勒斯特DefCamp安全會(huì)議上介紹的場(chǎng)景。他將這次襲擊稱為“云遵守”。它不僅僅是DNS記錄,因?yàn)橐坏┵~戶關(guān)閉,進(jìn)行資源和名稱重新分配的云服務(wù)的類型和數(shù)量非常廣泛。公司越大,這個(gè)影子云記錄問(wèn)題就越大。
大型企業(yè)更難識(shí)別云風(fēng)險(xiǎn)
在TikTok通過(guò)其漏洞賞金計(jì)劃收到報(bào)告后,al-Sultani遇到了云蹲守的情況,報(bào)告涉及記者接管TikTok子域名。他的團(tuán)隊(duì)很快意識(shí)到,試圖找到所有過(guò)時(shí)的記錄將是一項(xiàng)嚴(yán)肅的任務(wù),因?yàn)門ikTok的母公司字節(jié)跳動(dòng)在世界上許多國(guó)家擁有超過(guò)10萬(wàn)名員工以及開(kāi)發(fā)和基礎(chǔ)設(shè)施團(tuán)隊(duì),它還在不同地區(qū)為其不同的應(yīng)用程序提供了數(shù)千個(gè)域名。
為了解決這個(gè)問(wèn)題,TikTok安全團(tuán)隊(duì)構(gòu)建了一個(gè)內(nèi)部工具,該工具遍歷該公司的所有域名,通過(guò)向發(fā)送HTTP或DNS請(qǐng)求來(lái)自動(dòng)測(cè)試所有CNAME記錄,識(shí)別指向AWS、Azure、Google Cloud和其他第三方服務(wù)提供商等云提供商的IP范圍的所有域和子域,然后檢查這些IP記錄是否仍然有效并分配給TikTok。幸運(yùn)的是,該公司已經(jīng)在一個(gè)內(nèi)部數(shù)據(jù)庫(kù)中跟蹤云提供商分配給其資產(chǎn)的IP地址,但許多公司可能不會(huì)進(jìn)行這種類型的跟蹤。
Sultani并不是第一個(gè)強(qiáng)調(diào)蹲守云層的危險(xiǎn)的人。去年,賓夕法尼亞州立大學(xué)的一組研究人員通過(guò)在亞馬遜的美國(guó)東部地區(qū)部署300萬(wàn)臺(tái)EC2服務(wù)器來(lái)分析公共云上IP重復(fù)使用的風(fēng)險(xiǎn),這些服務(wù)器獲得了150萬(wàn)個(gè)唯一的IP地址,約占該地區(qū)可用池的56%。在進(jìn)入這些IP地址的流量中,研究人員發(fā)現(xiàn)了金融交易、GPS位置數(shù)據(jù)和個(gè)人身份信息。
研究人員在他們的研究論文中表示:“我們確定了四類云服務(wù)、七類第三方服務(wù)和域名系統(tǒng)作為可利用的潛在配置來(lái)源。我們發(fā)現(xiàn),可利用的配置很常見(jiàn),而且在許多情況下極其危險(xiǎn)。在七類第三方服務(wù)中,我們確定了跨越數(shù)百臺(tái)服務(wù)器(例如數(shù)據(jù)庫(kù)、緩存、移動(dòng)應(yīng)用程序和Web服務(wù))的數(shù)十個(gè)可利用的軟件系統(tǒng)。最后,我們確定了覆蓋231個(gè)eTLD的5446個(gè)可利用域名——其中105個(gè)在前10000個(gè)域名中,23個(gè)在前1000個(gè)熱門域名中?!?
繼承自第三方軟件的云計(jì)算風(fēng)險(xiǎn)
云蹲守問(wèn)題的風(fēng)險(xiǎn)甚至可以從第三方軟件組件繼承。6月,來(lái)自Checkmarx的研究人員警告說(shuō),攻擊者正在掃描NPM包,以尋找對(duì)S3存儲(chǔ)桶的引用。如果他們發(fā)現(xiàn)一個(gè)不再存在的存儲(chǔ)桶,他們會(huì)注冊(cè)它。在許多情況下,這些包的開(kāi)發(fā)人員選擇使用S3存儲(chǔ)桶來(lái)存儲(chǔ)在包安裝期間下載和執(zhí)行的預(yù)編譯二進(jìn)制文件。因此,如果攻擊者重新注冊(cè)被放棄的存儲(chǔ)桶,他們可以在信任受影響的NPM包的用戶的系統(tǒng)上執(zhí)行遠(yuǎn)程代碼執(zhí)行,因?yàn)樗麄兛梢酝泄茏约旱膼阂舛M(jìn)制文件。
在一個(gè)類似的例子中,今年早些時(shí)候,Aqua Security的研究人員表明,攻擊者可以重新注冊(cè)已被刪除或重命名的GitHub存儲(chǔ)庫(kù)。如果應(yīng)用程序或文檔仍然指向它們,則可以使用它們來(lái)提供惡意軟件,研究人員將這種攻擊稱為RepoJack。
降低云蹲守風(fēng)險(xiǎn)
攻擊面非常大,但公司需要從某個(gè)地方開(kāi)始,越快越好。IP重用和DNS方案似乎是最普遍的,可以通過(guò)以下幾種方式緩解:使用云提供商保留的IP地址,這意味著在公司顯式釋放它們之前,它們不會(huì)被釋放回共享池,通過(guò)將它們自己的IP地址傳輸?shù)皆疲?dāng)用戶不需要直接訪問(wèn)這些服務(wù)器時(shí),通過(guò)在服務(wù)之間使用私有(內(nèi)部)IP地址,或者通過(guò)使用由云提供商提供的IPv6地址,因?yàn)樗鼈兊臄?shù)量太大,不太可能永遠(yuǎn)被重復(fù)使用。
公司還應(yīng)該執(zhí)行一項(xiàng)策略,防止在應(yīng)用程序中對(duì)IP地址進(jìn)行硬編碼,而應(yīng)該對(duì)其所有服務(wù)使用DNS名稱。他們應(yīng)該定期維護(hù)這些記錄并刪除陳舊的記錄,但讓所有東西都可以通過(guò)DNS尋址提供了一個(gè)中央管理位置,而不是追查硬編碼的IP地址。