Liderzy opinii
Sztuczna inteligencja zmienia, kto decyduje o tym, jakie oprogramowanie wchodzi do Twojej organizacji

Sztuczna inteligencja stała się częścią codziennej rozwoju oprogramowania. Od generowania interfejsów API i pisania testów po tworzenie całych aplikacji, asystenci kodowania pomagają zespołom inżynierskim rozwiązywać problemy i dostarczać oprogramowanie szybciej niż kiedykolwiek wcześniej. Korzyści produktywności są niezaprzeczalne, a organizacje szybko przyjmują sztuczną inteligencję w całym cyklu życia rozwoju oprogramowania.
Większość dyskusji dotyczyła kodu generowanego przez sztuczną inteligencję. Czy deweloperzy mogą ufać kodowi generowanemu przez sztuczną inteligencję? Czy wprowadza on luki w zabezpieczeniach? Jak zespoły bezpieczeństwa powinny go sprawdzić? Te pytania są ważne, ale nie są największą zmianą, którą sztuczna inteligencja wprowadza do rozwoju oprogramowania. Sztuczna inteligencja przeszła już poza generowanie tylko kodu i coraz częściej wpływa na pierwsze decyzje dotyczące wyboru oprogramowania, które kształtuje to, jakie oprogramowanie wchodzi do organizacji.
Asystenci kodowania sztucznej inteligencji rzadko budują aplikacje od podstaw, a zamiast tego komponują rozwiązania przy użyciu istniejących frameworków, bibliotek open-source, SDK, obrazów kontenerów i ekosystemów pakietów. Każda rekomendacja kształtuje podstawę oprogramowania, na której aplikacja jest budowana, często zanim deweloper przejrzy pierwszą linię wygenerowanego kodu.
Przez dziesięciolecia pierwsza decyzja zaufania w rozwoju oprogramowania należała prawie wyłącznie do deweloperów, ale teraz ten założenie zaczyna się zmieniać. Coraz częściej sztuczna inteligencja dokonuje pierwszej rekomendacji, a deweloperzy walidują wynik później. Ta subtelna zmiana ma znaczące implikacje dla bezpieczeństwa łańcucha dostaw oprogramowania, ponieważ każda rekomendacja niesie ze sobą implicite decyzję zaufania.
Organizacje przez lata regulowały, jak oprogramowanie jest budowane, testowane i wdrażane. Następne wyzwanie polega na regulowaniu, jak oprogramowanie jest wybierane w środowisku rozwoju natywnego sztucznej inteligencji.
Pierwsza decyzja zaufania
Każda aplikacja zależy od oprogramowania stworzonego przez tysiące współpracowników w licznych projektach open-source. Przed wprowadzeniem nowej zależności deweloperzy zwykle oceniali dokumentację, porównywali frameworki, przeglądali przyjęcie społeczności, badali częstotliwość wydań i rozważali, czy projekt jest wystarczająco dojrzały do produkcji. Deweloperzy nie zawsze podejmowali słuszne decyzje, ale każda zależność była wprowadzana celowo.
Dziś deweloper może po prostu poprosić asystenta sztucznej inteligencji o “budowę bezpiecznego interfejsu API z uwierzytelnianiem i obsługą PostgreSQL”. W ciągu kilku sekund sztuczna inteligencja generuje działający projekt. W trakcie tego procesu rekomenduje środowisko uruchomieniowe, wybiera framework, odnosi się do podstawowego obrazu kontenera, importuje biblioteki uwierzytelniania, wybiera SDK, i generuje manifesty zależności, takie jak package.json, requirements.txt, lub pom.xml. Menadżerzy pakietów następnie rozwiązują te zależności i ich zależności przeniesione podczas procesu budowania.
Większość deweloperów przegląda aplikację wygenerowaną przez sztuczną inteligencję, ale tylko nieliczni zatrzymują się, aby zbadać każdą decyzję sztucznej inteligencji podjętą w trakcie tego procesu. Sztuczna inteligencja skompresowała wybór oprogramowania, który wcześniej zajmował godziny badań, do kilku sekund i coraz częściej podejmuje pierwszą rekomendację w imieniu deweloperów.
Każda rekomendacja jest decyzją zaufania
Każdy artefakt oprogramowania niesie ze sobą łańcuch zaufania. Biblioteka ma utrzymujących, współpracowników, procesy wydawnicze, praktyki podpisywania, zależności i pochodzenie. Obraz kontenera dziedziczy oprogramowanie z dystrybucji nadrzędnych, a SDK wprowadza dodatkowe pakiety, każdy z nich rozszerzając ten łańcuch zaufania.
Jedna rekomendacja sztucznej inteligencji może szybko rozwinąć się w setki artefaktów oprogramowania, które stają się częścią aplikacji. Open-source zawsze działał w ten sposób. Co się zmienia, to kto podejmuje te decyzje zaufania najpierw. Historycznie deweloperzy oceniali i wybierali komponenty, którym ufali. Coraz częściej systemy sztucznej inteligencji podejmują initialne rekomendacje, a deweloperzy walidują wynik później.
Brzmi to jak mała zmiana, ale fundamentalnie zmienia, jak organizacje powinny myśleć o bezpieczeństwie łańcucha dostaw oprogramowania.
Sztuczna inteligencja optymalizuje działające oprogramowanie, a nie zaufanie organizacyjne
Nie oznacza to, że sztuczna inteligencja podejmuje złe rekomendacje. Wręcz przeciwnie.
Asystenci kodowania sztucznej inteligencji są dobrzy w rekomendowaniu oprogramowania, ponieważ nauczyli się z milionów przykładów, jak deweloperzy rozwiązują podobne problemy. W rezultacie popularne frameworki, dobrze obsługiwane biblioteki i znane wzorce wdrażania pojawiają się naturalnie w ich sugestiach, i to jest właśnie to, co sprawia, że te narzędzia są tak wartościowe.
Jednak te cele optymalizacji są fundamentalnie różne od pytań, na które zespoły bezpieczeństwa przedsiębiorstw potrzebują odpowiedzi. Sztuczna inteligencja nie ocenia w sposób naturalny, czy pakiet jest zgodny z polityką oprogramowania organizacji, czy obraz kontenera został odbudowany z źródła, czy pochodzenie oprogramowania zostało zweryfikowane, czy zależność pochodzi z zatwierdzonego źródła oprogramowania.
Funkcjonalność, popularność i prawdopodobieństwo są przydatnymi sygnałami do generowania kodu, ale nigdy nie powinny być używane jako substytuty weryfikacji.
Dlaczego musimy zintegrować na lewo
Przez lata bezpieczeństwo łańcucha dostaw oprogramowania koncentrowało się na identyfikowaniu ryzyka po wprowadzeniu oprogramowania do procesu rozwoju. Skanery luk, analiza składu oprogramowania i SBOM znacznie poprawiły widoczność oprogramowania, które aplikacje zawierają.
Te narzędzia pozostają niezbędne, ale dotyczą one innego fragmentu problemu.
Sztuczna inteligencja przenosi wybór oprogramowania znacznie wcześniej w cyklu życia rozwoju, więc do momentu, gdy tradycyjne kontrolki bezpieczeństwa zaczną swoją analizę, wygenerowany projekt może już odnosić się do dziesiątek zależności, które wymagają oceny, usunięcia lub zastąpienia. Organizacje wciąż reagują na wybory oprogramowania, które już weszły do przepływu pracy.
To jest powód, dla którego uważam, że organizacje muszą zintegrować na lewo.
Idea zintegrowania na lewo jest prosta: zaufanie powinno być ustanowione przed tym, jak oprogramowanie staje się częścią aplikacji, a nie po tym. Gdy sztuczna inteligencja staje się aktywnym uczestnikiem rozwoju oprogramowania, ten zasada staje się jeszcze ważniejsza. Regulacja musi przenieść się do punktu, w którym oprogramowanie jest wybierane, a nie gdzie jest ostatecznie skanowane.
Organizacje muszą określić zaufane źródła oprogramowania, ustalić, jakie artefakty oprogramowania sztuczna inteligencja jest upoważniona do rekomendowania, i zweryfikować te artefakty przed tym, jak staną się częścią przepływu pracy rozwoju. Celem jest zapewnienie, że sztuczna inteligencja przyspiesza dostawę oprogramowania w ramach barier, które odzwierciedlają standardy bezpieczeństwa, zgodności i inżynierii organizacji.
Regulowanie wyboru oprogramowania w erze sztucznej inteligencji
Organizacje już definiują, gdzie oprogramowanie może być uruchomione, jak jest wdrożone i kto jest upoważniony do jego wydania. Coraz częściej będą musiały również określić, jakie oprogramowanie sztuczna inteligencja jest upoważniona do rekomendowania.
To jest miejsce, w którym postawa łańcucha dostaw oprogramowania staje się coraz bardziej istotna. Organizacje muszą mieć pewność nie tylko co do oprogramowania, które budują, ale także co do oprogramowania, które sztuczna inteligencja rekomenduje w ich imieniu. Ta pewność pochodzi z weryfikacji, zaufanych źródeł oprogramowania i regulacji, które zaczynają się przed tym, jak oprogramowanie wchodzi do potoku rozwoju.
Sztuczna inteligencja będzie nadal transformować rozwój oprogramowania, i słusznie. Korzyści produktywności są zbyt znaczące, aby je zignorować, ale gdy organizacje przyjmują rozwój natywny sztucznej inteligencji, muszą uznać, że wybór oprogramowania staje się coraz bardziej zautomatyzowany.
Organizacje, które odnoszą sukces, będą tymi, które ustanawiają zaufane źródła oprogramowania, weryfikują artefakty oprogramowania, które sztuczna inteligencja rekomenduje, i integrują regulację w wyborze oprogramowania od samego początku.
Sztuczna inteligencja zmienia, jak oprogramowanie jest pisane, ale teraz, co ważniejsze, zmienia, jak oprogramowanie jest wybierane. Ponieważ w erze sztucznej inteligencji oprogramowanie, któremu ufamy, coraz bardziej zależy od oprogramowania, które nasza sztuczna inteligencja wybiera jako pierwsza.












