Как защитить ценные данные в облаках: рекомендации Yandex Cloud
В связи с ростом количества инцидентов, связанных с информационной безопасностью, у компаний появилось больше задач по защите инфраструктуры. Кто и как должен следить за безопасностью в облаке, рассказывает Евгений Сидоров из Yandex Cloud.
5 декабря 2023 г.
15 минут чтения
В 2023 году количество инцидентов, связанных с информационной безопасностью, значительно выросло, считают 45% участников опроса State of DevOps Report 2023. Из-за этого у компаний появилось больше задач по усилению безопасности инфраструктуры, в том числе облачной.
Обычная инфраструктура чаще всего включает в себя набор серверов, сетевое оборудование, кабели, граничные маршрутизаторы, каналы и т. д. Всё это можно окружить средствами защиты, например, аппаратными файрволами. Кроме того, существует довольно чёткий корпоративный периметр.
В случае облачной инфраструктуры этот периметр размывается, поскольку у компании нет доступа к управлению оборудованием и базовой сетью. Все ресурсы виртуализированы и описаны программно, то есть представляют собой записи в базе данных облачного провайдера. Жизненный цикл и правила взаимодействия виртуальных ресурсов описаны в приложениях, управлять ими можно через control plane. Благодаря этому, что бы ни делала компания, слой управления ресурсами в публичных облаках остаётся общим для всех клиентов.
Слово «общий» в этом контексте не означает, что данные одной компании видны другой. API такого слоя обрабатывает запросы всех клиентов, но данные отделяются друг от друга не физически, а логически — на уровне программной изоляции и разделения полномочий пользователей. Поэтому говоря о размытии периметра в таких случаях имеют в виду не его отсутствие или уязвимость, а изменения, связанные с дополнительными уровнями изоляции: при переносе инфраструктуры в облако необходимо следить не за одним, а за несколькими периметрами сразу, что во многом меняет подходы и принципы работы специалистов по информационной безопасности.
Ответственность за безопасность систем, которые используют в работе облачные сервисы, делится между провайдером и клиентом. Провайдер гарантирует безопасность сервисов и доступность инфраструктуры. Но права доступа к ресурсам клиента (в том числе к виртуальным машинам) контролирует только он сам. Эту концепцию иногда называют принципом разделения ответственности, но в последнее время чаще говорят о совместной ответственности провайдера и заказчика.
Один из трендов будущего — контроль над облачным провайдером в режиме реального времени или Access Transparency. Крупнейшие гиперскейлеры разрабатывают для этого сервисы, которые постоянно мониторят, что происходит с ресурсами клиента на их стороне. Если специалисту технической поддержки облачного провайдера понадобится доступ к данным клиента, он не сможет получить его без разрешения владельца данных: клиент получит запрос с объяснением, зачем провайдеру данные, и должен будет подтвердить выдачу доступа.
Провайдеры регулярно находят уязвимости в публичных облаках, но редко кто делится информацией о них (разве что на специализированных конференциях по информационной безопасности и в отчётах об обновлениях). Например, Вадим Осипов, инженер по информационной безопасности Yandex Cloud, и Александр Лодин, технический лидер по информационной безопасности Yandex Cloud, рассказывали об этом на Positive Hack Days 2023. Отчасти это связано с тем, что у крупных облаков разная архитектура, хотя некоторые сервисы и строятся по похожей модели.
Одна из попыток собрать базу уязвимостей облачных провайдеров — открытый проект CloudVulnDB CloudVulnDB, где собрано с десяток инцидентов таких провайдеров, как AWS, GCP, Azure, IBM, Oracle или Alibaba. Большинство из них связаны с недостаточной изоляцией сервисов и некорректно настроенными правами доступа. Благодаря этому и подобным каталогам уязвимостей появляются новые подходы к защите облачных сервисов, такие как фреймворк PEACH.
Как защититься?
Злоумышленникам, которые пытаются получить доступ к чужим данным, сложно скомпрометировать несколько систем одновременно. Поэтому они чаще всего проводят атаку в несколько этапов, оставляя за собой заметные цифровые следы. Вот что поможет эффективнее отслеживать подобные события:
Придерживайтесь принципа минимальных привилегий. Выдавайте сотрудникам минимально необходимые доступы и внимательно настраивайте политики в инструментах управления доступами провайдера (как сетевых, так и логических в IAM), чтобы обезопасить себя в случае взлома технических учётных записей или сотрудников провайдера.
Настройте аудит доступов. Облачные провайдеры часто предоставляют сервисы, которые ведут логи — автоматически фиксируемые изменения. Такая функциональность доступна и в управляемых решениях типа Managed Service for Kubernetes® и сервисах группы «Платформа данных» и т. д. Поэтому если хакеры завладеют учётной записью провайдера, то действия, совершённые от её имени, с высокой вероятностью окажутся в журналах аудита и помогут вам при анализе инцидента. Вы также можете настроить уведомления о попытках внести изменения в настройки доступа или других опасных действиях.
Используйте встроенные в платформу средства шифрования. У большинства облачных провайдеров есть сервисы для шифрования вида Key Management Service (KMS), интегрированные с другими продуктами провайдера. Таким образом, злоумышленнику, который захочет получить доступ к вашей информации, придётся сначала получить доступ к ключам шифрования, то есть искать способ взломать ещё одну систему провайдера.
По данным OWASP, самая распространенная уязвимость — неправильная конфигурация ресурсов в публичном облаке. Классический пример — создание публично доступного объекта с данными в сервисах наподобие AWS S3: данные просто оказываются в публичном доступе, злоумышленнику остаётся только понять, откуда их забрать. Так в мае 2023-го в открытом доступе оказались данные более чем двух миллионов владельцев Toyota.
Как защититься:
Читайте документацию, которую предоставляет облачный провайдер. Прежде чем полагаться на какой-либо продукт, надо понять, где зона вашей ответственности и как правильно конфигурировать сервис, который вы хотите использовать.
Подключите дополнительные сервисы для интеллектуального обнаружения угроз и управления средствами безопасности в облаке: CSPM или сервисы аудита от облачного провайдера, которые зачастую легко интегрируются с SIEM-системами клиентов.
Для доступа к control plane облачного провайдера нужны ключи аутентификации. Из-за этого конфигурация с ключами иногда попадает на GitHub или же в другое легкодоступное место (например, в код мобильного приложения). Злоумышленник может найти эти секреты и использовать их, чтобы получить доступ к данным клиентов.
Как защититься?
Как можно реже используйте статические ключи аутентификации, пароли и токены. Например, вместо того чтобы создавать для пользователей учётные записи с отдельными логинами и паролями, подключитесь к системе SSO, если она уже есть в компании. В Yandex Cloud мы используем для таких задач Yandex Identity and Access Management.
Назначайте учётные записи для виртуальных машин с помощью средств провайдера. В этом случае токены аутентификации с коротким сроком действия окажутся внутри виртуальных машин, и вам не понадобиться генерировать долгоживущие секреты и отправлять их пользователям. Yandex Identity and Access Management умеет и такое.
Управляйте секретами правильно: обычно у провайдеров есть специальные сервисы, которые позволяют контролировать доступы, отправлять пользователям секреты и ротировать их. Наши клиенты создают и хранят секреты с помощью Yandex Lockbox.
Настройте мониторинг утечек секретов, чтобы своевременно получать уведомления об инцидентах и как можно быстрее реагировать на них. Попробуйте наш сервис Yandex Audit Trails. Сейчас он на стадии Preview, поэтому доступен бесплатно.
IT-системы не статичны, они постоянно развиваются. Невозможно один раз создать надёжное решение и забыть о нём: приложения и программы обновляются, рабочие процессы меняются, и система информационной безопасности компании ослабевает. Снизить риски можно, только планомерно выстраивая внутри команды процессы безопасной разработки и эксплуатации систем, например, придерживаясь подхода DevSecOps. Что это такое, как автоматизировать проверки безопасности и зачем сдвигать их в левую часть пайплайна разработки, можно узнать из бесплатного курса Yandex Cloud DevSecOps в облачном CI/CD.
Как защититься?
Разберитесь, из чего состоит приложение, какие микросервисы в него входят, с какими данными оно работает и где его периметр. Это позволит обнаружить точки входа потенциально небезопасных данных, которые требуют защиты.
Используйте средства безопасности, которые предлагает облачный провайдер или его партнёры: группы безопасности, WAF или антиDDoS (как, например, Yandex DDoS Protection). Зачастую такие средства уже интегрированы с облачной платформой, легко разворачиваются и не требуют больших расходов на администрирование.
Регулярно проводите пентесты: анализируйте код и окружающие его тесты на проникновение.