PuTTY:n haavoittuvuus, joka mahdollistaa käyttäjän yksityisen avaimen palauttamisen

PuTTY, suosittu SSH-asiakas Windows-alustalla, sisältää vaarallisen haavoittuvuuden (CVE-2024-31497), jonka avulla käyttäjän yksityinen avain voidaan luoda uudelleen käyttämällä NIST P-521 Elliptic Curve ECDSA -algoritmia (ecdsa-sha2-nistp521). Yksityisen avaimen valitsemiseksi riittää noin 60 ongelmallisen avaimen luoman digitaalisen allekirjoituksen analysointi.

Haavoittuvuus ilmenee PuTTY-versiosta 0.68 alkaen ja se vaikuttaa myös tuotteisiin, jotka sisältävät haavoittuvia PuTTY-versioita, kuten FileZilla (3.24.1 - 3.66.5), WinSCP (5.9.5 - 6.3.2), TortoiseGit (2.4.0.2 - 2.15.0) ja TortoiseSVN (1.10.0 - 1.14.6). Ongelma korjattiin PuTTY 0.81-, FileZilla 3.67.0-, WinSCP 6.3.3- ja TortoiseGit 2.15.0.1 -päivityksillä. Päivityksen asennuksen jälkeen käyttäjiä kehotetaan luomaan uudet avaimet ja poistamaan vanhat julkiset avaimet authorised_keys-tiedostoistaan.

Haavoittuvuuden aiheuttaa kehittäjien huolimattomuus. He käyttivät 521-bittiseen satunnaissekvenssiin perustuvaa alustusvektoria (nonce) 512-bittisen avaimen luomiseen, luultavasti uskoen, että 512 bitin entropia riittäisi ja loput 9 bittiä eivät ole perustavanlaatuisia. Tämän seurauksena kaikissa PuTTY:ssä ecdsa-sha2-nistp521-algoritmilla luoduissa yksityisissä avaimissa alustusvektorin ensimmäiset 9 bittiä saivat aina nolla-arvoa.

ECDSA:lle ja DSA:lle näennäissatunnaislukugeneraattorin laatu ja moduulin laskennassa käytetyn parametrin täydellinen peitto satunnaisdatalla on oleellisen tärkeää, koska jo muutaman bitin määrittäminen alustusvektoritiedolla riittää kuljettamaan. suorittaa hyökkäyksen peräkkäin koko yksityisen avaimen palauttamiseksi. Avaimen onnistuneeseen palauttamiseen riittää, että sinulla on julkinen avain ja analysoidaan useita kymmeniä ongelmallisella avaimella luotuja digitaalisia allekirjoituksia hyökkääjän tuntemille tiedoille. Hyökkäys perustuu HNP-ongelman (Hidden Number Problem) ratkaisemiseen.

Tarvittavat digitaaliset allekirjoitukset voidaan hankkia esimerkiksi, kun käyttäjä muodostaa yhteyden hyökkääjän SSH-palvelimeen tai Git-palvelimeen, joka käyttää SSH:ta siirtona. Hyökkäykseen tarvittavat allekirjoitukset voidaan selvittää myös, jos avaimella on tarkistettu mielivaltaisia ​​tietoja, esimerkiksi git-sitoumuksia käytettäessä Pageant SSH -agenttia ohjaamaan liikennettä kehittäjän isännälle. Avaimen palauttamiseen tarvittavien tietojen saaminen MITM-hyökkäyksen aikana on mahdotonta, koska SSH:n allekirjoituksia ei välitetä selkeänä tekstinä.

On huomattava, että PuTTY:ssä käytettiin samanlaista epätäydellisten alustusvektoreiden käyttöä muun tyyppisille elliptisille käyräille, mutta muille algoritmeille kuin ECDSA P-521:lle tuloksena olevat tietovuodot eivät riitä toteuttamaan toimivaa avaimen palautushyökkäystä. Muun kokoiset ECDSA-avaimet ja Ed25519-avaimet eivät ole alttiita hyökkäyksille.

Lähde: opennet.ru

Lisää kommentti