CI / CD-rörledningar är en integrerad del av moderna arbetsflöden, och de verktyg som stöder dem utökar ytterligare deras latenta kapacitet. Lagarbete är avgörande i moderna arbetsflöden där deadlines inte bara är brådskande, utan också regelbundna. Varje sekund räknas när en kund väntar i andra änden. Det bästa stället att börja diskussionen om CI/CD är därför vad verktygen låter dig åstadkomma.
Vad är CI/CD?
I grund och botten tillhandahåller CI/CD-miljöer verktyg som gör att programvara kan lanseras snabbare och effektiviserar bygg- och lanseringsprocessen. Historiskt sett utvecklas kod av separata team och testas i personliga miljöer; integration tar tid och feedback på trasig kod tar längre tid. Detta leder till långa byggcykler och minskad effektivitet. Det är vanligt att testa en kodstycke med ett antal testfall som utformats före utveckling. Om den slutliga koden uppfyller dessa standarder bör den enkelt integreras i befintlig kod.
Men som utvecklare vet vi alla att detta är långt ifrån det enda möjliga resultatet, även med noggrant utformade testfall. CI/CD erbjuder ett sätt att köra testfall i stor skala, där kodändringar kan testas i en enda strömlinjeformad och automatiserad åtgärd. Kod skickas, tas emot av pipelinen och testas, och om alla fall godkänns kan bygget sättas upp för att gå live. Det är fantastiskt vad detta kan göra för din organisations flexibilitet.
Att åtgärda en bugg på ett ögonblick är mycket möjligt framtidens utveckling. Det finns dock viktiga överväganden att ta hänsyn till innan man anammar CI/CD-arbetsflödet i hela branschen, och vi ser nu konsekvenserna av en rusning att anamma nya tekniker utan ordentlig granskning, testning, säkerhet eller ens förståelse för hur integrationen fungerar.
En av de moderna farorna inom tekniksfären är blinda leder blindaIcke-experter har tillgång till samma internet som experter och skriver ofta handledningar och guider. AI, en genuint intressant och användbar skapelse, förstärker detta problem något. Chat GPT är genuint övertygande för vissa med sin ofta auktoritativa ton och skenbara självförtroende, kanske till och med karisma. Men den hämtar inspiration från denna större pool av internetkällor, vilket gör den lika sårbar för att bara förstå halva bilden. Även om följande berättelse inte är avsedd att vara en säljpresentation, bör du överväga fördelarna med att ha ett konsultföretag inom cybersäkerhet involverat i designen av din arkitektur, så att helhetsbilden inte missas när nya och kraftfulla tekniker tas upp.
Den senaste attacken
Idag fokuserar vi på en specifik attack som utvecklats av två forskare. Denna attack riktar sig mot GitHub-åtgärder CI/CD plattform, särskilt självhostade runners. Det finns många fördelar med självhostade runners, varav en är den större flexibilitet de erbjuder i funktioner och alternativ. Även om attackerna till stor del fokuserar på offentliga GitHub-repositories, är dessa inte så ovanliga i branschen, och även om din organisation inte är värd för ett offentligt repository, är du sannolikt beroende av ett eller flera för dina produkter.
Medan den huvudsakliga attacken riktade sig mot GitHub-åtgärder, har liknande sårbarheter identifierats på flera CI/CD-plattformar som används i branschen: Jenkins, Circle CI, Buildkite, etc. Eftersom denna attack fokuserade på publika databaser, kunde dess teoretiska konsekvenser ha nått vida omkring om den var skadlig. För att komplicera saken uppstår dessa sårbarheter delvis på grund av felaktiga standardinställningar.
För att kunna utföra en attack måste man först uppnå status som bidragsgivare. Ett högt mål, kan man tycka, särskilt för ett stort, prestigefyllt projekt. Men allt forskare behövde för att uppnå denna status var att korrigera ett stavfel. Med denna status kunde de sedan initiera en pull request. Visserligen kan vem som helst initiera en fork pull request på ett offentligt arkiv, men när en bidragsgivare gör en pull request kommer de som standardinställningar att ha möjlighet att använda den runner som är kopplad till huvudprojektet. Detta kommer att ske enligt dessa standardinställningar innan godkännande för sammanslagningen erhålls. Om ett skadligt arbetsflöde finns i forken kommer det att köras av runnern.
Runners kvarstår på den maskin de kör på, så den här koden kan fortsätta att påverka framtida versioner och köras i bakgrunden på maskinen utan avbrott. Runnern kan i princip göras så att den agerar som en trojan för angriparen. Om runnern har förhöjd status på maskinen, vilket är ett standardkrav, kommer maskinen inte att känna igen eller flagga den för dess misstänkta aktivitet. Nyckelloggning kan sedan samla in autentiseringstoken, och hela processen kan kapas. Autentiseringstokens ger fullständig åtkomst till arkivet; därifrån kan angriparen göra vad de vill.
Mycket mer lömskt än att kapa ett offentligt projekt på ett så synligt sätt vore att missbruka den persistenta runnern för att påverka framtida byggen i tysthet. Dessa repositories används flitigt; ett sådant repository, PyTorch, som attackerades direkt som en del av projektet, äger 21 % marknadsandel inom maskininlärningsområdet. Tänk dig antalet projekt, företag och programvara som skulle kunna komprometteras av en attack. För att inte tala om att med de långa beroendekedjor som är typiska för moderna projekt kanske din organisation inte ens är medveten om att de var beroende av ett projekt med en känd kompromiss. I det här fallet har vi tur att angriparna för närvarande var forskare som inte var intresserade av att orsaka skada, men det är ett bra tillfälle att granska processen och verktygen som din organisation använder för CI/CD, samt om några av dina beroenden fortfarande är sårbara för denna angreppsmetod.
Slutsats
Attacker är svåra att hålla reda på, särskilt i modern tid, när omfattningen av en kompromiss är svår att fastställa innan skadan är skedd. Om din organisation använder CI/CD och behöver information om hur man säkrar pipelinen och förhindrar attacker, vänligen kontakta Krypteringskonsulting.
Vårt expertteam kan hjälpa till med att upprätta bästa praxis för åtkomstkontroller och säkerhetspolicyer på er CI/CD-plattform, samt hjälpa till att utvärdera potentiella attackvektorer i hela er organisation. Våra tjänster inkluderar även certifikathantering och kodsignering, som enkelt kan integreras med din säkra CI / CD processen och ytterligare påskynda din bygg- och testprocess.
