Ланцюжок постачання програмного забезпечення — це неначе перелік інгредієнтів у плитці темного шоколаду.
Хоча в рекламі сказано, що цей шоколад надзвичайно корисний, лише інгредієнти розкажуть всю історію. Отже, вам потрібно поставити запитання. Чи корисні інгредієнти для споживачів? Як виготовляється продукт? Чи є в процесі виробництва етапи, на яких сторонні чинники можуть негативно вплинути на якість?
Те саме стосується програмного забезпечення. Як і з шоколадними плитками, у ланцюжку постачання програмного забезпечення є місця, які можуть вплинути на якість кінцевого продукту. Якщо це станеться, продукт може давати збої, мати дефекти та уразливості безпеки.
Щоб гарантувати, що програмне забезпечення не містить дефектів, компанії-розробники вдаються до практик DevSecOps. У цій статті ми дамо короткий огляд того, як вони можуть допомогти у випуску програмного забезпечення без уразливостей.
Чому варто обрати DevSecOps для ланцюжка постачання програмного забезпечення?
DevSecOps — скорочення від Розвиток, Безпека та Операції (англ.: Development, Security, Operations) — це стратегія застосування практик безпеки на кожному етапі розробки програмного забезпечення. DevSecOps відрізняється від традиційних стратегій ІТ-безпеки, оскільки ця стратегія впроваджує безпеку раніше в життєвому циклі програми та використовує передові інженерні практики.
"Але моделі доставки програмного забезпечення вже включають практики безпеки... Чому нам потрібно додавати DevSecOps?"
Технологія перевірки ланцюжка постачання програмного забезпечення не завжди придатна до швидкого та надійного тестування (принаймні згідно зі стандартами Agile або DevOps). Ось чому спостерігається зростання кількості нападів на ланцюжки постачання програмного забезпечення.
Ось цифри (джерело: Звіт про стан ланцюжка поставок програмного забезпечення за 2020 рік):
-
Атаки на ланцюжки постачання програмного забезпечення з відкритим кодом зросли на 430% у 2020 році (929 у 2020 році проти 216 за той самий період у 2019 році)
-
51% компаній потребує більше тижня, щоб виправити уразливості нульового дня
-
47% компаній дізналися про вразливість ланцюжка поставок з відкритим кодом через тиждень після атаки
-
11% компонентів додатків із відкритим кодом мають принаймні одну відому вразливість системи безпеки (в середньому це 38 вразливостей).
Зловмисники знають, що компанії використовують компоненти з відкритим кодом та сторонні бібліотеки для скорочення циклу розробки. Тож вони намагаються ввести шкідливий код у сторонній код, що порушує безпеку всього проекту після завантаження та реалізації.
DevSecOps може допомогти мінімізувати цей ризик та допомогти виявити ці уразливості до того, як вони стануть серйозними проблемами.
Пов’язане: Хмарні рішення: як убезпечити дані?
Як захистити ланцюжок постачання програмного забезпечення за допомогою DevSecOps
Ось найважливіші практики DevSecOps для запобігання та усунення уразливостей програмної безпеки.
1. Заздалегідь сплануйте перевірки безпеки
Традиційно планування специфікацій безпеки є головним акцентом на самому початку ланцюжка постачання програмного забезпечення. Згідно з DevSecOps, цей етап повинен також включати ретельний аналіз потенційних проблем безпеки.
Ось найважливіші етапи планування безпеки:
-
Написання стратегії кібербезпеки, де детально описуються методи безпеки, інструменти та заходи
-
Визначення критеріїв безпеки
-
Розробка поетапної стратегії безпеки проти п’яти найбільш актуальних ризиків, які мають подібні проекти.
Результатом цієї практики стане модель управління з відкритим вихідним кодом, стандарти або політики захисту від загальних ризиків. Цей документ повинен бути розроблений, затверджений та впроваджений у проектні процеси, до того як почнеться розробка.
На даний момент багато компаній з виробництва програмного забезпечення планують автоматизацію перевірок, пов’язаних із безпекою. Опитування спільноти DevSecOps у 2020 році показало, що 47% розробників не мають достатньо часу на перевірку безпеки, тому найкращі виконавці у 2,3 рази частіше планують і використовують автоматизовані інструменти.
Пов’язане: Архітектура кібербезпеки у вашій компанії
2. Виконання перевірки безпеки
На цьому етапі проект стартував, тому команда DevSecOps зайнята пошуком джерел ймовірних порушень безпеки. Мета полягає в тому, щоб захистити всі процеси з самого початку та забезпечити можливість перевірити все в будь-який момент.
Спочатку перевіряються найуразливіші місця. Сюди відносяться програми з відкритим кодом, застарілі системи, сторінки адміністратора з паролями, облікові дані безпеки та веб-фреймворки з потенційними вразливими місцями.
Базової перевірки потребують:
-
Системи та додатки на предмет оновлень на початку проєкту та актуальні виправлення
-
Конфіденційні дані, такі як облікові дані для входу, повинні зберігатися в безпечному додатку, як-от 1Password
-
VPN має використовуватись для захисту адміністративних інтерфейсів
-
Важливо регулярно проводити сканування компонентів на предмет зловмисного програмного забезпечення для виявлення шкідливого коду
-
Сторонні або спеціалізовані коди.
Діапазон перевірок ланцюгів постачання буде залежати від характеру проєкту, але ці пункти актуальні для більшості.
3. Безпека на етапі створення та тестування програмного забезпечення
По мірі розгортання проєкту та розробки програмного забезпечення у команди DevSecOps з’являються такі цілі:
-
Використання засобів контролю цілісності для захисту ланцюжка CI/CD та кожного кроку постачання коду до виробництва.
-
Застосування стратегії TDS, коли розробники спочатку пишуть тести, а потім створюють код для реалізації тестів. Це допомагає уточнити очікування та виявити відсутні елементи управління безпекою перед розгортанням.
-
Запуск автоматизованих перевірок залежностей та тестування безпеки на кожному етапі ланцюжка постачання.
-
Захист інфраструктури за допомогою безпечних шлюзів API, VPN, адміністративних панелей; управління доступами.
4. Безпека під час розгортання
Коли проєкт переходить до стадії розгортання, команда DevSecOps переходить у режим «моніторингу». На цей час основними цілями є:
-
Автоматизація управління конфігурацією
-
Моніторинг досвіду користувачів та показників ефективності
-
Підготовка плану реагування на випадок атак.
Ці практики повинні забезпечити швидке розгортання та доставку додатків і забезпечити найкращу відповідність політиці безпеки.
DevSecOps для захисту ланцюга постачання програмного забезпечення: Підсумок
Запуск нового програмного додатка — це хвилюючий момент, і його не варто руйнувати потенційними загрозами, які не були вчасно виявлені.
Щоб мінімізувати ризик проблем із безпекою, компанії все частіше вдаються до практики DevSecOps, яку ми описали в цій статті. Вона максимально зближує професіоналів з безпеки й DevOps, та поєднує їх досвід.
Розробка та впровадження стратегії DevSecOps займає певний час, але це ефективний спосіб забезпечити цілісність програмних продуктів будь-якої складності. Зрештою, наявність такої стратегії мінімізує або й усуне потребу у будь-яких додаткових заходах безпеки після розгортання.