2017年3月7日 星期二

常見迷思:自由軟體真的比較不安全嗎?

LibreOffice 夠安全嗎?有沒有程式漏洞?程式碼公開會不會造成大家輕易放入惡意程式? 
對於不用付費的開源軟體,可能會有人覺得哪有可能那麼好康的事,一定有哪些地方不太好....

在我們這十幾年推廣自由軟體的過程中,這是個經常出現的問題。前年的數位路平活動,也有縣市政府資訊部門的主管提出相同的問題;最近兩三年在推動 ODF/LibreOffice 時,這個問題更是經常被提出。好似只要 LibreOffice 出現一個安全性漏洞,就會造成整個資訊系統崩潰一般。

自由軟體的程式碼是公開的,真的因此就變得「不安全」嗎?

沒有耐性往下讀的讀者,這裡先說我的結論:沒有一套軟體可以保證百分之百沒有安全漏洞(除非你要把 print "Hello World!" 也算一種「軟體」)。然而,我們可以用一些事實與數據,來說明自由軟體處理安全漏洞的方法、資訊是公開的,而商業公司、私有版權軟體處理安全漏洞的方法、資訊則是一個黑箱要不要修正由商業公司自行決定

以下我們就分為數據與事實來說明。

數據:

  • 2016 年 MS Office 與 LibreOffice 的 CVE 資安通報清單

    2016 年 MS Office 的 CVE 通報清單
    2016 年 LibreOffice 的 CVE 通報清單

    清單中 2016 年所回報的 MS Office 資安漏洞總共 48 個,扣除「不含 Office 2013/2016 的問題」(但有在其他新產品中出現,並牽連到相關舊版產品),包括  #2, #3, #7, #9, #10, #12, #13, #15, #16, #21~#23(同一個問題), #28~#31(同一個問題), #33, #34, #36, #43 共計 19 個,Office 2013/2016 相關的 CVE 資安通報有 29 個。至於嚴重性,大家可以在連結中看到,一目瞭然。

    LibreOffice 呢?2016 年總共有 3 個,其中兩個是同一個問題。2015 年呢? 5 個。大家可以自行點進連結參考。
  • Coverity Scan:LibreOffice 5.2 版創下世界紀錄,在公正第三方的 Coverity Scan 程式弱點掃描中找不出任何缺失。
    Coverity Scan 是一個可以用來掃描、找出與提供修復 C/C++, C#, JavaScript, Ruby, 與 Python 程式碼中的問題與缺失的服務。LibreOffice 5.2 版釋出時,在 Coverity Scan 上掃描出來的缺失比率是 0。

    0!  ( 是 0 不是 0 階喔,科科)
    相較於開源軟體的平均缺失比率 0.61,私有軟體的平均缺失比率 0.75,LibreOffice 程式碼的品質無庸置疑。
    【附註:2017 年 3 月份所掃描出來 LibreOffice 最新編譯版本的程式碼缺失共有 13 個,比率為 0.03】

    微軟的 Office 呢?抱歉,沒有數據。我想微軟可能沒有透過 Coverity Scan 掃描,或有自己的掃描機制,或掃描了但不願公開。沒有人可以強迫他們,不是嗎?

事實:
  • 義大利國防部於 2015 年 9 月宣布全面採用 LibreOffice / ODF

    一個很簡單的事實:LibreOffice 若不夠「安全」,國防部這樣的單位敢採用嗎?
  • 2016 年 2 月 17 日,CVE 發出通報,指出 LibreOffice 5.0.4 以前的版本中的 LotusWordPro 格式(對不起,我沒聽過這個)的 filter 有一個安全性漏洞,可以引發阻斷式攻擊。(前面的 CVE 通報中已經說過了)2 月 18 日包括 twitter / FB 等許多社交媒體上開始流傳此一消息,因此我發了一封信去國際社群詢問,這個問題是否有處理。

 幾乎是立即的,我得到了回覆,在 5.0.5 與 5.1.0 已經修復。


社群朋友並且給了我這個連結:LibreOffice 網站上公開之資安通報清單
所有 LibreOffice 相關的資安通報都可以在上面查詢。
  • 相對的,我們來看看這個案例:IE 11 有嚴重的漏洞,可以讓惡意網站不斷顯示影片或彈出式視窗,即使使用者離開了該網站也是一樣;此漏洞甚至可以執行任意的 JavaScript 程式碼。然而,此問題的發現者決定不向微軟回報,因為先前所回報的多個程式漏洞,微軟均不予理會。
    (原文:Even worse for IE11 users, there's no fix available for this issue because the researcher has decided to stop reporting bugs to Microsoft after they've ignored many of his previous reports. )
    文中甚至提供了一個漏洞的示範網站。

    或許有人會說我只挑不利於私有軟體的個案來講。然而我想說的是,這個個案顯示的問題在於:當商業公司基於成本投入的考量,例如 IE 之於微軟,或 Flash 之於 Adobe,兩者都是即將步入歷史,公司投入人力去做修改已經不合算的狀況,公司決策決定忽略不管。這種狀況下,沒有任何人可以要求或強迫商業公司進行修改。然而,自由軟體的公開特性,這種事幾乎不會發生。
我們還可以找到一些其他的例子,但我相信以上的數據與事實已經足夠說明:沒有一套軟體是完美沒問題無漏洞的,甚至連 OpenSSL 這種與資安防護加密相關的軟體都會發生漏洞;然而在自由軟體的領域,大家可以看到的是,通常漏洞被公開時,絕大多數都已經修改完畢,使用者要做的只是更新軟體版本。

最後,給大家一個有趣的案例。昨天我在朝陽科大聽了一場很不錯的使用者資安防護的演講。裡面提到了一個觀念:在現在物聯網的時代,只要能往外連線的裝置設備,都有可能會出現漏洞而被控制;例如情趣用品

1 則留言:

  1. 0! 是 1 喔 ~!!!

    ref:
    https://www.youtube.com/watch?v=Mfk_L4Nx2ZI

    回覆刪除