Как достичь безопасной работы онлайн-сервисов

  1. Главная
  2. Блог
  3. Облачные сервисы
  4. Как достичь безопасной работы онлайн-сервисов
Категории
YAk dosyagti bezpechnoї roboti onlajn-servіsіv_1

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

Но сначала я включу режим Капитана Очевидности и акцентирую внимание на некоторых общеизвестных постулатах:

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

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

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

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

YAk dosyagti bezpechnoї roboti onlajn-servіsіv_2
Что нужно для счастья
  1. Выявление уязвимостей публикации приложения путем автоматического тестирования (в том числе и после каждого внесения изменений в код).
  2. Защита от эксплуатации уязвимостей с помощью брандмауэра веб-приложений, выявляет потенциально опасные паттерны в поведении пользователя и блокирует потенциально опасные запросы.
  3. Не лишним было бы также упомянуть и о преимуществах микросервиснои архитектуры, которая позволяет минимизировать риски эскалации доступа при взломе микросервису, который сам по себе такого доступа не имеет.

Эффективны ли они? Да.

Используются они повсеместно? Нет.

YAk dosyagti bezpechnoї roboti onlajn-servіsіv_3
Все под контролем

Что может мешать применять эти практики? Ответ — лень и оптимизм.

«Наши веб-приложения и так достаточно хорошо защищены» — это, пожалуй, самое безобидное допущение, которое можно сделать. Еще опаснее и абсурднее за него может быть только следующее: «Мы пишем код без ошибок».

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

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

YAk dosyagti bezpechnoї roboti onlajn-servіsіv_4
Куда мы идем

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

Эфемерные контейнеры

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

Автоматизация CI/CD-процессов

Говоря о DevOps, стоит также упомянуть и о том, что платформа предусматривает автоматическое выполнение операций, связанных с тестированием, компиляцией и контейнеризацией приложения. Платформа позволяет загрузить код приложения к Git-репозитория, после чего при каждом внесении изменений в код (а точнее — при каждом Коммит этих изменений в репозитория) автоматически запускаются процессы компиляции, тестирования и упаковки. Затем платформа создает образ контейнера, который попадает к частному репозитория. Измененная версия приложения публикуется сначала в тестовой среде, чтобы ее работу могли проверить QA-инженеры (тестировщики). Когда по итогам принимается решение о новом релиз, он аккуратно доставляется к продуктивному среды, при этом система оркестрации сначала запускает новую версию программы, удостоверяется в его работоспособности, и только после этого переключает на нее клиентский трафик.

YAk dosyagti bezpechnoї roboti onlajn-servіsіv_5
Ферма вместо одного любимца

Под использованием платформы подразумевается использование контейнеров — полностью изолированных окружений, в которых с приложением доступны только самые необходимые для его работы компоненты. Когда платформе необходимо запустить приложение, она создает новые контейнеры (и не один, а несколько одинаковых), разворачивая их из образа, который ей доступен в репозитории. Что бы ни произошло внутри контейнера, эти изменения уже не попадут обратно в репозитория, контейнеры постоянно создаются и уничтожаются. Такое приложение не удастся сломать и добавить к коду какие-либо закладки. Почему? Во-первых, все файлы программы намертво защищены от записи, а, во-вторых, даже если бы изменения каким-то образом удалось внести все эти файлы являются лишь копией приложения: они находятся во временном эфемерному контейнере, который рано или поздно все равно будет уничтожена .

Анализ и защита

При этом платформа позволяет анализировать каждый запрос, поступающий из сети Интернет на предмет потенциальных угроз. Перед тем, как попасть в обработку балансировщик нагрузки, запрос проходит через брандмауэр веб-приложений (web application firewall), который определяет, следует ли его пропустить. Брандмауэр проверяет запросы, руководствуясь базой сигнатур постоянно пополняется, при этом заказчик имеет возможность как открывать те или иные проверки, так и добавлять свои собственные.

YAk dosyagti bezpechnoї roboti onlajn-servіsіv_6
Есть хорошие новости!

В этом году мы запустили платформу TuchaKube, что обеспечивает целый ряд функций. Обычно, самостоятельное внедрение таких функций требует длительной и кропотливой работы, осмысления множества принципиально новых понятий, а также мучительных поисков ответа на вопрос: «А зачем мне это нужно?». И эти функции касаются не только безопасности. Платформа обеспечивает такие вещи, как:

  • мониторинг огромного количества метрик;
  • автоматическое горизонтальное масштабирование (путем создания на различных вычислительных узлах нужного количества одинаковых контейнеров с учетом текущей нагрузки)
  • автоматический выпуск сертификатов для TLS-соединений;
  • автоматизацию функций DevOps.
YAk dosyagti bezpechnoї roboti onlajn-servіsіv_7
Как мы докатились

Еще с прошлого года, благодаря пожеланиям некоторых партнеров нашей компании, мы столкнулись с необходимостью решить задачи по обеспечению автоматизации CI/CD-процессов. Это привело нас к плотному использования Docker-контейнеров, а затем — и к использованию системы оркестрации Kubernetes. Накопив достаточное количество практического опыта, мы решили этот опыт систематизировать и извлечь из него дополнительную пользу для всех: именно так и появилась революционная платформа TuchaKube.

Где нас найти

Кстати, на нашем YouTube-канале вы найдете два подробных видеообзоры, которые демонстрируют:

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

Поэтому советую всем, кто заинтересован в современных принципах построения и сопровождения онлайн-сервисов, подписаться на наш YouTube-канал и страницу Facebook. Так вы точно не пропустите важные новости! А если у вас есть вопросы или задачи для нас, уверенно обращайтесь. Мы рады вам 24х7!

Поделиться:
Статьи по теме

Меня зовут Владимир Мельник, и я технический директор Tucha. Хочу поделиться некоторыми наблюдениями и выводами, которые я сделал в течение этого ...

Преимущества переноса рабочих данных в облако

Времена, когда менеджеры вели учет клиентов и истории звонков в блокнотах или, в лучшем случае, в Excel, уходят в прошлое ...

Интернет-торговля быстро распространяется по миру. Уже более 70% покупателей предпочитают онлайн-магазины. В немалой степени успех e-shop зависит от скорости загрузки сайта ...

Перечислим 12 причин, почему стоит использовать облачные сервисы в бизнесе...

Мы используем cookies.

Мы используем файлы cookies, чтобы обеспечить основные функциональные возможности на нашем сайте и собирать данные о том, как посетители взаимодействуют с нашим сайтом, продуктами и услугами. Нажимая Принять или продолжая использовать этот сайт, вы соглашаетесь с тем, что мы используем эти инструменты для рекламы и аналитики согласно «Политике про файлы сookies»

ПринятьОтказаться