Identifikovali zranitelnost v knihovně algoritmů SHA-3

zranitelnost

Pokud jsou tyto chyby zneužity, mohou útočníkům umožnit získat neoprávněný přístup k citlivým informacím nebo obecně způsobit problémy

Byla zjištěna zranitelnost (již uvedeno pod CVE-2022-37454) en implementace kryptografické hašovací funkce SHA-3 (Keccak), nabízený v balíčku XKCP (eXtended Keccak Code Package).

Zjištěná zranitelnost může způsobit přetečení vyrovnávací paměti při zpracování vytvořených dat. Problém je způsoben chybou v kódu konkrétní implementace SHA-3, nikoli zranitelností v samotném algoritmu.

El paquete XKCP je nabízen jako oficiální implementace SHA-3, vyvinutá s pomocí vývojového týmu Keccak, a používá se jako základ funkcí pro práci s SHA-3 v různých programovacích jazycích (například kód XKCP se používá v modulu hashlib Pythonu, balíčku Ruby digest-sha3 a ve funkcích PHP hash_*).

Podle výzkumníka, který problém identifikoval, mohl tuto chybu zabezpečení využít k porušení kryptografických vlastností hašovací funkce a najít první a druhý předobraz a také určit kolize.

Důvodem chyby segmentace je to, že skripty se budou snažit zapsat více dat do vyrovnávací paměti, než může pojmout. Taková zranitelnost je známá jako přetečení vyrovnávací paměti, které OWASP popisuje jako „pravděpodobně nejznámější formu zranitelnosti zabezpečení softwaru“.

Malá varianta kódu způsobí nekonečnou smyčku: stačí nahradit 4294967295 za 4294967296. Všimněte si podobnosti s CVE-2019-8741, další zranitelností, kterou jsem našel a která ovlivnila firmware více než 1.400 miliardy zařízení Apple, což také způsobilo nekonečnou smyčku.

Také, je oznámeno vytvoření prototypu exploitu, que umožňuje dosáhnout spuštění kódu při výpočtu hashe ze speciálně navrženého souboru. Tuto chybu zabezpečení lze také potenciálně využít k útoku na algoritmy ověřování digitálního podpisu pomocí SHA-3 (například Ed448). Očekává se, že podrobnosti o metodách útoku budou zveřejněny později, po obecném odstranění chyby zabezpečení.

K tomuto druhu chování by nemělo docházet v „bezpečných“ jazycích, jako je Python a PHP, protože kontrolují, že všechny operace čtení a zápisu jsou v mezích vyrovnávací paměti. Problém je však v tom, že zranitelnost je přítomna v základním „nezabezpečeném“ jazyce C...

Dosud není jasné, jak zranitelnost ovlivňuje stávající aplikace v praxi, protože aby se problém projevil v kódu, musí být použit cyklický výpočet hash na blocích a jeden ze zpracovaných bloků musí mít velikost asi 4 GB (alespoň 2^32 – 200 bajtů) .

Při zpracování vstupních dat najednou (bez sekvenčního výpočtu hashe po částech) se problém neobjevuje. Jako jednodušší metoda ochrany se navrhuje omezit maximální velikost dat zahrnutých v jedné iteraci výpočtu hash.

Zranitelný kód byl zveřejněn v lednu 2011, takže nalezení této zranitelnosti trvalo více než deset let. Zdá se, že je obtížné najít zranitelná místa v kryptografických implementacích, přestože hrají zásadní roli v celkové bezpečnosti systému. (Možná lidé ani nehledají takové chyby zabezpečení, protože ani tato zranitelnost v XKCP, ani zranitelnost Apple zmíněná výše nejsou způsobilé pro žádné bug bounty programy!)

Zranitelnost je způsobena chybou při blokovém zpracování vstupních dat. Kvůli nesprávnému porovnání hodnot s typem „int“ je určena nesprávná velikost zbývajících dat, což způsobí vypsání fronty z přidělené vyrovnávací paměti.

Zejména je zmíněno, že při srovnání výraz «částečný blok + instance->byteIOIndex«, což při velkých hodnotách součástí vedlo k přetečení celého čísla. V kódu bylo také nesprávné typové obsazení "(unsigned int)(dataByteLen - i)", což způsobilo přetečení na systémech s 64bitovým typem size_t.

Konečně pokud máte zájem o tom vědět více, můžete zkontrolovat podrobnosti v následující odkaz.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Za data odpovídá: AB Internet Networks 2008 SL
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.