Menu dostępności

Podatność w Azure App Service

Zespół badawczy Wiz wykrył niezabezpieczone domyślne ustawienia w usłudze Azure App Service, które ujawniają kod źródłowy aplikacji napisanych w PHP, Python, Ruby lub Node. Warunek jest taki, że aplikacje muszą być wdrożone przez „Local Git”. Luka została nazwana „NotLegit” i istnieje w Azure od września 2017 roku oraz prawdopodobnie została wiele razy wykorzystana w atakach.

Wiz zgłosił tę podatność do Microsoft 7 października 2021 r. i od tej pory Microsoft poczynił pewne kroki łagodzące. Małe grupy klientów nadal są potencjalnie narażone i powinny podjąć działania w celu ochrony swoich aplikacji. Opisano je w kilku alertach e-mail, które Microsoft wysłał w dniach 7-15 grudnia.

Przed wyjaśnieniem podatności zajmijmy się podstawowymi pojęciami.


Co to jest usługa Azure App Service?

Azure App Service (aka Azure Web Apps) to oparta na chmurze platforma do hostowania witryn i aplikacji internetowych. Usługa jest łatwa w obsłudze, a co za tym idzie bardzo popularna. Najpierw wybieramy obsługiwany język programowania i system operacyjny. Następnie wdrażamy kod źródłowy aplikacji lub artefakty na serwer zarządzany przez platformę Azure przy użyciu protokołu FTP, SSH lub pobierając kod źródłowy z usługi Git (takiej jak GitHub lub prywatne repozytoria Git). Po wdrożeniu aplikacja jest dostępna publicznie dla każdego w Internecie w domenie *.azurewebsites.net.


Co to jest „Local Git”?

Platforma Azure obsługuje wiele metod wdrażania kodu źródłowego i artefaktów w usłudze Azure App Service, z których jedna korzysta z lokalnej instancji Git. Za pomocą „Local Git” instalujemy lokalne repozytorium Git w kontenerze usługi Azure App Service, które umożliwia wypchnięcie kodu bezpośrednio na serwer.

źródło: blog.wiz.io

Podatność „NotLegit”

W ramach najlepszych praktyk, gdy wdrażamy repozytoria git na serwerach internetowych, zawsze ważne jest, aby upewnić się, że folder .git również nie zostanie przesłany. Czemu? Ponieważ folder .git zawiera kod źródłowy, e-maile programistów i inne wrażliwe dane. Jednak w przypadku użycia metody wdrażania „Local Git” do implementacji w usłudze Azure App Service repozytorium git zostało utworzone w publicznie dostępnym katalogu (/home/site/wwwroot), do którego każdy może uzyskać dostęp. To znane już wcześniej dziwactwo Microsoftu. Aby chronić te pliki, Microsoft dodał plik „web.config” do folderu .git w katalogu publicznym, który ograniczył dostęp publiczny. Jednak tylko serwer webowy IIS firmy Microsoft obsługuje pliki „web.config”, więc jeśli używamy C# lub ASP.NET, aplikacja jest wdrażana z usługami IIS i „papierowa” łatka Microsoftu działa.

Ale co się dzieje, gdy ktoś użyje PHP, Ruby, Python lub Node w swojej aplikacji? Te języki programowania są wdrażane z różnymi serwerami internetowymi (Apache, Nginx, Flask itp.), które nie obsługują plików „web.config”, pozostawiając aplikacje podatną. W zasadzie wszystko, co musi zrobić tutaj złośliwy aktor, to pobrać katalog „/.git” z docelowej aplikacji i pobrać jej kod źródłowy. Ciężko to więc nazwać podatnością. Bardziej błędem w konfiguracji dostępów.

Ciekawostka: plik web.config Microsoftu zawierał literówkę (tag konfiguracyjny nie został poprawnie zamknięty), przez co plik nie mógł zostać przeanalizowany przez IIS. Na szczęście błąd zgłoszony przez literówkę zablokował dostęp do całego katalogu… Można więc powiedzieć, że „web.config” mimo wszystko spełnił swoją rolę na serwerów IIS 🙂

źródło: blog.wiz.io

Później Microsoft odkrył, że użytkownicy, którzy korzystali z innych narzędzi do wdrażania usługi Git, mogą być również narażeni. Jeśli plik został utworzony lub zmodyfikowany w kontenerze usługi Azure App Service (przy użyciu protokołu FTP, Web Deploy lub SSH) przed wdrożeniem usługi Git, usługa wejdzie w stan „inplace deployment”. Ten stan wymusza inicjowanie przyszłego wdrażania usługi Git w publicznie dostępnym katalogu.


Kto powinien się przejmować?

Podatne są wszystkie aplikacje PHP, Node, Ruby i Python, które zostały wdrożone przy użyciu „Local Git” w czystej aplikacji domyślnej w usłudze Azure App Service od września 2017 r. Również podatne są wszystkie aplikacje PHP, Node, Ruby i Python, które zostały wdrożone w Azure App Service od września 2017 r. przy użyciu dowolnego źródła Git, po utworzeniu lub zmodyfikowaniu pliku w kontenerze aplikacji.

Jedynymi aplikacjami, na które ta luka w zabezpieczeniach nie wpłynęła, są aplikacje oparte na usługach IIS.


Podsumowanie

Po ujawnieniu luki NotLegit, Microsoft zrozumiał wagę problemu i podjął wszelkie niezbędne kroki w celu zbadania go i złagodzenia. MSRC i zespół usługi Azure App Service przeprowadzili dogłębne dochodzenie i znaleźli przyczynę problemu, zastosowali poprawkę, która obejmuje najbardziej dotkniętych klientów oraz przesłali powiadomienia pocztą e-mail, aby ostrzec wszystkich klientów, którzy nadal są narażeni i oczekują na działanie od strony użytkownika.

Microsoft przyznał również odkrywcom luki nagrodę w wysokości 7500 USD, które jak twierdzą planują przekazać na cele charytatywne.

Popularne

Grupa ransomware zyskuje pełną kontrolę nad platformą Azure! Analiza ataku

Grupa ransomware zyskuje pełną kontrolę nad platformą Azure! Analiza ataku

Ciekawe informacje przynoszą badacze Microsoft. Opisali oni, w jaki sposób często omawiane przez nas ataki na AD mogą posłużyć do przejęcia całego środowiska chmurowego. Jako przykład służy Storm-0501 ...
PromptLock – pierwszy ransomware oparty na sztucznej inteligencji!

PromptLock – pierwszy ransomware oparty na sztucznej inteligencji!

MalwareAI, czyli złośliwe oprogramowanie oparte na sztucznej inteligencji, jest bliżej, niż oczekiwano. Odkryto pierwszą rodzinę ransomware wykorzystującą systemy sztucznej inteligencji do operacji lokalny...
Popularne oszustwa na WhatsAppie i jak ich uniknąć

Popularne oszustwa na WhatsAppie i jak ich uniknąć

Z ponad dwoma miliardami użytkowników WhatsApp oferuje ogromną pulę potencjalnych celów dla scamerów. Aby jeszcze bardziej skomplikować sprawę, oszuści cały czas zdobywają nowe wyrafinowane umiejętno...
Cyberprzestępcy sięgają po formularze „Contact Us” – nowy atak phishingowy na firmy produkcyjne

Cyberprzestępcy sięgają po formularze „Contact Us” – nowy atak phishingowy na firmy produkcyjne

Najnowsza kampania phishingowa, ujawniona przez badaczy z Check Point, koncentruje się na firmach z sektora produkcyjnego oraz innych kluczowych elementach łańcuchów dostaw. Jej szczególna złośliwość polega n...
Uwaga! Ataki na użytkowników Apple wykorzystujące lukę zero-day w WhatsAppie!

Uwaga! Ataki na użytkowników Apple wykorzystujące lukę zero-day w WhatsAppie!

O platformie WhatsApp pisaliśmy wielokrotnie. Dzisiaj mamy ku temu kolejny powód. WhatsApp udostępnił szczegóły dotyczące podatności typu zero-day, która została wykorzystana w kampanii szpiegującej, w ukierunk...