2017年3月31日 星期五

開源程式碼品質檢測系統 SonarQube



SonarQube 開源程式碼品質檢測系統,它有提供雲端版本,不過雲端版本只提供用來檢測開源專案,若您要檢測自己的專案且不公開,可以採用自建版,於公司內做更多的分析與應用。

支援超過 20 種程式語言,例如 C/C++、C#、Objective-C、JavaScript、VBNET、PHP、Swift、HTML、PL/SQL、Python、COBOL(驚!)、... 等。

透過 SonarQube 自動找出潛在問題並提供建議的解決方式,協助大量節省許多人工檢測時間。



本文轉自「節省工具箱 / Jason Tools」部落格。

開源弱點掃描系統 OpenVAS 推出最新版本 9



開源弱點掃描系統「OpenVAS」,24 個月後最新的 9 版終於來了。

其中一個亮點是改進了網頁介面的呈現,看看上圖這個 Dashboard,順眼多啊。

OpenVAS 9 Release 說明頁:
http://www.openvas.org/news.html#openvas9 

OpenVAS 9 的 VM 檔也已經準備好,下載頁:
http://www.openvas.org/vm.html



本文轉自「節省工具箱 / Jason Tools」部落格。

2017年3月29日 星期三

企業資料備份的開源方案推薦




現代企業正處於「十倍速時代」,所有知識與資料的數量以非常驚人的爆炸性成長往上攀升,也因為所有的營運都與數位資料息息相關,如何儲存與備份就是一個令企業資訊單位非常頭痛的問題。



頭痛的問題點在那裡?


「儲存系統運作」

需要考量效能與管理難易,此議題可參考另一篇拙作 企業應用經驗:開源儲存系統「FreeNAS」 。


「容量無限需求」

海量數據需要依賴龐大的儲存容量,如果已經有了良好的儲存運作中心,剩下要擴充容量就只有一個因素:「錢」。 
經費是所有資訊單位的痛,關於此議題同樣可參考拙作 企業應用經驗:開源儲存系統「FreeNAS」 。



「做好備份機制」

即便解決了上述兩項問題,仍然有最後一道關卡「備份」。 
別忘了,資料不是存在良好的伺服器與硬碟上就永遠不會出問題,在電子的世界裡,沒有人能保證所有系統維持 100% 的妥善率。 
而這個備份問題,就是本篇要討論的主要題目。



資料備份又有什麼問題?


備份的問題非常複雜,除了備份軟體的功能與支援度,還有備份目的地這件事需要考量。

早期高容量儲存技術,主要以磁帶機、磁帶櫃為存放標的,隨著硬碟技術逐漸進步與成本降低,備份方式已經轉移到硬碟來做存放,例如搭配 NAS 網路儲存系統作為備份伺服器。



然而再怎麼建置備份系統,只擺一份還是危險,若整座機房發生災難,則全部毀於一旦。

因此,衍生出「異地存放」的需求,但是中小企業那裡來的錢可以找到適合的場地與線路擺放第二個異地備份裝置?

幸好,這幾年雲端服務非常火熱,相關的服務供應商雨後春筍般陸續成立,Amazon、Google、Microsotf 等紛紛投入市場,一夕之間,異地備份的問題迎刃而解。

也就是說,備份趨勢的改變,由 磁帶 ("T"ape) -> 磁碟 ("D"isk) - > 雲端 ("C"loud) 方向進行蛻變。


在備份策略上,可以進行多種應用,例如,從運作的系統先備份到另一台同樣機房裡的備份伺服器,再由此備份伺服器轉存到磁帶上,再把磁帶運送到其它地點,完成兩個備份目的端,這就是「D2D2T」的模式。


同樣道理,最後一端也可以是 NAS 伺服器,並且擺在異地,這是「D2D2D」。

最新的模式,則是將最後一端直接上傳到雲端儲存,完成真正的異地備份,這就是「D2D2C」。


有什麼好方案介紹?


當然有,市面上已經有許多發展成熟的備份軟體,在不少企業中都已應用的非常廣泛,尤其是前者,我也曾經非常喜歡。






在雲端上傳部份,我也曾經使用過 NAS 系統提供的應用來做 Google Drive 上傳,例如 Synology 群暉科技 NAS 設備所提供的功能。




那麼,我的開源選擇呢?


當然,還是要找找究竟有沒有開源軟體可以符合我的需求?

對我來說,最重要的評估項目有幾點:

  1. 具有靈活設定排程備份。
     
  2. 支援壓縮,用以節省備份容量與流量。
     
  3. 提供檔案加密,來避免備份檔被竊取或外流造成機密曝光。
     
  4. 容易操作的還原介面,以時間點為主要選擇項目。
     
  5. 多種備份目的地支援,包含 Local Driver / Folder、FTP、SFTP、CIFS、Google Drive / Cloud Storage、Amazon Cloud Drive / S3、Azure BLOB。
     
  6. 可以設定要切割上傳的容量大小,這個非常重要,因為許多雲端空間都有單檔容量的上限。
     
  7. 跨平台支援,包含 Windows、Linux、MacOS。
     
  8. 支援 VSS (Volume Shadow Copy Service,陰影複製),才能備份 Windows 中被鎖定或佔用的檔案。


在這麼多的要求條件之下,有些商業軟體甚至都已經被刷掉了。

不過,我們運氣非常好,剛好就有這麼一套開源軟體可以符合上述條件。


Duplicati

Duplicati 是一款跨平台的備份軟體,但是很多人沒意會到一個重點,Duplicati 是用標準微軟 .NET 平台以 C# 開發的程式,在 Linux、MacOS 上透過 Mono Framework 進行運作。


Duplicati 從 2.0 起,操作介面改為清爽的 Web 模式,並支援 RWD,所以只要有瀏覽器即可進行該伺服器的備份設定與管理,非常方便也提升顯示相容性。


如上述所提,Duplicati 支援的雲端儲存相當豐富,而且隨著持續改版也會不斷加入各種雲端儲存空間的支援。



還有沒有其它適合企業應用的開源方案呢?


有的,如果您有企業集中備份的管理需求,可以採用另一套企業級開源備份軟體,提供中央管理伺服器,只需在要備份的主機上安裝好 Agent,剩下的事都交給伺服器處理。

Bacula



Bacula,本圖取自官網」


特別說明:
Bacula Windows 版的 Agent 在使用上要注意授權,僅限「personal use only」,若您要商業使用請記得購買授權。 
[官方說明頁面]


結論


資料備份,刻不容緩。
及早預防,及早治療。



本文轉自「節省工具箱 / Jason Tools」部落格。

2017年3月27日 星期一

線上問卷與投票系統的選擇



近期公司有投票及問卷系統的需求,上網找了一下有那些開源的方案可以自行建置,不找還好,一找就發現一套驚為天人的好系統,經過試用後決定推薦一番。



免費線上服務從不缺少


此類型的系統,在網路上可以找到滿坑滿谷的線上服務,只要簡單註冊後即可開始使用,對於臨時或小情境可以善加利用。





如果要更進階專業的功能,還有專精於這類服務的供應商,幾乎是比問卷系統當成一門專業事業在經營。



Typeform



雲端系統 vs 自建系統


雖然上述服務都能提供豐富且完整的功能,但是對於企業應用來說,總是有些擔心把資料放
別人家會不會有問題,例如服務倒閉、收費提高、本地管理... 等各種疑慮,從而想要自己架設一套在自己的公司裡。





自己開發當然是一條很棒的路,然而現實上不見得划算。在這樣情況下,尋找既有的方案是條可行的道路。




良好的開源方案已經存在


在多方比較與試用過後,我特別推薦使用「LimeSurvey」這個開源方案,它是一款強大且彈性的開源線上問卷系統,以 PHP 及 MySQL 開發。


LimeSurvey



我試用過後的心得如下,提供各位參考。


  1. 類型豐富,單選、多選、陣列表格、數字、文字、日期、檔案上傳...等。
     
  2. 介面支援多國語系,題目也可以提供語系選擇,重點是介面有中文、中文、中文!
     
  3. 可以匿名投票,或用 CSV 或 LDAP 吃人員名單,還內建邀請碼機制與發送郵件邀請與提醒,邀請碼可以一次對名單所有人個別產生。
     
  4. 題目之間可以設定條件與流程,適用於不同答題顯示不同後續題目的場合,甚至支援正規表示式來做判斷。
     
  5. 題目與答案可以用 HTML 視覺化編輯器,想要放圖片放影片放表格都可以。
     
  6. 支援亂數題目,還可以將同一張問卷的題目分群組,針對群組各自亂數取提。
     
  7. 可以一題一頁、一題組一頁、全部一頁,三種顯示方式。
     
  8. 採 AJAX 設計並支援 RWD,手機瀏覽器無痛使用。
     
  9. 可以選擇問卷是否記錄答題者IP位址、來源網址、可以記錄答題時間。
     
  10. 可以在交卷前先儲存目前答題狀況,之後再回來續做。
     
  11. 問卷支援模版系統,可以自行定義想要的問卷長相。
     
  12. 提供統計數據,有圖表,也可以匯出為 pdf、excel 等。
     
  13. 它是開源 Open Source 的!



多種題目與答案形式可選用


甚至提供陣列(表格)形式的題目與答案


問卷的外觀形式可任意自行定義





結論


目前來看,LimeSurvey 適合對外使用,若要在企業內部使用,欠缺 AD/LDAP 的認證整合,只能用邀請碼替代較為不便,希望未來能予以整合或是找到適當的外掛搭配。


本文轉自「節省工具箱 / Jason Tools」部落格。

2017年3月10日 星期五

開放源始碼和安全性有什麼關係?

誠如密碼學專家 Bruce Schneier(布魯斯・施奈爾)所著《秘密與謊言:如何建構網路安全防衛系統》一書第二十二章【產品測試及驗證】中的描述,他認為公眾開放的密碼學加密方法其安全上的好處優於私人專有的方法,因為唯一可以確認密碼方法之安全性的作法,即是由許多專家投注一段很長的時間評估,而將該方法公諸於世是經濟效益最佳的方法;所以基於相同理由,他認為任何與安全防衛相關的事務都應有公眾的解決方案,這包括採用開放源碼方式發佈軟體,就讓世上所有專家評估、讓時間考驗。

他認為一個優良的安全防衛設計,其設計細節不會有什麼必須隱瞞之處;換句話說,這套安全防衛設計之所以安全,純粹來自於產品本身,以及產品自身可以改變的祕密:如密鑰、密碼、信符…等等。但如果是透過隱匿的方式獲得安全性(security by obscurity):即系統的細節是安全防衛的一環,那麼一旦設計細節公諸於世,它們可能會在極短的時間內被破解。若一個軟體的安全設計相當拙劣,就只能期待設計細節不曝光來得到安全;若系統設計相當優良,即便將相關細節公諸於世,也仍舊安全。

而軟體也是一樣,要在源始程式碼中找到安全防衛上的漏洞,唯一的方法是評估檢驗,但你不可以隨便找人評估,你需要的是安全防衛軟體專家來評估,你需要它們從各種不同角度、經年累月的一再檢驗。雖然聘請這類專家是可行的,但是讓大眾一同動手會更省錢、也更有效率,所以最簡單的方式就是公佈軟體的源始碼

說到這,最常見的反對論點是:公布軟體的源始程式碼只會給怪客們找尋弱點所需之資訊,並且利用這些資訊來作惡。這些人認為,保護源始碼秘而不宣,能夠阻斷攻擊者得到相關資訊。Bruce Schneier 講到這裡說:「除了驚嘆他們的天真之外,我還真不知道該說些什麼」。

畢竟將軟體源始碼公諸於世,並沒有因此增加該軟體的臭蟲與缺陷數目,唯一增加的是一般大眾對它們認識的可能性而已。他提到:「那些把程式碼隱匿不為人知的廠商多半很懶散;而願意將產品源始碼公諸於世的廠商,往往可以因此找到漏洞,所以,他們也就能修補它們。」「秘密的軟體是脆弱的:它就像密碼學一樣。若將源始碼公諸於世,會比隱匿源始碼的措施提供更紮實的安全防衛」。

然而,開放源始碼軟體並不能保證安全,他認為大眾應該把兩件警告銘記在心

首先,僅僅將源始碼公開並不自動等於人們會檢驗它的安全漏洞,並且,當然這也不代表專家們會檢驗它的安全漏洞。他舉例說:「研究員在 MIT 麻省理工開發的 Kerberos 程式碼發表後十年,才在其中找到緩衝器超限的問題」、「另一個開放源始碼的軟體 Mailman,用來管理郵遞清單,有顯著的安全問題存在長達三年之久⋯⋯直至原作者檢查源始碼,才找到問題所在」。畢竟安全防衛專家是一群常為雜事分神、極其忙碌的一群人。他們沒有什麼時間,也沒有意向想檢閱世上所有公布的源始碼。所以,雖然公布源始碼是件好事,但是它無法帶給你安全的保證。

其次,僅僅將源始碼公諸於世,並不自動等於安全問題只要一發現就可以被迅速解決。我們沒有任何理由推論:一個兩年的開放源始碼軟體之安全性,會比一個兩年的專有源碼軟體的漏洞少。如果開放源始碼的軟體已經被專家詳細檢驗過,那麼以上的論調有可能是真的。但若只是因為一段程式碼已經公諸於世多年,並不具任何特別的意義。

Bruce Schneier 總結道:「我相信軟體開放源始碼有潛力可以增進安全防衛能力。但是,軟體並不會因為源始碼公開而自動變得很安全,就像不能因為程式碼不公開,就下斷語認為它不安全一樣」。

最後,Bruce Scheier 提及軟體開發模式也是影響軟體安全性的因素之一,而上述探討只針對源始碼開放與否作分析,沒有涉及到「哪一種開發程序可能在設計上產生安全的軟體」。他認為若採用傳統的專有軟體方式(教堂式開發)或許較能產出高品質、大規模的軟體;所以對於安全防衛而言,最好的作法也許是先以教堂式開發製作出專有授權的軟體;然後,再將它轉為開放源始碼公開讓所有人檢驗、讓時間考驗。

參考資料

書名:《秘密與謊言:如何建構網路安全防衛系統》
作者:Bruce Schneier
譯者:吳蔓玲
出版社:商周出版

關於 Bruce Schneier

Bruce Schneier 個人網頁
Wikipedia 上的 Bruce Shneier 介紹
Bruce Schneier 於 TED 上的分享內容《安全的錯覺》

進階閱讀

開放原始碼比較不安全?看看微軟的中標率吧(冷笑)》,作者洪朝貴

2017年3月7日 星期二

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

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

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

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

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

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