開放源碼保安
開放源碼保安有人認為開放源碼軟件在本質上,通常較封閉式源碼軟件或專利軟件更加安全,也有人持相反意見,兩方意見持續爭辯著。原始碼的開放提供機會給攻擊者和防衛者去讀取詳細編碼,並分析軟件保安漏洞。
另一方面,封閉式源碼軟件迫使用戶只接受供應商選擇提供的保安水平。本文討論如何從開放源碼軟件得到關於資訊科技保安的優勢,此外,也將列出幾項由開放源碼用戶社群推薦之開放源碼保安的最佳作業實務,並指出在機構內安全地使用開放源碼產品應注意的重點。
開放源碼系統之軟件保安
如前所述,開放源碼軟件其中一項特點是原始碼開放給大眾,連同潛在罪犯和攻擊者也包括在內。攻擊者可讀取原始碼並更快地攻擊因編碼弱點造成的保安漏洞。此外,開放源碼應用程式通常由互聯網團體與社群自願地共同開發,攻擊者也可能經這途徑提供該軟件的部份編碼。編碼的保安程度通常依賴可信賴的系統維護者或其他貢獻者所作出的檢視。然而,封閉源碼軟件也可能會面對類似問題,例如心存不滿的員工在系統放置 後門,把原始碼外洩給公眾。
開放源碼用戶社群已致力於改善軟件安全和品質,以減低包括開放源碼軟件在內的應用程式和系統之保安漏洞。一般而言,開放源碼軟件保安可從以下最佳作業實務著手:
1.
維護一份關於所有使用過的軟件清單,包括開放源碼軟件,該清單也應詳細記錄版本和雜湊值(hash value)(例如 MD5 或 SHA-1),以作為原始碼完整性的核對,並記錄下載該軟件的網站。
2.
定期檢查開放源碼軟件有效的保安更新和錯誤(bugs)修正,如此一來,修補程式管理流程便可定期執行,使開放源碼軟件保安漏洞也減少了。
3.
應盡快改變安裝後的開放源碼軟件中所有預設的保安設定,透過取消不想要的服務功能,來以最安全的方法設定該產品。
4.
以編碼分析器(code analysers)或審計工具(auditing tools)來測試和掃描原始碼,例如 BOON (Buffer Overrun Detection)、Flawfinder ,RATS (Rough Auditing Tool for Security)11等工具,開發者也須執行整合編譯(compiler-integrated)工具,例如 IBM 的 ProPolice12(或是 Stack-Smashing Protector(SSP)),該工具可把保護碼自動插入原始碼中,從而保護編譯程式。
5.
假如應用程式要求打開防火牆埠,應確定開放源碼應用程式完全遵守既有的網絡結構,當引進新應用程式時,此舉將可避免違反機構的防火牆規則和保安政策。
如何在機構內安全地使用開放源碼產品
為了安全使用開放源碼產品,機構必須考慮以下幾點:
1.
制定完善記錄的保安政策,並確定嚴格執行該政策。當企業需要改變時,也須修訂該政策。
2.
只從可信任的網站下載開放源碼產品,例如軟件開發者的官方網站,以避免事先置入惡性程式碼的潛在風險。
3.
下載原始碼,而非編譯過的套裝軟件,如此,可核對原始碼是否符合 MD5/SHA-1 校驗和(checksum),並分析保安漏洞,和進行編譯,以求符合機構的特殊需求。
4.
詳細研讀產品文件,以獲得保安配置參數的詳細說明。
5.
假如發現產品的保安漏洞,便應檢查是否有既定的通報程序,並確定妥善維護和處理該產品的所有保安議題。
6.
定期檢查一般保安漏洞資料庫,例如 CVE(Common Vulnerabilities and Exposure) 此類資料庫發布任何有關開放源碼產品保安漏洞的資訊。
7.
採用縱深防禦(defence-in-depth)策略,可完全應付開放源碼產品和網絡之間不同水平所引起的威脅。
8.
對機構內員工提供適當訓練,以支援和維護開放源碼產品。把所有作業實務和配置程序進行合適的文件記錄,以避免因職務調動或離職而引起的問題。
相關主題: