20:17
16/8/2011

Jedna z firm produkujących oprogramowanie wykorzystywane w kryminalistyce informatycznej trąbi na lewo i prawo, że nowa wersja ich produktu jest w stanie w przeciągu kilku minut wykraść hasło z komputerów działających pod kontrolą najnowszego systemu Mac OS X Lion. Nawet, jeśli użytkownik korzysta z pełnego szyfrowania dysku twardego. Jak to możliwe?

Kradzież hasła w Mac OS X

Aby wykraść hasło, osoby które zakupią oprogramowanie Passware Kit Forensic v11 potrzebują jeszcze fizycznego dostępu do maszyny ofiary. Tu pewnie większość z Was odetchnie z ulgą, ale przypomnijmy ataki z gatunku “złośliwa pokojówka” i zadajmy sobie pytanie, czy (i kiedy) rozstajemy się z naszym laptopem? ;)

Mac OS X Firewire

Macbook - port Firewire

Atak wykorzystuje bug, a raczej feature portu/protokołu FireWire (standard IEEE-1394). Błąd znany jest od 2004 roku i polega:

  • podpięciu urządzenia po FireWire
  • uzyskaniu bezpośredniego dostępu do pamięci komuptera (DMA, feature FireWire)
  • zczytaniu odpowiednich jej fragmentów zawierających klucz wykorzystywany do szyfrowania dysku

Warto wspomnieć, że ta technika może posłużyć nie tylko do wykradzenia danych (kluczy kryptograficznych) ale również instalacji rootkita — takie plany miała firma HBGary, co wiemy dzięki atakowi LulzSec/Anonimowych.

Jak uchronić się przed tym atakiem?

Zawsze wyłączaj komputer (zamiast go usypiać) — wtedy w pamięci nie pozostaną żadne “wrażliwe” dane (hasła, klucze). Dodatkowo, włącz pełne szyfrowanie dysku twardego, wtedy nawet jeśli atakujący uzyska dostęp do wyłączonego komputera, to aby wgrać na niego rootkita będzie musiał podać hasło (bez niego system nie uruchomi się).

Uwaga, pomimo pełnego zaszyfrowania dysku twardego atakujący, który ma fizyczny dostęp do twojego laptopa wciąż może ci podmienić bootloader na swój, z keyloggerem. Dlatego warto zaraz po zaszyfrowaniu dysku zrobić sobie kopię bootloadera (np. na CD lub pendrive’a) i przed ponownym skorzystaniem z pozostawionego poza naszą kontrolą laptopa najpierw odtworzyć bootloader z kopii zapasowej, a dopiero potem uruchomić system.

Alternatywą jest też usunięcie obsługi FireWire, polegające w skrócie na usunięciu pliku /System/Library/Extensions/IOFireWireFamily.kext. Pamiętaj jednak, że wtedy nic, co podepniesz do portu FireWire nie będzie działać, a w “About this Mac” zobaczysz komunikat “No FireWire ports can be detected.

O ile atak ten obecnie przypomina się na przykładzie Mac OS X, to warto wspomnieć, że dotyczy on również innych systemów operacyjnych (i innych aplikacji do szyfrowania dysku twardego), o ile atakowany komputer posiada port FireWire.

Przeczytaj także:


Dowiedz się, jak zabezpieczyć swoje dane i pieniądze przed cyberprzestępcami. Wpadnij na nasz kultowy ~3 godzinny wykład pt. "Jak nie dać się zhackować?" i poznaj kilkadziesiąt praktycznych i przede wszystkim prostych do zastosowania porad, które skutecznie podniosą Twoje bezpieczeństwo i pomogą ochronić przed atakami Twoich najbliższych. Uczestnicy tego wykładu oceniają go na: 9,34/10!

Na ten wykład powinien przyjść każdy, kto korzysta z internetu na smartfonie lub komputerze, prywatnie albo służbowo. Wykład prowadzimy prostym językiem, wiec zrozumie go każdy, także osoby spoza branży IT. Dlatego na wykład możesz spokojnie przyjść ze swoimi rodzicami lub mniej technicznymih znajomych. W najbliższych tygodniach będziemy w poniższych miastach:

Zobacz pełen opis wykładu klikając tutaj lub kup bilet na wykład klikając tu.

27 komentarzy

Dodaj komentarz
  1. Ostatnio jak pamiętam to dżeby to zadziałało musiałbyć też auto-login włączony?

  2. Na szczęście z FireWire jest jak z Bluetoothem – niby fajne, ładne, ale w praktyce mało kto korzysta, dzięki czemu zabezpieczenie się jest stosunkowo mało bolesne (z wyjątkiem tych, co jednak korzystają :p)

  3. Ten blad jest stary jak swiat. Czytalem o nim dawno temu, ale nie sledzilem rozwoju wydarzen i ewentualnego latania. Zadziwia mnie brak laty na ten blad.

  4. Drobne uściślenie: to nie jest “błąd firewire” czy “feature firewire” tylko specyfika działania DMA (Direct Memory Access, czyli bezpośredni dostęp sprzętu do pamięci RAM) w naszych komputerach, a Firewire nie jest jedynym standard łącza który korzysta z DMA (chociaż trzeba przyznać, że jest jednym z niewielu wyprowadzonych na zewnątrz obudowy komputera). Innymi wyprowadzonymi “złączami” są np. PCMCIA (PC Card) spotykany w starszych laptopach, czy Express Card w trochę nowszych (wew. kompa jest jeszcze PCI czy PCI-E, a także trochę starsze AGP czy ISA).

    No i.. żadna “łata” tutaj nie pomoże :) Skoro architektura pozwala urządzeniu na dostęp do pamięci (z pominięciem OS czy CPU), to dużo zrobić się software’owo nie da.

    Ale, warto zaznaczyć, że koło 2004 (+-rok) Intel czy tam AMD rzucili pomysłem żeby zrobić IOMMU (Intel to zwie VT-d) – układ w okolicy kontrolera pamięci, który (w uproszczeniu) miałby pozwalać konfigurować które urządzenie ma dostęp do której części pamięci. Zresztą, w miarę nowe kompy już to powinny mieć.

    Co sprowadza mnie do pytania… ciekawe czemu Apple nie ma VT-d w macbookach :)

    Na wszelki wypadek dodam, że urządzenia na USB nie mają dostępu do pamięci (aka nie mają DMA), co w sumie wynika bezpośrednio “sieciowej” architektury/protokołu USB.

  5. Literówka: zamiast “Błąd znany jest od 2004 roku i polega:” wydaje mi się, że powinno być “Błąd znany jest od 2004 roku i polega na:”.

  6. Piszecie ze to jest blad wynikajacy z architektury sprzetu, czyli dotyczy wszystkich systemow, tak? To dlaczego dajecie tytul atakujacy apple? znizacie sie do poziomu PClab’a (podbijanie ogladalnosci za pomoca trolujacych tytulow)?

    • Czytaj ze zrozumieniem. W artykule jak byk napisane jest, że jedna z firm umie ten patent wykorzystać w Mac’u, więc dlaczego w tytule ma być inaczej? Gdyby taki włam zrobili na kompie z win 7, to w tytule by było że chodzi w tym przypadku o win 7.

      A jeszcze pytanie natury technicznej co do naszych “PieCów”. Czy wyłączenie kontrolera FireWire w BIOS-ie może uchronić przed takim atakiem?

    • Poniewaz ten program (Passware Kit Forensic v11) obsluguje Mac OS X?

    • Robert: Artykuł powstał w odpowiedzi na “sensacyjne” doniesienia pewnej firmy. Starałem się dać im tło — tj. pokazać z czego tak naprawdę wynika błąd i że nie jest to nowość. Nikt tu nie bije hipsterów, srsly ;)

    • nie mam nic do artykulu, chodzi mi tylko o tytul, majacy wzbudzic zainteresowanie fanboyow/haterow appla – to poziom faktu lub pclaba, a was mialem za powazny site. A wystarczylo napisac: “FireWire – stary, ale poważny błąd pozwala wykraść hasło użytkownika”

    • Nie wszystkim da się dogodzić, a ile punktów siedzenia, tyle punktów widzenia. Ja jestem zdania, że nie tytuł jest najważniejszy, a treść; ale jeśli uważasz inaczej, feel free to unsubscribe :-)

  7. wyłączenie obsługi w biosie nie pomoże ponieważ “fachowcy” od informatyki śledczej mogą zresetowac ustawienia za pomocą magicznej zworki

    • Nie każda płyta ma zworkę od BIOSu :)

    • BIOS’em dorzucą mi kexta do kernela? Cuda panie, cuda! Lepsze niż emaksem przez sendmail ;] A poważnie to doczytaj , że mowa w artykule o kasowaniu obsługi fireWire przez system operacyjny. Po skasowaniu sterownika fw Lion nie zobaczy sprzętu. Nie zobaczy sprzętu, sprzęt nie bedzie działał. Sprzęt nie działa, sprzęt nie czyta pamięci. Sprzęt nie czyta pamięci, sprzęt nie ma hasła. Kapito?

    • Wyjąć bateryjke i zrobić zwarcie ?

    • Pomijam fakt, że Maki nie mają BIOSu tylko EFI.

  8. hmm, a nie wystarczyl by skrypt ktory w momencie blokowania/wylogowywania robi unload tego modulu, a przy ponownym zalogowaniu laduje go spowrotem?

    • Żeby zrobić “unload” trzeba by po prostu wyłączyć całkowicie firewire. Czy to by było możliwe runtime ot tak po prostu z poziomu skryptu, bez modyfikacji systemu/sterownika/czegośtam? Nie wiem, ale wydaje mi się że nie (jeśli by było możliwe to mnie poprawcie).

    • teoretyzuje, ale jesli wystarczy: “Alternatywą jest też usunięcie obsługi FireWire, polegające w skrócie na usunięciu pliku /System/Library/Extensions/IOFireWireFamily.kext.”

      to od tego jest :
      kextunload — terminate driver I/O Kit driver instances and unload kernel extensions (kexts)

    • Dałoby się to zrobić, ale kextunload potrzebuje uprawnień roota (wpisania hasła).
      Lepiej byłoby raczej mieć defaultowo niezaładowany kext i ładować go jedynie w razie potrzeby (przed podłączeniem zaufanego urządzenia).

    • Przenieść kexta, restart z -f albo ręcznie przegenerować Extensions.mkext, potem wystarczy kextload.

  9. Sczytać a nie zczytać.

  10. […] niepozostawianiu komputera włączonego/uśpionego (klucz rozszyfrujący dysk można wtedy wyciągnąć z pamięci poprzez FireWire lub z kości RAM przy pomocy ataku Cold […]

  11. […] Zauważcie, że video jest z 2007 roku… Tak, technika “hotpluggingu” jest od dawna wykorzystywana w informatyce śledczej. Przydaje się zwłaszcza, kiedy w pamięci RAM mogą znajdować się interesujące z punktu śledztwa dane. Np. klucze kryptograficzne, których pozyskanie pozwoli obejść szyfrowanie całego dysku twardego (klucze z pamięci włączonego komputera można wyciągnąć np. przez port firewire). […]

  12. […] Przy okazji pamiętajcie o problemach z portami firewire, które również w pewnych okolicznościach, z racji umożliwiania dostępu do pamięci, również mogą pozwolić atakującemu na przejęcie kontroli nad zablokowanym komputerem. […]

Twój komentarz

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

RSS dla komentarzy: