Facebook又被黑客耍了,這次有近1億用戶受影響
2018年9月28日上午9點41分,F(xiàn)acebook在其新聞官網(wǎng)(https://newsroom.fb.com )上發(fā)文表示:該公司發(fā)現(xiàn)了一個安全漏洞,黑客可利用這個漏洞來獲取信息,可能導致近5000萬用戶信息的泄露。
在這篇新聞稿中,F(xiàn)B產(chǎn)品管理副總裁蓋·羅森 (Guy Rosen) 撰文表示:
1、技術(shù)團隊在9月25日下午發(fā)現(xiàn)了這個漏洞。
2、此安全漏洞是2017年7月份出現(xiàn)的,在2018年9月25日被識別、并于9月27日被偵測到。
3、目前 FB 基本確定,已經(jīng)有黑客利用這個漏洞發(fā)動攻擊。
4、9月27日早間,大約有5000萬個Facebook賬戶受到攻擊。
5、在問題發(fā)現(xiàn)后,F(xiàn)B對受影響的5000萬用戶的訪問信息進行了重置。
6、除了受影響的5000萬用戶外,F(xiàn)B還對另外4000萬用戶同樣做了同樣的重置操作??傆嬘绊懹脩?000萬。
7、Facebook在9.26晚上稱其已經(jīng)修復了這個漏洞,并已通知美國聯(lián)邦調(diào)查局(FBI)和愛爾蘭數(shù)據(jù)保護委員會(Irish Data Protection Commission)等執(zhí)法機關(guān)。
在披露這一消息之前,F(xiàn)acebook股價已經(jīng)下跌了1.5%左右,消息傳出后進一步走低,到收盤時下跌2.59%報164.46美元,盤中一度觸及162.56美元的低點。
漏洞詳情
這個安全漏洞存在于 Facebook 的“View As”功能的代碼中。
由于 FB 的隱私設(shè)置極為繁瑣,用戶經(jīng)常不知道別人看得見、看不見自己發(fā)布的某些信息。
View As 這個功能可以讓用戶以第三人稱觀看自己的賬戶,確認隱私設(shè)置是否符合自己要求。

FB 透露,利用這個漏洞黑客竊取了用戶的“訪問令牌”(access token)。
訪問令牌的作用是為用戶保存密碼,這樣用戶就不用每次登陸都輸一次密碼驗證身份。
取得令牌后,黑客可以黑進別人的賬戶,看到設(shè)置為不對外公開的帖文和信息。
作為應(yīng)對,F(xiàn)B 對受到漏洞影響的5000萬用戶以及可能成為進一步攻擊目標的另外4000萬用戶,進行了訪問令牌重設(shè)。
什么是access token
通過官方給出的資料,我們無法確認黑客利用的漏洞中的access token到底是如何使用和泄露的。
不過我們可以拿OAuth2來介紹一下access token的作用和如何保證安全。
OAuth 2 是一種授權(quán)框架,允許第三方應(yīng)用通過用戶授權(quán)的形式訪問服務(wù)中的用戶信息,最常見的場景是授權(quán)登錄;再復雜一點的比如第三方應(yīng)用通過 Github 給開發(fā)者提供的接口訪問權(quán)限內(nèi)的用戶信息或倉庫信息。OAuth2 廣泛應(yīng)用于 web 、桌面應(yīng)用、移動 APP 的第三方服務(wù)提供了授權(quán)驗證機制,以此實現(xiàn)不同應(yīng)用間的數(shù)據(jù)訪問權(quán)限。
OAuth2中最典型的Authorization Code 授權(quán)模式,其大致流程如下:

我們把OAuth2的整個認證過程大致分為三個階段。
第一階段主要是向用戶取得授權(quán)許可,對應(yīng)圖中的第1、2步;
第二階段主要是申請訪問令牌(access_token),對應(yīng)圖中的第3、4步;
第三階段就是使用access_token獲取用戶數(shù)據(jù),對應(yīng)圖中的第5、6步。這一過程中涉及了不少敏感參數(shù)和數(shù)據(jù),access_token某種程度上來講就是用戶的session id。
也就是說,整個認證過程中,一旦黑客獲取到了access_token,即使他不知道你的用戶名和密碼,也可以訪問到你的用戶數(shù)據(jù)。
OAuth2到底安不安全
可以這么說,OAuth2協(xié)議本身是相對安全的,至少比純用戶名、密碼形式的登錄要安全的多。
如果發(fā)生像FB那樣的access token泄露問題的話,至少密碼是沒有泄露的,只要網(wǎng)站重置用戶的access token,那么之前的舊的access token就會失效。這種情況,要比用戶名和密碼泄露影響會小一些。
但是,由于OAuth引入的漏洞也很多,大多是因為使用不當導致的。烏云曾披露過很多很多由于OAuth實施不正確導致的網(wǎng)站漏洞:
- CSRF劫持第三方賬號
WooYun:大麥網(wǎng)存在賬號被劫持風險
WooYun:美麗說oauth漏洞可劫持賬號
- 對參數(shù)沒有進行驗證泄露code
WooYun:騰訊微博開放平臺openid、openkey截取
WooYun:搜狐微博OAuth2.0獲取Authorization Code過程隱患
- 重放攻擊
Inwatch-InHealth客戶端接口若干安全bug打包
- 應(yīng)用冒充,獲取token控制用戶賬戶
@囧虎張建偉,新浪微博Android客戶端SSO授權(quán)認證缺陷
WooYun:騰訊開放平臺單點登錄SSO方案設(shè)計缺陷導致釣魚風險
- 直接用平臺方用戶名和密碼獲取access token
WooYun:開心網(wǎng)android客戶端暴力破解漏洞,測試2000帳號,成功132個
315晚會:安卓系統(tǒng)手機應(yīng)用軟件嚴重竊取用戶資料
關(guān)于OAuth2的具體安全防范這里就不展開了。感興趣的朋友可以自行Google?;蛘呶液竺鎲为毘鲆黄恼律钊敕治鲆幌?。
后話
FB的漏洞時間曝光后,F(xiàn)acebook CEO馬克·扎克伯格(Mark Zuckerberg)迅速對該事件作出回應(yīng),稱:“這是個非常嚴重的安全問題,我們正在非常認真地對待。”
Facebook 是全球最大的社交平臺,有22億的用戶。在創(chuàng)立至今的15年里,這家公司也較少發(fā)生黑客攻擊導致信息泄漏的事件。嚴格來講,較大規(guī)模和影響惡劣的黑客事件,僅發(fā)生過一兩次。
2013年,某個程序員自己搞砸了代碼,代碼核驗也未發(fā)現(xiàn),導致超過600萬用戶的聯(lián)系資料泄露。
大約在2014、15年,數(shù)據(jù)分析公司 Cambridge Analytica 濫用 FB 的開發(fā)者平臺,對超過8700萬用戶進行非法的數(shù)據(jù)挖掘,出售給部分美國本土競選的參選團隊,用于干預(yù)大選,F(xiàn)B 的高層官員明知此事卻沒有任何作為。
今年年初,扎克伯格曾因這一丑聞出席國會聽證會。FB 被迫接受調(diào)查,股價在當時一度蒸發(fā)數(shù)百億美元。
如今調(diào)查仍未結(jié)束,F(xiàn)B 還沒從 Cambridge Analytica 丑聞緩過勁來,就又發(fā)生了黑客入侵。
當然,嚴格來講,F(xiàn)B 也是受害者。遺憾的是,同情它的人越來越少了。這次 FB 公告發(fā)出后,網(wǎng)上一片罵聲,基本意思就是:
“費那么大勁研究如何挖掘我們的數(shù)據(jù)賺錢,怎么就不能多研究研究你們的漏洞。”
在事件發(fā)生后,美國主流媒體的報道中不約而同地引用了扎克伯格之前聽證會上的宣誓:
“我們有責任保護你們的數(shù)據(jù),如果我們沒法做到,那么我們也不配給你們提供服務(wù)。”
參考資料:
Facebook 又被黑客涮了,這次又坑了快一億用戶!(https://www.pingwest.com/a/177864)
OAuth研究&學習筆記(http://www.tasfa.cn/index.php/2016/03/26/note_of_oauth/)
【本文是51CTO專欄作者Hollis的原創(chuàng)文章,作者微信公眾號Hollis(ID:hollischuang)】