10 найкращих програм для керування секретами для захисту програм

Захистіть те, що важливо для вашого бізнесу.

Працюючи з контейнерами, Kubernetes, хмарою та секретами, є над чим подумати. Ви повинні застосувати та зв’язати найкращі практики щодо керування ідентифікацією та доступом, а також вибрати та застосувати різні інструменти.

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

Не кажіть мені, що у вас все ще є секрети в GitHub.

Що ж, якщо ви створюєте надійну програму, ймовірно, що ваші функції вимагають доступу до секретів або будь-яких інших типів конфіденційної інформації, яку ви зберігаєте.

Ці секрети можуть включати:

  • Ключі API
  • Облікові дані бази даних
  • Ключі шифрування
  • Конфіденційні налаштування конфігурації (адреса електронної пошти, імена користувачів, позначки налагодження тощо)
  • Паролі

Однак надійне збереження цих секретів пізніше може виявитися важким завданням. Отже, ось кілька порад для розробників і системних адміністраторів:

Виправлення залежностей функції

Завжди пам’ятайте про те, щоб відстежувати бібліотеки, які використовуються у функціях, і позначати вразливості, постійно відстежуючи їх.

Використовуйте шлюзи API як буфер безпеки

Не надавайте функції виключно взаємодії з користувачем. Використовуйте можливості шлюзу API ваших хмарних провайдерів, щоб включити ще один рівень безпеки на додаток до ваших функцій.

Захистіть і перевірте дані під час передачі

Обов’язково використовуйте HTTPS для безпечного каналу зв’язку та перевіряйте сертифікати SSL для захисту віддаленої ідентифікації.

Дотримуйтесь правил безпечного кодування для коду програми.

За відсутності серверів для злому зловмисники звернуть увагу на прикладний рівень, тож захистіть свій код особливо ретельно.

Керуйте секретами в безпечному сховищі

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

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

Через відсутність надто великої кількості стандартних рішень багато компаній прагнули створювати власні інструменти керування секретами. Ось кілька, якими ви можете скористатися для своїх вимог.

Сховище

HashiCorp Vault — це інструмент для безпечного зберігання та доступу до секретів.

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

Він надає API, який дозволяє отримати доступ до секретів на основі політик. Будь-який користувач API повинен перевірити та бачити лише ті секрети, на які він має право переглядати.

  Створюйте когортні курси на цих 11 платформах

Vault шифрує дані за допомогою 256-бітного AES із GCM.

Він може накопичувати дані в різних серверах, таких як Amazon DynamoDB, Consul та багато іншого. Vault підтримує реєстрацію в локальний файл для служб аудиту, сервер Syslog або безпосередньо в сокет. Сховище реєструє інформацію про клієнта, який діяв, IP-адресу клієнта, дію та час її виконання

Запуск/перезапуск завжди включає одного або кількох операторів, щоб розпечатати Сховище. Він працює в основному з токенами. Кожен маркер надається політиці, яка може обмежувати дії та шляхи. Ключові особливості Vault:

  • Він шифрує та розшифровує дані, не зберігаючи їх.
  • Vault може генерувати секрети на вимогу для деяких операцій, наприклад баз даних AWS або SQL.
  • Дозволяє реплікацію в кількох центрах обробки даних.
  • Сховище має вбудований захист для секретного відкликання.
  • Служить секретним сховищем з деталями контролю доступу.

Менеджер секретів AWS

Ви очікували AWS у цьому списку. чи не ти?

AWS має рішення для кожної проблеми.

AWS Secrets Manager дозволяє швидко змінювати, керувати та отримувати облікові дані бази даних, ключі API та інші паролі. Використовуючи Secrets Manager, ви можете захищати, аналізувати та керувати секретами, необхідними для доступу до можливостей AWS Cloud у сторонніх службах і локально.

Менеджер секретів дає змогу керувати доступом до секретів за допомогою детальних дозволів. Основні функції AWS Secrets Manager:

  • Шифрує секрети в спокої за допомогою ключів шифрування.
  • Крім того, він розшифровує секрет, а потім безпечно передає через TLS.
  • Надає зразки коду, які допомагають викликати API диспетчера секретів
  • Він має бібліотеки кешування на стороні клієнта для підвищення доступності та зменшення затримки використання ваших секретів.
  • Налаштуйте кінцеві точки Amazon VPC (Virtual Private Cloud), щоб утримувати трафік у мережі AWS.

Сейф без ключа

Akeyless Vault — це уніфікована платформа SaaS для наскрізного керування секретами, яка захищає всі типи облікових даних, як статичних, так і динамічних, включаючи автоматизацію сертифікатів і ключі шифрування. Крім того, він надає унікальне рішення для безпечного віддаленого доступу (нульової довіри) до всіх ресурсів у застарілих, багатохмарних і гібридних середовищах.

Akeyless захищає секрети та ключі за допомогою вбудованої сертифікованої та запатентованої технології FIPS 140-2; він не знає секретів і ключів своїх клієнтів.

Ключові особливості включають:

  • Глобально доступна платформа на основі SaaS, яка пропонує вбудовану високу доступність (HA) і аварійне відновлення (DR) завдяки використанню власної хмарної архітектури на основі багаторегіональної та багатохмарної служби.
  • Розширене керування секретами забезпечує безпечне сховище для статичних і динамічних секретів, таких як паролі, облікові дані, ключі API, токени тощо.
  • Akeyless Vault забезпечує ініціалізацію та ін’єкцію всіх типів секретів для всіх ваших серверів, програм і робочих навантажень, надаючи широкий спектр плагінів, які дозволяють підключатися до всіх ваших DevOps та ІТ-платформ, таких як CI/CD, керування конфігурацією та оркестровка такі інструменти, як Kubernetes & Docker.

Найшвидший час виробництва, оскільки:

  • SaaS – розгортання, інсталяція чи обслуговування не потрібні
  • Миттєва адаптація з автоматичною міграцією секретів із відомих існуючих сховищ секретів

Платформа підтримує ще два стовпи:

  • Доступ до додатків із нульовою довірою (AKA Remote Access) завдяки забезпеченню уніфікованої автентифікації та облікових даних для своєчасного доступу, що дозволяє захистити додатки та інфраструктуру без периметра.
  • Шифрування як послуга дозволяє клієнтам захищати конфіденційні особисті та бізнес-дані, застосовуючи вдосконалене шифрування на рівні програми, сертифіковане FIPS 140-2.
  Як змінити часовий пояс у вашому браузері [Firefox]

Keywhiz

Square Keywhiz допомагає з секретами інфраструктури, брелоками GPG та обліковими даними бази даних, включаючи сертифікати та ключі TLS, симетричні ключі, маркери API та ключі SSH для зовнішніх служб. Keywhiz — це інструмент для обробки та обміну секретами.

Автоматизація в Keywhiz дозволяє нам легко поширювати та налаштовувати основні секрети для наших служб, для чого потрібне послідовне та безпечне середовище. Ключові особливості Keywhiz:

  • Сервер Keywhiz надає JSON API для збору та керування секретами.
  • Він зберігає всі секрети тільки в пам’яті і ніколи не повертається на диск.
  • Інтерфейс створено за допомогою AngularJS, щоб користувачі могли перевірити та використовувати його.

Довірена особа

Confidant — це інструмент керування секретами з відкритим кодом, який забезпечує зручне зберігання та безпечний доступ до секретів. Confidant зберігає секрети у вигляді додавання в DynamoDB і генерує унікальний ключ даних KMS для кожної модифікації всього секрету, використовуючи симетричну автентифіковану криптографію Fernet.

Він надає веб-інтерфейс AngularJS, який дозволяє кінцевим користувачам ефективно керувати секретами, формами секретів для служб і записом змін. Деякі з функцій включають:

  • Аутентифікація KMS
  • Шифрування версійних секретів у стані спокою
  • Зручний веб-інтерфейс для керування секретами
  • Генеруйте маркери, які можна застосовувати для автентифікації між службами або для передачі зашифрованих повідомлень між службами.

SOPS

Дозвольте представити вам SOPS, неймовірний інструмент, який я нещодавно відкрив. Це редактор зашифрованих файлів, який підтримує такі формати, як YAML, JSON, ENV, INI та BINARY. Найкраща частина? Він може шифрувати ваші файли за допомогою AWS KMS, GCP KMS, Azure Key Vault, age та PGP.

Ось де це стає цікавим. Уявіть, що ви працюєте на машині, яка не має прямого доступу до ключів шифрування, таких як ключі PGP. Нічого страшного! SOPS пропонує вам ключові функції обслуговування. Ви можете надати доступ SOPS до ключів шифрування, що зберігаються на віддаленій машині, перенаправивши сокет. Це як мати власного портативного агента GPG!

SOPS працює за моделлю клієнт-сервер для шифрування та дешифрування ключа даних. За замовчуванням він запускає локальну службу ключів у процесі. Клієнт надсилає запити на шифрування або дешифрування до служби ключів за допомогою gRPC і буферів протоколів. Не хвилюйтеся; ці запити не містять жодних криптографічних ключів, публічних чи приватних.

Я повинен підкреслити, що підключення служби ключів наразі не має автентифікації чи шифрування. Для забезпечення безпеки настійно рекомендується автентифікація та шифрування з’єднання за допомогою інших засобів, таких як тунель SSH.

Але зачекайте, є ще щось! SOPS може генерувати журнали аудиту для відстеження доступу до файлів у вашому контрольованому середовищі. Якщо ввімкнено, він записує дії з розшифровки в базі даних PostgreSQL, включаючи мітку часу, ім’я користувача та розшифрований файл. Досить акуратно, правда?

Крім того, SOPS пропонує дві зручні команди для передачі розшифрованих секретів новому процесу: exec-env і exec-file. Перший вводить вихідні дані в середовище дочірнього процесу, а другий зберігає їх у тимчасовому файлі.

  Як щодня отримати нові ілюстрації для шпалер для робочого столу

Пам’ятайте, що розширення файлу визначає метод шифрування, який використовує SOPS. Якщо ви шифруєте файл у певному форматі, обов’язково збережіть оригінальне розширення файлу для розшифровки. Це найпростіший спосіб забезпечити сумісність.

SOPS черпає натхнення в таких інструментах, як hiera-eyaml, credstash, sneaker і password store. Це фантастичне рішення, яке позбавляє від клопоту ручного керування файлами, зашифрованими PGP.

Сховище ключів Azure

Розміщуєте свої програми на Azure? Якщо так, то це буде гарним вибором.

Azure Key Vault дозволяє користувачам керувати всіма секретами (ключами, сертифікатами, рядками з’єднання, паролями тощо) для своїх хмарних програм у певному місці. Він інтегрований з коробки з джерелами та цілями секретів у Azure. Програми за межами Azure можуть далі використовувати його.

Ви також можете покращити продуктивність, зменшивши затримку своїх хмарних програм, зберігаючи криптографічні ключі в хмарі, а не локально.

Azure може допомогти досягти захисту даних і відповідності вимогам.

Докерські секрети

Секрети Docker дозволяють легко додати секрет до кластера, і він надається лише через взаємно автентифіковані з’єднання TLS. Потім дані надходять до вузла менеджера в секретах Docker і автоматично зберігаються у внутрішньому сховищі Raft, що гарантує, що дані мають бути зашифровані.

Секрети докерів можна легко застосувати для керування даними і тим самим передавати їх у контейнери з доступом до них. Це запобігає витоку секретів, коли програма їх використовує.

Нокс

Knox, був розроблений платформою соціальних мереж Pinterest, щоб вирішити їхню проблему з керуванням ключами вручну та веденням журналу аудиту. Knox написаний на Go, і клієнти спілкуються з сервером Knox за допомогою REST API.

Для зберігання ключів Knox використовує тимчасову незалежну базу даних. Він шифрує дані, що зберігаються в базі даних, за допомогою AES-GCM з головним ключем шифрування. Knox також доступний як образ Docker.

Доплерографія

Тисячі організацій, починаючи від стартапів і закінчуючи підприємствами, використовують Doppler для синхронізації своїх секретів і конфігурації додатків між середовищами, членами команди та пристроями.

Немає необхідності ділитися секретами через електронну пошту, файли zip, git і Slack; дозвольте вашим командам співпрацювати, щоб вони отримали його миттєво після додавання секрету. Допплер дає вам відчуття розслаблення, автоматизуючи процес і заощаджуючи час.

Ви можете створити посилання на часто використовувані секрети, щоб одне оновлення через певні проміжки часу виконувало всю вашу роботу. Використовуйте секрети в Serverless, Docker або де завгодно, Doppler працює з вами. Коли ваш стек розвивається, він залишається таким, як є, дозволяючи вам почати роботу протягом декількох хвилин.

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

З Doppler працюйте розумніше, а не старанніше, і отримайте програмне забезпечення для керування секретами БЕЗКОШТОВНО. Якщо вам потрібні додаткові функції та переваги, виберіть стартовий пакет за ціною 6 доларів США на місяць за місце.

Висновок

Сподіваюся, наведене вище дасть вам уявлення про найкраще програмне забезпечення для керування обліковими даними програми.

Далі ознайомтеся з інвентаризацією цифрових активів і рішеннями для моніторингу.