我的開源代碼被大公司盜用後:有人承認,有人讓我滾!!

來源 | InfoQ | 整理 | 褚杏娟

自己辛辛苦苦寫的代碼被他人不聲不響拿去商用賣錢,這對很多人來說都是非常惱火的事情。最近,業界資深網絡安全專家 Patrick Wardle 在 Black Hat 的分享中講述了自己的開源代碼在不被告知的情況下被至少三家獨立公司使用的事情。

至少被三個不同的公司“盜取”代碼

Patrick Wardle 是非常優秀的 macOS 安全研究人員,也是蘋果公司重點關注的 OBTS 安全會議組織者。他還是專爲 macOS 創建開源安全工具的非營利組織 Objective-See 基金會的創始人,這意味着 Wardle 的許多軟件代碼現在可以免費下載和修改,但這也使自己的代碼未被允許就被一些科技公司拿去了,他也是在多年後才發現的。

Wardle 以 Mac 惡意軟件專家而聞名,曾在國家安全局擔任惡意軟件分析師一職。在此期間,他分析了攻擊國防部計算機系統的代碼,並創建了可以查看攝像頭和麥克風是否被惡意軟件操縱的 macOS 工具 OverSight,並通過 Objective-See 免費發佈了該工具。

當時是 2016 年,媒體曝出網絡犯罪分子使用惡意軟件通過用戶的 macOS 網絡攝像頭和麥克風祕密監視人們。其中,一名黑客使用了一款名爲“Fruitfly”的惡意軟件劫持了筆記本電腦的網絡攝像頭,目的是監視兒童。在對新病毒進行了數月的分析後,Patrick Wardle 解密了部分代碼並設置了一個服務器來攔截來自受感染計算機的流量。

然而幾年後,Wardle 爲客戶分析可疑代碼時,在客戶自己設備上的一個工具中發現了問題。該工具由一家大型科技公司開發,提供了與 OverSight 類似的功能,包括監控 macOS 網絡攝像頭和麥克風。

通過篩選程序,Wardle 找到了他非常熟悉的代碼,他的整個“監督”算法,包括他未刪除的 bug,都包含在這個程序中。他終於意識到,某個開發人員對他的工具進行了逆向工程,竊取了他的成果,並將其重新用在了一個名字不同但功能幾乎相同的產品中。

“就像有人抄了你寫的東西,還把你的拼寫和語法錯誤也抄了過去。”Wardle 說道。後來,Wardle 的客戶立即聯繫了該公司,提醒了他們的開發人員竊取了 Wardle 的代碼。

這並不是 Wardle 最後一次發現有公司使用他的代碼。後來, Wardle 發現還有兩家大公司也分別在自己的產品中使用了他的算法。Wardle 沒有透露這些公司的名字。

“你聯繫到這些公司,並說:‘嘿,你們這些傢伙,大部分都是偷的我的東西。你對我的工具進行了逆向工程並重新實現了算法——這在法律上非常...... 呃,是灰色的。但在歐盟,有一條規定你這樣做是違法的。我有一個非營利組織,你實際上是從非營利組織中竊取了信息,並將其放到了你自己的商業代碼中,然後從中獲利。這十分不合適。”Wardle 說道,“但這些公司迴應的態度都不一樣。”

“有的回覆很友好,我有次收到了一個 CEO 的回覆郵件,承認了這一點並詢問如何解決這個問題。但有人先是回覆我說需要三週的內部調查,之後便向我表示沒有看到任何相同的代碼,讓我滾。”Wardle 說道。遇到後者時,Wardle 不得不需要更多證據。

證明盜竊代碼很難

但實際上,證明對方代碼是盜竊來的非常難。Wardle 表示,他必須使用自己的閉源軟件並採用逆向工程來了解那些公司的代碼是如何工作的,並證明那些代碼與自己的相似。此外,Wardle 還與爲獨立安全研究人員提供無償法律服務的非營利性電子前沿基金會 (EFF) 合作。

Wardle 能夠弄清楚是否爲盜竊代碼是因爲他自己既編寫工具又編寫逆向工程軟件,同時掌握這兩門專業知識讓他更容易找到證據。但像 Wardle 一樣擁有這種技術背景,同時在社區還有一定影響力的開發者並不多,在維護權益方面常常處於弱勢。

在去年,一位名叫 Brendan Gregg 開發者公開了自己寫的 DTrace 項目相關開源代碼被 Sun 公司“偷走”的往事。那是更早的 2005 年,Gregg 忙着編寫和發佈 DTrace 相關的高級性能工具,然後發現 Sun 公司發佈的相關工具竟然比自己發佈的還少。

Gregg 不是 Sun 的員工,不清楚公司內部運作,但他還負責爲 Sun 提供培訓與諮詢支持。有一次,Sun 爲其演示了基於 DTrace 打造的新產品,也就是在這個過程中,Gregg 發現其中一些工具是自己編寫的腳本,而且這些工具非常不成熟,是自己當年隨手寫了就對外開源的,裏面有很多奇怪的組合,個人風格強烈。Gregg 還發現,Sun 還把他作爲作者的名字刪掉了。但最後 Gregg 也沒有得到什麼補償。

相比 Sun 公司的行爲,蘋果和甲骨文的做法就讓 Gregg 舒服很多。Gregg 表示,幾年後,蘋果把他幾十款工具添加進了 OS X 系統中,並完整保留了作者的姓名、版權以及 CDDL 開源許可證,甚至還對功能進行了改進與增強。多年之後,甲骨文在 Oracle Solaris 11、BSD 社區在 FereBSD 上也採取了同樣的開源成果吸納方式。

事實上,這樣盜用他人開源代碼爲自己謀利的案例有很多。去年,特朗普支持的社交媒體平臺 Truth 被 Mastodon 創始人告上法庭。Mastodon 的創始人 Eugen Rochko 稱,該應用程序稱從自己的開源項目中提取了大量代碼。當時,網友們發現 Truth 測試版的界面與 Mastodon 基本相同,而且該網站的部分代碼與其他社交網絡的代碼沒有任何差異。

特朗普媒體與技術集團 (TMTG) 此前還稱 Truth 爲“專有軟件”,並試圖隱藏 Truth 基於 Mastodon 的事實。這件事情被曝光後,其相關股價隨之大跌。

結束語

事實上,開源軟件本身允許其他平臺使用自己的代碼,但開源軟件的許可證要求使用者將他們的源代碼和做的任何修改提供給公衆。但很多公司在使用了代碼之後沒有任何說明。

Wardle 認爲,導致這種現象的本質是開發人員的任務就是找到某種解決方法,比如監控麥克風和攝像頭,然後他們就找到相應的工具進行逆向工程並竊取算法,而公司的目的就要解決方案,並不會追問代碼的來處。

“我相信這是一個系統性問題,因爲當我開始尋找時,我不是隻找到了一個,而是好幾個,這些公司還都完全不相關。”Wardle 認爲代碼盜竊的做法非常普遍。

對此,Wardle 建議,對於軟件開發人員來說,任何編寫代碼(無論是開源代碼還是閉源代碼)的人都應該假設它會被盜,並學習有助於他們發現這種情況的技術。對於公司而言,管理者應該教育員工或開發人員不要偷竊,並讓他們認真瞭解圍繞對一個產品逆向工程以獲取商業利益的法律規範,否則將整個組織將面臨法律風險。

此類事件的發生也在不斷提醒人們,一定要規範使用開源軟件的代碼,否則對公司名譽、實際利益都沒有好處。

參考鏈接:

近期熱文推薦:

1.1,000+ 道 Java面試題及答案整理(2022最新版)

2.勁爆!Java 協程要來了。。。

3.Spring Boot 2.x 教程,太全了!

4.別再寫滿屏的爆爆爆炸類了,試試裝飾器模式,這纔是優雅的方式!!

5.《Java開發手冊(嵩山版)》最新發布,速速下載!

覺得不錯,別忘了隨手點贊+轉發哦!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章