許多網站服務為了加快對靜態網頁頁面的存取速度,都會透過網頁快取(Web Cache)的方式,減少使用者等待網頁的時間。不過,任職安永(EY)會計師事務所資安團隊負責人Omer Gil日前則在黑帽駭客大會,公開一個他發現的PayPal網頁快取詐欺(Web Cache Deception)手法,駭客就可以從快取網頁資料中,獲得使用者的機敏資料。
當揭露這個漏洞時,連帶使得雲端服務業者Cloudflare,為了解決客戶對這個漏洞的隱憂,甚至還推出「Edge Cache Expire TTL」這項新功能,可將快取頁面儲存時間設定為0秒,避免外洩使用者敏感個資。JavaScript函式庫為高階的動態程式語言,與HTML及CSS並列為全球資訊網(WWW)的三大核心技術。(JavaScript library)則是為了方便開發JavaScript應用而事先寫好的子程式集合,全球已出現近10萬種函式庫。
從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的網頁數值,不需要自動回傳上一層的資訊給使用者。
編輯:桃園網頁設計-鴻享科技有限公司
來源:iThome
關鍵字:網頁快取詐欺
聲明:本文來自網路,版權為原作者所有,如有侵犯權益,請與桃園網頁設計-鴻享科技有限公司聯繫刪除,謝謝。