Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

擁抱開源:企業應如何善用開源技術,才能得其利而防其弊 - 加強版

擁抱開源:企業應如何善用開源技術,才能得其利而防其弊 - 加強版

國外企業不論大小對開源技術的採用意願極高,採用成熟度高的開源技術一來可以加快研發速度,二來也會大幅降低營運成本。但台灣企業對開源技術的認知程度較低,擔心穩定性、安全性與支援性等問題,但甚少花時間去了解,當你用正確的心態去看待開源,且有妥善的管理機制去管理它,開源技術將是企業的重大助力。

加強版新增了幾個案例,以及 GDPR/CCPA 相關的解決方案。

Yi-Feng Tzeng

June 19, 2021
Tweet

More Decks by Yi-Feng Tzeng

Other Decks in Technology

Transcript

  1. 2/151 曾義峰 (aka Ant) ➔ TGO (Top Geeks' Organization) Networks

    創始委員及現任學習委員 ➔ 臺灣資安社群 CHROOT 成員 ➔ 曾任資安顧問及電子票證公司顧問 ➔ 前 LeadBest Consulting Group 首席執行顧問 ➔ 開源人年會 (COSCUP) 2009 / 2012 / 2020 講師 ➔ 臺灣駭客年會 (HITCON) 2008 及 2009 講師 ➔ 臺灣 Modern Web 2015 ~ 2020 講師
  2. 3/151 曾義峰 (aka Ant) ➔ 研究自由開源授權十年有餘。 ➔ 曾於英業達 (Inventec) 及廣達電腦

    (Quanta) 等教授自由軟體授權相關課程。 ➔ 於 2011 年 OSDC( 開源開發者大會 ) 分享《開源專案之授權自動化分析工具》 ➔ 於 2018 年 COSCon( 中國開源年會 ) 分享《谈开源授权态样如何融入 DevOps 之持续整合》 相關文章 2011-03-07 淺談 App Store 與開放源碼軟體授權的案例: VLC 的合法上架與 Miro Video Converter 的非法下架 https://www.openfoundry.org/tw/enterprise-application/8274 2011-03-15 淺談將開放源碼軟體改名並違法販售: Butterfly Media on Amazon https://www.openfoundry.org/tw/enterprise-application/8275 2011-07-12 從 Red Hat 變更 RHEL 釋出方式來探討 GPL 對原始碼範圍的定義 https://www.openfoundry.org/tw/enterprise-application/8393 2011-08-17 開放原始碼的相容與互斥性:從 Ruby 社群變更開放原始碼授權來探討 https://www.openfoundry.org/tw/enterprise-application/8419 2012-03-03 談 GPL 軟體原始碼定義及瑕疵修復方式-從 GNU Emacs 違反 GPL 授權條款一事說起 https://www.openfoundry.org/en/news/8629 2012-03-08 授權流言終結者 #1 : VirtualBox 授權分析與探討 https://www.openfoundry.org/tw/enterprise-application/8636 2012-03-29 授權流言終結者 #2 : The JSON License 的分析與探討 https://www.openfoundry.org/tw/enterprise-application/8657 2012-04-23 授權流言終結者 #3 : jQuery 授權的分析與探討 https://www.openfoundry.org/en/news/8680 2012-04-29 授權流言終結者 #4 : MongoDB 授權的分析與探討(雙重授權模式 2.0 ) https://www.openfoundry.org/enterprise-application/8687 2012-06-26 授權流言終結者 #5 : Neo4j 授權的分析與探討 https://www.openfoundry.org/enterprise-application/8738
  3. 4/151 此次以 Q&A 輕鬆的方式,探討幾項重要的企業與開源議題。 包括 ➔ Linux Kernel 的特殊性 ➔

    「雲」與「端」在企業開源授權應用的差異 (Android & Cloud) ➔ MongoDB 授權的改變 ➔ Elastic 與 Amazon 在 Elasticsearch 上的授權爭議 ➔ Grafana Labs 與 Amazon 的授權合作模式等。 有助於應對企業開源應用的質疑、化解採用時的疑慮、釐清客戶與 AWS 開源授權的權責。 若時間有餘,亦會淺談如何利用 AWS 雲服務搭建彈性符合 GDPR/CCPA 規定之應用, 搶下國際大廠尚有空缺的這塊市場。
  4. 5/151 Security (Hacker) Law (Intellectual Property) Technology (Software Dev.) 衍生著作

    散布權 專利權 ... 靜態連結 動態連結 虛擬化 ... 逆向分析 技術回避 ...
  5. 10/151 Q0 企業幾個常見的自由 / 開源軟體授權問題 ☑ 服務上雲是否會增加 ( 或避免 )

    授權疑慮及爭議? ☑ 許多雲服務背後都是開源軟體,使用上是否會有疑慮? ☑ 可否推薦開源授權風險分析顧問或工具? ☑ 如何確保內部或協力公司的產出無此風險? ☑ 我收到 ( 開源 ) 侵權警告信了,怎麼辦? ☑ 我不想依約開源,可以怎麼規避?
  6. 15/151 0BSD BSD-1-Clause BSD-2-Clause BSD-3-Clause AFL-3.0 APL-1.0 Apache-1.1 Apache-2.0 APSL-2.0

    Artistic-1.0 Artistic-2.0 AAL BSL-1.0 CECILL-2.1 CDDL-1.0 CPAL-1.0 CPL-1.0 CATOSL-1.1 CAL-1.0 EPL-1.0 EPL-2.0 EUPL-1.2 Fair AGPL-3.0 GPL-2.0 GPL-3.0 LGPL-2.1 LGPL-3.0 Intel MS-PL MS-RL MIT MPL-1.0 MPL-1.1 MPL-2.0 NASA-1.3 Nokia OSL-1.0 OSL-2.1 OSL-3.0 QPL-1.0 RPSL-1.0 Sleepcat PHP-3.0 PostgreSQL Python-2.0 ZPL-2.0 Zlib Ref: https://opensource.org/licenses/alphabetical
  7. 16/151 0BSD BSD-1-Clause BSD-2-Clause BSD-3-Clause AFL-3.0 APL-1.0 Apache-1.1 Apache-2.0 APSL-2.0

    Artistic-1.0 Artistic-2.0 AAL BSL-1.0 CECILL-2.1 CDDL-1.0 CPAL-1.0 CPL-1.0 CATOSL-1.1 CAL-1.0 EPL-1.0 EPL-2.0 EUPL-1.2 Fair AGPL-3.0 GPL-2.0 GPL-3.0 LGPL-2.1 LGPL-3.0 Intel MS-PL MS-RL MIT MPL-1.0 MPL-1.1 MPL-2.0 NASA-1.3 Nokia OSL-1.0 OSL-2.1 OSL-3.0 QPL-1.0 RPSL-1.0 Sleepcat PHP-3.0 PostgreSQL Python-2.0 ZPL-2.0 Zlib Ref: https://opensource.org/licenses/alphabetical
  8. 17/151 0BSD BSD-1-Clause BSD-2-Clause BSD-3-Clause AFL-3.0 APL-1.0 Apache-1.1 Apache-2.0 APSL-2.0

    Artistic-1.0 Artistic-2.0 AAL BSL-1.0 CECILL-2.1 CDDL-1.0 CPAL-1.0 CPL-1.0 CATOSL-1.1 CAL-1.0 EPL-1.0 EPL-2.0 EUPL-1.2 Fair AGPL-3.0 GPL-2.0 GPL-3.0 LGPL-2.1 LGPL-3.0 Intel MS-PL MS-RL MIT MPL-1.0 MPL-1.1 MPL-2.0 NASA-1.3 Nokia OSL-1.0 OSL-2.1 OSL-3.0 QPL-1.0 RPSL-1.0 Sleepcat PHP-3.0 PostgreSQL Python-2.0 ZPL-2.0 Zlib Ref: https://opensource.org/licenses/alphabetical 目前單是 OSI( 開放源碼促進會 ) 通過的條款就達 113 種
  9. 19/151 Q1 Linux Kernel 是何種自由 / 開放源碼軟體授權? ☐ MIT ☐

    BSD-3-Clause ☐ Apache-2.0 ☐ GPL-2.0 ☐ GPL-3.0 ☐ 其它 ______________________________
  10. 20/151 Myth 1 Big software companies don’t use Open Source

    大型軟體公司不使用開源軟體
  11. 29/151 Q1 Linux Kernel 是何種自由 / 開放源碼軟體授權? ☐ MIT ☐

    BSD-3-Clause ☐ Apache-2.0 ☐ GPL-2.0 ☐ GPL-3.0 ☐ 其它 ______________________________
  12. 30/151 Q1 Linux Kernel 是何種自由 / 開放源碼軟體授權? ☐ MIT ☐

    BSD-3-Clause ☐ Apache-2.0 ☐ GPL-2.0 ☐ GPL-3.0 ☑ 其它 GPL-2.0 + User space exception
  13. 31/151 Q2 Android 主要是何種自由 / 開放源碼軟體授權? ☐ MIT ☐ Apache-2.0

    ☐ GPL-2.0 (with User space exception) ☐ Apache-2.0 + GPL-2.0 (with User space exception) ☐ Apache-2.0 + GPL-3.0
  14. 43/151 Q2 Android 主要是何種自由 / 開放源碼軟體授權? ☐ MIT ☐ Apache-2.0

    ☐ GPL-2.0 (with User space exception) ☐ Apache-2.0 + GPL-2.0 (with User space exception) ☐ Apache-2.0 + GPL-3.0
  15. 44/151 Q2 Android 主要是何種自由 / 開放源碼軟體授權? ☐ MIT ☐ Apache-2.0

    ☐ GPL-2.0 (with User space exception) ☑ Apache-2.0 + GPL-2.0 (with User space exception) ☐ Apache-2.0 + GPL-3.0
  16. 45/151 Q3 所有自由 / 開源軟體授權的最低遵循義務為何? ☐ 沒有義務,且可以修改 / 去除原著作權聲明 ☐

    需保留著作權聲明,且使用若出事可向原作者求償 ☐ 需保留著作權聲明,且使用若出事不可向原作者求償
  17. 53/151 Q3 所有自由 / 開源軟體授權的最低遵循義務為何? ☐ 沒有義務,且可以修改 / 去除原著作權聲明 ☐

    需保留著作權聲明,且使用若出事可向原作者求償 ☐ 需保留著作權聲明,且使用若出事不可向原作者求償
  18. 54/151 Q3 所有自由 / 開源軟體授權的最低遵循義務為何? ☐ 沒有義務,且可以修改 / 去除原著作權聲明 ☐

    需保留著作權聲明,且使用若出事可向原作者求償 ☑ 需保留著作權聲明,且使用若出事不可向原作者求償
  19. 69/151 Ref: https://opensource.org/licenses/MIT Ref: https://opensource.org/licenses/BSD-3-Clause MIT License 3-Clause BSD License

    多數開源授權條款內容未提及是否可以撤銷, 但根據美國聯邦巡迴法院 Jacobsen v. Katzer (2008) 案例判決, 除非違反條款內容時方可撤銷。
  20. 73/151 Myth 6 I want / can avoid Open source

    software 我想要 / 能夠避免使用開源軟體
  21. 74/151 軟體開發模式 電腦程式 ( 關卡設計 ) 電腦程式 ( 關卡設計 )

    美術圖案 ( 藝術設計 ) 電腦程式 ( 遊戲引擎 ) 套裝銷售 B D A 美術圖案 ( 藝術設計 ) 採購契約 自由 / 開放 源碼軟體契約 電腦程式 ( 遊戲引擎 ) 可能需要提供作者顯名宣告, 甚至提供電腦程式原始碼等義務
  22. 75/151 軟體開發模式 案例一 :Linksys 2003 年 3 月 Cisco 正式宣布收購

    Linksys 。 此事公開後,使得自由軟體社群紛紛討論 Linksys WRT54G 是否 有違反 GPL 授權規定。經過社群的初步審核後,發現其核心使用 Linux kernel 2.4.5 及其它的 GPL 授權程式,如 Busybox 、 CramFS 等。因此,自由軟體基金會 (Free Software Foundation) 開始介入調查,經由溝通後,使得 Cisco 終於釋出 Linksys WRT54G 的程式原始碼。
  23. 78/151 軟體開發模式 案例一 :Linksys 其它公司 基於採購契約 提供電腦程式 基於採購契約 提供電腦程式 收購

    你的 Linksys WRT54G 產品中含有 GPL 授權程式 請將該產品所有程式的原始碼 公開 套裝銷售
  24. 81/151 軟體開發模式 案例二 : 壹網樂 - 網樂通 其它公司 基於契約 提供電腦程式

    套裝租出 你的網樂通產品中含有 GPL 授權程式,請將該產品程式 的原始碼公開。 台灣自由 / 開放源碼社群
  25. 83/151 軟體開發模式 案例三 : Ameriprise vs. Versata 1. Ameriprise 採購

    Versata 軟體, 並額外取得軟體修改權 ( 客製權 ) 。 2. Ameriprise 請外包廠商 Infosys 客製 化,但開發的產品與 Versata 類似。 3. Versata 怒對 Ameriprise 提起訴訟。 4. Ameriprise 隨之反擊,並聲稱 Versata 軟體中含有 GPL-2.0 的 XML parser 程式。 5. 該程式著作屬於 XimpleWare ,因此 XimpleWare 對 Ameriprise 、 Versata 及 Versata 的客戶提起侵權訟訴。 Ref: http://www.protecode.com/complex-legal-proceedings-may-far-reaching-effects-gpl-software-licensing/
  26. 105/151 Myth 7 My lawyer can solve Open Source License

    problem 我的律師可以解決開源軟體授權問題
  27. 109/151 程式交互性 A 程式授權 B 程式授權 A 程式授權 B 程式授權

    函式呼叫 / 靜態連結 / 動態連結 / 網路交互
  28. 110/151 程式交互性 B 程式授權 ( 互惠 / 感染 ) A

    程式授權 B 程式授權 函式呼叫 / 靜態連結 / 動態連結 / 網路交互
  29. 111/151 程式交互性 ( 互斥 / 不相容 ) A 程式授權 B

    程式授權 函式呼叫 / 靜態連結 / 動態連結 / 網路交互
  30. 112/151 GPL-2.0 與 GPL-3.0 是否相容? GPL-2.0 與 AGPL-3.0 是否相容? GPL-3.0

    與 AGPL-3.0 是否相容? LGPL-2.1 與 GPL-2.0 是否相容? LGPL-3.0 與 GPL-2.0 是否相容? MIT 與 GPL-2.0 是否相容? Apache-2.0 與 GPL-2.0 是否相容?
  31. 113/151 GPL-2.0 與 GPL-3.0 是否相容? GPL-2.0 與 AGPL-3.0 是否相容? GPL-3.0

    與 AGPL-3.0 是否相容? LGPL-2.1 與 GPL-2.0 是否相容? LGPL-3.0 與 GPL-2.0 是否相容? MIT 與 GPL-2.0 是否相容? Apache-2.0 與 GPL-2.0 是否相容? GPL-3.0 / AGPL-3.0 LGPL-2.1 / GPL-2.0 GPL-2.0
  32. 118/151 互惠性 : 三大分類 ( 舊 ) License scope –

    Reciprocal ( 互惠性 ) Low High (GPLed) GPL LGPL AGPL (MPLed) MPL EPL (BSDed) BSD MIT Apache Gift license Sharing-with-files Sharing-with-rules Give me credit Give me fixes Give me everything
  33. 119/151 互惠性 : 四大分類 License scope – Reciprocal ( 互惠性

    ) GPL LGPL MPL EPL BSD MIT Apache Gift license Sharing with files Sharing with rules Give me credit Give me fixes Give me everything AGPL Sharing with network Give me everything even in network Low High
  34. 121/151 Copyright (C) 2015 Ref: http://www.dwheeler.com/essays/floss-license-slide.html Creative Commons “Attribution-Share Alike

    3.0 License”; the GNU Free Documentation License; or the GNU GPL (version 2 or later)
  35. 123/151 Copyright (C) 2015 Ref: https://www.gnu.org/licenses/quick-guide-gplv3.html 但這兩張圖無法解決所有問題, 例如不包括 PHP/Python/Ruby 授權等,

    交互未區別函式呼叫 / 靜態連結 / 動態連結 / 網路交互等。 Ref: http://www.dwheeler.com/essays/floss-license-slide.html Creative Commons “Attribution-Share Alike 3.0 License”; the GNU Free Documentation License; or the GNU GPL (version 2 or later)
  36. 126/151 Security (Hacker) Law (Intellectual Property) Technology (Software Dev.) 衍生著作

    散布權 專利權 ... 靜態連結 動態連結 虛擬化 ... 逆向分析 技術回避 ...
  37. 131/151 Elastic CEO 對 Amazon 的不滿 2021 年 1 月

    15 日, Elastic 創始人 Shay Banon 在公司官網宣佈,從 Elastic 7.11 版本之後, Elasticsearch 與 Kibana 的自由開放源碼授權,將從原本的 Apache-2.0 變更為 SSPL (Server Side Public License) 與 Elastic License ( 商業付費授權 ) 的 雙重授權模式。 Shay 同時表示,這麼做的原因是希望公司與開發社群維持良好「公開」互動的初衷, 不要像一些雲端服務公司 ( 文章特別指名 Amazon) 拿取 Elasticsearch 與 Kibana 的 付出心血與貢獻來營利,卻沒有回饋。 對於使用者而言,比較關心的是『當 Elastic 的 Elasticsearch 及 Kibana 的軟體授權 協議更改後,對我有什麼影響?未來是不是要付費了?』; 對於創業或行銷領域者,比較關心的是『自由開放源碼真的能賺錢嗎?怎麼樣的商業 模式 ( 或稱為營利模式 ) 才是對的?』; 對於自由開源授權領域者,討論更本質的問題,『自由開放源碼有無商業模式?』。
  38. 132/151 SSPL 是什麼? 只要使用 Elasticsearch 或 Kibana 時,連帶將其相關服務的程式 ( 不管這些程式屬

    於你的,或是任何第三方 ) ,經實體或網路提供服務者,都需要依 SSPL 授權開放原 始碼並提供任何人免費使用,否則就只能改採用商業付費授權的 Elastic License 。 這些基於 Elasticsearch 或 Kibana 的「相關服務的程式」,根據 SSPL 第 13 條所示, 包括但不限於, ☐ management software ☐ user interfaces ☐ application program interfaces ☐ automation software ☐ monitoring software ☐ backup software ☐ storage software ☐ hosting software … 若你原本排斥 GPL 、 AGPL ,那麼你會更不會喜歡 SSPL 。
  39. 134/151 Q9 Elasticsearch 的最新授權條款為何?為何變更? ☐ MIT ☐ Apache-2.0 ☐ GPL-2.0

    ☐ GPL-3.0 ☐ AGPL-3.0 ☑ 其它 SSPL (Server Side Public License)_
  40. 135/151 Q9 Elasticsearch 的最新授權條款為何?為何變更? ☐ MIT ☐ Apache-2.0 ☐ GPL-2.0

    ☐ GPL-3.0 ☐ AGPL-3.0 ☑ 其它 SSPL (Server Side Public License)_ 請問 AWS 依原 Elastcisearch 開源的專案名稱是什麼?
  41. 136/151 Q9 Elasticsearch 的最新授權條款為何?為何變更? ☐ MIT ☐ Apache-2.0 ☐ GPL-2.0

    ☐ GPL-3.0 ☐ AGPL-3.0 ☑ 其它 SSPL (Server Side Public License)_ 請問 AWS 依原 Elastcisearch 開源的專案名稱是什麼? Open Distro https://opendistro.github.io/for-elasticsearch/
  42. 137/151 Q9 Elasticsearch 的最新授權條款為何?為何變更? ☐ MIT ☐ Apache-2.0 ☐ GPL-2.0

    ☐ GPL-3.0 ☐ AGPL-3.0 ☑ 其它 SSPL (Server Side Public License)_ 請問 Open Distro 的授權是什麼?
  43. 138/151 Q9 Elasticsearch 的最新授權條款為何?為何變更? ☐ MIT ☐ Apache-2.0 ☐ GPL-2.0

    ☐ GPL-3.0 ☐ AGPL-3.0 ☑ 其它 SSPL (Server Side Public License)_ 請問 Open Distro 的授權是什麼? Apache-2.0 與原 Elasticsearch 授權相同
  44. 139/151 Q10 Grafana 的最新授權條款為何?為何變更?與 AWS 有關? ☐ MIT ☐ Apache-2.0

    ☐ GPL-3.0 ☐ AGPL-3.0 ☐ SSPL ☐ 其它 ______________________________
  45. 140/151 Grafana Labs 主力軟體授權異動 Grafana Labs 於 2021 年 4

    月 20 日宣布旗下 Grafana 、 Loki 及 Tempo 三項主力 軟體進行授權異動,從 Apache-2.0 變更為 AGPL-3.0 。這是公司從 2021 年初開始 ,歷經內部多次爭論但充份討論後的最終決定。 同時表示, AGPL-3.0 與 Apache-2.0 同為 OSI 核可的授權條款,雖 AGPL-3.0 帶給 社群較多「約束」,但這種回饋顯得更為「公平」。另一方面,即使 MongoDB 推廣 的 SSPL 授權可能更能「保護」 Grafana 公司,但考量「約束」和「自由」的權衡後 ,仍決定採用 AGPL-3.0 。 與 ElasticSearch 事件不同的是, ElasticSearch 與 Amazon/AWS 因鬧翻而引起其 授權變更,此次 Grafana 並沒有提及有類似的合作問題。雖然 AWS 同 ElasticSearch 有託管 Grafana 雲服務且最近才推出 Preview 版本,但 Grafana 去年底 (2020/12) 就有在其官方網站上宣達 Amazon Managed Service for Grafana 此服務,並對此 合作模式感到愉快。
  46. 141/151 Q10 Grafana 的最新授權條款為何?為何變更?與 AWS 有關? ☐ MIT ☐ Apache-2.0

    ☐ GPL-3.0 ☐ AGPL-3.0 ☐ SSPL ☐ 其它 ______________________________
  47. 142/151 Q10 Grafana 的最新授權條款為何?為何變更?與 AWS 有關? ☐ MIT ☐ Apache-2.0

    ☐ GPL-3.0 ☑ AGPL-3.0 ☐ SSPL ☐ 其它 ______________________________
  48. 147/151 Security Marketing Compliance needs pen testing red team regulations

    controls standards unit / integration / performance test unit / integration / performance test scheduling unit / integration / performance test scheduling schedule pipeline Develop