7:34
14/6/2012

Błąd w wirtualizacji wbudowanej w procesory Intela pozwala atakującym na wykonanie swojego kodu na poziomie Ring 0. Problem dotyczy 64 bitowych Windowsów, Linuksów i FreeBSD a także hypervisora Xen.

Poprzez manipulacje stosem, atakujący z poziomu Ring 3 może podnieść swoje uprawnienia i wykonywać kod na poziomie Ring 0 (wyskoczenie z wirtualnej maszyny z poziomu gościa do hosta). Luka dotyczy tylko procesoroów Intela.

intel

Aby zabezpieczyć swój system przed tym błędem należy zaaplikować odpowiednie patche od dostawcy swojego systemu operacyjnego.

Przeczytaj także:



52 komentarzy

Dodaj komentarz
  1. procesoroów?

    • Sorry, nie wiedziałem że to blog o j. polskim…

    • Nie jest to blog o j polskim, ale jak bys np czytal cos takiego:
      “Ktoś zgłosił bóga ktury do tyczy rurznyh systemuw kompóterowych.”
      To by Cie szlak trafił i od razu byś zmienił zdanie.

      Mi osobiście nie przeszkadzają błędy w stylu “procesoroów” ale rozumiem, że kogoś to może razić i jeżeli wystarczy tekst przepuścić przez najzwyklejsze sprawdzanie pisowni, które jest w większości przeglądarek to zupełnie nie rozumiem obecnego stanu rzeczy. Co wejdę w jakiś news to widzę denerwujące komentarze o błędach, które, muszę przyznać, są słuszne.

      Panowie! Umieszczacie treści na tak popularnym blogu to na litość Boską przepuście to 1 raz przez sprawdzanie pisowni. Mniejsza już o komentarze czy o interpunkcję w newsach bo każdemu się zdarza, ale jak możecie publikować coś co jest od razu podkreślone na czerwono?

    • Publikujemy emaksem przez telnet. nic tu nic podkresla niczego na czerwono ;)

    • @Piotr Konieczny
      Emaks ma sprawdzanie pisowni, ale i tak wolę vima

    • Nie jest to blog o j polskim, ale jak bys np czytal cos takiego: “Ktoś zgłosił bóga ktury do tyczy rurznyh systemuw kompóterowych.” To by Cie szlak trafił i od razu byś zmienił zdanie. szlag mnie trafia, jak ktoś kogoś poucza, samemu robiąc błędy… :)

  2. Jak zhackować elektroniczny dzienniczek ucznia? – 92 komentarze
    Eskalacja przywilejów na procesorach Intela – 0 komentarzy

    Zbyt trudny temat “hakierzy” ?:)

    • porównaj czasy publikacji, hackerze ;) Ciężko jest coś skomentować 92 razy w 10 min. o 7:30 rano… Nadawałbyś się do tworzenia wykresów słupkowych pod sondaże w telewizji, one nigdy nie zachowują proporcji ;)

    • Piotrze, nie wiesz że hackier nie śpi – hackier czuwa :)

      swoją drogą – dzisiaj również vmware połatał ESXi i Workstation… luka ciekawa (VMSA-2012-0011):

      Input data is not properly validated when loading Checkpoint files. This may allow an attacker with the ability to load a specially crafted Checkpoint file to execute arbitrary code on the host.

    • @FSI To ma nawet nazwę ;) http://en.wikipedia.org/wiki/Parkinson%27s_Law_of_Triviality

  3. amd góra ;) ciekawe ile vpsow podnioslo swoje uprawnienia przed patchem

  4. to nie błąd to celowe wprowadzenie backdora by fbi mogło wyczaić który hacker jest za wirtualną maszyną …

    • Rany boskie ludzie czy wy nie macie innego zajęcia oprócz snucia teorii spiskowych.. co za kraj..

    • Guanatan – jaka masz pewnosc, ze tak wlasnie nie jest?

    • Guanatan, mi się wydaję że to był jednak żart. Przynajmniej taką mam nadzieję…

    • nie żadne FBI a rosyjskie FSB, wpuszczanie takich błędów do procesora to jest jawny akt antypolonizmu

  5. amd górą do czasu :D Zapewniam, że prędzej czy później ktoś “wyeksplojtuje” :D

  6. Najgorsze w tym jest to, że wielokrotnie na spotkaniach w różnych dużych firmach mówiłem, że separacja poprzez VM jest niebezpieczna i można uciec z gościa na hosta – a wszyscy to ignorują i klasyfikują prawdopodobieństwo wystąpienia równoważne do lądowania kosmitów. Bezgraniczna wiara ludzi w marketing wirtualizacji i tzw. chmury kiedyś doprowadzi do katastrofy.

    • Separacja jest niebezpieczna nie tylko ze względu na bugi.
      Jestem ciekaw co sądzisz o wymianie danych między wirtualkami ;-) w kontekście sieciowego systemu wykrywania włamań lub monitorowania ruchu sieciowego między wirtualkami.

    • troche masz racji ale tylko troche – kto ci broni korzystac z zastowoan chmur ale tylko wykorzystujace wirtualizery ??? prosty przyklad – stackops
      i co mi gosc zrobi jak sobie podniesie poziom ??? nadmucha sobie tylko w balonik i zacznie sie wkurzac ze czas stracil
      prosta zasada wirualizacji, host inny niz VM-ki, no ale jak ktos idzie na latwizne i robi sobie vmware lub hyper-v to masz ci babo placek
      swoja droga to by po czesci tlumaczylo niektore zwiechy chmur w ostatnim czasie

  7. Dobrze że mam 32bitowego Linuksa (instalowałem wersję 32bit ze względu na ówczesne problemy z flashem, teraz jestem szczęśliwy że to zrobiłem).

  8. Ktoś wie czy VMware np ESX też łapie?

    Dobrą praktyką przy wirtualkach z wielu powodów jest nie trzymanie systemów o różnym poziomie zaufania/wsparcia/zabezpieczenia na tym samym fizycznym sprzęcie.

    Np nie trzymać jakiegoś starego zmigrowanego (w celu likwidacji sprzętu) systemu na tej samej fizycznej maszynie co kontroler domeny albo vCenter;-)

    Generalnie groźny błąd ale do łatwych do wykorzystania chyba nie należy?

    • PS
      Ciekawe jak z hostingami? ;-)

  9. Czyli user bez uprawnień roota mógł nagle stać się rootem? Tak wynika z tego, co czytam – ring 3 to chyba userzy… A później ten root mógł się wyłamać z maszyny wirtualnej na dziesiątki różnych sposobów? Coś mi się zdaje, że Rutkowska będzie miała o czym pisać – VT-d już padło 2 różnymi wektorami, teraz to.

  10. Ciekawem, czy problem tyczy sie wszystkich CPU Intela z wirtualizacja, czy tylko okreslonych modeli? nie zostalo to napisane w artykule. Generalnie brzmi paskudnie, bo to rzecz sprzetowa. Nie do konca rozumiem jak mozna zalatac problem w sprzecie patchem na software. Prawdopodobnie nie rozumiem tu zbyt wielu rzeczy.

    • Problem polega na tym, że procesor wykonuje operacje dające nieprzewidziane przez OS wartości. Coś typu: system operacyjny działa sobie na procesorze, wywołuje pewną instrukcję procesora, i spodziewa się, że ta zmieni mu tylko wartości w rejestrach ecx i edx, a ta nagle ni stąd ni z owąd podmienia ebx, w którym to rejestrze system sobie trzymał coś ważnego.
      Dokładniej się nie wczytywałem, ale z tego, co rozumiem, zasada działania jest właśnie taka (rejestry powyżej wzięte pierwsze z brzegu, nie jestem programistą Assemblera).

  11. “INTEL INSIDE” – dwa slowa, a jak wiele mowia…
    Myslicie ze sluzby specjalne tez maja poczucie humoru? :)

  12. I dla tego zawsze wybieram system 32 bitowy, bo nie mam jeszcze jakiegoś zaufania do 64 bitów

  13. Można łatać hardware softwarem, był w latach 90-tych taki słynny bug w prockach pentium – kalkulator w windowsie źle obsługiwał pewne liczby. I to załatano.

    • Dzieki za info, Wojtek.

    • ale pleciesz bzdury – nie mozna hardwaru zalatac o ile mu nie wymienisz calego softu go obsulugujacego, co nie jest mozliwe jesli nie ma sie specjalistycznego sprzetu i znajomosci jezyka maszynowego
      taki patch polega albo na wyodrebnieniu bledu i go wykilowanie jak sie pojawi lub tez [ co sie najczesciej stosuje] wsadza sie kolejne instrukcje ktore poddaja wadliwy proces weryfikacji [ przyklad kalkulatora]

    • @angelus – dzieki za wyjasnienie kwestii, angelus! mowiac szczerze mialem podobne wrazenie, ale bylem ciekaw, czy ktos poruszy ten watek. Tez sadzilem, ze takiego bledu nie da sie “wykorzenic”, skoro siedzi w architekturze sprzetu, mozna go jedynie eliminowac, lub korygowac na poziomie programowym. Na to przynajmniej wskazuje mi logika, choc programista absolutnie nie jestem, a jesli jestem, to bardzo kiepskim ;)

      Pozdrawiam

    • A Panowie o microcode słyszeli?

      http://en.wikipedia.org/wiki/Microcode

      Quick cite: “microcode would be loaded into the control store from some other storage medium as part of the initialization of the CPU, and it could be altered to correct bugs in the instruction set, or to implement new machine instructions”

      pozdro

    • Więcej Nowy mikrokod (ale potworek:) może zostać załadowany w trakcie pracy systemu (u mnie linuks). I tylko producent wie co i na jakim poziomie może modyfikować.

  14. No i tyle właśnie jest warta wirtualizacja…

    Ja jednak jestem zdania, że najważniejsze maszyny z punktu widzenia infrastruktury firmowej powinny być osobnymi fizycznymi maszynami. Osobiście miałem nieprzyjemność poznać przypadek, gdzie np. serwer DHCP był maszyną wirtualną i to powodowało problem, bo jeśli nie wystartował jako pierwszy, to wszelakie usługi przestawały działać. Natomiast jako środowiska testowe czy developerskie – wtedy jak najbardziej.

    • Myślę że ludzie trochę “zachłysnęli” się możliwościami wirtualizacji i to, co powinno zostać do testów/rozwoju poszło za daleko aż do kuriozalnych sytuacji gdy nowy Adobe Reader ma ponad 100 mega, bo ma maszynę wirtualną na wypadek zainfekowanych PDFów. Technologia jest fajna, ale bez przesady.

    • @Sergi: do tego jeszcze jest pewien słaby punkt – jeżeli polecą mi dyski w maszynie (w sumie nieistotne, czy to będą lokalne dyski w maszynie, czy jakaś zewnętrzna macierz), to tracę kilka(naście/dziesiąt) maszyn. Jak poleci mi jakaś z jednym systemem operacyjnym – wylatuje jedna. Zresztą można to przenieść również na poziom innych komponentów sprzętowych. A wirtualizację często stosują firmy nie myślące o bezpieczeństwie, a już na pewno takie, które skąpią grosza na sprzęt (autopsja)…

    • @krpablo: i tak i nie.
      Bardzo często – te “najważniejsze maszyny z punktu widzenia infrastruktury firmowej” nie mają opcji klastrowania czy HA z punktu widzenia czy to aplikacji czy systemu operacyjnego.

      Dzięki dobrze zaprojekowanej i wrożonej wirtualizacji możesz zadbać o HA tylko raz i za jednym zamachem dla większości systemów. I nie jest tak jak piszesz, wirtualizacja potrafi zabezpieczyć bezprzestojowo przed padem fizycznej maszyny/macierzy czy całego site (mówiąc tutaj o lokalizacji), czego niejednokrotnie nie potrafią same aplikacje/systemy operacyjne.

    • rozwalaja mnie ludzie ktorzy “probuja” sie wypowiadac w temacie a nie maja zielonego pojecia na ten temat
      po pierwsze – jak masz wirtualke to tak robisz backup, kto nie robi backapow jest idiota
      po drugie – mam u siebie 2 rozne wirtualki skonfigurowane odpowiednio do startu [ twoj przyklad, mnie rozbawil do lez z tym dhcp ], odzyskiwanie danych czy load balancig wirtualek nie jest prosty ale odpowiednio skonfigurowany daje ci 1000% wiecej mozliwosci niz jakakolwiek swietnie skonfigurowana fizyczna maszyna

    • @angelus: w takim razie ja nie jestem odosobniony w tym, że jednego z poprzednich pracodawców uznałem za kompletnego idiotę, a wszelkie próby naprowadzenia go na właściwą ścieżkę skończyły się wypowiedzeniem umowy.
      Ja oczywiście wiem, że jest coś takiego jak backupy, load balancing czy redundancja albo konfiguracja kolejności startu wirtualek, ale… no właśnie, trzeba mieć kompetentnych przełożonych i nie skąpić na rozwiązania sprzętowe lub programowe (jeśli jest wyższa konieczność).
      Poza tym, miałem też krótki epizod w pewnej firmie zajmującej się “chmurą”. No niestety, zbyt dobrze widziałem, jak to funkcjonuje od środka – stanowczo NIE POLECAM nawet najgorszemu wrogowi podobnych usług. Za argument niech wystarczy fakt, że w tej firmie do dziś dnia używa się 3 (słownie: TRZECH) haseł administratora, wszystkie to grupy klawiszy obok siebie wciskane po kolei.

    • No nie zgodzę się. Dobrze zaprojektowane środowisko nie pozwoli na to, żeby wszystko stanęło przez jedną maszynę… Redundancja, redundancja, redundancja… Przy maszynach wirtualnych jest to skrajnie proste i można zrobić klona wszystkiego w sumie przy jednej przysłowiowej kawie :) A utrata danych??? Świadczy o braku świadomości, bo backup maszyn wirtualnych jest bajecznie prosty, a recovery nieporównywalnie szybsze przy fizycznych maszynach. Ja osobiście jestem zwolennikiem architektury mieszanej, także z robieniem backupu w postaci p2v – na czarną “gadzinę” ;) Wszystko jest dla ludzi i trzeba dostosować technologię do wymagań – czasem nie jest potrzebne posiadanie wielu maszyn fizycznych, bo jest to po prostu niepotrzebne marnowanie energii… Pozdrawiam :)

    • ujme to w ten sposob – jesli pracodawca nie jest w stanie sie przekonac do backapow to jest po prostu ciezkim idiota, ale jak to mowia – sa ci co robia backapy i ci co dopiero beda robic – poza tym wszystko zalezy od kwesti opisania problemu
      poniewaz pracuje tam gdzie pracuje i czesciowo jestem odpowiedzialny za edukacje/ sprzedaz uslugi / sprzetu to po prostu obrazowo przedtsawiam sytuacje klientowi
      furore robi haslo – a gdyby tak padl caly sprzet, co moj klient zrobi – nie ma backapu, nie ma sprzetu, przestoj kilka dniu lub tygodni – to przerazenie w oczach jest po prostu piekne :D
      byl jeden uparty klient [ sorki to nie jest kwestia pieniedzy, nie wierzcie w to moi drodzy koledzy IT ] ktory byl uparty jak wol, az mu padl serwer, 2 tygodnie bez maili [ zamowienia], bez rozliczen [ faktory, ksiegowosc ], brak dostepu do magazynu [ stock kontrol ] – teraz nas poleca innym
      podstawowa zasda przedtswienia problemu IT – to nie jest cos extra [ dvd, radio, yotube] to jest narzedzie pracy i trzeba to im uswiadomic najgorszym mozliwym przykladem [ bo w 90% tylko takie sie zdazaja ] i wtedy zostaje tylko kwestia rozsadnego podejscia co potrzeba i jak to zrobic zeby byl najmniejszy przestoj w biznesie

  15. @angelus naczytali się o e24cloud i teraz szpanują :)

  16. A jak sytuacja z ogryzkami?
    Ich system też podatny?
    A mówią że ten cały linuks taki bezpieczny :P

    • System ma tyle do powiedzenia co poprawność przygotowania exploita (np. wyskakując z gościa na Windowsie musi być gotowy że w ring0 ma np. Jabłuszko).

      Skoro bug leży w opcodach CPU, ogryzek jest tak samo podatny jak reszta (używa tej samej architektury sprzętowej).

      pozdro

    • Właśnie tu leży największa trudność, rozpoznanie co to za genialny system nas hostuje ;)

    • Linux jest bezpieczny. Pokaż mi Windows’a z zabezpieczeniami stworzonymi przez NSA! Proszę! Ludzie skąd wy czerpiecie tą wiedzę. Proces A nie może zmienić żadnego rejestru procesu B. Nawet kernel nie ma takich uprawnień, bo to by wymagało ring -1. Widzę, że rozumiecie, że istnieje zagrożenie, ale ze zrozumieniem rodzaju zagrożenia już gorzej. Ring 0 pozwala na wykonywanie pewnych instrukcji, które mogą być wykonane tylko w ring 0. To się dotyczy również intrukcji typu atomic, które wyłączają przerwania. Ring 0 nie ma nic wspólnego z superużytkwnikiem – root. Nawet root nie działa na ring 0 tylko na ring 3. W każdym momencie pracy komputera jest tylko jeden proces, który jest wykonywany na ring 0 – kernel sam w sobie – nic więcej! Root ma dostęp do pewnych syscall do których nie ma dostępu żaden inny użytkownik, ale root nigdy nie opuszcza ring 3. Żaden użytkownik nigdy nie działa poza ring 3. Xen (i inne hypervisory typu 0) jest tutaj wyjątkiem – to Xen działa na ring 0, kernel każdego OS działa na ring 3. W dzisiejszych OS korzysta się tylko z dwóch ring – 0 i 3.

    • Jak to kernel nie może modyfikować rejestrów innych programów? Są one zapisywane w RAMie (przełączanie kontekstów) więc jaki to stanowi problem?

  17. 1. http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-0744
    2. “…this vulnerability is a software implementation issue…”
    3. “Błąd w wirtualizacji wbudowanej w procesory Intela” – you’re doing it wrong

  18. A propos maszyn wirtualnych: co w wypadku gdy z maszyny wirtualnej hacker wyjdzie do hosta, który też jest maszyną wirtualną. Czy w tym wypadku gospodarz pierwszej zostaje gospodarzem (ring 0 i wyżej nie da rady wyjść)czy po prostu staje się zwyczajnym gościem realnego sprzętu (ring 3 i ew. powtarza całą zabawę)?

    • Zmiana ring jest zmianą sprzętową, a nie programową, więc nawet jeżeli używasz VBox pod Xen to nadal wyskakujesz bezpośrednio do ring 0. Tak czy inaczej, boicie się nie wiadomo czego. Soft jako taki nie jest w stanie przeskoczyć kernel’a, więc nie wiem o co wam chodzi. To kernel sam w sobie musi mieć poważny błąd, aby można było wykorzystać tą lukę. P.S. Szkoda mi was: ja mam AMD: taniej, szybciej, lepsza magistrala, otwarty microcode – postęp, a nie udawanie. Po co komu SSE milion? Mi wystarcza SSE4a, 64KiB data + 64KiB instructions L1 cache (przynajmniej 24KiB predecode instructions) i 256b magistrala wewnętrzna! Intel od lat produkuje ‘overdesigned’ procesory i zaczyna za to płacić. Mi nie jest potrzebny tryliard tranzystorów, a działający procesor za rozsądne pieniądze. Im bardziej skomplikowany procesor, tym wolniejszy. Mój Phenom II X6 1090T bez problemowo bije większość FX (może za wyjątkiem FX8) i całkiem sporo Intel iX, które mają do bani magistralę (HT bije na głowę QPI). HT to jest magistrala punkt-punkt, ale o dziwo ja mam co najmniej 9 urządzeń jest bezpośrednio podłączone do HT w moim komputerze (wszystkie mosty PCI-e, SATA, Ethernet itd). Czy Intel może się pochwalić taką magistralą? Od nie dawna może. AMD używa HT już 9 lat!

  19. Tym razem lepiej mieć procesory Intela bez VT-x lub program z funkcją Anti-Exe np. dla Windows aplikacja AppGuard.

Twój komentarz

Zamieszczając komentarz akceptujesz regulamin dodawania komentarzy. Przez moderację nie przejdą: wycieczki osobiste, komentarze nie na temat, wulgaryzmy.

RSS dla komentarzy: