Sebezhetőséget azonosítottak az SHA-3 algoritmus könyvtárában

sebezhetőség

Ha kihasználják, ezek a hibák lehetővé tehetik a támadók számára, hogy jogosulatlanul hozzáférjenek érzékeny információkhoz, vagy általában problémákat okozhatnak.

Sebezhetőséget azonosítottak (már szerepel a CVE-2022-37454 alatt) en a kriptográfiai hash függvény megvalósítása SHA-3 (Keccak), az XKCP csomagban (eXtended Keccak Code Package) kínáljuk.

Az azonosított sebezhetőség puffer túlcsordulást okozhat képzett adatok feldolgozása során. A probléma az SHA-3 egy adott megvalósításának kódjában található hibából, nem pedig magának az algoritmusnak a sérülékenységéből adódik.

El paquete XKCP A Keccak fejlesztőcsapat segítségével kifejlesztett SHA-3 hivatalos implementációjaként tartják számon alapul szolgálnak az SHA-3-mal működő funkciókhoz különböző programozási nyelveken (például az XKCP kódot a Python hashlib modul, a Ruby digest-sha3 csomag és a PHP hash_* függvények használják).

A problémát azonosító kutató szerint a sérülékenységet a kriptográfiai tulajdonságok megsértésére használhatja megkeresi az első és második előképet, valamint meghatározza az ütközéseket.

A szegmentálási hiba oka az, hogy a szkriptek több adatot próbálnak írni egy pufferbe, mint amennyit elfér. Az ilyen biztonsági rést puffertúlcsordulásnak nevezik, amelyet az OWASP "valószínűleg a szoftverbiztonsági sebezhetőség legismertebb formájaként" ír le.

A kód egy kis változata végtelen ciklust fog okozni: csak cserélje ki a 4294967295-öt a 4294967296-ra. Vegye figyelembe a hasonlóságot a CVE-2019-8741-el, egy másik, általam talált sérülékenységgel, amely több mint 1.400 milliárd Apple-eszköz firmware-jét érintette, ami szintén végtelen hurkot okozott.

Is, bejelentették egy prototípus exploit létrehozását, que lehetővé teszi a kód végrehajtását a hash kiszámításakor egy speciálisan kialakított fájlból. A sérülékenység potenciálisan felhasználható digitális aláírás-ellenőrző algoritmusok megtámadására is SHA-3 használatával (például Ed448). A támadási módszerek részletei várhatóan később, a biztonsági rés általános eltávolítása után kerülnek nyilvánosságra.

Ez a fajta viselkedés nem fordulhat elő "biztonságos" nyelvekben, például a Pythonban és a PHP-ben, mivel ellenőrzik, hogy minden olvasási és írási művelet a pufferhatáron belül van-e. A probléma azonban az, hogy a sérülékenység a mögöttes "nem biztonságos" C nyelvben van...

Még nem világos, hogy a sérülékenység a gyakorlatban hogyan érinti a meglévő alkalmazásokat, mivel ahhoz, hogy a probléma kódban jelenjen meg, ciklikus hash-számítást kell használni a blokkon, és az egyik feldolgozott blokknak körülbelül 4 GB méretűnek kell lennie (legalább 2^32 – 200 bájt).

A bemeneti adatok egyszerre történő feldolgozásakor (a hash részenkénti szekvenciális kiszámítása nélkül) a probléma nem jelenik meg. Egyszerűbb védelmi módszerként a hash-számítás egy iterációjában szereplő adatok maximális méretének korlátozása javasolt.

A sérülékeny kódot 2011 januárjában tették közzé, így több mint egy évtizedbe telt a sérülékenység megtalálása. Úgy tűnik, nehéz megtalálni a sérülékenységeket a kriptográfiai megvalósításokban, még akkor is, ha ezek kritikus szerepet játszanak a rendszer általános biztonságában. (Talán az emberek nem is keresnek ilyen sebezhetőséget, hiszen sem az XKCP-ben található sebezhetőség, sem az Apple fent említett sebezhetősége nem alkalmas a hibajavító programokra!)

Sebezhetőség a bemeneti adatok blokkfeldolgozásának hibája miatt van. Az értékek „int” típussal való helytelen összehasonlítása miatt a fennálló adatok helytelen mérete kerül megállapításra, ami miatt a sor kiíródik a lefoglalt pufferből.

Különösen megemlítik, hogy összehasonlításkor a «partialBlock + példány->byteIOIndex«, ami az összetevők nagy értékeivel egész számok túlcsordulásához vezetett. Ezenkívül helytelen "(unsigned int)(dataByteLen - i)" típusú szöveg volt a kódban, ami túlcsordulást okozott a 64 bites size_t típusú rendszereken.

Végül ha érdekel, hogy többet tudjon meg róla, ellenőrizheti a részleteket a következő link.


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: AB Internet Networks 2008 SL
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.