CircleCI – kodebyggende service lider under totalt legitimationskompromittering

CircleCI – kodebyggende service lider under totalt legitimationskompromittering

CircleCI – code-building service suffers total credential compromise PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Hvis du er programmør, uanset om du koder til en hobby eller professionelt, vil du vide, at oprettelse af en ny version af dit projekt – en officiel "release"-version, som du selv, dine venner eller dine kunder faktisk vil installere og brug – er altid lidt af en hvid-kno-tur.

Når alt kommer til alt afhænger en udgivelsesversion af al din kode, er afhængig af alle dine standardindstillinger, går kun ud med din offentliggjorte dokumentation (men ingen insiderviden) og skal fungere selv på computere, du aldrig har set før, opsat i konfigurationer, du aldrig har forestillet dig, sammen med anden software, du aldrig har testet for kompatibilitet.

Kort sagt, jo mere komplekst et projekt bliver, og jo flere udviklere har du, der arbejder på det, og jo flere separate komponenter skal der arbejde gnidningsløst med alle de andre...

…jo mere sandsynligt er det, at det hele er meget mindre imponerende end summen af ​​delene.

Som en grov analogi kan du overveje, at baneholdet med de hurtigste individuelle 100 m sprintere ikke altid vinder 4x100 m stafet.

CI til undsætning

Et forsøg på at undgå denne slags "men det fungerede fint på min computer"-krise er en teknik kendt i jargonen som Kontinuerlig integration eller CI for kort.

Ideen er enkel: hver gang nogen foretager en ændring i deres del af projektet, så tag fat i vedkommendes nye kode, og pisk dem og deres nye kode gennem en fuld bygge-og-test-cyklus, ligesom du ville gøre, før du opretter en endelig udgivelse version.

Byg tidligt, byg ofte, byg alt, byg altid!

Det er klart, at dette er en luksus, som projekter i den fysiske verden ikke kan tåle: hvis du bygger for eksempel en Sydney Harbour Bridge, kan du ikke genopbygge en hel testperiode med helt nye råmaterialer, hver gang du beslutte at justere nitningsprocessen eller se, om du kan montere større flagstænger på toppen.

Selv når du "bygger" et computersoftwareprojekt fra en masse kildefiler til en samling af outputfiler, bruger du dyrebare ressourcer, såsom elektricitet, og du har brug for en pludselig stigning i computerkraft for at køre sammen med alle de computere, som udviklerne selv bruger.

Når alt kommer til alt, i softwareudviklingsprocesser, der bruger CI, er ideen ikke at vente, indtil alle er klar, og så at alle skal træde tilbage fra programmering og vente på, at en endelig build er færdig.

Opbygninger sker hele dagen, hver dag, så kodere kan fortælle lang tid i forvejen, hvis de utilsigtet har lavet "forbedringer", som påvirker alle andre negativt - bryde bygningen, som jargonen måske siger.

Ideen er: fejl tidligt, ret hurtigt, øg kvaliteten, gør forudsigelige fremskridt og afsend til tiden.

Sikker på, selv efter en vellykket testbuild, kan din nye kode stadig have fejl i sig, men du vil i det mindste ikke komme til slutningen af ​​en udviklingscyklus og så opdage, at alle skal tilbage til tegnebrættet bare for at få softwaren til overhovedet at bygge og fungere, fordi de forskellige komponenter er drevet ud af justering.

Tidlige softwareudviklingsmetoder blev ofte omtalt som følgende vandfaldsmodel, hvor alle arbejdede harmonisk, men uafhængigt, mens projektet drev forsigtigt ned ad floden mellem versionsdeadlines, indtil alt kom sammen i slutningen af ​​cyklussen for at skabe en ny udgivelse, klar til at kaste sig over det tumultariske vandfald i en versionsopgradering, for så at dukke op i en anden version. skånsom periode med klart vand nedstrøms for yderligere design og udvikling. Et problem med disse "vandfald" var imidlertid, at du ofte endte med at blive fanget i en tilsyneladende endeløs cirkulær hvirvel lige ved kanten af ​​vandfaldet, uanset tyngdekraften, slet ikke i stand til at komme over afgrundens læbe, indtil lange hakker og modifikationer (og ledsagende overskridelser) gjorde den videre rejse mulig.

Bare jobbet for skyen

Som du kan forestille dig, betyder adoption af CI at have en masse kraftfulde, klar-til-brug-servere til din rådighed, når en af ​​dine udviklere udløser en build-and-test-procedure, for at undgå at glide tilbage til det "at sidde fast i meget læbe af vandfaldet” situation.

Det lyder som et job for skyen!

Og det er det faktisk med adskillige såkaldte CI/CD-skytjenester (dette CD er ikke en musikdisk, der kan afspilles, men stenografi for kontinuerlig levering) tilbyder dig fleksibiliteten til at have et stadigt varierende antal forskellige grene af forskellige produkter, der gennemgår forskelligt konfigurerede builds, måske endda på forskellig hardware, på samme tid.

CirkelCI er en sådan cloud-baseret tjeneste...

…men desværre for deres kunder har de bare lidt et brud.

Teknisk set, og som det ser ud til at være almindeligt i disse dage, har virksomheden faktisk ikke brugt ordene "brud", "indtrængen" eller "angreb" nogen steder i sin officielle notifikation: indtil videre er det bare en sikkerhedshændelse.

Den oprindelige meddelelse [2023-01-04] udtalte ganske enkelt, at:

Vi vil gerne gøre dig opmærksom på, at vi i øjeblikket er ved at undersøge en sikkerhedshændelse, og at vores undersøgelse er i gang. Vi vil give dig opdateringer om denne hændelse og vores svar, når de bliver tilgængelige. På dette tidspunkt er vi sikre på, at der ikke er nogen uautoriserede aktører aktive i vores systemer; af en overflod af forsigtighed ønsker vi dog at sikre, at alle kunder tager visse forebyggende foranstaltninger for også at beskytte dine data.

Hvad skal jeg gøre?

Siden da har CircleCI leveret regelmæssige opdateringer og yderligere rådgivning, som for det meste bunder i dette: "Roter venligst alle hemmeligheder gemt i CircleCI."

Som vi har forklaret før, jargonordet rotere er dårligt valgt her, fordi det er arven fra en farlig fortid, hvor folk bogstaveligt talt "roterede" adgangskoder og hemmeligheder gennem et lille antal forudsigelige valg, ikke kun fordi det var sværere at holde styr på nye dengang, men også fordi cybersikkerhed var' t så vigtigt, som det er i dag.

Hvad CircleCI betyder, er, at du skal ÆNDRE alle dine adgangskoder, hemmeligheder, adgangstokens, miljøvariabler, offentlig-private nøglepar og så videre, formentlig fordi de angribere, der brød netværket enten stjal dit eller ikke kan bevises ikke at have stjålet dem.

Virksomheden har en fremlagt en liste af de forskellige slags private sikkerhedsdata, der blev berørt af bruddet, og har skabt et praktisk script kaldet CircleCI-Env-inspektør som du kan bruge til at eksportere en JSON-formateret liste over alle de CI-hemmeligheder, som du skal ændre i dit miljø.

Derudover kan cyberkriminelle nu have adgangstokens og kryptografiske nøgler, der kan give dem en vej tilbage til dit eget netværk, især fordi CI-byggeprocesser nogle gange skal "ringe hjem" for at anmode om kode eller data, som du ikke kan eller ønsker at uploade til skyen (scripts, der gør dette, er kendt i jargonen som løbere).

Så CircleCI rådgiver:

Vi anbefaler også, at kunder gennemgår interne logfiler for deres systemer for enhver uautoriseret adgang fra 2022-12-21 [til og med 2023-01-04], eller efter fuldførelse af [ændring af dine hemmeligheder].

Spændende nok, hvis det er forståeligt nok, har nogle kunder bemærket, at den dato, CircleCI antydede, hvor dette brud begyndte [2022-12-21] tilfældigvis falder sammen med et blogindlæg, selskab offentliggjort om seneste pålidelighedsopdateringer.

Kunder ønskede at vide, "Var bruddet relateret til fejl introduceret i denne opdatering?"

I betragtning af, at virksomhedens artikler om pålidelighedsopdateringer ser ud til at være rullende nyhedsoversigter snarere end meddelelser om individuelle ændringer foretaget på bestemte datoer, er det åbenlyse svar, "Nej"...

…og CircleCI har udtalt, at den tilfældige dato 2022-12-21 for pålidelighedsblogindlægget netop var det: en tilfældighed.

Glædelig nøglefornyelse!


Tidsstempel:

Mere fra Naked Security