FreeBSD 13 gairebé va acabar amb una implementació hacker de WireGuard amb infraccions de llicència i vulnerabilitats

A partir de la base de codi sobre la qual es va formar el llançament de FreeBSD 13, el codi que implementava el protocol WireGuard VPN, desenvolupat per ordre de Netgate sense consultar amb els desenvolupadors del WireGuard original, i ja inclòs a les versions estables de la distribució pfSense, va ser escandalosament. eliminat. Després de la revisió del codi per Jason A. Donenfeld, l'autor del WireGuard original, va resultar que la implementació de WireGuard proposada per FreeBSD era una peça de codi de mala qualitat, plena de desbordaments de memòria intermèdia i violava la GPL.

La implementació contenia defectes catastròfics en el codi de criptografia, es va ometre part del protocol WireGuard, hi va haver errors que van provocar la fallada del nucli i es van evitar els mètodes de seguretat i es van utilitzar buffers de mida fixa per a les dades d'entrada. La presència de talons en comptes de comprovacions que sempre tornen "true", així com els printfs de depuració oblidats amb la sortida dels paràmetres utilitzats per al xifratge i l'ús de la funció de repòs per evitar les condicions de carrera diuen molt sobre la qualitat del codi.

Algunes parts del codi, com ara la funció crypto_xor, es van portar des de la implementació WireGuard desenvolupada per a Linux, violant la llicència GPL. Com a resultat, Jason Donenfield, juntament amb Kyle Evans i Matt Dunwoodie (autor del port WireGuard per a OpenBSD), es van encarregar de reelaborar la problemàtica implementació i, en una setmana, van substituir completament tot el codi del desenvolupador contractat per Netgate. . La versió modificada es va publicar com un conjunt separat de pedaços, col·locats al dipòsit del projecte WireGuard i encara no s'ha inclòs a FreeBSD.

Curiosament, inicialment no hi havia indicis de problemes; Netgate, que volia poder utilitzar WireGuard a la distribució pfSense, va contractar Matthew Macy, que coneix bé el nucli i la pila de xarxa de FreeBSD, està involucrat en la correcció d'errors i té experiència en desenvolupament. controladors de xarxa per a aquest sistema operatiu. A Macy se li va donar un horari flexible sense terminis ni controls a mig termini. Els desenvolupadors que van conèixer Macy mentre treballava a FreeBSD el van descriure com un programador talentós i professional que no va cometre més errors que els altres i va respondre adequadament a les crítiques. La mala qualitat del codi d'implementació de WireGuard per a FreeBSD els va sorprendre.

Després de 9 mesos de treball, Macy va afegir la seva implementació a la branca HEAD, que es va utilitzar per formular el llançament de FreeBSD 13, el desembre passat sense completar la revisió i les proves per parells. El desenvolupament es va fer sense comunicació amb els desenvolupadors del WireGuard original i el Ports OpenBSD i NetBSD. Al febrer, Netgate va integrar WireGuard a la versió estable de pfSense 2.5.0 i va començar a enviar tallafocs basats en ell. Després d'identificar els problemes, es va eliminar el codi WireGuard de pfSense.

El codi afegit va revelar vulnerabilitats crítiques que s'utilitzaven en exploits de dia 0, però al principi Netgate no va reconèixer l'existència de vulnerabilitats i va intentar acusar el desenvolupador del WireGuard original d'atacs i biaix, que van afectar negativament la seva reputació. El desenvolupador del port va rebutjar inicialment les afirmacions sobre la qualitat del codi i les va considerar exagerades, però després de demostrar errors, va cridar l'atenció sobre el fet que el problema realment important és la manca d'una revisió adequada de la qualitat del codi a FreeBSD, perquè els problemes no es van detectar durant molts mesos. (Els representants de Netgate van indicar que la revisió es va llançar públicament a l'agost de 2020, però els desenvolupadors individuals de FreeBSD van assenyalar que a Phabricator la revisió va ser tancada per Macy sense completar-la i amb els comentaris ignorats). L'equip bàsic de FreeBSD va respondre a l'incident prometent modernitzar els seus processos de revisió de codi.

Matthew Macy, el desenvolupador del problemàtic port FreeBSD, va comentar la situació dient que va cometre un gran error en assumir la feina sense estar preparat per implementar el projecte. Macy explica el resultat resultant per l'esgotament emocional i el resultat dels problemes sorgits a causa de la síndrome post-Covid. Al mateix temps, Macy no va trobar la determinació d'abandonar les obligacions que ja havia assumit i va intentar portar a terme el projecte.

L'estat de Macy també pot haver-se vist afectat per una condemna de presó recent que va rebre per intentar desallotjar il·legalment els inquilins d'una casa que va comprar que no estaven disposats a marxar voluntàriament. En canvi, ell i la seva dona van serrar les bigues del terra i van fer forats als pisos per fer inhabitable la casa, i també van intentar intimidar els veïns, van irrompre en pisos ocupats i van treure les seves pertinences (l'acció va ser qualificada de robatori). Per evitar la responsabilitat de les seves accions, Macy i la seva dona van fugir a Itàlia, però van ser extradits als Estats Units i van complir més de quatre anys de presó.

Font: opennet.ru

Afegeix comentari