Исследователь Xusheng Li изучил с помощью OpenAI Codex продукты для шифрования USB-накопителей и защиты от копирования. Он нашёл уязвимости в проверке пароля и управлении ключами: пароль часто проверяется отдельно, поэтому файлы можно восстановить без него. В список попали NetacFileLock, YutianDun от SecZure, KakaSoft USB Copy Protection 5.6.0.299 и Nexcopy Copy Secure с программой Drive Wizard 1.0.81. Публикация прошла без координированного раскрытия (согласования с вендорами), поскольку отозвать или обновить уже выданные устройства сложно.
Ключи, учётные записи и проверка пароля
Оценки CVSS (общей системы оценки уязвимостей) в публикации нет. В NetacFileLock ключ AES-256 (симметричный алгоритм шифрования) оказался фиксированным и встроенным в исполняемый файл. Пароль проверялся отдельно и не участвовал в выводе ключа, поэтому расшифровка возможна без него. В YutianDun нашлись скрытые учётные записи Buffer и System с фиксированными паролями; их записи хранят копии одного идентификатора, из которого выводится ключ файла. На двух проверенных накопителях эти учётные данные открывали файлы без пароля администратора.
NetacFileLock и фиксированный ключ AES
Codex воспроизвёл прежний результат за семь минут статическим анализом (изучением кода без запуска). В NetacFileLock анализ также выявил пароли в журналах диагностики и проверку пароля через MD5 (алгоритм хеширования). Отдельно нашлось шифрование независимых блоков без вектора инициализации (случайного значения для связи блоков). В режиме быстрого шифрования обрабатывалась только часть файлов крупнее 1 024 байт. Для AES использовался фиксированный ключ, а для SM4 (стандарт шифрования) применялся другой встроенный ключ.
YutianDun и скрытые учётные записи
В YutianDun уязвимость была не в математике шифрования, а в управлении ключами. Пароль администратора хешировался через MD5, затем из хеша выводился ключ для получения идентификатора. Из-за быстрого MD5 и обрезки шестнадцатеричной строки стойкость ключа AES ограничивалась 64 битами. Главная уязвимость была в скрытых учётных записях: их фиксированные пароли позволяли получить тот же идентификатор. Пароль администратора при этом не требовался.
KakaSoft и три уровня защиты
KakaSoft USB Copy Protection 5.6.0.299 предлагает три уровня защиты. Обычный режим не шифрует файлы. Высокий изменяет только начало файла ключом из 256 вариантов, а максимальный использует Blowfish (симметричный алгоритм) в режиме сцепления блоков (блоки связываются друг с другом). После изменённого начала файл остаётся незашифрованным. Ключ для максимального уровня выводился из встроенного начального значения, а не из пароля пользователя. Внутренний пароль восстановили, после чего файл расшифровали без знания пароля.
Nexcopy и ключ в конфигурации
Nexcopy Copy Secure с программой Drive Wizard 1.0.81 хранит ключ и вектор инициализации в зашифрованной конфигурации. Для её расшифровки используется фиксированный 32-байтовый сертификат, встроенный в приложение. Файлы защищены Triple-DES (алгоритм шифрования) в режиме сцепления блоков, но пароль и проверка USB-устройства влияют только на работу программы просмотра. Они не участвуют в выводе ключа, поэтому содержимое можно восстановить без пароля.
Атака выполняется локально. Для неё нужен доступ к накопителю и клиентскому программному обеспечению; по сети она не выполняется, учётные данные не требуются, участие пользователя не нужно. Сведений об эксплуатации в реальных атаках нет. Публикация описывает лабораторный анализ, а не подтверждённые случаи компрометации.
Исправленных версий в исходных данных нет. Исследователь не следовал процедуре координированного раскрытия: отозвать или обновить уже выданные устройства сложно. Обходных мер в публикации нет. Номера исправленных версий в источнике нет; его следует искать в сообщениях вендоров.
Парольная проверка в программе не гарантирует защиту файлов, если ключ хранится или выводится отдельно. Защита от копирования на таких накопителях не заменяет шифрование с управлением ключами.