Hoppa till innehåll

47-dagarscertifikaten är på väg. Är du redo?

Agera nu →

AI-genererad kod och beroenden med öppen källkod: Kodsigneringskontroller för betrodda utgåvor

AI orsakar oro för säkerheten

AI-genererad kod och beroenden av öppen källkod introducerar båda samma kärnproblem: kod som kommer in i din pipeline utan en verifierad, ansvarsfull källa. Kodsignering åtgärdar detta genom att kräva att varje artefakt, oavsett om den skrevs av en människa, ett AI-verktyg eller ett tredjepartspaket, passerar en ansvarsgräns innan den kan signeras och släppas.

Kort sagt: varken AI-genererad kod eller beroenden med öppen källkod bör nå produktion utan att passera samma signeringsgrind som mänskligt författad kod: beroende- och sårbarhetsskanning (SBOM/SCA), mänsklig granskning av AI-författade ändringar och en signatur som bara tillämpas efter att båda kontrollerna har godkänts.

Key Takeaways

  • AI-genererad kod och beroenden med öppen källkod misslyckas på olika sätt: Risk med AI-författad kod handlar om ansvarsskyldighet och korrekthet (ingen människa har verifierat logiken); risk med beroenden med öppen källkod handlar om ursprung (du kan inte verifiera vem som underhåller eller senast ändrade den). Båda måste blockeras från samma signeringsgrind, men av olika skäl.
  • Hastighet och säkerhet är inte i sig ett spänningsmoment här: automatiserad SBOM/SCA-skanning och signeringsgrindar lägger till pipeline-steg, inte manuella flaskhalsar, när de väl är integrerade i CI/CD.

Kartläggning av riskkälla till kontroll

RiskkällaSpecifikt problemkontroll
AI-genererad kodIngen människa har verifierat att logiken är korrekt eller fri från oavsiktligt introducerade sårbarheterKräv mänsklig granskning och godkännande innan en AI-författad commit kan signeras; logga granskarens identitet i signeringsspåret
Beroenden med öppen källkodProveniens och ansvarigs identitet kan inte verifieras enbart från paketetSBOM-generering och SCA-skanning (programvarukompositionsanalys) före signering; blocksignering på kända sårbara eller overifierade beroenden
BådePressen att skicka snabbt kan kringgå båda kontrollernaFå själva signeringssteget att tillämpa grinden: om SBOM/SCA inte har godkänts eller granskning inte har skett kan pipelinen inte producera en giltig signatur.

Förstå CI/CD-pipelines och kodsignering

Kodsignering är en relativt enkel process att förstå, och den börjar med en Public Key Infrastructure eller PKI . Signeraren kommer att begära ett kodsigneringscertifikat från PKI:n och får därmed det offentlig-privata nyckelpar som de kan använda för att signera koden. Nyckelparet innefattar en offentlig nyckel, som är matematiskt kopplad till den privata nyckeln. Den offentliga nyckeln är en nyckel som vem som helst kan se och använda, medan den privata nyckeln är en som endast certifikatinnehavaren kan använda. Poängen med detta kodsigneringscertifikat är att signeringen av koden är kopplad till den specifika användaren som äger det certifikatet.

Själva kodsigneringsprocessen innebär att koden först hashas . Hashing är en process där kod eller ett dokument matas in i en hashingalgoritm. Denna algoritm konverterar sedan filen till en hash-digest, som är oläslig. I likhet med kryptering är hash-digest en oläslig blandning av bokstäver och siffror; men till skillnad från kryptering är hashing envägs. Det betyder att hash-digest aldrig kan vändas för att få originaltexten.

Denna hash skickas sedan till en hårdvarusäkerhetsmodul (HSM) som lagrar den privata nyckeln till kodsigneringscertifikatet, och den privata nyckeln används för att generera en signatur för koden. Signaturen skickas sedan tillbaka till klienten och paketeras med koden. Denna signatur säkerställer att signeraren autentiserar att koden är fri från skadlig kod eller virus.

Nu när vi förstår hur kodsignering fungerar, var fungerar det i CI/CD-pipelinerna som mjukvaruutvecklare använder? En CI/CD-pipeline använder flera verktyg för varje fas av mjukvaruutvecklingslivscykeln, vilket automatiserar och förenklar mjukvaruutvecklingsprocessen. Verktyg som Jenkins kan integreras med kodsignering för att skapa en digital signatur som det sista steget.

Verktyg som SBOM kan användas innan kod läggs in i GitHub för att kontrollera ett visst antal sårbarheter. Virusskannrar kan också skanna kod efter virus under hela processen, vilket ger slutanvändarna förtroende för sin datorprogramvara. Som ni kan se kan verktyg som AI eller verktyg med öppen källkod vara ett bra sätt att snabba upp er CI/CD-pipeline, men att använda dessa verktyg innebär att ni kompromissar med säkerheten för hastighet, vilket aldrig rekommenderas.

Lösning för företagskodsignering

Få en lösning för alla dina behov av kodsignering och kryptografi för mjukvara med vår kodsigneringslösning.

Hot mot öppen källkod och AI-verktyg

Öppen källkod eller AI-verktyg är utmärkta sätt att förbättra och snabba upp din CI/CD-pipeline, men många säkerhetsproblem ligger i dessa nya typer av verktyg. Det finns problem med säkerheten hos verktyg med öppen källkod. Eftersom verktygen är öppen källkod kan du inte verifiera var de kommer ifrån eller vem som har ändrat eller uppdaterat dem. Detta orsakar säkerhetsproblem eftersom du vill tillhandahålla programvara som en slutanvändare kan vara säker på att har skapats och hanterats på ett säkert sätt.

Öppen källkodsverktyg kan öppna brister i en CI/CD-pipeline, vilket gör det möjligt för hotaktörer att få nya attackvektorer för att infektera offer med skadlig kod och virus. AI-genererad kod introducerar en tydlig risk: den kan vara syntaktiskt korrekt och klara grundläggande tester samtidigt som den innehåller logiska fel, osäkra mönster eller subtilt felaktiga antaganden som ingen människa faktiskt har granskat. Att behandla AI-författad kod som likvärdig med mänskligt författad kod, utan ett granskningssteg som specifikt flaggar den som AI-genererad, tar bort det ansvaret.

Den praktiska lösningen är inte att välja hastighet framför säkerhet eller vice versa. Den gör kontrollerna automatiserade: SBOM-generering och SCA-skanning körs på sekunder som ett pipeline-steg, och att flagga AI-författade commits för granskning behöver inte bromsa den totala releasekadensen om granskningskön hålls aktuell. Flaskhalsen är vanligtvis en frånvarande gate, inte en i sig långsam sådan.

Vanliga frågor om partihandel med mat och dryck

Verifierar kodsignering att AI-genererad kod är korrekt?

Nej. Kodsignering verifierar ursprung och integritet, inte logikens korrekthet eller säkerhet. Den bekräftar vem som signerade koden och att den inte har ändrats sedan dess. Att upptäcka felaktig AI-genererad logik kräver mänsklig granskning och testning före signeringssteget, inte själva signaturen.

Kan SBOM- och SCA-skanning helt ersätta manuell granskning av beroenden med öppen källkod?

De upptäcker kända sårbarheter och flaggar misstänkta eller ounderhållna paket, men de kan inte verifiera en underhållares identitet eller avsikt. Att kombinera automatiserad skanning med regelbunden manuell granskning av kritiska beroenden ger en mer fullständig täckning än endera var för sig.

Slutsats

Att hitta den balansen mellan hastighet och säkerhet är mycket viktigt och kan vara en svår uppgift för ett mindre team. Som tur är kan Encryption Consulting hjälpa till. Vi kan hjälpa till att säkerställa att era efterlevnadsbehov uppfylls, såväl som era behov av kodsignering. Vår plattform, CodeSign Secure , tillhandahåller ett antal olika resurser som ni kommer att använda inom era CI/CD-pipelines.

Förutom kodsignering låter CodeSign Secure dig använda dess SBOM-integrationer för att skanna kod efter sårbarheter innan den laddas upp till GitHub. Du kan också integrera med dina befintliga CI/CD-pipelines, som Jenkins , TeamCity eller Azure DevOps. För att lära dig mer om CodeSign Secure, kontakta oss på www.encryptionconsulting.com.