資安公司Salt Security發現住宿預訂服務Booking.com,其在登入功能的OAuth實作,可能導致惡意攻擊者接管用戶的帳號,而且駭客也能夠以同樣的手法,登入Booking.com子公司Kayak.com。Booking.com在收到Salt Security的漏洞通報後,已經迅速修復問題,並且確認未有駭客利用該漏洞入侵平臺。

OAuth(Open Authorization)是目前的開放身分驗證標準,使用戶可以允許應用程式讀取臉書或Google等帳號資料進行身分驗證,方便地登入應用程式。研究人員發現Booking.com上由於不安全的OAuth設計缺陷,使攻擊者有機會接管以臉書登入的帳號,而且一旦接管成功,攻擊者便可以假冒用戶執行任意操作,包括存取所有個人資訊。

在Booking.com以臉書帳號登入,需要使用者、Booking.com和臉書三方,透過連結中所帶的參數通訊,Booking.com網站上「以臉書登入」按鍵的連結,帶著重新定向回Booking.com的路徑參數redirect_uri,當redirect_uri限制不夠嚴謹,便讓攻擊者有機可乘。

惡意攻擊者可以精心設計OAuth驗證連結,再以社交工程的手法欺騙受害者點擊,由於OAuth連結使用臉書網域,乍看之下非常合理,因此受害者很容易上當。

這項帳號接管攻擊,需要用上Booking.com上三個較小的不安全設計,第一個不安全的設計(下圖)是當Booking.com向臉書註冊OAuth身分驗證服務時,並沒有明確指定redirect_uri路徑,因此臉書接受所有account.booking.com以下的路徑,如此攻擊者只要在account.booking.com網域下,尋找開放重定向漏洞,就有機會將用戶定向至惡意站點。

而攻擊者剛好發現Booking.com「我的儀表板」功能,存在開放重定向(Open Redirection)漏洞這個不安全的設計,系統會根據連結所帶的變數決定重新定向的位置,因此駭客只要精心設計連結網址的變數,就能夠將受害者導向惡意網站。

由於臉書仍會驗證過程中redirect_uri的一致性,因此如果一開始redirect_uri路徑,與之後遭到變造的redirect_uri路徑不一致,便會被臉書阻擋。但安全人員在Booking.com的行動應用程式上,發現第三個不安全的設計,使得攻擊者能夠繞過臉書對redirect_uri路徑的一致性驗證。

行動應用程式會以Post的方式,傳遞一串代碼給Booking.com系統,攻擊者只要替換掉其中的resultURi(下圖),便能夠順利將受害者導向惡意網站,藉此攔截受害者的登入憑證,最終使用偷來的憑證接管受害者Booking.com的帳號。

這項漏洞不只讓使用臉書帳號登入Booking.com的用戶受到影響,即便用戶是使用Google或其他登入方式創建帳號,攻擊者同樣也可以使用臉書登入功能接管其Booking.com帳號。攻擊者只要向使用Google身分驗證的Booking.com用戶發送惡意連結,由於受害者電子郵件地址相同,Booking.com便會自動關聯擁有相同電子郵件的帳戶允許登入。

研究人員提到,這類OAuth配置錯誤對公司和用戶造成重大影響,攻擊者可能會代替受害者提出未經授權的請求、取消預訂,或是存取敏感個人資訊,包括預定歷史紀錄、個人喜好或是未來訂單。

雖然要完成這項攻擊,需要結合三個不安全的設計,但安全人員提到,重點在於攻擊者有能力在redirect_uri使用不同的路徑,因此提醒應用程式在與臉書或是其他OAuth供應商整合時,配置中的redirect_uri必須要是寫死的路徑,而行動應用程式的問題也與redirect_uri有關,這個數值不應該來自用戶輸入。

熱門新聞

Advertisement