Miliony repozytoriów na GitHub są potencjalnie podatne na przejęcie

Miliony repozytoriów na GitHub są potencjalnie podatne na przejęcie

Miliony repozytoriów w GitHub są potencjalnie podatne na przejęcie kontroli nad danymi PlatoBlockchain. Wyszukiwanie pionowe. AI.

Miliony repozytoriów oprogramowania dla przedsiębiorstw w GitHub są podatne na ataki przechwytywanie, stosunkowo prosty rodzaj ataku na łańcuch dostaw oprogramowania, w którym ugrupowanie zagrażające przekierowuje zamiast tego projekty zależne od konkretnego repozytorium do złośliwego.

Problem ma związek ze sposobem, w jaki GitHub radzi sobie z zależnościami, gdy użytkownik GitHub lub organizacja zmienia nazwę projektu lub przenosi jego własność na inny podmiot, stwierdzili w tym tygodniu badacze z Aqua Security.

Ryzyko zmiany nazwy

Aby uniknąć zerwania zależności w kodzie, GitHub tworzy łącze pomiędzy oryginalną nazwą repozytorium a nową, dzięki czemu wszystkie projekty zależne od oryginalnego repozytorium są automatycznie przekierowywane do repozytorium o nowej nazwie. Jeśli jednak organizacji nie uda się odpowiednio zabezpieczyć starej nazwy użytkownika, osoba atakująca może po prostu użyć jej ponownie do utworzenia trojanizowanej wersji oryginalnego repozytorium, dzięki czemu wszystkie projekty korzystające z repozytorium ponownie zaczną pobierać z niego zależności.

„Kiedy właściciel repozytorium zmienia swoją nazwę użytkownika, tworzone jest łącze pomiędzy starą i nową nazwą dla każdego, kto pobiera zależności ze starego repozytorium.” Badacze Aqua twierdzą w tym tygodniu na blogu. „Jednak każdy może utworzyć starą nazwę użytkownika i przerwać to łącze”.

Badacze z Aqua postanowili niedawno zbadać, czy w GitHub często występują repozytoria podatne na takie przejęcia lub przejmowanie repozytoriów zależności, jak to zagrożenie określają niektórzy badacze bezpieczeństwa.

Szeroko rozpowszechniony problem

To, co odkryła Aqua, było dwojakie: miliony takich repozytoriów – w tym te należące do takich firm jak Google i Lyft – znajdują się w GitHubie; a narzędzia są łatwo dostępne dla atakujących, aby znaleźć te repozytoria i je przejąć. Jednym z takich narzędzi jest GHTorrent, projekt, który utrzymuje w GitHubie niemal kompletny zapis wszystkich wydarzeń publicznych, takich jak zatwierdzenia i żądania ściągnięcia. Atakujący mogą użyć GHTorrent do przejęcia nazw repozytoriów GitHub, z których wcześniej korzystała organizacja. Następnie mogą zarejestrować repozytorium pod starą nazwą użytkownika, odtworzyć repozytorium i dostarczyć złośliwe oprogramowanie do dowolnego projektu, który go używa.

Każdy projekt, który bezpośrednio odwołuje się do repozytorium GitHub, jest podatny na ataki, jeśli właściciel repozytorium zmieni lub usunie nazwę użytkownika swojego repozytorium.

„Zaprezentowaliśmy znaczny zbiór danych, który atakujący mogą wykorzystać do zebrania nazw poprzednich repozytoriów należących do organizacji” – mówi Yakir Kadkoda, badacz bezpieczeństwa w Aqua Nautilus.

„Organizacje nie powinny zakładać, że ich stare nazwy pozostaną nieujawnione” – ostrzega Kadkoda. „Ważne jest, aby przejęli swoje stare nazwy użytkowników w GitHubie i zachowali je, a także skanowali adresy URL GitHub i odniesienia w swoim kodzie, aby zidentyfikować wszelkie repozytoria, które potencjalnie mogłyby zostać przejęte przez osobę atakującą”.

Omijanie zabezpieczeń

Kadkoda twierdzi, że GitHub próbował rozwiązać ten problem, uniemożliwiając tworzenie nazw użytkowników i repozytoriów, które były wcześniej własnością, a obecnie przekierowują do innych projektów. GitHuba także wdrożył mechanizm kilka lat temu o wycofaniu przestrzeni nazw popularnych repozytoriów w celu ograniczenia tego zagrożenia. „Jednak w ciągu ostatnich kilku lat odkryto kilka obwodnic” – mówi. Podczas badania Aqua badacze znaleźli kilka przykładów repozytoriów, w których nie obowiązywała ochrona wdrożona przez GitHub. „Dlatego użytkownicy nie mogą w tym momencie w pełni polegać na tych zabezpieczeniach” – mówi.

Blog Aqua wskazał na lukę w zabezpieczeniach GitHuba, która polega na tym, że Checkmarx odkryty w zeszłym roku jako jeden z przykładów dostępnych dla atakujących sposobów ominięcia prób GitHuba mających na celu ochronę przed repojackingiem. Luka dotyczyła mechanizmu zwanego „wycofywaniem przestrzeni nazw popularnego repozytorium” i dotyczyła wszystkich nazw użytkowników, których nazwy zostały zmienione w GitHub, w tym ponad 10,000 XNUMX pakietów w menedżerach pakietów, takich jak Swift, Packagist i Go. „Repojacking to technika przechwytywania ruchu adresów URL repozytoriów o zmienionej nazwie i kierowania go do repozytorium osoby atakującej poprzez wykorzystanie luki logicznej, która zakłóca oryginalne przekierowanie” – stwierdził Checkmarx w raporcie na temat luki. „Repozytorium GitHub jest podatne na ponowne przejęcie kontroli, gdy jego twórca zdecydował się zmienić nazwę swojego użytkownika, podczas gdy stara nazwa użytkownika jest dostępna do rejestracji”.

Organizacje mogą ograniczyć swoje narażenie na zagrożenie typu repojacking, skanując swój kod, repozytoria i zależności w poszukiwaniu łączy do GitHub, mówi Kadkoda: „Powinny sprawdzić, czy te linki odnoszą się bezpośrednio do projektów GitHub lub czy istnieją przekierowania wskazujące na repozytoria pod innymi nazwami użytkowników lub repo nazwy niż oryginalne linki.” W takich przypadkach organizacje powinny podjąć próbę przejęcia dostępnej nazwy użytkownika, aby uniemożliwić to atakującym. „Dodatkowo organizacje powinny zawsze zachować swoje stare nazwy użytkowników w GitHub” – mówi.

Znak czasu:

Więcej z Mroczne czytanie