Разработчики пакета GnuPG выпустили обновление библиотеки Libgcrypt 1.7.8, предлагающей набор компонентов, лежащих в основе механизмов шифрования, применяемых в GnuPG. В новой версии устранена опасная уязвимость (CVE-2017-7526), выявленная группой исследователей под руководством Дэниэла Бернштейна (Daniel J. Bernstein), известного эксперта в области криптографии и создания защищённого ПО, разработавший такие проекты, как qmail, djbdns, Ed25519, Curve25519 и ChaCha20-Poly1305.
Уязвимость позволяет восстановить содержимое закрытого ключа RSA через проведение атаки по сторонним каналам (side-channel attacks) на базе техники FLUSH+RELOAD. Суть проблемы в том, что злоумышленник, имеющий возможность запустить свой код на многопользовательской системе на которой в текущий момент используется закрытый RSA-ключ, может пошагово смоделировать содержимое процессорного кэша, в котором оседают данные вычислений с использованием закрытого RSA-ключа, оставляемые в памяти в процессе возведения в степень при помощи метода скользящего окна (left-to-right sliding window, в основе шифрования RSA лежит операция возведения в степень по модулю большого числа).
Так как атакующим и жертвой запускается одно и тоже приложение, система задействует разделяемую память для размещения копий программы, но данные хранит в отдельных страницах. Постепенно бит за битом меняя содержимое памяти на своей стороне и сбрасывая кэш командой clflush атакующий рассматривает уменьшение времени доступа как сигнал об обнаружении совпадения (в кэш попали данные общие с процессом жертвы).
Если ранее известные методы атак на основе утечки информации, сохраняемой в процессе работы алгоритма скользящего окна, позволяли восстановить лишь 33% содержимого ключа при 5-разрядном окне и 40% при 4-разрядном, то новый метод получает достаточно данных для полного восстановления 1024-разрядного ключа RSA. Теоретически метод может применяться и для 2048-битовых ключей, но атака будет эффективна лишь для 13% ключей и потребует значительных вычислений. Наиболее вероятным объектом атаки является приложение GnuPG, в котором начиная с версии 2.0 базовая логика шифрования вынесена в библиотеку Libgcrypt.
Разработчики Libgcrypt отмечают, что с практической точки зрения атака через указанную уязвимость маловероятна, так как при наличии у злоумышленника непривилегированного доступа к системе, скорее всего для получения RSA-ключа или компрометации системы он воспользуется более простыми способами, такими как ожидание новой локальной уязвимости и её эксплуатация до установки обновления. При этом не исключается возможность проведения атаки на системах виртуализации для определения RSA-ключа другого виртуального окружения, работающего на том же сервере.
Обновления пакетов с устранением уязвимости уже доступны для Debian, Ubuntu, FreeBSD, Fedora. Пока не выпущены обновления для SUSE и openSUSE. RHEL и CentOS проблеме не подвержены, но уязвимость затрагивает пакеты с Libgcrypt из репозитория EPEL.
|