Rozw贸j z艂o艣liwego oprogramowania: luki w MacOS X 2005 - 2006

Claudiu Dumitru

Artyku艂 ten stanowi przegl膮d luk wykrytych w systemie MacOS X w pierwszej po艂owie 2006 roku. Por贸wnanie tych luk z lukami wykrytymi w pierwszej po艂owie 2005 roku ukazuje, w jaki spos贸b ewoluowa艂y zagro偶enia dla tej coraz popularniejszej platformy.

Wst臋p

Apple Macintosh staje si臋 coraz popularniejszy. Jednak najnowsze raporty na temat bezpiecze艅stwa system贸w MacOS X wywo艂a艂y sporo dyskusji w艣r贸d ekspert贸w bezpiecze艅stwa. Osoby, kt贸re wyra偶a艂y obawy w zwi膮zku z rosn膮c膮 liczb膮 luk wykrywanych w MacOS X oskar偶ane by艂y o przesadn膮 reakcj臋. Z drugiej strony, ci, kt贸rzy nie przyjmuj膮 takiego stanowiska, pos膮dzani s膮 o brak zdrowego rozs膮dku. Artyku艂 ten analizuje r贸偶ne aspekty ewolucji zagro偶e艅 dla systemu MacOS X, aby czytelnicy mogli lepiej zrozumie膰 tocz膮c膮 si臋 dyskusj臋 dotycz膮c膮 tego, jak bezpieczne s膮 w rzeczywisto艣ci Macintoshe i jak bezpieczne pozostan膮.

Wed艂ug mnie, komputery out-of-the-box dzia艂aj膮ce pod kontrol膮 systemu MacOS X, s膮 bezpieczniejsze ni偶 te dzia艂aj膮ce pod kontrol膮 innych platform. Uniksowy model bezpiecze艅stwa systemu MacOS X jest domy艣lnie tak skonfigurowany, aby chroni艂 system przed zagro偶eniami, kt贸re s膮 powszechne dla innych platform, dla kt贸rych ten rodzaj bezpiecze艅stwa i konfiguracji nie jest standardem. Mo偶na powiedzie膰, 偶e system MacOS X od pocz膮tku projektowany by艂 z my艣l膮 o bezpiecze艅stwie. Jednak chocia偶 podej艣cie to wydaje si臋 dopuszcza膰 o wiele mniej luk, kt贸re mog艂yby zosta膰 wykorzystane, zak艂adanie, 偶e system ten wolny jest od problem贸w bezpiecze艅stwa jest bardzo beztroskie. Jak ka偶da inna platforma, system MacOS X zawiera b艂臋dy. Takie b艂臋dy nieuchronnie przyci膮gaj膮 uwag臋 z艂o艣liwych u偶ytkownik贸w, szczeg贸lnie gdy u偶ytkownicy uwa偶aj膮, 偶e nie musz膮 k艂opota膰 si臋 zabezpieczeniem przed potencjalnymi zagro偶eniami.

Jednym z interesuj膮cych aspekt贸w zidentyfikowanych luk s膮 komponenty, w kt贸ry s膮 one obecne. Liczba luk wykrytych w komponentach, w kt贸rych mo偶liwe jest przeprowadzenie zdalnych atak贸w, wzros艂a w por贸wnaniu z takim samym okresem w zesz艂ym roku. 艢wiadczy to o coraz wi臋kszym zainteresowaniu mo偶liwymi wektorami atak贸w.

Statystyki

Rysunek 1: Por贸wnanie liczby luk w systemie MacOS X i produktach pokrewnych w pierwszej po艂owie (stycze艅 - maj) 2005 roku oraz pierwszej po艂owie 2006 roku.

Liczba luk zidentyfikowanych w j膮drze systemu operacyjnego oraz zwi膮zanych z nim komponentach jest mniejsza ni偶 w 2005 roku. Wzros艂a jednak liczba luk dotycz膮cych aplikacji Safari i Mail, kt贸re mog膮 zosta膰 wykorzystane do przeprowadzenia ataku za po艣rednictwem Internetu. To samo odnosi si臋 do QuickTime, kt贸ry w pierwszej po艂owie 2006 roku stanowi艂 popularny temat w艣r贸d ekspert贸w ds. bezpiecze艅stwa.

Diagram powy偶ej uwzgl臋dnia r贸wnie偶 seri臋 luk wykrytych w produktach innych producent贸w, kt贸re dzia艂aj膮 pod kontrol膮 MacOS X. Do kategorii tej nale偶膮 r贸wnie偶 aplikacje, kt贸re instalowane s膮 w systemie operacyjnym domy艣lnie, ale nie s膮 typowe dla MacOS X. Na przyk艂ad w okresie tym wykryto kilka luk w Java VM firmy Sun, kt贸re mog膮 by膰 gro藕ne dla MacOS X, ale r贸wnie偶 wszystkich innych system贸w operacyjnych obs艂uguj膮cych implementacj臋 Javy firmy Sun.

Jednym z interesuj膮cych rezultat贸w por贸wnania jest spadek liczby luk w j膮drze MacOS X (Mach) oraz pokrewnych komponentach / bibliotekach w stosunku do 2005 roku. Liczba wykrytych luk wci膮偶 jest jednak spora. Najpopularniejszy by艂 prawdopodobnie lokalny exploit "passwd" (exploit oparty na luce zero day) zg艂oszony 3 lutego 2006 roku, kt贸ry zosta艂 wykorzystany do w艂amania si臋 do systemu Dave'a Schroedera podczas konkurencji “rm-my-mac”.

Z艂o艣liwe programy atakuj膮ce MacOS X

Z艂o艣liwe programy atakuj膮ce MacOS X s膮 stosunkowo ma艂o rozpowszechnione. Spo艂eczno艣膰 "makowa" by艂a zaskoczona, gdy 13 lutego 2006 roku pojawi艂 si臋 pierwszy robak dla MacOS X. Szkodnik zosta艂 nazwany IM-Worm.OSX.Leap.a. Leap jest robakiem rozprzestrzeniaj膮cym si臋 za po艣rednictwem komunikatora internetowego, kt贸ry potrafi r贸wnie偶 infekowa膰 aplikacje MacOS X. Jednak z powodu b艂臋du w kodzie szkodnika zainfekowane programy przestaj膮 dzia艂a膰.

Robak zosta艂 po raz pierwszy zauwa偶ony na forach MacRumors (http://forums.macrumors.com/) wieczorem 13 lutego 2006 roku. Pierwotna wiadomo艣膰 mia艂a nast臋puj膮c膮 tre艣膰: "Domniemane zrzuty ekranu OS 10.5 Leopard" i by艂a to oczywista pr贸ba sk艂onienia podst臋pem niczego niepodejrzewaj膮cych u偶ytkownik贸w do uruchomienia z艂o艣liwego kodu.

Robak wykorzystuje do rozprzestrzeniania si臋 komunikator internetowy Apple'a "iChat". Alternatywnymi sposobami przedostania si臋 do systemu mo偶e by膰 pobranie i bezpo艣rednie uruchomienie przez u偶ytkownika kodu robaka lub uruchomienie zainfekowanej aplikacji ze zdalnej lokalizacji. Poniewa偶 robak nie potrafi infekowa膰 systemu automatycznie, nazywany by艂 r贸wnie偶 "trojanem", chocia偶 nie jest ca艂kowicie w艂a艣ciwa klasyfikacja. 呕aden trojan nie jest zdolny do rozprzestrzeniania si臋, podczas gdy Leap.a jest.

Robak rozprzestrzenia si臋 jako archiwum TAR.GZ o nazwie "latestpics.tgz". Po rozpakowaniu archiwum (wykorzystuj膮c narz臋dzie wiersza polece艅 'tar' lub klikaj膮c je dwukrotnie w oknie Findera) u偶ytkownik otrzyma co艣, co wygl膮da jak plik JPEG:

W rzeczywisto艣ci jest to plik wykonywalny dla platformy PowerPC, o czym mo偶na si臋 przekona膰 otwieraj膮c okno "Get info" w Finderze:

"Latestpics" jest aplikacj膮 wiersza polece艅, dlatego przy uruchamianiu otwiera okno terminalu.

Z pewnych doniesie艅 wynika, 偶e gdy robak zostanie uruchomiony przez normalnego u偶ytkownika, system operacyjny zapyta o prawa administracyjne. Nasze testy tego nie potwierdzi艂y - uruchomienie robaka przebiega identycznie, niezale偶nie od konta, z kt贸rego korzysta u偶ytkownik. Szkodnik b臋dzie jednak m贸g艂 infekowa膰 tylko te pliki, dla kt贸rych bie偶膮cy u偶ytkownik posiada prawo zapisu.

Kolejn膮 czynno艣ci膮 wykonywan膮 przez robaka jest wypakowanie z w艂asnego kodu wtyczki InputManager o nazwie "apphook" . Je偶eli bie偶膮cy u偶ytkownik posiada uprawnienia administratora, robak skopiuje wtyczk臋 do foldera "Library/InputManagers". W przeciwnym wypadku kopia robaka znajdzie si臋 w folderze u偶ytkownika "~/Library/InputManagers". Konsekwencje s膮 nast臋puj膮ce: wtyczki InputManagers z foldera g艂贸wnego "/Library" b臋d膮 艂adowane do aplikacji uruchamianych przez wszystkich u偶ytkownik贸w, natomiast w drugim przypadku b臋d膮 one 艂adowane do aplikacji uruchamianych wy艂膮cznie przez u偶ytkownika bie偶膮cego.

Zadaniem wtyczki "apphook" jest rozprzestrzenianie robaka poprzez komunikator internetowy. Podejmuje ona pr贸b臋 przechwycenia pewnych funkcji aplikacji iChat i wysy艂a kopi臋 szkodnika do znajomych u偶ytkownika zainfekowanego komputera.

Po zako艅czeniu instalacji wtyczki "apphook" kod robaka kontynuuje infekowanie lokalnych aplikacji. Przy u偶yciu systemowego sk艂adnika "Spotlight" szkodnik szuka listy najcz臋艣ciej uruchamianych program贸w i pr贸buje je zainfekowa膰. Procedura infekcji jest bardzo prosta: Leap nadpisuje swoim kodem g艂贸wny plik wykonywalny, zapisuj膮c jednocze艣nie oryginalny kod aplikacji w cz臋艣ci pliku przeznaczonej dla zasob贸w.

Przy uruchomieniu zainfekowanej aplikacji uruchamia si臋 g艂贸wny kod robaka i pr贸buje rozprzestrzenia膰 si臋 w wy偶ej opisany spos贸b. Leap usi艂uje wykona膰 oryginaln膮 aplikacj臋, jednak z powodu b艂臋du w swoim kodzie - pr贸by te s膮 bezskutecznie. Oznacza to, 偶e zainfekowane aplikacje przestaj膮 dzia艂a膰, co jest bardzo oczywist膮 oznak膮 infekcji.

Wydaje si臋, 偶e autor robaka planowa艂 dodanie funkcji rozprzestrzeniania si臋 za po艣rednictwem poczty elektronicznej. Nie uda艂o mu si臋 jednak tego zrealizowa膰, zanim kod pojawi艂 si臋 na forum MacRumors. Poza uszkadzaniem aplikacji podczas infekcji (co wydaje si臋 efektem niezamierzonym) nie ma oznak innych funkcji destrukcyjnych zawartych w kodzie robaka.

18 lutego 2006 roku pojawi艂 si臋 kolejny robak dla systemu MacOS X. Inqtana rozprzestrzenia si臋 poprzez Bluetooth wysy艂aj膮c do potencjalnej ofiary 偶膮danie transmisji danych Object Exchange (OBEX) Push. Je偶eli u偶ytkownik zaakceptuje 偶膮danie, robak wykorzysta luk臋 "Bluetooth File and Object Exchange Directory Traversal" w celu uzyskania dost臋pu do plik贸w i folder贸w poza 艣cie偶k膮 systemow膮 Bluetooth File and Object Exchange.

Robak umieszcza w folderze LaunchAgents dwa pliki: com.openbundle.plist oraz com.pwned.plist, co zapewnia mu uruchomienie wraz z ka偶dym restartem komputera ofiary. W folderze /Users/ umieszczany jest plik w0rm-support.tgz zawieraj膮cy komponenty robaka.

Po ponownym uruchomieniu systemu operacyjnego com.openbundle.plist wypakowuje sk艂adniki robaka, a com.pwned.plist uruchamia jego g艂贸wn膮 bibliotek臋. Nast臋pnie Inqtana pr贸buje rozmna偶a膰 si臋 poprzez skanowanie w poszukiwaniu urz膮dze艅 z w艂膮czon膮 us艂ug膮 Bluetooth i wysy艂a w艂asne kopie na ka偶de znalezione urz膮dzenie, kt贸re obs艂uguje 偶膮dania Object Exchange (OBEX) Push.

Z czasem okaza艂o si臋, 偶e autorem robaka Inqtana by艂 specjalista ds. bezpiecze艅stwa Kevin Finisterre, kt贸ry stworzy艂 go jako "proof of concept".

21 lutego pojawi艂y si臋 dwa exploity zero-day atakuj膮ce system MacOS X: Exploit.OSX.Safari.a zosta艂 wykryty przez Michaela Lehna, a Exploit.OSX.ScriptEx.a. - przez Kevina Finisterre'a (autora Inqtana). Oba eksploity by艂y szeroko komentowane w mediach IT.

Exploit.OSX.Safari atakuje przegl膮dark臋 internetow膮 firmy Apple Safari. Pewna funkcja przegl膮darki umo偶liwia stworzenie okre艣lonych typ贸w plik贸w ZIP, kt贸re - je艣li zostan膮 pobrane z Internetu - spowoduj膮 wykonanie kodu. Luka ta zosta艂a za艂atana w Aktualizacji Zabezpiecze艅 Apple'a 2006-001.

Exploit.OSX.ScriptEx.a wykorzystuje luk臋 w kliencie pocztowym Apple Mail dla systemu Mac OS X. Uruchomienie tego exploita nast臋puje po wys艂aniu specjalnie spreparowanego za艂膮cznika za po艣rednictwem poczty elektronicznej. Wykorzystywana luka to przepe艂nienie bufora, kt贸re mo偶e nast膮pi膰 podczas przetwarzania komponentu Real Name pliku MIME Encapsulated Macintosh. Staranne wybranie rozmiaru i zawarto艣ci Real Name mo偶e spowodowa膰 wykonanie dowolnego kodu, kt贸ry mo偶e nast臋pnie zosta膰 wykorzystany do zainstalowania trojana lub innego z艂o艣liwego programu na komputerze ofiary. Exploit mo偶e zatem zosta膰 u偶yty do uzyskania ca艂kowitej kontroli nad komputerem u偶ytkownika. Problem ten zosta艂 naprawiony w Aktualizacji Zabezpiecze艅 Apple'a 2006-002.

19 kwietnia, Tom Ferris, specjalista ds. bezpiecze艅stwa, wykry艂 sze艣膰 kolejnych luk "zero-day", kt贸re pozwala艂y zdalnemu szkodliwemu u偶ytkownikowi na uszkodzenie lub "porwanie" komputera ofiary.

Wniosek

Og贸lnie mo偶na powiedzie膰, 偶e z艂o艣liwe programy przesz艂y ogromn膮 ewolucj臋 w ci膮gu ostatnich kilku lat. W przesz艂o艣ci wi臋kszo艣膰 tw贸rc贸w z艂o艣liwego oprogramowania motywowa艂a ch臋膰 zdobycia rozg艂osu. Dzisiaj d膮偶膮 do osi膮gni臋cia korzy艣ci finansowych. Niewielki udzia艂 firmy Apple w globalnym rynku komputer贸w osobistych jak do tej pory chroni艂 "mak贸wki" przed tw贸rcami z艂o艣liwego oprogramowania. To si臋 jednak zmieni wraz ze wzrostem popularno艣ci system贸w operacyjnych firmy Apple; po osi膮gni臋ciu masy krytycznej bez w膮tpienia zacznie pojawia膰 si臋 wi臋cej z艂o艣liwych program贸w. Z艂o艣liwe programy, takie jak IM-Worm.OSX.Leap.a i Worm.OSX.Inqtana.A oraz exploity Exploit.OSX.Safari.a i Exploit.OSX.Script-Ex - chocia偶 wszystkie z nich by艂y kodem "proof of concept" i nie posiada艂y oczywistej funkcji destrukcyjnej - pokaza艂y, 偶e MacOS X posiada luki w zabezpieczeniu, kt贸re mog膮 zosta膰 wykorzystane do zaatakowania systemu.

O tym, czy kod "proof of concept", o kt贸rym pisali艣my w tym artykule, zostanie wykorzystany do osi膮gania korzy艣ci finansowych, przekonamy si臋 w najbli偶szej przysz艂o艣ci. Jednak, jak pokazuje historia, jak tylko zostan膮 zidentyfikowane luki w zabezpieczeniu, tw贸rcy z艂o艣liwego oprogramowania natychmiast pr贸buj膮 je wykorzysta膰.

Bibliografia

  1. Lista aktualizacji bezpiecze艅stwa dla systemu MacOS X
  2. Raport Kaspersky Lab - “2005: Ewolucja z艂o艣liwego oprogramowania dla system贸w *nix”
  3. Worm.OSX.Inqtana.a - pe艂ny opis w Encyklopedii Wirus贸w Kaspersky Lab
  4. IM-Worm.OSX.Leap.a - pe艂ny opis w Encyklopedii Wirus贸w Kaspersky Lab
  5. Tom Ferris
  6. Michael Lehn
  7. Kevin Finisterre
  8. Konkurs rm-my-mac
殴r贸d艂o:
Kaspersky Lab