2015年4月12日 星期日

中國試運轉進擊的網路巨砲, 拿臺灣瀏覽器當砲彈; 人權網站覆滿砲灰

位於中國防火長城的 Great Cannon of China 如何運作? 採取守勢的防火長城 (Great Firewall of China) 已經無法滿足中國政府對網路世界的掌控慾。 最近網路巨砲 (Great Cannon) 上線試運轉, 顯示中國已有能力對全球任何一個主張言論與資訊自由的網站 (或者其他任何 「中共看不爽」 的網站) 全面炮火猛攻。 三月下旬, 程式設計師交換程式碼的網站 github 上面兩個與言論/上網自由相關的帳號/專案遭到 DDOS (分散式 阻斷服務攻擊)。 原來是境外訪客造訪中國某些網站時, 位於防火長城附近的伺服器竄改百度的程式碼, 惡意地讓訪客變成不知情的共犯 -- 他們的瀏覽器會不斷地向 github 要求取得特定兩頁面的程式碼, 造成 github 流量驟增, 難以招架。 而臺灣訪客則佔了 「不知情共犯」 的最大宗。

遭到鎖定攻擊的專案計畫是 中国的网络审查 纽约时报中文网 -- 兩個 github 專案都映射了 「中國老百姓不被允許看見」 的網站。 (請比較一二月的封存頁面跟三月底的封存頁面。) 事件簡要過程請見 新唐人 bbc arstechnica 報導。 惡意程式碼到底是由誰注入的? 來自各方的技術分析 [ Robert Graham GreatFire Erik Hjelmvik] 共同指向隸屬於 中國聯通 China Unicom 管轄範圍內的機器。

上圖是我的簡單解說。 在中國, 很多網站都內嵌百度的流量統計 javascript 程式碼。 流量統計固然也有一點點隱私疑慮, 但那是另外的問題。 百度的流量統計基本上跟 google analytics 意思一樣, 目的是幫助被造訪的站長了解自己網站的哪些頁面、 哪些時段、 對哪些瀏覽器比較受歡迎。 一般正常狀況, 訪客造訪 (不論是中國境內或境外的) 某個「請百度代為統計流量」的網站時, 就會被請求從百度載入一段無害的 javascript (js), 在訪客的瀏覽器上執行之後向百度登記造訪一次。 但是在這次的攻擊當中, 百度送出來的 (統計用) js 以及 (原本可能無害的) 商業廣告 js 走到中國骨幹網路要踏出國門之前, 就被隨機攔了下來。 約有 1.75% 的訪客會收到 竄改過的 js, 進入無窮迴圈, 無限期向受害網站 (github) 要求閱覽兩個特定頁面。 其餘 98.25% 的訪客則會收到正常的 js, 不參與 DDoS 攻擊。 也就是說, 如果有必要的話, 中國網路巨砲的火力還有潛力可以提升五六十倍

位於中國防火長城的 Great Cannon of China 如何運作? CitizenLab 詳細版 右圖是加拿大多倫多大學公民實驗室的詳細解說。 他們長期關心公民權利與隱私相關的資訊網路科技, 先前曾經揭發許多國家政府用以監聽公民的 FinFisher, 以及 Nokia/RIM/蘋果的共犯關係。 針對此次事件, 他們也推出 研究報告。 他們把中國新上線的這個技術稱為 "The Great Cannon" (大伽農砲)。 也請見 「網路攻防戰」 的中文摘要, 以及 Dave Lin 的噗浪

CitizenLab 測試的兩個例子顯示: 網路巨砲跟防火長城都位於同一地點 -- 一個例子是在中國電信集團公司 (China Telecom) 另一個例子則是在中國聯通 (China Unicom) 的管轄範圍內。 兩者的程式碼有一些共同特性; 但看來是彼此獨立的兩個系統。 網路巨砲比較類似於 美國國安局的 Quantum 系統, 都是國家級的網路攻擊工具。

不知情的幫兇來自哪些國家或地區? GreatFire.org 把伺服器記錄提供給 CitizenLab 分析。 被中國網路巨砲拿來當做砲彈的不知情訪客當中 (以不同的 ip 來算), 臺灣位居榜首, 其次是香港。 兩者加起來佔了全部砲彈流量的 2/3。 這很可以理解。 採用百度流量統計的網站, 多半是中國網站。 扣除 (不會被抓來當砲彈的) 境內訪客後, 中國網站的主要流量來源, 可以想像正是臺灣跟香港的訪客。

CitizenLab 並且做了一些政治及專利申請分析, 推測設計網路巨砲的單位很可能是建構防火長城的單位 -- 國家計算機網絡與信息安全管理中心 (National Computer Network and Information Security Management Center), 也就是防火長城之父方濱興主導的單位。

我個人則傾向相信 GreatFire.org 所做的推測: 主導者是 2013 年才成立、 由習近平擔任組長的 中央網絡安全和信息化領導小組。 GreatFire.org 並引用該小組辦公室主任 魯煒 自己的話來打中國政府的臉:

我們應該建立維護安全的網路秩序。 網路是全球分享資訊的平臺。 這是一個具有共同利益的社群。 網路犯罪、 駭客攻擊、 侵犯隱私等等議題挑戰著所有的國家。 在網路空間裡, 「為了保護自己國家的安全而犧牲其他國家的安全」 已經越來越不可行。 為了追逐自身的利益而丟棄他人的利益, 這是不切實際的做法。 中國也是駭客攻擊的受害者。 我們一直都堅定反對任何形式的網路攻擊。

當然, 身在臺灣的我們深深地了解到: 「以某人自己說的話來打臉」 只對那些有羞恥心、 願意認錯的人才有用。 對我們而言, 最迫切的實際行動可能是: 趕快開發軟體, 判讀並丟棄那些 「由 Great Cannon of China 所產生、 惡意注入的封包」, 或是採取其他防範惡意 js 的措施, 以免日後再度成為不知情的幫兇。 如果重複發生, 臺灣一直都位居榜首, 那麼這將不僅僅是民眾浪費電腦資源的問題而已, 同時也事關著臺灣的國際形象。

此外, 這次試發功還算客氣。 我們過去太天真, 相信中國政府面對 「屬於全球的網際網路」 會自我節制, 所以完全不曾想像他們竟會 在國家骨幹網路的層級 境外 訪客植入 js 程式碼。 既然都已植入 js 程式碼了, 很自然的下一步就是掌控訪客的電腦。 從程式設計的角度來看, 要以相同的方式在毫無戒心的境外訪客的電腦裡植入惡意軟體 -- 例如把這些電腦都變成未來殭屍網路的生力軍,或是竊取個資 -- 這些都是件輕而易舉的事。

如果攻擊的對象是臺灣的網站呢? 就像 2010 年的 中韓潰客攻擊行政院 的事件, 或是在關鍵時刻 (公民運動期間?) 以網路巨砲攻擊某些關鍵網站? 如果臺灣自己的網站被來自臺灣島內的不知情共犯砲彈打翻, 那就真的令人哭笑不得了。

長遠看來, 如何因應中國改採攻勢的網路戰爭, 這將會是一個需要技術、 政治、 經濟多領域腦力激盪的巨大挑戰。 過去太多事件顯示: 比起提升資訊安全, 我們的行政院更有興趣的, 其實是 管制網路 監聽公務員。 民間如果沒有行動, 更別期待政府會正視這個問題。 希望臺灣還有夠多學者有心力、意願、勇氣可以關心評鑑點數以外、 真正影響你我未來的事情。

* * * * *

本文也刊載於 Inside

手邊沒電腦; 口頭推薦本文嗎? 可以請您的朋友搜尋 「」 或 「」。

6 則留言:

  1. 使用noscript或ghostery這類擴充套件防止執行來自百度的js不知是否能作為暫時的解決方案?

    回覆刪除
  2. 樓上方式應該可以暫時解決
    但既然中國大砲可以隨意亂改百度的流量,理論上也可以改其他網站的
    如果一直用這種方法,就會變成像現有的防毒軟體一樣,總是會有漏網之魚,只是防的是網頁內容

    如果原本的網頁流量有加密或許還可以稍微防止被竄改,但如果中國大砲去偽造那些加密網站的憑證(前些日子的新聞)加上中間人攻擊,技術上依舊可以竄改使用者收到的加密網頁內容
    http://www.ithome.com.tw/news/94784
    雖然Firefox和Chrome因為這件事最近已經預設不信任CNNIC憑證,但對於其他瀏覽器依舊有效
    http://www.bnext.com.tw/article/view/id/35854
    https://blog.gslin.org/archives/2015/04/03/5702/

    問題真正的根源是所有經過中國的網路流量都可能被竄改,真正治本方式就是不再信任任何來自中國的網路流量。
    目前中國還沒有做到這種地步,只有時間才能證明他們會不會賠掉自己的信用

    回覆刪除
    回覆
    1. 可以手動移除CNNIC憑證。

      防火牆可以阻擋 Quantum insert system 和 Great Cannon 植入惡意軟體?

      刪除
  3. NSA:對穿越國境的封包全監控
    北京:對國內封包全監控,對穿越國境的封包全竄改

    回覆刪除
  4. 想請問一下前陣子我在使用Firefox和Chrome對於百度的網頁有封鎖過,跟這個有關係嗎@@?

    回覆刪除
  5. 史無前例!46萬支中國手機發動DDoS洪水攻擊
    http://www.ithome.com.tw/news/99013

    回覆刪除