Qualcomm-sirujen haavoittuvuus, joka mahdollistaa yksityisten avainten purkamisen TrustZone-tallennustilasta

NCC Groupin tutkijat paljastettu детали haavoittuvuudet (CVE-2018-11976). Ongelma ilmenee mm eniten Snapdragon SoC, joka on yleistynyt Android-alustaan ​​perustuvissa älypuhelimissa. Korjaukset, jotka korjaavat ongelman, ovat jo olemassa mukana huhtikuun Android-päivityksessä ja uusissa laiteohjelmistojulkaisuissa Qualcomm-siruille. Korjauksen valmistelu vei Qualcomilta yli vuoden; tiedot haavoittuvuudesta lähetettiin Qualcommille alun perin 19. maaliskuuta 2018.

Muistakaamme, että ARM TrustZone -teknologian avulla voit luoda laitteistoeristettyjä suojattuja ympäristöjä, jotka ovat täysin erillään pääjärjestelmästä ja toimivat erillisessä virtuaaliprosessorissa käyttämällä erillistä erikoiskäyttöjärjestelmää. TrustZonen päätarkoitus on tarjota prosessorien erillistä suoritusta salausavaimille, biometrisille todennusille, maksutiedoille ja muille luottamuksellisille tiedoille. Vuorovaikutus pääkäyttöjärjestelmän kanssa tapahtuu epäsuorasti lähetysrajapinnan kautta. Yksityiset salausavaimet on tallennettu laitteistoeristettyyn avainsäilöön, joka oikein toteutettuina voi estää niiden vuotamisen, jos taustalla oleva järjestelmä vaarantuu.

Haavoittuvuus johtuu elliptisen käyrän käsittelyalgoritmin toteutusvirheestä, joka johti tietojen vuotamiseen tietojenkäsittelyn edistymisestä. Tutkijat ovat kehittäneet sivukanavan hyökkäystekniikan, joka mahdollistaa olemassa olevien epäsuorien vuotojen avulla laitteistoeristetyssä tilassa olevien yksityisten avainten sisällön palauttamisen. Android Keystore. Vuodot määritetään haaran ennustelohkon aktiivisuuden ja muistissa olevien tietojen käyttöajan muutosten perusteella. Kokeessa tutkijat osoittivat onnistuneesti 224- ja 256-bittisten ECDSA-avainten palautuksen Nexus 5X -älypuhelimessa käytetystä laitteistoeristetystä avainsäilystä. Avaimen palauttaminen vaati noin 12 tuhannen digitaalisen allekirjoituksen luomista, mikä kesti yli 14 tuntia. Hyökkäyksen suorittamiseen käytetyt työkalut Cachegrab.

Ongelman pääasiallinen syy on yhteisten laitteistokomponenttien ja välimuistin jakaminen laskelmia varten TrustZonessa ja pääjärjestelmässä - eristäminen suoritetaan loogisen erottelun tasolla, mutta käyttämällä yhteisiä laskentayksiköitä ja laskelmien jälkiä ja tietoja haarasta osoitteet tallennetaan yhteiseen prosessorin välimuistiin. Prime+Probe-menetelmällä, joka perustuu välimuistiin tallennettujen tietojen käyttöajan muutosten arviointiin, on mahdollista tarkastamalla tiettyjen kuvioiden olemassaolo välimuistissa seurata digitaalisten allekirjoitusten laskelmiin liittyviä tietovirtoja ja koodin suorituksen merkkejä. TrustZone melko suurella tarkkuudella.

Suurin osa ajasta digitaalisen allekirjoituksen luomiseen käyttämällä ECDSA-avaimia Qualcomm-siruissa kuluu kertolaskujen suorittamiseen silmukassa käyttäen alustusvektoria, joka on muuttumaton jokaiselle allekirjoitukselle (nuntiuksen). Jos hyökkääjä voi palauttaa ainakin muutaman bitin tämän vektorin tiedoilla, on mahdollista suorittaa hyökkäys koko yksityisen avaimen peräkkäin palauttamiseksi.

Qualcommin tapauksessa kertolaskualgoritmissa tunnistettiin kaksi paikkaa, joissa tällaista tietoa on vuotanut: suoritettaessa hakutoimintoja taulukoissa ja ehdollisen tiedon hakukoodissa "nonce"-vektorin viimeisen bitin arvon perusteella. Huolimatta siitä, että Qualcomm-koodi sisältää toimenpiteitä kolmannen osapuolen kanavien kautta tapahtuvien tietovuotojen estämiseksi, kehitetyn hyökkäysmenetelmän avulla voit ohittaa nämä toimenpiteet ja määrittää useita "nonce"-arvon bittejä, jotka riittävät palauttamaan 256-bittiset ECDSA-avaimet.

Lähde: opennet.ru

Lisää kommentti