W zeszłym tygodniu Progress Software Corporation, która sprzedaje oprogramowanie i usługi do tworzenia interfejsów użytkownika, devops, zarządzania plikami i nie tylko, zaalarmowała klientów o swoich Przeniesienie MOVEit i pokrewne MOVEit Chmura produkty o krytyczna wrażliwość dubbingowane CVE-2023-34362.
Jak sama nazwa wskazuje, MOVEit Transfer to system, który ułatwia przechowywanie i udostępnianie plików w całym zespole, dziale, firmie, a nawet łańcuchu dostaw.
W swoich własne słowa, „MOVEit zapewnia bezpieczną współpracę i zautomatyzowane przesyłanie wrażliwych danych oraz zaawansowane możliwości automatyzacji przepływu pracy bez konieczności używania skryptów”.
Niestety, interfejs sieciowy MOVEit, który ułatwia udostępnianie plików i zarządzanie nimi za pomocą samej przeglądarki internetowej (proces ogólnie uważany za mniej podatny na błędne przekierowanie lub „utratę” plików niż udostępnianie ich przez e-mail), okazał się mieć błąd SQL podatność na wtryski.
Wyjaśnienie iniekcji SQL
Błędy iniekcji SQL oparte na sieci Web pojawiają się, gdy przesyłane jest żądanie HTTP do serwera WWW jest konwertowany w sposób niezabezpieczony na polecenie zapytania, które jest następnie wydawane przez serwer samo przeszukanie bazy danych w celu ustalenia, jaką odpowiedź HTTP należy skonstruować.
Na przykład wyszukiwanie w bazie danych, które jest uruchamiane ze strony internetowej, może zakończyć się jako adres URL żądany przez przeglądarkę, który wygląda tak:
https://search.example.com/?type=file&name=duck
Tekst zapytania duck
można następnie wyodrębnić z parametru name w adresie URL, przekonwertować na składnię zapytania do bazy danych i połączyć w polecenie do przesłania do serwera bazy danych.
Jeśli dane zaplecza są przechowywane w bazie danych SQL, serwer WWW może przekonwertować ten adres URL na polecenie SQL, takie jak to pokazane poniżej.
Połączenia %
znaki dodane do tekstu duck
oznaczają, że wyszukiwane hasło może pojawić się w dowolnym miejscu w wyszukiwanej nazwie pliku, a pojedyncze cudzysłowy na każdym końcu są dodawane jako znaczniki oznaczające ciąg tekstowy SQL:
WYBIERZ nazwę pliku Z plikówdb WHERE nazwa LIKE „%duck%”
Dane, które pochodzą z zapytania, można następnie ładnie sformatować, przekonwertować na format HTML i odesłać jako odpowiedź HTTP do przeglądarki, być może udostępniając klikalną listę pasujących plików do pobrania.
Oczywiście serwer internetowy musi bardzo uważać na nazwy plików, które są przesyłane jako wyszukiwane hasło, na wypadek gdyby złośliwy użytkownik utworzył i zażądał takiego adresu URL:
https://search.example.com/?type=file&name=duck';DROP table filesdb;--
Jeśli to wyszukiwane hasło zostało ślepo przekonwertowane na ciąg zapytania, możesz być w stanie oszukać serwer WWW, aby wysłał do serwera SQL polecenie takie jak to:
WYBIERZ nazwę pliku Z plikówdb WHERE nazwa LIKE „%duck”;DROP TABLE filesdb;--%”
Ponieważ średnik (;
) działa jak separator instrukcji w języku SQL, to jednowierszowe polecenie jest w rzeczywistości tym samym, co wysłanie trzech następujących po sobie poleceń:
WYBIERZ nazwę pliku Z plikówdb WHERE nazwa LIKE '%duck' -- pasuje do nazw kończących się kaczka DROP TABLE filesdb -- usuwa całą bazę danych --%' -- komentuje, nic nie robi
Ukradkiem, bo każdy po --
zostanie odrzucony przez SQL jako komentarz programisty, te trzy linie są takie same jak:
WYBIERZ nazwę pliku Z plikówdb WHERE nazwa LIKE „%duck” DROP TABLE filesdb
Otrzymasz listę wszystkich nazw plików w bazie danych, które kończą się ciągiem duck
(specjalny znak SQL %
na początku wyszukiwanego hasła oznacza „dopasuj wszystko do tego punktu”)…
…ale będziesz ostatnią osobą, która wyciągnie z niego coś przydatnego filesdb
database, ponieważ nieuczciwe wyszukiwane hasło będzie śledzić wyszukiwanie za pomocą polecenia SQL, aby usunąć całą bazę danych.
Stoliki Bobby
Jeśli kiedykolwiek słyszałeś, jak administratorzy systemu lub programiści żartują Stoliki Bobby, to dlatego, że ten rodzaj iniekcji SQL został unieśmiertelniony w pliku Kreskówka XKCD z powrotem w 2007:
Jak kończy się rysunek w ostatniej klatce, naprawdę musisz oczyścić dane wejściowe z bazy danych, co oznacza, że musisz bardzo uważać, aby osoba przesyłająca wyszukiwane hasło nie miała wpływu na to, jak polecenie wyszukiwania zostanie zinterpretowane przez zaangażowane serwery zaplecza.
Możesz zrozumieć, dlaczego ten rodzaj sztuczki jest znany jako atak polegający na wstrzyknięciu: w powyższych przykładach złośliwe wyszukiwane hasła powodują wstrzyknięcie dodatkowego polecenia SQL do obsługi żądania.
W rzeczywistości oba te przykłady obejmują dwa wstrzyknięte formularze, po podstępnie wstawionym znaku „cytatu zamkniętego”, aby wcześniej zakończyć ciąg wyszukiwania. Pierwsza dodatkowa komenda jest destrukcyjna DROP TABLE
instrukcja. Drugi to „komenda komentarza”, która powoduje, że reszta linii jest ignorowana, sprytnie zjadając w ten sposób końcową linię %'
znaków generowanych przez generator poleceń serwera, co w przeciwnym razie spowodowałoby błąd składni i uniemożliwiłoby wstrzyknięcie DROP TABLE
polecenie z pracy.
Dobre i złe wieści
Dobrą wiadomością w tym przypadku jest to, że Progress załatał wszystkie obsługiwane wersje MOVEit wraz z usługą opartą na chmurze, gdy tylko dowiedział się o luce.
Tak więc, jeśli korzystasz z wersji w chmurze, jesteś teraz automatycznie aktualizowany, a jeśli używasz MOVEit we własnej sieci, mamy nadzieję, że już zainstalowałeś łatkę.
Zła wiadomość jest taka, że ta luka była zero-day, co oznacza, że Progress dowiedział się o niej, ponieważ źli już ją wykorzystywali, a nie zanim wymyślili, jak to zrobić.
Innymi słowy, zanim załatałeś swoje własne serwery (lub Progress załatał swoją usługę w chmurze), oszuści mogli już wstrzyknąć nieuczciwe polecenia do twoich backendowych baz danych MOVEit SQL, z szeregiem możliwych rezultatów:
- Usuwanie istniejących danych. Jak pokazano powyżej, klasycznym przykładem ataku typu SQL injection jest niszczenie danych na dużą skalę.
- Eksfiltracja istniejących danych. Zamiast usuwać tabele SQL, osoby atakujące mogą wstrzykiwać własne zapytania, ucząc się w ten sposób nie tylko struktury wewnętrznych baz danych, ale także wydobywając i kradnąc ich najbardziej soczyste części.
- Modyfikacja istniejących danych. Bardziej subtelni napastnicy mogą zdecydować się na uszkodzenie lub zakłócenie danych zamiast (lub równie dobrze) ich kradzieży.
- Implantacja nowych plików, w tym złośliwego oprogramowania. Atakujący mogą wstrzykiwać polecenia SQL, które z kolei uruchamiają polecenia systemu zewnętrznego, uzyskując w ten sposób dowolne zdalne wykonanie kodu w sieci.
Jedna grupa napastników, rzekomy przez Microsoft, aby być (lub być powiązanym) z niesławnym gangiem oprogramowania ransomware Clop, najwyraźniej wykorzystywali tę lukę do wszczepiania tzw. powłoki internetowe na dotkniętych serwerach.
Jeśli nie znasz powłok webshell, przeczytaj nasz artykuł zwykły tłumacz języka angielskiego które opublikowaliśmy w czasie kłopotliwych ataków HAFNIUM w marcu 2021 r.:
Niebezpieczeństwo powłoki internetowej
Mówiąc najprościej, webshells umożliwiają atakującym, którzy mogą dodawać nowe pliki do Twojego serwera WWW, wrócić później, włamać się w czasie wolnym i wykorzystać dostęp tylko do zapisu do pełnej zdalnej kontroli.
Powłoki internetowe działają, ponieważ wiele serwerów WWW traktuje określone pliki (zwykle określane na podstawie katalogu, w którym się znajdują lub posiadanego rozszerzenia) jako skryptów wykonywalnych używany do generowania strony do odesłania, a nie jako rzeczywista treść do wykorzystania w odpowiedzi.
Na przykład IIS (serwer informacji internetowych) firmy Microsoft jest zwykle skonfigurowany w taki sposób, że jeśli przeglądarka internetowa zażąda pliku o nazwie, powiedzmy, hello.html
, to surowa, niezmodyfikowana zawartość tego pliku zostanie wczytana i odesłana z powrotem do przeglądarki.
Więc jeśli jest w tym jakieś złośliwe oprogramowanie hello.html
plik, to wpłynie to na osobę przeglądającą serwer, a nie na sam serwer.
Ale jeśli plik zostanie wywołany, powiedzmy, hello.aspx
(gdzie ASP jest skrótem od wyrażenia samoopisowego Aktywne strony serwera), plik ten jest traktowany jako program skryptowy do wykonania przez serwer.
Uruchomienie tego pliku jako programu, zamiast po prostu wczytać go jako dane, wygeneruje dane wyjściowe do wysłania w odpowiedzi.
Innymi słowy, jeśli jest w tym jakieś złośliwe oprogramowanie hello.aspx
plik, to wpłynie to bezpośrednio na sam serwer, a nie na osobę, która go przegląda.
Krótko mówiąc, upuszczenie pliku powłoki internetowej jako efekt uboczny ataku polegającego na wstrzykiwaniu poleceń oznacza, że osoby atakujące mogą wrócić później i odwiedzając adres URL odpowiadający nazwie pliku tej powłoki internetowej…
…mogą uruchamiać swoje złośliwe oprogramowanie bezpośrednio w Twojej sieci, używając niczego bardziej podejrzanego niż niepozorne żądanie HTTP wysyłane przez zwykłą przeglądarkę internetową.
Rzeczywiście, niektóre webshelle składają się tylko z jednego wiersza złośliwego skryptu, na przykład pojedynczego polecenia, które mówi „pobierz tekst z określonego nagłówka HTTP w żądaniu i uruchom go jako polecenie systemowe”.
Daje to dostęp do poleceń i kontroli ogólnego przeznaczenia każdemu atakującemu, który zna właściwy adres URL do odwiedzenia i właściwy nagłówek HTTP, którego należy użyć do dostarczenia nieuczciwego polecenia.
Co robić?
- Jeśli jesteś użytkownikiem MOVEit, upewnij się, że wszystkie wystąpienia oprogramowania w sieci są załatane.
- Jeśli nie możesz teraz załatać, wyłącz interfejsy internetowe (HTTP i HTTP) do serwerów MOVEit, dopóki nie będzie to możliwe. Najwyraźniej ta luka jest ujawniana tylko za pośrednictwem interfejsu internetowego MOVEit, a nie za pośrednictwem innych ścieżek dostępu, takich jak SFTP.
- Przeszukaj swoje dzienniki dla nowo dodanych plików serwera WWW, nowo utworzonych kont użytkowników i nieoczekiwanie dużych pobrań danych. Progress ma listę miejsc do wyszukania wraz z nazwami plików i do wyszukania.
- Jeśli jesteś programistą, oczyść swoje dane wejściowe.
- Jeśli jesteś programistą SQL, używał zapytań sparametryzowanych, zamiast generować polecenia zapytania zawierające znaki kontrolowane przez osobę wysyłającą żądanie.
W wielu, jeśli nie w większości, zbadanych do tej pory ataków opartych na powłoce internetowej, Sugeruje postęp że prawdopodobnie znajdziesz nieuczciwy plik webshell o nazwie human2.aspx
, być może wraz z nowo utworzonymi złośliwymi plikami z rozszerzeniem .cmdline
rozbudowa.
(Produkty Sophos wykryją i zablokują znane pliki webshell jako Troj/WebShel-GO, czy są tzw human2.aspx
albo nie.)
Pamiętaj jednak, że jeśli inni atakujący wiedzieli o tym dniu zerowym przed wypuszczeniem łatki, mogli wstrzyknąć inne, być może bardziej subtelne polecenia, których nie można teraz wykryć, skanując w poszukiwaniu pozostawionego złośliwego oprogramowania lub przeszukując dla znanych nazw plików, które mogą pojawić się w dziennikach.
Nie zapomnij ogólnie przejrzeć dzienników dostępu, a jeśli nie masz czasu, aby zrobić to samodzielnie, nie bój się poprosić o pomoc!
Dowiedz się więcej o: Zarządzanie wykrywaniem i reagowaniem Sophos:
Całodobowe polowanie na zagrożenia, wykrywanie i reagowanie ▶
Nie masz czasu lub wiedzy, aby zająć się reagowaniem na zagrożenia cyberbezpieczeństwa? Martwisz się, że cyberbezpieczeństwo odciągnie Cię od wszystkich innych rzeczy, które musisz zrobić?
- Dystrybucja treści i PR oparta na SEO. Uzyskaj wzmocnienie już dziś.
- PlatoAiStream. Analiza danych Web3. Wiedza wzmocniona. Dostęp tutaj.
- Wybijanie przyszłości w Adryenn Ashley. Dostęp tutaj.
- Kupuj i sprzedawaj akcje spółek PRE-IPO z PREIPO®. Dostęp tutaj.
- Źródło: https://nakedsecurity.sophos.com/2023/06/05/moveit-zero-day-exploit-used-by-data-breach-gangs-the-how-the-why-and-what-to-do/
- :ma
- :Jest
- :nie
- :Gdzie
- $W GÓRĘ
- 1
- 15%
- 2021
- a
- Zdolny
- O nas
- o tym
- powyżej
- bezwzględny
- dostęp
- Konta
- osiągnięcia
- Dzieje Apostolskie
- rzeczywisty
- faktycznie
- Dodaj
- w dodatku
- Dodatkowy
- zaawansowany
- oddziaływać
- boi
- Po
- Wszystkie kategorie
- dopuszczać
- wzdłuż
- już
- również
- an
- i
- każdy
- wszystko
- nigdzie
- zjawić się
- SĄ
- AS
- At
- atakować
- Ataki
- autor
- samochód
- zautomatyzowane
- automatycznie
- Automatyzacja
- świadomy
- z powrotem
- Backend
- background-image
- Łazienka
- BE
- stał
- bo
- być
- zanim
- za
- poniżej
- na oślep
- Blokować
- Bobby
- granica
- obie
- Dolny
- naruszenie
- przerwa
- przeglądarka
- Przeglądanie
- błędy
- ale
- by
- nazywa
- oprawa ołowiana witrażu
- CAN
- możliwości
- który
- ostrożny
- rysunek
- walizka
- Spowodować
- powodowany
- Przyczyny
- Centrum
- pewien
- łańcuch
- charakter
- znaków
- klasyczny
- Chmura
- kod
- współpraca
- kolor
- jak
- byliśmy spójni, od początku
- komentarz
- sukcesy firma
- kompletny
- połączony
- kolejny
- za
- skonstruować
- zawartość
- kontrola
- kontrolowanych
- konwertować
- przeliczone
- KORPORACJA
- Odpowiedni
- mógłby
- kurs
- pokrywa
- Stwórz
- stworzony
- Crooks
- Klientów
- Bezpieczeństwo cybernetyczne
- dane
- naruszenie danych
- Baza danych
- Bazy danych
- zdecydować
- dostarczanie
- Departament
- wykryte
- Wykrywanie
- ustalona
- oprogramowania
- DevOps
- różne
- bezpośrednio
- Wyświetlacz
- Zakłócać
- do
- robi
- nie
- pobieranie
- pliki do pobrania
- Spadek
- Rzut
- dubbingowane
- każdy
- Wcześnie
- łatwo
- zakończenia
- błąd
- Parzyste
- EVER
- codzienny
- przykład
- przykłady
- wykonać
- egzekucja
- Przede wszystkim system został opracowany
- ekspertyza
- Wykorzystać
- narażony
- rozbudowa
- zewnętrzny
- dodatkowy
- fakt
- znajomy
- daleko
- wzorzysty
- filet
- Akta
- Znajdź
- i terminów, a
- obserwuj
- następujący
- W razie zamówieenia projektu
- znaleziono
- FRAME
- od
- z przodu
- Zaczepy
- Gang
- Ogólne
- ogólny cel
- ogólnie
- Generować
- wygenerowane
- generujący
- generator
- otrzymać
- daje
- Dający
- dobry
- wspaniały
- Zarządzanie
- miał
- Prowadzenie
- Have
- wysłuchany
- wysokość
- nadzieję
- unosić
- W jaki sposób
- How To
- Jednak
- HTML
- http
- HTTPS
- Łowiectwo
- if
- Iis
- in
- Włącznie z
- niesławny
- Informacja
- wstrzykiwać
- Wejścia
- zamiast
- Interfejs
- interfejsy
- wewnętrzny
- Internet
- najnowszych
- angażować
- zaangażowany
- Wydany
- IT
- JEGO
- samo
- właśnie
- tylko jeden
- znany
- duży
- na dużą skalę
- Nazwisko
- później
- uruchomić
- nauka
- lewo
- mniej
- lubić
- Linia
- linie
- Lista
- WYGLĄD
- wyszukiwania
- zrobiony
- robić
- WYKONUJE
- Dokonywanie
- malware
- zarządzanie
- zarządzane
- i konserwacjami
- wiele
- March
- Margines
- dopasowywanie
- Maksymalna szerokość
- Może..
- oznaczać
- znaczenie
- znaczy
- Microsoft
- może
- jeszcze
- większość
- Nazwa
- O imieniu
- Nazwy
- Potrzebować
- wymagania
- sieć
- Nowości
- nowo
- aktualności
- normalna
- nic
- już dziś
- of
- poza
- on
- pewnego razu
- ONE
- tylko
- or
- zamówienie
- Inne
- Inaczej
- ludzkiej,
- na zewnątrz
- wyniki
- wydajność
- własny
- strona
- parametr
- strony
- Łata
- Paweł
- może
- osoba
- Miejsca
- plato
- Analiza danych Platona
- PlatoDane
- position
- możliwy
- Wiadomości
- prawdopodobnie
- wygląda tak
- Produkty
- Program
- Programista
- Postęp
- zapewniać
- zapewnia
- opublikowany
- położyć
- zapytania
- zacytować
- zasięg
- ransomware
- raczej
- Surowy
- Czytaj
- Czytający
- naprawdę
- związane z
- względny
- zdalny
- odpowiadać
- zażądać
- wniosek
- wywołań
- odpowiedź
- REST
- przeglądu
- prawo
- run
- bieganie
- taki sam
- powiedzieć
- mówią
- skanowanie
- skrypty
- Szukaj
- poszukiwania
- druga
- bezpieczne
- widzieć
- Sprzedaje
- wysłać
- wysyłanie
- wrażliwy
- wysłany
- usługa
- Usługi
- Share
- dzielenie
- Short
- pokazać
- pokazane
- po prostu
- pojedynczy
- So
- dotychczas
- Tworzenie
- solidny
- kilka
- specjalny
- specyficzny
- SQL
- SQL injection
- początek
- Zestawienie sprzedaży
- sklep
- przechowywany
- sznur
- Struktura
- Zatwierdź
- składane
- taki
- Wskazuje
- Dostawa
- łańcuch dostaw
- Utrzymany
- podejrzliwy
- SVG
- składnia
- system
- stół
- Brać
- zespół
- semestr
- REGULAMIN
- niż
- że
- Połączenia
- ich
- Im
- następnie
- Tam.
- Te
- one
- rzeczy
- to
- groźba
- trzy
- poprzez
- czas
- do
- Top
- przenieść
- transfery
- przejście
- przezroczysty
- leczyć
- rozsierdzony
- SKRĘCAĆ
- Obrócony
- drugiej
- aż do
- nowomodny
- URL
- posługiwać się
- używany
- Użytkownik
- Interfejs użytkownika
- za pomocą
- zazwyczaj
- wersja
- przez
- Odwiedzić
- wrażliwość
- była
- Droga..
- we
- sieć
- przeglądarka internetowa
- serwer wWW
- Web-based
- tydzień
- DOBRZE
- były
- Co
- jeśli chodzi o komunikację i motywację
- czy
- który
- KIM
- cały
- dlaczego
- będzie
- w
- bez
- słowa
- Praca
- odrobić
- workflow
- automatyzacja przepływu pracy
- pracujący
- zmartwiony
- by
- ty
- Twój
- siebie
- zefirnet