Облака: легенды и мифы

Облака: легенды и мифы

Когда Эрик Шмит, ныне глава Google, впервые употребил термин "облако" по отношению к распределенной вычислительной веб-системе он вряд ли догадывался, что это одно из тех слов, которые часто встречаются в легендах. Практически во всех мифах народов мира божественные существа обитают очень близко к небу - на облаках. В результате, термин "облачные вычисления" очень понравился маркетологам, поскольку дает пространство для творчества. Попытаемся и мы вербализировать эти мифы, и понять насколько они органично сочетаются с ИТ.

Смерть Мерлина

Одним из персонажей цикла легенд о короле Артуре и его Круглом столе является маг и волшебник Мерлин, который помогал Артуру в его правлении. Показательно, что кончил Мерлин тем, что был заточен в облаках. Он, желая похвалиться перед молодой волшебницей и показать свою магическую силу, построил замок из облаков и предложил своей пассии его осмотреть. Однако волшебница оказалась хитра и заточила мага в его собственном облачном замке. После этого Мерлина уже ни кто не видел, поэтому считается, что он умер где-то там - в выстроенном им же самим облачном замке.

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

Изначально облако было только одно - именно этим символом традиционно обозначали сеть Интернет. Это облако обозначало совокупность всех компьютеров, объединенных протоколом IP и имеющих собственный IP-адрес. Со временем в Интернет начали выделять серверные фермы, которые устанавливались у провайдеров и на которых базировались веб-проекты. При этом для обеспечения высокой нагрузки и отказоустойчивости наиболее крупные веб-системы становились многоуровневыми и распределенными.

В типовой такой системе можно было выделить следующие уровни: обратный прокси, выполняющий также роль балансировщика нагрузки и дешифратора SSL, собственно веб-сервер, далее сервер приложений, СУБД и систему хранения. При этом на каждом уровне могло быть несколько элементов, выполняющих одинаковые функции, и поэтому не всегда было понятно какие именно компоненты используются для обработки пользовательских запросов. А когда непонятно, то это и есть облака. Поэтому начали говорить, что пользовательские запросы выполняются где-то в "облаке" из большого количества серверов. Так и появился термин "облачные вычисления".

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

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

Облачные вычисления в основном связывают с арендой приложений, определяя три типа таких услуг: IaaS - инфраструктура как сервис, PaaS - платформа как сервис и SaaS - программное обеспечение как сервис. Иногда и услуги "безопасность как сервис" также сокращают до SaaS, однако, чтобы не путать облачные услуги безопасности с арендой ПО лучше называть ее ISaaC - Information Security as a Cloud. Такие услуги также начинают предоставляться. Однако не следует путать аутсорсинг приложений и облачные вычисления, поскольку облака могут быть внутрикорпоративные, публичные и гибридные. У каждого из этих типов облаков есть свои особенности при организации системы защиты.

Три шага Вишну

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

Современные ИТ также делают аналогичный "второй шаг" - с земли в облака. Однако, чтобы с этих облаков не свалиться еще на земле стоит позаботиться о безопасности. В первой части я так подробно разобрал структуру облака для того, чтобы было понятно какие угрозы существуют для облачных вычислений. Из описанного выше следует выделить следующие классы угроз:

  • Традиционные атаки на ПО. Они связанные с уязвимостью сетевых протоколов, операционных систем, модульных компонент и других. Это традиционные угрозы, для защиты от которых достаточно установить антивирус, межсетевой экран, IPS и другие обсуждаемые компоненты. Важно только, чтобы эти средства защиты были адаптированы к облачной инфраструктуре и эффективно работали в условиях виртуализации.

  • Функциональные атаки на элементы облака. Этот тип атак связан с многослойностью облака, общим принципом безопасности, что общая защита системы равна защите самого слабого звена. Так успешна DoS-атака на обратный прокси, установленный перед облаком, заблокирует доступ ко всему облаку, не смотря на то, что внутри облака все связи будут работать без помех. Аналогично SQL-инъекция, прошедшая через сервер приложений даст доступ к данным системы, не зависимо от правил доступа в слое хранения данных. Для защиты от функциональных атак для каждого слоя облака нужно использовать специфичные для него средства защиты: для прокси - защиту от DoS-атак, для веб-сервер - контроль целостности страниц, для сервера приложений - экран уровня приложений, для слоя СУБД - защиту от SQL-инъекций, для системы хранения - резервное копирование и разграничение доступа. В отдельности каждые из этих защитных механизмов уже созданы, но они не собраны вместе для комплексной защиты облака, поэтому задачу по интеграции их в единую систему нужно решать во время создания облака.

  • Атаки на клиента. Этот тип атак отработан в веб-среде, но он также актуален и для облака, поскольку клиенты подключаются к облаку, как правило, с помощью браузера. В него попадают такие атаки как Cross Site Scripting (XSS), перехваты веб-сессий, воровство паролей, "человек посредине" и другие. Защитой от этих атак традиционно является строгая аутентификации и использование шифрованного соединения с взаимной аутентификацией, однако не все создатели "облаков" могут себе позволить столь расточительные и, как правило, не очень удобные средства защиты. Поэтому в этой отрасли информационной безопасности есть еще нерешенные задачи и пространство для создания новых средств защиты.

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

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

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

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

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

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

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

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

За седьмым небом

Апостол Павел утверждал, что знал человека, который был восхищен на седьмое небо. С тех пор словосочетание "седьмое небо" прочно закрепилось для обозначения рая. Впрочем, далеко не все христианские святые сподобились побывать даже на первом небе, тем не менее, нет такого человека, который не мечтал бы хоть одним глазком взглянуть на седьмое небо.

Возможно, именно эта легенда и подвигла создателей компании Trend Micro назвать один из своих проектов по защите облаков Cloud Nine - девятое облако. Это ведь явно выше седьмого. Впрочем, сейчас этим именем названы самые разнообразные вещи: песни, детективы, компьютерные игры, однако вполне возможно, что это имя было навеяно христианской легендой Павла.

Впрочем, пока компания Trend Micro опубликовала только сведения о том, что Cloud Nine будет связан с шифрованием данных в облаке. Именно шифрование данных и позволяет защититься от большинства угроз данным в публичном облаке, поэтому подобные проекты сейчас будут активно развиваться. Давайте пофантазируем, какие инструменты защиты еще могут пригодиться для снижения описанных выше рисков.

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

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

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

Какие же еще защитные механизмы можно использовать для защиты облаков? Вопрос пока остается открытым.

Подпишитесь
в Facebook

Я уже с вами
Telegram AMПодписывайтесь на канал "Anti-Malware" в Telegram, чтобы первыми узнавать о новостях и эксклюзивных материалах по информационной безопасности.

RSS: Новые статьи на Anti-Malware.ru