1500 萬粉的 YouTube 帳號是怎麼被黑掉的?

少數派 發佈 2024-03-01T00:13:49.850073+00:00

這一點在 Linus 的視頻里也有提及:YouTube 的母公司 Google 好像並沒有針對這類攻擊,對 Google 帳戶的安全系統做出任何改良——早在 Linus 被攻擊之前半年左右,中國大陸另一個有影響力頻道「電丸科技」創始人 AK 也遭遇偽名攻擊,攻擊的方式、手法、目標與 Linus 的遭遇如出一轍;

想像一下,你現在是一個坐擁千萬訂閱者的知名 up 主。一天半夜三點,你收到了同為 up 主好朋友的奪命連環 call,說你的頻道被「黑」了。等你鎮定下來、打開瀏覽器,你發現你的千萬訂閱頻道的圖標和名字,都被黑客改成了不知道哪來的商標,而且還在進行詐騙直播。你嘗試奪回頻道控制權卻無果,最後呆坐在電腦前束手無策,只能眼睜睜地看著你的頻道被站方直接封禁……

這就是 Linus Sebastian 在上周的遭遇。作為擁有 1500 萬訂閱者的 Linus Tech Tips 頻道主理人和眾多有影響力頻道的創始人,無論哪一個頻道被入侵,都有可能會給公司、眾多觀眾乃至社會造成不可估量的影響。

那麼,在 Linus 的公司里,到底發生了什麼?在發生入侵後的第二天,Linus 在他被找回的頻道里向觀眾娓娓道來頻道入侵事件的詳細始末。從 Linus 的講述中可以得知,黑客通過「偽名攻擊」(impersonate attack,又稱「身份偽造攻擊」)手段,通過 Linus 的雇員的無心之舉,成功入侵頻道,進而進行加密貨幣詐騙直播。

想要講清楚這種攻擊的手法,我們可以從一個(假想的)酒吧說起。

臉盲的酒保,和明文的會員卡

我們假設你經常去一家酒吧,每天下班都過得去小酌一口。這裡的酒保有臉盲症,每次跟他聊天都得說上很多背景信息,他才能跟上你的想法。但除此之外,這家酒吧賣的酒非常上乘,酒保也非常彬彬有禮,你也就將就在這裡,作為下班後的去處。

有一天,這家酒吧突然宣布了一個優惠活動:可以一次性購買大量的酒,直接享受折扣優惠。這時候你問酒保:你不是臉盲嗎?我在你這裡存了酒,你怎麼知道誰是誰呢?酒保嘿嘿一笑,拿出一個本子,說,你存了酒,我會給你一張會員卡。你下次把卡拿給我,我會在本子上劃掉你的消費。

你一想,好像也沒毛病,於是你當即下單,酒保也給了你一張會員卡。這張會員卡上寫著酒吧的名字和地址,以及一個會員卡號。第二天,你去酒吧里,你把會員卡掏出來,酒保看到之後會心一笑,拿筆在本子上核對、塗畫,然後就給你上了一杯酒。

我們把故事先暫停在這裡,回到相對更技術一些的討論上來。我們使用網際網路瀏覽器訪問網頁,所使用的技術叫做「超文本傳輸協議」(HTTP)。當初在設計這個協議的時候,設計者並沒有考慮到網站與用戶有交互行為的需求,因此 HTTP 就被我們稱作是無狀態的(stateless)協議——也就是在故事中的「臉盲的酒保」。

這在網際網路網站被用於信息單向傳輸、還沒有發展出用戶交互的年代來說沒有什麼問題,那時候的網民瀏覽網頁就是用來看看新聞。直到各種各樣帶有交互功能的購物、社交網絡等網站的興起,讓「臉盲的酒保」犯了難:我給你上完酒(加載完網頁),我就不認得你了,每次上酒還得問你一大堆東西,那可不成。

於是,Cookies——也就是上面這個故事裡的「會員卡」——就呼之欲出了。這是一個從網景瀏覽器開始就擁有的技術,它的作用就相當於是在你的本地瀏覽器中登記網站地址和一些能證實你身份的信息(也就是會員卡上的酒吧名字和會員卡號)。每次使用瀏覽器訪問網絡時,網站或多或少都會在你同意的前提下,向你的瀏覽器中寫入 Cookies 信息,包括你的登錄狀態和行為軌跡都會作為 Cookies 被存儲。這樣,只要 HTTP 這位酒保隨身帶一個小本子(你可以理解為後端伺服器的資料庫),就能輕鬆辨別每一位顧客。

說到這裡,你可能要問:那這 Cookies 和老萊的頻道被入侵,到底有什麼關係呢?這就得說到這張「會員卡」的一大硬傷——本地明文存儲,以及針對這個硬傷而出現的「偽名攻擊」手法。

如何利用偽名攻擊「偷酒」?

我們繼續剛才那個故事:你剛到公司的時候,隨手把公文包往桌子上一放,就去上了廁所,回來之後你也沒有發現什麼異常。直到晚上去酒吧喝酒的時候,酒保告訴你,你卡里已經沒有存的酒了。這不對啊,這卡里剩下的酒,少說還能喝一個月啊?你問酒保是不是看錯了。酒保說,在一個小時前,你把這卡里剩下的酒劃到了另外一個人那裡。你看,我這本子上還登記著呢。

在你的不懈調查之下,你終於查清了事情的真相:原來,你的同事在趁你去上廁所的時候,從你(沒有加鎖的)的公文包里找到了你的會員卡,記下卡號,又找人按著卡號做了一張假的會員卡,並在一個小時前把你卡里的酒劃給自己。由於酒保沒有在會員卡上做任何的防偽措施,加上酒保本身就是個臉盲,當然不會知道把卡劃掉的人不是你。

沒錯,現代瀏覽器的 Cookies 存儲系統,實際上是一個沒有加密的本地資料庫。加上桌面端作業系統的沙箱機制不完善或經常被繞過,就導致瀏覽器的數據,實際上被放在「沒有加鎖的公文包」里。只要稍不留神,任何圖謀不軌的人都可以在你的眼皮子底下,把你的公文包里的東西翻個底朝天,然後利用你的會員卡號來偽裝成你進行操作。

還記得剛才說過,「登錄狀態」會作為 Cookies 存儲嗎?這個「登錄狀態」,實際上是在你登錄之後生成一段隨機字符串。伺服器將這段字符串與你的帳戶聯結起來,然後要求你的瀏覽器作為 Cookies 存儲,之後,瀏覽器向伺服器發送請求時,只需要攜帶這段隨機字符串,伺服器就能知道是誰在發起請求。這段隨機字符串的學名,就叫做「會話令牌」(Session Token)。也就是說,如果有人獲得了你的會話令牌,理論上就獲得了你的「登錄狀態」,以你的身份在網站上進行操作了。

接下來,我們終於可以回到 Linus Tech Tips 入侵事件事發之初,看看到底發生了什麼。據 Linus 自己的說法,他的某位雇員在查收一封商業合作郵件時打開了郵件里附加的文檔,但電腦沒有任何響應。實際上,這是一個偽裝成正常 PDF 文檔的惡意軟體。

這個軟體,背後是一組針對在 YouTube 上有影響力的創作者的黑客。通過向創作者們群發郵件,黑客就會尋找「不小心」打開他們的惡意軟體的人,並通過由惡意軟體盜取的會話令牌來獲得創作者的 YouTube 頻道控制權。由於會話令牌是在登錄後分配的「登錄狀態」,因此偽名攻擊並不需要破解用戶的登錄憑證,包括密碼和驗證碼等,因為他們偷到的就是你的「登錄狀態」,所以這些憑證再安全也沒有用。

妥善保管「會員卡」,從正確的上網習慣做起

了解整個入侵事件的來龍去脈之後,我想你也許已經了解這張不起眼的「會員卡」的重要性了。在日常的網上衝浪過程中,想要避免 Cookies 被盜取,最重要的就是養成良好的安全意識和安全習慣。

例如:

  • 由陌生人發來的所有郵件(或者熟人發來的不明所以的郵件)中的附件或連結,一定不能直接打開,最好是通過殺毒軟體進行掃描後再打開。
  • 一定要先完整檢查文件後綴名和網站域名,確認無誤後再打開。
  • 如果有條件,在虛擬機或 Windows 沙箱中打開這些可疑文件和連結。
  • 最好將作業系統的「顯示文件後綴名」選項打開——這樣,偽裝成普通文檔的惡意程序就可以很輕鬆地「現形」。
  • 不要在從搜尋引擎隨便搜出來的不知名的小網站中胡亂下載東西。
  • 不要使用瀏覽器的密碼保存功能——對,這些密碼在瀏覽器里也會和 Cookies 一樣,被保存進「沒加鎖的公文包」里。

當然,這些安全提示不僅是「基操」,網上也有大量的文章來教你如何操作,這裡就不多展開,有興趣的可以自行上網搜索。這裡我們提及一些容易被忽視的文檔安全問題。

現代常用的文檔文件格式(例如 Word 和 PDF 等),或多或少都會帶有交互功能。這些功能有時被稱為「宏」,也有時直接叫 JavaScript APIs,等等,但它們都可以執行一些簡單的交互操作。很多黑客也瞄準這一點,將惡意代碼通過這些功能,寫入看似正常的文檔中,進而神不知鬼不覺地在你的電腦上安裝惡意軟體。

在通常情況下,這些交互功能在大多數軟體中是被禁用的。這也是 Word 或 Adobe Acrobat Reader 等軟體在打開一些文檔時候,會在軟體頂部彈出安全警告的原因——它們告訴你這個文檔試圖執行一些交互代碼,且已被默認禁用。但是,現實中有很多人,這些提示看都不看直接點「允許」,殊不知這樣的操作會給電腦和個人數據安全帶來極大威脅。

在各種軟體發出安全提示時,請務必養成仔細閱讀安全提示的習慣,了解允許和拒絕所帶來的風險;即使要允許,也一定要確保來源可靠、可追溯,切勿當一個只會批、不會讀的「批奏章皇帝」。歸根結底,還是需要養成對應的意識和習慣,畢竟小心駛得萬年船。

大公司,請把鍋背好

現在大多數的社交媒體和網站,為了提升用戶日常使用的體驗,通常都不會制定「超時吊銷登錄令牌」的規定,也不會經常要求用戶進行二次密碼驗證(即使是在修改敏感信息之前),這就為黑客進行偽名攻擊提供不小的便利——畢竟,如果登錄令牌會在很短的時間內或在異常使用時失效,或是修改頻道標誌、名稱等敏感信息之前需要進行密碼驗證,黑客能對帳戶進行的破壞行為就會大大減少。

這一點在 Linus 的視頻里也有提及:YouTube 的母公司 Google 好像並沒有針對這類攻擊,對 Google 帳戶的安全系統做出任何改良——早在 Linus 被攻擊之前半年左右,中國大陸另一個有影響力頻道「電丸科技」創始人 AK 也遭遇偽名攻擊,攻擊的方式、手法、目標與 Linus 的遭遇如出一轍;甚至現在去 YouTube 上以相關關鍵詞搜索,還能搜索到對應的加密貨幣詐騙直播(以及創作者們的各種抱怨)。

從這一點來看,Google 沒有理由不知道 YouTube 創作者們的頻道現在處於不安全的狀態下,而 Google 自己似乎在有意或無意地忽略了這些安全隱患。而要防止這些安全隱患,只需要幾個簡單的邏輯和存儲,就可以完成。

所以,在此呼籲各路網際網路公司,多在一些系統機制設計上,考慮到用戶的帳戶和信息安全問題。畢竟,「帳戶安全」這四個字很多時候並非只是鼓勵用戶拿到更高的「安全分」就能完成的;一些簡單的機制設計,就能為用戶的帳戶安全提升幾個數量級,同時很多時候並不需要以犧牲用戶體驗為代價。

關鍵字: