OpenSSL s_client - помилка ssl - безпека TLS

OpenSSL s_client показав, що мій TLS зламаний: діагностика помилок SSL у CI

Коли ви натискаєте commit, Ваш CI/CD pipeline запускається, тести проходять, а розгортання знаходиться лише за один клік. Потім раптово ваша збірка завершується невдачею із загадковим TLS-повідомленням.
Змін коду, яких можна було б звинуватити, поки що немає. pipeline червоний. Що сталося? Для багатьох команд причиною часто є проблема безпеки TLS, така як прострочений сертифікат, слабкий шифр або неправильно налаштований сервер. Гарна новина? Ці проблеми легко виявити, перш ніж вони порушать роботу ваших збірок, якщо ви знаєте, як їх використовувати. s_client OpenSSL.

У цій статті ви знайдете інформацію про діагностику та запобігання помилкам SSL у CI/CD pipelineз використанням openssl s_clientМи розглянемо реальні приклади, методи автоматизації та guardrails які забезпечують безпеку ваших розгортань.

Коли ваш Pipeline Крики: справжній провал TLS

Ось знайома багатьом DevOps-інженерам картина:

Що Помилка SSL означає, що термін дії сертифіката кінцевої точки минув. In CI/CD, це зупиняє розгортання, перериває інтеграційні тести та може заблокувати весь ваш реліз.

Ще гірше те, що якщо проігнорувати цю саму прогалину в безпеці TLS, то виробничі системи можуть бути піддані атакам типу «посередник» або спричинити простої сервісу.

Чому OpenSSL s_client – ​​це ніж розробника для налагодження TLS

На відміну від попереджень браузера, які є нечіткими та вводяться вручну, s_client OpenSSL надає необроблене, детальне уявлення про рукостискання TLS.
Він ідеально підходить для:

  • Перевірка версії TLS та шифру, що використовується кінцевою точкою
  • Перевірка дійсності та надійності сертифікатів
  • Налагодження з’єднань безпосередньо в CI/CD робота

Приклад перевірки рукостискання:

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

Поширені помилки TLS/SSL, які порушують безперервність (CI) Pipelines

Давайте розглянемо невдачі, які найімовірніше виникнуть у CI/CD, з короткими прикладами та наслідками.

1 Сертифікати, термін дії яких минув або ще недійсні

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

2 Слабкі шифри або застарілі протоколи

Вплив: Шлюзи безпеки виходять з ладу, коли сервіс підтримує TLS 1.0/1.1 або слабкі шифри. Це часто з'являється під час сканування на відповідність у регульованих середовищах.

3 Невідповідності імен хостів та самопідписані сертифікати

Приклад: Внутрішня служба проміжного доступу використовує сертифікат, виданий для service.local, але pipeline дзвінки сервіс.devАбо ж сертифікат може бути самопідписаним і не вважатися довіреним сховищем довірених сертифікатів виконавця.

Вплив: Перевірка рукостискання не вдається, якщо її явно не обійти, що небезпечно у виробничому середовищі. Це поширене явище у внутрішніх викликах API, локальних тестових налаштуваннях або неправильно налаштованих середовищах розробки.

4 Неповні ланцюжки сертифікатів

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

Хочете заглибитися CI/CD Загрози?

CI/CD pipelineвідіграють ключову роль у сприянні оптимізованій розробці програмного забезпечення. Однак, оскільки ці pipelineстають дедалі важливішими, необхідність їх захисту від вразливостей стає все більш вираженою. Зануртесь у поглиблене розслідування, яке зосереджено на вирішенні основного ризику, виявленого в OWASP Top-10. CI/CD Ризики безпеки!

Пов'язані читання:

Діагностика збоїв TLS у CI/CD з OpenSSL s_client

Перший крок: відтворіть невдачу у вашому CI/CD середовищі.

Це надає вам повну розшифровку рукостискання TLS, протокол, шифр, ланцюжок сертифікатів та будь-які помилки перевірки.

Шукати:

  • Помилка перевірки повідомлення
  • Старі версії протоколу TLS
  • Відсутність проміжних продуктів у ланцюзі

Перехід до автоматизації:

Щойно ви зможете визначити першопричину, наступним кроком буде автоматичне встановлення цих перевірок. Ручна діагностика може бути прийнятною один раз, але без автоматизації ви побачите те саме. Помилка SSL в іншому pipeline тижні потому.

Автоматизація перевірок TLS для забезпечення безпеки Guardrails

Ви можете вбудовувати перевірки TLS у свій CI/CD щоб погані конфігурації виходили з ладу раніше:

  • Повідомити, якщо термін дії сертифіката закінчується менш ніж за 30 днів
  • Блокувати слабкі шифри та застарілі версії TLS
  • Вимагати повних ланцюжків сертифікатів

Приклад захисного огородження:

Порада: Запустіть це на етапі перед розгортанням, щоб виявити проблеми перед об'єднанням коду.

Запобігання TLS-сюрпризам у продакшені

Проблеми з TLS виникають не лише під час розгортання. Термін дії сертифікатів закінчується будь-коли. Саме тому постійний моніторинг є важливим. незамінний у DevSecOps.

Приклад запланованої перевірки за допомогою дій GitHub:

Ви можете адаптувати це до cron-завдань, Jenkins або Kubernetes CronJobs для постійного сканування кінцевих точок на наявність проблем безпеки TLS.

Реальні ризики для AppSec від зламаного TLS

Пошкоджені конфігурації TLS – це не просто проблеми зі збіркою, а й проблеми безпеки:

  • атаки MITM якщо шифрування слабке або відсутнє
  • Атаки на пониження якщо дозволені старіші протоколи
  • Ризики ланцюга поставок якщо завантаження пакетів відбувається через незахищені з’єднання

Збираючи все разом з Guardrails

Уявіть собі цей процес як: Діагностика → Автоматизація → Застосування.

Чому Guardrails Матерія: In CI/CD, guardrails зупинити незахищені конфігурації TLS перед їх запуском. Вони можуть заблокувати розгортання, якщо:

  • Термін дії сертифіката скоро закінчиться
  • Увімкнено слабкий шифр
  • Використовується застарілий протокол

Приклад: У GitLab CI завдання миттєво завершується невдачею, якщо кінцева точка відповідає TLS 1.0, що примушує до виправлення перед злиттям.

Такі інструменти, як Ксігені може розширити ці guardrails просканувати весь ланцюжок постачання програмного забезпечення на наявність прогалин у безпеці TLS.

Зручні короткий огляди OpenSSL s_client для неперервної інтеграції

Перевірити термін дії:

Перелічіть шифри:

Остаточний винос

OpenSSL s_client це більше, ніж команда для усунення несправностей; це інструмент DevSecOps для проактивної безпеки TLS. Використовуйте його для виявлення помилок SSL, перш ніж вони порушать ваші збірки, та автоматизуйте його, щоб вас більше ніколи не дивували закінчення терміну дії сертифіката або слабкий шифр.

інструменти-для-аналізу-складу-програмного-засобу-sca
Визначте пріоритети, усуньте та захистіть ризики, пов'язані з програмним забезпеченням
Отримайте свій безкоштовний обліковий запис.
Не потрібна кредитна картка.

Забезпечте розробку та доставку програмного забезпечення

з пакетом продуктів Xygeni