計畫主持人:涂敏怡
作者:羅月英、蔡偉毅
編修:鄭婷宇, Singing, Toomore
*註一:資料來源:《Meta 和微軟聯手發表可免費商用的大型語言模型 Llama 2》
現況開源軟體早已無處不在
根據新思科技(Synopsys, Inc. ; Nasdaq: SNPS)發佈的《2023 年開源安全和風險報告》針對 (註二)17 個行業、1,703 個應用程式經 Black Duck 檢測後顯示,有 96% 的應用程式中包含開源程式碼,顯示開源已深入各個領域,為企業應用發展帶來靈活與擴充性的優勢,然而產業對於開放原始碼層層函數庫的引用與依賴,也擴大資安及授權風險,報告中亦指出有 87% 存在著安全及營運風險,包含有 54% 的程式庫存在著授權條款衝突;31% 的程式庫包含沒有授權條款或使用定制授權條款的開源程式碼;89% 程式庫包含至少已過期四年的開源程式碼;91% 的程式庫包含兩年內未更新的組件等開源管理 (opensource management)議題,故隨著雲端原生技術越來越重要,越來越多企業擁抱開源技術的同時,如何更安全的管理開源軟體則成了企業的新挑戰。*註二:資料來源:《2023年開源安全和風險報告》
未來企業仍積極投入開源
調查除顯示開源在企業早已無所不在之外,在 Red Hat《2022 年企業開源現狀報告》(註三)訪問 1296 位 IT 決策者時,更進一步發現有 80% 的 IT 決策者預計會在新興技術領域使用企業開源軟體,77% 對企業開源軟體的看法,比前一年更加積極。*註三:資料來源:《2022 年企業開源現狀報告》
從上述調查數據中隱含著兩個重大的改變及議題,其一為近年因應科技快速進步、突如其來的疫情,開源軟體儼然成為促進企業數位轉型不可或缺的神兵利器,其二需深知水可載舟亦可覆舟,隨著開源的成長更需關注其連帶衍伸的風險,如對開源的授權條款不夠清楚導致違法及爭議,或是對開源軟體的使用管理不夠嚴謹而導致的資安漏洞駭客入侵等資安問題,因此,如何有效建立完整的開源軟體管理機制以解決資安跟授權問題是每一個企業都必須正視的課題。
什麼是開源軟體?
開源軟體(open source software, OSS)又稱開放原始碼軟體,是原始碼可任意取用的電腦軟體,這種軟體的著作權持有人在軟體協定的規定下保留一部分權利並允許使用者學習、修改以及以任何目的向任何人散佈該軟體,對企業來說知名的開源軟體如 Docker、Kubernetes、Grafana、Ansible、Apache Spark、MariaDB 等。企業使用開源軟體時的優點為何?
在快速變動的世代,尤其是在後疫情時代,許多企業都面臨數位轉型的問題,在近兩年(2022 及 2023 年)OpenLogic 全球開源軟體調查報告中(註四),企業轉而使用開源軟體的主要原因第一名皆為「為獲得創新技術和最新資訊」,這意味著開源軟體已經是企業進行創新佈局的首要選項,而在企業使用開源軟體時通常有以下幾個優點:*註四:資料來源:https://www.openlogic.com/resources/2022-open-source-report https://www.openlogic.com/resources/2023-state-open-source-report
1. 購入初期成本較低
由於開源軟體的程式碼是公開給大眾,任何人都可以在授權合規的情況下進行散佈、修改及共享,故企業在預算有限,或是不確定具體效益的數位轉型科技應用的導入初期,使用開源軟體具備成本較低的優勢,有些開源軟體甚至幾乎沒有前期的成本,即可下載安裝使用。
2. 避免單一廠商綁架
由於絕大多數的開源軟體採標準格式及其協定能與許多系統介接,故容易在開源軟體上進行客製化及二次開發,且因為任何人都可接觸開源軟體,通常開源軟體可不斷發展,不會因為需靠單一廠商進行開發及維護,受限於商業軟體的商業策略而限制其發展,更不會有因單一廠商倒閉後失去支援。3. 軟體最佳化的速度較快
開源軟體是由世界上成千上萬的開發者共同協作及貢獻,能不斷改進品質,這代表著若發現有漏洞及錯誤,就有可能可立即被修復,故開源軟體具備高度可靠及快速最佳化的優點。開源軟體最大的迷思為何?
對於未接觸或不熟悉「開源」的企業,普遍認為原始碼(source code)的開放較容易受駭客等有心人士攻擊,而造成資安危害,且在社群維護模式,並無專職等責任規範下,企業會擔心漏洞修復較慢,故有「開源不安全」的印象;另一方面,企業對於看不到原始碼的封閉軟體,傾向認定有企業專職人員維護,無論在風險控管或責任歸屬上,普遍覺得商用軟體較為安全。但現實中可發現這其實是一個很大的誤解,舉例來說,GitHub 投入大量資源於探索和回報開源專案中的漏洞,並與包含 F5、Google、英特爾、微軟、摩根大通和 Mozilla 等企業,共同投入資源以發現並修復開源軟體中的漏洞,形成一種生態保護機制,這是傳統的閉源軟體做不到的(註五),最後,在針對漏洞修復疑慮,過往依開發者經驗,大多數開源軟體在回報漏洞後,會在 24 小時~48 小時內回應或修復,而相對商業軟體在漏洞發現後,則需批次釋出整包更新檔,時間可能長達一個禮拜或甚至是一個月,相較之下,開源漏洞修補效率比一般閉源商業軟體高效許多,事實上資安危害是全面向的,攻擊不因開源或閉源而有區隔,在任何軟體應用導入前,都應先做好資安評估如軟體評價、資安檢測頻率等,如何建立良好的開源軟體管理機制才是企業應關注的重點。*註五:資料來源:<為開源程式碼安全把關,GitHub推Security Lab計畫>
開源軟體企業應關心的議題
隨著開源軟體 20 餘年的發展,開源逐漸成為 IT 世界中的創新先鋒並逐步嶄露頭角,並開枝散葉在各領域及產業中,而其未來的發展仍持續在各領域的開源創新中扮演關鍵角色,特別是在疫情過後,數位轉型成為企業贏在後疫情時代的必經之路,當企業透過開源軟體發展各項應用及轉型的同時,開源軟體也在企業應用中隱藏著許多「潛規則」。擁有原始碼可提高企業的透明度、降低成本和風險,但當企業沒有真正具備編譯原始碼的能力、配置及規劃時,將有可能遭受巨大的商業損失,特別是在開源授權合規及資安問題上全球發生不計其數之爭議,列舉近幾年企業在使用開源軟體時,因合規及資安問題所引發之案例。開源合規爭議
讓我們來看近期相關開源軟體最火熱的爭議,2022 年底美國律師事務所 Joseph Saveri 代表眾多的開發者,對微軟、 GitHub 與 OpenAI 提出集體訴訟,指控 2021 年 6 月所發表的 GitHub Copilot 服務違反《數位千禧年著作權法》、《不公平競爭法》,以及 GitHub 隱私聲明與服務條款,並向這些業者求償 90 億美元;另一個經典案例為 Oracle 與 Google 的世紀訴訟案,起因是 Google 在開發 Android 系統中,複製、使用部分 Java API 原始碼作為應用程式接口,導致 Oracle 控訴 Google 違反授權規則並向其索賠 88 億美元,該爭議從 2010 年開始,最終至 2021 年聯邦法院判定 Google 旗下的 Android 操作系統沒有侵犯 Oracle 的版權,長達 10 年的訴訟爭議才就此落幕。上述訴訟案不僅僅只是眾多開源專案爭議中的一樁外,更是說明各國法制機構均開始關注非正當手段獲取包含 GPL 協議軟體源程式碼等侵權行為,這也提醒企業使用開源軟體上必須留意開源授權條款,合法的使用開源軟體避免觸法引起爭議進而導致企業名譽及財務損失。資安漏洞風險
2020 年底駭客入侵 SolarWinds 公司 Orion Platform 的產品,美國商務部、財政部、太空總署等數千個政府機關和五百大企業都難逃一劫;2021 年 Microsoft Exchange 電子郵件伺服器漏洞遭攻擊、美國最大燃油廠商 Colonial Pipeline 被勒索軟體攻擊等事件都是波及甚多對象的嚴重資安事件。不僅僅是在國外,國內在 2021 年 Log4j 核彈級資安漏洞,當時上百萬個應用程式使用 Log4j 來紀錄,駭客只要一串指令就能發動攻擊,任何人可以從該漏洞的服務獲得電腦的完整訪問權限,是過去 10 年來規模最大、最嚴重的漏洞,也可能是電腦史上最龐大的漏洞,Apache 軟體基金會更將 Log4j 漏洞的嚴重程度,評為最高的 10 分,其影響在 GitHub 上所列出,經確認面臨 Log4j 漏洞威脅的大型企業,從蘋果、亞馬遜、特斯拉、Google 到 Steam、LinkedIn、Webex 等,受害範圍非常廣泛,隨著全球許多政府機關、大型企業所用的軟體都遭受嚴重的駭客攻擊,讓各國公私部門的資安人員人心惶惶,面對這些重大的資安事件,該如何加強防護措施,幫軟體安全把關,成為全球共同面臨的重要課題。開源軟體如何安全使用
前面已說明企業使用開源軟體時的兩個重要風險及議題:「授權合規」及「資安議題」,接下來將探討企業中那些人會遇到使用開源軟體的風險,企業應如何管理來避免發生使用開源軟體所帶來的風險及損失。哪些人會遇到使用開源軟體所帶來的風險?
由於開源軟體的特性是只要任何遵守相關授權條款條件的人都可自由地使用、修改和散佈開源軟體,如散佈者未能遵守授權條款而被起訴甚至敗訴時,小至個人大至組織、企業或是國家都將受到嚴重的損害。特別是現今企業紛紛因數位轉型使用開源軟體導入各式創新應用,使用開放原始碼軟體其資訊在企業內部各式系統進行傳遞時,無論是在傳遞過程中資訊佚失、傳遞錯誤資訊等,將導致無法日後找出合規佐證資料。或發生資安問題時,難以快速釐清企業內各產品內所使用的開放原始碼軟體版本號,致使難以在第一時間定義影響範圍與進行修補。上述情境皆為企業在使用開源軟體時的常見問題,而該問題不只發生在企業內部各部門間、或是企業集團不同業務部門間,在跨產業的企業供應鏈間也常發生,是當前企業使用開源軟體需正視並解決的問題。當發生上述問題時,企業內部諸如研發部門、法務部門、技術支援、IT 部門、採購部門、資安部門、主管及負責人等都將負起連帶責任,為避免使用開源軟體所帶來的風險,企業中相關人員必須了解開源軟體授權的基本原理,並進一步建立管理機制。企業需做好開源風險管控
使用開源不僅只是一個技術問題,更是一個管理問題。因為開源軟體來自世界各國開發者的貢獻,如何在極需機密控管和安全的企業環境中,使用來自開源社群的程式碼,是一大挑戰。為避免因不合規的使用開源軟體,導致資安及法律爭議,企業應積極著手展開標準化的開源管理措施,從關鍵面向做好開源風險控管。- 「建立完整且確切的軟體清單」:企業在研發或使用開源軟體的歷程中,應建立公司內部軟體的內容清單,就像商品標示其組成成分或內容物一樣,透過「軟體物料清單」 (Software Bill of Materials,簡稱 SBOM) 建立,標明軟體內程式碼的組成與來源,內容包括開源軟體、第三方模組等,提供完整的軟體溯源管理機制,以利偵測出潛在資安或侵權風險。
- 「建立軟體使用政策」:依循企業自身的商業模式,衡量各類開源授權條款之可接受度,建置出開源軟體可遵循等相關管理辦法,明確劃分出各類開源應用的界線,確保組織內部人員在採用開源軟體時能有明確依據,降低非預期的法律風險。
- 「提升開源可靠度」:開源安全檢測分析的重要性,除分析開源軟體過去已揭露漏洞的影響嚴重程度、多少漏洞是否被修復、是否在修復相關軟體及其數據來提升產品安全性與可信度外,進一步確保與國際的資訊管理相關標準接軌,並取得國外認證。
導入 OpenChain,你準備好了嗎?
企業為提升資安管理能力及取得客戶對企業信任時,導入 ISO 27001 已成為全球企業普遍的資訊安全管理的作法,但隨著更多企業大規模的使用開源軟體,相應的管理機制卻尚未跟上之際,企業越來越難以清楚掌握軟體產品的 DNA ,導致軟體供應鏈陷入資安及侵權的危機逐漸浮現。故僅僅導入 ISO 27001 已不足以應付企業在資訊安全管理上可能帶來的風險,微軟助理總法律顧問 David Rudin 曾表示「當公司購買軟體時,需要知道產品中包含哪些開放原始碼,這樣才能確保履行合規義務。隨著供應鏈的發展,鏈中的每個環節都必須履行其開源義務,當中若有一個薄弱環節,則意味著你不能信任程式碼,那請不要輕易使用它」(註六),事實證明,近幾年供應鏈攻擊已成為全球最常見資安威脅模式,如 2020 年底 SolarWinds 遭駭客入侵,受害廠商超過 18,000 家以上,其主因多半是開源軟體的漏洞未修補所致,故美國政府要求合作業者必須提供 SBOM ,確保整個產品供應鏈中軟體元件透明化,藉以得知軟體中的相關風險,進一步採取積極防護措施。面對此國際趨勢,可知開源軟體供應鏈的管理已刻不容緩,但如何確保整個軟體供應鏈中的開源是合規及安全?需有一套全球通用的國際標準提供相關管理規範,建立供應鏈組織間可信任關係,對此 OpenChain 提供了良好的管理規範。*註六:資料來源:Microsoft announces OpenChain 2.0 conformance for open source
什麼是 OpenChain?
OpenChain 專案由美國非營利組織 Linux 基金會於 2016 年成立,目標是在全球供應鏈中提升使用開源軟體的信任度。 OpenChain 專案制定開源合規的國際標準並於 2020 年將這套標準為發布 ISO/IEC 5230 認證。 ISO/IEC 5230 的政策書內容可分為政策、教育訓練、工具、流程機制、支持資源及角色職責共六大項目來幫助企業建立管理開源軟體的流程。ISO/IEC 5230 確保企業打造一套適合自身規模、目標及範圍,且可融入既定管理流程的開源軟體管理機制。即使是同一間公司內的不同部門,也可各自細化不同的管理流程,並個別通過 ISO/IEC 5230 的認證。 OpenChain 專案提供包括上下游的操作規範,核心流程等規範內容制定,能簡化及標準化開源合規的導入流程,幫助企業更好地去管理開源的風險,甚至是更好地去管理開源軟體供應鏈的風險。
欲取得 ISO/IEC 5230,目前有兩種認證方式:
- 自我宣告認證: OpenChain 官方網站提供企業自我認證的清單及開源合規訓練課程等免費資源,企業可自行研讀後於企業中導入相關管理機制,並自行宣告完成認證,自我宣告認證的優點為企業自我研讀 OpenChain 管理規範,據此建立的規範最能切合企業文化,但缺點為自行摸索過程曠日費時,且難以確保自我宣告的認證受上下游其它供應鏈廠商採信。
- 由第三方認證:可與法律事務所、顧問合作導入 ISO/IEC 5230 標準並由第三方公正執行稽核與發證,此方式之優點為由第三方輔導,取證速度快,且透過第三方公正單位稽核認證,公信力高,較能取得合作企業採信,但缺點在於透過第三方輔導及認證需提供對應服務及認證費用。
OpenChain可以幫助企業什麼?
對於企業內部而言,企業導入 OpenChain 並完成驗證將有助於解決公司內部因長期缺乏管理所造成的資安問題及開源合規爭議;從企業外部來看,可爭取供應鏈內其他廠商的信任與合作, OpenChain 能幫助企業:- 管理開源軟體,避免造成企業資安風險。
- 讓供應鏈裡的開源授權合規做到簡便、符合一致性。
- 定義合規計畫的核心需求。
- 幫助組織展示他們對相關要求的遵守情況。
- 提供基本的開源流程與最佳實踐方法。
- 在軟體供應鏈中,開源授權合規變得更可預測、好理解且更有效率。
OpenChain 全球導入狀況及台灣案例: KKCompany
目前全球已有許多成功通過 ISO/IEC 5230 的企業導入 OpenChain ,其中有大家耳熟能詳的企業如:微軟、Google、Zoom、Uber、OPPO、SONY 及 TOYOTA 等知名企業。目前在台灣也已有成功導入案例,如 KKCompany 於 2022 年透過與開放文化基金會(Open Culture Foundation,簡稱 OCF)合作並經第三方驗證公司 Bureau Veritas 檢驗,順利取得 ISO/IEC 5230 國際認證(相關報導:OCF Blog)。企業如何導入 OpenChain?
由於 ISO/IEC 5230 於 2020 年發布,對於國內企業而言,仍處於方興未艾的階段,故企業導入ISO/IEC 5230 所要求的 OpenChain 機制需建立執行計畫,從員工內部認知與認同到完成導入取得認證,建議企業如需快速導入 OpenChain 機制並取得 ISO/IEC 5230 認證可按照以下步驟進行:- 認知認同:由於 OpenChain 的導入在組織內涉及許多單位,首先組織內部單位同仁應先對於開源軟體及 OpenChain 有所了解,故需對於內部相關單位進行教育訓練讓內部同仁認知導入 OpenChain 的重要性及對組織的助益,進一步認同公司政策,未來在導入時能減少阻力與困難。
- 顧問輔導:可透過與輔導單位合作,由輔導顧問至企業內部相關單位進行需求訪談,了解企業內部目前對於開源軟體管理與規範實際狀況,並於訪談後分析目前公司現狀落差,並提出該企業導入開源合規的建議計畫與作業流程。
- 計畫導入:針對輔導顧問提出之建議計畫於公司內部開始落地執行,建議可成立專案稽核小組主責來統籌企業內部 ISO/IEC 5230 認證相關作業。
- 稽核驗證:可向外部輔導驗證單位申請初評,透過第三方外部單位針對目前之導入計畫與作業流程做初步評估,並於初評結果進行缺失改善。
- 取得認證:請 ISO/IEC5230 第三方認證單位進行認證,取得 ISO/IEC5230 認證。
開放文化基金會提供 OpenChain 教育訓練
目前開放文化基金會針對企業內部提供相關 OpenChain 的教育訓練,課程涵蓋「認識OpenChain」、「開源授權基礎認知」、「認識軟體物料清單(SBOM)」、「認識 OpenChain 開源軟體安全保證規範」等課程,幫助企業內部使用開源軟體時,相關軟體開發、法務、採購及品質管理等單位對 OpenChain 能有更多認識,來協助企業規劃及建立企業內部開源軟體管理機制。對於 OpenChain 及 ISO/IEC 5230 如需更多相關資訊可洽開放文化基金會,將進一步協助企業了解更多相關資訊。