Хакер - Шифруйся! Изучаем новый механизм шифрования Synology
hacker_freiОлег Афонин
Содержание статьи
- Шифрование в Synology: как было
- Шифрование дисков: новое в DSM 7.2
- Совместное использование шифрования тома и сетевых папок
- Шифрование тома: как это выглядит
- Шифрование тома в Synology и QNAP
- Сравнение шифрования тома и шифрования сетевых папок
- Выводы
В новой версии операционной системы DSM 7.2 для сетевых хранилищ Synology появилась долгожданная возможность шифрования томов. Насколько она удобна, надежна и отвечает требованиям безопасности? Давай разбираться!
В недавно вышедшем обновлении DSM 7.2 разработчики Synology добавили зашифрованные тома в дополнение к существующему методу шифрования сетевых папок. Новый для Synology способ шифрования более универсален и работает быстрее использовавшегося ранее, но не обошлось и без ложки дегтя, которая делает такой способ защиты данных практически бесполезным.
Несколько лет назад я писал об особенностях защиты данных в сетевых хранилищах разных производителей. В NAS от Synology применялось шифрование сетевых папок с использованием стандартной для Linux криптографической файловой системы eCryptFS. Кроме того, что с таким подходом связано множество ограничений и неудобств, управление ключами шифрования было реализовано прямолинейно и небезопасно. Если пользователь включал автоматическое монтирование сетевых папок, то ключи шифрования, сохраненные на самом устройстве либо на внешнем USB-накопителе, защищались фиксированным известным паролем, что делало защиту неэффективной.
В новой версии операционной системы Synology DSM 7.2 появилось долгожданное шифрование на уровне тома. По утверждениям разработчиков, новый способ защиты данных работает быстрее механизма шифрования сетевых папок и при этом избавился от присущих пофайловому шифрованию ограничений. В то же время механизм управления ключами снова реализован так, что на большинстве устройств реальная защищенность данных оказывается далека от желаемой.
Развитие событий
Пока мы готовили статью к публикации, произошел ряд интересных вещей.
В течение восьми часов после выхода DSM 7.2 защиту, обеспечиваемую шифрованием тома с обязательным хранением ключей на том же диске, удалось обойти. Для этого достаточно смонтировать в Linux системный раздел DSM (он хранится в незашифрованном и неподписанном виде в зеркальном RAID на всех установленных в NAS дисках) и отредактировать несколько текстовых файлов. Подробности — в треде на Reddit.
В скобках заметим, что и внешний KMIP-сервер от этой атаки не спасет, если в процессе загрузки NAS этот сервер окажется доступен, а автоматическое монтирование тома — включено.
Между написанием и публикацией этой статьи разработчики Synology успели выпустить два обновления DSM 7.2, в последнем из которых проблема со сторонними KMIP-серверами была исправлена. Подробно о работе KMIP в Synology рассказано в публикации на Reddit, а скачать работоспособный опенсорсный KMIP-сервер можно из репозитория на GitHub.
ШИФРОВАНИЕ В SYNOLOGY: КАК БЫЛО
Если ты хочешь в деталях ознакомиться с методом шифрования сетевых папок, механизмом управления ключами в Synology DSM и узнать о выявленной в нем уязвимости, порекомендую статью «Дырявые диски. Эксплуатируем уязвимости в сетевых хранилищах Synology». Добавлю только, что с тех пор никаких изменений в механизме хранения ключей не произошло и пользователи, которые включили автоматическую разблокировку сетевых папок, до сих пор подвергают зашифрованные данные риску. Здесь же я хочу кратко описать основные достоинства и недостатки eCryptFS — криптографической файловой системы, которую выбрали разработчики Synology DSM для защиты сетевых папок.
Вот список достоинств шифрования на уровне сетевых папок:
- Поскольку шифруются отдельные сетевые папки, не имеет значения, на каком из внутренних физических или логических накопителей они расположены (а вот зашифровать таким образом USB-накопитель пользователю не удастся).
- Каждая сетевая папка может быть зашифрована уникальным паролем. Если пользователей несколько, каждый может использовать собственный пароль.
- Содержимое зашифрованной папки можно просто скопировать на другой накопитель, и данные останутся зашифрованными. Необходимости вводить (или даже знать) пароль шифрования нет, так что резервное копирование как на локальные, так и на удаленные системы можно проводить без монтирования (и расшифровки) сетевых папок.
- eCryptFS защищает как данные, так и имена файлов и папок (последнее — небесплатно).
Несмотря на все достоинства, у шифрования сетевых папок есть ряд существенных недостатков:
- Ограничение на длину имен файлов. В имени файла в зашифрованной папке не может быть больше 143 символов ANSI или 47 символов иероглифической записи. Это прямое следствие шифрования имен файлов и папок.
- Несмотря на то что имена файлов и папок шифруются, общая структура данных остается доступной внешнему наблюдателю, включая размеры и атрибуты отдельных файлов и папок.
- Заметно страдает скорость доступа к данным, особенно если речь идет о множестве мелких файлов.
- Разработчики Synology не предусмотрели разделения ключей шифрования на первичные и вторичные. Для шифрования данных используется ключ, получаемый напрямую из пароля, который вводит пользователь. Как следствие — невозможно отозвать скомпрометированный пароль или изменить пароль шифрования (расшифровку всего массива данных с его последующим шифрованием другим паролем мы не рассматриваем как максимально неэффективный способ потратить время).
- Наконец, механизм управления ключами шифрования Synology, хоть и не является частью eCryptFS, позволяет расшифровать содержимое устройства, если пользователь включит функцию автоматического монтирования зашифрованных папок.
Обрати пристальное внимание на пункт 5: данные зашифрованных сетевых папок уязвимы, если пользователь активирует необязательную функцию автоматического монтирования. Если же он не станет этого делать, а то и вовсе решит не сохранять пароль шифрования ни на самом устройстве, ни на внешнем USB-накопителе, то для расшифровки защищенных сетевых папок потребуется атака перебором паролей, что совершенно не гарантирует результата, если был выбран длинный и сложный пароль. Это очень важный момент: механизм управления ключами в новом способе шифрования Synology претерпел кардинальные изменения, но, увы, не в пользу усиления безопасности.
ШИФРОВАНИЕ ДИСКОВ: НОВОЕ В DSM 7.2
В недавно вышедшей версии DSM 7.2 появилась возможность шифрования тома — volume encryption. Используется стандартный механизм LUKS в режиме aes-xts-plain64.
Включить шифрование можно только на вновь создаваемых томах. Зашифровать данные на уже имеющемся томе нельзя.
При включении шифрования тома система предложит пользователю сохранить резервный ключ, с помощью которого том можно будет расшифровать, если что‑то случится с основной системой. Забегая вперед, скажу, что ранее выданные резервные ключи можно отозвать, сгенерировав новый ключ (в этом случае ранее выданный ключ перестанет работать).
Важный момент: по умолчанию ключ к зашифрованному тому сохраняется на том же устройстве, на котором создается сам зашифрованный том. Это позволяет системе автоматически монтировать зашифрованные тома при загрузке NAS. Не сохранять ключ, равно как и отказаться от автоматического монтирования тома при загрузке, нельзя: единственная альтернатива — использовать внешний KMIP-сервер, в роли которого на данный момент может выступать только другой NAS от Synology (как это работает, можно узнать в документации производителя).
Запишем в блокнотик: в бета‑версиях DSM 7.2 была возможность использовать KMIP-серверы сторонней разработки (кстати, сами разработчики Synology как раз и используют один из вариантов с открытым исходным кодом). В релизе DSM 7.2 эту возможность убрали, на мой взгляд — совершенно напрасно с точки зрения безопасности данных, но очень правильно с точки зрения маркетинга (возможность продать дополнительное устройство Synology из свежей линейки — только такие поддерживают нужные для организации KMIP-сервера функции).
Таким образом, получаем два возможных варианта хранения ключей — и оба небезопасны:
- Ключ к зашифрованному тому хранится на локальном устройстве. В этом случае мы имеем дело с классическим security through obscurity: в документации Synology нет информации о том, где именно хранится ключ шифрования, и это — единственное, что может не остановить, но замедлить злоумышленника, получившего физический доступ к устройству.
- Ключ хранится на другом устройстве Synology: в этом случае злоумышленнику придется получить физический доступ уже к двум устройствам и повозиться с расшифровкой ключа шифрования, который хранится на втором девайсе. И если второе устройство Synology, выполняющее роль KMIP-сервера, находится в той же или соседней комнате, что и устройство с зашифрованным томом, то полагаться на него для защиты пляжных фото в купальнике, наверное, можно, а вот без такового, пожалуй, не стоит. И хотя безопасность KMIP — тема отдельная и довольно обширная, физическая недоступность KMIP-сервера для злоумышленника — один из ключевых моментов в обеспечении безопасного хранения ключей. В скобках отметим: KMIP-сервер может хранить ключи как на обычных, так и на зашифрованных томах.
СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ ШИФРОВАНИЯ ТОМА И СЕТЕВЫХ ПАПОК
Мне было интересно узнать, получится ли создать зашифрованную сетевую папку на зашифрованном томе. Оказалось, что никаких препятствий к этому нет: шифрование тома полностью прозрачно; на зашифрованных томах можно создавать и использовать как зашифрованные, так и незашифрованные сетевые папки. Можно как реплицировать на зашифрованные тома снимки (снапшоты) зашифрованных на другом NAS сетевых папок, так и проделывать то же самое в обратную сторону. Короче говоря, шифрование тома целиком и полностью прозрачно.
Таким образом, в DSM 7.2 доступны следующие варианты защиты данных:
- Только шифрование тома.
- Только шифрование сетевых папок.
- Зашифрованные сетевые папки на зашифрованном томе.
Разумеется, при использовании в качестве второго слоя защиты шифрования сетевых папок мы получим все те ограничения, которые были описаны в начале статьи. Кроме того, вероятно, общая скорость доступа к дважды зашифрованным данным еще немного упадет (замеры производительности каждого варианта шифрования — тема для отдельной статьи).
ШИФРОВАНИЕ ТОМА: КАК ЭТО ВЫГЛЯДИТ
Пройдемся по процессу создания зашифрованного тома и соответствующим настройкам.
Первые шаги при создании зашифрованного тома не отличаются от привычных для Synology DSM. Настройки шифрования появляются на втором шаге.
При включении шифрования тебе нужно выбрать пароль хранилища (vault password), который по умолчанию будет сохранен на локальном устройстве.
На следующем шаге система предложит сохранить ключ восстановления (recovery key).
Наконец, система предупредит о последствиях, которые наступят, если ты потеряешь и ключ восстановления, и доступ к хранилищу.
Обрати внимание: чтобы использовать шифрование тома, тебе придется включить хранилище ключей шифрования (тот пароль, который ты вводил на первом шаге, используется для защиты хранилища ключей).
Если ты забудешь пароль к хранилищу — ничего страшного, его можно сбросить в любой момент. Знать оригинальный пароль не нужно; все, что тебе потребуется, — указать пароль пользователя DSM с администраторским доступом.
Отключить хранилище ты не сможешь.
По крайней мере до тех пор, пока не настроишь удаленное хранение ключей на KMIP-сервере.
В роли KMIP-сервера может выступать только другой NAS от Synology, причем только такой, который поддерживает шифрование тома (а это — модели от 2020-го модельного года). Хранилище ключей шифрования можно создать как на обычном, так и на зашифрованном томе.
Если ты утратишь доступ к хранилищу, можно расшифровать том при помощи ранее созданного ключа восстановления доступа. Если ключ восстановления доступа будет утрачен или скомпрометирован, ты сможешь сгенерировать новый (ранее созданный ключ при этом будет отозван).
Кстати, каждое устройство Synology (из тех, что поддерживают шифрование тома) может использоваться и в качестве KMIP-сервера, и в качестве клиента.
Единственное ограничение: ты не можешь использовать пару устройств для взаимного хранения ключей (если устройство А выступает в роли KMIP-сервера для устройства Б, то устройство Б не может быть KMIP-сервером для устройства А).
INFO
Один из пользователей разработал решение с открытым исходным кодом для Raspberry Pi или другого компьютера под управлением Linux на основе PyKMIP. Проект KMIP Server for Synology DSM позволяет хранить ключи шифрования на внешнем устройстве, где они могут быть защищены любым удобным способом, например сохранены на зашифрованном томе LUKS, который не будет автоматически монтироваться при загрузке сервера. К сожалению, в релизе DSM 7.2 этот способ работать перестал: возможность использования сторонних KMIP-серверов разработчики DSM отключили.
ШИФРОВАНИЕ ТОМА В SYNOLOGY И QNAP
В сетевых хранилищах QNAP поддерживаются все возможные виды шифрования — от SED до шифрования тома и сетевых папок включительно. Об этом мы писали в статье «Слои защиты. Три уровня шифрования в сетевых хранилищах QNAP». Я не буду подробно сравнивать особенности реализации шифрования и хранения ключей в устройствах разных производителей; отмечу лишь, что такие операции, как монтирование, размонтирование и смена ключей зашифрованных томов, занимают на устройствах QNAP несколько минут, а на устройствах Synology — считаные секунды.
СРАВНЕНИЕ ШИФРОВАНИЯ ТОМА И ШИФРОВАНИЯ СЕТЕВЫХ ПАПОК
Если сравнить шифрование тома и сетевых папок, то можно сделать следующие выводы.
Шифрование тома обеспечивает защиту всего хранящегося на томе содержимого, включая все сетевые папки (в том числе домашние папки пользователей), метаданные файловой системы, виртуальные машины, приложения и контейнеры. Шифрование сетевых папок защищает только содержимое файлов и имена файлов и папок; структура файловой системы и метаданные при этом свободно доступны.
Оба метода позволяют сменить пароль для доступа к хранилищу ключей, но только шифрование тома дает возможность сменить скомпрометированный ключ восстановления и отозвать ранее выданные ключи. Шифрование сетевых папок требует расшифровки и повторного шифрования всех данных для смены скомпрометированного ключа.
Шифрование тома имеет стандартное для Linux ограничение на длину имени файлов и папок в 255 символов, в то время как шифрование сетевых папок имеет ограничение в 143 символа.
Шифрование тома обеспечивает прирост производительности на 48% по сравнению с шифрованием папок (по официальным данным Synology). Шифрование сетевых папок может вызывать заметное падение быстродействия, особенно при работе с небольшими файлами.
Способы хранения ключей и управления ими сильно различаются. Шифрование тома предусматривает локальное хранение ключей (они защищаются паролем хранилища, который также обязательно сохраняется на локальном диске) либо возможность хранения на сервере KMIP (в роли которого может выступать только другое устройство Synology последних лет выпуска). Шифрование сетевых папок использует локальное или USB-хранилище с защитой паролем, который может сохраняться локально на устройстве или не сохраняться вовсе.
Оба метода поддерживают автоматическое монтирование при загрузке, но оно обязательно для шифрования тома и опционально для шифрования сетевых папок.
В следующей таблице я собрал основные особенности обоих методов шифрования.
ВЫВОДЫ
Что лучше — шифрование тома или сетевых папок? Выбор между этими двумя вариантами зависит от конкретных потребностей и требований безопасности. Шифрование тома предлагает более широкий спектр защиты, высокую производительность и гибкость в управлении ключами, в то время как шифрование сетевых папок более удобно в использовании и не требует обязательного сохранения пароля, а также автоматического монтирования зашифрованных данных при загрузке устройства. Поскольку в DSM 7.2 поддерживается одновременное шифрование как тома, так и сетевых папок, ты можешь зашифровать том (это быстро и удобно) и использовать дополнительное шифрование только для тех сетевых папок, для которых это действительно нужно.
Читайте ещё больше платных статей бесплатно: https://t.me/hacker_frei