Благодаря появлению схемы организаций, охватывающих структуру DevOps, принятие архитектуры микросервиса неуклонно заслуживает уважения, которого она заслуживает.
В то время как DevOps устраняют организационные бункеры, обеспечивая эффективное сотрудничество, оптимизируя интеграцию рабочего процесса и автоматизируя доставку приложений. Архитектура микросервиса действует как существенный фактор для достижения модели DevOps, распределяя приложение в несколько развертываемых услуг. Микросервисы работают как автономные приложения, отделенные друг от друга и могут быть построены, масштабированы и развернуты независимо. Это позволяет командам легко понять архитектуру приложения и ускорить трубопроводы доставки.
Приведенное выше изображение показывает типичное приложение, разбитое на набор микросервисов. Каждая из этих услуг является по существу миниатюрным приложениями, размещенными в отдельных контейнерах, одновременно общаясь друг с другом через сервисный прокси. Любая внешняя организация (изображенная в зеленом), будь то пользователь или внешняя служба, будет получить доступ к приложению (через защищенный шлюз API) в целом, а не отдельный микросервис.
По -видимому, преимущества модели DevOps на основе микросервисов составляют десять десяти лет. Но тогда есть проблемы с поддержанием архитектуры микросервиса. В частности, справляйтесь с сложной реализацией безопасности.
Уязвимости в архитектуре микросервиса
Микросервисы считаются в четыре раза более уязвимы, чем традиционные монолитные приложения. Из -за своей распределенной структуры каждый сервисный API и сетевой уровень подвергают восприимчивые входные точки на потенциальные векторы атаки.
Микросервисы уникально организованы с использованием широкого спектра инструментов по сравнению с монолитной структурой. Обычно такие инструменты основаны на предварительно построенных репозиториях, коде с открытым исходным кодом и контейнерами с/без проверенных протоколов безопасности. Благодаря широкому использованию сторонних бесспатированных библиотек в каждом из этих контейнеров, реализация стратегии безопасности усложняется, тем самым увеличивая общий риск. Кроме того, поскольку микросервисы являются контейнерными приложениями в своем ядре, один скомпрометированный контейнер позволяет векторам атаки быстро воспроизвести взломать на более широкую поверхность.
Обычно сервисные вызовы обеспечиваются путем реализации шлюза API, который выступает в качестве единственной точки входа для получения вызова, а затем направляет трафик на разные службы. Такой подход к наличию одной точки входа через аутентификацию имеет свои достоинства и недостатки. Теоретически, шлюз API ограничивает поверхность атаки; Тем не менее, это также оказывается единственной точкой отказа для потенциальных векторов атаки. Недавние исследования также предполагают, что большинство традиционных векторов атаки нацелены на приложение с помощью вызовов API.
Источник изображения: https://docs.microsoft.com/
Кроме того, мониторинг микросервисов рассматривается как критический аспект при поддержании безопасности в рамках микросервиса. Отсутствие эффективной балансировки нагрузки и мониторинга применений ухудшает боевую позицию организации в изоляции угроз и отрицает быстрый карантин. Эффективный мониторинг для микросервисов имеет решающее значение для проведения всех слоев, включая полезную нагрузку API, строки запросов, файлы cookie и заголовки HTTP.
Обеспечение микросервисов
Подход к обеспечению обеспеченного доступа к микросервисам существенно отличается от традиционной монолитной структуры. Как правило, администрирование безопасной аутентификации путем обеспечения токенов по требованию остается решающим. Благодаря стратегии с нулевым доверием, недолговечные, зашифрованные секреты доступа распределены, чтобы пройти правильный уровень авторизации на уровне приложения, обслуживания или трубопровода.
При увеличении поверхности атаки применения кроссплатформенный централизованный модуль безопасности не задерживается. Защита микросервисов только посредством сегментации сети или подхода на основе периметра обычно считается неэффективным и недостаточным для ограничения угроз применения.
Вместо этого защита микросервисов начинается с целостного подхода внедрения безопасности путем превращения DevOps в модель DevSecops. Это начинается с мышления рассмотрения безопасности на одном уровне с разработкой и операциями с начала SDLC, по существу, анализируя толерантность к риску с момента жизненного цикла программного обеспечения. С моделью DevSecops на месте, производительность, масштабируемость и безопасность весят одинаково без какого -либо смещения.
С настройкой контроля источника и сканированием зависимостей, непрерывное взлом примыкает к непрерывной интеграции и непрерывной доставке; Для обеспечения проверки CI/CD трубопроводы во время выполнения для проверки времени выполнения. Для этого обычной практикой является использование подходов к статическому тестированию безопасности приложений (SAST) и динамического тестирования безопасности приложений (DAST) со времен ранних стадий SDLC. В то время как SAST помогает анализировать уязвимости исходного кода, прежде чем собирать код и обеспечивать смягчение недостатков безопасности с обратной связью в режиме реального времени, Dast помогает идентифицировать недостатки на уровне архитектурного и кода во время работы в производстве.
Crashtest Security создает программное обеспечение для сканирования уязвимостей, которое является таким же гибким и гибким, как и ваша разработка. Вы можете испытать Crashtest Security полностью бесплатно для проверки ваших веб -приложений, посетив Здесь Анкет
Эта статья была первоначально опубликована на https://blog.crashtest-security.com/how-to-exploit-microservices и был разрешен Crashtest Security для переиздания.
Оригинал: «https://dev.to/sudip_sg/how-to-exploit-a-microservice-architecture-5al4»