近日印度安全研究人員 Bhavuk Jain 發現並通報 Sign with Apple 系統內一個重大漏洞,獲得蘋果頒發 10 萬美元獎金。
這項漏洞可讓遠端攻擊者繞過蘋果的驗證機制而接管受害者透過 Sign with Apple 註冊的第三方服務或應用程式帳號。蘋果獲報後已經修補了漏洞。
本文目錄
Sign with Apple 原是為了安全登入
蘋果於去年 WWDC 大會上公佈的 Sign with Apple 是一種隱私登入系統,允許用戶不必洩露真正的電子郵件信箱(也用於 Apple ID)登入第三方應用程式。在註冊第三方應用程式或網站前,蘋果讓用戶有二種選項,一是提供自己的 Apple Email ID,或是隱藏起來,由蘋果產生一個中介 Email ID 來註冊。
Jain 解釋,當蘋果伺服器透過 Sign with Apple 驗證使用者身份時,會產生一個包含秘密資訊的 JSON Web Token (JWT),應用程式就是用這個資訊來驗證使用者的身份。這個漏洞位於用戶端向蘋果驗證伺服器發出呼叫前,在用戶端裝置上驗證使用者這段過程中。
Bhavuk 發現,雖然蘋果要求使用者發出呼叫前登入蘋果帳號,但並沒有驗證向蘋果伺服器呼叫 JSON Web Token 的是不是同一人。因此,這給了攻擊者一個機會,提供任何 Email ID 來呼叫 JWT,而這 JWT 的簽章也可透過蘋果公鑰驗證為有效。也就是說,攻擊者可在這個過程中用任何 Email ID 假造 JWT,然後存取並接管受害者的應用程式帳號。
Apple 條款形同強迫應用開發者加入 Sign with Apple
研究人員證實,即使使用者不透露自己的 Email ID 給第三方應用程式或網站,還是會被劫持其帳號。而由於去年蘋果要求支援社交平台帳號登入的應用程式,也必須支援 Sign with Apple,因此影響層面很大,不論是 Dropbox 、 Spotify 、 Airbnb 、 Giphy 等帳號都面臨被劫持的風險。
不過,如果這些 App 同時提供使用多因素驗證,則可以降低用戶帳號劫持可能性。
研究人員今年 4 月通報蘋果後,蘋果已經完成漏洞修補,並且依據抓漏獎勵方案,發給這名研究人員 10 萬美元獎金。蘋果也指出,經過調查,證實沒有任何帳號因此漏洞被駭入。
