獵云網注:本文作者Candid Wueest是賽門鐵克(Symantec)安全技術與響應部門(Security Technology and Response,STAR)的首席風險研究員。本文是對酒店預訂服務網站安全性的調查報告,作者分析了這一威脅個人信息安全的因素,并提出了緩解策略。
最近在研究酒店網站的安全性時,我偶然發現了一個可能泄漏顧客個人數據的問題。為了確定該漏洞是否普遍,我的調查對象包括54個國家和地區在內的1500多家酒店網站。結果顯示,這些網站中有三分之二(約67%)無意中將顧客的訂房信息和個人資料泄露給第三方網站,如廣告客戶和分析公司。這些酒店網站均有隱私政策,但他們并未明確提及這種行為。
雖然廣告商跟蹤用戶的瀏覽記錄已經是公開的秘密,但在這種情況下,被共享信息允許這些第三方服務商獲取登錄權限,查看顧客訂單的詳細信息,甚至完全取消訂單。
歐洲《通用數據保護條例》(General Data Protection Regulation,簡稱GDPR)生效已近一年,但受此問題影響的許多酒店的響應速度非常遲緩,更不用說落實這一條例。
我調查的酒店檔次不同,包括鄉村二星級酒店至豪華五星級度假村。旅游景點的選擇基本上是隨機的,隨后我在搜索引擎上匹配最佳的酒店搜索結果。我也測試了一部分知名連鎖酒店的分店,這就意味著其結果可以反映該連鎖酒店的普遍情況。
部分酒店預訂系統比較完善,只顯示了一些數字和訂單日期,并沒有透露任何個人信息。但大多數系統泄露了個人數據,例如顧客姓名、電子郵件地址、郵寄地址、手機號碼、信用卡的最后四位數字、卡類型、到期日、護照號碼等。
信息泄漏的原因
由于電子郵件內含靜態鏈接,因此HTTP POST Web請求實際上不是一個選項,這意味著預訂號碼和電子郵件將作為URL本身的參數傳遞。就其本身而言,這不矛盾。但是,許多站點直接在同一網站上加載其他內容,例如廣告。這意味著便利顧客預訂的同時,可以直接與其他資源共享,也可以通過HTTP請求中的referrer字段間接共享。該測試表明,每次預訂平均生成176個請求,但并非所有請求都包含訂單的詳細信息。這一數字也表明訂單信息可以被廣泛共享。
作為演示,我們假設酒店確認郵件包含以下訂單鏈接:
所加載的頁面(在此示例中為retrieve.php網站)可以調用許多遠程資源。為這些外部資源發出的一些Web請求會直接將完整URL(包括憑據)作為URL參數發送。
以下是分析請求的示例,其中包含完整的原始URL以及將完整URL作為單個參數發送的參數。
如上所述,相同的數據也存在于referrer字段中,后者在大多數情況下由瀏覽器發送。這使預訂號碼被30多個不同的服務提供商共享,包括知名的社交網絡、搜索引擎以及廣告和分析服務。這些信息允許這些第三方服務商獲取登錄權限,查看顧客訂單的詳細信息,甚至完全取消訂單。
值得注意的是,這種情況并不是服務提供商的錯。
其他情況下,訂單信息也可能泄露。部分網站信息泄露會發生在預訂過程中,另一些會發生在客戶手動登錄網站時。其他網站則生成一個訪問令牌,以URL而非憑據的形式傳遞信息(這種做法本身有待商榷)。
在大多數情況下,我發現即使訂單被取消,訂單信息仍然可見,從而為心懷不軌的人提供了竊取個人信息的可趁之機。
酒店比價網站和預訂引擎相對而言比較安全。在五個被測試的服務網站中,有兩個網站泄露了憑據,一個發送了未加密的登錄鏈接。
應當注意的是,在測試過程中,我檢測到一些配置良好的網站首先消化憑證,然后在設置cookie后重新定向,從而確保數據安全。
未加密的鏈接
由于數據僅與網站信任的第三方提供商共享,因此可以認為該問題的隱私風險較低。然而,令人頭疼的是,超過四分之一(29%)的酒店網站未對包含該ID的電子郵件中附有的初始鏈接進行加密。因此,客戶在點擊郵件中的HTTP鏈接時,潛在黑客可以攔截其憑證,例如,查看或修改該客戶的訂單。這種情況可能發生在機場或酒店等公共熱點環境下,除非用戶使用VPN軟件保護其連接。我還發現,其中一個預訂系統在連接被重定向到HTTPS之前,就在預訂過程中將數據泄露給了服務器。
遺憾的是,這種做法并非只出現在酒店行業。通過URL參數或在referrer字段中意外泄露敏感信息的現象屢見不鮮。在過去的幾年里,多家航空公司、度假區和其他網站發生類似問題。2019年2月,其他研究人員也報告了類似的問題,其中未加密的鏈接廣泛應用于多家航空公司服務提供商。
深層次問題
我還發現,多個網站允許暴力破解預訂號碼以及枚舉攻擊。在許多情況下,預訂號碼只能簡單地逐個遞增。這意味著,如果黑客獲得客戶的電子郵件或姓氏,他們就可以猜出該客戶的預訂號并登錄。暴力破解預訂號碼是旅游行業一個的普遍問題,我之前也曾在博客中提到。
這種攻擊手段或許無法很好地大規模應用,但是當黑客具有特定目標或已知目標位置時,的確可以奏效,例如會議酒店。而某些網站后臺甚至不需要客戶的電子郵件或姓名,僅利用有效的預訂號碼即可獲取個人信息。編碼錯誤的例子數不勝數,這使黑客不僅可以訪問大型連鎖酒店所有有效訂單,還可以查看國際航空公司任何一張有效機票。
其中一個比較智能的預訂系統可以為顧客創建一個隨機的PIN碼,該碼需與預訂號同時使用。遺憾的是,登錄后并沒有與可訪問的實際訂單綁定。因此,黑客只使用有效的憑據即可登錄,并仍可訪問任何訂單。當時,對于后臺是否有任何可以防止此類攻擊的速率限制,我并沒有發現任何證據。
風險
近日發布的《2018年諾頓LifeLock網絡安全調查報告》(2018 Norton LifeLock Cybersecurity Insights Report)顯示,83%的消費者對他們的隱私感到擔憂,但大多數人(61%)表示如果能使生活更加便利,他們愿意承擔某些風險。
通過在社交網絡上分享照片,許多人定期泄露他們旅行的細節。有些人甚至光明正大地直接分享門票預訂號碼。這些人也許對隱私漫不經心,實際上也可能希望他們的追隨者知道自己的行蹤,但我相當肯定,如果他們到達酒店并發現自己的預訂被取消時,他們一定會耿耿于懷。黑客可能會因為取樂或報復取消某些預訂,或者是作為勒索計劃以及惡性競爭的一部分,來達到損害酒店聲譽的目的。
酒店業的數據泄露和由數據配置不當引起的云數據桶泄露也是家常便飯。這些信息可能隨后便在黑市上出售或用于身份欺詐。收集的數據集越完整,其價值就越高。
通過這種方式,黑客還可以利用收集的數據發送真假難辨的個性化垃圾郵件或展開其他社交工程攻擊。就像那些聲稱用戶被黑客攻擊的郵件一樣,提供個人信息會大大提高勒索郵件的可信度。
不僅如此,有針對性的黑客組織也可能對商業專家和政府雇員的行程充滿興趣。眾所周知,諸如DarkHotel/Armyworm,OceanLotus/Destroyer,Swallowtail和Whitefly等一些APT團體已經對酒店業產生影響。這些團伙對這一領域感興趣的原因,包括監視目標、跟蹤行程、識別隨行人員,或者了解某人在某一地點停留了多久,同時還允許他們實地訪問目標的位置。
解決方法
根據《通用數據保護條例》,歐盟的個人數據必須得到更好的保護。然而,數據泄露的酒店對我調查結果的回應令人失望。
我聯系了這些酒店的DPO(data privacy officer,數據隱私官)并告知他們我的調查結果。令人驚訝的是,25%的DPO在六周內沒有回復。其中一封電子郵件被退回,因為隱私政策中的電子郵件地址已失效。而給予回復的DPO則平均花了10天才做出回應,他們主要表示確認收到了我的詢問,并承諾調查該問題以及采取任何必要的行動。一些DPO認為,這些數據并非個人數據,正如隱私政策中所述,這些數據必須與廣告公司共享。
一些DPO則承認他們仍在更新系統以完全符合《通用數據保護條例》標準。其他使用外部服務來支持預訂系統的酒店開始擔心他們的服務提供商是否符合該條例的標準,這表明酒店可能沒有根據該標準的要求對其預訂服務的合作伙伴進行適當的審查。
如何緩解
預訂網站應當使用加密鏈接(HTTPS)并確保無憑據以URL參數的形式泄露。用戶可以檢查鏈接是否已加密,或者個人數據(如電子郵件地址)是否作為URL中的可見數據進行傳遞。用戶還可以使用VPN服務來最大限度地減少他們在公共熱點上的曝光。遺憾的是,對于普通的酒店顧客來說,察覺信息泄漏并非易事,如果他們想要預訂特定的酒店,選擇的余地非常有限。
盡管《通用數據保護條例》在歐洲已生效約一年,但這個問題存在的事實表明,這一條例的實施還沒有完全解決如何應對數據泄漏的問題。到目前為止,投訴、違反該條例以及數據泄露的案件已超過20萬起,用戶的個人數據仍然四面楚歌。
關鍵詞: