Identifikovali zraniteľnosť v knižnici algoritmov SHA-3

zraniteľnosť

Ak sú tieto chyby zneužité, môžu útočníkom umožniť získať neoprávnený prístup k citlivým informáciám alebo vo všeobecnosti spôsobiť problémy

Bola identifikovaná zraniteľnosť (už uvedené pod CVE-2022-37454) en implementácia kryptografickej hašovacej funkcie SHA-3 (Keccak), ponúkaný v balíku XKCP (eXtended Keccak Code Package).

Zistená zraniteľnosť môže spôsobiť pretečenie vyrovnávacej pamäte počas spracovania vytvorených údajov. Problém je spôsobený chybou v kóde špecifickej implementácie SHA-3, nie zraniteľnosťou v samotnom algoritme.

El paquete XKCP je propagovaný ako oficiálna implementácia SHA-3, vyvinutá s pomocou vývojového tímu Keccak, a používa sa ako základ funkcií pre prácu s SHA-3 v rôznych programovacích jazykoch (napríklad kód XKCP sa používa v module hashlib Python, balíku Ruby digest-sha3 a vo funkciách PHP hash_*).

Podľa výskumníka, ktorý problém identifikoval, mohli využiť túto zraniteľnosť na porušenie kryptografických vlastností hašovacej funkcie a nájsť prvý a druhý predobraz, ako aj určiť kolízie.

Dôvodom chyby segmentácie je to, že skripty sa pokúsia zapísať viac údajov do vyrovnávacej pamäte, ako dokáže pojať. Takáto zraniteľnosť je známa ako pretečenie vyrovnávacej pamäte, ktoré OWASP popisuje ako „pravdepodobne najznámejšiu formu zraniteľnosti softvérovej bezpečnosti“.

Malý variant kódu spôsobí nekonečnú slučku: stačí nahradiť 4294967295 4294967296. Všimnite si podobnosť s CVE-2019-8741, ďalšou zraniteľnosťou, ktorú som našiel a ktorá ovplyvnila firmvér viac ako 1.400 miliardy zariadení Apple, čo tiež spôsobilo nekonečnú slučku.

Tiež, je oznámené vytvorenie prototypu exploitu, que umožňuje dosiahnuť vykonanie kódu pri výpočte hashu zo špeciálne navrhnutého súboru. Zraniteľnosť môže byť potenciálne použitá aj na napadnutie algoritmov overovania digitálnych podpisov pomocou SHA-3 (napríklad Ed448). Očakáva sa, že podrobnosti o metódach útoku budú zverejnené neskôr, po všeobecnom odstránení zraniteľnosti.

Tento druh správania by sa nemal vyskytovať v „bezpečných“ jazykoch, ako sú Python a PHP, pretože kontrolujú, či sú všetky operácie čítania a zápisu v medziach vyrovnávacej pamäte. Problém je však v tom, že zraniteľnosť je prítomná v základnom „nebezpečnom“ jazyku C...

Ešte nie je jasné, ako táto zraniteľnosť ovplyvňuje existujúce aplikácie v praxi, keďže aby sa problém prejavil v kóde, musí sa použiť cyklický výpočet hash na blokoch a jeden zo spracovaných blokov musí mať veľkosť približne 4 GB (aspoň 2^32 – 200 bajtov) .

Pri narazovom spracovaní vstupných údajov (bez sekvenčného výpočtu hashu po častiach) problém nenastane. Ako jednoduchšia metóda ochrany sa navrhuje obmedziť maximálnu veľkosť údajov zahrnutých v jednej iterácii výpočtu hash.

Zraniteľný kód bol zverejnený v januári 2011, takže hľadanie tejto zraniteľnosti trvalo viac ako desať rokov. Zdá sa, že je ťažké nájsť zraniteľné miesta v kryptografických implementáciách, aj keď zohrávajú kľúčovú úlohu v celkovej bezpečnosti systému. (Možno ľudia ani nehľadajú takéto zraniteľnosti, pretože ani táto zraniteľnosť v XKCP, ani zraniteľnosť Apple spomenutá vyššie nie sú vhodné pre žiadne bug bounty programy!)

Zraniteľnosť je spôsobená chybou pri blokovom spracovaní vstupných údajov. V dôsledku nesprávneho porovnania hodnôt s typom „int“ sa určí nesprávna veľkosť zostávajúcich údajov, čo spôsobí, že sa front vypíše z pridelenej vyrovnávacej pamäte.

Najmä sa uvádza, že pri porovnávaní výraz «čiastočný blok + inštancia->byteIOIndex«, čo pri veľkých hodnotách komponentov viedlo k pretečeniu celého čísla. V kóde bolo tiež nesprávne typové obsadenie "(unsigned int)(dataByteLen - i)", čo spôsobilo pretečenie na systémoch so 64-bitovým typom size_t.

Konečne ak máte záujem dozvedieť sa o tom viac, môžete skontrolovať podrobnosti v nasledujúci odkaz.


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Za údaje zodpovedá: AB Internet Networks 2008 SL
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.