Лідери думок
Штучний інтелект змінює, хто вирішує, яке програмне забезпечення потрапляє до вашої організації

Штучний інтелект став частиною повсякденного розроблення програмного забезпечення. Від генерації API та написання тестів до створення цілком застосунків, кодові асистенти допомагають інженерним командам розв’язувати проблеми та випускати програмне забезпечення швидше, ніж будь-коли раніше. Продуктивні вигоди є невід’ємними, і організації швидко приймають штучний інтелект на всіх етапах життєвого циклу розроблення програмного забезпечення.
Більшість розмов зосереджувалася на коді, який генерує штучний інтелект. Чи можуть розробники довіряти коду, згенерованому штучним інтелектом? Чи він вводить універсальні вразливості? Як повинні команди безпеки перевіряти його? Ці питання важливі, але вони не є найбільшою зміною, яку штучний інтелект приносить у розроблення програмного забезпечення. Штучний інтелект пішов далі простої генерації коду, і він все частіше впливає на перші рішення щодо вибору програмного забезпечення, які формують те програмне забезпечення, яке потрапляє до організації.
Кодові асистенти штучного інтелекту рідко створюють застосунки з нуля, і вони складаються з рішень, які використовують існуючі фреймворки, відкриті бібліотеки, SDK, образи контейнерів, та пакетні екосистеми. Кожна рекомендація формує програмну основу, на якій будується застосунок, часто ще до того, як розробник перегляне перший рядок згенерованого коду.
Тривалий час перше рішення щодо довіри у розробленні програмного забезпечення майже повністю належало розробникам, але зараз це припущення починає змінюватися. Все частіше штучний інтелект робить першу рекомендацію, тоді як розробники підтверджують результат пізніше. Ця тонка зміна має значні наслідки для безпеки ланцюга постачання програмного забезпечення, оскільки кожна рекомендація містить у собі імпліцитне рішення щодо довіри.
Організації витратили роки на регулювання того, як створюється, тестується та розгортається програмне забезпечення. Наступним викликом є регулювання того, як програмне забезпечення вибирається в середовищі розробки, заснованому на штучному інтелекті.
Перше рішення щодо довіри
Кожен застосунок залежить від програмного забезпечення, створеного тисячами учасників у безлічі відкритих проєктів. Перед введенням нової залежності розробники зазвичай оцінювали документацію, порівнювали фреймворки, переглядали прийняття спільнотою, вивчали частоту випусків та розглядали, чи був проєкт достатньо зрілим для виробництва. Розробники не завжди робили правильний вибір, але кожна залежність вводилася свідомо.
Сьогодні розробник може просто попросити асистента штучного інтелекту “створити безпечний REST API з автентифікацією та підтримкою PostgreSQL.” За кілька секунд штучний інтелект генерує робочий проєкт. По ходу цього він рекомендує час виконання, вибирає фреймворк, посилається на базовий образ контейнера, імпортує бібліотеки автентифікації, вибирає SDK, та генерує маніфести залежностей, такі як package.json, requirements.txt, або pom.xml. Менеджери пакетів згодом розраховують ці залежності та їх транзитивні залежності під час процесу побудови.
Більшість розробників переглядають застосунок, згенерований штучним інтелектом, але лише небагато зупиняються, щоб розглянути кожне програмне рішення, яке штучний інтелект приймає по ходу цього процесу. Штучний інтелект стиснув вибір програмного забезпечення, який раніше займав години досліджень, до секунд, і все частіше робить першу рекомендацію від імені розробників.
Кожна рекомендація є рішенням щодо довіри
Кожна програмна складова має свій ланцюг довіри. Бібліотека має утримувачів, учасників, процеси випуску, практики підписання, залежності та походження. Образ контейнера успадковує програмне забезпечення від апстрім-розподілів, а SDK вводить додаткові пакети, кожен з яких розширює цей ланцюг довіри.
Одна рекомендація штучного інтелекту може швидко розширитися до сотень програмних складових, які стають частиною застосунку. Відкрите програмне забезпечення завжди працювало саме так. Що змінюється, то хто приймає ці рішення щодо довіри спочатку. Історично розробники оцінювали та вибирали компоненти, яким вони довіряли. Все частіше системи штучного інтелекту роблять перші рекомендації, тоді як розробники підтверджують результат пізніше.
Це звучить як мала зміна, але вона фундаментально змінює те, як організації повинні думати про безпеку ланцюга постачання програмного забезпечення.
Штучний інтелект оптимізує робоче програмне забезпечення, а не організаційну довіру
Це не означає, що штучний інтелект робить погані рекомендації. Навпаки.
Асистенти кодування штучного інтелекту добре роблять рекомендації щодо програмного забезпечення, оскільки вони навчилися на мільйонах прикладів того, як розробники розв’язують подібні проблеми. В результаті популярні фреймворки, добре підтримувані бібліотеки та знайомі шаблони реалізації природно з’являються у їхніх пропозиціях, і саме це робить ці інструменти так цінними.
Але ці цілі оптимізації фундаментально відрізняються від питань, на які повинні відповісти команди безпеки підприємств. Штучний інтелект не оцінює, чи пакет відповідає політиці програмного забезпечення організації, чи образ контейнера був перебудований з джерела, чи програмна походження була перевірена, чи залежність походить з затвердженого джерела програмного забезпечення.
Функціональність, популярність та імовірність є корисними сигналами для генерації коду, але вони ніколи не повинні використовуватися як заміни перевірки.
Чому нам потрібно інтегрувати ліворуч
Тривалий час безпека ланцюга постачання програмного забезпечення зосереджувалася на ідентифікації ризиків після того, як програмне забезпечення ввійшло до процесу розроблення. Сканери уразливостей, аналіз складу програмного забезпечення та SBOM значно покращили видимість програмного забезпечення, яке містять застосунки.
Ці інструменти залишаються важливими, але вони звертаються до іншої частини проблеми.
Штучний інтелект перемістив вибір програмного забезпечення значно раніше в життєвому циклі розроблення, тому до моменту, коли традиційні засоби безпеки починають свій аналіз, згенерований проєкт може вже посилатися на десятки залежностей, які тепер потребують оцінки, виправлення або заміни. Організації все ще реагують на рішення щодо вибору програмного забезпечення, які вже ввійшли до потоку розроблення.
Це саме тому я вважаю, що організаціям потрібно інтегрувати ліворуч.
Ідея інтеграції ліворуч проста: довіра повинна бути встановлена до того, як програмне забезпечення стане частиною застосунку, а не після цього. Коли штучний інтелект стає активним учасником розроблення програмного забезпечення, цей принцип стає ще важливішим. Регулювання повинно переміститися до точки, де вибирається програмне забезпечення, а не де воно буде відскановано.
Організаціям потрібно визначити довірені джерела програмного забезпечення, встановити, яке програмне забезпечення штучний інтелект дозволений рекомендувати, та перевірити ці складові до того, як вони стануть частиною потоку розроблення. Метою є забезпечення того, щоб штучний інтелект прискорював доставку програмного забезпечення всередині обмежень, які відображають стандарти безпеки, відповідності та інженерії організації.
Регулювання вибору програмного забезпечення в епоху штучного інтелекту
Організації вже визначають, де може запускатися програмне забезпечення, як воно розгортається, та хто авторизований його випускати. Все частіше вони також будуть визначати, яке програмне забезпечення штучний інтелект дозволений рекомендувати.
Це саме тут стає все більш важливим поняття постawy ланцюга постачання програмного забезпечення. Організаціям потрібно мати впевненість не лише у програмному забезпеченні, яке вони створюють, але й у програмному забезпеченні, яке штучний інтелект рекомендує від їхнього імені. Це впевненість прийде з перевірки, довірених джерел програмного забезпечення та регулювання, яке починається до того, як програмне забезпечення ввійде до потоку розроблення.
Штучний інтелект продовжить трансформувати розроблення програмного забезпечення, і справедливо так. Продуктивні вигоди надто суттєві, щоб їх ігнорувати, але коли організації приймають розроблення, засноване на штучному інтелекті, вони повинні визнати, що вибір програмного забезпечення стає все більш автоматизованим.
Організації, які досягнуть успіху, будуть тими, які встановлять довірені джерела програмного забезпечення, перевірять програмні складові, які рекомендують штучний інтелект, та інтегрують регулювання у вибір програмного забезпечення з самого початку.
Штучний інтелект змінює те, як створюється програмне забезпечення, але тепер, що ще важливіше, він змінює те, як програмне забезпечення вибирається. Адже в епоху штучного інтелекту програмне забезпечення, якому ви довіряєте, все частіше залежить від програмного забезпечення, яке ваш штучний інтелект вибирає спочатку.












