標籤:

攻擊雙因素認證(2FA)的11種方式

攻擊雙因素認證(2FA)的11種方式

來自專欄嘶吼RoarTalk5 人贊了文章

雖然許多緩解措施中都包含「啟用雙因素認證」這樣一條建議,但是千萬別就此以為雙因素認證(2FA)是完全安全的。

所謂認證(authentication)就是確認用戶的身份,是網站登錄必不可少的步驟。其中,密碼是最常見的認證方法,但是不安全,容易泄露和冒充。不可否認,與普通密碼相比,2FA具有其獨到優勢,並且正在加大部署於各種網路和服務中。如今,不僅具備高度安全需求的政府和企業開始部署2FA,就連普通人也正在使用2FA來進行網站和賬戶認證。可以說,2FA能夠降低黑客攻擊的風險。

什麼是雙因素認證?

一般來說,三種不同類型的證據,可以證明一個人的身份,包括:

· 秘密信息:只有該用戶知道、其他人不知道的某種信息,比如密碼;

· 個人物品:該用戶的私人物品,比如身份證、鑰匙;

· 生理特徵:該用戶的遺傳特徵,比如指紋、相貌、虹膜等等。

這些證據就稱為三種「因素」(factor)。因素越多,證明力就越強,身份就越可靠。雙因素認證就是指,通過認證同時需要兩個因素的證據。銀行卡就是最常見的雙因素認證,用戶必須同時提供銀行卡和密碼,才能取到現金。

不過,正是由於太多人對2FA所提供的安全性過於信任,覺得它是堅不可摧、不可戰勝的。他們認為,2FA能夠阻止高級持續性威脅(APT),打敗網路釣魚和社會工程,甚至阻止其從未設定過的各種威脅。2FA明顯存在一種感知誤區,即得到的信任比其自身應得的更多。但事實顯然並非如此,相反地,攻擊者有很多種瓦解它的方法,具體攻擊方式總結如下:

攻擊2FA的11種方式

1. 中間人(MitM)攻擊

如果中間人攻擊者能夠誘騙你訪問他們的流氓網站,並提示你提供2FA證書,那麼可以說你的2FA屏障基本宣告報廢了。中間人攻擊者可以偽造一個你信任的,且使用2FA登錄的網站,然後誘使你輸入自己的2FA生成的憑證。更常見的情形,是在你使用2FA成功進行身份驗證後,攻擊者直接竊取生成的(非2FA)令牌。

大多數人都不明白,一旦你使用2FA進行身份驗證(無論是通過生物特徵識別、硬體令牌還是智能卡),操作系統都會使用輔助生成的軟令牌來接管你的訪問授權。但該令牌可以被盜並重新使用。例如,也許你的Windows筆記本電腦需要指紋驗證才能登錄,一旦你成功通過指紋驗證,操作系統後台經常會使用NTLM或Kerberos令牌來接管你的訪問授權。你的身份驗證方式,通常與你之後被賦予的訪問許可權毫無關係。如果你想成為一名優秀的計算機安全人員,你需要了解這個概念及其影響,因為其造成的影響將會是巨大的。

2. 終端人(Man-in-the-endpoint)攻擊

與MitM攻擊類似,如果黑客可以將他們的惡意軟體載入到你的計算機上,他們就可以修改2FA驗證過程中用到的軟體,竊取2FA令牌保護下的機密,或者使用你已經通過的驗證結果來訪問原本無權訪問的內容。

自本世紀初以來,銀行木馬一直都在這麼做。基本上,這些木馬會潛伏在主機上,等待你成功通過身份驗證,然後在後台啟動隱藏的流氓會話。你以為自己只是查看了一下銀行餘額,但在後台,木馬正在將你所有的存款轉移到他們的離岸銀行賬戶中。

銀行認為,他們可以通過生成一個次級2FA代碼來應對這種類型的木馬,因為該代碼能夠從交易數據中擦除,並且是該交易獨有的。但是現實卻並不理想,Bancos木馬創建者就通過攔截原始交易請求,生成並提交他們自己數額更大的請求,再將該請求發給銀行等待回應。但是銀行並不知道新交易請求是假的,就會以該偽造的數額生成次級2FA,並發給提起請求的合法用戶。該合法用戶將輸入這些次級2FA驗證碼,但卻永遠不知道這個驗證碼僅適用於竊取他們賬戶所有資金的隱藏流氓交易有效。

之後,銀行又要求用戶在輸入2FA驗證碼前確認交易金額,來應對這些新型攻擊。然而,令銀行驚訝的現實是,銀行客戶並沒有注意到交易細節,並且通常非常痛快地就輸入了驗證代碼。在很多情況下,銀行木馬依然能夠戰無不利,輕鬆竊取到客戶的資金。

無論你的電腦或設備採用何種驗證方式(無論是否為2FA),只要你通過了身份驗證,隱藏的流氓用戶或惡意軟體都可以在你的設備中執行任何想要的操作。它只是在靜待你的計算機超時,等待你打瞌睡或鎖屏的時機。因為,即便鎖定屏幕,你的身份驗證和授權令牌也是有效的,且可以重新使用。

3. 妥協的2FA軟體

一種特殊的終端人攻擊(man-in-the-endpoint),是妥協與2FA設備相關的軟體。例如,想要在設備上使用智能卡,該設備必須具備能夠操作並讀取智能卡的相關軟體。智能卡供應商可以為你提供並安裝軟體,或者在你使用的操作系統或設備上預裝通用驅動程序。

如果黑客在你的設備上植入了流氓軟體,它就可以操縱或替換合法的2FA相關軟體。在上述智能卡的例子中,該流氓軟體會要求智能卡在下一次插入時,共享其存儲的秘密,或者讓令牌在內存中保持活躍狀態的時間延長,允許黑客進行盜取或重放。在某些情況下,還可以使用流氓軟體來完全竊取並替換另一台流氓設備上的智能卡。

4. 盜取並重放密碼生成器

許多硬體和軟體2FA令牌會生成特定於用戶和設備的一次性代碼。身份驗證軟體和用戶設備都可以同時生成該一次性代碼,然後將該用戶提交的代碼與身份驗證系統自身生成的副本進行比較,看它們是否相同。

在大多數情況下,該一次性代碼是基於特定於每個2FA設備和用戶的共享隨機「種子」值生成的,然後,使用同一個演算法按預設時間間隔,從該種子中生成所有後續代碼。這是2FA令牌的類型,其要求用戶在30秒到幾分鐘內輸入該一次性密碼,超時將生成新值,只要輸入不成功,並重複上述步驟。RSA的SecureID令牌推廣了這些類型的2FA設備,雖然現在有幾十個甚至幾百個類似的硬體令牌,還有數千個(少說也得有幾百個)基於軟體的類似令牌。但是,通常情況下,基於軟體的此類令牌並不像硬體版本那麼安全,因為軟體版本更容易被黑,而硬體令牌通常需要物理訪問許可權才能妥協。

黑客很久以前就知道,如果他們能夠獲取到原始「種子」值,並知道與時間同步的密碼生成演算法,他們就可以像真實的驗證系統和2FA設備一樣,準確地生成並匹配相同的單向代碼。某些2FA設備使用了這種脆弱的一次性密碼生成器,給了攻擊者捕獲任意一次性密碼並生成所有後續密碼的機會。如果在不知道原始隨機種子值的情況下發生這種事情,那就說明所用密碼生成演算法不是很強大。隨機生成的值不應該被捕獲到,更不應該能輕易地被用於生成後續「隨機生成」的值。

廣泛使用的常見黑客工具已經包含了相關功能,所以,如果黑客可以獲取種子值,他們就能創建一個虛假的2FA設備。APT攻擊者也已經開始利用此類攻擊來牟取利益了,其中最知名的一個例子是,中國黑客入侵RSA,並獲取到了洛克希德馬丁公司(一家美國國防承包商)的種子值,然後利用這些種子值順利侵入了洛克希德馬丁公司。

5. 不要求使用2FA

許多服務(包括一些流行網站)都提供了2FA,但卻並不強制你要求它,如此一來,就等於失去了2FA存在的目的。大多數用戶認為,只要他們啟用了2FA,就必須始終使用它。這種認識是錯誤的,大多數網站還會允許用戶輸入密碼,回答密碼重置問題,或致電技術支持部門來繞過2FA阻礙。

對於允許用戶使用多種登錄方式(包含2FA),但又不要求合法用戶必須使用2FA的網站,黑客已經十分擅長利用社會工程手段,黑掉這些站點的技術支持部門,以便重置用戶密碼,或者黑客只是簡單地獲取並回答出密碼重置問題的答案。

我非常討厭密碼重置問題,因為猜中它們往往非常容易,所以在我看來,密碼重置問題就是身份驗證行業的禍根,應該像蟑螂一樣被滅掉。

黑客同樣可以利用社會工程手段,從用戶處獲取他們的密碼憑證,然後使用這些密碼憑證替代2FA進行登錄。如果網站只提供2FA,但又不要求所有用戶必須使用2FA進行登錄驗證,那麼其本身就已經破壞了設置2FA的目的。

6. 偽造身份

智能卡供應商不希望你知道的一個小秘密是,每個2FA設備/軟體都會掛接到一個用戶/設備的身份(ID)。該ID在身份驗證系統中必須是唯一的。在許多2FA系統中——尤其是智能卡——只要能夠修改一個人的ID(即便是暫時的),就可以使用任意2FA設備,甚至是掛接到其他人,也可以使用它作為目標用戶進行身份驗證。

舉例說明,假設你的智能卡已掛接到名為user1@example.com的ID,已經獲取其他任意智能卡和PIN碼(比如說user2)的黑客,將能夠進入身份驗證系統並將user1的ID修改為user2,反之亦然。然後,他們可以使用user2的智能卡和PIN碼,以user2的身份登錄,但系統卻會在審計中將它們追蹤為user1。在完成非法活動後,黑客可以輕鬆地再將ID切換回來,而無需知曉user1的PIN或擁有user1的智能卡。可以說,智能卡為內部人2FA攻擊提供了成熟的條件。

許多2FA設備都是如此,無論用什麼來作為用戶/設備的唯一標識,它都會將2FA設備「捆綁」到該用戶/設備。如果某人有權更改其他人的ID,他就可以將該用戶/設備的ID切換到其他任意2FA設備(他們有權控制)。與密碼更改一樣,你應該控制並審計任何信賴的ID屬性更改行為。

7. 被盜的生物特徵識別

你的生物特徵識別屬性(例如指紋或視網膜掃描)也可能會被盜用並重複使用,而且你將很難拒絕攻擊者使用它們。生物特徵識別還有許多其他問題(如高比例的假陰性和假陽性),但最大的問題是,一旦它們被盜就會永遠存在隱患,因為指紋和視網膜並不能夠像密碼一樣高進行修改。

8. 共享、集成的身份驗證

我非常喜歡共享、集成的身份驗證方案(例如oAuth),它允許用戶只登錄一次,然後就可以重新使用該憑證(通常在後台)登錄到更多服務和網站中。使用共享、集成的身份驗證時,通常會要求初始身份驗證過程使用2FA,而後續登錄便不再要求(即便正常情況下也是需要的)。共享、集成的登錄通常使用已經通過身份驗證的令牌來進行其他登錄。

9. 社會工程

隨著越來越多的網站允許或需要2FA,黑客也學會了如何社會工程用戶。這些攻擊可能類似於上述討論的中間人攻擊或終端人攻擊,但可能更為精妙,涉及供應商意外要求2FA之類的情況。總之,僅僅因為你正在使用2FA並不意味著你本身不會被誘騙交出2FA。

10. 2FA暴力攻擊

2FA令牌被黑客暴力破解出來的事情並不是聞所未聞。如果使用2FA登錄的網站或服務沒有設置錯誤登錄嘗試控制,那麼攻擊者就可能會反覆嘗試,直至輸入正確的PIN碼。大多數2FA網站確實具備登錄鎖定機制,但卻並非所有網站都具備。

11. 漏洞實現

可以肯定地說,2FA登錄網站和軟體中存在很多允許繞過2FA的漏洞,而且這些存在漏洞的網站和軟體比例,可能比不存在該漏洞的網站數量多。事實上,存在漏洞的2FA實現事例可能高達數百個之多。

如何防禦2FA攻擊行為

儘管瓦解2FA的方法有很多,但這並不意味著你不能做些什麼,來增加黑客攻擊的難度。以下是防禦2FA攻擊的一些建議,其中許多也許你已經在用了:

· 培訓管理員和用戶了解2FA威脅及攻擊;

· 詢問你的供應商關於上述各種2FA威脅攻擊場景的解決情況;

· 確保系統始終運行最新的殺毒軟體,以檢測並防止可能試圖繞過或盜取你的2FA憑證的惡意軟體及黑客;

· 確保你的用戶了解並接受2FA社會工程場景的培訓,讓他們不再輕易地交出自己的2FA PIN碼,或一遇到要求使用2FA設備/軟體的網站和電子郵件就使用;

· 當網站或服務允許使用2FA時,請務必使用它。如果能用2FA,且要求你必須使用2FA登錄時,請務必啟用所需的功能;

· 了解你的2FA供應商允許使用什麼東西繞過2FA。這些東西能被社工出來嗎?

· 詢問你的2FA憑證提供商,是否在開發這些硬體和軟體時使用了安全開發生命周期(SDL)編程最佳實踐;

· 保護並審計2FA使用的身份屬性,作為2FA登錄的唯一標識;

· 使用密碼重置問題時,不要提供一本正經的老實答案;

· 鼓勵網站和服務使用動態身份驗證,以便在登錄請求來自新設備或某些其他不自然屬性(例如外國位置或異常登錄時間)時,增加所需驗證的問題或因素數量。

與使用密碼等單因素認證方式相比,2FA顯然更好也更安全,但是它並不是「萬靈丹」,它一樣具備自己的缺陷,也存在被破解的可能。它能夠幫助我們有效地抵禦許多黑客攻擊,但即便如此,它也並非完美無缺。本文的目的是希望大家能夠全面的了解2FA的優劣性,你可以放心地繼續使用它,只是千萬別對其功能過分的樂觀。

本文翻譯自:csoonline.com/article/3如若轉載,請註明原文地址: 4hou.com/info/news/1180 更多內容請關注「嘶吼專業版」——Pro4hou

推薦閱讀:

虛擬世界也被黑客侵略了,VR應用程序出現嚴重漏洞
HBO電視網被黑:《權力遊戲 7》視頻泄露
這個macOS內核漏洞存在長達15年之久,今終被公開
Android最新的VMP加固技術一般是怎麼實現的?
SSRF(伺服器端請求偽造)漏洞

TAG:信息安全 |