什麼是本地文件入侵 (LFI) 攻擊,您應該擔心嗎?
Web 服務器託管構成您的 Web 應用程序的文件(網頁、圖片、視頻、表單等),並在有人訪問您的網站時提供這些文件。有些服務器更先進,還可以控製網絡訪問者的訪問權限。他們可能會限制普通訪客訪問其他用戶的帳戶或管理儀表板。儘管 Web 服務器在他們所做的事情上是高效的——而且他們這樣做相當安全——攻擊者可以利用由人為錯誤或服務器如何為其託管文件提供服務的邏輯缺陷引起的錯誤。
什麼是 LFI 攻擊?
當攻擊者利用 Web 服務器存儲、服務、驗證或控制對其文件訪問的方式中的漏洞時,就會發生本地文件入侵 (LFI) 攻擊。此漏洞在基於 PHP 的網站中很常見。
與攻擊者依靠惡意軟件破壞應用程序的許多形式的網絡攻擊不同,LFI 中的攻擊者主要依靠巧妙的技巧和簡短的代碼行。這很少需要復雜的工具或複雜的腳本;攻擊通常發生在網絡瀏覽器上。攻擊者最常使用的技巧是使用代碼、文件路徑或文件名修改 URL 字符串。
LFI 攻擊是如何發生的?
LFI 攻擊通常分四個階段發生。
首先,攻擊者識別一個運行易受攻擊的 Web 應用程序的 PHP 網站,通常通過在瀏覽器 URL 中運行一段基本代碼來查看該 Web 應用程序(即站點)是否處理命令。可以把它想像成按下游戲控制器上的組合鍵來解鎖復活節彩蛋——例如,按下下鍵進入超級馬里奧的隧道。但是攻擊者在 LFI 攻擊中運行的命令比在超級馬里奧中檢查每個隧道更一致。
配置不當或無法驗證輸入的 Web 應用程序或服務器將執行惡意代碼。從這裡,黑客可以獲得他們讀取易受攻擊文件或將惡意文件上傳到服務器所需的訪問權限和特權。
大多數 LFI 攻擊都會導致攻擊者訪問敏感信息。上傳惡意軟件的可能性很小,因為無法保證 Web 應用程序會將文件保存在存在 LFI 漏洞的同一台服務器上。如果 Web 應用程序處於多服務器環境中,則通常會出現這種情況。
因此,如果託管圖像的服務器上存在 LFI 漏洞,但存儲員工憑據或用戶密碼的服務器上不存在 LFI 漏洞,則攻擊者只能訪問該易受攻擊服務器上的圖像文件。無論如何,像 LastPass 攻擊這樣的網絡事件表明,黑客可以通過看似最微不足道的訪問級別造成嚴重破壞。
如何防止 LFI 攻擊
根據開放 Web 應用程序安全項目(OWASP) ,LFI 攻擊非常普遍。可以理解的是,黑客會喜歡這種攻擊,因為正如W3Techs報導的那樣,將近十分之八的網站將 PHP 作為服務器端編程語言運行——可以這麼說,大量的受害者。可以通過採用網絡安全最佳實踐來防止 LFI 攻擊。
白名單公共服務器文件
Web 應用程序通常使用文件路徑作為 URL 輸入。黑客可以通過更改兼作文件路徑的 URL 部分來利用此文件系統。例如,攻擊者可以將 https://dummywebsite.com/?module=contact.php 更改為 https://dummywebsite.com/?module=/etc/passwd。具有不良過濾和有缺陷邏輯的易受攻擊的服務器將顯示存儲在路徑 /etc/passwd 中的文件的內容。
當然,黑客會使用常見文件名的變體和查詢字符的組合來增加成功攻擊的機率。目標是誘使 Web 應用程序運行腳本或在 Web 服務器上顯示文件。
您可以通過在服務器上創建公共文檔白名單並指示 Web 應用程序忽略對所有其他文檔或文件路徑的查詢來阻止此漏洞。因此,如果攻擊者試圖操縱 URL 來請求或運行請求私有的代碼,他們將得到一個錯誤頁面。
經常測試漏洞
您可以使用Web 掃描工具來查找和修復可能使您遭受 LFI 攻擊的漏洞。Web 應用程序掃描器是自動化工具,可以像攻擊者一樣抓取您的應用程序並提醒您潛在的漏洞。有幾種開源 Web 掃描器,如 OpenVAS 和 Wireshark,但大多數漏洞掃描器都是專有軟件,需要付費才能使用。
但是,當然,您得到的 Web 掃描儀並不僅僅針對 LFI 攻擊。這些工具還尋找更廣泛的安全漏洞,如遠程文件包含、跨站點腳本、SQL 注入和不良的服務器配置。所以,他們是值得的。
限制站點訪問者權限
黑客經常成功地執行 LFI 攻擊,因為 Web 應用程序無法劃分用戶權限,並且這樣做允許訪問者訪問應該只對管理員可見的文件。此措施類似於白名單:配置您的 Web 應用程序和服務器,以便它們提供公共文件並在訪問者與 Web 應用程序交互時忽略未經授權的請求。這對於查詢包含敏感文件的文件路徑尤為重要。
為此,您可能需要防止直接修改文件路徑。Web 應用程序應僅提供硬編碼路徑列表中的文檔。此外,將 Web 應用程序配置為使用動態路徑串聯(URL 應包含字母數字字符)而不是 base64 或 bin2hex 函數來處理請求。
如果您正在考慮將文件名列入黑名單,請不要。黑客通常擁有越來越多的文件名列表,他們可以使用這些文件名來執行 LFI 攻擊。此外,將不斷增加的攻擊源列表列入黑名單實際上是不可能的(而且會浪費大量時間)。
使用多服務器環境
多服務器環境可讓您將重要、敏感的文檔與公共文件隔離開來,從而降低發生洩露時的風險。專用服務器不太容易受到 LFI 攻擊,因為儘管它們一起工作,但它們的配置不同。
除了這種安全性之外,多台服務器還可靠(停機風險較低)、快速且高效。誠然,如果您的網站很小,使用多服務器環境並不划算。在這種情況下,請考慮將您的 Web 應用程序對數據的訪問分為私有數據數據庫和公共文件服務器。
您應該擔心 LFI 攻擊嗎?
LFI 攻擊的可能性是存在的,特別是如果您的網站運行在 PHP 上,但您可以根據網絡安全最佳實踐配置網絡應用程序和服務器來減少暴露。
此外,您應該考慮進行例行安全檢查以發現漏洞。事情總是出問題,尤其是當站點架構變得複雜時。您保護自己所需的工具是自動化的,許多工具不需要精心設置或高級技術知識。
發佈留言