FreeBSD 13 gần như đã kết thúc với việc triển khai WireGuard một cách khó khăn với các lỗ hổng và vi phạm giấy phép

Từ cơ sở mã mà bản phát hành FreeBSD 13 được hình thành, mã triển khai giao thức WireGuard VPN, được phát triển theo lệnh của Netgate mà không tham khảo ý kiến ​​​​của các nhà phát triển WireGuard ban đầu và đã được đưa vào các bản phát hành ổn định của bản phân phối pfSense, đã gây tai tiếng LOẠI BỎ. Sau khi Jason A. Donenfeld, tác giả của WireGuard ban đầu, xem xét mã, hóa ra việc triển khai WireGuard được đề xuất của FreeBSD là một đoạn mã kém chất lượng, có nhiều lỗi tràn bộ đệm và vi phạm GPL.

Quá trình triển khai có những sai sót nghiêm trọng trong mã mật mã, một phần của giao thức WireGuard bị bỏ qua, có lỗi dẫn đến sự cố hạt nhân và bỏ qua các phương thức bảo mật cũng như bộ đệm có kích thước cố định được sử dụng cho dữ liệu đầu vào. Sự hiện diện của các sơ khai thay vì các kiểm tra luôn trả về “true”, cũng như các bản in gỡ lỗi bị quên với đầu ra là các tham số được sử dụng để mã hóa và việc sử dụng chức năng ngủ để ngăn chặn các điều kiện chạy đua nói lên rất nhiều điều về chất lượng của mã.

Một số phần của mã, chẳng hạn như hàm crypto_xor, đã được chuyển từ triển khai WireGuard được phát triển cho Linux, vi phạm giấy phép GPL. Do đó, Jason Donenfield, cùng với Kyle Evans và Matt Dunwoodie (tác giả của cổng WireGuard cho OpenBSD), đã nhận nhiệm vụ xử lý lại quá trình triển khai có vấn đề và trong vòng một tuần, đã thay thế hoàn toàn toàn bộ mã của nhà phát triển được Netgate thuê . Phiên bản sửa đổi được phát hành dưới dạng một bộ bản vá riêng biệt, được đặt trong kho dự án WireGuard và chưa được đưa vào FreeBSD.

Điều thú vị là ban đầu không có dấu hiệu rắc rối nào; Netgate, muốn có thể sử dụng WireGuard trong bản phân phối pfSense, đã thuê Matthew Macy, người thành thạo về kernel và ngăn xếp mạng FreeBSD, tham gia sửa lỗi và có kinh nghiệm phát triển. trình điều khiển mạng cho hệ điều hành này. Macy được giao một lịch trình linh hoạt, không có thời hạn hoặc kiểm tra giữa kỳ. Các nhà phát triển đã gặp Macy khi làm việc trên FreeBSD đã mô tả anh ấy là một lập trình viên tài năng và chuyên nghiệp, người không mắc nhiều lỗi hơn những người khác và phản ứng thỏa đáng trước những lời chỉ trích. Chất lượng kém của mã triển khai WireGuard cho FreeBSD khiến họ ngạc nhiên.

Sau 9 tháng làm việc, Macy đã bổ sung phần triển khai của mình vào nhánh HEAD, được sử dụng để hình thành bản phát hành FreeBSD 13, vào tháng 2.5.0 năm ngoái mà không hoàn thành quá trình đánh giá và thử nghiệm ngang hàng. Quá trình phát triển được thực hiện mà không liên lạc với các nhà phát triển của WireGuard ban đầu và. Cổng OpenBSD và NetBSD. Vào tháng XNUMX, Netgate đã tích hợp WireGuard vào bản phát hành ổn định của pfSense XNUMX và bắt đầu cung cấp tường lửa dựa trên nó. Sau khi xác định được sự cố, mã WireGuard đã bị xóa khỏi pfSense.

Mã được thêm vào đã tiết lộ các lỗ hổng nghiêm trọng được sử dụng trong các cuộc khai thác 0 ngày, nhưng lúc đầu Netgate không thừa nhận sự tồn tại của các lỗ hổng và cố gắng cáo buộc nhà phát triển WireGuard ban đầu về các cuộc tấn công và sai lệch, điều này ảnh hưởng tiêu cực đến danh tiếng của họ. Nhà phát triển cổng ban đầu bác bỏ các tuyên bố về chất lượng mã và cho rằng chúng đã phóng đại, nhưng sau khi chứng minh lỗi, ông đã thu hút sự chú ý đến thực tế rằng vấn đề thực sự quan trọng là việc thiếu đánh giá đúng đắn về chất lượng mã trong FreeBSD, vì các vấn đề vẫn không được phát hiện trong nhiều tháng (Đại diện của Netgate chỉ ra rằng đánh giá công khai đã được đưa ra vào tháng 2020 năm XNUMX, nhưng các nhà phát triển FreeBSD cá nhân lưu ý rằng trong Phabricator, đánh giá đã bị Macy đóng mà không hoàn thành và bỏ qua các nhận xét). Nhóm cốt lõi FreeBSD đã ứng phó với sự cố bằng cách hứa sẽ hiện đại hóa quy trình xem xét mã của họ.

Matthew Macy, nhà phát triển cổng FreeBSD có vấn đề, đã bình luận về tình huống này khi nói rằng ông đã phạm sai lầm lớn khi đảm nhận công việc mà không sẵn sàng thực hiện dự án. Macy giải thích kết quả là do cảm xúc kiệt quệ và là kết quả của những vấn đề nảy sinh do hội chứng hậu Covid. Đồng thời, Macy cũng không tìm thấy quyết tâm từ bỏ những nghĩa vụ mà mình đã đảm nhận và cố gắng hoàn thành dự án.

Tình trạng của Macy cũng có thể bị ảnh hưởng bởi bản án tù gần đây mà anh ta nhận được vì cố gắng đuổi người thuê nhà một cách bất hợp pháp khỏi ngôi nhà mà anh ta mua, những người không muốn tự nguyện chuyển đi. Thay vào đó, anh ta và vợ đã cưa dầm sàn và đục lỗ trên sàn khiến ngôi nhà không thể ở được, đồng thời còn tìm cách uy hiếp người dân, đột nhập vào các căn hộ có người ở và lấy đi đồ đạc của họ (hành vi này được xác định là trộm cắp). Để trốn tránh trách nhiệm về hành động của mình, Macy cùng vợ trốn sang Ý nhưng bị dẫn độ sang Mỹ và phải ngồi tù hơn 4 năm.

Nguồn: opennet.ru

Thêm một lời nhận xét