Якщо ви програміст, незалежно від того, чи програмуєте ви для хобі чи професійно, ви знатимете, що створення нової версії вашого проекту – офіційної «релізної» версії, яку ви самі, або ваші друзі, або ваші клієнти, фактично встановите і використання - це завжди трохи білої їзди.
Зрештою, версія випуску залежить від усього вашого коду, покладається на всі налаштування за замовчуванням, виходить лише з вашою опублікованою документацією (але без інсайдерських знань) і має працювати навіть на комп’ютерах, яких ви ніколи раніше не бачили, налаштованих у конфігурації, які ви ніколи не уявляли, разом з іншим програмним забезпеченням, яке ви ніколи не перевіряли на сумісність.
Простіше кажучи, чим складнішим стає проект, і чим більше розробників над ним працюють, і тим більше окремих компонентів мають злагоджено працювати з усіма іншими…
… тим більша ймовірність того, що все це буде набагато менш вражаючим, ніж сума частин.
Як грубу аналогію, візьміть до уваги, що легкоатлетична команда з найшвидшими індивідуальними спринтерами на дистанції 100 метрів не завжди перемагає в естафеті 4x100 метрів.
CI на допомогу
Однією зі спроб уникнути такого роду кризи «але на моєму комп’ютері все спрацювало» є прийом, відомий на жаргоні як Безперервна інтеграціяабо CI для короткого.
Ідея проста: щоразу, коли будь-хто вносить зміни у свою частину проекту, беріть новий код цієї особи та проходьте їх разом із новим кодом через повний цикл збирання та тестування, як перед створенням остаточного випуску версія.
Будуйте рано, будуйте часто, будуйте все, будуйте завжди!
Зрозуміло, що це розкіш, яку не можуть прийняти проекти у фізичному світі: якщо ви будуєте, скажімо, Сіднейський міст Харбор, ви не зможете відновлювати весь тестовий проміжок, використовуючи абсолютно нові сировинні матеріали, кожного разу, коли ви вирішіть налаштувати процес клепки або перевірити, чи зможете ви встановити більші флагштоки на вершині.
Навіть коли ви «створюєте» проект комп’ютерного програмного забезпечення з однієї групи вихідних файлів у колекцію вихідних файлів, ви споживаєте дорогоцінні ресурси, такі як електроенергія, і вам потрібен раптовий сплеск обчислювальної потужності, щоб працювати разом із усіма комп’ютерами, які розробники самі використовують.
Зрештою, у процесах розробки програмного забезпечення, які використовують CI, ідея полягає не в тому, щоб чекати, доки всі будуть готові, а потім усі відступити від програмування та чекати завершення остаточної збірки.
Збірки відбуваються цілий день, щодня, щоб програмісти могли задовго визначити, якщо вони ненавмисно внесли «покращення», які негативно впливають на інших – порушення конструкції, як можна сказати на жаргоні.
Ідея така: завчасно виходити з ладу, швидко виправляти, підвищувати якість, досягати передбачуваного прогресу та відправляти вчасно.
Звичайно, навіть після успішної тестової збірки ваш новий код може все ще мати помилки, але принаймні ви не дійдете до кінця циклу розробки, а потім виявите, що кожному доведеться повернутися до креслярської дошки, щоб отримати програмне забезпечення для створення та роботи взагалі, тому що різні компоненти вийшли з ладу.
Ранні методи розробки програмного забезпечення часто називали наступними модель водоспаду, де всі працювали злагоджено, але незалежно, коли проект м’яко дрейфував вниз за течією між кінцевими датами випуску версій, поки все не об’єдналося в кінці циклу, щоб створити новий випуск, готовий пірнути через бурхливий водоспад оновлення версії, лише щоб вийти в іншу пологий період чистої води вниз за течією для подальшого проектування та розробки. Проте одна проблема з цими «водоспадами» полягала в тому, що ви часто опинялися в пастці, очевидно, нескінченного кругового виру прямо на самому краю водоспаду, незважаючи на силу тяжіння, не в змозі перебратися через край прірви, поки не здійснили довгі хаки та модифікації (і супутні перевищення) зробили подальшу подорож можливою.
Просто робота для хмари
Як ви можете собі уявити, впровадження CI означає наявність у вашому розпорядженні купи потужних, готових до роботи серверів щоразу, коли будь-який із ваших розробників запускає процедуру збирання та тестування, щоб уникнути повернення до «застрягання на «Ситуація на самому краю водоспаду».
Звучить як робота для хмари!
І справді, це так, завдяки численним так званим хмарним службам CI/CD (це CD це не музичний диск, який можна відтворити, а скорочення для безперервна доставка), пропонуючи вам гнучкість мати постійну кількість різних гілок різних продуктів, які одночасно проходять через різноконфігуровані збірки, можливо, навіть на різному обладнанні.
КолоCI є одним із таких хмарних сервісів…
…але, на жаль для їхніх клієнтів, вони щойно зазнав порушення.
Технічно, і як здається звичним для цих днів, компанія фактично не використовувала слова «порушення», «вторгнення» або «атака» ніде у своєму офіційному повідомленні: поки що це лише інцидент безпеки.
Оригінальний повідомлення [2023-01-04] просто заявив, що:
Ми хотіли повідомити вам, що зараз ми розслідуємо інцидент із безпекою та що наше розслідування триває. Ми надамо вам оновлення щодо цього інциденту та нашу відповідь, щойно вони стануть доступними. На даний момент ми впевнені, що в наших системах немає неавторизованих учасників; однак із міркувань обережності ми хочемо переконатися, що всі клієнти вживають певних профілактичних заходів для захисту ваших даних.
Що ж робити?
Відтоді CircleCI надає регулярні оновлення та додаткові поради, які в основному зводяться до наступного:Будь ласка, поверніть усі секрети, що зберігаються в CircleCI».
Як ми вже пояснювали раніше, жаргонне слово обертати вибрано невдало, тому що це спадщина небезпечного минулого, коли люди буквально «перемінювали» паролі та секрети за допомогою невеликої кількості передбачуваних варіантів не лише тому, що тоді було важче відстежувати нові, а й тому, що кібербезпека не була не настільки важливий, як сьогодні.
CircleCI означає, що вам потрібно ЗМІНИТИ всі свої паролі, секрети, маркери доступу, змінні середовища, публічно-приватні ключі тощо, імовірно тому, що зловмисники, які зламали мережу, або вкрали ваші, або неможливо довести, що це не так. щоб вкрав їх.
Компанія має a надав список різних типів конфіденційних даних безпеки, які постраждали від порушення, і створив зручний сценарій під назвою CircleCI-Env-Inspector який можна використовувати для експорту списку всіх секретів CI, які потрібно змінити у вашому середовищі, у форматі JSON.
Крім того, кіберзлочинці тепер можуть мати маркери доступу та криптографічні ключі, які можуть надати їм шлях назад у вашу власну мережу, особливо тому, що процеси побудови КІ іноді потребують «телефонувати додому», щоб отримати код або дані, які ви не можете або не хочете завантажити в хмару (сценарії, які це роблять, на жаргоні називаються бігунів).
Отже, CircleCI радить:
Ми також рекомендуємо клієнтам переглядати внутрішні журнали своїх систем на предмет будь-якого несанкціонованого доступу, починаючи з 2022 грудня 12 року [до 21 січня 2023 року включно] або після завершення [зміни ваших секретів].
Інтригуюче, хоча й зрозуміло, деякі клієнти зауважили, що зазначена CircleCI дата початку цього порушення [2022-12-21] випадково збігається з публікацією в блозі компанія опублікована про останні оновлення надійності.
Клієнти хотіли знати: «Чи було порушення пов’язане з помилками, виявленими в цьому оновленні?»
Враховуючи, що статті про оновлення надійності компанії здаються постійними підсумками новин, а не повідомленнями про окремі зміни, внесеними в конкретні дати, очевидна відповідь: «Ні»…
…і CircleCI заявив, що випадкова дата 2022-12-21 для публікації в блозі про надійність була саме цим: збігом.
Щасливого перетворення ключів!
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- Платоблокчейн. Web3 Metaverse Intelligence. Розширені знання. Доступ тут.
- джерело: https://nakedsecurity.sophos.com/2023/01/09/circleci-code-building-service-suffers-total-credential-compromise/
- 1
- 100M
- a
- МЕНЮ
- абсолют
- достаток
- доступ
- активний
- насправді
- Прийняття
- просування
- рада
- впливати
- після
- ВСІ
- пліч-о-пліч
- завжди
- та
- Сповіщення
- Інший
- відповідь
- будь
- де-небудь
- статті
- автор
- автоматичний
- доступний
- назад
- фонове зображення
- погано
- оскільки
- ставати
- стає
- перед тим
- почалася
- між
- більший
- Біт
- Блог
- рада
- border
- дно
- гілки
- порушення
- BRIDGE
- помилки
- будувати
- Будує
- гроно
- званий
- Центр
- певний
- зміна
- Зміни
- заміна
- вибір
- вибраний
- ясно
- хмара
- хмарні сервіси
- код
- збіг
- збір
- color
- загальний
- компанія
- Компанії
- сумісність
- Зроблено
- завершення
- комплекс
- Компоненти
- компроміс
- комп'ютер
- комп'ютери
- обчислення
- обчислювальна потужність
- впевнений
- Вважати
- будівництво
- споживати
- може
- обкладинка
- створювати
- створений
- створення
- ІНТЕРЕНЦІЙНИЙ
- криза
- сирий
- криптографічні
- В даний час
- Клієнти
- кіберзлочинці
- Кібербезпека
- Небезпечний
- дані
- Дата
- Дати
- день
- Днів
- дефолт
- залежить
- дизайн
- розробників
- розробка
- DID
- різний
- дисплей
- документація
- Ні
- Не знаю
- вниз
- малювання
- Рано
- край
- або
- електрика
- Нескінченний
- Машинобудування
- забезпечувати
- Весь
- Навколишнє середовище
- особливо
- Навіть
- кожен день
- все
- все
- пояснені
- експорт
- FAIL
- швидкий
- Файли
- остаточний
- знайти
- кінець
- відповідати
- виправляти
- Гнучкість
- після
- друзі
- від
- Повний
- далі
- ніжний
- отримати
- Давати
- Go
- йде
- буде
- захоплення
- вага
- хакі
- мобільний
- траплятися
- відбувається
- апаратні засоби
- має
- висота
- тут
- hover
- Однак
- HTTPS
- ідея
- мається на увазі
- важливо
- вражаючий
- in
- інцидент
- У тому числі
- Augmenter
- самостійно
- індивідуальний
- Інсайдер
- встановлювати
- внутрішній
- введені
- дослідження
- IT
- жаргон
- робота
- подорож
- зберігання
- ключі
- Знати
- знання
- відомий
- Legacy
- Ймовірно
- список
- Довго
- Luxury
- made
- зробити
- РОБОТИ
- Маржа
- Матеріали
- макс-ширина
- засоби
- заходи
- методика
- може бути
- Поправки
- більше
- музика
- Необхідність
- потреби
- негативно
- мережу
- Нові
- новини
- нормальний
- зазначив,
- сповіщення
- номер
- численний
- Очевидний
- пропонує
- офіційний
- ONE
- постійний
- порядок
- оригінал
- Інше
- власний
- частина
- частини
- Паролі
- Минуле
- Пол
- Люди
- може бути
- period
- фізичний
- plato
- Інформація про дані Платона
- PlatoData
- зануритися
- точка
- положення
- це можливо
- пошта
- Пости
- влада
- потужний
- дорогоцінний
- Передбачуваний
- приватний
- Проблема
- процес
- процеси
- Продукти
- професійно
- Програміст
- Програмування
- прогрес
- проект
- проектів
- захист
- доведений
- забезпечувати
- за умови
- опублікований
- put
- якість
- швидко
- Сировина
- готовий
- останній
- рекомендувати
- називають
- регулярний
- пов'язаний
- звільнити
- надійність
- запросити
- ресурси
- відповідь
- огляд
- Ride
- рухомий
- прогін
- то ж
- scripts
- безпеку
- Здається,
- Сервери
- обслуговування
- Послуги
- комплект
- налаштування
- КОРАБЕЛЬ
- Короткий
- стенограма
- простий
- просто
- ситуація
- невеликий
- плавно
- So
- так далеко
- Софтвер
- розробка програмного забезпечення
- розробка програмного забезпечення
- solid
- деякі
- Source
- конкретний
- Починаючи
- заявив,
- Крок
- Як і раніше
- вкрали
- зберігати
- успішний
- такі
- раптовий
- Страждає
- Саміт
- сплеск
- SVG
- Сідней
- Systems
- Приймати
- команда
- тест
- Команда
- їх
- самі
- річ
- через
- час
- до
- сьогодні
- разом
- Жетони
- топ
- Усього:
- трек
- перехід
- прозорий
- Зрозуміло
- Оновити
- Updates
- модернізація
- URL
- використання
- різний
- версія
- чекати
- хотів
- вода
- Чи
- який
- ВООЗ
- волі
- виграти
- слово
- слова
- Work
- працював
- працював добре
- робочий
- світ
- б
- Ти
- вашу
- себе
- зефірнет