Дырявые диски. Эксплуатируем уязвимости в сетевых хранилищах Synology

Защита данных, приватность и соответствие нормам безопасного хранения информации — то, над чем работают практически все производители средств хранения информации. И если в корпоративном сегменте все более-менее хорошо, то рекламным лозунгам «безопасное шифрование AES-256» в накопителях, нацеленных на домашний сегмент, безусловно верить не стоит.

Эта статья открывает новую большую тему: шифрование данных на внешних дисках и сетевых хранилищах. Откровенно наплевательские реализации защиты, дырявые схемы хранения ключей, генераторы случайных чисел, выдающие один из 255 прошитых в систему вариантов, — это самое малое из того, с чем нам довелось столкнуться во время исследования. Начнем с самой, пожалуй, популярной марки сетевых хранилищ — моделей компании Synology.

Шифрование в сетевых накопителях (NAS)

Конкуренция среди производителей сетевых хранилищ для домашних пользователей и офисов огромна. Здесь и модели Western Digital, привлекающие нулевой или отрицательной ценой (NAS со встроенным диском стоит дешевле такого же диска отдельно), и признанные гранды QNAP и Synology, которые берут мощной программной частью и длительной поддержкой, и выступающие с переменным успехом Asustor и Drobo, и даже экзотические для нас Terra Master и Thecus. В большинстве моделей этих производителей предусмотрено шифрование, позволяющее защитить пользовательские данные.

Шифрование в Synology

Все без исключения сетевые накопители Synology используют один и тот же алгоритм шифрования AES с длиной ключа 256 бит. Выбор этого алгоритма шифрования вполне логичен: большинство современных наборов микросхем поддерживает аппаратное ускорение AES или хотя бы набор инструкций, использующихся именно в этом алгоритме. Тем не менее реальная безопасность зашифрованных таким образом данных разительно отличается в зависимости от реализации.

Практически во всех NAS, в которых вообще есть возможность зашифровать данные, используется либо защита всего накопителя целиком (аппаратное шифрование SED — Self-Encrypting Disk — на уровне контроллера SATA), либо шифрование тома, расположенного как на одном диске, так и на массиве RAID. В части моделей (например, QNAP) можно активировать оба способа — и это позволяет избежать некоторых очевидных атак.

В моделях Synology, предназначенных для серверных стоек, также можно активировать аппаратное шифрование SED. Однако большинство домашних и офисных моделей такой возможности лишены. Вместо этого Synology предлагает использовать шифрование файлов на уровне отдельных сетевых папок.

Шифрование реализовано средствами стандартной для Linux файловой системы eCryptFS, о которой можно почитать, например, здесь или здесь. В сравнении с методами шифрования, основанными на защите целых томов, у такого пофайлового шифрования есть и достоинства, и недостатки.

В достоинства мы запишем следующее:

  1. Поскольку шифруются отдельные сетевые папки, не имеет абсолютно никакого значения, на каком из внутренних физических или логических накопителей они расположены.
  2. Каждый пользователь может зашифровать свою папку своим собственным паролем. Таким образом обеспечивается защита между отдельными пользователями.
  3. Стандартная реализация шифрования позволяет просто скопировать зашифрованную папку, к примеру на другой накопитель, — и данные останутся надежно зашифрованными. При этом смонтировать и расшифровать такую папку легко получится стандартными же средствами на любом компьютере с Linux.
  4. Шифруются как сами данные, так и имена папок и файлов.

Если у пофайлового шифрования столько достоинств, почему все остальные производители предпочитают шифровать целые тома? К сожалению, недостатки eCryptFS способны серьезно ограничить шифрование или даже сделать его невозможным.

Основное и самое неприятное ограничение eCryptFS — на длину имен файлов. В имени файла в зашифрованной папке не может быть больше 143 символов ANSI или 47 символов иероглифической записи.


Следующее ограничение напрямую касается безопасности зашифрованных данных, и оно более чем серьезно. В рамках реализации eCryptFS разработчики Synology не предусмотрели такой простой вещи, как разделение ключей шифрования данных MEK (Media Encryption Key) и ключей шифрования ключа KEK (Key Encryption Key). В результате тот пароль, который пользователь задает при создании зашифрованной папки, и служит тем самым ключом шифрования данных — MEK. Не говоря даже о том, что энтропия заданного домашним пользователем или офисным работником пароля, как правило, существенно меньше 256 бит, что позволяет создать очень быструю и эффективную атаку.

Продолжение доступно только участникам

Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score! Подробнее

Олег Афонин: Эксперт по мобильной криминалистике компании «Элкомсофт»