PuTTY ranjivost CVE-2024-31497
PuTTY SSH klijent je široko korišćen alat za siguran udaljeni pristup serverima i spremištima, ima nedavno otkrivenu kritičnu koja utiče na njegove verzije od 0.68 do 0.80, označena kao CVE-2024-31497. Ranjivost su otkrili sigurnosni istraživači Fabian Baumer i Marcus Brinkmann sa Univerziteta Rur u Bohumu.
PUTTY I ECDSA
Pre nego što uđemo u samu ranjivost, neophodno je razumjeti šta je PuTTY i kako koristi algoritam digitalnog potpisa eliptične krive (eng. Elliptic Curve Digital Signature Algorithm – ECDSA). U nastavku slijedi kratak pregled ovih koncepata.
PuTTY je besplatni emulator terminala otvorenog kôda, serijske veze i SSH klijent razvijen za Windows operativne sisteme. Kreirao ga je Simon Tatham 1999. godine da bi obezbijedio okruženje koji se lako koristi za upravljanje vezama bezbjednog komandnog okruženja (SSH) i drugim metodama pristupa udaljenom serveru. PuTTY se danas široko upotrebljava zbog svoje jednostavnosti, prenosivosti i robusnosti.
ECDSA je skraćenica za algoritam digitalnog potpisa eliptične krive. To je sistem kriptografije javnog ključa koji koristi eliptičke krive preko konačnih polja kao temeljnu matematičku strukturu. ECDSA pruža i mogućnosti digitalnog potpisa i bezbjednu razmjenu ključeva kroz svoju Diffie–Hellman varijantu, eliptičku krivu Diffie–Hellman (ECDH). ECDSA ključevi se obično koriste za obezbjeđivanje SSH veza zbog njihove manje veličine u poređenju sa RSA ključevima uz održavanje uporedivih nivoa bezbjednosti.
RANJIVOST CVE-2024-31497
Sada je otkrivena ranjivost u PuTTY klijentu i srodnim komponentama koja utiče na njihovu implementaciju ECDSA koristeći NIST P-521 eliptičku krivu. Problem je u tome što ove aplikacije generišu nonces za ECDSA potpise kada koriste ovu specifičnu eliptičku krivu. Nonces su nasumični brojevi koji se koriste da bi se osigurala jedinstvenost svake transakcije ili poruke u kriptografskom sistemu, sprečavajući napade ponavljanja.
Ranjivost CVE-2024-31497 omogućava napadačima da povrate NIST P-521 privatne ključeve posmatrajući otprilike 60 važećih ECDSA potpisa iz istog ključa. Ovo je zbog značajne pristrasnosti u nonces generisanju, gdje je prvih devet bitova uvijek postavljeno na nulu kada se koristi ova specifična eliptička kriva. Napadači mogu da iskoriste ovu pristrasnost i koriste najsavremenije tehnike zasnovane na rešetki da povrate privatne ključeve od pristrasnih jednokratnih brojeva. Činjenica da ova ranjivost utiče samo na 521-bitne ECDSA ključeve čini je još zabrinjavajućom, jer ove veličine ključeva postaju sve popularnije posljednjih godina.
Uticaj ranjivosti CVE-2024-31497 prevazilazi PuTTY klijenta, jer utiče na svaki softver koji koristi ranjivi kôd za rukovanje ECDSA ključevima, a odnosi se na:
- PuTTY (verzije od 0.68 do 0.80)
- FileZilla (verzije od 3.24.1 do 3.66.5)
- WinSCP ( verzije od 5.9.5 do 6.3.2)
- TortoiseGit ( verzije od 2.4.0.2 do 2.15.0)
- TortoiseSVN ( verzije od 1.10.0 do 1.14.6)
Pored navedenih softvera, Stairwell izvještaj je identifikovao i drugi softver koji može da sadrži ranjivi kôd:
- NinjaRMM
- Mobatech MobaXterm
- Kitty terminal emulator
- Farmanager
- GoodSync
- Royal TS
Važno je napomenuti da ova lista možda nije konačna, a potencijalno bi to moglo uticati na druge SSH klijente ili alate koji koriste ranjivi PuTTY kôd za rukovanje ECDSA ključevima.
Uticaj ove ranjivosti na bezbjednost i privatnost podataka je značajan, jer omogućava neovlašteni pristup osjetljivim informacijama koje se čuvaju ili prenose kroz pogođene sisteme. Napadač sa pristupom pogođenom sistemu može potencijalno ukrasti povjerljive podatke, instalirati zlonamjerni softver, izmijeniti konfiguracije ili poremetiti usluge. Pored toga, kompromis jednog privatnog ključa može dovesti do kaskadnog efekta, omogućavajući dalje bočno kretanje unutar mreže organizacije i potencijalnu eskalaciju privilegija.
ZAKLJUČAK
Nedavno otkrivena PuTTY ranjivost, identifikovana kao CVE-2024-31497, predstavlja značajnu prijetnju za organizacije i pojedince koji se oslanjaju na PuTTY za upravljanje SSH konekcijama sa Windows klijenata. Ova ranjivost omogućava napadaču sa pristupom oko 60 važećih ECDSA potpisa koje generiše bilo koja PuTTY komponenta pod istim ključem da izvuče privatni ključ koji se koristi za njihovu generisanje, potencijalno omogućavajući neovlašteni pristup osjetljivim informacijama i sistemima koji su obezbijeđeni pomoću ovih ključeva.
ZAŠTITA
Kako bi se zaštitili od ove ranjivosti, korisnici mogu da slijede preporuke:
- Korisnici treba da se uvjere da koriste najnovije verzije pogođenih proizvoda (PuTTY 0.81 i druge srodne alatke kao što su FileZilla, WinSCP, TortoiseGit i TortoiseSVN) i da primjene neophodne ispravke i ublaže rizik od kompromitovanja privatnog ključa,
- Razmisliti o korištenju različitih kriptografskih algoritama za digitalne potpise umjesto ECDSA. Ovo može pomoći u sprečavanju potencijalnih napada koji se oslanjaju na ranjivosti, kao što je CVE-2024-31497,
- Potrebno je omogućiti i koristite jake metode autentifikacije u dva koraka za naloge kao dodatni nivo sigurnosti uz ključeve digitalnog potpisa. Ovo može pomoći u sprečavanju neovlaštenog pristupa čak i ako je ključ kompromitovan,
- Redovno nadgledati sisteme, mreže i aplikacije u potrazi za sumnjivim aktivnostima ili znakovima kompromisa. Implementirati sisteme za otkrivanje upada (eng. intrusion detection systems – IDS) i alate za praćenje integriteta datoteka kako bi se u realnom vremenu dobilo upozorenje na potencijalne prijetnje,
- Generisati i koristiti jake privatne ključeve sa velikom dužinom ključa i bezbjednim mehanizmima skladištenja kao što su hardverski bezbjednosni moduli (eng. hardware security modules – HSM). Ovo može otežati napadačima da povrate ključeve čak i ako uspiju da primijete neke potpise,
- Potrebno je uspostaviti stroge politike kontrole pristupa, kao što je kontrola pristupa zasnovana na ulogama ili autentifikacija u više koraka, da bi se ograničio broj korisnika koji imaju pristup osjetljivim podacima i sistemima. Ovo može pomoći da se smanji potencijalni uticaj kompromisa smanjenjem površine napada,
- Uvjeriti se da su svi korisnici u organizaciji svjesni ranjivosti i njenih implikacija. Podstaći ih da slede najbolje prakse za bezbjedno kôdiranje, upravljanje ispravkama i jake lozinke kako bi smanjili rizik od iskorištavanja,
- Redovno vršiti pregled i ažuriranje bezbjednosnih smjernica organizacije kako bi se nove prijetnje i ranjivosti uzele u obzir. Ovo može pomoći da se osigura da se uvijek preduzimaju odgovarajuće mjere za zaštitu od potencijalnih napada.