Пентест микросервисной архитектуры: как найти уязвимости в разветвленных системах компании
07.03.23, Вт, 09:18, Мск,
На смену классической разработке постепенно приходит микросервисная архитектура, которая позволяет создавать ИТ-продукты из независимых компонентов. Такой подход требует соблюдения ряда стандартов по обеспечению ИБ в части безопасной разработки или методологии DevSecOps. Но разработчики часто игнорируют применение таких практик. Когда продукты выпускают в production, они становятся легкой добычей для злоумышленников. Со временем количество уязвимостей растет, данные регулярно утекают в сеть, а бизнес рискует деньгами и репутацией.
Содержание |
Основная статья: Pentesting (пентестинг)
В этом материале руководитель направления информационной безопасности ITGLOBAL.COM Security Александр Зубриков рассказал, что такое микросервисная архитектура, зачем ее тестировать на проникновение и как вовремя проведенный пентест позволяет улучшить систему по обеспечению безопасности мобильных приложений и компании в целом.
Что такое микросервисная архитектура
Есть два подхода к разработке программного обеспечения: классический (монолитный) и микросервисный.
В классической архитектуре есть монолитное ядро, в котором все микросервисы — это части единой системы. Чтобы внести изменения в один компонент, например, установить новую кнопку в приложении, приходится заново пересобирать огромные части системы на уровне кода. Это сложно, занимает много времени и не позволяет в полной мере внедрить методологию CI/CD. Поэтому за последние пять лет многие компании перешли от монолитной архитектуры к микросервисной, а часть планирует сделать это в ближайшее время.
В микросервисной архитектуре компоненты выделены в отдельные контейнеры. Каждый микросервис независим от других и выполняет свою определенную функцию. Например, в приложении банка за авторизацию пользователей отвечает один микросервис, за перевод денежных средств — другой, а за сбор статистики по расходам — третий. Изменение или отказ одного компонента не влияет на работу всех остальных.
Микросервисы дали новый виток развитию ИТ-продуктов. У разработчиков появилась возможность применять разные технологии для определенных компонентов, передавать на аутсорс задачи небольшим распределенным командам, быстрее тестировать отдельные микросервисы и регулярно выпускать обновления.
Зачем проводить пентест микросервисной архитектуры
Микросервисный подход используют для любых задач, которые можно представить как набор из множества блоков. Например, для создания сайтов, мобильных и веб-приложений. Если сервис предполагает хранение персональных данных пользователей или обработку финансовой информации, то именно они становятся основной целью киберпреступников.
Бывает, что при создании продукта специалисты не применяют внутренний цикл безопасной разработки, и у компании нет собственных квалифицированных кадров. Тогда бизнес обращается за помощью к сторонним организациям, таким как ITGLOBAL.COM Security.
Пентестеры имитируют атаки злоумышленников и выявляют уязвимости до того, как их найдут и воспользуются мошенники. После тестирования на проникновение специалисты формируют отчет с выявленными уязвимостями и дают рекомендации, как их устранить еще до выхода продукта на рынок.
Часто бизнес не задумывается о безопасности мобильных приложений и других своих ИТ-продуктов до первой хакерской атаки или утечки данных. Пентест можно провести, чтобы найти возможные векторы атаки, закрыть их и предотвратить повторение ситуации. Но процесс займет больше времени и будет стоить в разы дороже, чем при предварительном тестировании до выхода в production.
Чем отличается пентест микросервисной архитектуры от монолитной
В монолитной архитектуре сервисы являются частью одной системы, поэтому получить доступ к ним проще, так, например, не нужно выбираться из контейнеров. Проводить пентест микросервисной архитектуры сложнее, потому что она считается более защищенной, чем монолитная. В контейнере, как правило, злоумышленнику доступна ограниченная функциональность, там могут отсутствовать многие стандартные команды даже самой ОС. Тем не менее существует и ряд угроз, которым подвержена и микросервисная архитектура, например, при взаимодействии компонентов между собой.
В идеале контейнеры с микросервисами должны быть изолированы друг от друга и взаимодействовать между собой только через сетевой шлюз. На практике так бывает не всегда из-за неверных настроек или проблем при разработке архитектуры и планировании потоков данных. Разработчики могут случайно оставить в коде приложения аутентификационные данные от сервисных, тестовых или собственных учетных записей, ключи шифрования или даже техническую документацию с описанием всей системы. Эти и другие уязвимости позволяют злоумышленникам быстрее проникать в систему, перехватывать информацию, управлять приложением или инициировать запросы.
Если один некритичный микросервис для сбора статистики уязвим, то киберпреступник может попасть внутрь других критически важных сервисов, похитить данные, перехватить управление, произвести деградацию сервиса или оставить бэкдор.
Какие векторы атак применяют при пентесте микросервисной архитектуры
Из-за особенностей микросервисной архитектуры, кроме основного API, появляются дополнительные векторы атак, которые пентестеры используют в своей работе:
- шлюз для взаимодействия между контейнерами (Gateway). Уязвимости позволяют перехватывать трафик между клиентами и сервисом, инициировать запросы в сторону контейнеров со стороны шлюза;
- оркестрация. В зависимости от полученных прав, уязвимости позволяют перехватывать полностью управление или пароли, уменьшать вычислительные ресурсы компонентов;
- контейнеры. Уязвимости позволяют понять, насколько контейнеры изолированы друг от друга, атаковать другой контейнер, попасть в систему, где он запущен, например, в операционную систему.
Вывод: пентест микросервисной архитектуры важно не откладывать
По сравнению с монолитной, разработка ИТ-продуктов с микросервисной архитектурой требует более тщательного подхода со стороны информационной безопасности. Когда система состоит из множества компонентов, которые разрабатывают разные команды, скорость разработки и выпуска сервисов высокая или лавинообразная.
Бизнес может минимизировать свои финансовые и репутационные риски с помощью внутреннего цикла безопасной разработки и пентеста продуктов перед выпуском на рынок и после каждого обновления системы. Но часто об информационной безопасности компании задумываются в последнюю очередь. Такая халатность приводит к регулярным инцидентам ИБ: хакерским атакам, краже конфиденциальной информации и утечкам данных.
Различные сканеры безопасности, SAST и DAST-решения хоть и полезные вещи, но они не являются панацеей. Если в компании нет культуры информационной безопасности (и даже если есть), то проводить пентест рано или поздно все равно придется. Но тестирование на проникновение будет стоить дороже и проходить дольше, чем если бы бизнес его провел до выхода продукта на рынок.
Если в штате нет собственных квалифицированных специалистов, необходимо обращаться к сторонним организациям. Например, в рамках пентеста специалисты ITGLOBAL.COM Security проводят тестирование на проникновение, в том числе и микросервисной архитектуры, формируют подробный отчет с выявленными уязвимостями и дают рекомендации, как их устранить. Проводить такой пентест можно в несколько этапов: перед непосредственно тестированием специалисты изучают архитектуру и могут самостоятельно определить приоритеты по сервисам и очередность тестов.
В результате тестирования на проникновение повышается не только безопасность мобильных приложений, сайтов и других систем с микросервисной архитектурой, но и общий уровень информационной безопасности компании.