Sign-in-with-Apple 0 day漏洞可劫持任意賬户
Apple公司近日通過漏洞獎勵計劃向印度漏洞研究人員Bhavuk Jain發放了10萬美元的漏洞獎勵,感謝其發現的影響'Sign in with Apple'系統的嚴重0 day漏洞。遠程攻擊者利用該漏洞可以繞過認證,接管目標用户通過'Sign in with Apple'功能註冊的第三方服務和app上的賬户。
'Sign in with Apple'特徵是2019年蘋果WWDC大會上引入的一個新的保留隱私的登陸機制,允許用户在不泄露其真實郵箱地址(Apple ID)的情況下通過第三方app登入賬户。
Bhavuk Jain稱,該漏洞產生的原因是蘋果在初始化來自蘋果認證服務器的請求前,在客户端驗證用户的方式存在問題。在通過'Sign in with Apple'認證用户時,服務器會生成一個含有第三方應用用來確認登陸用户身份的機密信息的JSON Web Token (JWT)。
Bhavuk發現雖然蘋果要求用户在初始化請求之前要登入蘋果賬户,但在下一步並不會驗證是不是相同的人在請求JSON Web Token (JWT)。因此,現有機制缺乏一個驗證的步驟,會導致攻擊者提供了一個屬於受害者的額外的Apple ID,誘使蘋果服務器生成用受害者身份登入第三方服務的JWT payload。
Bhavuk稱,可以請求註冊了蘋果ID的Email的JSW,當這些token的簽名經過蘋果的公鑰驗證後,就是有效的。也就是説攻擊者可以通過鏈接任意郵箱Email ID和獲取受害者賬户的訪問權限來偽造一個JWT。
研究人員向Hacker News確認即時用户選擇向第三方服務隱藏郵箱地址,攻擊者仍然可以利用該漏洞來用受害者的Apple ID來註冊新的賬户。
該漏洞的影響非常嚴重,可以用來完全接管賬户。因為許多開發者都使用了Sign in with Apple功能,比如Dropbox、Spotify、Airbnb、Giphy等。雖然該漏洞位於apple側的代碼中,但研究人員稱一些提供'Sign in with Apple'的服務和應用可以使用雙因子認證的方式來緩解這一漏洞帶來的影響。
Bhavuk已於4月將該漏洞提交給了apple公司,蘋果也發佈了該漏洞的補丁。除了發佈漏洞補丁外,蘋果公司稱還分析了服務器日誌,並沒有發現任何apple賬户被利用的期情況。