Что такое защита файловой системы
Откуда исходит опасность?
Прежде, чем предпринимать какие-либо меры по защите системы и файлов, нужно понять, от каких именно угроз вы собираетесь строить защиту. Защита от зловредного программного обеспечения и вымогателей-шифровальщиков работает не так, как защита файлов в случае кражи компьютера, которая, в свою очередь, недостаточна для защиты действительно важных данных. Однако некоторые меры безопасности необходимо предпринять в любом случае, и речь сейчас совершенно не об установке широко разрекламированного антивируса или не менее разрекламированного сервиса VPN.
Шифрование диска: защита системного раздела BitLocker
Шифрование загрузочного раздела – та самая «неуязвимая защита», которая, по утверждению многих компаний, «надёжно защитит ваши данные от хакеров».
На самом же деле шифрование само по себе не способно защитить ваши данные ни от вирусов, ни от хакеров – по крайней мере, если вы хотя бы время от времени обращаетесь к зашифрованным данным.
И тем не менее, зашифровать загрузочный раздел встроенной в Windows утилитой BitLocker совершенно необходимо; просто защита эта – вовсе не от хакеров и не от вирусов-шифровальщиков. От чего же защитит шифрование диска?
- Доступность : Windows 10 Professional и выше; требуется наличие модуля TPM0, подсистемы Intel PTT или, если нет ни одного из них, редактирование групповых политик Windows. Шифрование device encryption доступно во всех редакциях Windows, работающих на многих субноутбуках и планшетах (к примеру, Microsoft Surface).
- Обратите внимание : Windows 10 Home не может создавать зашифрованные разделы или шифровать диски. В то же время в ней можно монтировать уже зашифрованные диски без каких-либо ограничений.
- Защита от физического доступа к диску, извлечённому из компьютера : максимальная
- Защита от физического доступа к самому компьютеру : зависит от ряда условий
- Другие локальные пользователи компьютера : отсутствует
- Зловредное ПО, вирусы-шифровальщики : отсутствует
- Дистанционный взлом : отсутствует
- Сценарии использования : защита данных в случае кражи жёсткого диска или всего устройства; мгновенное уничтожение доступа к данным при продаже жёсткого диска или его отправке в мастерскую для гарантийного ремонта.
Шифрование – это сложно? Долго? Замедляет доступ к данным? Ответ во всех случаях отрицательный. Чтобы включить шифрование BitLocker, достаточно иметь компьютер с Windows 10 Professional или Enterprise, который будет оборудован или модулем TPM2.0 (они встречаются нечасто), или программным эмулятором Intel Platform Trust Technology (его нужно будет включить в BIOS). Далее откройте Панель управления и запустите апплет BitLocker Drive Encryption.
Детальное исследование BitLocker выходит далеко за рамки этой статьи, поэтому заинтересовавшихся читателей приглашу ознакомиться с нашей статьёй Introduction to BitLocker: Protecting Your System Disk . В этой статье, в частности, рассказывается о том, как включить BitLocker, если нет ни TPM2.0, ни Intel PTT.
Если вы – пользователь ультралёгкого ноутбука, то ваш системный раздел может быть уже зашифрован, даже если на нём установлена Windows 10 Home. Шифрование BitLocker Device Encryption применяется автоматически, если ваша административная учётная запись привязана к учётной записи Microsoft Account (а не создана в качестве локальной).
От чего защитит шифрование системного раздела? В первую очередь – от физического копирования данных при извлечении диска любой природы (HDD, SSD, NVME) из компьютера. Обратите внимание: если диск извлекли из компьютера, то расшифровать защищённый раздел злоумышленнику не удастся, даже если ему известен ваш пароль. Для расшифровки потребуется длинный двоичный ключ BitLocker Recovery Key (который, кстати, может сохраняться в учётной записи Microsoft Account; если злоумышленнику станет известен пароль от неё, то и извлечение этого ключа не составит проблемы).
Во вторую – от несанкционированного доступа к данным, если украден весь компьютер или ноутбук целиком. Стойкость защиты в этом случае зависит от таких факторов, как возможность угадать ваш пароль или извлечь из компьютера образ оперативной памяти. Так, BitLocker уязвим перед следующими векторами атак:
- Снятие образа оперативной памяти и поиск ключей шифрования, в том числе через порты Thunderbolt или посредством атаки cold boot attack .
- Перебор или извлечение пароля от вашей учётной записи Windows (извлечь пароль можно, к примеру, из облака Google account, если вы сохранили в нём пароль от учётной записи Microsoft и использовали её для входа в компьютер).
- Obtaining your BitLocker Recovery Key from your Microsoft Account or Active Directory.
А вот от каких-либо дистанционных или вирусных атак BitLocker не защитит: если вы сумели войти в систему, значит, содержимое зашифрованного раздела уже доступно для чтения и записи. Точно так же BitLocker не защитит и от других пользователей, которым вы разрешили доступ к компьютеру.
Ещё о шифровании: защита внешних накопителей
BitLocker – прекрасное решение для защиты системного раздела, но его роль этим не ограничивается. Если ваша редакция Windows поддерживает BitLocker, то вы сможете использовать его для шифрования других встроенных дисков, а также внешних накопителей USB (флешки, внешние жёсткие диски и т.п.)
Для шифрования внешних устройств предусмотрен режим BitLocker To Go . В отличие от защиты системного раздела, шифрование BitLocker To Go основано на пароле. Вы можете использовать любой пароль (желательно, чтобы он не совпадал ни с одним из используемых вами паролей, особенно – с паролем от учётной записи Windows). Для удобства вы сможете сделать так, что зашифрованные внешние накопители будут монтироваться на вашем компьютере автоматически (без запроса пароля). С одной стороны, это несколько снижает безопасность, когда у злоумышленника есть доступ не только к зашифрованному накопителю, но и к вашему компьютеру. С другой – если речь о зашифрованной флешке, которую вы потеряли в поездке, то данным ничего не угрожает (если пароль стойкий и неизвестен злоумышленнику).
- Доступность :
- Создание зашифрованного накопителя : Windows 10 Professional и выше
- Доступ к уже зашифрованным накопителям : любые редакции Windows 10 без каких-либо ограничений
- Защита от физического доступа к устройству, извлечённому из компьютера : зависит от стойкости выбранного пароля
- Защита от физического доступа к самому компьютеру : аналогично предыдущему разделу
- Другие локальные пользователи компьютера : зависит от того, было ли смонтировано устройство
- Зловредное ПО, вирусы-шифровальщики : зависит от того, было ли смонтировано устройство (отсутствует, если устройство подключено и смонтировано)
- Дистанционный взлом : зависит от того, было ли смонтировано устройство (отсутствует, если устройство подключено и смонтировано)
- Сценарии использования : защита данных на внешних накопителях в случае кражи или потери; мгновенное уничтожение доступа к данным при продаже устройства или отправке в ремонт.
В отличие от защиты системного раздела, BitLocker To Go does не поддерживает многофакторную аутентификацию (TPM+PIN и подобные схемы). Соответственно, модуль TPM не может быть использован для дополнительной защиты.
Шифрование сторонними утилитами
Если ваша редакция Windows не поддерживает BitLocker, вы можете воспользоваться одной из альтернативных утилит. В частности, высочайший уровень защиты обеспечивает бесплатная утилита с открытым исходным кодом VeraCrypt.
- Доступность : все версии Windows 10 (а также более старые ОС)
- Защита от физического доступа к устройству, извлечённому из компьютера : высокая; зависит от стойкости выбранного пароля
- Защита от физического доступа к самому компьютеру : так же или выше, чем у BitLocker (зависит от настроек)
- Другие локальные пользователи компьютера : зависит от того, было ли смонтировано устройство
- Зловредное ПО, вирусы-шифровальщики : зависит от того, было ли смонтировано устройство (отсутствует, если устройство подключено и смонтировано)
- Дистанционный взлом : зависит от того, было ли смонтировано устройство (отсутствует, если устройство подключено и смонтировано)
- Сценарии использования : защита данных в случае извлечения накопителя; мгновенное уничтожение доступа к данным при продаже накопителя или отправке в ремонт.
Правильно настроить VeraCrypt сложнее, чем BitLocker, а обсуждение этих настроек выходит далеко за рамки данной статьи. Я подробно описал особенности защиты VeraCrypt в статье
Как укрепить «Веру». Делаем шифрованные контейнеры VeraCrypt неприступными, опубликованной в журнале «Хакер».
Шифрование средствами файловой системы (EFS)
Согласно Википедии , Encrypting File System (EFS) — система шифрования на уровне файлов, предоставляющая возможность «прозрачного шифрования» данных, хранящихся на разделах с файловой системой NTFS, для защиты потенциально конфиденциальных данных от несанкционированного доступа при физическом доступе к компьютеру и дискам.
Описание сколь точное, столь и бесполезное, не объясняющее того, для кого, а главное – в каких ситуациях предназначена EFS, а также от каких именно угроз она способна уберечь.
- Доступность : все версии Windows 10 (а также более старые ОС), за исключением редакции Home
- Защита от физического доступа к устройству, извлечённому из компьютера : высокая; зависит от стойкости пароля к учётной записи Windows
- Защита от физического доступа к самому компьютеру : аналогично предыдущему
- Другие локальные пользователи компьютера : эффективная защита
- Зловредное ПО, вирусы-шифровальщики : данные других пользователей компьютера защищены от извлечения, но не от уничтожения или шифрования; данные текущего пользователя не защищены
- Дистанционный взлом : аналогично предыдущему
- Сценарии использования : защита данных в случае, когда компьютером пользуется несколько человек; защита от кражи информации, если взломана одна из других учётных записей на том же физическом компьютере; эффективный дополнительный уровень защиты от физического доступа, если используется шифрование системного раздела BitLocker.
Как видно из приведённой выше таблицы, шифрование файлов средствами EFS максимально эффективно для защиты файлов и документов между разными пользователями одного и того же компьютера. Даже если у одного из пользователей компьютера есть административные привилегии, он не сможет прочитать зашифрованные данные, даже если сбросит пароль другого пользователя. Впрочем, удалить или зашифровать защищённые EFS файлы ему удастся.
В чём разница между EFS и BitLocker, и какую из этих технологий имеет смысл использовать?
BitLocker защищает целый раздел. Если вашим компьютером пользуется (имеет учётные записи) несколько человек, каждый из них сможет получить доступ к данным. Если один из пользователей имеет административные привилегии, он сможет прочитать любые файлы любого другого пользователя.
EFS защитит только те папки и файлы, для которых пользователь указал соответствующий атрибут. В то же время прочитать зашифрованные файлы сможет только сам пользователь (или тот, кому известен его пароль); другие пользователи, даже администраторы, прочитать зашифрованные файлы не смогут.
В случае кражи устройства или извлечения диска первой линией обороны становится BitLocker. Если злоумышленнику удастся преодолеть этот рубеж, ему придётся взламывать ещё и шифрование EFS. В то же время рассчитывать исключительно на EFS (без BitLocker) в качестве защиты от физического доступа не стоит: BitLocker предлагает защиту длинным и стойким аппаратным ключом (конфигурация TPM/Intel PTT), в то время как файлы, зашифрованные EFS, защищены лишь паролем от учётной записи.
Как включить шифрование EFS? Проще простого. Выберите файл или папку, которую хотите защитить, и кликните по ней правой кнопкой мыши. В меню выберите Properties , затем Advanced во вкладке General . В Advanced Attributes выберите опцию Encrypt contents to secure data и кликните OK .
На том – всё: Windows зашифрует файлы в фоновом режиме.
У использования EFS есть один недостаток. Если вы забудете пароль от учётной записи или вам придётся его сбросить, вы потеряете доступ к зашифрованным файлам. Для восстановления доступа рекомендуем воспользоваться утилитой Elcomsoft Advanced EFS Data Recovery , для работы которой вам потребуется указать тот пароль от учётной записи, который использовался до сброса.
Обратите внимание: менять пароль от учётной записи штатным образом (через соответствующий диалог в Windows) вы можете без ограничений; система автоматически и моментально перешифрует все необходимые ключи.
Защита важных документов
Итак, два слоя защиты мы уже рассмотрели: это шифрование загрузочного раздела посредством BitLocker и шифрование папок с файлами или отдельных файлов средствами EFS. Эти уровни отлично защитят от ряда угроз, но совершенно не справятся с другими. И BitLocker, и EFS оказываются бессильными, если на ваш компьютер производится дистанционная атака, устанавливается зловредное программное обеспечение или троян-шифровальщик. Это нормально: описанные выше технологии и не предназначены для защиты от такого рода угроз.
Защититься от кражи конфиденциальной информации как на вашем компьютере, так и в момент пересылки поможет шифрование самих документов средствами Microsoft Office.
- Доступность : все версии Microsoft Office
- Степень защиты : сильная зависимость как от пароля, так и от версии Microsoft Office и формата файла, в котором сохранён документ. Максимальная степень защиты с современными (Office 2013 и более новыми) версиями Office при использовании форматов .DOCX, .XLSX и т.д. (в отличие от старых форматов .DOC, .XLS, степень защиты которых низкая).
- Защита от физического доступа к устройству, извлечённому из компьютера : аналогично предыдущему
- Защита от физического доступа к самому компьютеру : аналогично предыдущему
- Другие локальные пользователи компьютера : аналогично предыдущему
- Зловредное ПО, вирусы-шифровальщики : содержимое документов защищено от несанкционированного доступа, но не от уничтожения или шифрования
- Дистанционный взлом : аналогично предыдущему
- Сценарии использования : защита важных данных, которые хранятся в таблицах и документах Microsoft Office; защита данных не только на компьютере пользователя, но и во время пересылки.
- Как включить шифрование : Защита документов паролем
Что выбрать между шифрованием EFS и защитой документов паролем? Эти виды защиты покрывают разные сценарии использования. EFS – совершенно прозрачная защита всей папки с документами. Стоит вам войти в систему, и вы сможете пользоваться любыми защищёнными документами без ввода дополнительных паролей. Стоит злоумышленнику узнать пароль от вашей учётной записи Windows, и он сможет получить доступ ко всем защищённым EFS файлам.
В то же время шифрование средствами Microsoft Office потребует от вас сознательных усилий. Вам придётся вводить пароль каждый раз при открытии документа. Однако защищённые таким образом документы злоумышленнику потребуется взламывать по одному, а степень защиты у Microsoft Office может быть очень высокой.
Особенности шифрования документов
Шифрование документов в Microsoft Office имеет ряд особенностей, полное описание которых выходит за рамки данной статьи. Однако коротко перечислить все пункты необходимо во избежание ошибок.
Защита архивов и резервных копий
О том, что резервные копии делать необходимо, говорят все. О том, что их необходимо защищать, обычно не говорят совсем. Подумайте о том, что резервная копия содержит все те файлы и всю ту информацию, которую вы хотели бы защитить на компьютере, но готовы сохранить в виде обычного, незашифрованного файла.
При создании резервных копий используйте следующие рекомендации.
- Сохраняйте резервные копии на устройствах (встроенных или внешних накопителях), защищённых BitLocker. Напомню, что никаких дополнительных неудобств это не несёт: вы можете настроить защиту BitLocker таким образом, чтобы Windows автоматически монтировала накопитель, если вы вошли в систему. Использование BitLocker защитит ваши резервные копии даже если программа резервного копирования не поддерживает шифрования. Обратите внимание : если вам придётся восстанавливать систему из образа резервной копии, Windows 10 корректно смонтирует защищённый BitLocker накопитель. Для монтирования внешних устройств (BitLocker To Go) вам потребуется только пароль, а для доступа к встроенным дискам – длинный двоичный BitLocker Recovery Key (обычно Windows предлагает сохранить его в учётной записи Windows Account при создании зашифрованного тома).
- Если вы используете для создания резервных копий программу, которая поддерживает шифрование – задайте пароль и используйте шифрование. Обратите внимание: утилита, вероятно, сохранит ваш пароль в системе (чтобы не запрашивать пароль каждый раз при создании резервной копии). Не используйте этот пароль повторно для защиты других типов данных.
Одним из распространённых инструментов частичного резервного копирования являются привычные всем утилиты-архиваторы: WinZip, 7Zip, WinRar и подобные. Все эти утилиты предлагают возможность шифрования содержимого резервных копий паролем. Стойкость шифрования у разных утилит различается, но общий уровень защиты достаточно высок. Использование стойкого, уникального пароля, составленного как минимум из 8 символов (желательно использовать буквы, цифры и специальные символы и не использовать слова из словаря) защитит архив в достаточной мере. Если же вы разместите архивы на накопителе, зашифрованном посредством BitLocker, то данные будут надёжно защищены.
Обратите внимание : стойкость шифрования архивов ZIP/7Z/RAR существенно ниже, чем стойкость BitLocker или документов Office 2013 (и более новых). Не используйте один и тот же пароль для шифрования архивов и других типов данных.
Наибольшее внимание в проблеме защиты операционной системы необходимо уделять защите файловой системы [87, 88]. Все пользователи ОС UNIX явно или неявно работают с файлами.
Файловая система ОС UNIX имеет древовидную структуру. Промежуточными узлами дерева являются каталоги со ссылками на другие каталоги или файлы, а листья дерева соответствуют файлам или пустым каталогам.
По отношению к конкретному файлу все пользователи делятся на три категории:
О владелец файла;
О члены группы владельца;
О прочие пользователи.
Для каждой из этих категорий режим доступа определяет права на операции с файлом, а именно:
О право на чтение;
О право на запись;
О право на выполнение (для каталогов - право на поиск).
В итоге девяти (3x3) битов защиты оказывается достаточно, чтобы специфицировать АС L каждого файла. Аналогичным образом защищены и другие объекты ОС UNIX, например семафоры, сегменты разделяемой памяти и т.п.
Каждый файл в системе UNIX имеет уникальный индекс. Индекс - это управляющий блок. В литературе он также называется индексным дескриптором, i-node или i-узлом. Индекс содержит информацию, необходимую любому процессу для того, чтобы обратиться к файлу, например права собственности на файл, права доступа к файлу, размер файла и расположение данных файла в файловой системе.
Процессы обращаются к файлам, используя четко определенный набор системных вызовов и идентифицируя файл строкой символов, выступающих в качестве составного имени файла. Каждое составное имя однозначно определяет файл, благодаря чему ядро системы преобразует это имя в индекс файла.
Индексы существуют на диске в статической форме, и ядро считывает их в память, прежде чем начать с ними работать. Индексы содержат следующие поля:
- 1. Идентификатор владельца файла и идентификатор группы.
- 2. Тип файла. Файл может быть файлом обычного типа, каталогом, специальным файлом (соответствующим устройствам ввода-вывода символами или блоками, а также абстрактным файлам канала, организующим обслуживание запросов в порядке поступления «первым пришел - первым вышел»).
- 3. Права доступа к файлу. Права доступа к файлу разделены между индивидуальным владельцем, группой пользователей, в которую входит владелец файла, и всеми остальными. Суперпользователь (пользователь с именем root) имеет право доступа ко всем файлам в системе. Каждому классу пользователей выделены определенные права на чтение, запись и выполнение файла, которые устанавливаются индивидуально. Поскольку каталоги как файлы не могут быть исполнены, разрешение на исполнение в данном случае интерпретируется как право производить поиск в каталоге по имени файла, а право записи - как право создавать и уничтожать в нем файлы.
- 4. Временные сведения, характеризующие работу с файлом: время внесения последних изменений в файл, время последнего обращения к файлу, время внесения последних изменений в индекс.
- 5. Число указателей индекса, означающее количество имен файлов, ссылающихся на данный файл.
- 6. Таблицу адресов дисковых блоков, в которых располагается информация файла. Хотя пользователи трактуют информацию в файле как логический поток байтов, ядро располагает эти данные в несмежных дисковых блоках.
- 7. Размер файла в байтах.
Обратим внимание, что в индексе отсутствует составное имя файла, необходимое для доступа к файлу. Составное имя - это строка символов, завершающаяся пустым символом и разделяемая наклонной чертой (/) на несколько компонентов. Каждый компонент, кроме последнего, должен быть именем каталога, но последний компонент может быть именем файла, не являющегося каталогом.
Каталоги (справочники) являются файлами, из которых строится иерархическая структура файловой системы. Они играют важную роль в превращении имени файла в номер индекса. Каталог - это файл, содержимым которого является набор записей, состоящих из номера индекса и имени файла, включенного в каталог.
Содержимое файла меняется только тогда, когда в файл производится запись. Содержимое индекса меняется при изменении как содержимого файла, так и владельца файла, прав доступа и т.д. Изменение содержимого файла автоматически вызывает коррекцию индекса, однако коррекция индекса еще не означает изменение содержимого файла.
При открытии файла индекс копируется в память и записывается обратно на диск, когда последний процесс, использующий этот файл, закроет его. Многие поля в копии индекса, с которой ядро работает в памяти, аналогичны полям в заголовке буфера, и управление индексами похоже на управление буферами.
Поскольку ОС UNIX изначально задумывалась как многопользовательская операционная система, в ней всегда была актуальна проблема авторизации доступа различных пользователей к файлам файловой системы.
Под авторизацией доступа понимают действия системы, которые допускают или не допускают доступ данного пользователя к данному файлу в зависимости от прав доступа пользователя и ограничений доступа, установленных для файла.
Схема авторизации доступа, примененная в ОС UNIX, настолько проста и удобна и одновременно настолько мощна, что стала фактическим стандартом многих современных операционных систем.
С каждым выполняемым процессом в ОС UNIX связываются реальный идентификатор пользователя (real user ID), действующий идентификатор пользователя (effective user ID) и сохраненный идентификатор пользователя (saved user ID). Все эти идентификаторы устанавливаются с помощью системного вызова setuid, который можно выполнять только в режиме суперпользователя.
Аналогично, с каждым процессом связываются три идентификатора группы пользователей - real group ID, effective group ID и saved group ID. Эти идентификаторы устанавливаются привилегированным системным вызовом setgid.
После того как с процессом будут связаны идентификаторы пользователя и группы, для этого процесса начинают действовать ограничения на доступ к файлам. Процесс может получить доступ к файлу или выполнить его (если файл содержит выполняемую программу) только в том случае, если хранящиеся при файле ограничения доступа позволяют это сделать. Связанные с процессом идентификаторы передаются создаваемым им процессам, распространяя на них те же ограничения. Однако в некоторых случаях процесс может изменить свои права с помощью системных вызовов setuid и setgid, а иногда система может изменить права доступа процесса автоматически.
Рассмотрим, например, следующую ситуацию. В файл /etc/passwd запрещена запись всем, кроме суперпользователя (суперпользователь может писать в любой файл). Этот файл, помимо прочего, содержит пароли пользователей, и каждому пользователю разрешается изменять свой пароль. Имеется специальная программа /bin/passwd, изменяющая пароли. Однако пользователь не может сделать это даже с помощью данной программы, поскольку запись в файл /etc/passwd запрещена.
В системе UNIX эта проблема разрешается следующим образом. При выполняемом файле может быть указано, что при его запуске должны устанавливаться идентификаторы пользователя и/или группы. Если пользователь запрашивает выполнение такой программы (с помощью системного вызова ехес), то для соответствующего процесса устанавливаются идентификатор пользователя, соответствующий идентификатору владельца выполняемого файла, и/или идентификатор группы этого владельца. В частности, при запуске программы /Ып/passwd процесс получит идентификатор суперпользователя и программа сможет произвести запись в файл /etc/passwd.
Как для идентификатора пользователя, так и для идентификатора группы реальный ID является истинным идентификатором, а действующий ID - идентификатором текущего выполнения. Если текущий идентификатор пользователя соответствует суперпользователю, то этот идентификатор и идентификатор группы могут быть переустановлены в любое значение системными вызовами setuid и setgid. Если же текущий идентификатор пользователя отличается от идентификатора суперпользователя, то выполнение системных вызовов setuid и setgid приводит к замене текущего идентификатора истинным идентификатором (пользователя или группы соответственно).
Как обычно принято в многопользовательской операционной системе, в UNIX поддерживается единообразный механизм контроля доступа к файлам и справочникам файловой системы. Любой процесс может получить доступ к некоторому файлу в том и только в том случае, если права доступа, описанные при файле, соответствуют возможностям данного процесса.
Традиционно в файловых системах ОС UNIX за доступ ко всем типам файлов (файлы, справочники и специальные файлы) отвечают 9 бит, которые хранятся в 1 -узле. Первая группа из 3 битов определяет права доступа к файлу для его владельца, вторая - для членов группы владельца, третья - для всех остальных пользователей.
Например, права доступа rwxr-xr- к файлу означают, что владелец файла имеет полный доступ, члены группы имеют возможность чтения и выполнения, все остальные имеют возможность только читать данный файл. Для справочника установка бита выполнения х означает возможность поиска (извлечения) файлов из этого справочника.
Согласно принципам построения ОС UNIX необходим еще четвертый бит, определяющий права на выполнение исполняемого файла. Четвертый бит в самом общем случае интерпретируется как возможность смены идентификатора пользователя. Его смысловая нагрузка меняется в зависимости от того, в какой группе битов доступа он установлен.
Защита файлов от несанкционированного доступа в ОС UNIX основывается на трех факторах:
- 1. С любым процессом, создающим файл (или справочник), ассоциирован некоторый уникальный в системе идентификатор пользователя (UID - User Identifier), который в дальнейшем можно трактовать как идентификатор владельца вновь созданного файла.
- 2. С каждый процессом, пытающимся получить некоторый доступ к файлу, связана пара идентификаторов - текущие идентификаторы пользователя и его группы.
- 3. Каждому файлу однозначно соответствует его описатель - г-узел.
На последнем факторе следует остановиться более подробно. Важно понимать, что имена файлов и файлы как таковые - это не одно и то же. В частности, при наличии нескольких жестких связей с одним файлом несколько имен файла реально представляют один и тот же файл и ассоциированы с одним и тем же г-узлом. Любому используемому в файловой системе /-узлу всегда однозначно соответствует один и только один файл, /-узел содержит достаточно много разнообразной информации (большая ее часть доступна пользователям через системные вызовы stat и fstat), и среди этой информации находится часть, позволяющая файловой системе оценить правомочность доступа данного процесса к данному файлу в требуемом режиме.
Общие принципы защиты одинаковы для всех существующих вариантов системы. Информация /'-узла включает UID и GID текущего владельца файла (немедленно после создания файла идентификаторы его текущего владельца устанавливаются соответствующими действующим идентификаторам процесса-создателя, но в дальнейшем они могут быть изменены системными вызовами chown и chgrp). Кроме того, в /-узле файла хранится шкала, в которой отмечено, что может делать с файлом пользователь - его владелец, что могут делать с файлом пользователи, входящие в ту же группу пользователей, что и владелец, и что могут делать с файлом остальные пользователи [86].
Такая система защиты файлов существует достаточно давно и не вызывает нареканий. Действительно, для того чтобы вручную, то есть не используя системные вызовы и команды, изменить права доступа к файлу, следует иметь доступ к области /-узлов. Для того чтобы иметь доступ к области /-узлов, следует изменить права доступа специального файла (например, /dev/root), биты доступа которого также хранятся в области /-узлов. Иными словами, если случайно или умышленно не испортить права доступа ко всем файлам системы, установленные по умолчанию (обычно правильно) при инсталляции, то можно с большой степенью вероятности гарантировать безопасность работы системы.
В разных версиях системы UNIX имеются небольшие различия в реализации защиты файлов от несанкционированного доступа. Для примера приведем представление информации, ограничивающей доступ к файлу, в і-узле файла в UNIX System V Release 4 (табл. 7.2).
Таблица 7.2. Представление информации, ограничивающей доступ к файлу, в 1-узле файла
Шкала ограничений в восьмеричном виде
Устанавливается идентификатор пользователя-владельца при выполнении файла
При п = 7, 5, 3 или 1 устанавливается идентификатор группы владельца при выполнении файла. При п = 6, 4, 2 или 0 разрешается блокирование диапазонов адресов файла
В области подкачки сохраняется образ кодового сегмента выполняемого файла после окончания его выполнения
Владельцу файла разрешено чтение файла
Владелец файла может дополнять или модифицировать файл
Владелец файла может его исполнять, если файл исполняемый, или производить в нем поиск, если это файл-каталог
Все пользователи группы владельца могут читать файл
Все пользователи группы владельца могут дополнять или модифицировать файл
Все пользователи группы владельца могут исполнять файл, если файл исполняемый, или производить в нем поиск, если это файл-каталог
Все пользователи могут читать файл
Все пользователи могут дополнять или модифицировать файл
Все пользователи могут исполнять файл, если файл исполняемый, или производить в нем поиск, если это файл-каталог
Некоторые системы UNIX (например, Solaris) предоставляют дополнительные возможности по управлению правами доступа к файлам путем использования списков управления доступом (Access Control List). Данный механизм позволяет для каждого пользователя или для отдельной группы установить индивидуальные права доступа к заданному файлу. При этом списки доступа сохраняются всеми системными средствами копирования и архивирования. Введение этого механизма вносит определенную гибкость в процедуру формирования прав доступа к файлам.
Существует распространенное заблуждение о том, что работа антивирусных сканеров заключается именно в поиске файлов по базам, чтобы определить, является ли файл хорошим или нет. На самом деле, современные антивирусные решения выходят далеко за рамки сопоставления файлов с сигнатурами: применяют общие и эвристические методы обнаружения угроз.
Фактически, лучшие антивирусные движки предоставляют многочисленные методы выявления известных и неизвестных угроз. Файловая защита продуктов компании Symantec, является именно одной из таких технологий.
Файловая защита имеет довольно продолжительную историю, почти как один из краеугольных камней нашей технологии защиты. STAR продолжает инвестировать и развивать файловую защиту антивирусных решений Symantec, чтобы в компании могли обладать повышенными наработками на широком поле интернет-угроз. Наличие зараженных файлов на машине пользователя, является основным методом сохранения существования зловреда после первоначального заражения.
Для предотвращения подобного и существует файловая защита: именно она играет важную роль в выявлении, нейтрализации и удаления угроз с компьютеров наших клиентов. Основными направлениями защиты, которые обеспечивает наша файловая технология, являются:
• Вредоносные программы и вирусы;
• Направленные атаки, включая Advanced Persistent Threats (APT), троянские программы и общие угрозы Нулевого дня;
• Атаки типа «Социальной инженерии»: FakeAV (поддельные антивирусы) и кодеки;
• Боты и ботнеты;
• Руткиты;
• Вредоносные PDF-файлы и документы Microsoft Office (Powerpoint, Excel, Word);
• Вредоносные файлы в архивах;
• Программы-шпионы и Adware;
• Кейлоггеры.
Для того, чтобы противостоять этим угрозам, четыре различных компонента формируют основу нашей файловой защиты: Антивирусное ядро, Автоматическая защита, движок ERASER, а также наши эвристические методы: Malheur и Bloodhound.
Антивирусное ядро
Уникальный сканирующий движок Symantec, развернут более чем на 350 миллионах машин. Это стабильный, высокопроизводительный движок, обеспечивающий безопасность от последних угроз. Движок часто обновляется при помощи LiveUpdate, что позволяет беспрепятственно реагировать на новейшие угрозы. Это позволяет нам актуализировать обнаружающую способность нашего продукта без требования полного обновления.
Автоматическая защита
Файловый сканер Symanteс, обнаруживает угрозы в файловой системе в режиме реального времени. Сделанная на уровне ядра, Автоматическая защита является высокопроизводительным сканирующим движком, который защищает пользователя от новейших угроз, при этом не мешая ему. При записывании файлов на жесткий диск, срабатывает Автоматическая защита и ее компоненты: антивирус и движки Malheur и Bloodhound. Работая на низком уровне, Автоматическая защита позволяет заблокировать инфицированный файл до его запуска- прежде, чем он сможет заразить систему. Помимо защиты файлов, Автоматическая защита обеспечивает ключевую функциональность Download Insight - части нашей передовой технологии анализа репутации файлов.
Движок ERASER
Движок ERASER компании Symantec обеспечивает возможность ремонта и устранения угроз, найденных в системе пользователя. ERASER также отвечает за проверку драйверов и приложений при загрузке, чтобы исключить их зловредность. Чтобы убедиться в том, что наш продукт не «обманывается» руткитами или другим вредоносным ПО, ERASER имеет функционал прямого доступа к реестру и диску.
Malheur и Bloodhound
В дополнение к сигнатурному методу обнаружения, мы снабжаем продукт технологиями, которые могут «осудить» файл еще до того, как он был впервые обнаружен, если он обладает характеристиками зловреда. Защита на базе эвристики реализована в наших технологиях Malheur и Bloodhound. Эвристические сигнатуры способны определить неизвестные вредоносные программы на основе атрибута файла, при попытке использовать системные уязвимости, а также на основе общих действий, свойственных зловредным программам.
Подробнее о файловой защите
Каждый из последующих разделов подробно описывает технологии файловой защиты, присущие компонентам, описанным выше.
Широкая поддержка файлов
Сжатые файлы и файлы, находящиеся внутри других- один из примеров среди множества файловых типов, которые могут быть проанализированы на наличие скрытого вредоносного ПО. Неполный перечень доступных для анализа файлов включает в себя:
DOC, .DOT, .PPT, .PPS, .XLA, .XLS, .XLT, .WIZ, .SDW, .VOR, .VSS, .VST, .AC_, .ADP, .APR, .DB, .MSC, .MSI, .MTW, .OPT, .PUB, .SOU, .SPO, .VSD, .WPS, .MSG ZIP, .DOCX, .DOCM, .DOTX, .DOTM, .PPTX, .PPTM, .PPSX, .PPSM, .XLSX, .XLSB, .XLSM, .XLTX, .XLTM, .XLAM, .XPS, .POTX, .POTM, .ODT, .OTT, .STW, .SXW, .eml, .MME, .B64, .MPA, ,AMG, .ARJ, .CAB, .XSN, .GZ, .LHA, .SHS, .RAR, .RFT, .TAR, .DAT, .ACE, .PDF, .TXT, .HQX. .MBOZ, .UUE, .MB3, .AS, .BZ2, .ZIP, .ZIPX
Движок распаковки
В некоторых случаях, вредоносная программа использует «упаковщик», чтобы скрыть свои файлы и избежать попытки обнаружения технологией сопоставления файлов с базами. Наш движок распаковки имеет возможность:
- Распаковывать исполняемые файлы;
- Распознавать сотни семейств пакера;
- Рекурсивно распаковывать файлы, которые были многочисленно упакованы, т.е. до достижения основного вредоносного файла.
Generic Virtual Machine
GVM позволяет коду быть выполненным в изолированной безопасной среде.
Анти-полиморфный движок
Включает в себя передовые технологии эмуляции CPU, с целью демаскировки вредоносного ПО.
Анти-руктит технологии
Symantec имеет 3 разные анти-руткит технологии, предназначенные для удаления даже самых упрямых руткитов, наподобие Tidserv и ZeroAccess. Техники включают в себя:
- Прямой доступ к тому диска и прямое сканирование кустов реестра;
- Сканирование памяти ядра.
Движок анти-трояна
Включает в себя технологии хеширования, которые позволяют безостановочно сканировать на наличие миллионов троянов и шпионских программ, делая это буквально за микросекунды времени.
- Находит и извлекает регионы ключевых файлов, которые содержат следы и логику зловредов;
- Обрабатывает криптографические хеш-файлы каждого раздела, и производит их поиск в базе «отпечатков»;
Движок Photon
Использует «размытые» сигнатуры для выявления как известных, так и новых, неизвестных вариантов вредоносных программ.
- Сканирует файлы, одновременно используя сотни тысяч «размытых» сигнатур, кардинально улучшая производительность сканирования;
- «Размытые» сигнатуры позволяют детектировать абсолютно новые вредоносы, практически в момент их появления
Движок расширенной эвристики
- Проводит более десятка различных эвристических поисков на наличие подозрительных характеристик.
- Все подозрительные файлы соотносятся с облаком Symantec и списками доверенных цифровых подписей.
- Движки используют контекст для регулировки эвристической чувствительности; в т.ч. эвристика относится с большим подозрением к только что загруженном файлу, нежели к уже установленному.
Шифрующая файловая система это тесно интегрированная с NTFS служба, располагающаяся в ядре Windows 2000. Ее назначение: защита данных, хранящихся на диске, от несанкционированного доступа путем их шифрования. Появление этой службы не случайно, и ожидалось давно. Дело в том, что существующие на сегодняшний день файловые системы не обеспечивают необходимую защиту данных от несанкционированного доступа.
Внимательный читатель может возразить мне: а как же Windows NT с ее NTFS? Ведь NTFS обеспечивает разграничение доступа и защиту данных от несанкционированного доступа! Да, это правда. Но как быть в том случае, когда доступ к разделу NTFS осуществляется не с помощью средств операционной системы Windows NT, а напрямую, на физическом уровне? Ведь это сравнительно легко реализовать, например, загрузившись с дискеты и запустив специальную программу: например, весьма распространенную ntfsdos. В качестве более изощренного примера можно указать продукт NTFS98. Конечно, можно предусмотреть такую возможность, и задать пароль на запуск системы, однако практика показывает, что такая защита малоэффективна, особенно в том случае, когда за одним компьютером работают сразу несколько пользователей. А если злоумышленник может извлечь жесткий диск из компьютера, то здесь уже не помогут никакие пароли. Подключив диск к другому компьютеру, его содержимое можно будет прочитать с такой же легкостью, что и эту статью. Таким образом, злоумышленник свободно может овладеть конфиденциальной информацией, которая хранится на жестком диске.
Единственный способ защиты от физического чтения данных это шифрование файлов. Простейший случай такого шифрования — архивирование файла с паролем. Однако здесь есть ряд серьезных недостатков. Во-первых, пользователю требуется каждый раз вручную шифровать и дешифровать (то есть, в нашем случае архивировать и разархивировать) данные перед началом и после окончания работы, что уже само по себе уменьшает защищенность данных. Пользователь может забыть зашифровать (заархивировать) файл после окончания работы, или (еще более банально) просто оставить на диске копию файла. Во-вторых, пароли, придуманные пользователем, как правило, легко угадываются. В любом случае, существует достаточное количество утилит, позволяющих распаковывать архивы, защищенные паролем. Как правило, такие утилиты осуществляют подбор пароля путем перебора слов, записанных в словаре.
Система EFS была разработана с целью преодоления этих недостатков. Ниже мы рассмотрим более подробно детали технологии шифрования, взаимодействие EFS с пользователем и способы восстановления данных, познакомимся с теорией и реализацией EFS в Windows 2000, а также рассмотрим пример шифрования каталога при помощи EFS.
Технология шифрования
EFS использует архитектуру Windows CryptoAPI. В ее основе лежит технология шифрования с открытым ключом. Для шифрования каждого файла случайным образом генерируется ключ шифрования файла. При этом для шифрования файла может применяться любой симметричный алгоритм шифрования. В настоящее же время в EFS используется один алгоритм, это DESX, являющийся специальной модификацией широко распространенного стандарта DES.
Ключи шифрования EFS хранятся в резидентном пуле памяти (сама EFS расположена в ядре Windows 2000), что исключает несанкционированный доступ к ним через файл подкачки.
Взаимодействие с пользователем
По умолчанию EFS сконфигурирована таким образом, что пользователь может сразу начать использовать шифрование файлов. Операция шифрования и обратная поддерживаются для файлов и каталогов. В том случае, если шифруется каталог, автоматически шифруются все файлы и подкаталоги этого каталога. Необходимо отметить, что если зашифрованный файл перемещается или переименовывается из зашифрованного каталога в незашифрованный, то он все равно остается зашифрованным. Операции шифрования/дешифрования можно выполнить двумя различными способами — используя Windows Explorer или консольную утилиту Cipher.
Для того чтобы зашифровать каталог из Windows Explorer, пользователю нужно просто выбрать один или несколько каталогов и установить флажок шифрования в окне расширенных свойств каталога. Все создаваемые позже файлы и подкаталоги в этом каталоге будут также зашифрованы. Таким образом, зашифровать файл можно, просто скопировав (или перенеся) его в «зашифрованный» каталог.
Зашифрованные файлы хранятся на диске в зашифрованном виде. При чтении файла данные автоматически расшифровываются, а при записи — автоматически шифруются. Пользователь может работать с зашифрованными файлами так же, как и с обычными файлами, то есть открывать и редактировать в текстовом редакторе Microsoft Word документы, редактировать рисунки в Adobe Photoshop или графическом редакторе Paint, и так далее.
Необходимо отметить, что ни в коем случае нельзя шифровать файлы, которые используются при запуске системы — в это время личный ключ пользователя, при помощи которого производится дешифровка, еще недоступен. Это может привести к невозможности запуска системы! В EFS предусмотрена простая защита от таких ситуаций: файлы с атрибутом «системный» не шифруются. Однако будьте внимательны: это может создать «дыру» в системе безопасности! Проверяйте, не установлен ли атрибут файла «системный» для того, чтобы убедиться, что файл действительно будет зашифрован.
Важно также помнить о том, что зашифрованные файлы не могут быть сжаты средствами Windows 2000 и наоборот. Иными словами, если каталог сжат, его содержимое не может быть зашифровано, а если содержимое каталога зашифровано, то он не может быть сжат.
В том случае, если потребуется дешифровка данных, необходимо просто снять флажки шифрования у выбранных каталогов в Windows Explorer, и файлы и подкаталоги автоматически будут дешифрованы. Следует отметить, что эта операция обычно не требуется, так как EFS обеспечивает «прозрачную» работу с зашифрованными данными для пользователя.
Восстановление данных
EFS обеспечивает встроенную поддержку восстановления данных на тот случай, если потребуется их расшифровать, но, по каким-либо причинам, это не может быть выполнено обычным. По умолчанию, EFS автоматически сгенерирует ключ восстановления, установит сертификат доступа в учетной записи администратора и сохранит его при первом входе в систему. Таким образом, администратор становится так называемым агентом восстановления, и сможет расшифровать любой файл в системе. Разумеется, политику восстановления данных можно изменить, и назначить в качестве агента восстановления специального человека, ответственного за безопасность данных, или даже несколько таких лиц.
Немного теории
EFS осуществляет шифрование данных, используя схему с общим ключом. Данные шифруются быстрым симметричным алгоритмом при помощи ключа шифрования файла FEK (file encryption key). FEK — это случайным образом сгенерированный ключ определенной длины. Длина ключа в североамериканской версии EFS 128 бит, в международной версии EFS используется уменьшенная длина ключа 40 или 56 бит.
FEK шифруется одним или несколькими общими ключами шифрования, в результате чего получается список зашифрованных ключей FEK. Список зашифрованных ключей FEK хранится в специальном атрибуте EFS, который называется DDF (data decryption field — поле дешифрования данных). Информация, при помощи которой производится шифрование данных, жестко связана с этим файлом. Общие ключи выделяются из пар пользовательских ключей сертификата X509 с дополнительной возможностью использования «File encryption». Личные ключи из этих пар используются при дешифровке данных и FEK. Личная часть ключей хранится либо на смарт-картах, либо в другом надежном месте (например, в памяти, безопасность которой обеспечивается при помощи CryptoAPI).
FEK также шифруется при помощи одного или нескольких ключей восстановления (полученных из сертификатов X509, записанных в политике восстановления зашифрованных данных для данного компьютера, с дополнительной возможностью «File recovery»).
Как и в предыдущем случае, общая часть ключа используется для шифрования списка FEK. Список зашифрованных ключей FEK также хранится вместе с файлом в специальной области EFS, которая называется DRF (data recovery field — поле восстановления данных). Для шифрования списка FEK в DRF используется только общая часть каждой пары ключей. Для нормального осуществления файловых операций необходимы только общие ключи восстановления. Агенты восстановления могут хранить свои личные ключи в безопасном месте вне системы (например, на смарт-картах). На рисунке приведены схемы процессов шифрования, дешифрования и восстановления данных.
Процесс шифрования
Незашифрованный файл пользователя шифруется при помощи случайно сгенерированного ключа FEK. Этот ключ записывается вместе с файлом, файл дешифруется при помощи общего ключа пользователя (записанного в DDF), а также при помощи общего ключа агента восстановления (записанного в DRF).
Процесс дешифрования
Сначала используется личный ключ пользователя для дешифрации FEK — для этого используется зашифрованная версия FEK, которая хранится в DDF. Расшифрованный FEK используется для поблочного дешифрования файла. Если в большом файле блоки считываются не последовательно, то дешифруются только считываемые блоки. Файл при этом остается зашифрованным.
Процесс восстановления
Этот процесс аналогичен дешифрованию с той разницей, что для дешифрования FEK используется личный ключ агента восстановления, а зашифрованная версия FEK берется из DRF.
Реализация в Windows 2000
На рисунке показана архитектура EFS:
EFS состоит из следующих компонентов:
Драйвер EFS
Этот компонент расположен логически на вершине NTFS. Он взаимодействует с сервисом EFS, получает ключи шифрования файлов, поля DDF, DRF и другие данные управления ключами. Драйвер передает эту информацию в FSRTL (file system runtime library, библиотека времени выполнения файловой системы) для прозрачного выполнения различных файловых системных операций (например, открытие файла, чтение, запись, добавление данных в конец файла).
Библиотека времени выполнения EFS (FSRTL)
Служба EFS
Служба EFS является частью подсистемы безопасности. Она использует существующий порт связи LPC между LSA (Local security authority, локальные средства защиты) и работающим в kernel-mode монитором безопасности для связи с драйвером EFS. В режиме пользователя служба EFS взаимодействует с программным интерфейсом CryptoAPI, предоставляя ключи шифрования файлов и обеспечивая генерацию DDF и DRF. Кроме этого, служба EFS осуществляет поддержку интерфейса Win32 API.
Win32 API
Обеспечивает интерфейс программирования для шифрования открытых файлов, дешифрования и восстановления закрытых файлов, приема и передачи закрытых файлов без их предварительной расшифровки. Реализован в виде стандартной системной библиотеки advapi32.dll.
Немного практики
- Запустите Windows Explorer, нажмите правую кнопку мыши на каталоге, выберите пункт Properties (Свойства).
- На закладке General (Общие) нажмите кнопку Advanced.
- Отметьте галочкой пункт «Encrypt contents to secure data». Нажмите OK, затем нажмите Apply (применить) в диалоге Properties. Если Вы выбрали шифрование отдельного файла, то дополнительно появится диалоговое окно следующего вида:
Система предлагает зашифровать также и каталог, в котором находится выбранный файл, так как в противном случае шифрование будет автоматически отменено при первой модификации такого файла. Всегда имейте это в виду, когда шифруете отдельные файлы!
На этом процесс шифрования данных можно считать законченным.
Чтобы расшифровать каталоги, просто снимите выделение в пункте «Encrypt contents to secure data». При этом каталоги, а также все содержащиеся в них подкаталоги и файлы будут расшифрованы.
Читайте также: