11.04.2008

Я бы сервер защитил – пусть меня научат!

Максим Скида,  "Терминал.ru" №1 01.2008

Как говорил Остап Бендер: "Раз в стране бродят какие-то денежные знаки, то должны же быть люди, у которых их много". Если в вашей сети идет активный обмен данными, то в вашей сети есть места, где этих данных много. Или очень много. За хранение накопленного богатства отвечают корпоративные сервера. А раз есть богатство, найдутся и желающие его присвоить, в свете чего приоритетной задачей IT-отдела является обеспечение защиты корпоративных серверов.

Для данной задачи не существует общего универсального подхода. Более того, в Интернете и других открытых источниках можно найти до десятка различных определений того, что же такое "проблема защиты сервера". Понятно, что при таком положении дел, в каждом конкретном случае специалисты предпринимают совершенно разные мероприятия и применяют различные аппаратные и программные продукты для защиты серверных мощностей компании.

Защита редко бывает чрезмерной, а вот ситуаций, когда принятых мер оказывается недостаточно в результате чего сервер становится жертвой той или иной атаки, до сих пор возникает немало. После пережитого прецедента задача защиты сервера расширяется и таким образом превращается в непрерывный процесс. Не претендуя на полноту раскрытия темы защиты серверов (что вряд ли возможно в рамках одной или нескольких журнальных публикаций), рассмотрим частную задачу, решать которую рано или поздно приходится любому IT-отделу. Речь пойдёт о защите данных от несанкционированного доступа (НСД) и утечки критически важных данных.

Существует множество различных систем защиты от НСД – системы AAA (авторизация, аутентификация, аудит), системы разграничения прав пользователей, определяемых службой каталога, системы предупреждения вторжений, системы защиты от сетевых атак, SCUD-системы ограничения доступа в серверную комнату и многие другие.

Все эти системы в той или иной степени решают задачу контроля доступа к информации. Но мы рассмотрим решение, которое является аналогом "последней мили" в построении современных сетей. Решение, способное защитить важные данные в случае, когда жесткие диски вашего сервера (или весь сервер целиком) попадут в посторонние, совсем не дружественные руки.

Итак, в качестве исходных данных у нас есть: корпоративный сервер, на котором хранится конфиденциальная информация; системный администратор, отвечающий за работоспособность сервера и выполняющихся на сервере приложений; пользователи, которые хранят информацию на дисках сервера и используют серверные приложения для доступа к электронной почте, базам данных, специализированным приложениям и т.п. Необходимо: обеспечить защиту данных, хранящихся и обрабатываемых на сервере, от утечки и несанкционированного доступа. Дополнительные условия: совместимость со всеми используемыми приложениями, малая ресурсоёмкость, полная прозрачность для пользователей, катастрофоустойчивость.

Для решения задачи нам придётся ввести дополнительные понятия. Прежде всего, необходима корпоративная политика безопасности и защиты информации, которая должна чётко определять, какая информация является конфиденциальной, и кто имеет право доступа к такой информации. Без такого нормативного регулирования создание системы защиты информации в общем случае теряет смысл. Также необходимо ввести понятие "офицер безопасности" – сотрудник службы безопасности или IT-отдела, отвечающий за предоставление пользователям прав доступа к конфиденциальной информации и решающий вопросы восстановления доступа в случае возникновения нештатных ситуаций.

Итак, задача поставлена. При выборе готового решения, как и при проектировании и построении системы защиты в целом, необходимо выбрать основные критерии, по которым можно будет оценивать качество вариантов решения задачи. Разумным и взвешенным выбором являются требования, в первую очередь, к максимальной надежности защиты данных и во вторую очередь к простоте внедрения и использования (но не в ущерб надёжности). Такое решение позволяет минимизировать накладные расходы по разворачиванию и эксплуатации системы без ущерба решению поставленной задачи.

Для защиты данных, хранящихся на дисках сервера, предложим использовать шифрование этих данных с использованием стойких к взлому криптоалгоритмов. Рассмотрим типовую схему применения системы шифрования информации, хранящейся на сервере.

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

Реализация этих требований гарантирует невозможность раскрытия конфиденциальной информации в случае утери или изъятия дисков или всего сервера, в случае физического доступа к серверу постороннего лица (например, при передаче сервера в ремонт или сервисное обслуживание), в результате случайных или преднамеренных действий сотрудников компании, не имеющих по нормативным документам права на доступ к закрытой информации компании.

Применение системы шифрования имеет свои особенности. Защищённость зашифрованной информации напрямую зависит от защищённости мастер-ключей шифрования, которые, по сути, являются теми самыми "ключами от квартиры, где деньги лежат" в терминологии товарища Бендера. Если произойдет компрометация мастер-ключа, вся зашифрованная на этом ключе информация, станет доступной постороннему лицу. Существуют разные варианты защиты мастер-ключа. Среди них самыми распространёнными являются хранение мастер-ключа в файле и хранение мастер-ключа на подключаемых внешних устройствах.

Хранение мастер-ключа в файле не слишком надёжно, даже при применении современных механизмов сокрытия мастер-ключа в файлах с данными с целью маскировки. Маскировка реализуется так: мастер-ключ "прячется" в выбранный администратором или пользователем системы сторонний файл, например музыкальный или видео. Такие файлы, как правило, имеют большой размер, и внедрение в них мастер-ключа шифрования не повлияет заметным образом на качество воспроизведения этого файла. В результате выделить среди хранящейся на сервере коллекции музыкальных файлов один файл, содержащий мастер-ключ шифрования, сложно, и если к серверу получит доступ постороннее лицо, поиск мастер-ключа займет длительное время. Но стоит учесть, что при должной заинтересованности со стороны нарушителей, выделение файла, содержащего мастер-ключ и/или подбор пароля являются вполне выполнимыми задачами.

Более надёжной защитой мастер-ключа является использование для его хранения внешнего устройства. Но и здесь не обойдемся без некоторых оговорок. Ряд систем шифрования умеют использовать внешние устройства, иногда самые неожиданные (такие как музыкальные проигрыватели iPod или цифровые камеры) в качестве хранилища мастер-ключа. При подключении таких устройств к серверу мастер-ключ извлекается из памяти устройства и используется для расшифрования информации. В случае утери сервера или жесткого диска постороннее лицо, не владеющее внешним устройством, не сможет расшифровать данные, что существенно повышает безопасность.

Если же устройство, на котором хранится мастер-ключ, будет преднамеренно украдено или изъято, мастер-ключи шифрования можно будет легко скопировать и использовать для доступа к данным. Технологическая незащищённость от неавторизованного доступа обычных подключаемых к компьютеру устройств хранения информации делает их недостаточно надёжными для хранения важных данных, тем более ключей шифрования.

Достаточно надёжным способом является хранение мастер-ключа в памяти специализированных внешних устройств, которые обладают собственными механизмами защиты хранящейся в их памяти информации. Среди таких устройств самыми удобными и надёжными являются токены и смарт-карты, широко используемые в системах аутентификации и авторизации. Смарт-карта представляет собой микрокомпьютер со встроенными средствами защиты внутренней памяти. При попытке несанкционированного доступа содержимое такой памяти автоматически уничтожается без возможности восстановления. Отлаженная многолетняя практика использования этих устройств реализует защиту от всех известных видов атак. Не зная PIN-кода доступа к смарт-карте, получить доступ к содержимому её защищённой памяти практически невозможно.

Кроме защиты мастер-ключей, использование токенов и смарт-карт позволяет выполнить второе условие применения систем шифрования информации – защиту сеансов управления системой шифрования. Поскольку основной задачей смарт-карт является надёжная двухфакторная аутентификация пользователей, их можно использовать для проверки подлинности субъекта во время выполнения операций по шифрованию данных и управлению доступом к зашифрованным данным.

В нашем случае для решения задачи защиты сервера с помощью системы шифрования данных, использование смарт-карт является необходимым условием. Решения, не использующие смарт-карты или другие подобные им системы , не смогут обеспечить практическую безопасность хранения конфиденциальной информации.

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

Централизованная установка и управление реализована во многих продуктах. Отличия между этими реализациями в большинстве своём несущественны. Прозрачность работы можно быть достигнута разными способами. Например, интеграцией средств шифрования в различные пользовательские приложения – СУБД, системы коллективной работы с документами, электронную почту, сервис печати и т.д. При таком подходе существенно возрастает сложность системы и страдает её развитие. Разработчиками необходимо обеспечить совместимость с различными системами обработки информации и поддержку новых версий таких систем.

Более универсальным решением является интеграция системы шифрования с файловой системой сервера или работа с зашифрованными дисками без "посредников". На сегодняшний день, большинство современных систем шифрования работает с диском напрямую, обеспечивая посекторное зашифрование и расшифрование информации в режиме "на лету". Такой подход обеспечивает максимально полную интеграцию системы шифрования, ОС и любых работающих на сервере приложений. Таким образом, для решения нашей задачи лучше всего подходят системы шифрования, работающие с диском напрямую, ниже уровня файловой системы.

Для систем защиты данных с помощью шифрования информации, хранящейся на дисках сервера важным моментом является общая нагрузка на систему, а также время, расходуемое на первоначальное зашифрование диска. Понятно, что криптографическое преобразование информации занимает определенные системные ресурсы и свести эти затраты к нулю не получится. В общем случае, нагрузка ложится в основном на центральный процессор (CPU), так как именно он выполняет все операции по обработке информации согласно применяемому криптоалгоритму. Мы можем потребовать поддержку многопроцессорных систем, что особенно актуально для серверов, часто использующих такие аппаратные платформы. Эффективным способом снижения общей нагрузки на систему считается поддержка "распараллеливания" операций шифрования (многопоточности). Возможность реализации такого распределения нагрузки на сервер – еще один важный критерий при выборе системы шифрования.

Что касается упомянутого временного аспекта – здесь тоже есть свои тонкости. При больших объёмах дисков, используемых на современных серверах (даже при многопоточном шифровании) общее время первоначального зашифрования диска при вводе системы в эксплуатацию может исчисляться днями и даже неделями. Если в течение этого периода диск недоступен для работы, говорить об удобстве внедрения не приходится. Для того, чтобы избежать этой проблемы – стоит присмотреться к системам, позволяющим проводить первоначальное зашифрование в фоновом режиме, динамически балансируя потребление ресурсов сервера в зависимости от общей текущей нагрузки на систему.

Ну и, пожалуй, последним в нашем списке, но отнюдь не последним по значимости, является устойчивость выбранной нами системы к программным и аппаратным сбоям. Реализация механизмов защиты данных от сбоев может быть разной, но она обязательно должна соответствовать принципу "избежать потери доступа и искажения данных при любом программном или аппаратном сбое". При этом, независимо от причин сбоя, информация должна оставаться зашифрованной.

Ну вот, собственно, и всё. Давайте, подытожим все изложенные нами тезисы. Итак, адекватная система защиты данных, хранящихся и обрабатываемых на серверах должна обладать следующим набором качеств:

  • Использование стойких алгоритмов шифрования, возможность подключения внешних (уже установленных на сервере) криптопровайдеров
  • Защита мастер-ключа с помощью специальных аппаратных носителей, базирующихся на смарт-карт технологиях
  • Блокирование прямого доступа пользователей к защищённым данным, обрабатываемым на серверах приложений (в этом режиме работа с данными возможна только для приложений, работающих на сервере)
  • Высокая скорость работы за счёт использования технологии многопоточного шифрования
  • Отказоустойчивость и защита данных от программных и аппаратных сбоев в процессе шифрования (в том числе и в результате сбоев питания компьютера).

Естественно мы перечислили только основные требования к такого типа системам. На отечественном рынке представлен ряд систем, соответствующих большинству этих критериев. Наиболее полно, на наш взгляд, им удовлетворяет российское программно-аппаратное решение Secret Disk Server NG, на второе место можно поставить продукт ZServer, далее, по степени соответствия заявленными нами параметрам, следует Strong Disk Server.

Однако, исходя из индивидуальных потребностей компаний, немаловажную роль могут играть и другие, дополнительные возможности. Так, для государственных организаций существенным может стать наличие сертификата (ФСТЭК или ФСБ России) и поддержка российской криптографии. Из перечисленных нами продуктов таким сертификатом обладает только Secret Disk Server NG.

Иногда не менее важными являются вопросы совместимости с используемыми в компании системами резервного копирования, возможность настройки автоматической реакции на внештатные ситуации (например, на срабатывание охранной сигнализации в серверной комнате), устойчивость системы к переустановке ОС на сервере или подключению зашифрованных дисков к другому серверу, работу в кластерных системах и т.п. В любом случае, выбор системы шифрования – дело ответственное и принимать решение нужно после тщательного изучения возможностей той или иной системы и сравнения их с потребностями данной организации. Надеемся, что сформулированные нами общие требования помогут Вам сделать правильный выбор.

Максим Скида, руководитель направления защиты персональных данных, компания Aladdin