Wszystkim użytkownikom zalecamy zachowanie ostrożności podczas pobierania modułów/skryptów ze zbioru PowerShell Gallery. Badacze z AquaSecurity twierdzą, iż repozytorium jest otwarte na serię ataków z powodu trzech problemów, nazwanych przez nich „PowerHell”.
Co to PowerShell Gallery?
Galeria programu PowerShell (PowerShell Gallery) jest najczęściej używanym (w większości przez administratorów) zasobem do udostępniania i pozyskiwania kodu programów napisanych w PowerShell. Zawiera moduły, skrypty i zasoby tzw. konfiguracji pożądanego stanu (DSC). Obsługiwana przez Microsoft tworzy rejestr zawierający łącznie aż 244 615 pakietów, w tym 11 829 unikalnych.
Przykładem jednego z modułów używanych przez administratorów, który jest pobierany z PowerShell Gallery jest moduł AZ.Accounts, służący do zarządzania poświadczeniami kont w Microsoft Azure (Entra). Przy użyciu interfejsu wiersza polecenia programu PowerShell można taki moduł pobrać lokalnie na komputer:
DevOps i inżynierowie wykorzystują moduły PowerShell Gallery w ramach wdrażania rozwiązań w chmurze, podobnie jak inne rejestry pakietów zintegrowane z cyklem życia programowania.
Ponadto niektóre pakiety pobierane są w milionach egzemplarzy, co daje łączną liczbę pobrań pakietów przekraczającą dziewięć miliardów w tym rejestrze.
W czym tkwi problem?
Zespół AquaSecurity twierdzi, iż trzy luki nazwane „PowerHell” potencjalnie stwarzają globalne ryzyko, od jednorazowych naruszeń po ataki na cały łańcuch dostaw, jeżeli zostaną wykorzystane.
Mówi się, iż zestaw luk w PowerShell naraża przedsiębiorstwa na ryzyko katastrofalnego włamania do sieci.
Pierwszy problem – typosquatting
Zidentyfikowane problemy mają związek z luźną polityką usługi dotyczącej nazw pakietów, pozbawionej ochrony przed atakami „typosquatting”, w wyniku czego atakujący mogą przesyłać złośliwe moduły PowerShell, które wydają się autentyczne dla niczego niepodejrzewającego użytkownika.
„Te wady sprawiają, iż ataki typosquatting są nieuniknione w tym rejestrze, a jednocześnie bardzo utrudniają użytkownikom zidentyfikowanie prawdziwego właściciela pakietu” – stwierdzili badacze bezpieczeństwa.
Typosquatting to sprawdzony w czasie wektor infekcji przyjęty przez przeciwników w celu zatrucia ekosystemów systemu open source poprzez publikowanie pakietów o nazwach, które są fonetycznie podobne do popularnych i legalnych modułów już dystrybuowanych za pośrednictwem repozytoriów.
Drugi problem – fałszywe metadane
Druga wada dotyczy zdolności hakera do sfałszowania metadanych modułu – w tym pól Autorzy, Prawa autorskie i Opis – aby wyglądały niepodejrzanie, co utwierdza nieświadomych użytkowników w przekonaniu, iż mogą spokojnie instalować pliki.
„Jedynym sposobem, w jaki użytkownicy mogą ustalić prawdziwego autora/właściciela, jest otwarcie zakładki Szczegóły pakietu” – informują badacze.
Ustalenie faktycznego autora modułu PowerShell w Galerii PowerShell stanowi pewne wyzwanie, gdyż klikniecie na „szczegóły pakietu” doprowadzi nas tylko do profilu fałszywego autora. A ponieważ osoba atakująca może swobodnie wybrać dowolną nazwę podczas tworzenia użytkownika w Galerii PowerShell, powoduje to duży problem.
Trzeci problem – wyświetlenie ukrytych pakietów
PowerShell Gallery nieprawidłowo ukrywa niewymienione moduły przed użytkownikami.
Jest to trzecia odkryta wada. Może zostać wykorzystana przez osoby atakujące do wylistowania przez użytkownika wszystkich nazw i wersji pakietów PowerShell, w tym tych, które nie są wymienione i mają być ukryte przed publicznym widokiem.
W rezultacie osoba atakująca zdalnie mogłaby wyliczyć różne niewymienione na liście moduły, z których korzysta cel.
Można to osiągnąć dzięki interfejsu API PowerShell:
„https://www.powershellgallery.com/api/v2/Packages?$skip=number”,umożliwiając atakującemu uzyskanie nieograniczonego dostępu do całej bazy danych pakietów PowerShell, w tym powiązanych wersji.
„Ten niekontrolowany dostęp zapewnia złośliwym podmiotom możliwość wyszukiwania potencjalnie poufnych informacji w niepublicznych pakietach. W rezultacie każdy niepubliczny pakiet zawierający poufne dane staje się bardzo podatny na ataki” – wyjaśniają badacze.
Co na to Microsoft?
Aqua Security poinformowała o zgłoszeniu firmie Microsoft niedociągnięć we wrześniu 2022 r., po czym producent systemu Windows miał wprowadzić reaktywne poprawki od 7 marca 2023 r. Problemy pozostają jednak powtarzalne.
„Ponieważ w coraz większym stopniu polegamy na projektach i rejestrach typu open source, związane z nimi zagrożenia bezpieczeństwa stają się coraz bardziej widoczne” – podsumowali naukowcy.
„Odpowiedzialność za zabezpieczenie użytkowników spoczywa przede wszystkim na platformie. Istotne jest, aby Galeria PowerShell i podobne platformy podjęły niezbędne kroki w celu wzmocnienia swoich środków bezpieczeństwa”.
Jak sobie radzić z problemami w PowerShell Gallery?
Aby pomóc chronić się przed atakami, badacze AquaSecurity radzą, by firmy egzekwowały politykę podpisywania modułów PowerShell oraz kierowały programistów i administratorów do zaufanego prywatnego repozytorium. Zalecane jest również regularne skanowanie danych wrażliwych przechowywanych w skryptach – skanowanie kodu źródłowego modułów w poszukiwaniu poświadczeń i przeprowadzanie regularnych ocen bezpieczeństwa w repozytoriach, które przechowują kod modułu i nim zarządzają.
Wdrożenie systemu do wykrywania podejrzliwej aktywności w środowiskach chmurowych to adekwatna droga pozwalająca chronić się organizacjom przed tego typu atakami.