OpenSSH 10.5 iznāca 11. augustā, 36 dienas pēc versijas 10.4. Iepriekšējais starplaiks bija 95 dienas, bet pirms tā 174. Uzturētāji paātrinājumam min konkrētu iemeslu: projekts pēdējos mēnešos saņem daudz drošības ziņojumu, kurus atraduši AI modeļi vai cilvēki ar AI palīdzību.
Laidiens labo trīs drošības kļūdas. Vienu no tām OpenSSH komanda pati ieviesa piecas nedēļas iepriekš versijā 10.4.
Aizslēgts ssh-agent bija pielaidīgāks nekā parasts
ssh-agent tur atmiņā atšifrētas privātās atslēgas, lai paroli nav jāievada katrā savienojumā. Aģentu var aizslēgt ar paroli, kad dators paliek bez uzraudzības. Aizslēgts aģents atsakās parakstīt jebko, kamēr parole nav ievadīta atpakaļ.
Aģentu var arī pārsūtīt uz attālu serveri. Tad serveris drīkst lūgt parakstus no darbstacijā glabātajām atslēgām. Lai aģents atšķirtu vietēju pieprasījumu no pārsūtīta, klients sūta paplašinājumu session-bind@openssh.com ar sesijas datiem. Uz šī signāla balstās divas aizsardzības: atslēgas ar galamērķa ierobežojumiem un aizliegums attāli pievienot jaunus PKCS#11 marķierus.
Versijā 10.4 aizslēgts aģents sāka atteikt arī session-bind pieprasījumus. Aģents tos vienkārši nepieņēma, tāpēc pārsūtīts savienojums izskatījās pēc vietēja. Abas uz sesijas piesaisti balstītās pārbaudes pārstāja darboties. Lietotājs, kurš aizslēdza aģentu drošības apsvērumu dēļ, to faktiski padarīja atvērtāku, raksta Help Net Security. Kļūdu ziņoja pētnieks ar segvārdu sn0x-sharma.
Kļūda skar tikai 10.4 lietotājus, jo vecākās versijas šo pārbaudi neizlaida. Tiem, kam aģenta pārsūtīšana vajadzīga reti, OpenSSH jau gadiem iesaka ProxyJump. Tas caur starpserveri izveido tunelētu savienojumu bez aģenta nodošanas attālajai pusei.
Vēl divi labojumi: klients un authorized_keys
Otrā kļūda ir potenciāls use-after-free OpenSSH klientā. Tas iestājas, ja caur vietējo sesiju multipleksēšanas ligzdu pievieno jaunu attālo pārsūtīšanu brīdī, kad serverim jau nosūtīts iepriekšējais attālās pārsūtīšanas pieprasījums bez atbildes. Saraksts tiek pārvietots ar realloc, bet vecā norāde paliek lietošanā. Ziņoja Braiens Mingess no Cognatory.
Trešais labojums skar serveri. Atslēgvārds restrict failā authorized_keys ir domāts kā visu aizliegumu kopsavilkums, taču uz tuneļu pārsūtīšanu tas neattiecās. Tagad attiecas. Praktiskā ietekme ir neliela, jo tuneļu pārsūtīšana serverī pēc noklusējuma ir izslēgta. Kļūdu ziņoja Erichen no Ķīnas Zinātņu akadēmijas Skaitļošanas tehnoloģiju institūta.
Kāpēc grafiks mainās
OpenSSH parasti izdod versijas pēc plāna un uzkrāj labojumus līdz nākamajam laidienam. Pagājušajā gadā starp 10.1 un 10.2 pagāja četras dienas, bet starp 10.2 un 10.3 gandrīz seši mēneši. Laidiena piezīmēs projekts skaidro, kāpēc šoreiz gaidīšana nesākās.
Pēdējā laikā OpenSSH komanda ir saņēmusi lielu skaitu drošības ziņojumu. Daudzi no tiem ir AI modeļu atradumi vai veidoti ar AI palīdzību.
Komanda raksta, ka pieņem šādus ziņojumus, ja tiem pievienota cilvēka analīze, testa gadījums vai labojums. Arguments par ātrāku izdošanu ir cits. Kļūdas, kuras vispirms uzgāja AI rīki, pēc tam neatkarīgi atrada arī citi pētnieki. Tas nozīmē divas lietas: atradumi nav modeļa izdomājumi un ziņas par tiem izplatās ārpus projekta iekšējās sarakstes. Tāpēc OpenSSH plāno izdot laidienus biežāk, lai labojumi nonāktu pie lietotājiem ātrāk, nevis gulētu koda repozitorijā līdz nākamajam plānotajam datumam.
Linuxiac to nosauc par pirmo reizi, kad liels atvērtā koda drošības projekts ārpusgrafika laidienu tieši pamato ar AI paātrinātu kļūdu atrašanu.
curl uz to pašu spiedienu atbildēja pretēji
OpenSSH nostāja izceļas blakus curl. Šī gada 31. janvārī curl slēdza savu kļūdu atlīdzību programmu HackerOne platformā un no 1. februāra pārstāja pieņemt iesūtījumus caur to. Iemesls bija tas pats: AI ģenerētu drošības ziņojumu plūsma.
curl uzturētājs Daniels Stenbergs janvārī saskaitīja 20 iesūtījumus, no kuriem septiņi ienāca 16 stundu laikā. Slēgšanu viņš skaidroja tieši: galvenais mērķis ir noņemt stimulu sūtīt projektam sliktus un neizpētītus ziņojumus. HackerOne 28. janvārī atbildēja, ka curl pieredze neatspoguļo platformā ierasto.
Atšķirība ir tajā, ko katrs projekts saņem. curl plūsmā dominēja ziņojumi bez atrastas kļūdas. OpenSSH ziņojumi noveda pie trīs labojumiem vienā laidienā, tāpēc komandas atbilde ir izdot biežāk, nevis aizvērt kanālu.
Kas vēl ir 10.5
Klientam pievienots karodziņš ssh -Z, kas parāda publiskās atslēgas tādā secībā, kādā klients tās piedāvā autentifikācijā. Tas noder, kad serveris pārtrauc savienojumu pēc pārāk daudziem mēģinājumiem un nav skaidrs, kura atslēga aiziet pirmā.
FIDO atslēgām ssh-keygen tagad prot uzlikt vai noņemt karodziņus touch-required un verify-required jau izveidotai atslēgai. Autentifikācijā OpenSSH pārkārto piedāvājamo atslēgu secību tā, lai vispirms ietu tās FIDO atslēgas, kurām pieskāriens nav vajadzīgs. Aparatūras atslēga mirgo retāk, kamēr klients izmēģina variantus.
Portablajā versijā ir viena nesaderīga izmaiņa. Būvējumam ar libcrypto tagad obligāti vajadzīgs ECC atbalsts, tostarp NISTP521 līkne. To dod visas pašlaik uzturētās bibliotēkas: LibreSSL, OpenSSL, BoringSSL un AWS-LC. Būvējumus ar --without-openssl izmaiņa neskar.
Sīkākie labojumi: ssh-keyscan servera baneri tagad lasa neblokējoši, sshd pakešu apstrādes kods dod saprotamākus kļūdu ziņojumus, atjaunota PAMServiceName darbība Match blokos un salaboti ChannelTimeout ar RekeyLimit tajos pašos blokos. sshd procesa nosaukums tagad tiek uzstādīts ar setproctitle(3), tāpēc ps izvadā skaidrāk redzams, ko konkrētais process dara.
OpenSSH 10.4, kas ieviesa aģenta kļūdu, bija aktuālā versija 36 dienas.
Komentāri
Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.