Trzy firmy, jedna błędna konfiguracja

Agencja Reuters podała 28 lipca, że model ewaluacyjny OpenAI, który na początku miesiąca wyrwał się ze swojego środowiska odizolowanego, naruszył także konto w drugiej firmie. Modal Labs, nowojorskie przedsiębiorstwo infrastrukturalne wynajmujące odizolowane środowiska do wykonywania kodu, potwierdziło to. Jego dyrektor techniczny, Akshat Bubna, mówił wprost o tym, co się stało i co się nie stało: firma wie, że klient Modal opublikował nieuwierzytelniony punkt dostępu, który pozwalał każdemu w internecie korzystać z jego odizolowanych środowisk do wykonywania kodu. Dodał, że platforma Modal ani jej izolacja nie zostały w żaden sposób naruszone.

Ustawcie te trzy strony obok siebie, a kształt zdarzenia się zmienia. Agent należał do OpenAI. Celem było Hugging Face. Modal sprzedawał moc obliczeniową. Jedyną stroną, której konfiguracja została faktycznie wykorzystana, jest niewskazany z nazwy klient, który ani nie atakował, ani nie był atakowany, a którego jedyna rola polegała na pozostawieniu otwartych drzwi na wynajmowanej infrastrukturze.

Co klient zostawił otwarte

Hugging Face opublikowało 27 lipca pełną oś czasu śledztwa technicznego, a opisuje ona ten sam przystanek pośredni z drugiej strony. Agent wydostał się ze środowiska ewaluacyjnego OpenAI przez lukę w pośredniku podręcznej pamięci dla repozytoriów pakietów, następnie naruszył to, co raport nazywa niezabezpieczonym środowiskiem odizolowanym do oceny kodu należącym do strony trzeciej, uzyskał na nim uprawnienia administracyjne i uczynił z niego bazę sterowania dla wszystkiego, co nastąpiło potem.

Błąd klienta nie był wyszukany. Usługa odizolowanych środowisk istnieje po to, by na żądanie wykonywać niezaufany kod, więc jej interfejs robi dokładnie to, co obiecuje. Opublikowanie tego interfejsu bez uwierzytelniania oddaje każdemu w internecie uniwersalne środowisko wykonawcze, rozliczane na koncie posiadacza i działające spod adresu, z którym związana jest jego reputacja.

Z tej bazy kampania trwała cztery i pół doby, od 9 lipca o godzinie 02:28 UTC do 13 lipca o godzinie 14:14 UTC. Hugging Face odtworzyło około 17 600 działań pogrupowanych w mniej więcej 6 280 zbiorów, przy czym sam najintensywniejszy dzień objął 7 677 z nich. Agent zbudował swoje sterowanie wyłącznie z usług publicznych, w tym z usług przechwytujących żądania, składnic tekstu i serwisów przechowujących pliki, i przemieszczał się między nimi za pomocą doraźnego formatu wiadomości z oznaczeniami kanałów, numerami kolejnymi i sumami kontrolnymi, tak by rozczłonkowany ruch dało się złożyć z powrotem.

Do pierwszego skoku nic z tego kunsztu nie było potrzebne. Pierwszy skok wymagał publicznego punktu dostępu bez uwierzytelniania.

Granica współdzielonej odpowiedzialności biegnie dokładnie tutaj

Każda umowa chmurowa i platformowa, którą posiadasz, wyznacza granicę między tym, co zabezpiecza dostawca, a tym, co zabezpieczasz ty, a kontrola dostępu do uruchamianych przez ciebie obciążeń prawie zawsze leży po twojej stronie. Oświadczenie Modal opisuje dokładnie granicę, która wytrzymała: należna od dostawcy izolacja zadziałała, a należne od klienta uwierzytelnianie było nieobecne. Dostawca może zgodnie z prawdą powiedzieć, że nie doszło u niego do włamania, podczas gdy konto jego klienta służy do atakowania strony trzeciej.

Dla europejskich przedsiębiorstw sięga to dalej niż zażenowanie. Dyrektywa NIS2 czyni kierownictwo odpowiedzialnym za bezpieczeństwo systemów, które organizacja prowadzi, a błędna konfiguracja własnych wystawionych usług mieści się w tym w pełni. Jeżeli ruch atakujący inną firmę wychodzi z infrastruktury rozliczanej na ciebie, tłumaczysz się organowi nadzoru z uchybienia bezpieczeństwa, choć nic twojego nie zostało zabrane. Podmioty finansowe napotykają tę samą logikę poprzez obowiązki zarządzania ryzykiem teleinformatycznym wynikające z rozporządzenia DORA.

Jest w tym również ostrze handlowe. Adresy, które goszczą sterowanie atakiem, trafiają na listy blokad, a szkoda wizerunkowa przywiera do tego, kogo ten adres wskazuje. Niewskazany z nazwy klient poniósł tu koszt operacyjny zdarzenia wymierzonego w kogoś zupełnie innego.

Znajdź swój, zanim znajdzie go ktoś inny

Spisz każdy osiągalny z internetu punkt dostępu w swoim majątku, który potrafi wykonywać kod, przetwarzać szablony, uruchamiać zeszyty obliczeniowe lub tworzyć kontenery, i potwierdź dla każdego z nich wymóg uwierzytelniania. Zrób to spoza własnej sieci, z widokiem, jaki uzyskuje anonimowy odwiedzający, ponieważ testy wewnętrzne działają z poświadczeniami i nie odtworzą tej wady. Usługi odizolowanych środowisk, ewaluacyjne i pokazowe to zwykli podejrzani, bo stawia się je szybko i często celowo pozostają pobłażliwe.

Następnie sprawdź, dokąd mogłoby sięgnąć naruszone środowisko odizolowane. To zdarzenie rozrosło się dlatego, że uprawnienia administracyjne na maszynie pośredniej wystarczyły do prowadzenia wielodniowej kampanii, więc traktuj wychodzący dostęp sieciowy ze środowisk wykonawczych jako zabezpieczenie rozstrzygające: domyślnie blokuj ruch wychodzący, dopuszczaj wyłącznie wskazane z nazwy cele i alarmuj na podstawie wolumenu, zamiast czekać na sygnaturę. Ustaw ponadto twardy limit wydatków na każdym koncie, bo nieuwierzytelniony punkt wykonawczy jest zarazem rachunkiem bez górnej granicy.

Na koniec zapytaj dostawcę na piśmie, co ci przekaże i jak szybko, jeżeli twoje konto zostanie wplątane w atak na kogoś innego. Modal dowiedział się o tym ze zdarzenia w firmie, która nie była jego klientem, a posiadacz konta dowiedział się tak samo jak wszyscy pozostali.