Концепція інфраструктури як коду (IaC) докорінно змінює підхід до управління сучасною ІТ-інфраструктурою, роблячи її більш захищеною, економічно вигідною та ефективною.
Впровадження технології IaC стрімко поширюється у промисловій сфері. Організації активно розширюють свої можливості щодо розгортання та управління хмарними середовищами. Цьому сприяють такі інструменти, як Terraform, Azure Resource Manager, AWS CloudFormation, OpenFaaS YML та інші.
Раніше створення інфраструктури вимагало значних зусиль: фізичне встановлення серверів, облаштування центрів обробки даних, налаштування мережевих з’єднань. Зараз, завдяки розвитку хмарних технологій, ці процеси стали набагато швидшими та простішими.
IaC є одним із ключових елементів цієї тенденції, тому варто розібратися, що саме вона собою представляє.
Що таке IaC?
Інфраструктура як код (IaC) використовує декларативний підхід до кодування для автоматизації процесу розгортання ІТ-інфраструктури. Завдяки цій автоматизації розробникам більше не потрібно вручну налаштовувати сервери, підключення до баз даних, операційні системи, сховища та інші компоненти під час розробки, розгортання або тестування програмного забезпечення.
Автоматизація інфраструктури сьогодні є важливою для компаній, оскільки дозволяє їм часто та швидко розгортати велику кількість програм.
Причинами цього є прискорення бізнес-процесів, зменшення ризиків, контроль за витратами, посилення безпеки та ефективна реакція на нові конкурентні виклики. IaC є невід’ємною частиною практики DevOps, сприяючи швидкому циклу розробки програмного забезпечення, дозволяючи командам ефективно створювати інфраструктуру та керувати її версіями.
Однак, незважаючи на надійність IaC, важливо пам’ятати про відповідальність за управління ризиками безпеки.
Згідно з дослідженням TechRepublic, проведеним DivvyCloud, витоки даних через неправильні конфігурації хмарних середовищ обійшлися компаніям у 5 трильйонів доларів у 2018-19 роках.
Недотримання найкращих практик може призвести до виникнення вразливостей у безпеці, таких як зламані хмарні середовища, і спричинити такі проблеми:
Мережеві вразливості
Неправильне використання IaC може створити умови для онлайн-атак. Приклади таких помилок включають загальнодоступний SSH, хмарні сховища з відкритим доступом, бази даних, доступні через інтернет, неправильні налаштування груп безпеки тощо.
Зміна конфігурації
Навіть якщо розробники дотримуються найкращих практик IaC, операційна команда може бути змушена змінювати конфігурацію безпосередньо в робочому середовищі у надзвичайних ситуаціях. Однак, змінювати інфраструктуру після розгортання не можна, оскільки це порушує принцип незмінності хмарної інфраструктури.
Несанкціоноване підвищення привілеїв
Організації використовують IaC для розгортання хмарних середовищ, які можуть включати контейнери, мікросервіси та Kubernetes. Розробники використовують привілейовані облікові записи для запуску хмарних додатків, що створює ризик несанкціонованого підвищення привілеїв.
Порушення відповідності
Ресурси, створені за допомогою IaC без тегів, можуть призвести до появи “примарних” ресурсів, що ускладнює їх візуалізацію та відстеження. Це може призвести до дрейфу конфігурацій хмарного середовища, який тривалий час може залишатися непоміченим і призвести до порушень відповідності нормативним вимогам.
Отже, яке рішення?
Для запобігання цим проблемам, потрібно ретельно підходити до впровадження IaC. Необхідно розробити та дотримуватись найкращих практик, щоб мінімізувати ризики та повністю використовувати потенціал технології.
Одним зі способів досягти цього є використання ефективних сканерів безпеки для пошуку та усунення неправильних конфігурацій хмарних середовищ та інших вразливостей.
Навіщо сканувати IaC на наявність вразливостей?
Сканер безпеки – це автоматизований інструмент, який перевіряє різноманітні елементи пристрою, програми чи мережі на наявність потенційних недоліків у безпеці. Регулярне сканування є необхідним для забезпечення безперебійної роботи.
Переваги сканування:
Посилення безпеки
Хороший інструмент сканування використовує сучасні методи захисту для зменшення, усунення та запобігання онлайн-загрозам. Це дозволяє захистити дані компанії та її клієнтів.
Захист репутації
Викрадення конфіденційних даних може завдати значної шкоди репутації організації.
Контроль відповідності
Діяльність організації має відповідати встановленим вимогам. Прогалини в безпеці можуть скомпрометувати відповідність і призвести до серйозних проблем.
Отже, розглянемо кілька найкращих інструментів для сканування IaC на наявність вразливостей.
Checkov
Скажіть “ні” неправильним налаштуванням хмари з Checkov.
Checkov призначений для статичного аналізу коду IaC. Він сканує хмарну інфраструктуру, якою керують Kubernetes, Terraform та CloudFormation, для виявлення неправильних конфігурацій.
Checkov – це програмне забезпечення на основі Python. Це спрощує написання коду, управління ним, контроль версій. Вбудовані політики Checkov охоплюють найкращі практики щодо відповідності та безпеки для Google Cloud, Azure та AWS.
Перевіряйте свій IaC за допомогою Checkov і отримуйте результати в різних форматах, таких як JSON, JUnit XML або CLI. Він ефективно обробляє змінні, створюючи графік, який показує динамічні залежності коду.
Також, Checkov дозволяє легко придушувати прийняті ризики.
Checkov є відкритим програмним забезпеченням та простим у використанні. Його використання включає такі кроки:
- Встановлення Checkov за допомогою pip
- Вибір папки з файлами Cloudformation або Terraform як вхідних даних
- Запуск сканування
- Експорт результату до CLI для кольорового виведення
- Інтеграція результату до CI/CD пайплайнів
TFLint
Terraform linter – TFLint фокусується на виявленні потенційних помилок та забезпеченні кращих практик безпеки.
Хоча Terraform є чудовим інструментом для IaC, він може не перевіряти проблеми, пов’язані з конкретним постачальником. Саме тут TFLint стає в нагоді. Завантажте останню версію цього інструменту для своєї хмарної архітектури, щоб вирішити такі проблеми.
Для встановлення TFLint використовуйте:
- Chocolatey для Windows
- Homebrew для macOS
- TFLint через Docker
TFLint також підтримує різні платформи через плагіни, такі як AWS, Google Cloud та Microsoft Azure.
Terrafirma
Terrafirma – це ще один інструмент статичного аналізу коду, призначений для планів Terraform. Він розроблений для виявлення неправильних конфігурацій безпеки.
Terrafirma надає вивід у форматі tfjson замість JSON. Для встановлення можна використовувати virtualenv та wheels.
Accurics
За допомогою Accurics ви маєте можливість захистити свою хмарну інфраструктуру від неправильних налаштувань, потенційних витоків даних та порушень політики.
Accurics виконує сканування коду для Kubernetes YAML, Terraform, OpenFaaS YAML та Dockerfile. Це дозволяє виявити проблеми до того, як вони завдадуть шкоди, та вжити заходів для захисту хмарної інфраструктури.
Accurics забезпечує відсутність відхилень у конфігурації інфраструктури. Він захищає весь хмарний стек, включаючи контейнери, платформи, інфраструктуру та сервери. Accurics підтримує життєвий цикл DevOps, забезпечуючи відповідність, безпеку та керування.
Виявляючи зміни в інфраструктурі, Accurics допомагає усунути дрейф конфігурацій. Ви отримуєте повну видимість в режимі реального часу, визначаючи інфраструктуру за кодом, та оновлюєте коди для відновлення хмари або відображення змін.
Ви можете повідомляти розробників про проблеми, інтегрувавши Accurics з такими інструментами, як Slack, веб-хуки, електронна пошта, JIRA та Splunk. Accurics також підтримує DevOps-інструменти, включаючи GitHub та Jenkins.
Accurics доступний у вигляді хмарного рішення, а також можна завантажити його автономну версію, залежно від потреб організації.
Ви також можете спробувати їхній інструмент з відкритим кодом – Terrascan, який сканує Terraform відповідно до 500+ політик безпеки.
CloudSploit
Зменшіть ризики безпеки за допомогою сканування шаблонів Cloudformation за лічені секунди з CloudSploit. Він може сканувати понад 95 вразливостей у більш ніж 40 типах ресурсів, що охоплюють широкий спектр продуктів AWS.
CloudSploit ефективно виявляє ризики та дозволяє впровадити заходи безпеки перед запуском хмарної інфраструктури. CloudSploit пропонує сканування на основі плагінів, де ви можете додавати перевірки безпеки після додавання ресурсу AWS до Cloudformation.
CloudSploit також надає доступ через API для зручності використання. Крім того, ви можете використовувати функцію перетягування шаблону для швидкого отримання результатів. Завантаживши шаблон у сканер, він порівнює кожне налаштування ресурсу з визначеними значеннями та видає результат – попередження, успішно чи помилку.
Крім того, ви можете клацнути кожен результат, щоб побачити, на який ресурс впливає проблема.
Висновок
Інфраструктура як код створює значний інтерес у галузі. Це принесло значні зміни в ІТ-інфраструктуру, зробивши її надійнішою та ефективнішою. Однак, недбале використання IaC може призвести до вразливостей у безпеці. Застосовуйте наведені інструменти для сканування IaC на наявність вразливостей.
Хочете вивчити Terraform? Зверніть увагу на цей онлайн-курс.