Уязвимости шифровальщика «Prometheus» вдохновили на разработку универсального дешифратора.

10 июня 2022 г. 10:18
 327

Шифровальщик создавал свои семена, полагаясь на генератор случайных чисел.

Prometheus - сборка шифровальщика на основе Thanos, которая блокировала компьютеры жертв летом 2021 года, - содержала серьезную «уязвимость», которая заставила исследователей безопасности из IBM попытаться создать универсальный дешифратор. Такой инструмент мог бы работать против нескольких вариантов шифровальщиков, включая Prometheus, AtomSilo, LockFile, Bandana, Chaos и PartyTicket.

Хотя исследователям IBM и удалось отменить работу нескольких штаммов шифровальщиков, «дешифратор мечты» так и не был реализован.

Глава глобального отдела IBM по анализу угроз Энди Пьяцца сообщил: исследования команды показали, что, хотя для некоторых семейств шифровальщиков может быть создан инструмент дешифровки, ни одна компания не должна полагаться дешифровку в качестве ответа на кибератаки.

«Надежда - это не стратегия» - заявил Пьяцца на конференции RSA Conference 2022, которая впервые за два года прошла в Сан-Франциско в оффлайн-режиме.

Исследователь безопасности IBM Аарон Гдански, которому помогала исследователь безопасности Энн Джобман, сказал, что интерес к созданию инструмента для расшифровки Prometheus возник после того, как один из клиентов IBM Security пострадал от атаки этого шифровальщика. Исследователь начал с того, что попытался понять, как ведет себя программа-вымогатель: Сохранялась ли она в среде? Загружала ли она куда-либо файлы? И как, в частности, она генерировала ключи, которые использовались для шифрования?

Используя отладчик и дизассемблер DS-5, Гдански обнаружил, что алгоритм шифрования Prometheus опирается как на «жестко закодированный вектор инициализации, который не менялся между образцами», так и на время работы компьютера. Гдански также узнал, что Prometheus создавал свои семена, полагаясь на генератор случайных чисел, который по умолчанию использовал Environment.TickCount.

По словам Гдански, эти открытия выявили ключевую уязвимость в Prometheus: он смог найти, когда Prometheus зашифровал файлы в системе, и смог сгенерировать такое же семя, которое Prometheus использовал для расшифровки.

«Если бы я смог получить семя в момент шифрования, я мог бы использовать тот же алгоритм, что и Prometheus, для регенерации ключа, который он использует» - заявил Гдански.

Вооружившись временем загрузки пораженной машины и временной меткой зашифрованного файла, Гданьски получил отправную точку для сужения круга задач. После некоторых дополнительных расчетов исследователь создал семя Prometheus и протестировал его на части зашифрованных файлов.

После некоторой доработки работа Гдански принесла свои плоды.

Однако Гдански также узнал, что семя меняется в зависимости от времени, когда файл был зашифрован. Это означало, что один единственный ключ для расшифровки не сработает для всех, но, сортируя зашифрованные файлы по времени последней записи на машине, он смог постепенно создать серию семян, которые можно было использовать для расшифровки.

По словам Гдански, этот успех может быть применен к другим семействам шифровальщиков, которые аналогичным образом полагаются на несовершенные генераторы случайных чисел.

«В любом случае, когда используется некриптографически защищенный генератор случайных чисел, вы, вероятно, сможете воссоздать ключ» - сообщил Гдански.

Исследователь подчеркнул, что этот недостаток, по его наблюдениям, встречается редко. Как повторил Пьяцца, лучшая защита от программ-вымогателей - это не надежда на то, что шифровальщик, участвующий в атаке, имеет небрежную реализацию, а предотвращение атаки до того, как она произойдет.

 

Источник: https://blog.malwarebytes.com

Системы информационной безопасности