Популярная утилита для шифрования на лету TrueCrypt оказалась не без изъяна. Эксперт команды по поиску уязвимостей Google Project Zero Джеймс Форшоу (James Forshaw) обнаружил в ней сразу две критические ошибки. Они не связаны напрямую с алгоритмом шифрования, но позволяют атакующему получить доступ к хранящимся в зашифрованном контейнере данным.
Найденные уязвимости получили записи с индексами CVE-2015-7358 и CVE-2015-7359 в базе некоммерческой организации MITRE (поддерживается US-CERT – подразделением по борьбе с угрозами в сфере высоких технологий Министерства национальной безопасности США).
Обе уязвимости существуют на уровне драйвера TrueCrypt для шифрования на лету. Первая связана с некорректной обработкой им символических ссылок при монтировании виртуальных дисков. Вторая – с отсутствием у драйвера надёжных механизмов аутентификации пользователя при обработке команд о внесении изменений на диск. В результате атакующая сторона может получить несанкционированный доступ к содержимому шифрованного контейнера в некоторых реалистичных сценариях.
Подробности Форшоу обещал раскрыть позже. Обычно такая тактика «белых» хакеров связана с желанием предоставить разработчику время на выпуск патча, но официальная поддержка True Crypt завершилась в прошлом году.
Примечательно, что ранее TrueCrypt дважды проходил тщательный аудит у разных экспертов. Версия 7.0a проверялась ещё в 2011 году командой разработчиков Ubuntu Privacy Remix. Они выполняли компиляцию TrueCrypt из исходников в среде Linux и Windows. Эксперты обратили внимание на некоторые особенности программы, но явных недочётов в ней не обнаружили. В выводе они лишь советуют заменить старые контейнеры (созданные в TrueCrypt 5.0 и более ранних версиях) и не рекомендуют использовать ключевые файлы вместе со слабым паролем.
Второй аудит был выполнен командой NCC в 2013 – 2014 году по инициативе программиста Кеннета Уайта (Kenneth White) и криптографа Мэттью Грина (Matthew Green). Он проходил в два этапа и вызвал большой интерес у пользователей. Они оплатили труд команды экспертов вскладчину: на двух краудфандинговых платформах собрали втрое больше средств, чем для этого требовалось ($77 тыс.).
Полный и максимально подробный анализ версии 7.1a выявил тогда 11 ошибок. Большинство уязвимостей содержалось во вспомогательных модулях. Их наличие объяснялось, в том числе, недочётами архитектуры Windows. Практическое использование других уязвимостей считалось очень сложным. Поэтому по результатам экспертизы 2014 года TrueCrypt был признан достаточно надёжным средством шифрования без программных закладок и утечек данных, ослабляющих криптографическую защиту.
Дальнейшая судьба утилиты многих удивила. Обновления на сайте TrueCrypt выкладывал некто Дэвид Морган. Он ознакомился с результатами аудита и подтвердил наличие нескольких ошибок, указанных в отчёте. Сам автор программы, как и прежде, пожелал остаться неизвестным. В мае 2014 года проект внезапно прекратил развитие без каких-либо внятных комментариев. На официальной странице появилась версия 7.2, а прежние были удалены. Больше всего вопросов вызвало примечание о том, что использование TrueCrypt теперь не может считаться безопасным… в связи с окончанием срока поддержки Windows XP.
Повод был явно надуманный, особенно с учётом кроссплатформенных возможностей программы. Поэтому «серую лошадку» 7.2 дружно проигнорировали, а прошедшая аудит версия TrueCrypt используется и по сей день на десятках миллионов компьютеров. Для многих она стала основой конфиденциальности за неимением лучшей альтернативы.
Понимая это, Форшоу рекомендует обратить внимание на два других форка, основанных на коде TrueCrypt v.7.1a. Это CipherShed и VeraCrypt. На момент написания статьи в последней оперативно исправили найденные уязвимости. VeraCrypt 1.15 не содержит ни одной ошибки, найденной в TrueCrypt за всё время (но может содержать свои).