FreeBSD 13 幾乎以 WireGuard 的駭客實現告終,其中存在許可證違規和漏洞

從形成FreeBSD 13 版本的程式碼庫來看,實作WireGuard VPN 協定的程式碼是根據Netgate 的指令在沒有與原始WireGuard 的開發人員協商的情況下開發的,並且已經包含在pfSense 發行版的穩定版本中,這是可恥的已刪除。經過原 WireGuard 的作者 Jason A. Donenfeld 的程式碼審查後發現,FreeBSD 提出的 WireGuard 實作是一段劣質程式碼,充滿了緩衝區溢位並且違反了 GPL。

該實作在加密程式碼中包含災難性缺陷,省略了部分 WireGuard 協議,存在導致內核崩潰並繞過安全方法的錯誤,並且使用固定大小的緩衝區來儲存輸入資料。存根的存在而不是總是傳回「true」的檢查,以及忘記調試 printfs 以及用於加密的參數的輸出,以及使用 sleep 函數來防止競爭條件,這些都說明了程式碼的品質。

程式碼的某些部分(例如 crypto_xor 函數)是從為 Linux 開發的 WireGuard 實作移植的,違反了 GPL 授權。結果,Jason Donenfield 與 Kyle Evans 和 Matt Dunwoodie(OpenBSD WireGuard 移植的作者)一起承擔了重新設計有問題的實現的任務,並在一周內完全替換了 Netgate 僱用的開發人員的所有代碼。修改後的版本會作為一組單獨的補丁發布,放置在 WireGuard 專案儲存庫中,尚未包含在 FreeBSD 中。

有趣的是,最初並沒有出現任何問題的跡象;Netgate 希望能夠在 pfSense 發行版中使用 WireGuard,因此聘請了精通 FreeBSD 內核和網絡堆棧、參與錯誤修復並具有開發經驗的 Matthew Macy。驅動程式。梅西百貨獲得了靈活的時間表,沒有截止日期或中期檢查。在 FreeBSD 工作期間認識 Macy 的開發人員將他描述為一位才華橫溢且專業的程式設計師,他不比其他人犯更多的錯誤,並且對批評做出了充分的回應。 FreeBSD 的 WireGuard 實作程式碼品質如此之差令他們感到驚訝。

經過9 個月的工作,Macy 在去年13 月在沒有完成同行評審和測試的情況下將他的實作添加到了用於製定FreeBSD 2.5.0 版本的HEAD 分支中,並且在沒有與原始WireGuard 和WireGuard 的開發人員進行溝通的情況下完成了開發。 XNUMX 月份,Netgate 將 WireGuard 整合到 pfSense XNUMX 的穩定版本中,並開始發布基於它的防火牆。發現問題後,WireGuard 程式碼已從 pfSense 中刪除。

新增的程式碼揭示了 0day 攻擊中使用的關鍵漏洞,但 Netgate 起初並不承認漏洞的存在,並試圖指責原始 WireGuard 的開發者進行攻擊和偏見,這對其聲譽產生了負面影響。端口開發者最初拒絕接受有關程式碼品質的說法,並認為這些說法有些誇大,但在演示了錯誤之後,他提請注意這樣一個事實:真正重要的問題是FreeBSD 中缺乏對程式碼品質的適當審查,因為這些問題在幾個月內仍未被發現。完成且評論被忽略)。 FreeBSD 核心團隊對此事件做出了回應,承諾將其程式碼審查流程現代化。

有問題的 FreeBSD 移植的開發者 Matthew Macy 評論了這一情況,稱他在沒有準備好實施該專案的情況下接受了這項工作,犯了一個很大的錯誤。梅西解釋了情緒倦怠造成的結果以及新冠后綜合症引起的問題的結果。與此同時,梅西並沒有決心放棄他已經承擔的義務,並試圖完成這個計畫。

梅西的病情也可能受到他最近因非法試圖從他購買的房屋中驅逐不願自願搬出的租戶而被判入獄的影響。相反,他和妻子鋸斷了地板橫梁,在地板上打洞,使房子無法居住,還試圖恐嚇居民,闖入被佔用的公寓並拿走他們的財物(該行為被歸類為入室盜竊)。為了逃避對自己行為的責任,梅西和妻子逃往義大利,但被引渡到美國,並在監獄裡服刑四年多。

來源: opennet.ru

添加評論