He havaitsivat haavoittuvuuden SHA-3-algoritmikirjastossa

alttius

Jos näitä puutteita hyödynnetään, hyökkääjät voivat päästä luvattomasti arkaluontoisiin tietoihin tai aiheuttaa yleensä ongelmia

Haavoittuvuus on tunnistettu (jo lueteltu kohdassa CVE-2022-37454) en kryptografisen hajautusfunktion toteuttaminen SHA-3 (Keccak), tarjotaan XKCP-paketissa (eXtended Keccak Code Package).

Tunnistettu haavoittuvuus voi aiheuttaa puskurin ylivuodon muodostettujen tietojen käsittelyn aikana. Ongelma johtuu SHA-3:n tietyn toteutuksen koodin virheestä, ei itse algoritmin haavoittuvuudesta.

El paquete XKCP mainostetaan SHA-3:n virallisena toteutuksena, joka on kehitetty Keccak-kehitystiimin avulla käytetään perustana funktioille, jotka toimivat SHA-3:n kanssa eri ohjelmointikielillä (esimerkiksi XKCP-koodia käytetään Python hashlib -moduulissa, Ruby digest-sha3 -paketissa ja PHP hash_* -funktioissa).

Ongelman tunnistaneen tutkijan mukaan voi käyttää haavoittuvuutta salausominaisuuksien rikkomiseen hash-funktiosta ja löytää ensimmäinen ja toinen esikuva sekä määrittää törmäykset.

Syynä segmentointivirheeseen on se, että komentosarjat yrittävät kirjoittaa puskuriin enemmän dataa kuin siihen mahtuu. Tällainen haavoittuvuus tunnetaan puskurin ylivuotona, jota OWASP kuvailee "todennäköisesti tunnetuimpana ohjelmiston tietoturvahaavoittuvuuden muotona".

Pieni koodiversio aiheuttaa loputtoman silmukan: korvaa vain 4294967295 numerolla 4294967296. Huomaa samankaltaisuus CVE-2019-8741:n kanssa, joka on toinen havaitsemani haavoittuvuus, joka vaikutti yli 1.400 miljardin Apple-laitteen laiteohjelmistoon, mikä aiheutti myös silmukan äärettömän.

Myös, prototyyppihyödynnyksen luomisesta ilmoitetaan, que mahdollistaa koodin suorittamisen hajautusarvoa laskettaessa erityisesti suunnitellusta tiedostosta. Haavoittuvuutta voidaan myös mahdollisesti käyttää hyökkäämään digitaalisten allekirjoitusten vahvistusalgoritmeihin käyttämällä SHA-3:a (esimerkiksi Ed448). Hyökkäystapojen yksityiskohdat odotetaan julkaistavan myöhemmin, haavoittuvuuden yleisen poistamisen jälkeen.

Tällaista käyttäytymistä ei pitäisi tapahtua "turvallisissa" kielissä, kuten Python ja PHP, koska ne tarkistavat, että kaikki luku- ja kirjoitustoiminnot ovat puskurin rajoissa. Ongelmana on kuitenkin se, että haavoittuvuus on taustalla olevassa "turvattomassa" C-kielessä...

Vielä on epäselvää, miten haavoittuvuus vaikuttaa olemassa oleviin sovelluksiin käytännössä, koska ongelman ilmenemiseksi koodissa on käytettävä syklistä hajautuslaskentaa lohkoissa ja yhden käsitellyn lohkon on oltava kooltaan noin 4 Gt (vähintään 2^32 – 200 tavua).

Kun syöttödataa käsitellään kerralla (ilman osittaista hash-laskentaa), ongelmaa ei ilmene. Yksinkertaisempana suojausmenetelmänä ehdotetaan rajoittamaan yhteen hajautuslaskelman iteraatioon osallistuvien tietojen enimmäiskokoa.

Haavoittuva koodi julkaistiin tammikuussa 2011, joten tämän haavoittuvuuden löytäminen kesti yli vuosikymmenen. Tuntuu olevan vaikea löytää haavoittuvuuksia kryptografisista toteutuksista, vaikka niillä onkin ratkaiseva rooli järjestelmän yleisessä turvallisuudessa. (Ehkä ihmiset eivät edes etsi tällaisia ​​haavoittuvuuksia, koska tämä XKCP:n haavoittuvuus tai edellä mainittu Applen haavoittuvuus eivät kelpaa mihinkään bugipalkkio-ohjelmiin!)

Haavoittuvuus johtuu virheestä syöttötietojen lohkokäsittelyssä. Johtuen arvojen virheellisestä vertailusta tyypin "int" kanssa, jäljellä olevien tietojen virheellinen koko määritetään, mikä aiheuttaa jonon kirjoittamisen varatusta puskurista.

Erityisesti mainitaan, että vertailussa ilmaisu «partialBlock + ilmentymä->byteIOIndex«, joka komponenttien suurilla arvoilla johti kokonaislukujen ylivuotoon. Lisäksi koodissa oli virheellinen tyyppilähetys "(unsigned int)(dataByteLen - i)", mikä aiheutti ylivuodon järjestelmissä, joissa on 64-bittinen size_t-tyyppi.

Vihdoin jos olet kiinnostunut tietämään siitä lisää, voit tarkistaa yksityiskohdat seuraava linkki.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastaa tiedoista: AB Internet Networks 2008 SL
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.