Независимый аудит бесплатного пакета VeraCrypt, используемого для шифрования файлов и дисков, выявил ряд критических уязвимостей, которые были устранены в течение месяца по завершении проверки.

Открытый проект VeraCrypt был запущен как форк TrueCrypt, некогда весьма популярного де-факто стандарта полного шифрования диска (FDE), поддержка которого была при загадочных обстоятельствах прекращена в 2014 году. Кураторы TrueCrypt на тот момент лишь заявили, что код стало небезопасно использовать. Аудит, сразу начатый спецпроектом Open Crypto Audit Project (OCAP), показал ряд уязвимостей, но бэкдоров, против ожидания, обнаружено не было.

Аудиторская проверка VeraCrypt, стартовавшая 16 августа, финансировалась из фонда OSTIF (Open Source Technology Improvement Fund) и была проведена двумя исследователями из Quarkslab. Оценка производилась по релизу VeraCrypt 1.18.

Ревизоры с удовлетворением отметили, что все уязвимости, всплывшие в ходе аудита OCAP, в VeraCrypt пропатчены, кроме одной, признанной «незначительной». Среди устраненных числились два критических бага повышения привилегий, обнаруженных Джеймсом Форшо (James Forshaw) из Google Project Zero. Исследователь предал гласности обе бреши по завершении аудита OCAP; одна из них, крывшаяся в драйвере TrueCrypt, была сочтена особенно опасной. Год назад разработчик VeraCrypt Мунир Идрасси (Mounir Idrassi) рассказал Threatpost, что этот драйвер некорректно валидировал символические ссылки, используемые для монтирования тома. Эксплуатация данной уязвимости, по словам Идрасси, позволяла получить администраторские привилегии в полном объеме.

В то же время ошибки, требовавшие значительной переработки кода или архитектуры, исправлены не были. «Среди них — реализация AES, до сих пор уязвимая к атакам на кэш по стороннему каналу, и проблемы с TC_IOCTL_OPEN_TEST, решить которые можно, лишь изменив поведение приложения», — пишут представители Quarkslab в блоге. Не были закрыты также бреши, влекущие несовместимость с TrueCrypt и ассоциированные с криптомеханизмами. Так, смешивание битов ключевого файла с паролем при указании пути производится ненадежным методом. Также в заголовках тома был обнаружен неаутентифицированный шифротекст, что позволяло осуществить подмену посредством сравнительно небольшого числа запросов.

Ревизия VeraCrypt 1.18, в том числе нововведений, таких как поддержка UEFI, криптостандартов, отличных от западных, и проч., показала наличие свежих уязвимостей, в том числе трех весьма критичных. Так, VeraCrypt использует симметричный шифр стандарта ГОСТ 28147-89, оперирующий 64-битными блоками, который слабее других в арсенале этого продукта. По свидетельству президента OSTIF Дерека Циммера (Derek Zimmer), этот алгоритм, созданный еще в СССР как альтернатива DES, был добавлен в набор с выходом VeraCrypt 1.17. «Реализация в VeraCrypt должна была усилить этот алгоритм до приемлемого для современной криптографии уровня, однако этого не случилось», — заявил Циммер на Reddit, анонсируя результаты аудита. По данным Quarkslab, шифр ГОСТа 28147-89 будет изъят из набора версии 1.19.

«Код XTS не адаптирован для таких шифров, поэтому VeraCrypt эмулирует 128-битный блочный шифр, шифруя два блока по 64 бит в режиме CBC с нулевым вектором инициализации, что само по себе может вызвать проблемы, — пишут аудиторы. — Кроме того, чтобы достичь степени защиты, обеспечиваемой 128-битным оригиналом, объем подаваемых на обработку данных не должен превышать 512 байт, что слишком мало для системы шифрования хранимых данных».

Проверка также показала, что библиотеки поддержки сжатия, используемые в VeraCrypt, либо устарели, либо плохо написаны, но в любом случае требуют замены, так как их несовершенство грозит исполнением кода. Согласно блог-записи Quarkslab, к выходу версии 1.19 VeraCrypt функции сжатия будут обновлены или переписаны.

Еще одна большая проблема, выявленная в ходе аудита, открывает возможность для получения пароля загрузки (в режиме UEFI), если система зашифрована, или как минимум длины пароля (в режиме совместимости).

«Я бы посоветовал версию 1.19, содержащую все патчи, и обязательно прочтите техническую документацию, — сказал Циммер в заключение. — Если следовать указаниям в отношении известных проблем и придерживаться рекомендаций, думаю, это будет одна из лучших FDE-систем, доступных ныне».

Категории: Уязвимости