Безопасность облачных хранилищ: взгляд тестировщика
Сегодня использование облачных хранилищ для сохранения информации становится все более популярным.Однако, насколько безопасно хранить свои данные в облаке? Ведь если сервер не стоит в соседней комнате, запертой на ключ, то к нему кто-то имеет доступ, как минимум сотрудники компании-провайдера
Сегодня использование облачных хранилищ для сохранения информации становится все более популярным. Действительно, зачем “возиться” с покупкой и настройкой сервера, обеспечением его физической и виртуальной устойчивости, если можно приобрести любое количество «виртуальных машин» и варьировать их число в зависимости от наплыва посетителей на ресурс.
“Облачные” провайдеры позволяют быстро получить все необходимое виртуальное оборудование для работы как небольшого, так и приложения энтерпрайз-класса, со сложной бизнес-логикой и многочисленными сервисами. А процесс разработки облачных веб-приложений практически не отличается от приложений, написанных на обычном компьютере. Определенно, это удобно. Особенно, если в короткие сроки необходимо запустить проект, а количество пользователей предугадать сложно. Именно в таких случаях особенно удобна облачная «инфраструктура как сервис» (IaaS), которую предлагают с десяток именитых провайдеров.
Однако, насколько безопасно хранить свои данные в облаке? Ведь если сервер не стоит в соседней комнате, запертой на ключ, то к нему кто-то имеет доступ, как минимум сотрудники компании-провайдера.
Насколько безопасна передача информации от клиента к облаку? А обратно? Вот что говорят о своей безопасности два наиболее популярных провайдера, предоставляющих облачную инфраструктуру.
Amazon AWS
Пожалуй, это самый известный провайдер облачной инфраструктуры (Amazon EC2), который долгое время занимает ведущие позиции среди конкурентов. Что же получает заказчик, когда доверяет свой продукт компании Amazon?
Многоуровневая безопасность. Механизмы обеспечения безопасности внедряются сразу на нескольких уровнях: для операционных систем хоста, виртуальных инстансов и гостевых ОС, а также для файерволов и вызовов API.
Гипервизор. Amazon EC2 использует доработанную версию Xen гипервизора, который позволяет значительно повысить производительность виртуальных машин за счёт паравиртуализации. Причем доступ к ЦПУ реализован с разделенными привилегиями: ОС хоста имеет самый высокий уровень (0), гостевая ОС – уровень 1, а приложения имеют наименьшие привилегии (уровень 3).
Изоляция инстансов. На одной физической машине может быть развернуто множество гостевых. И хотя инстансы не имеют прямого доступа к физическому диску, им выделяются виртуальные хранилища информации. Для того, чтобы данные из различных приложений не воздействовали друг на друга в случае освобождения дискового пространства, информация из каждого блока хранения автоматически стирается (точнее, значение устанавливается равным нулю). Память не возвращается в пул свободной памяти, пока процесс обнуления не завершен до конца.
Безопасность операционной системы хоста. Для административного доступа к управлению хостами, предусмотрена мультифакторная система аутентификации. В случае, если сотрудник больше не нуждается в такого рода доступе, его учетная запись аннулируется.
Безопасность гостевой операционной системы. Поддержка безопасности здесь лежит полностью на команде разработки, так как провайдер не имеет доступ как к самим инстансам, так и гостевым операционным системам, которые на них установлены. Это является как сильной стороной в контексте безопасности приложения (провайдер не может получить данные клиента), так и потенциально уязвимым местом для атак: ошибки в конфигурации могут дать злоумышленнику возможность получить доступ к приложению, данным, и даже виртуальной машине целиком.
Файервол. По умолчанию все порты встроенного файрвола закрыты. Это значит, что заказчик сам должен явно открыть порты, необходимые для входящего трафика. Amazon предоставляет возможность разделения уровней доступа по группам (Security Groups).
Доступ к API. Вызовы API для запуска и приостановки инстансов, изменения настроек файервола и других функций подписаны секретным ключом (Amazon Secret Access Key), без которого невозможно обращаться к API. В дополнение, вызовы API шифруются с помощью криптографического протокола SSL.
Изоляция инстансов. На одной физической машине может быть развернуто множество гостевых. И хотя инстансы не имеют прямого доступа к физическому диску, им выделяются виртуальные хранилища информации. Для того, чтобы данные из различных приложений не воздействовали друг на друга в случае освобождения дискового пространства, информация из каждого блока хранения автоматически стирается (точнее, значение устанавливается равным нулю). Память не возвращается в пул свободной памяти, пока процесс обнуления не завершен до конца.
Безопасность операционной системы хоста. Для административного доступа к управлению хостами, предусмотрена мультифакторная система аутентификации. В случае, если сотрудник больше не нуждается в такого рода доступе, его учетная запись аннулируется.
Безопасность гостевой операционной системы. Поддержка безопасности здесь лежит полностью на команде разработки, так как провайдер не имеет доступ как к самим инстансам, так и гостевым операционным системам, которые на них установлены. Это является как сильной стороной в контексте безопасности приложения (провайдер не может получить данные клиента), так и потенциально уязвимым местом для атак: ошибки в конфигурации могут дать злоумышленнику возможность получить доступ к приложению, данным, и даже виртуальной машине целиком.
Файервол. По умолчанию все порты встроенного файрвола закрыты. Это значит, что заказчик сам должен явно открыть порты, необходимые для входящего трафика. Amazon предоставляет возможность разделения уровней доступа по группам (Security Groups).
Доступ к API. Вызовы API для запуска и приостановки инстансов, изменения настроек файервола и других функций подписаны секретным ключом (Amazon Secret Access Key), без которого невозможно обращаться к API. В дополнение, вызовы API шифруются с помощью криптографического протокола SSL.
Windows Azure
Хотя еще совсем недавно Windows Azure предоставляла только облачную «платформу как сервис» (PaaS), с введением ряда обновлений Azure стал полноценной облачной инфраструктурой, позволяющей запускать приложения работающие на Windows Server и Linux. В дополненение, независимое тестирование производительности показало, что Windows Azure значительно опережает своих конкурентов, что способствует укреплению его лидирующей позиции. А что же входит в пакет безопасности?
Взаимная SSL-аутентификация. Весь внутренний трафик передается в зашифрованном виде, что препятствует получению информации, даже в случае ее перехвата.
Менеджмент сертификатов и личных ключей. И сертификаты и личные ключи генерируются отдельным механизмом, который недоступен из кода приложения, шифруются и хранятся в секретном репозитории. Существует возможность дополнительной защиты паролем.
Принцип минимальных привилегий. Пользовательские приложения на виртуальных машинах работают с низкими правами, что усложняет атаки любого рода, так как для их выполнения требуется эскалация привилегий.
Контроль доступа к данным. Windows Azure имеет простую модель управления доступа к данным. Для каждого клиентского аккаутна генерируется секретный ключ, который используется для получения доступа к хранилищу, привязанному к данной учетной записи.
Изоляция гипервизора, ОС хоста и гостевых виртуальных машины. Изолированность клиентских виртуальных машин является критически важной для безопасного совместного использования дискового пространства. В Windows Azure за изолированность гостевых виртуальных машин отвечают гипервизор и корневая ОС.
Фильтрация пакетов. Гипервизор и корневая ОС осуществляют фильтрацию пакетов небезопасного трафика.
Изоляция виртуальной локальной сети (VLAN). Внутренняя передача данных организована таким образом, что весь трафик при переходе из одной сети в другую проверяется маршрутизатором, что обеспечивает защиту от прослушивания данных и попадания внешнего трафика во внутреннюю сетевую инфраструктуру.
Удаление устаревшей информации. Для обеспечения высокого уровня безопасности, после удаления блока информации, платформа проверяет и удаляет все ссылки на очищенный ресурс, а также стирает все копии средствами сборщиков мусора.
Из описания можно заметить, что механизмы безопасности, предлагаемые самими провайдерами, направлены на защиту внутренней архитектуры: как ее аппаратных средств, так и клиентских виртуальных машин. И это естественно, так как для провайдера важно в случае захвата злоумышленником виртуальной машины предотвратить дальнейшие атаки: получение доступа к корневой операционной системе, прослушивание трафика других клиентских машин или получение хранимой на дисках информации.
Процесс разработки облачных веб-приложений практически не отличается от разработки приложений, написанных на обычном компьютере, поэтому все угрозы веб-приложений остаются актуальными в облаке, и защита от них, как и безопасность конфигурации, ложатся на заказчика.
Подводя итоги, следует отметить, что использование облачной инфраструктуры имеет огромное количество преимуществ. Стабильность, доступность, гибкость – одни из важнейших критериев успешной реализации и работы проекта. Однако вопрос безопасности здесь стоит также остро, как и для проектов, работающих «по старинке».
Анна Андреева, инженер департамента тестирования безопасности компании "Технологии качества" (бренд A1QA)
Опубликовано 02.09.2014
Похожие статьи