Как уже догадались многие читатели, речь в этой заметке пойдет о недавно обнаруженной уязвимости в генераторе случайных чисел в OpenSSL в Debian Linux и производных системах (Ubuntu, Kubuntu и т.д.). А что же произошло?
13 мая 2008 года проект Debian известил своих пользователей о вышедшем исправлении, затрагивающем генерацию случайных чисел в библиотеке OpenSSL, поставляемой в составе операционной системы Debian Linux. Ошибка состояла в том, что следующие строки были удалены из файла md_rand.c: MD_Update(&m,buf,j); [ .. ] MD_Update(&m,buf,j); /* purify complains */
Эти строки были удалены из-за того, что утилиты Valgrind и Purify сообщали об использовании неинициализированных данных в любом коде, который использовал OpenSSL (пример подобного сообщения). Удаление этих строк привело к тому, что в качестве случайного числа стал использоваться только идентификатор текущего процесса (на Linux системах, максимальный идентификатор процесса равен 32768). И какие последствия?
Все SSL и SSH ключи, сгенерированные на производных от Debian системах с сентября 2006 по 13 мая 2008 являются слабыми с криптографической точки зрения. Это означает, что злоумышленник может воссоздать ключ и с его помощью подписать новые сертификаты. Злоумышленник может таким образом произвести брут-форс атаку на SSH сервер, полагающийся на публичные колючи при аутентификации, Web сервер, аутентифицирующий пользователей по персональным сертификатам и другие службы. Также, открывается пространство для атаки типа «Человек по средние» и расшифровке перехваченного зашифрованного трафика. А сложна ли эксплуатация уязвимости?
Сложность эксплуатации зависит от используемого алгоритма. H.D. Moore опубликовал на сайте metasploit.com пример реализации атак и приблизительное время, требуемое для эксплуатации в зависимости от алгоритма.
На сайте SecurityLab доступен PoC код. Что же делать?
Всем пользователям рекомендуется установить исправление, доступное на сайте производителя и пересоздать все ранее сгенерированные ключи. Уязвимость усугубляется тем, что сертификаты, подписанные подобным ключем, могут использоваться на различных системах. Поэтому, если вы не уверены, на какой системе был сгенерирован ключ, которым подписаны ваши сертификаты, рекомендуем вам сгенерировать новый ключ.
Валерий Марчук
|