企業(yè)安全團(tuán)隊與黑客和網(wǎng)絡(luò)犯罪分子之間的攻防戰(zhàn)斗是不對等的,雖然藍(lán)隊與紅隊使用的工具,、框架和技術(shù)趨于透明和重疊,,但是思維方式卻依然有很大的差異。
攻擊者不是研究人員,,他們總是會尋求阻力最小的路徑來達(dá)成目標(biāo):
以最少的訪問權(quán)限達(dá)成目標(biāo)
盡量掩蓋痕跡
使用最少的漏洞
一旦確定了高回報的可利用資產(chǎn),攻擊者便會利用各種技術(shù)和方法來發(fā)現(xiàn)漏洞。有些技術(shù)和方法可以使攻擊者更快地得手,,而有些則需要更多時間,。
查找和利用漏洞可能要花費(fèi)幾個小時到幾個月甚至更長的時間。有些攻擊者使用久經(jīng)考驗的方法,,但其中一些最具創(chuàng)造力的黑客找到了通過意外媒介來入侵系統(tǒng)的方法,。企業(yè)安全團(tuán)隊必須了解攻擊面的哪些部分最容易吸引對手,以便制定有效的防御策略,。
Randori聯(lián)合創(chuàng)始人兼CTO David Wolpoff分享了四個鮮為人知的黑客搜尋漏洞的攻擊方法,,這些攻擊者視角的對漏洞尋找方法有助于防御者完善和優(yōu)化其防御能力,具體如下:
01 從已知漏洞入手
就像安全團(tuán)隊面臨警報疲勞一樣,,攻擊者也面臨著漏洞信息的過載,,只有一小部分漏洞信息對他們的行動目的很重要。
攻擊者可以將漏洞與目標(biāo)進(jìn)行交叉檢查作為起點(diǎn),,但是高危漏洞(CVE)并不總是富有成效(這些漏洞是眾所周知的,,并且可能會受到安全團(tuán)隊的良好監(jiān)視)。
但是,,已知的CVE是發(fā)現(xiàn)隱藏在代碼中的類似錯誤的絕佳起點(diǎn),。例如在軟件開發(fā)周期中,企業(yè)中部署的代碼可能會被重復(fù)使用和回收,,從而可以讓攻擊者滲透到該環(huán)境中,。如果您為當(dāng)前正在開發(fā)的代碼(而不是其他版本)修補(bǔ)了一個漏洞,則其他版本的代碼中依然會存在很多漏洞,。對于攻擊者來說,,一個比較容易的做法是審計開源代碼來查找漏洞和進(jìn)入企業(yè)網(wǎng)絡(luò)的捷徑。
02 “此地?zé)o銀”的代碼注釋
源代碼對于攻擊者來說就像是一張藏寶圖,。在一個軟件開發(fā)周期中,,開發(fā)者為彼此留下的代碼問題注釋在攻擊者眼里就是唾手可得的果實。在開發(fā)軟件時,,開發(fā)人員會遍歷代碼并標(biāo)記已知的錯誤區(qū)域,。但是開發(fā)進(jìn)展迅速,可能無法及時解決這些問題,。
當(dāng)攻擊者在開發(fā)人員的代碼中找到“FIXME”(需修復(fù))或“RBF”(解決后立即刪除)之類的標(biāo)簽時,,內(nèi)心想必是狂喜的。像這樣的標(biāo)簽將靶心放在來潛在可利用的,、未修補(bǔ)的漏洞上,。我曾經(jīng)在標(biāo)有“FIXME:此處可能發(fā)生緩沖區(qū)溢出的函數(shù)中發(fā)現(xiàn)錯誤,未經(jīng)修改請勿使用,?!倍聦嵤?,很多問題代碼就是“未經(jīng)修改”就進(jìn)入了生產(chǎn)環(huán)境,攻擊者可以輕松地利用該漏洞,。
03 支持論壇中的求助信號
有一次,在尋找可以在目標(biāo)周圍進(jìn)行攻擊的入口時,,我的團(tuán)隊注意到該公司正在測試一種新設(shè)備,。該公司的IT團(tuán)隊在一個通用支持論壇中用公司的電子郵件地址發(fā)布了幾個問題。暴露的資產(chǎn)似乎很容易被入侵,。通過Google快速搜索,,我們確定該設(shè)備是一家知名電話設(shè)備制造商的昂貴產(chǎn)品。我們在支持論壇上進(jìn)行了挖掘,,發(fā)現(xiàn)了在線發(fā)布的固件更新的一部分,,其中包含三個錯誤。
在該案例中,,URL路徑解析功能中存在一個錯誤,,該錯誤使我們可以繞過身份驗證。另一個錯誤讓我們無需系統(tǒng)管理員即可到達(dá)代碼路徑,,從而使我們能夠上傳和下載文件,。最后一個是任意文件泄漏錯誤,它使我們可以讀取應(yīng)用程序文件系統(tǒng)中的每個文件,。這些漏洞利用都是公開可用的信息,,其中每個信息都是通往下一個漏洞的關(guān)鍵。攻擊者喜歡追蹤您的團(tuán)隊成員在外網(wǎng)的足跡,,查找可能導(dǎo)致利用漏洞的蛛絲馬跡,。
04 魚叉式模糊測試
模糊測試往往是耗時費(fèi)力的漏洞查找方式,效果也很難令人滿意,。我們曾經(jīng)接到一個任務(wù)入侵一家公司,,所以我從一個相對簡單的地方開始——它的員工登錄頁面。我開始“盲測”,,輸入“a”作為用戶名,,被拒絕訪問。我輸入了兩個“a”,,再次被拒絕訪問,。然后,我嘗試輸入1000個“a”,,結(jié)果網(wǎng)站終止了會話,。一分鐘后,系統(tǒng)恢復(fù)在線,,我立即再次嘗試輸入1000個“a”,,登錄門戶再次離線,,一個漏洞就這樣被發(fā)現(xiàn)了。
模糊測試差不多是適用于查找所有網(wǎng)絡(luò)漏洞的簡便方法,,但是對于攻擊者來說,,這是一種很少能單獨(dú)起作用的策略。而且,,如果攻擊者對實時系統(tǒng)進(jìn)行模糊測試,,幾乎可以肯定的是,他們會引起系統(tǒng)管理員的注意,。我更喜歡這種所謂的“魚叉式模糊測試”:用人類研究元素補(bǔ)充該過程,,利用現(xiàn)實世界的知識來縮小攻擊面并確定攻擊點(diǎn)可以節(jié)省大量時間。
防御者一直專注于給攻擊者的入侵增加難度,,但黑客根本不像防御者那樣思考,。黑客受制于個人的時間和精力成本,但不受企業(yè)政策或工具的約束,。
對于企業(yè)而言,,養(yǎng)成黑客思維,并找到導(dǎo)致目標(biāo)吸引黑客的原因是進(jìn)攻性防御的第一步,。首先了解被盜資產(chǎn)的潛在影響以及其被入侵的可能性,。這能聚焦關(guān)鍵攻擊面的防御注意力。防御者就可以有針對性地采取加固措施,,并關(guān)注真正重要的漏洞,。從黑客的視角觀察,能使企業(yè)能夠建立超越傳統(tǒng)最佳安全實踐的韌性,,以建立分層的縱深防御策略,,阻止那些最有毅力的黑客。