Jie nustatė SHA-3 algoritmų bibliotekos pažeidžiamumą

pažeidžiamumas

Išnaudojami šie trūkumai gali leisti užpuolikams gauti neteisėtą prieigą prie slaptos informacijos arba apskritai sukelti problemų.

Nustatytas pažeidžiamumas (jau įtraukta į CVE-2022-37454) en kriptografinės maišos funkcijos įgyvendinimas SHA-3 (Keccak), siūlomas XKCP pakete (eXtended Keccak Code Package).

Nustatytas pažeidžiamumas gali sukelti buferio perpildymą apdorojant suformuotus duomenis. Problema kyla dėl konkretaus SHA-3 diegimo kodo klaidos, o ne dėl paties algoritmo pažeidžiamumo.

El paquete XKCP yra reklamuojamas kaip oficialus SHA-3 diegimas, sukurtas padedant Keccak kūrėjų komandai, ir naudojamas kaip pagrindas funkcijoms dirbti su SHA-3 įvairiomis programavimo kalbomis (pavyzdžiui, XKCP kodas naudojamas Python hashlib modulyje, Ruby digest-sha3 pakete ir PHP hash_* funkcijose).

Anot problemą identifikavusio mokslininko, gali panaudoti pažeidžiamumą, kad pažeistų kriptografines savybes maišos funkcijos ir rasti pirmąjį bei antrąjį pirminius vaizdus, ​​taip pat nustatyti susidūrimus.

Segmentavimo gedimo priežastis yra ta, kad scenarijai bandys įrašyti daugiau duomenų į buferį, nei jame telpa. Toks pažeidžiamumas žinomas kaip buferio perpildymas, kurį OWASP apibūdina kaip „turbūt geriausiai žinomą programinės įrangos saugos pažeidžiamumo formą“.

Nedidelis kodo variantas sukels begalinę kilpą: tiesiog pakeiskite 4294967295 į 4294967296. Atkreipkite dėmesį į panašumą į CVE-2019-8741 – kitą mano aptiktą pažeidžiamumą, kuris paveikė daugiau nei 1.400 milijardo Apple įrenginių programinę-aparatinę įrangą, kuri taip pat sukėlė begalinę kilpą.

Taip pat, paskelbta apie prototipo eksploatacijos sukūrimą, que leidžia pasiekti kodo vykdymą skaičiuojant maišą iš specialiai sukurto failo. Pažeidžiamumas taip pat gali būti naudojamas atakuoti skaitmeninio parašo tikrinimo algoritmus naudojant SHA-3 (pavyzdžiui, Ed448). Tikimasi, kad išsami informacija apie atakos metodus bus paskelbta vėliau, po bendro pažeidžiamumo pašalinimo.

Toks elgesys neturėtų įvykti „saugiose“ kalbose, tokiose kaip Python ir PHP, nes jos patikrina, ar visos skaitymo ir rašymo operacijos yra buferio ribose. Tačiau problema ta, kad pažeidžiamumas yra pagrindinėje „nesaugioje“ C kalboje...

Vis dėlto neaišku, kaip pažeidžiamumas praktiškai veikia esamas programas, nes norint, kad problema pasireikštų kode, turi būti naudojamas ciklinis blokų maišos skaičiavimas, o vienas iš apdorotų blokų turi būti maždaug 4 GB dydžio (mažiausiai 2^32 – 200 baitų).

Apdorojant įvesties duomenis iš karto (be nuoseklaus maišos skaičiavimo dalimis), problema neatsiranda. Kaip paprastesnis apsaugos metodas, siūloma apriboti maksimalų duomenų, įtrauktų į vieną maišos skaičiavimo iteraciją, dydį.

Pažeidžiamas kodas buvo paskelbtas 2011 m. sausio mėn., todėl prireikė daugiau nei dešimties metų, kol buvo aptiktas šis pažeidžiamumas. Atrodo, kad sunku rasti kriptografinių diegimų pažeidžiamumą, nors jie atlieka svarbų vaidmenį užtikrinant bendrą sistemos saugumą. (Galbūt žmonės net neieško tokių pažeidžiamumų, nes nei šis XKCP pažeidžiamumas, nei anksčiau minėtas Apple pažeidžiamumas nėra tinkami jokioms laisvų klaidų programoms!)

Pažeidžiamumas yra dėl klaidos blokuojant įvesties duomenų apdorojimą. Dėl neteisingo reikšmių palyginimo su tipu „int“, nustatomas neteisingas neapmokėtų duomenų dydis, dėl kurio eilė išrašoma iš paskirto buferio.

Visų pirma paminėta, kad lyginant, posakis «partialBlock + instance->byteIOIndex“, kuris, esant didelėms sudedamųjų dalių vertėms, lėmė sveikųjų skaičių perpildymą. Be to, kode buvo neteisingas tipo įrašas „(unsigned int)(dataByteLen - i)“, todėl sistemose, kurių tipas yra 64 bitų size_t, buvo perpildyta.

Pagaliau jei norite sužinoti daugiau apie tai, išsamią informaciją galite patikrinti sekanti nuoroda.


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Už duomenis atsakingas: AB Internet Networks 2008 SL
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.