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