Khodi yomwe imagwiritsa ntchito protocol ya VPN idachotsedwa m'malo mwa code yomwe idapanga maziko a kutulutsidwa kwa FreeBSD 13. WireGuard, разработанной по заказу компании Netgate без консультаций с разработчиками оригинального WireGuard, и уже включённой в стабильные выпуски дистрибутива pfSense. После проверки кода Джейсоном Доненфилдом (Jason A. Donenfeld), автором оригинального WireGuard, выяснилось, что предложенная для FreeBSD реализация WireGuard представляла собой образец низкосортного кода, изобилующего переполнениями буфера и нарушающего лицензию GPL.
В реализации были найдены катастрофические огрехи в коде криптографии, была пропущена часть протокола WireGuard, присутствовали ошибки, приводившие к краху ядра и обходу методов защиты, для входных данных использовались буферы фиксированного размера. О качестве кода много говорит наличие заглушек вместо проверок, всегда возвращающих значение «true», а также забытые отладочные printf с выводом параметров, используемых для шифрования, и применение функции sleep для предотвращения состояний гонки.
Некоторые части кода, такие как функция crypto_xor, в нарушение лицензии GPL, были перенесены из реализации WireGuard, разработанной для Linux. В итоге Джейсон Доненфилд вместе с Кайлом Эвансом (Kyle Evans) и Мэттом Данвуди (Matt Dunwoodie, автор порта WireGuard для OpenBSD), взялись за переделку проблемной реализации и за неделю полностью заменили весь код разработчика, нанятого Netgate. Переделанный вариант выпущен отдельным набором патчей, размещён в репозитории проекта WireGuard и пока не вошёл в состав FreeBSD.
Интересно, что изначально ничто не предвещало беды, компания Netgate, которая желала получить возможность использования WireGuard в дистрибутиве pfSense, наняла Мэттью Мэйси (Matthew Macy), хорошо разбирающегося в ядре и сетевом стеке FreeBSD, участвующего в исправлении ошибок и имеющего опыт разработки сетевых драйверов для данной операционной системы. Мэйси был предоставлен свободный график без дедлайнов и промежуточных проверок. Разработчики, пересекавшиеся с Мэйси при работе над FreeBSD, характеризовали его как талантливого и профессионального программиста, допускающего не больше ошибок чем другие и адекватно реагирующего на критику. Плачевное качество кода реализации WireGuard для FreeBSD стало для них неожиданностью.
После 9 месяцев работы в декабре прошлого года Мэйси без завершения рецензирования и тестирования сторонними участниками добавил свою реализацию в ветку HEAD, которая использовалась для формирования релиза FreeBSD 13. Разработка была выполнена без связи с разработчиками оригинального WireGuard и портов для OpenBSD и NetBSD. В феврале компания Netgate интегрировала WireGuard в стабильный выпуск pfSense 2.5.0 и начала поставку в межсетевых экранах на его основе. После выявления проблем код WireGuard был удалён из pfSense.
В добавленном коде были выявлены критические уязвимости, которые были использованы в 0-day эксплоитах, но Netgate первое время не признавала наличие уязвимостей и пыталась обвинить разработчика оригинального WireGuard в нападках и предвзятости, что негативно отразилось на её репутации. Разработчик порта вначале отвергал претензии к качеству кода и считал их преувеличенными, но после демонстрации ошибок, обратил внимание на то, что действительно важной проблемой является отсутствие должного рецензирования качества кода во FreeBSD, ведь проблемы оставались не замеченными многие месяцы (представители Netgate указали, что публичное рецензирование было запущено ещё в августе 2020 года, но отдельные разработчики FreeBSD отметили, что в Phabricator рецензирование было закрыто Мэйси без выполнения и с игнорированием комментариев). Команда FreeBSD Core Team отреагировала на инцидент обещанием модернизировать процессы проверки кода.
Matthew Macy, woyambitsa doko lovuta la FreeBSD, adayankhapo pazimenezi ponena kuti adalakwitsa kwambiri pogwira ntchitoyi osakonzeka kukwaniritsa ntchitoyi. Macy akufotokoza zotsatira zake chifukwa chotopa kwambiri komanso zotsatira zamavuto omwe adabwera chifukwa cha post-Covid syndrome. Pa nthawi yomweyi, Macy sanapeze kutsimikiza mtima kusiya ntchito zomwe anali atachita kale ndikuyesera kuti ntchitoyo ithe.
Mkhalidwe wa Macy uyeneranso kuti unakhudzidwa ndi chilango chaposachedwapa chimene analandira chifukwa chofuna kuthamangitsa anthu ochita lendi m’nyumba imene anagula amene sanafune kuchokamo mwaufulu. M'malo mwake, iye ndi mkazi wake anacheka matabwa pansi ndi kuswa mabowo pansi kuti apangitse nyumbayo kukhala yosakhalamo, ndipo anayesanso kuopseza anthu okhalamo, anathyola m'nyumba zokhalamo anthu ndikutulutsa katundu wawo (zochitazo zidatchulidwa ngati zakuba). Pofuna kupewa udindo wa zochita zake, Macy ndi mkazi wake anathawira ku Italy, koma anawatumiza ku United States ndipo anakhala m’ndende zaka zoposa zinayi.
Source: opennet.ru
