SSHole — ievainojamÄ«ba, kas ļauj pieslēgties, izmantojot SSH bez paroles, sistēmās ar Musl

OpenSSH izstrādātāji ir publicējuÅ”i steidzamu atjauninājumu OpenSSH 10.6p2, kurā ir pievienota aizsardzÄ«ba pret kritisku ievainojamÄ«bu (CVE nav pieŔķirts), kas saņēmusi segvārdu "SSHole" un ļauj apiet autentifikāciju. Sistēmās ar Musl bibliotēku ievainojamÄ«ba ļauj pieslēgties lietotājam, kuram nav iestatÄ«ta parole, ievadot jebkuru paroli, kas satur vairāk par 256 simboliem. Problēma ietekmē Linux izplatÄ«jumus, kas izmanto standarta musl bibliotēku, bet neizmanto PAM (Pluggable Authentication Modules), piemēram, OpenWRT, Alpine, Buildroot un Yocto. ÄŖpaÅ”i bÄ«stami ir tas, ka bieži parole piekļuve ir bloķēta lietotājam root, kas dod iespēju ikvienam attālināti pieslēgties ar administratora privilēģijām.

IevainojamÄ«bu izraisoŔā kļūda nav OpenSSH kodā, bet to izmanto caur sshd. Ņemot vērā problēmas nopietnÄ«bu, OpenSSH 10.6p2 versijā ir ieteikts apiet ievainojamÄ«bu. Sistēmu Ä«paÅ”niekiem, kuras ir pakļautas Å”ai problēmai, ieteikts negaidÄ«t atjauninājumus, bet nekavējoties atslēgt paroles autentifikāciju, izmantojot parametru "PasswordAuthentication no" failā /etc/ssh/sshd_config vai pilnÄ«bā atslēgt SSH.

Problēma neizpaužas sistēmās, kas nav Linux, un Linux vidēs, kas balstītas uz glibc, kā arī sistēmās, kas izmanto PAM, veicot paroles autentifikāciju. Labojums jau ir pieejams Alpine un OpenWRT.

IevainojamÄ«ba saistÄ«ta ar nepareizu OpenSSH un musl funkcijas crypt() savstarpēju mijiedarbÄ«bu. Lai aizsargātu pret lietotāju pastiņas noteikÅ”anu, analizējot laika atŔķirÄ«bas pieprasÄ«jumu apstrādē, kopÅ” 2016. gada OpenSSH, pārbaudot bezparoles kontus, izmanto standarta paroles pārbaudes procedÅ«ru: izsauc funkciju "crypt(nodota parole, sāls)" ar cita lietotāja sāli, kam ir derÄ«gs paroles hashes, un pēc tam salÄ«dzina ar funkcijas crypt atgriezto hash vērtÄ«bu no lauka ar hash no parolēm.

Tomēr musl funkcija crypt() SHA-512 hashiem atgriež simbolu "*", ja nodotās paroles garums pārsniedz 256 baitus (ierobežojums ieviests 2012. gadā, lai aizsargātu pret DoS uzbrukumiem, jo, nosūtot lielus vērtības, palielinās slodze uz CPU). Tas pats simbols tiek izmantots hash laukumā parolē failā "\/etc\/shadow", lai apzīmētu kontus, kurām paroles autentifikācija ir bloķēta.

Tādējādi uzbrucējs, kuram ir iespēja pievienoties SSH serverim, var pieslēgties jebkurai lietotāju kontam, kuram failā ā€ž/etc/shadowā€ parole ir norādÄ«ta ar simbolu ā€ž*ā€, nosÅ«tot virkni no 257 lÄ«dz 1024 baitiem. Problēma attiecas uz daudziem esoÅ”ajiem Docker attēliem, kas izveidoti, izmantojot Alpine Linux, kā arÄ« standarta Alpine attēliem mākoņu sistēmās AWS un Azure, kur lietotājam root, kurā vietā ir jābÅ«t paroles hash, ir norādÄ«ts simbols ā€ž*ā€.

Interesanti, ka sākotnēji oficiālajos Docker attēlos, kas izmantoja Alpine, kopÅ” 2015. gada bija norādÄ«ta tukÅ”a root parole, bet pēc Ŕī fakta atklāŔanas, vietā paroles hash tika norādÄ«ts simbols ā€ž!ā€, kas tomēr bloķēja pieslēgÅ”anos ar SSH atslēgām, tāpēc kopÅ” 2022. gada bloķēŔanas simbols parolēm tika nomainÄ«ts uz ā€ž*ā€.

Avots: opennet.lv

Iegādājieties uzticamu tÄ«mekļa hostingu ar DDoS aizsardzÄ«bu, VPS VDS serveriem šŸ”„ Iegādājieties uzticamu tÄ«mekļa hostingu ar DDoS aizsardzÄ«bu, VPS VDS serveriem | ProHoster