Як досягти безпечної роботи онлайн-сервісів

  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 причин, чому варто використовувати хмарні сервіси в бізнесі ...

Ми використовуємо cookie.

Ми використовуємо файли cookie, щоб забезпечити основні функціональні можливості на нашому сайті і збирати дані про те, як відвідувачі взаємодіють з нашим сайтом, продуктами і послугами. Натискаючи Прийняти або продовжуючи використовувати цей сайт, ви погоджуєтеся з тим, що ми використовуємо ці інструменти для реклами і аналітики.

ПрийнятиВідмовитись