開源安全的危機在於太相信 GitHub?——專訪Apache之父&OpenSSF基金會總經理Brain Behlendorf

開源安全的危機在於太相信 GitHub?——專訪Apache之父&OpenSSF基金會總經理Brain Behlendorf

【CSDN 編者按】Apache 軟體基金會與Linux基金會作為全球開源的一面旗幟,創立二十餘年已深深影響著全球數十億開發者。隨著開源在全球的滲透率逐年加深,引發巨大影響的開源供應鏈等安全問題也在向開源從業者發起挑戰,本文將跟隨Apache 創始人之一、OpenSSF 基金會總經理 Brain Behlendorf 的視角,直面這位開源奠基者對開源生態與安全的深度思考。

作者 | 王啟隆 責編 | 何苗

出品 | 《新程式設計師》編輯部

在開源開發者心中, Apache 與Linux 的意義不言而喻。開源能夠發展至今,離不開眾多非營利開源軟體組織的幫助,而它們便是這些組織中的佼佼者。時至今日,早年間由 Brian Behlendorf 帶領程式設計師們重寫開源程式 NCSA HTTPd 而成的 Apache HTTP Server 仍是世界使用第一的網頁伺服器。這個最初被戲稱為“補丁伺服器”的存在,成就了 Web 伺服器的傳奇,也讓 Brian Behlendorf 獲得了 “Apache之父” 的尊稱。

同時,國內開發者耳熟能詳的Apache ShardingSphere、Apache SkyWalking、Apache Doris 等也都是 Apache 孵化的頂級開源專案。Apache 的開源文化深深地影響著全球開發者。“Apache Way” 向技術人指明瞭一條“如何去做開源?怎樣做好開源?”的大道。其中“沒有在郵件中發生的事就沒有發生”這一準則,更是沿襲自 Brian Behlendorf 的一個偶然舉措,早年間他為了更好地進行溝通,建立了一個郵件列表,將大家召集在一起,更好地協同工作。

如今的開源已經步入一個全新的階段,先驅者們已經從拓荒中歸來,開始研究更加現實的開源安全問題,“Apache” 創始人之一的 Brian Behlendorf 也加入了OpenSSF 開源安全基金會擔任總經理,致力於全球開源生態系統安全方面的建設。

開源安全的危機在於太相信 GitHub?——專訪Apache之父&OpenSSF基金會總經理Brain Behlendorf

Brain Behlendorf,Apache 創始人之一、OpenSSF 基金會總經理

本期《新程式設計師005》有幸邀請到了這位開源大師展開專訪,他不僅向我們分享了許多開源安全領域建設的實踐經驗和寶貴思考,還吐露了自己最真摯且崇高的開源理想。

以下是 Brian Behlendorf 訪談記錄:

“ Apache 之父 ” 的成長之路

《新程式設計師》:據瞭解,你的父母在科技領域工作,但你大學卻並沒有主修計算機,那時候的你對什麼更感興趣?後來又是什麼引發了你對計算機程式設計的興趣?

Brian:1991 年的時候,我高中畢業,就在同一年,Tim Berners-Lee 推出了世界上第一個網路瀏覽器和網路伺服器,但在那時候還沒有多少人知道這件事。當我上高中的時候,我的父母在 IBM 工作並相識,得益於此,我們家裡有一臺個人電腦。但我的父親是個 COBOL 程式設計師,而 COBOL 語言對我來說又索然無味,所以當時並沒有打算將編寫軟體作為未來的工作。

在加州大學伯克利分校上大學期間,一開始我主修的是物理,但後來我在大學裡建立了自己的第一個電子郵件賬戶,並接觸到了網際網路,慢慢地對計算機科學更感興趣。也是從那時起,我開始經營一些獨立的程式設計專案,也因此得到了一份協助管理 Unix 機器的實驗室工作,對計算機程式設計行業的工作和運營有了一定了解。後來我對電子音樂產生了濃厚的興趣,所以在 1992 年建立了一個關於電子音樂的網站,並開始在那裡建立一個社群,這也導致我最終沒有時間完成本科學位。

《新程式設計師》:那麼你第一次聽說 Unix 作業系統時,對它有什麼看法?

Brian:我對 Unix 的第一印象是——它是命令列驅動的,這一點讓我欣喜若狂。對我來說,輸入命令列就像和電腦說話,我可以透過命令列給電腦下達非常精確和具體的要求。命令列甚至比圖形使用者介面更好操作,因為我不需要開啟一個個資料夾,然後試著找到正確的按鈕或輸入方式。從這個角度來看,Unix 的誕生是鼓舞人心的。

現在回想 1991 年到 1993 年左右的時候,當時的網際網路氛圍乃至社會文化非常鼓勵相互幫助。那是個一切都很完美的時代,你會因收到陌生人的郵件感到興奮,你會去遐想自己在網際網路接觸的每一個人都是友善且風趣的,你會希望讓更多的人能接觸到網際網路。這種文化甚至早於開源軟體誕生之前,但我認為它至今仍在被髮揚光大,現在許多開源社群都是富有生產力和創造性的。

《新程式設計師》:還記得自己寫的第一個比較有趣的程式是什麼嗎?你早期的程式設計風格是否有延續到如今的工作中?

Brian:大約在八歲的時候,我讀過一本關於如何用 BASIC 為 TRS-80 計算機編寫程式的書,也曾用這本書編寫過一些簡單的遊戲和程式。至於我寫的第一個真正的程式,那得回溯到我上小學四年級的時候。當時我需要每兩週為班裡安排一次隨機座位表,於是我寫了一個程式,可以隨機分配座位且把結果打印出來。有意思的是,如果我被隨機分配坐在不喜歡的人旁邊,我就會讓它再執行一遍,就可以“隨機”坐在班上那些很酷的孩子旁邊——所以這個座位表並不是完全“隨機”的。老師不瞭解原理,所以也沒能發現我的小動作。

但在那之後,我職業生涯的大部分時間裡,都不經常程式設計了。還記得在建立Apache Web 伺服器的早期我編寫了不少程式,在 Apache 的第一個贊助網站上線時也寫了很多東西。我現在仍然會維護自己的郵件伺服器,但我從不以一個偉大的軟體開發者自居,我並不偉大。

《新程式設計師》:1993 年告別校園後,你曾與夥伴們創立了 Organic。Inc,但當時的網路伺服器軟體無法處理公司需求,因此你嘗試了修補開原始碼,那是你第一次接觸開源嗎?你是如何與開源結緣的?

Brian:不,並不是那時候。我第一次接觸開源應該是 1991 年第一次到伯克利的時候,我當時開始探索早期的網際網路是什麼樣子,我看到網際網路上有很多軟體可以下載,可以輕而易舉地下載每一個軟體並且在自己的電腦上執行。從那時起我就有了一個想法:軟體並不應該是讓一兩個人去編寫,並且賣 30 多美元一份的東西;相反,軟體應該是成百上千的人把小段程式碼拼在一起編寫,將所有的東西都集中在一起的存在,這可能就是我開源思想的雛形。這段經歷發生在 1991年,那是我第一次使用你們如今所認為的“開源軟體”,但直到 1998 年,它才被稱為開源,開源這個術語是在那之後發明的。

安全的開源開發需要公開的“配料表”

《新程式設計師》:自去年 12 月 Log4j2 曝出“驚天”漏洞以來,引發了全球多個國家政府以及科技巨頭紛紛的關注與反思,同時關於開源軟體的安全性問題的探討也變得越來越緊迫。對你來說,開源安全領域過去幾年發生了哪些大的變化?

Brian:開源安全是政府和企業需要共同努力的事情。我記得當時他們在 Log4j事件之後釋出了相當多的報告,但在一份大約 3 周前釋出的報告裡表示:是很多不同的情況導致了這場危機,因此希望像 OpenSSF 這樣的開源安全基金會越來越多。OpenSSF 被那份政府報告引用了 29 次。在我看來,至少在過去幾年裡,國家安全委員會不再會在修復漏洞的問題上對我們發表意見,所以基金會能取得如今這樣的成果和地位,不僅是非常令人滿意的,也是非常令人生畏的。開源安全是擺在我們面前的一項艱鉅的任務,社會依賴它來運轉,就像依賴橋樑、高速公路、電網或社會的其他部分一樣,我們的生活不能沒有它。

《新程式設計師》:2021 年 10 月,Linux 基金會宣佈籌集 1000 萬美元新投資,以擴充套件和支援開源安全基金會( OpenSSF ),保護開源供應鏈。為什麼開源供應鏈如此重要?它在開源的發展中佔據什麼位置?

Brian:供應鏈代表著一切,可以說我們所生活的世界就是由供應鏈組成的,現在我的電腦旁邊能有一隻滑鼠存在,都是因為供應鏈的存在。而軟體自然也不例外,很少有哪個軟體是由一個人寫成,然後直接把它傳送給終端使用者的,因為開源軟體就是離不開供應鏈的存在。

正因如此,供應鏈現在也是被主要攻擊的物件。十年前我們肯定想不到,可能會有人在我們的包資料庫裡偷偷安插了一個壞包,更想不到某個 JavaScript 模組的作者可能會把賬戶賣給某個駭客,而這個駭客可能會在我們的網站上設定後門……我們的事業是在一個彼此之間高度信任的時代建立起來的,當時我們不必擔心這些型別的攻擊。現在我們已經意識到了,要幫助開源開發者做出更加安全的決定。

《新程式設計師》:你認為開源軟體的安全性目前面臨的最大挑戰是什麼?

Brian:現在的開發者經常忽視一個問題,那就是平臺的選擇。比如,當我需要新增一個功能時,一般會在現有庫的基礎上進行構建,構建的過程中就需要平臺的幫助,但我們從來都是默認了一個平臺並且依賴它,沒有去思考深層的安全性問題。你可以認為這是因為大部分程式設計師都很“高效”,但其實也是一種“懶惰”。所有人在開發過程中都給予 GitHub 這樣的中心組織很大的信任,甚至從未質疑它們。

當然,我希望 GitHub 永遠不會被駭客入侵,一旦 GitHub 被入侵了,很多人都會遭殃。到目前為止,GitHub 做得很好,但我們真的應該把所有的信任都交給一個組織嗎?

我也不清楚這個問題的答案。我們在 OpenSSF 中有一個名為 Sigstore 的專案,它使用了非常輕量的 Let’s Encrypt 方式來用金鑰對研發流程中的製品進行簽名,以便將其嵌入到每個人用來進行構建和釋出的工具中。這就像我們生活中隨處可見的配料表:如果你拿起一瓶番茄醬,那麼製造商必須告訴你瓶子裡裝的是什麼,以免有的人過敏。總之,開發者現在還需要更好的軟體工具來促進開源安全。

開源開發也需要這樣的“配料表”,需要透明公開的協作流程。很多企業通常不知道他們執行的是什麼軟體,Log4j 也是因此出現了問題。開發者們在部署軟體時需要理解目標物件的構建,需要了解整套工作的執行流程。我們要儘量避免那些只有一個開發人員看過的軟體、來源不可信的軟體或者那些你不能保證構建伺服器是否被入侵的軟體。

跨越語言障礙,OpenSSF 助推中國開源安全建設

《新程式設計師》:很多問題到了中國可能又會有所不同,從而衍生新的問題。你對中國開源的現狀有哪些看法嗎?

Brian:開源安全是每個國家都存在的問題。在這一點上,大家的利益其實是一致的,畢竟 Log4j 的漏洞就是由阿里巴巴(阿里雲)的研究人員發現的。我們需要一起努力,而這也是我參與本次訪談的原因之一,我真的希望看到中國社群、企業、開發商、甚至政策制定者在這方面真正統一起來。

當然,我也很清楚中國開發者現在面臨的一些問題,最主要的肯定是語言的問題。如果你的母語不是英語,可能與中國以外的開發人員合作會是一個挑戰,由於不知道如何提出正確的問題而阻礙合作和發展。Linux 正在與 OpenSSF 合作,我們試圖建立一箇中文子社群,專注於服務和幫助中國開發者採用這些先進技術,同時也讓中國開發者幫助我們改進技術,最終在中國開設我先前提到的Sigstore 專案。這些都應該本地化到中國,讓中國社群能夠更廣泛地學習和使用。

《新程式設計師》:要想降低開源軟體的安全風險,安全意識也很重要,OpenSSF 是如何幫助開源使用者有效提升安全意識的?

Brian:我們在 OpenSSF 上釋出了相當多的內容,不僅能幫助開發者學習如何使用工具,還能幫助他們編寫更安全的程式碼。事實上,我們已經在培訓網站上釋出了一門關於 Linux 安全基礎培訓的課程,現在正在將其翻譯成中文,叫做安全軟體開發基礎課程。課程時長大約有 20 小時,雖然不是很長,但它可以教你如何避免一些問題,比如不要解析不受信任的使用者,還有怎麼提交正確的輸入格式字串——這個問題曾導致了 Log4j 的 bug 。我們相信,如果有更多的開發人員參加這個課程並進行認證,就能大大降低程式碼進入軟體供應鏈時產生的風險。

總而言之,我鼓勵開發人員前往 OpenSSF 的網站上學習這門課程,特別是在我們將其本地化為中文之後。我們還發布了一份指南,上面介紹了開源專案可以做的一系列事情,以提高安全性。OpenSSF 開放了許多資源來幫助開發人員,這些工作並不只是為了讓他們的程式碼更安全,更重要的是培養一種不同的思維方式和一種不同的做事方式。

《新程式設計師》:大部分中國開發者都比較務實,他們很關心開源軟體的商業化和開放。你對此有什麼想法?

Brian:如果每個人都選擇把程式碼賣出去,那麼像谷歌、亞馬遜甚至百度和騰訊這樣的公司都不可能發展壯大。我們確實應該具體思考如何將開原始碼商業化,但肯定不是通過出售開原始碼本身,而是圍繞它做其他事情;比方說,我們可以使用開原始碼去構建一個很棒的網站,或者是移動應用程式、移動應用程式的後端還有啟動一些引人注目的新服務等等。不要總去想怎麼把開原始碼賣出去,你應該思考自己如何利用這些開原始碼在世界上創造更多的價值,人們自然而然會付錢給你。

《新程式設計師》:您曾提到過可持續開源的軟體理念。中國的開發者該如何從這一理念中獲益呢?

Brian:可持續開源理念不一定和軟體有關,首先你得認識到,大多數人寫開原始碼並不是出於慈善,他們選擇開源並非出於無私,而是為了免費地編寫程式碼。比方說,如果你是為了建立一個網路服務或是一個支付平臺而開展專案,那麼在這個過程中每當你修復了一個 bug,或者添加了一個特性,或者寫了一些新東西——都是需要付費的。因此,一個執行良好且持久穩定的開源專案是人們進行活動的主要驅動力,我認為這是企業需要考慮的關鍵問題。

對於中國的開發者,我還想說的是,我們就在這裡,我們想讓你們更強大,我們也想讓你們互相幫助,從而達成全球協作。我認為有許多開發者已經投入了大量精力來解決這個問題。“傳播”是一件很重要的事情,人類的發展便起源於傳播,我們將會提供工具讓所有中國企業——甚至全球行業,共享這項開源事業的結果。

Apache Way 是更安全的協作方式

《新程式設計師》:作為 Apache 軟體基金會的創始成員,你對著名的“ Apache Way ”的理解是什麼?這種開源的運作方式如何保障開源軟體的安全?

Brian:其實 Apache Way 一直沒什麼確切的定義,它的核心有兩點:電子郵件和數字交流。Apache Way 是一種完全包容、開放、透明且基於共識的工作方式,讓我們打個比方:如果一個專案、一個事情沒有發生在我們公眾的郵件列表裡,那麼你可以先在私下進行它,但是你必須把它帶回到公眾面前,進行一次群體的交流,然後才能繼續專案的推進。Apache Way 的主題是透明、協作,我們要儘量避免出現“一個人負責整個軟體”這種情況,因為如果某個專案唯一的負責人哪天離開了專案,就沒有任何人知道怎麼繼續維護了。

正如我前面所說,你要確保在開源專案中,總是有很多人對每一行程式碼負責,甚至是對整個專案進行負責。這就是 Apache Way,我認為它其實是一種生活準則。我們透過這種方式一起使用簡單的工具來協調我們的活動,並且對事物的編寫方式有共同的期望,這樣我們才能夠高效生產,編寫出最好的軟體,從而在程式碼中建立公眾對我們的信任。

《新程式設計師》:那關於“Apache Way”還有你們的工作方式,你有哪些趣聞可以分享嗎?

Brian:我很喜歡用電子郵件來進行工作交流,我喜歡這種以非同步方式線上協作的感覺,電子郵件也包容了我們時間上的差異、文化差異還有語言差異等等。至於趣聞,其實我們的 Apache Web 伺服器專案就是一個例子,我們的專案裡有一個叫 Alexico 的人,他在伺服器專案建立後的3年裡,大部分時間都對我們提供了不少實用的幫助。他不僅是幫忙寫了一些程式碼,他還會幫助專案裡的其他人寫程式碼,並且協助審查他人的程式碼,甚至還幫我們回答使用者的問題。不得不說,他真的是一個優秀的社群構建者。

但是那時候還不流行影片會議,我們也沒有很多面對面的機會,所以我沒有見過他本人,所以我唯一知道的就是這位 Alexico 的電子郵件地址。直到有一天,他給 Apache Web 伺服器的開發者郵件列表發了一條訊息,說:“嗨,夥計們,我有一些訊息要告訴你們。我以後可能沒法給專案帶來那麼多貢獻,也沒法經常上線了;因為我今年秋天就要上大學了。”

他作為一名高中生一直在參與這個開源專案,與所有其他專業軟體開發人員進行交流!當時我們專案的所有人,都為他的勤奮、智慧以及純正的開源精神而震驚不已,而我們後來在許多不同國家的人們之間也看到了這份精神。所以我認為,Apache Way 可以幫助那些英語不是母語的人使用電子郵件進行交流,這比使用影片或電話或其他方式要好得多,因為使用電子郵件能保證資訊被更準確地傳達。

開源生而自由,全球協作是最終理想

《新程式設計師》:在開源領域,Richard·Stallman(自由軟體運動的精神領袖)的自由價值理念是永遠繞不開的一大思想。您認為和過去相比,如今的“自由軟體”和“開源軟體”有什麼不同?

Brian:我很尊重 Richard·M·Stallman,我們的社群流行過這麼一種說法:如果Richard·M·Stallman不曾存在,我們就必須創造一個Richard·M·Stallman。因為讓他代表各種觀點是非常有用的。相比之下,社群中的其他人看起來就像溫和派。我非常瞭解共享原始碼的實際好處,我認為這個權利是非常重要的,而 Richard·M·Stallman 甚至認為這是一種人權。我相信我們已經能夠讓行業的很多人轉向開源軟體事業。要知道,當今世界的手機、汽車或網站上所使用的 90% 軟體都是開源軟體。

當然,我並沒有從道德或人權的角度來強調軟體應該是開源的。正是因為團隊協作的開源專案能夠更有效地構建更好的軟體,所以我才認為自由軟體和敏捷開發可以與開源軟體共存,我並不認為它們是對立的或不一致的。開源軟體運動所討論的一直都是“我們該如何幫助開發者?”“我們該如何幫助企業編寫更好的程式碼?”“我們要如何避免回到以前 Mac 和 PC 的平臺戰爭當中?”其實我認為關於這些問題的爭論早已結束了,開源在很大程度上獲得了勝利。既然我們贏了,接下來就該思考要如何用開源發展出自己想要的社會和未來。我的理想便是全球協作。

《新程式設計師》:最後,你有哪些話想送給中國開發者?你如何評估開源在全球和中國的發展前景?

Brian:我是個理想主義者。我想要的未來是,我們能夠在共同的專案上進行全球合作,我們能在未來找到一種不受語言、時區、政治等障礙影響的方法並共同協作,但我很擔心這是否能夠實現。實際上,我認為現今沒有足夠的人寫開原始碼來滿足市場的需求。我希望未來就像 Apache 的早期一樣,所有人可以一起工作,彼此不關心出身、年齡或背景。這就是我想要的開原始碼未來。我也希望政府能更多地認識到,開源軟體在建設我們想要的社會中發揮的關鍵作用,開源將會建設一個非常數字化的社會。所有企業(當然主要是大型企業)和個人,都需要認識並投資開原始碼,認識到開原始碼會給社會帶來哪些積極的結果。這些都是我的希望,我擔心的是我們根本無法接近這個目標,我擔心我們會朝著相反的方向前進,但我無法預測我們在未來是否會走向更樂觀的方向,所以我所能做的就是談論目前樂觀的方向。