跟著WOMENT女孩,吃美食、訪景點、挖掘在地的好故事

臉書爆發重大資安事件,攻擊者可透過漏洞取得個人帳號的「access token(存取權限)」,影響層級達9千萬帳戶之多!

14180

臉書重大資安攻擊

從09/28晚間開始,相信大家都有發現臉書帳號、Messenger都被登出,必須重新登入才可使用。有人懷疑是否被盜用帳號。結果…原來是臉書發生嚴重資訊安全事件。根據臉書官方再09/28發出的 資訊安全更新報告 指出:

在美國時間09/25下午,工程師團隊發現一個影響層級達5千萬帳號之多的資安問題,這個程式碼漏洞發生於『View As (其他用戶視角檢視)』功能,這個功能主要是讓用戶可以從他人帳號的角度 (模擬他人帳號登入來看自己的動態),用來檢查個人動態可被看見的內容是否符合自己的隱私設定。然而,在2017年7月發佈的影片上傳套件存在一個漏洞,這個漏洞會產生一組可以用來存取Facebook APP的Access Token (存取權杖)。這個權杖等於是一把無須登入臉書APP就能直接存取帳號內容與操作功能的鑰匙。不幸地,在上述『View As (其他用戶視角檢視)』功能中,原本應該只提供唯讀的檢視動作,在檢視畫面下,一個能祝福朋友生日的發文套件中,竟可實際操作功能,並且還能發佈影片。影片上傳漏洞、預覽唯讀卻能實際操作、祝福生日功能用到2017年影片上傳的漏洞,這三個錯誤同時發生造成這次嚴重的資安危機:

系統不是產生特定帳號 (例如:討厭不想讓他看到特定發文的人) 預覽自己動態的權限,卻直接產生特定帳號的Access Token (存取權杖),還存放在檢視畫面的HTML頁面中。白話說,就是原本你想模擬某人看你動態的內容,卻能在檢視畫面中,取得他的臉書APP帳號的Access Token (可以無密碼進入帳號操作) 。從技術角度分析,這看起來像是為了讓你擁有特定帳號的檢視角度,不是獨立提供這個權限,而是直接讓你登入對方帳號來看自己的動態。(所以你就取得對方的登入鑰匙了 orz…),然後你就可以登入他的帳號,以同樣方法取得他更多好友的登入鑰匙。

目前臉書官方宣稱已進行的防護作為包含:

  1. 修補漏洞,並通報執法部門。
  2. 重置已知受影響被取得token的5千萬個帳號 (使access token失效),並預防性重置另外4千萬在過去一年又被用View As查詢過的帳號。
  3. 暫時關閉『View As (其他用戶視角檢視)』功能。

第二個動作就是造成大家帳號被登出的原因。原本我們登入臉書後,之所以能持續使用,就是因為在第一次輸入帳密登入後,會取得這個access token 存取權杖,並儲存在電腦或者手機上,這樣臉書才能持續判斷是有權限的使用者本人正在使用,而不需每次使用臉書都必須登入。

Access Token 存取權杖機制示意圖

存取權杖的機制說明

上述示意圖,就是說明access token是在帳號登入後,臉書會產生的一個『通行證』,通常在用戶層級它的效期是永久的(直到你登出)。因此這個存取權杖若被第三方駭客取得,他就可以利用這個通行證,無需輸入帳密,進入你的臉書帳號進行操作。(題外話:坊間許多投機應用程式會偷幫你發文或者留言,就是利用一些暗黑機制,取得特定功能的access token存取權杖)

臉書特別說明這個安全漏洞起緣於2017年7月的一個影片上傳功能更新,而在『其他用戶視角檢視』這個功能下被發掘到漏洞,算是功能交錯下產生的不預期漏洞。不幸地,駭客發現這個漏洞並取得一個access token存取權杖,然後以此帳號一個接一個的挖出更多用戶的access token。然而目前調查還在持續進行中,若影響層級有變化,臉書會即時更新。

這次事件,因為駭客取得的是access token (存取權杖),而非使用者密碼,所以使用者無需更改密碼,但如果擔心,仍可到下列這個連結(臉書的帳號設定頁面),查看自己的臉書帳號目前有在哪些裝置被登入,可以自主登出後,再重新登入。

點我:可查看目前帳號在哪些裝置被登入

希望大家都能安全度過資安危機,也順便分享access token的機制讓大家了解,未來在外部網站使用facebook登入功能時,可以更謹慎看待『授權內容』,外部網站在您第一次使用Facebook登入功能時,可能會要求特殊授權,如果你同意了,就等於同意產生一組access token給他們使用 (可以讓外部網站在你授權的功能下,用你的帳號暢行無阻,多數都是有效期的),我們常見的盜發廣告文或者透過你帳號發詐騙訊息,就是這樣造成的。

如何知道我的帳號,有被哪些應用程式或者網站使用?

點我:可查看外部應用程式或者網站的使用授權設定

如果有發現未知的網站或者應用程式,可以勾選然後按下『移除』按鈕,這樣該網站手上的access token就會失效。有人會問:移除會不會導致無法登入某個網站,答案是:如果你移除特定網站,下次你要使用該網站的fb登入,就會再重新要求你授權一次而已(給他們新的access token)