身份驗(yàn)證憑證為何如此重要?

gejigeji
隱私管理在保持必要信息的安全和遠(yuǎn)離攻擊者方面起著重要的作用,本文我們就將討論什么是隱私以及如何安全地存儲(chǔ)它們。

隱私管理在保持必要信息的安全和遠(yuǎn)離攻擊者方面起著重要的作用,本文我們就將討論什么是隱私以及如何安全地存儲(chǔ)它們。

隱私管理之所以重要,是因?yàn)槊艽a泄露可能導(dǎo)致嚴(yán)重的數(shù)據(jù)泄露,隨著越來越多的工作數(shù)據(jù)被保存在云端,身份驗(yàn)證的安全就愈發(fā)重要了。

隱私管理在保持必要信息的安全和遠(yuǎn)離攻擊者方面起著重要的作用,良好保密的隱私,如密碼和其他身份驗(yàn)證憑證,在理想情況下允許正確的人員訪問重要資產(chǎn),并將組織受到攻擊的可能性降至最低。然而,隱私也可能是一把雙刃劍,尤其是當(dāng)隱私并沒有像組織愿意相信的那樣隱藏得很好時(shí)。

隱私是什么?

在本文中,術(shù)語“隱私”涉及用于訪問需要身份驗(yàn)證的系統(tǒng)的敏感信息,這包括登錄憑證,如用戶名、電子郵件地址和密碼,以及訪問令牌和私鑰。SolarWinds的漏洞提供了一個(gè)很好的例子,說明了隱私是多么脆弱,因?yàn)楣羯婕笆褂萌趺艽a。

密碼強(qiáng)度

密碼強(qiáng)度可以通過其長度和所使用字母的大小來衡量。使用這些值,我們可以計(jì)算暴力攻擊所需的最大猜測數(shù)。理論上,最大猜測次數(shù)定義為xy,x表示字母中的字符數(shù),y表示密碼中使用的字母數(shù),其結(jié)果將是成百上千億種可能的組合。

然而,這種計(jì)算也有例外。當(dāng)使用字典里的普通單詞時(shí),密碼就更容易被猜出來了。一般來說,當(dāng)密碼從一個(gè)更豐富的字母中使用更多的隨機(jī)字符時(shí),它會(huì)變得更安全。此外,每次重復(fù)使用密碼都會(huì)降低安全性。

1.png

破解給定長度的密碼所需的最大暴力嘗試次數(shù)

不幸的是,長而強(qiáng)的密碼需要記住一長串隨機(jī)字符,這對(duì)用戶來說自然是一個(gè)挑戰(zhàn),特別是考慮到多個(gè)帳戶時(shí)。

2.png

攻擊者使用的密碼字典的示例

即使用戶記住了一個(gè)冗長的密碼,到處使用它的傾向也會(huì)削弱它的強(qiáng)度。密碼重用是另一個(gè)安全風(fēng)險(xiǎn)。在出現(xiàn)漏洞的情況下,重用的密碼會(huì)危及其他服務(wù),從而導(dǎo)致更大的影響。

雖然強(qiáng)大的密碼仍然很重要,但我們不得不質(zhì)疑,這些類型的隱私是否是我們唯一可靠的方式來保護(hù)訪問關(guān)鍵任務(wù)資產(chǎn)和系統(tǒng)。密碼驗(yàn)證方法是登錄的唯一方法嗎?

替代密碼

幸運(yùn)的是,有替代密碼的方法。例如,使用非對(duì)稱加密和私鑰進(jìn)行身份驗(yàn)證已經(jīng)成為安全Shell(SSH)服務(wù)的標(biāo)準(zhǔn),這極大地限制了隱私被暴力猜測的風(fēng)險(xiǎn),并強(qiáng)制要求適當(dāng)?shù)碾[私存儲(chǔ)。

雖然這種方法仍然需要一個(gè)令牌來驗(yàn)證用戶身份,但它對(duì)人類記憶的依賴要小得多。例如,我們還可以使用vault,它將存儲(chǔ)憑證并提供生成隱私的工具。這些工具還可以防止創(chuàng)建弱密碼和密碼重用。

雖然它避免了使用獨(dú)立密碼的缺陷,但在集中式存儲(chǔ)解決方案中保存隱私會(huì)帶來所有憑證和密碼在一次入侵中被破壞的風(fēng)險(xiǎn),并強(qiáng)調(diào)了將此類存儲(chǔ)視為vault的必要性。確保對(duì)這個(gè)vault的訪問是至關(guān)重要的,強(qiáng)烈建議使用生物識(shí)別或多因素認(rèn)證(MFA)授權(quán)作為額外的安全措施。

MFA本身顯著降低了被盜的幾率,即使賬戶的憑證已經(jīng)暴露,因?yàn)樗枰ㄟ^移動(dòng)應(yīng)用程序進(jìn)行另一種身份驗(yàn)證。用戶的手機(jī)和他們的隱私被暴露的概率顯著降低。

3.png

如何處理隱私

到期的隱私

如果你一直使用電腦,你可能在一段時(shí)間后被迫更改密碼。雖然有些人認(rèn)為這是一種不便,但讓隱私過期有一個(gè)很好的理由。隱私可以在一段時(shí)間后被破解,它們的有效期越長,一些攻擊者就越有可能成功地找到方法竊取并泄漏數(shù)據(jù)。

隱私存儲(chǔ)的類型

現(xiàn)在讓我們來談?wù)劥鎯?chǔ)隱私的不同方式。正如我們前面提到的,隱私存儲(chǔ)應(yīng)該被當(dāng)作虛擬vault來處理,因此也就安全了,因?yàn)槠平馑鼘⒃试S攻擊者訪問密碼和與它們相關(guān)的賬戶。

工作流程中必須相互通信的系統(tǒng)數(shù)量正在增加。它們必須安全地這樣做,并且必須首先對(duì)來自其用戶的每個(gè)請(qǐng)求進(jìn)行身份驗(yàn)證。如果用戶不想每次都輸入憑證,或者僅僅記住憑證是不現(xiàn)實(shí)的,那么必須存儲(chǔ)憑證。

有多種方式可以存儲(chǔ)憑證:

1.明文:最不安全的類型,其中對(duì)文件的讀訪問將允許對(duì)系統(tǒng)的訪問。

2.哈希:主要用于服務(wù)器存儲(chǔ)隱私指紋的類型,防止入侵者獲得明文密碼。在這種方式中,研究人員強(qiáng)調(diào)在加密算法之上使用鹽值或另一個(gè)哈希層,以使?jié)撛诘墓粽吒y解密。

3.Encoded:另一種形式的明文,例如base64編碼的憑證,因?yàn)橛胁豢勺x的字符。

4.加密:憑證使用另一個(gè)密碼加密,減少了未經(jīng)授權(quán)的泄漏的可能性和影響。如果不先知道另一個(gè)隱私,一個(gè)能看到加密文件的人將無法解密文件并獲得所需的憑證。

從以上這四種類型中,很容易推斷出哪一種是最有利和最安全的存儲(chǔ)隱私。然而,除了這四種類型之外,當(dāng)存儲(chǔ)憑證時(shí),組織還必須考慮其他可能影響其計(jì)劃的因素。

其他需要考慮的申請(qǐng)

處理隱私存儲(chǔ)的一種方法是使用一個(gè)外部應(yīng)用程序,比如vault。Vault是秘密訪問私密信息的工具,可以幫你管理一些私密的信息,比如API密鑰,密碼,驗(yàn)證等等。Vault提供一個(gè)統(tǒng)一的接口來訪問所有隱私信息,同時(shí)提供嚴(yán)格的訪問控制和記錄詳細(xì)的審計(jì)日志。vault的主要優(yōu)勢在于它以加密的形式存儲(chǔ)隱私的方式,以及它能夠從一個(gè)地方更改隱私,并在不更改代碼的情況下將更改反映到多個(gè)應(yīng)用程序。

但是,對(duì)vault的訪問令牌必須存儲(chǔ)在設(shè)備上或動(dòng)態(tài)獲取。在后一種情況中,通過MFA確認(rèn)的動(dòng)態(tài)訪問令牌是最合適的。因此,MFA不是所有情況下的最佳選擇,特別是對(duì)于高度自動(dòng)化的系統(tǒng)。

明文加密的問題

并不是每個(gè)隱私存儲(chǔ)應(yīng)用程序在默認(rèn)情況下都以加密形式存儲(chǔ)憑證,文檔應(yīng)該驗(yàn)證存儲(chǔ)的隱私是否加密,還應(yīng)該檢查它們,以防止利用錯(cuò)誤配置問題。

在某些情況下,以明文存儲(chǔ)隱私被認(rèn)為是一個(gè)漏洞。一般來說,明文是一種不安全且糟糕的設(shè)計(jì)決策,應(yīng)該重新考慮。我們后面關(guān)于DevOps和云問題的很多討論也是圍繞明文展開的。

4.png

Kubernetes Secrets存儲(chǔ)的示例,默認(rèn)存儲(chǔ)未加密

高度信任

最后,即使隱私信息以加密的形式存儲(chǔ),組織仍然需要在其人員之間實(shí)現(xiàn)和維持一定程度的信任,這是因?yàn)槟承┤巳匀恍枰阑虺钟薪饷苊荑€。

各類組織都應(yīng)知道,隱私必須只有少數(shù)人能接觸到。這意味著只對(duì)有適當(dāng)理由訪問該存儲(chǔ)或系統(tǒng)的用戶或應(yīng)用程序保持讀取權(quán)限。對(duì)隱私進(jìn)行加密會(huì)增加額外的安全性,攻擊者不得不更加努力地破解憑證。

隱私傳送

除了存儲(chǔ)的隱私外,安全性對(duì)于必須配置和需要傳輸?shù)姆?wù)也是必要的。需要強(qiáng)調(diào)的是,移動(dòng)隱私信息是正常的,因此應(yīng)該通過安全(即加密)通道進(jìn)行說明和完成。

安全通道意味著使用默認(rèn)安全的協(xié)議,例如SSH或HTTPS。使用基于純文本的協(xié)議(如HTTP、SMTP、FTP)來傳輸隱私可以允許惡意攻擊者攔截通信并利用泄漏的隱私。

應(yīng)該提到的是,將隱私放入源代碼管理(SCM)系統(tǒng)中也不是一個(gè)好主意,因?yàn)樗o了不必要的更多的人訪問權(quán)限。涉及公共存儲(chǔ)庫的案例給SCM增加了另一層危險(xiǎn)。如果一個(gè)組織堅(jiān)持使用SCM,他們應(yīng)該使用加密隱私的工具(例如,git-secret),以防止將SCM用作供應(yīng)鏈攻擊的入口點(diǎn)的可能性。

隱私的影響

接下來將探討在當(dāng)今開發(fā)技術(shù)(即DevOps和云)的環(huán)境中使用不安全的隱私存儲(chǔ)的含義。我們還簡要描述了一個(gè)真實(shí)的場景,在這個(gè)場景中,攻擊者在受感染設(shè)備中尋找憑證。

隱私和DevOps

今天,大多數(shù)人已經(jīng)習(xí)慣于將開發(fā)和“本地”環(huán)境視為固有的安全性。例如以未加密的形式存儲(chǔ)隱私、只設(shè)計(jì)在安全環(huán)境中運(yùn)行的軟件,以及默認(rèn)情況下不加固安全特性。這為用戶提供了額外的便利,因?yàn)樗鼰o需進(jìn)行復(fù)雜的安全配置。然而,權(quán)衡的結(jié)果是,這些實(shí)踐如何增加了發(fā)生安全事件的風(fēng)險(xiǎn)。我們已經(jīng)看到了供應(yīng)鏈攻擊、VPN安全薄弱、VPN漏洞等的影響。

同樣重要的是要注意,“本地”環(huán)境不再是本地的,因?yàn)槲覀兛吹皆絹碓蕉嗟墓菊谵D(zhuǎn)向云計(jì)算。存儲(chǔ)在使用硬件加密(HW)的設(shè)備上的明文隱私同時(shí)存儲(chǔ)在連接到云的設(shè)備上。簡而言之,無論是否在云中,以明文存儲(chǔ)隱私都是不安全的。

舉一個(gè)DevOps世界中的真實(shí)例子,Visual Studio Code直到最近才在其于2021年1月發(fā)布的版本1.5353中提供了對(duì)隱私存儲(chǔ)的支持。在這次更新之前,沒有官方的API可用來以更安全的方式存儲(chǔ)隱私信息,因此,安全實(shí)現(xiàn)它是開發(fā)人員的責(zé)任。

5.png

一個(gè)以明文保存Twitter API隱私的擴(kuò)展示例

在進(jìn)行后續(xù)研究后,我們發(fā)現(xiàn)其他338個(gè)擴(kuò)展也有同樣的問題,明文存儲(chǔ)隱私。這些第三方擴(kuò)展包括對(duì)多個(gè)云服務(wù)提供商(csp)和SCM系統(tǒng)的綁定。

除了這些問題之外,攻擊者關(guān)注的是憑證獲取,這將使Visual Studio Code用戶很容易成為此類攻擊的目標(biāo)。

隱私和云威脅

隨著越來越多的公司開始采用云技術(shù),攻擊者正在不斷發(fā)展他們的有效載荷,并對(duì)云服務(wù)憑證進(jìn)行有針對(duì)性的搜索。重要的是要考慮如何通過使用不同的存儲(chǔ)機(jī)制來增強(qiáng)安全性,特別是由于隱私信息通常以明文存儲(chǔ),因?yàn)橛脩粽J(rèn)為擁有一個(gè)安全的環(huán)境是理所當(dāng)然的。將隱私以明文形式暴露出來,會(huì)讓攻擊者更容易竊取它們。當(dāng)在云中進(jìn)行操作時(shí),組織必須根據(jù)共享責(zé)任模型。即使在云中,他們使用的憑證的安全性仍然是他們的責(zé)任。

正如我們前面提到的,在所有參與保密工作的人員之間實(shí)現(xiàn)高度的信任也是必不可少的。云提供商總是引用共享責(zé)任模型,這尤其適用于解決用戶錯(cuò)誤配置的情況。這種共享責(zé)任的立場是必要的,因?yàn)闆]有軟件是100%安全的。例如,之前的一篇博客文章介紹了攻擊者在破壞一個(gè)實(shí)例后如何請(qǐng)求AWS元數(shù)據(jù)服務(wù)獲取憑證或隱私信息。這突出了攻擊者在破壞云實(shí)例以進(jìn)一步攻擊之后如何訪問云實(shí)例上的憑證。

6.png

攻擊后在AWS實(shí)例中獲取憑證

此外,在一種更通用的方法中,CSP命令行工具在第一次配置時(shí)生成授權(quán)令牌,并將這些令牌以明文格式存儲(chǔ)在文件中或作為系統(tǒng)變量。知道了這個(gè)功能,攻擊者就可以開發(fā)惡意軟件,在侵入一個(gè)實(shí)例后搜索這些憑證令牌。根據(jù)被盜憑證令牌的訪問級(jí)別,攻擊者可以繼續(xù)進(jìn)行攻擊,并在內(nèi)部傳播更多的有效載荷。

7.png

獲取多個(gè)CSP憑證

在分析中,一個(gè)行為引起了我們的注意,那就是攻擊者是如何在攻擊的不同點(diǎn)開始使用本機(jī)CSP工具,而不是開發(fā)自己的工具或使用攻擊。在這種情況下,根據(jù)用戶的配置,攻擊者將具有與服務(wù)相同的授權(quán)。這種行為意味著他們正在學(xué)習(xí)本地工具的所有可能選項(xiàng)和參數(shù),并濫用它們。圖7顯示了他們的腳本用本機(jī)工具文檔注釋了行,這使我們認(rèn)為攻擊者正在動(dòng)態(tài)學(xué)習(xí)。在Lambda這樣的內(nèi)部環(huán)境中,本機(jī)工具的使用是預(yù)先授權(quán)的,因此如果攻擊者成功地將工具上傳到其中,他們將擁有與服務(wù)相同的權(quán)限。

8.png

攻擊者使用本地工具從受害者那里獲取進(jìn)一步的數(shù)據(jù),目的是橫向傳播

真實(shí)攻擊場景

下面要講的是一個(gè)真實(shí)的攻擊場景,它強(qiáng)調(diào)了適當(dāng)?shù)碾[私存儲(chǔ)的重要性。我們已經(jīng)看到攻擊者在受感染的設(shè)備中尋找憑證,如果初始受感染的設(shè)備在其系統(tǒng)中存儲(chǔ)了其他設(shè)備的憑證,則使用能夠感染其他設(shè)備的惡意軟件,不過前提是攻擊者能夠獲得修改云服務(wù)的能力。

9.png

SSH憑證上的蠕蟲行為示例

最近的一項(xiàng)調(diào)查還顯示,攻擊者正在適應(yīng)最新的技術(shù),并積極嘗試?yán)没A(chǔ)設(shè)施作為代碼(IaC)軟件,如Ansible、Chef和SaltStack工具,以將其有效載荷分配給盡可能多的設(shè)備。

10.png

使用IaC工具感染管理下的基礎(chǔ)設(shè)施

該視頻展示了一個(gè)潛在的攻擊者如何使用TeamTNT工具集的工具打破Docker容器。

保護(hù)隱私

到目前為止,組織必須認(rèn)識(shí)到,隱私是如何在他們的把關(guān)角色中發(fā)揮更深層次的重要作用的。這就是為什么我們最好假設(shè)攻擊者總是在尋找揭露這些隱私的方法,并做好相應(yīng)的準(zhǔn)備。

組織不應(yīng)該假設(shè)存儲(chǔ)在云中的數(shù)據(jù)已經(jīng)免受風(fēng)險(xiǎn)的保護(hù),要使用特定于云的安全解決方案來保護(hù)他們的云原生系統(tǒng)。

THEEND

最新評(píng)論(評(píng)論僅代表用戶觀點(diǎn))

更多
暫無評(píng)論