Те идентифицираха уязвимост в библиотеката на алгоритъма SHA-3

уязвимост

Ако бъдат използвани, тези пропуски могат да позволят на нападателите да получат неоторизиран достъп до чувствителна информация или като цяло да причинят проблеми

Установена е уязвимост (вече изброени под CVE-2022-37454) en внедряването на криптографската хеш функция SHA-3 (Keccak), предлаган в пакета XKCP (eXtended Keccak Code Package).

Идентифицираната уязвимост може да причини препълване на буфера по време на обработка на формирани данни. Проблемът се дължи на грешка в кода на конкретно изпълнение на SHA-3, а не на уязвимост в самия алгоритъм.

пакет XKCP се рекламира като официална реализация на SHA-3, разработена с помощта на екипа за разработка на Keccak, и използвани като основа за функции за работа с SHA-3 в различни езици за програмиране (например кодът XKCP се използва в модула hashlib на Python, пакета Ruby digest-sha3 и функциите PHP hash_*).

Според изследователя, идентифицирал проблема, може да използва уязвимостта, за да наруши криптографските свойства на хеш функцията и намиране на първото и второто предобрази, както и определяне на сблъсъци.

Причината за грешката на сегментирането е, че скриптовете ще се опитат да запишат повече данни в буфера, отколкото може да побере. Такава уязвимост е известна като препълване на буфера, което OWASP описва като „вероятно най-известната форма на уязвимост в сигурността на софтуера“.

Малък вариант на кода ще предизвика безкраен цикъл: просто заменете 4294967295 с 4294967296. Обърнете внимание на приликата с CVE-2019-8741, друга уязвимост, която открих, която засегна фърмуера на над 1.400 милиарда устройства на Apple, което също предизвика безкраен цикъл.

Също, се обявява създаването на експлойт на прототип, que позволява да се постигне изпълнение на код при изчисляване на хеша от специално създаден файл. Уязвимостта може потенциално да се използва и за атака на алгоритми за проверка на цифров подпис, използващи SHA-3 (например Ed448). Подробностите за методите на атака се очаква да бъдат публикувани на по-късна дата, след общото премахване на уязвимостта.

Този тип поведение не трябва да се случва в "безопасни" езици като Python и PHP, тъй като те проверяват дали всички операции за четене и запис са в границите на буфера. Проблемът обаче е, че уязвимостта присъства в основния "несигурен" език C...

Още не е ясно как уязвимостта засяга съществуващите приложения на практика, тъй като за да се прояви проблемът в кода, трябва да се използва циклично хеш изчисление на блокове и един от обработените блокове трябва да е с размер около 4 GB (поне 2^32 – 200 байта).

При обработка на входните данни наведнъж (без последователно изчисляване на хеша по части) проблемът не се появява. Като по-прост метод за защита се предлага ограничаване на максималния размер на данните, включени в една итерация на хеш изчислението.

Уязвимият код беше публикуван през януари 2011 г., така че отне повече от десетилетие, за да се открие тази уязвимост. Изглежда е трудно да се намерят уязвимости в криптографските реализации, въпреки че те играят критична роля за цялостната сигурност на системата. (Може би хората дори не търсят такива уязвимости, тъй като нито тази уязвимост в XKCP, нито уязвимостта на Apple, спомената по-горе, отговарят на условията за каквито и да е програми за награди за грешки!)

Уязвимост се дължи на грешка в блоковата обработка на входните данни. Поради неправилно сравнение на стойностите с типа "int", се определя неправилен размер на неизпълнените данни, което води до изписване на опашката от разпределения буфер.

По-специално се споменава, че при сравняване изразът «partialBlock + екземпляр->byteIOIndex«, което при големи стойности на съставните части доведе до целочислено препълване. Освен това имаше неправилно преобразуване на типа "(unsigned int)(dataByteLen - i)" в кода, причиняващо препълване на системи с 64-битов тип size_t.

Накрая ако се интересувате да научите повече за това, можете да проверите подробностите в следваща връзка.


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорник за данните: AB Internet Networks 2008 SL
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.