駭客思維:尋找安全漏洞的四種創新方法

企業安全團隊與駭客和網路犯罪分子之間的攻防戰鬥是不對等的,雖然藍隊與紅隊使用的工具、框架和技術趨於透明和重疊,但是思維方式卻依然有很大的差異。

攻擊者不是研究人員,他們總是會尋求阻力最小的路徑來達成目標:

以最少的訪問許可權達成目標

儘量掩蓋痕跡

使用最少的漏洞

一旦確定了高回報的可利用資產,攻擊者便會利用各種技術和方法來發現漏洞。有些技術和方法可以使攻擊者更快地得手,而有些則需要更多時間。

查詢和利用漏洞可能要花費幾個小時到幾個月甚至更長的時間。有些攻擊者使用久經考驗的方法,但其中一些最具創造力的駭客找到了透過意外媒介來入侵系統的方法。企業安全團隊必須瞭解攻擊面的哪些部分最容易吸引對手,以便制定有效的防禦策略。

Randori聯合創始人兼CTO David Wolpoff分享了四個鮮為人知的駭客搜尋漏洞的攻擊方法,這些攻擊者視角的對漏洞尋找方法有助於防禦者完善和最佳化其防禦能力,具體如下:

01

從已知漏洞入手

就像安全團隊面臨警報疲勞一樣,攻擊者也面臨著漏洞資訊的過載,只有一小部分漏洞資訊對他們的行動目的很重要。

攻擊者可以將漏洞與目標進行交叉檢查作為起點,但是高危漏洞(CVE)並不總是富有成效(這些漏洞是眾所周知的,並且可能會受到安全團隊的良好監視)。

但是,已知的CVE是發現隱藏在程式碼中的類似錯誤的絕佳起點。例如在軟體開發週期中,企業中部署的程式碼可能會被重複使用和回收,從而可以讓攻擊者滲透到該環境中。如果您為當前正在開發的程式碼(而不是其他版本)修補了一個漏洞,則其他版本的程式碼中依然會存在很多漏洞。對於攻擊者來說,一個比較容易的做法是審計開原始碼來查詢漏洞和進入企業網路的捷徑。

02

“此地無銀”的程式碼註釋

原始碼對於攻擊者來說就像是一張藏寶圖。在一個軟體開發週期中,開發者為彼此留下的程式碼問題註釋在攻擊者眼裡就是唾手可得的果實。在開發軟體時,開發人員會遍歷程式碼並標記已知的錯誤區域。但是開發進展迅速,可能無法及時解決這些問題。

當攻擊者在開發人員的程式碼中找到“FIXME”(需修復)或“RBF”(解決後立即刪除)之類的標籤時,內心想必是狂喜的。像這樣的標籤將靶心放在來潛在可利用的、未修補的漏洞上。我曾經在標有“FIXME:此處可能發生緩衝區溢位的函式中發現錯誤,未經修改請勿使用。”而事實是,很多問題程式碼就是“未經修改”就進入了生產環境,攻擊者可以輕鬆地利用該漏洞。

03

支援論壇中的求助訊號

有一次,在尋找可以在目標周圍進行攻擊的入口時,我的團隊注意到該公司正在測試一種新裝置。該公司的IT團隊在一個通用支援論壇中用公司的電子郵件地址釋出了幾個問題。暴露的資產似乎很容易被入侵。透過Google快速搜尋,我們確定該裝置是一家知名電話裝置製造商的昂貴產品。我們在支援論壇上進行了挖掘,發現了線上釋出的韌體更新的一部分,其中包含三個錯誤。

在該案例中,URL路徑解析功能中存在一個錯誤,該錯誤使我們可以繞過身份驗證。另一個錯誤讓我們無需系統管理員即可到達程式碼路徑,從而使我們能夠上傳和下載檔案。最後一個是任意檔案洩漏錯誤,它使我們可以讀取應用程式檔案系統中的每個檔案。這些漏洞利用都是公開可用的資訊,其中每個資訊都是通往下一個漏洞的關鍵。攻擊者喜歡追蹤您的團隊成員在外網的足跡,查詢可能導致利用漏洞的蛛絲馬跡。

04

魚叉式模糊測試

模糊測試往往是耗時費力的漏洞查詢方式,效果也很難令人滿意。我們曾經接到一個任務入侵一家公司,所以我從一個相對簡單的地方開始——它的員工登入頁面。我開始“盲測”,輸入“a”作為使用者名稱,被拒絕訪問。我輸入了兩個“a”,再次被拒絕訪問。然後,我嘗試輸入1000個“a”,結果網站終止了會話。一分鐘後,系統恢復線上,我立即再次嘗試輸入1000個“a”,登入門戶再次離線,一個漏洞就這樣被發現了。

模糊測試差不多是適用於查詢所有網路漏洞的簡便方法,但是對於攻擊者來說,這是一種很少能單獨起作用的策略。而且,如果攻擊者對實時系統進行模糊測試,幾乎可以肯定的是,他們會引起系統管理員的注意。我更喜歡這種所謂的“魚叉式模糊測試”:用人類研究元素補充該過程,利用現實世界的知識來縮小攻擊面並確定攻擊點可以節省大量時間。

防禦者一直專注於給攻擊者的入侵增加難度,但駭客根本不像防禦者那樣思考。駭客受制於個人的時間和精力成本,但不受企業政策或工具的約束。

對於企業而言,養成駭客思維,並找到導致目標吸引駭客的原因是進攻性防禦的第一步。首先了解被盜資產的潛在影響以及其被入侵的可能性。這能聚焦關鍵攻擊面的防禦注意力。防禦者就可以有針對性地採取加固措施,並關注真正重要的漏洞。從駭客的視角觀察,能使企業能夠建立超越傳統最佳安全實踐的韌性,以建立分層的縱深防禦策略,阻止那些最有毅力的駭客。