FreeBSD 13 case acabou cunha implementación hacker de WireGuard con violacións de licenza e vulnerabilidades

A partir da base de código sobre a que se formou a versión FreeBSD 13, o código que implementaba o protocolo WireGuard VPN, desenvolvido por orde de Netgate sen consultar cos desenvolvedores do WireGuard orixinal, e xa incluído nas versións estables da distribución pfSense, foi escandalosamente. eliminado. Despois da revisión do código por Jason A. Donenfeld, o autor do WireGuard orixinal, resultou que a implementación de WireGuard proposta por FreeBSD era unha peza de código de mala calidade que estaba plagada de desbordamentos de búfer e violaba a GPL.

A implementación contiña fallos catastróficos no código de criptografía, omitiuse parte do protocolo WireGuard, houbo erros que provocaron o fallo do núcleo e evitaron os métodos de seguridade e utilizáronse búfers de tamaño fixo para os datos de entrada. A presenza de stubs en lugar de comprobacións que sempre devolven "true", así como os printfs de depuración esquecidos coa saída dos parámetros utilizados para o cifrado e o uso da función de suspensión para evitar que as condicións de carreira din moito sobre a calidade do código.

Algunhas partes do código, como a función crypto_xor, portáronse desde a implementación WireGuard desenvolvida para Linux, violando a licenza GPL. Como resultado, Jason Donenfield, xunto con Kyle Evans e Matt Dunwoodie (autor do porto WireGuard para OpenBSD), asumiu a tarefa de reelaborar a problemática implementación e, no prazo dunha semana, substituíu por completo todo o código do programador contratado por Netgate. . A versión modificada lanzouse como un conxunto separado de parches, colocados no repositorio do proxecto WireGuard e aínda non se incluíu en FreeBSD.

Curiosamente, inicialmente non había sinais de problemas; Netgate, que quería poder usar WireGuard na distribución pfSense, contratou a Matthew Macy, que coñece ben o núcleo de FreeBSD e a pila de rede, está involucrado en correccións de erros e ten experiencia no desenvolvemento. controladores de rede para este sistema operativo. Macy recibiu un horario flexible sen prazos nin comprobacións intermedias. Os desenvolvedores que coñeceron a Macy mentres traballaba en FreeBSD describiuno como un programador talentoso e profesional que non cometeu máis erros que outros e respondeu adecuadamente ás críticas. A mala calidade do código de implementación de WireGuard para FreeBSD foi unha sorpresa para eles.

Despois de 9 meses de traballo, Macy engadiu a súa implementación á rama HEAD, que se utilizou para formular a versión de FreeBSD 13, o pasado decembro sen completar a revisión e probas por pares. O desenvolvemento fíxose sen comunicación cos desenvolvedores do WireGuard orixinal e o Portos OpenBSD e NetBSD. En febreiro, Netgate integrou WireGuard na versión estable de pfSense 2.5.0 e comezou a enviar firewalls baseados nel. Despois de identificar os problemas, o código WireGuard foi eliminado de pfSense.

O código engadido revelou vulnerabilidades críticas que se usaban en exploits de 0 días, pero nun principio Netgate non recoñeceu a existencia de vulnerabilidades e intentou acusar ao desenvolvedor do WireGuard orixinal de ataques e prexuízos, o que afectaba negativamente á súa reputación. O desenvolvedor do porto inicialmente rexeitou as afirmacións sobre a calidade do código e considerounas esaxeradas, pero despois de demostrar erros, chamou a atención sobre o feito de que o problema realmente importante é a falta dunha revisión adecuada da calidade do código en FreeBSD, porque os problemas permaneceron sen detectar durante moitos meses. (Os representantes de Netgate indicaron que a revisión foi lanzada públicamente en agosto de 2020, pero os desenvolvedores individuais de FreeBSD sinalaron que en Phabricator a revisión foi pechada por Macy sen completar e con comentarios ignorados). O equipo principal de FreeBSD respondeu ao incidente prometendo modernizar os seus procesos de revisión de código.

Matthew Macy, o desenvolvedor do problemático porto FreeBSD, comentou a situación dicindo que cometeu un gran erro ao asumir o traballo sen estar preparado para implementar o proxecto. Macy explica o resultado resultante polo burnout emocional e o resultado dos problemas que xurdiron debido á síndrome post-Covid. Ao mesmo tempo, Macy non atopou a determinación de abandonar as obrigas que xa tiña asumidas e tratou de levar o proxecto a fin.

O estado de Macy tamén puido verse afectado por unha recente condena de prisión que recibiu por intentar desaloxar ilegalmente a inquilinos dunha vivenda que comprou que non estaban dispostos a mudarse voluntariamente. Pola contra, el e a súa muller serraron as vigas do chan e romperon buratos nos pisos para inhabitar a vivenda, ademais de tentar intimidar aos veciños, irromperon en pisos ocupados e sacaron as súas pertenzas (a acción cualificouse de roubo). Para evitar a responsabilidade das súas accións, Macy e a súa muller fuxiron a Italia, pero foron extraditados aos Estados Unidos e cumpriron máis de catro anos de prisión.

Fonte: opennet.ru

Engadir un comentario