【網頁快取詐欺】資安專家Omer Gil 發現一個網頁快取詐欺,駭客可利用登入特定目錄的下一層不存在的網頁頁面,因為該網頁不存在,所以網站會自動回傳該網頁目錄上一層的內容,讓駭客有機會竊取到使用者的機敏資料。圖片來源/Omer Gi

許多網站服務為了加快對靜態網頁頁面的存取速度,都會透過網頁快取(Web Cache)的方式,減少使用者等待網頁的時間。不過,任職安永(EY)會計師事務所資安團隊負責人Omer Gil日前則在黑帽駭客大會,公開一個他發現的PayPal網頁快取詐欺(Web Cache Deception)手法,駭客就可以從快取網頁資料中,獲得使用者的機敏資料。

當揭露這個漏洞時,連帶使得雲端服務業者Cloudflare,為了解決客戶對這個漏洞的隱憂,甚至還推出「Edge Cache Expire TTL」這項新功能,可將快取頁面儲存時間設定為0秒,避免外洩使用者敏感個資。

從PayPal找到網頁快取詐欺漏洞,駭客可竊取敏感個資

Omer Gil表示,快取網頁通常是靜態頁面,常見的格式包括CSS、js、txt,還有常見的圖片檔(png、bmp、gif)等檔案格式,通常這些檔案都不會存放與個人有關的敏感資訊,也會以靜態快取網頁頁面方式公開,並忽略HTTP的網頁快取標頭(headers)。

現在常見的網頁快取,其實是透過瀏覽器的方式,將網頁內容暫時存放一段時間,讓瀏覽器不需要再度請求暫存網頁快取頁面,「但這些跟網頁快取詐欺手法無關。」他說。

但其他導入網頁快取的手法,則會和網頁快取詐欺手法有點關係,都有關用戶端、網站伺服器端以及相關快取機制有關係。目前,幾個常見的網頁快取機制包括CDN(Content Delivery Network)服務、負載平衡(Load balancer)以及反向代理(Reverse Proxy)伺服器等服務。

Omer Gil解釋網頁快取詐欺的方法論,第一步就是要設法讓使用者登入一個假的登入頁面,例如,要登入一個金融網站的帳戶,受駭者也不疑有他、隨之登入該頁面,網頁伺服器跟代理伺服器請求一個登入的請求,但原先並沒有這個登入請求,所以代理伺服器轉而向網頁伺服器請求相關的登入頁面資訊。

Omer Gil表示,PayPal帳號本身就存在一個網頁快取詐欺的漏洞,而該漏洞目前已經被修補完畢且公開,而透過網頁快取詐欺的漏洞,PayPal還可能外洩使用者的敏感資訊,包括使用者姓名、帳戶餘額、信用卡最後四碼、交易資料、完整的護照號碼、電子郵件、住家地址、電話號碼以及其他在該漏洞網頁上的敏感資訊。

若以網頁快取詐欺手法為例,Omer Gil觀察到PayPal有漏洞的網頁,當使用者第一次登入該網頁,例如查詢使用者帳戶資料時,該網站會將靜態頁面的資料保存大概五小時之久,若中間有再度登入該頁面,又可以延長該頁面被網站快取存放的時間。他表示,當快取頁面存放的時間延長時,就有利駭客找到更多該頁面存放的敏感資料。

像是,當Omer Gil登入PayPal的使用者頁面時(www.paypal.com/myaccount/home),若駭客輸入一個原本不存在的網頁,例如:www.paypal.com/myaccount/home/malicious.css的頁面時,因為無法回傳該不存在頁面的資料,所以PayPal就會回傳該網站上一層的資料給使用者。也就是說,駭客就可以任意利用任一個網站中,輸入原先不存在的網頁網址後,該網站因為無法回傳該不存在的網頁資料,就只好回傳上一層存在網頁的資料給查詢者,就可能讓駭客竊取到使用者敏感個資。

所有不存在的網頁快取頁面,都不應該主動回應任何資訊

因為這樣網頁快取詐欺的弱點,也迫使雲端服務業者Cloudflare必須推出一個新服務,提供客戶一個「Edge cache expire TTL」的服務,所有的快取儲存時間為0秒。目前PayPal已經修補這個漏洞,但是其他網站仍有可能存在類似的漏洞,使得駭客有機會取得使用者的敏感個資。

Omer Gil就建議,網頁設定快取機制時,要符合網頁快取的標頭所允許的頁面,不存在的頁面不應該主動回應上一層的頁面資訊。再則,所有快取存放的靜態檔案,都要在原本規定的目錄中,且只允許在原本的目錄頁面呈現快取的靜態檔案資料;假設快取頁面允許使用者作選擇時,相關的快取頁面設定都應該符合原先的內容型態;最後,所有不存在的網頁頁面,就可以直接回應404或者是302的網頁數值,不需要自動回傳上一層的資訊給使用者。


Advertisement

更多 iThome相關內容