CircleCI – usługa tworzenia kodu cierpi na całkowite naruszenie poświadczeń

CircleCI – usługa tworzenia kodu cierpi na całkowite naruszenie poświadczeń

CircleCI – usługa tworzenia kodu dotknięta całkowitym naruszeniem wiarygodności PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Jeśli jesteś programistą, niezależnie od tego, czy programujesz hobbystycznie, czy zawodowo, wiesz, że tworzenie nowej wersji swojego projektu – oficjalnej wersji „release”, którą ty, twoi znajomi lub klienci faktycznie zainstalujecie i użytkowania – to zawsze trochę szaleństwa.

W końcu wersja wydania zależy od całego twojego kodu, opiera się na wszystkich twoich domyślnych ustawieniach, wychodzi tylko z opublikowaną dokumentacją (ale bez wiedzy poufnych) i musi działać nawet na komputerach, których nigdy wcześniej nie widziałeś, skonfigurowanych w konfiguracje, których nigdy sobie nie wyobrażałeś, wraz z innym oprogramowaniem, którego nigdy nie testowałeś pod kątem kompatybilności.

Mówiąc najprościej, im bardziej złożony staje się projekt i im więcej programistów nad nim pracuje, tym więcej oddzielnych komponentów musi płynnie współpracować ze wszystkimi innymi…

… tym bardziej prawdopodobne jest, że całość będzie znacznie mniej imponująca niż suma części.

Jako prymitywna analogia weźmy pod uwagę, że drużyna lekkoatletyczna z najszybszymi indywidualnymi sprinterami na 100 m nie zawsze wygrywa sztafetę 4x100 m.

CI na ratunek

Jedną z prób uniknięcia tego rodzaju kryzysu „ale działało dobrze na moim komputerze” jest technika znana w żargonie jako Ciągła integracjalub CI w skrócie.

Pomysł jest prosty: za każdym razem, gdy ktoś wprowadza zmianę w swojej części projektu, chwyć nowy kod tej osoby i przeprowadź ją wraz z nowym kodem przez pełny cykl budowania i testowania, tak jak przed utworzeniem ostatecznej wersji wersja.

Buduj wcześnie, buduj często, buduj wszystko, buduj zawsze!

Oczywiście jest to luksus, którego projekty w świecie fizycznym nie mogą znieść: jeśli budujesz, powiedzmy, Sydney Harbour Bridge, nie możesz odbudować całego przęsła testowego, z całkowicie nowymi surowcami, za każdym razem, gdy zdecyduj się ulepszyć proces nitowania lub sprawdź, czy możesz zamontować większe maszty na szczycie.

Nawet gdy „budujesz” projekt oprogramowania komputerowego z jednej grupy plików źródłowych w zbiór plików wyjściowych, zużywasz cenne zasoby, takie jak energia elektryczna, i potrzebujesz nagłego wzrostu mocy obliczeniowej, aby działał on obok wszystkich komputerów, które programiści sami używają.

W końcu w procesach inżynierii oprogramowania wykorzystujących CI nie chodzi o czekanie, aż wszyscy będą gotowi, a potem o wycofanie się z programowania i czekanie na ukończenie ostatecznej kompilacji.

Kompilacje mają miejsce przez cały dzień, każdego dnia, dzięki czemu programiści mogą z dużym wyprzedzeniem stwierdzić, czy nieumyślnie wprowadzili „ulepszenia”, które negatywnie wpłyną na wszystkich innych — łamanie konstrukcji, jak można by powiedzieć w żargonie.

Idea jest następująca: wczesna porażka, szybka naprawa, poprawa jakości, osiąganie przewidywalnych postępów i wysyłka na czas.

Jasne, nawet po udanej kompilacji testowej, twój nowy kod może nadal zawierać błędy, ale przynajmniej nie dojdziesz do końca cyklu programowania, a potem okaże się, że wszyscy muszą wrócić do deski kreślarskiej, aby uzyskać oprogramowanie do zbudowania i działania w ogóle, ponieważ różne komponenty przesunęły się ze sobą.

Wczesne metody tworzenia oprogramowania były często określane jako następujące model wodospadu, gdzie wszyscy pracowali harmonijnie, ale niezależnie, podczas gdy projekt dryfował łagodnie w dół między ostatecznymi terminami wersji, aż wszystko zebrało się pod koniec cyklu, aby stworzyć nową wersję, gotową do zanurzenia się w burzliwym wodospadzie aktualizacji wersji, by wyłonić się w innej łagodny okres czystej wody w dole rzeki dla dalszego projektowania i rozwoju. Jeden problem z tymi „wodospadami” polegał jednak na tym, że często kończyło się uwięzieniem w pozornie niekończącym się okrągłym wirze tuż przy samej krawędzi wodospadu, niezależnie od grawitacji, i nie można było w ogóle przedostać się przez krawędź przepaści aż do długich cięć i modyfikacje (i towarzyszące im przekroczenia) umożliwiły dalszą podróż.

Tylko zadanie dla chmury

Jak możesz sobie wyobrazić, przyjęcie CI oznacza posiadanie do dyspozycji wielu potężnych, gotowych do pracy serwerów, gdy któryś z programistów uruchamia procedurę budowania i testowania, aby uniknąć powrotu do „utknięcia w samej krawędzi wodospadu”.

To brzmi jak zadanie dla chmury!

I rzeczywiście tak jest w przypadku wielu tak zwanych usług chmurowych CI/CD (to CD nie jest odtwarzaną płytą muzyczną, ale skrótem ciągła dostawa) oferując elastyczność posiadania stale zmieniającej się liczby różnych gałęzi różnych produktów przechodzących przez różne konfiguracje kompilacji, być może nawet na różnym sprzęcie, w tym samym czasie.

OkrągCI jest jedną z takich usług w chmurze…

…ale, niestety dla swoich klientów, po prostu doznał naruszenia.

Z technicznego punktu widzenia, co wydaje się być obecnie powszechne, firma nie używała słów „naruszenie”, „wtargnięcie” ani „atak” w żadnym miejscu swojego oficjalnego powiadomienia: jak dotąd jest to tylko incydent bezpieczeństwa.

Oryginał tablica ogłoszeń [2023-01-04] stwierdził po prostu, że:

Chcieliśmy poinformować, że obecnie badamy incydent związany z bezpieczeństwem i że nasze dochodzenie jest w toku. Przekażemy Ci aktualizacje dotyczące tego incydentu i naszą odpowiedź, gdy tylko będą dostępne. W tym momencie jesteśmy przekonani, że w naszych systemach nie działają żadne nieautoryzowane podmioty; jednak ze względu na dużą ostrożność chcemy zapewnić, że wszyscy klienci podejmą pewne środki zapobiegawcze, aby również chronić Twoje dane.

Co robić?

Od tego czasu CircleCI zapewnia regularne aktualizacje i dalsze porady, które w większości sprowadzają się do tego: „Prosimy o rotację wszelkich tajemnic przechowywanych w CircleCI”.

Jak wyjaśniliśmy wcześniej, żargonowe słowo obracać jest tutaj źle wybrany, ponieważ jest dziedzictwem niebezpiecznej przeszłości, w której ludzie dosłownie „przewracali” hasła i tajemnice za pomocą niewielkiej liczby przewidywalnych wyborów, nie tylko dlatego, że śledzenie nowych było wtedy trudniejsze, ale także dlatego, że bezpieczeństwo cybernetyczne nie było tak ważne jak dzisiaj.

CircleCI oznacza, że ​​musisz ZMIENIĆ wszystkie swoje hasła, tajemnice, tokeny dostępu, zmienne środowiskowe, pary kluczy publiczno-prywatnych itd., prawdopodobnie dlatego, że osoby atakujące, które włamały się do sieci, albo ukradły twoje, albo nie można tego udowodnić aby je ukraść.

Firma ma przedstawił listę różnych rodzajów prywatnych danych bezpieczeństwa, których dotyczyło naruszenie, i stworzył przydatny skrypt o nazwie Inspektor CircleCI-Env którego można użyć do wyeksportowania sformatowanej w formacie JSON listy wszystkich kluczy tajnych CI, które należy zmienić w swoim środowisku.

Ponadto cyberprzestępcy mogą teraz dysponować tokenami dostępu i kluczami kryptograficznymi, które umożliwią im powrót do własnej sieci, zwłaszcza że procesy tworzenia CI czasami muszą „dzwonić do domu”, aby zażądać kodu lub danych, których nie możesz lub nie chcesz przesłać do chmury (skrypty, które to robią, są znane w żargonie jako biegaczy).

Tak więc CircleCI radzi:

Zalecamy również klientom przejrzenie wewnętrznych dzienników ich systemów pod kątem nieautoryzowanego dostępu począwszy od 2022-12-21 [do 2023-01-04 włącznie] lub po zakończeniu [zmiany tajemnic].

Co ciekawe, choć zrozumiałe, niektórzy klienci zauważyli, że sugerowana przez CircleCI data rozpoczęcia tego naruszenia [2022-12-21] po prostu zbiega się z wpisem na blogu firma opublikowała o ostatnich aktualizacjach dotyczących niezawodności.

Klienci chcieli wiedzieć: „Czy naruszenie było związane z błędami wprowadzonymi w tej aktualizacji?”

Biorąc pod uwagę, że artykuły firmy dotyczące aktualizacji niezawodności wydają się być podsumowaniem wiadomości, a nie zapowiedzią poszczególnych zmian wprowadzonych w określonych terminach, oczywista odpowiedź brzmi: „Nie”…

… a CircleCI stwierdziło, że przypadkowa data wpisu na blogu o niezawodności 2022 r. była właśnie taka: zbieg okoliczności.

Udanej regeneracji kluczy!


Znak czasu:

Więcej z Nagie bezpieczeństwo