像黑客一樣思考進而防患于未然

責任編輯:cres

作者:C.J. May

2022-09-27 14:38:08

來源:企業(yè)網D1Net

原創(chuàng)

《孫子兵法》指出“知己知彼,百戰(zhàn)不殆。” 當開發(fā)人員加入藍隊時,需要了解必須保護的系統(tǒng)以及需要注意的配置。新的漏洞和攻擊路徑不斷被發(fā)現(xiàn),而且似乎需要做越來越多的事情。但是,有時需要超越漏洞列表,將自己置于網絡攻擊者的位置。

網絡攻擊者如何利用泄露的憑據(jù)?可以通過想象合理的攻擊場景來回答這個問題。第一種情況:在Docker映像中找到RSA私鑰。
 
安全服務商不僅會剖析網絡攻擊者可以做些什么來獲取憑據(jù),還會剖析他們在獲得初始訪問權限后會做些什么,并介紹不同的威脅場景,講述黑客的攻擊故事,而這些故事或者基于真實事件,或者是合理的理論。
 
查找泄露的TLS私鑰
 
對于這種威脅場景,將探索嵌入到容器映像中的秘密的潛在濫用;特別是TLS證書中使用的RSA私鑰。在這一場景中,Poor Corp公司使用Docker Hub來公開托管他們的容器鏡像。黑客掃描Docker Hub的圖像以查找在構建過程中添加到容器中的秘密。就在那時,他們偶然發(fā)現(xiàn)了Poor Corp公司的原有的GitLab容器鏡像。
 
黑客發(fā)現(xiàn)了幾個添加到圖像層的文件,擴展名為.crt和.key。當黑客下載圖像并檢查.key文件的內容時,他們會看到以下內容:
 
-----BEGIN RSA PRIVATE KEY-----
 
... (valid key contents) ...
 
-----END RSA PRIVATE KEY-----
 
然后,黑客檢查證書。該證書是通配符TLS證書,對Poor Corp公司域的所有子域均有效。在構建GitLab映像時,Poor Corp公司添加了他們的TLS證書和私鑰,以便企業(yè)的開發(fā)人員能夠從內部網絡外部訪問GitLab。
 
偽裝成Poor Corp公司
 
既然黑客有了通配符證書,他們就可以冒充Poor Corp公司的域。但是要做到這一點,他們還需要將Poor Corp公司的一個子域訪問黑客控制的計算機。是時候進行一些DNS篡改了。
 
黑客有幾個不同的選擇。如果Poor Corp是像谷歌這樣的知公司,黑客可以帶著WiFi Pineapple(這是一個使網絡攻擊者能夠通過設置惡意無線接入點竊取用戶數(shù)據(jù)的設備)去繁忙的地方,并欺騙他們的單點登錄(SSO)在強制門戶中。任何連接到惡意設備的人都會看到他們的憑據(jù)被盜。不幸的是,對于黑客來說,Poor Corp公司并沒有像谷歌那樣普遍用于身份驗證。相反,黑客發(fā)現(xiàn)了一個不同的攻擊媒介:子域接管。
 
知道他們可以欺騙Poor Corp公司的任何子域之后,黑客立即開始檢查Poor Corp.公司域上的所有DNS記錄。很快,他們找到了一條指向GitHub頁面的A記錄(“A”代表“地址”)。Poor Corp公司最近從GitLab遷移到了GitHub,他們將演示網站的代碼放在GitHub存儲庫中,并與GitHub頁面一起發(fā)布。
 
Poor Corp公司刪除了他們的GitHub 頁面測試存儲庫,但忘記清理指向它的DNS記錄。黑客啟動了一個新的GitHub帳戶,創(chuàng)建了Poor Corp公司的SSO的克隆,添加了泄露的TLS證書和密鑰,并在GitHub頁面上發(fā)布了該克隆。當他們設置GitHub頁面時,他們將其配置為具有廢棄A記錄的子域?,F(xiàn)在,網絡攻擊者控制了Poor Corp公司的子域,并且擁有了一個有效的TLS證書。
 
使用SSO克隆,黑客向Poor Corp公司的幾個IT管理員發(fā)送了一封魚叉式網絡釣魚電子郵件。兩位管理員都在有效域中被欺騙,并且網絡攻擊者現(xiàn)在在Poor Corp公司的網絡中擁有特權憑據(jù)。從那里開始,網絡攻擊者可以在網絡中隱藏并尋找高價值目標,同時偽裝成管理員。最終,黑客可以竊取Poor Corp公司的寶貴數(shù)據(jù)并部署勒索軟件。
 
吸取的教訓
 
現(xiàn)在介紹了完整的場景,以下了解哪里出了問題。
 
首先是泄露的TLS私鑰。Poor Corp公司將他們的通配符證書添加到他們的GitLab映像中,但他們認為一旦發(fā)布在Docker Hub上,任何人無法從Docker映像中竊取私鑰。與其在構建容器時將敏感文件和硬編碼環(huán)境變量添加到容器中,Poor Corp公司應該使用運行時環(huán)境變量和掛載的卷來將秘密傳遞到容器中,Git Guardian的機密檢測CLIggshield已經用于掃描Docker映像的命令。如果人們發(fā)現(xiàn)自己也犯了這個錯誤,則需要立即撤銷任何暴露的證書或憑證。
 
Poor Corp公司做錯的另一件事是忘記了被遺棄的GitHub Pages DNS記錄。在GitHub頁面上發(fā)布的站點將始終使用相同的IP地址:
 
·185.199.108.153
 
·185.199.109.153
 
·185.199.110.153
 
·185.199.111.153
 
當A記錄指向GitHub頁面時,對該子域的任何請求都將轉到GitHup repo配置的子域。由于Poor Corp公司放棄了其GitHub頁面存儲庫,它為黑客敞開了大門,讓他們可以創(chuàng)建自己的具有相同子域的域。子域接管并不是什么新鮮事,隨著技術的發(fā)展,總會有新的方法來利用它們。使公共DNS記錄保持最新始終是至關重要的。
 
希望這個場景能讓用戶在自己的運營環(huán)境中進行一些調查,并激發(fā)對容器和代碼安全性的興趣。暴露的憑證是威脅參與者的一個巨大的初始訪問向量。作為防御者,需要了解憑據(jù)可能被泄露的新方式,并且還需要領先于攻擊者,切斷他們在發(fā)現(xiàn)泄露的機密后可能采取的攻擊途徑。
 
關于企業(yè)網D1net(r5u5c.cn):
 
國內主流的to B IT門戶,同時在運營國內最大的甲方CIO專家?guī)旌椭橇敵黾吧缃黄脚_-信眾智(www.cioall.com)。同時運營18個IT行業(yè)公眾號(微信搜索D1net即可關注)。
 
版權聲明:本文為企業(yè)網D1Net編譯,轉載需注明出處為:企業(yè)網D1Net,如果不注明出處,企業(yè)網D1Net將保留追究其法律責任的權利。

鏈接已復制,快去分享吧

企業(yè)網版權所有?2010-2024 京ICP備09108050號-6京公網安備 11010502049343號