Identificirali su ranjivost u biblioteci algoritama SHA-3

ranjivost

Ako se iskoriste, ovi nedostaci mogu omogućiti napadačima da dobiju neovlašteni pristup osjetljivim informacijama ili općenito uzrokovati probleme

Identifikovana je ranjivost (već naveden pod CVE-2022-37454) en implementacija kriptografske hash funkcije SHA-3 (Keccak), koji se nudi u XKCP paketu (eXtended Keccak Code Package).

Utvrđena ranjivost može uzrokovati prelijevanje bafera tokom obrade formiranih podataka. Problem je zbog greške u kodu specifične implementacije SHA-3, a ne zbog ranjivosti samog algoritma.

Paket XKCP se reklamira kao službena implementacija SHA-3, razvijena uz pomoć razvojnog tima Keccak, i koristi se kao osnova za funkcije za rad sa SHA-3 u različitim programskim jezicima (na primjer, XKCP kod se koristi u Python hashlib modulu, Ruby digest-sha3 paketu i PHP hash_* funkcijama).

Prema istraživaču koji je identifikovao problem, mogao iskoristiti ranjivost za kršenje kriptografskih svojstava hash funkcije i pronaći prvu i drugu predsliku, kao i odrediti kolizije.

Razlog greške segmentacije je taj što će skripte pokušati da zapišu više podataka u međuspremnik nego što može da primi. Takva ranjivost je poznata kao prelivanje bafera, što OWASP opisuje kao "vjerovatno najpoznatiji oblik softverske sigurnosne ranjivosti".

Mala varijanta koda će uzrokovati beskonačnu petlju: samo zamijenite 4294967295 sa 4294967296. Obratite pažnju na sličnost sa CVE-2019-8741, još jednu ranjivost koju sam otkrio koja je uticala na firmver preko 1.400 milijarde Apple uređaja, što je također uzrokovalo beskonačnu petlju.

Pored toga, najavljuje se stvaranje prototipa exploit-a, que omogućava da se postigne izvršenje koda prilikom izračunavanja heša iz posebno dizajnirane datoteke. Ranjivost se također može potencijalno koristiti za napad na algoritme za verifikaciju digitalnog potpisa koristeći SHA-3 (na primjer, Ed448). Očekuje se da će detalji o metodama napada biti objavljeni kasnije, nakon generalnog uklanjanja ranjivosti.

Ovakvo ponašanje ne bi trebalo da se dešava u "sigurnim" jezicima kao što su Python i PHP, jer oni proveravaju da li su sve operacije čitanja i pisanja unutar granica bafera. Međutim, problem je što je ranjivost prisutna u osnovnom "nesigurnom" jeziku C...

Ipak nejasno je kako ranjivost utiče na postojeće aplikacije u praksi, jer da bi se problem manifestirao u kodu, mora se koristiti ciklično heš računanje na blokovima, a jedan od obrađenih blokova mora biti veličine oko 4 GB (najmanje 2^32 – 200 bajtova).

Prilikom obrade ulaznih podataka odjednom (bez sekvencijalnog izračunavanja heša po dijelovima), problem se ne pojavljuje. Kao jednostavnija metoda zaštite, predlaže se ograničavanje maksimalne veličine podataka uključenih u jednoj iteraciji hash izračunavanja.

Ranjivi kod je objavljen u januaru 2011. godine, tako da je trebalo više od decenije da se pronađe ova ranjivost. Čini se da je teško pronaći ranjivosti u kriptografskim implementacijama, iako one igraju ključnu ulogu u cjelokupnoj sigurnosti sistema. (Možda ljudi čak i ne traže takve ranjivosti, jer ni ova ranjivost u XKCP-u niti Apple-ova ranjivost ne ispunjavaju uslove za bilo kakve programe za nagrađivanje grešaka!)

Ranjivost je zbog greške u blok obradi ulaznih podataka. Zbog pogrešne usporedbe vrijednosti sa tipom "int", utvrđuje se pogrešna veličina preostalih podataka, što uzrokuje ispisivanje reda iz dodijeljenog bafera.

Posebno se pominje da je prilikom poređenja izraz «partialBlock + instanca->byteIOIndex«, što je uz velike vrijednosti sastavnih dijelova dovelo do prekoračenja cijelog broja. Takođe, u kodu je bilo pogrešnog tipa "(unsigned int)(dataByteLen - i)", što je izazvalo prelivanje na sistemima sa 64-bitnim tipom size_t.

Konačno ako ste zainteresirani da saznate više o tome, detalje možete provjeriti u sljedeći link.


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Odgovoran za podatke: AB Internet Networks 2008 SL
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.