CircleCI – koodinrakennuspalvelu kärsii täydellisestä valtuustietojen kompromissista

CircleCI – koodinrakennuspalvelu kärsii täydellisestä valtuustietojen kompromissista

CircleCI – koodinrakennuspalvelu kärsii täydellisestä valtuustietojen kompromissista PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Jos olet ohjelmoija, koodaatpa sitten harrastusta tai ammattia varten, tiedät, että luot uuden version projektistasi – virallisen "julkaisuversion", jonka sinä itse, ystäväsi tai asiakkaasi asennat. ja käyttö – on aina vähän rystysten ajelua.

Loppujen lopuksi julkaisuversio riippuu kaikesta koodistasi, luottaa kaikkiin oletusasetuksiisi, lähtee ulos vain julkaisemasi dokumentaatiosi kanssa (mutta ei sisäpiiritietoa) ja sen on toimittava jopa tietokoneissa, joita et ole koskaan ennen nähnyt. konfiguraatioita, joita et ole koskaan kuvitellut, sekä muita ohjelmistoja, joiden yhteensopivuutta et ole koskaan testannut.

Yksinkertaisesti sanottuna, mitä monimutkaisempi projekti tulee ja sitä enemmän kehittäjiä sinulla on sen parissa ja sitä enemmän erillisiä komponentteja, joiden on toimittava sujuvasti kaikkien muiden kanssa…

… sitä todennäköisemmin koko asia on paljon vähemmän vaikuttava kuin osien summa.

Karkeana analogiana voidaan ajatella, että ratajoukkue, jolla on nopeimmat yksittäiset 100 metrin pikajuoksijat, ei aina voita 4x100 metrin viestiä.

CI apuun

Yksi yritys välttää tällainen "mutta se toimi hyvin minun tietokoneellani" -kriisi on tekniikka, joka tunnetaan ammattikielessä nimellä Jatkuva integraatiotai CI lyhyesti.

Idea on yksinkertainen: aina, kun joku tekee muutoksen omaan osaansa projektista, tartu hänen uuteen koodiin ja sekoita hänet ja hänen uusi koodinsa läpi koko rakennus- ja testaussyklin, aivan kuten ennen lopullisen julkaisun luomista. versio.

Rakenna aikaisin, rakenna usein, rakenna kaikki, rakenna aina!

Tämä on selvästikin ylellisyyttä, jota fyysisen maailman projektit eivät kestä: jos rakennat vaikkapa Sydney Harbour Bridgeä, et voi rakentaa uudelleen koko testijaksoa täysin uusilla raaka-aineilla joka kerta, kun päätä muokata niittausprosessia tai katsoa, ​​mahtuuko huipulle suurempia lipputankoja.

Vaikka "rakennat" tietokoneohjelmistoprojektin yhdestä joukosta lähdetiedostoja tulostiedostojen kokoelmaksi, kulutat arvokkaita resursseja, kuten sähköä, ja tarvitset äkillisen laskentatehon nousun toimiaksesi kaikkien kehittäjien tietokoneiden rinnalla. itse käyttävät.

Loppujen lopuksi CI:tä käyttävissä ohjelmistosuunnitteluprosesseissa ajatuksena ei ole odottaa, kunnes kaikki ovat valmiita, ja sitten kaikkien vetäytyä ohjelmoinnista ja odottaa lopullisen koontiversion valmistumista.

Rakennuksia tapahtuu koko päivän, joka päivä, jotta koodaajat voivat kertoa kauan etukäteen, jos he ovat vahingossa tehneet "parannuksia", jotka vaikuttavat negatiivisesti kaikkiin muihin – rakenteen rikkominen, kuten ammattikieltä voisi sanoa.

Ideana on: epäonnistu aikaisin, korjaa nopeasti, paranna laatua, edisty ennustettavasti ja lähetä ajoissa.

Toki, jopa onnistuneen testikoontiversion jälkeen uudessa koodissasi voi silti olla virheitä, mutta et ainakaan pääse kehityssyklin loppuun ja huomaa, että kaikkien on palattava piirustuspöydälle saadaksesi ohjelmiston rakentamiseen ja toimintaan ollenkaan, koska eri komponentit ovat ajautuneet pois linjauksesta.

Varhaisia ​​ohjelmistokehitysmenetelmiä kutsuttiin usein seuraaviksi a vesiputous malli, jossa kaikki työskentelivät harmonisesti, mutta itsenäisesti projektin ajautuessa varovasti alavirtaan versioiden määräaikojen välillä, kunnes kaikki syklin lopussa loi uuden julkaisun, joka oli valmis syöksymään versiopäivityksen myrskyisän vesiputouksen yli, mutta nousta toiseen. lempeä kirkkaan veden jakso alavirtaan jatkosuunnittelua ja kehitystä varten. Yksi ongelma noissa "vesiputouksissa" oli kuitenkin se, että päädyit usein loukkuun näennäisesti loputtomaan pyöreään pyörteeseen aivan vesiputouksen reunalla, painovoimasta huolimatta, etkä päässyt jyrkänteen yli ollenkaan ennen kuin pitkiä hakkereita ja muutokset (ja niihin liittyvät ylitykset) mahdollistivat jatkomatkan.

Vain pilvityötä

Kuten voit kuvitella, CI:n käyttöönotto tarkoittaa sitä, että käytössäsi on joukko tehokkaita, valmiita palvelimia aina, kun joku kehittäjistäsi käynnistää rakennus- ja testausmenettelyn, jotta vältytään ajautumasta takaisin siihen "jumiutumiseen vesiputouksen huuli” -tilanne.

Se kuulostaa pilven työltä!

Ja todellakin se on lukuisissa niin sanotuissa CI/CD-pilvipalveluissa (tämä CD ei ole toistettava musiikkilevy, vaan lyhenne sanalle jatkuva toimitus) tarjoaa sinulle joustavuutta, jotta jatkuvasti vaihteleva määrä eri tuotteiden eri haaroja käy läpi eri konfiguraatioita, ehkä jopa eri laitteistoilla samanaikaisesti.

CircleCl on yksi tällainen pilvipohjainen palvelu…

…mutta valitettavasti asiakkaidensa kannalta he ovat vain kärsinyt rikkomuksen.

Teknisesti, ja kuten nykyään näyttää olevan yleistä, yritys ei ole itse asiassa käyttänyt sanoja "loukkaus", "tunkeutuminen" tai "hyökkäys" missään virallisessa ilmoituksessaan: toistaiseksi se on vain turvallisuusvälikohtaus.

Alkuperäinen ilmoitus [2023-01-04] totesi yksinkertaisesti, että:

Halusimme ilmoittaa, että tutkimme parhaillaan tietoturvahäiriötä ja että tutkinta on kesken. Annamme sinulle päivityksiä tästä tapauksesta ja vastauksemme, kun ne tulevat saataville. Tässä vaiheessa olemme varmoja siitä, ettei järjestelmissämme ole aktiivisia luvattomia toimijoita; Kuitenkin suuren varovaisuuden vuoksi haluamme varmistaa, että kaikki asiakkaat ryhtyvät tiettyihin ennaltaehkäiseviin toimenpiteisiin myös tietojesi suojaamiseksi.

Mitä tehdä?

Siitä lähtien CircleCI on toimittanut säännöllisiä päivityksiä ja lisäneuvoja, jotka pääosin tiivistyvät tähän: "Kierrä kaikkia CircleCI:ssä tallennettuja salaisuuksia."

Kuten olemme aiemmin selittäneet, ammattikieltä kiertää on tässä huonosti valittu, koska se on perintö vaarallisesta menneisyydestä, jossa ihmiset kirjaimellisesti "kiertelivät" salasanoja ja salaisuuksia pienellä määrällä ennustettavissa olevia valintoja, ei vain siksi, että uusien kirjaaminen oli silloin vaikeampaa, vaan myös siksi, että kyberturvallisuus ei ollut yhtä tärkeä kuin nykyään.

CircleCI tarkoittaa sitä, että sinun on vaihdettava kaikki salasanasi, salaisuutesi, käyttötunnuksesi, ympäristömuuttujasi, julkisen ja yksityisen sektorin avainparit ja niin edelleen, oletettavasti siksi, että verkkoon murtaneet hyökkääjät joko varastivat sinun tai ei voida todistaa, etteikö verkkoa murtanut. varastamaan ne.

Yhtiöllä on toimitti luettelon erityyppisistä yksityisistä tietoturvatiedoista, joihin tietomurto vaikutti, ja on luonut kätevän skriptin nimeltä CircleCI-Env-Inspector jonka avulla voit viedä JSON-muotoisen luettelon kaikista CI-salaisuuksista, joita sinun on muutettava ympäristössäsi.

Lisäksi kyberrikollisilla voi nyt olla käyttötunnuksia ja salausavaimia, jotka voivat antaa heille tiensä takaisin omaan verkkoosi, varsinkin koska CI-rakennusprosessien täytyy joskus "soittaa kotiin" pyytääkseen koodia tai dataa, jota et voi tai halua. ladata pilveen (skriptit, jotka tekevät tämän, tunnetaan ammattikielessä nimellä juoksijaa).

Joten CircleCI neuvoo:

Suosittelemme myös asiakkaita tarkistamaan järjestelmiensä sisäiset lokit luvattoman käytön varalta 2022 [12-21-2023 asti] tai [salaisuuksien muuttamisen] jälkeen.

Kiehtovaa, jos se on ymmärrettävää, jotkut asiakkaat ovat havainneet, että CircleCI:n ilmoittama päivämäärä, jolloin tämä rikkomus alkoi [2022-12-21], sattuu juuri osumaan yhteen blogikirjoituksen kanssa. yritys julkaisi viimeaikaisista luotettavuuspäivityksistä.

Asiakkaat halusivat tietää: "Liittyykö rikkomus tässä päivityksessä oleviin virheisiin?"

Ottaen huomioon, että yrityksen luotettavuuspäivitysartikkelit näyttävät olevan rullaavia uutisyhteenvetoja eikä ilmoituksia yksittäisistä tiettyinä päivinä tehdyistä muutoksista, ilmeinen vastaus on "Ei"…

…ja CircleCI on todennut, että luotettavuusblogiviestin satunnainen päivämäärä 2022 oli juuri se: sattuma.

Hyvää avainten palautusta!


Aikaleima:

Lisää aiheesta Naked Security