FreeBSD 13 は、ライセンス違反と脆弱性を備えた WireGuard のハッキング実装で終わるところだった

FreeBSD 13 リリースのベースとなったコード ベースから、WireGuard VPN プロトコルを実装するコードは、元の WireGuard の開発者との協議なしに Netgate の命令によって開発され、すでに pfSense ディストリビューションの安定版リリースに含まれていましたが、スキャンダラスな内容でした。削除されました。 オリジナルの WireGuard の作者である Jason A. Donenfeld によるコード レビューの結果、FreeBSD が提案した WireGuard の実装はバッファ オーバーフローだらけで GPL に違反する粗末なコードであることが判明しました。

この実装には暗号化コードに致命的な欠陥が含まれており、WireGuard プロトコルの一部が省略されており、カーネルのクラッシュやセキュリティ メソッドのバイパスにつながるエラーがあり、入力データには固定サイズのバッファが使用されていました。 常に「true」を返すチェックの代わりにスタブが存在すること、暗号化に使用されるパラメーターの出力を含む printfs のデバッグを忘れたこと、競合状態を防ぐためのスリープ関数の使用は、コードの品質について多くを語っています。

crypto_xor 関数などのコードの一部は、GPL ライセンスに違反して、Linux 用に開発された WireGuard 実装から移植されました。 その結果、Jason Donenfield は、Kyle Evans および Matt Dunwoodie (OpenBSD 用 WireGuard ポートの作成者) とともに、問題のある実装をやり直す作業を引き受け、XNUMX 週間以内に Netgate に雇われた開発者のコ​​ードをすべて完全に置き換えました。 。 修正されたバージョンは別個のパッチ セットとしてリリースされ、WireGuard プロジェクト リポジトリに配置され、まだ FreeBSD には含まれていません。

興味深いことに、当初は問題の兆候はありませんでした。pfSense ディストリビューションで WireGuard を使用できるようにしたいと考えていた Netgate は、FreeBSD カーネルとネットワーク スタックに精通し、バグ修正に携わり、開発経験のある Matthew Macy を雇用しました。このオペレーティング システムのネットワーク ドライバー。 メイシーには、締め切りや中間チェックのない柔軟なスケジュールが与えられました。 FreeBSD に取り組んでいたときに Macy に会った開発者は、彼を他の人よりも間違いを犯さず、批判にも適切に対応する才能のあるプロのプログラマーであると述べました。 FreeBSD の WireGuard 実装コードの品質の低さは彼らにとって驚きでした。

9 か月の作業の後、Macy は昨年 13 月に、ピアレビューとテストが完了しないまま、FreeBSD 2.5.0 リリースの作成に使用された HEAD ブランチに実装を追加しました。開発は、オリジナルの WireGuard およびOpenBSD および NetBSD ポート。 Netgate は XNUMX 月に、WireGuard を pfSense XNUMX の安定版リリースに統合し、これに基づいたファイアウォールの出荷を開始しました。 問題が特定された後、WireGuard コードは pfSense から削除されました。

追加されたコードにより、ゼロデイエクスプロイトに使用された重大な脆弱性が明らかになりましたが、Netgateは当初、脆弱性の存在を認めず、元のWireGuardの開発者を攻撃と偏見で非難しようとし、それが評判に悪影響を及ぼしました。 移植開発者は当初、コード品質に関する主張を拒否し、それが誇張されていると考えていましたが、エラーを実証した後、本当に重要な問題はFreeBSDのコード品質の適切なレビューが欠如しているという事実に注意を喚起しました。なぜなら、問題は何か月も検出されなかったためです。 (Netgate の代表者は、このレビューが 0 年 2020 月に公開されて開始されたと述べましたが、個々の FreeBSD 開発者は、Phabricator ではレビューが完了せず、コメントも無視されたまま Macy によって終了されたと指摘しました)。 FreeBSD コア チームは、コード レビュー プロセスを最新化することを約束してこのインシデントに対応しました。

問題のある FreeBSD 移植の開発者である Matthew Macy 氏は、この状況について、プロジェクトを実装する準備ができていない状態でその仕事を引き受けたのは大きな間違いだったとコメントした。 メイシーは、感情的な燃え尽き症候群と新型コロナウイルス感染症後の症候群によって生じた問題によって生じた結果について説明しています。 同時に、メイシーはすでに引き受けた義務を放棄する決意を見つけることができず、プロジェクトを完了させようとしました。

メイシーさんの状態は、購入した住宅から自主退去を望まない入居者を違法に立ち退かせようとして最近受けた懲役刑の影響もあった可能性がある。 その代わりに、彼と妻は床の梁を鋸で切り落とし、床に穴を開けて家を居住不能にしたほか、住民を脅迫して占拠されたアパートに侵入して持ち物を持ち出そうとした(この行為は強盗として分類された)。 彼の行動に対する責任を逃れるため、メイシーと妻はイタリアに逃亡したが、米国に引き渡され、XNUMX年以上刑務所に服役した。

出所: オープンネット.ru

コメントを追加します