De ce atacul e atât de simplu?
Această vulnerabilitate nu este un bug izolat, ci rezultatul a trei modificări făcute în timp, fiecare rezolvând o problemă diferită. În 2012, dezvoltatorii musl au limitat lungimea parolei la 256 de octeți, pentru a preveni epuizarea resurselor serverului. Simultan, au decis ca funcția de hash a parolei să returneze un asterisc (*) ori de câte ori eșuează. Acest simbol este folosit în Unix din anii 1980 pentru a marca conturile la care nicio parolă nu ar trebui să se potrivească – adică conturile cu parola dezactivată la nivel de sistem. În 2016, OpenSSH a schimbat modul în care verifică parolele pentru conturile care nu au un „salt” propriu în câmpul de parolă, preluând saltul de la alt cont. Scopul era să împiedice atacatorii să ghicească numele de utilizator existente prin forțarea brută și măsurarea timpului de răspuns al serverului.
Culture picks
Chainlink, XRP, Monero și Zcash: semnale tehnice divergente pe piața crypto
Comisia Europeană amână legile naționale privind vârsta pe rețelele sociale
Payday Aces High: Jocul de jaf care reînvie co-op-ul
Cripto, sub lupa Congresului: presiuni financiare și reglementare mai stricteApoi, în 2022, Alpine a modificat câmpul de parolă al contului root într-un asterisc, pentru a păstra funcțională autentificarea prin chei SSH.
Când un atacator trimite o parolă excesiv de lungă către un cont fără parolă pe un astfel de sistem, calculul hash-ului eșuează și returnează un asterisc. Procesul sshd compară acest asterisc cu cel stocat în câmpul de parolă al contului. Cele două se potrivesc, iar autentificarea reușește.
Imaginile cloud Alpine sunt ținta principală!
Pachetul standard OpenSSH din Alpine este compilat fără PAM, iar autentificarea prin parolă este activată implicit. Astfel, serverele Alpine îndeplinesc condițiile de exploatare din cutie. În imaginile cloud oficiale publicate între versiunile 3.18.11 și 3.24.3, contul de utilizator implicit, numit „alpine”, este unul dintre conturile fără parolă, iar imaginile îi acordă privilegii „doas” fără parolă. În consecință, un atacator care se conectează ca acest utilizator poate escala apoi la root. Imaginile sunt expuse de îndată ce un administrator setează o parolă pentru orice alt cont din sistem, deoarece pentru ca acest atac să funcționeze, trebuie să existe un cont legitim cu o parolă reală.
Spre deosebire de vulnerabilitatea critică regreSSHion din 2024, această problemă este limitată la mediul musl, dar nu necesită inginerie complexă de exploatare. „Serverele SSH expuse pe internet sunt deja bombardate non-stop cu încercări de ghicire a parolei și atacuri brute-force”, a declarat Knott. „Exploatarea acestei vulnerabilități înseamnă pur și simplu că aceiași atacatori adaugă o singură încercare cu o parolă foarte lungă în lista lor de brute-force. Am fi extrem de surprinși dacă nu am vedea atacatorii încercând acest lucru până duminică.”
Organizațiile ar trebui să verifice dacă această vulnerabilitate a fost deja folosită împotriva serverelor lor. O intrare „Accepted password” în /var/log/messages pentru un cont care nu are parolă, cum ar fi root, un utilizator doar cu chei sau utilizatorul implicit alpine, este un semn puternic de compromitere. Alpine recomandă verificarea utilizării doas, a utilizatorilor și fișierelor create recent pe mașinile expuse, iar avizul lor precizează că orice server pentru care autentificarea nu poate fi exclusă trebuie tratat ca fiind compromis. Kultekin a publicat, de asemenea, un script de verificare pe GitHub care identifică serverele expuse și listează conturile în pericol.