Bu bron i FreeBSD 13 gael ei weithredu'n haclyd o WireGuard gyda throseddau trwydded a gwendidau

O'r sylfaen cod y ffurfiwyd y datganiad FreeBSD 13 arni, roedd y cod sy'n gweithredu'r protocol WireGuard VPN, a ddatblygwyd trwy orchymyn Netgate heb ymgynghori â datblygwyr y WireGuard gwreiddiol, ac sydd eisoes wedi'i gynnwys yn y datganiadau sefydlog o'r dosbarthiad pfSense, yn warthus. tynnu. Ar ôl adolygiad cod gan Jason A. Donenfeld, awdur y WireGuard gwreiddiol, daeth i'r amlwg bod gweithrediad arfaethedig FreeBSD o WireGuard yn ddarn o god gwael, yn frith o orlifau byffer ac yn torri'r GPL.

Roedd y gweithrediad yn cynnwys diffygion trychinebus yn y cod cryptograffeg, cafodd rhan o brotocol WireGuard ei hepgor, bu gwallau a arweiniodd at ddamwain y cnewyllyn a ffyrdd osgoi dulliau diogelwch, a defnyddiwyd byfferau maint sefydlog ar gyfer mewnbynnu data. Mae presenoldeb bonion yn lle gwiriadau sydd bob amser yn dychwelyd “gwir”, yn ogystal â printfs dadfygio anghofiedig gydag allbwn y paramedrau a ddefnyddir ar gyfer amgryptio, a'r defnydd o'r swyddogaeth cysgu i atal amodau hil yn dweud llawer am ansawdd y cod.

Cafodd rhai rhannau o'r cod, fel y swyddogaeth crypto_xor, eu trosglwyddo o'r gweithrediad WireGuard a ddatblygwyd ar gyfer Linux, yn groes i'r drwydded GPL. O ganlyniad, cymerodd Jason Donenfield, ynghyd â Kyle Evans a Matt Dunwoodie (awdur porthladd WireGuard ar gyfer OpenBSD), y dasg o ail-weithio'r gweithrediad problemus ac, o fewn wythnos, disodli'n llwyr holl god y datblygwr a logwyd gan Netgate . Rhyddhawyd y fersiwn wedi'i haddasu fel set ar wahân o glytiau, wedi'u gosod yn ystorfa prosiect WireGuard ac nid yw wedi'i gynnwys yn FreeBSD eto.

Yn ddiddorol, nid oedd unrhyw arwyddion o drafferth i ddechrau; llogodd Netgate, a oedd am allu defnyddio WireGuard yn y dosbarthiad pfSense, Matthew Macy, sy'n hyddysg yn y cnewyllyn FreeBSD a'r pentwr rhwydwaith, yn ymwneud â thrwsio namau ac mae ganddo brofiad o ddatblygu gyrwyr rhwydwaith ar gyfer y system weithredu hon. Rhoddwyd amserlen hyblyg i Macy heb unrhyw derfynau amser na gwiriadau canol tymor. Disgrifiodd datblygwyr a gyfarfu â Macy tra'n gweithio ar FreeBSD ef fel rhaglennydd dawnus a phroffesiynol na wnaeth fwy o gamgymeriadau nag eraill ac ymatebodd yn ddigonol i feirniadaeth. Daeth ansawdd gwael cod gweithredu WireGuard ar gyfer FreeBSD yn syndod iddynt.

Ar ôl 9 mis o waith, ychwanegodd Macy ei weithrediad i gangen HEAD, a ddefnyddiwyd i lunio'r datganiad FreeBSD 13, fis Rhagfyr diwethaf heb gwblhau adolygiad a phrofi gan gymheiriaid.Gwnaethpwyd y datblygiad heb gyfathrebu â datblygwyr y WireGuard gwreiddiol a'r porthladdoedd OpenBSD a NetBSD. Ym mis Chwefror, integreiddiodd Netgate WireGuard i ryddhad sefydlog pfSense 2.5.0 a dechreuodd gludo waliau tân yn seiliedig arno. Ar ôl i broblemau gael eu nodi, tynnwyd y cod WireGuard o pfSense.

Datgelodd y cod ychwanegol wendidau critigol a ddefnyddiwyd mewn campau 0-diwrnod, ond ar y dechrau nid oedd Netgate yn cydnabod bodolaeth gwendidau a cheisiodd gyhuddo datblygwr y WireGuard gwreiddiol o ymosodiadau a thuedd, a effeithiodd yn negyddol ar ei enw da. I ddechrau, gwrthododd datblygwr y porthladd honiadau am ansawdd cod ac roedd yn eu hystyried yn orliwiedig, ond ar ôl dangos gwallau, tynnodd sylw at y ffaith mai'r broblem wirioneddol bwysig yw diffyg adolygiad priodol o ansawdd cod yn FreeBSD, oherwydd bod y problemau'n parhau heb eu canfod am fisoedd lawer. (Dywedodd cynrychiolwyr Netgate fod yr adolygiad cyhoeddus wedi’i lansio yn ôl ym mis Awst 2020, ond nododd datblygwyr FreeBSD unigol fod yr adolygiad yn Phabricator wedi’i gau gan Macy heb ei gwblhau a gyda sylwadau’n cael eu hanwybyddu). Ymatebodd Tîm Craidd FreeBSD i'r digwyddiad trwy addo moderneiddio eu prosesau adolygu cod.

Gwnaeth Matthew Macy, datblygwr y porthladd FreeBSD problemus, sylwadau ar y sefyllfa trwy ddweud iddo wneud camgymeriad mawr trwy gymryd y swydd heb fod yn barod i weithredu'r prosiect. Mae Macy yn esbonio'r canlyniad canlyniadol trwy orfoledd emosiynol a chanlyniad problemau a gododd oherwydd syndrom ôl-Covid. Ar yr un pryd, ni chanfu Macy y penderfyniad i roi'r gorau i'r rhwymedigaethau yr oedd eisoes wedi'u cyflawni a cheisiodd ddod â'r prosiect i ben.

Mae'n bosibl bod cyflwr Macy hefyd wedi'i effeithio gan ddedfryd o garchar yn ddiweddar a gafodd am geisio'n anghyfreithlon i droi tenantiaid allan o gartref a brynodd nad oedd yn fodlon symud allan yn wirfoddol. Yn lle hynny, llifodd ef a'i wraig drawstiau'r llawr a thorri tyllau yn y lloriau i wneud y tŷ yn anaddas i fyw ynddo, a cheisiodd hefyd ddychryn y preswylwyr, torrodd i mewn i fflatiau preswyl a chymryd eu heiddo allan (ddosbarthwyd y weithred fel byrgleriaeth). Er mwyn osgoi cyfrifoldeb am ei weithredoedd, ffodd Macy a'i wraig i'r Eidal, ond cawsant eu hestraddodi i'r Unol Daleithiau a gwasanaethu am fwy na phedair blynedd yn y carchar.

Ffynhonnell: opennet.ru

Ychwanegu sylw