Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book

Wykradanie medycznych danych przy pomocy Azure Health Bot

12 maja 2024, 11:53 | W biegu | 0 komentarzy

Piątkowy wieczór to ulubiony czas administratorów oraz badaczy bezpieczeństwa. Zgłoszenia w tym czasie są chyba najbardziej frustrujące a z drugiej strony, początek weekendu to ulubiony czas hackerów na zabawę w bug bounty. Tym razem użytkownik portalu Twitter/X @Yanir_, opublikował krótki wpis oraz post na blogu w którym opisuje jak był w stanie wielokrotnie wykradać informacje medyczne z wielu organizacji przez bota Azure. 
Błąd został poetycko określony mianem lethal injecti0n i okazuje się, że do jego naprawienia potrzebne było kilka iteracji ;).

Rysunek 1. Nitka na Twitterze opisująca zdarzenie

Firmy zaczęły wykorzystywać usługę Azure Health Bot, która pozwala budować czaty dla pacjentów. Potencjalnie tego typu usługa może mieć dostęp do krytycznych danych z punktu widzenia atakujących (oraz ubezpieczycieli :) ).

Yanir najpierw znalazł podatność typu path traversal, która pozwoliła mu odczytać szczegóły pozwalające na uwierzytelnienie się do bota skonfigurowanego przez inne organizacje. 

Rysunek 2. Traversal pozwalający na odczytanie informacji innych organizacji, źródło

Wykorzystując znalezione informacje znalazł metodę na wykonanie kodu na serwerze. Po krótkim rekonesansie udało się ustalić, że wykonywane operacje mają miejsce wewnątrz piaskownicy (ang. sandbox). Dalszy fingerprinting usługi pozwolił na określenie, że jest to Node.js vm2. Udało się uzyskać RCE z uprawnieniami roota w ograniczonym środowisku, które jednak było współdzielone między klientami (ang. tenant). 

Rysunek 3. Ucieczka z sandboksa przez nadpisanie indexOf, źródło
Rysunek 4. Wykonanie polecenia z uprawnieniami roota, źródło

To dało z kolei dostęp dodanych botów innych organizacji oraz dostęp do wewnętrznego API. Okazuje się, że Microsoft został powiadomiony o zaistniałej możliwości i szybko naprawił podatność typu sandbox escape w ciągu niespełna 24h. Jednak nieskutecznie. Badacz wracał jeszcze dwukrotnie z innymi metodami ucieczki z sandboxa aż do finalnego naprawienia problemu przez zastąpienie vm2 biblioteką isolated-vm. 

W wyniku zgłoszenia serii podatności, badacz otrzymał nagrodę w wysokości $203,000 a Microsoft przeprojektował swoją usługę poprawiając sandboxing oraz przede wszystkim oddzielając dane klientów. Teraz konfiguracja i dane bota każdej organizacji znajdują się w oddzielnej maszynie wirtualnej. 

~fc

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

Odpowiedz