Tankeledare

AI fÃķrÃĪndrar vem som bestÃĪmmer vilken programvara som kommer in i din organisation

mm
LÃĪgg till Unite.AI bland dina fÃķredragna kÃĪllor pÃĨ Google

AI har blivit en del av den vardagliga programvaruutvecklingen. FrÃĨn att generera API:er och skriva tester till att skapa hela applikationer, hjÃĪlper kodassistenter utvecklingsteam att lÃķsa problem och leverera programvara snabbare ÃĪn nÃĨgonsin tidigare. Produktivitetsvinster ÃĪr obestridliga, och organisationer omfamnar snabbt AI Ãķver hela programvaruutvecklingslivscykeln.

Mycket av diskussionen har fokuserat pÃĨ den kod som AI genererar. Kan utvecklare lita pÃĨ AI-genererad kod? Introducerar den sÃĨrbarheter? Hur bÃķr sÃĪkerhetsteam granska den? Dessa frÃĨgor ÃĪr viktiga, men de ÃĪr inte den stÃķrsta fÃķrÃĪndringen som AI fÃķr med sig till programvaruutveckling. AI har gÃĨtt utÃķver att bara kunna generera kod, och det pÃĨverkar alltmer de fÃķrsta programvaruvalen som formar vilken programvara som kommer in i en organisation.

AI-kodassistenter bygger sÃĪllan applikationer frÃĨn scratch, och de komponerar lÃķsningar med hjÃĪlp av befintliga ramverk, Ãķppen kÃĪllkod, SDK:er, containerbilder och paketekosystem. Varje rekommendation formar den programvarubas som en applikation byggs pÃĨ, ofta innan en utvecklare granskar den fÃķrsta raden med genererad kod.

Under decennier har det fÃķrsta fÃķrtroendebeslutet i programvaruutveckling tillhÃķrt utvecklare nÃĪstan helt och hÃĨllet, men nu bÃķrjar den antagandet att fÃķrÃĪndras. Alltmer ÃĪr det AI som gÃķr den fÃķrsta rekommendationen, medan utvecklare validerar resultatet efterÃĨt. Den subtila fÃķrÃĪndringen har betydande konsekvenser fÃķr programvarufÃķrsÃķrjningskedjens sÃĪkerhet, eftersom varje rekommendation bÃĪr pÃĨ ett implicit fÃķrtroendebeslut.

Organisationer har tillbringat ÃĨr med att styra hur programvara byggs, testas och distribueras. NÃĪsta utmaning ÃĪr att styra hur programvara vÃĪljs i en AI-nativ utvecklingsmiljÃķ.

Det fÃķrsta fÃķrtroendebeslutet

Varje applikation ÃĪr beroende av programvara skapad av tusentals bidragsgivare Ãķver otaliga Ãķppen kÃĪllkodsprojekt. Innan en ny beroende introduceras, utvÃĪrderade utvecklare vanligtvis dokumentation, jÃĪmfÃķrde ramverk, granskade communityadoptionsgrad, undersÃķkte slÃĪppfrekvens och ÃķvervÃĪgde om ett projekt var moget nog fÃķr produktion. Utvecklare gjorde inte alltid rÃĪtt val, men varje beroende introducerades medvetet.

Idag kan en utvecklare enkelt be en AI-assistent att “bygga en sÃĪker REST-API med autentisering och PostgreSQL-stÃķd.” Inom nÃĨgra sekunder genererar AI en fungerande projekt. Under tiden rekommenderar den en kÃķrning, vÃĪljer ett ramverk, hÃĪnvisar till en bascontainerbild, importerar autentiseringsbibliotek, vÃĪljer SDK:er, och genererar beroendemanifest som package.json, requirements.txt eller pom.xml. Pakethanterare lÃķser sedan dessa beroenden och deras transitiva beroenden under byggprocessen.

De flesta utvecklare granskar den applikation som AI genererar, men bara nÃĨgra stannar upp fÃķr att undersÃķka varje programvarubeslut som AI fattar under resans gÃĨng. AI har komprimerat programvaruvalet som tidigare tog timmar av forskning till sekunder och gÃķr alltmer den fÃķrsta rekommendationen pÃĨ utvecklares vÃĪgnar.

Varje rekommendation ÃĪr ett fÃķrtroendebeslut

Varje programvaruartifact bÃĪr pÃĨ sin egen fÃķrtroendekedja. En bibliotek har underhÃĨllare, bidragsgivare, slÃĪppprocesser, signeringssÃĪtt, beroenden och ursprung. En containerbild ÃĪrver programvara frÃĨn uppstrÃķmsdistributioner, och en SDK introducerar ytterligare paket, vilket fÃķrlÃĪnger den kedjan av fÃķrtroende.

En enda AI-rekommendation kan snabbt expandera till hundratals programvaruartifact som blir en del av en applikation. Öppen kÃĪllkod har alltid fungerat pÃĨ det hÃĪr sÃĪttet. Vad som fÃķrÃĪndras ÃĪr vem som fattar dessa fÃķrtroendebeslut fÃķrst. Historiskt sett utvÃĪrderade och valde utvecklare komponenterna de litade pÃĨ. Alltmer ÃĪr det AI-system som gÃķr den initiala rekommendationen, medan utvecklare validerar resultatet senare.

Det lÃĨter som en liten fÃķrÃĪndring, men det fÃķrÃĪndrar fundamentalt hur organisationer bÃķr tÃĪnka kring programvarufÃķrsÃķrjningskedjens sÃĪkerhet.

AI optimerar fÃķr fungerande programvara, inte organisatoriskt fÃķrtroende

Inget av detta betyder att AI gÃķr dÃĨliga rekommendationer. TvÃĪrtom.

AI-kodassistenter ÃĪr bra pÃĨ att rekommendera programvara eftersom de har lÃĪrt sig frÃĨn miljontals exempel pÃĨ hur utvecklare lÃķser liknande problem. Som ett resultat dyker populÃĪra ramverk, vÃĪlunderhÃĨllna bibliotek och bekanta implementeringsmÃķnster naturligt upp i deras fÃķrslag, och det ÃĪr precis vad gÃķr dessa verktyg sÃĨ vÃĪrdefulla.

Men dessa optimeringsmÃĨl ÃĪr fundamentalt olika frÃĨn de frÃĨgor som fÃķretags sÃĪkerhetsteam behÃķver fÃĨ svar pÃĨ. AI utvÃĪrderar inte om ett paket stÃĪmmer Ãķverens med en organisations programvarupolicy, om en containerbild byggdes om frÃĨn kÃĪllan, om programvaruursprung har verifierats eller om ett beroende kommer frÃĨn en godkÃĪnd programvarukÃĪlla.

Funktionalitet, popularitet och sannolikhet ÃĪr anvÃĪndbara signaler fÃķr att generera kod, men de bÃķr aldrig anvÃĪndas som ersÃĪttning fÃķr verifiering.

VarfÃķr vi behÃķver integrera ÃĨt vÃĪnster

Under mÃĨnga ÃĨr har programvarufÃķrsÃķrjningskedjens sÃĪkerhet fokuserat pÃĨ att identifiera risk efter att programvara har kommit in i utvecklingsprocessen. SÃĨrbarhetsskannrar, programvaru sammansÃĪttningsanalys och SBOM:er har dramatiskt fÃķrbÃĪttrat synligheten i den programvara som applikationer innehÃĨller.

Dessa verktyg fÃķrblir essentiella, men de hanterar en annan del av problemet.

AI flyttar programvaruvalet mycket tidigare i utvecklingslivscykeln, sÃĨ nÃĪr traditionella sÃĪkerhetskontroller bÃķrjar sin analys, kan det genererade projektet redan referera till dussintals beroenden som nu krÃĪver utvÃĪrdering, ÃĨtgÃĪrd eller ersÃĪttning. Organisationer reagerar fortfarande pÃĨ programvaruval som redan har kommit in i utvecklingsflÃķdet.

Det ÃĪr dÃĪrfÃķr jag tror att organisationer behÃķver integrera ÃĨt vÃĪnster.

IdÃĐn bakom att integrera ÃĨt vÃĪnster ÃĪr enkel: fÃķrtroende bÃķr etableras innan programvara blir en del av en applikation, inte efter. NÃĪr AI blir en aktiv deltagare i programvaruutveckling, blir den principen ÃĪnnu viktigare. Styrning mÃĨste flytta till den punkt dÃĪr programvara vÃĪljs, inte dÃĪr den slutligen skannas.

Organisationer behÃķver definiera betrodda programvarukÃĪllor, etablera vilken programvara som AI fÃĨr rekommendera och verifiera dessa artifact innan de blir en del av utvecklingsflÃķdet. MÃĨlet ÃĪr att sÃĪkerstÃĪlla att AI accelererar programvarudistribution inom ramar som reflekterar organisationens sÃĪkerhets-, efterlevnads- och ingenjÃķrsmÃĪssiga standarder.

Att styra programvaruvalet i AI-eran

Organisationer definierar redan var programvara kan kÃķras, hur den distribueras och vem som ÃĪr auktoriserad att slÃĪppa den. Alltmer kommer de ocksÃĨ att behÃķva definiera vilken programvara som AI fÃĨr rekommendera.

HÃĪr blir programvarufÃķrsÃķrjningskedjans hÃĨllning alltmer viktig. Organisationer behÃķver fÃķrtroende inte bara fÃķr den programvara de bygger, utan ocksÃĨ fÃķr den programvara som AI rekommenderar pÃĨ deras vÃĪgnar. Det fÃķrtroendet kommer frÃĨn verifiering, betrodda programvarukÃĪllor och styrning som bÃķrjar innan programvara kommer in i utvecklingspipelinen.

AI kommer att fortsÃĪtta att fÃķrÃĪndra programvaruutveckling, och rÃĪtteligen sÃĨ. Produktivitetsvinster ÃĪr fÃķr stora fÃķr att ignorera, men nÃĪr organisationer omfamnar AI-nativ utveckling, mÃĨste de erkÃĪnna att programvaruvalet blir alltmer automatiserat.

De organisationer som lyckas kommer att vara de som etablerar betrodda programvarukÃĪllor, verifierar de programvaruartifact som AI rekommenderar och integrerar styrning i programvaruvalet frÃĨn bÃķrjan.

AI fÃķrÃĪndrar hur programvara skrivs, men nu, viktigare, fÃķrÃĪndrar det hur programvara vÃĪljs. Eftersom i AI-eran, den programvara du litar pÃĨ beror alltmer pÃĨ den programvara som din AI vÃĪljer fÃķrst.

Biswajit De ÃĪr medgrundare och teknisk chef fÃķr CleanStart, dÃĪr han leder fÃķretagets tekniska vision och produktstrategi fÃķr att sÃĪkra moderna programvaruleverantÃķrskedjor och molnbaserade miljÃķer.