Joanna Rutkowska - o sobie i bezpieczeństwie systemów operacyjnych


Z Joanną Rutkowską - światowej klasy specjalistką od bezpieczeństwa - rozmawiamy o przygodzie z komputerami i bezpieczeństwem, aktualnie realizowanych projektach oraz oczywiście o bezpieczeństwie systemów operacyjnych oraz rootkitach.

Twoja przygoda z komputerami, jak sama wspominasz w wywiadach, zaczęła się od komputera PC AT 286 i programowania w języku BASIC. Czy od początku była to pasja, która pochłonęła Cię do końca, zajmując większość wolnego czasu?

Właśnie dokładnie tak było!

Jakiego rodzaju programy tworzyłaś i kiedy zaczęła interesować Cię budowa oraz funkcjonowanie systemów operacyjnych?

Zaczynałam, jak każdy, od zupełnie prostych programów, później natomiast coraz bardziej zaczynało mnie interesować jak owe programy naprawdę działają, czyli tzw. "bebechy". W końcu zaczęłam programować w Assemblerze w MS-DOS, co było świetnym wstępem do poznawania budowy tego i później innych systemów operacyjnych. Miałam wtedy ok. 14 lat.

Czy kształciłaś się dodatkowo na jakiejś uczelni w obszarze programowania/informatyki czy do wszystkiego doszłaś własnymi silami?

Tak, skończyłam informatykę na Politechnice Warszawskiej, choć większości rzeczy nauczyłam się sama, podobnie jak wielu moich kolegów z branży.

Kiedy zaczęłaś się profesjonalnie zajmować bezpieczeństwem teleinformatycznym?

Kilka lat temu, wciąż będąc jeszcze na studiach. Ponieważ już wtedy publikowałam wyniki moich badań, więc dostałam kilka ofert pracy nad rożnymi projektami badawczo-rozwojowymi.

Dlaczego zdecydowałaś się wyjechać i pracować zagranicą?

Nigdy nie wyjechałam na stałe za granicę. Cały czas mieszkam w Polsce, choć dużo czasu spędzam w podróżach zagranicą. Niestety zainteresowanie polskich firm zaawansowanymi badaniami w dziedzinie bezpieczeństwa jest znikome, toteż nie mam żadnych polskich klientów :(.

Jak wspominasz swoją pierwszą ważną zagraniczną konferencję?

Przez dłuższy czas największym problemem był język. Ludzie często mają problem z wygłoszeniem wykładu w języku ojczystym, a co dopiero w języku obcym, w którym nie mówi się płynnie. Obecnie to już raczej nie jest wielkim problemem, bo częste wyjazdy zagraniczne dały mi dobrą okazję do podszlifowania angielskiego. Choć zdaję sobie sprawę, ze mój wschodnio-europejski akcent stwarza pewne trudności np. amerykanom, którzy na ogół mają małe doświadczenie w kontaktach z obcokrajowcami.
Kiedy więc w czasie wykładu muszę mówić np. bardzo szybko, to później część widowni skarży się, że musieli się "wysilać" aby mnie zrozumieć :/.

Ciekawostką jest to, że na ogół nie mają z tym problemu np. pracownicy Microsoftu z Redmond, gdyż w firmie tej pracuje tak wielu obcokrajowców, że każdy jest przyzwyczajony do rozumienia różnych egzotycznych akcentów.

Inną ciekawostką jest to, że na sprawę akcentu (i subtelności wymowy) nigdy nikt mi nie zwrócił uwagi w polskich szkołach językowych – nawet tzw. native speakerzy. Innymi słowy, angielski, którego można nauczyć się w Polsce, to bardzo "polski" angielski, którego na ogół nikt nie rozumie zagranicą :/.

Co dla Ciebie jest najważniejsze w uczestnictwie w tych konferencjach - przekazanie wiedzy, poznanie i kontakt z innymi osobami zainteresowanymi tymi tematami, reklama swojej osoby czy też zwiedzanie świata?

Oczywiście, że promocja mojej osoby (teraz i mojej firmy) jak i moich badań, jest głównym celem! Ktokolwiek twierdzi inaczej, zapewne mija się z prawdą.

Drugą ważną rzeczą jest kontakt z innymi badaczami, jak i oczywiście z potencjalnymi klientami/pracodawcami.

Zwiedzanie świata jest zdecydowanie najmniej istotne, przynajmniej dla mnie. Często zdarza się, że jadę np. do Azji na 3 dni i prawie cały czas spędzam w hotelu bądź w taksówce jadąc do hotelu i na lotnisko. Przy dużej liczbie podróży, po prostu nie można sobie pozwolić na robienie sobie każdorazowo np. tygodniowych wakacji i na tzw. "sightseeing". Często też jestem tak zmęczona, że w wolnej chwili mam ochotę jedynie spać, a nie zwiedzać.

W ostatnim czasie na warsztat wzięłaś najnowszy system operacyjny MS Windows Vista. Wyniki swoich prac przedstawiłaś m.in. na konferencji Black Hat. Wynika z nich m.in. że w systemie zainstalować można nie podpisane sterowniki czy też – korzystając z technologii wirtualizacji – wprowadzić do systemu rootkita. Wskazywałaś również słabości w User Account Control (UAC), Integrity Level oraz User Interface Privilege Isolation (UIPI). Czy te błędy/słabości, z których część uznana została przez przedstawicieli Microsoft jako przemyślane rozwiązania, zostały w jakiś sposób poprawione/udoskonalone przez Microsoft?

Po pierwsze, chciałabym po raz kolejny podkreślić, że tzw. Blue Pill, czyli rootkit korzystający z technologii wirtualizacji sprzętowej, nie wykorzystuje żadnej słabości w systemie Windows. Nie widzę żadnych przeszkód, aby np. zaimplementować podobnego rootkita w systemie Linux, BSD czy MacOS.

Co do omijania pewnych mechanizmów bezpieczeństwa w systemie Vista np. ochrony jądra (podpisane sterowniki) czy UAC - rzeczywiście Microsoft przyjął dość dziwną taktykę. W myśl owej taktyki, zamiast pracować nad poprawą owych mechanizmów bezpieczeństwa, postanowili oni po prostu... nie nazywać ich już więcej mechanizmami bezpieczeństwa, w związku z czym nie uznają oni np. ataków obchodzących UAC za problemy z bezpieczeństwem.

Moim zdaniem jest to posunięcie trochę nie fair w stosunku do klientów, gdyż wszyscy pamiętamy przecież jak Micorosft chwalił się, jakie to cuda będą zaimplementowane w systemie Vista i jak to mają one poprawić bezpieczeństwo naszych komputerów. Była więc mowa o UAC, Protected Mode IE, ochronie jądra w postaci Patch Guarda oraz wymogu cyfrowych certyfikatów na wszystkie sterowniki jądra... Cóż, teraz, kiedy pokazano, że wszystkie te mechanizmy można obejść (w czym sama miałam pewien udział), Microsoft postanowił się wycofać...

Vista podbija rynek. Czy Twoim zdaniem osoby, dla których ważne jest bezpieczeństwo informacji powinny przesiąść się z XP na Vistę, czy też aż tak dużej różnicy nie ma i też nie ma się co spieszyć?

Vista na pewno jest bezpieczniejsza od XP, chociażby ze względu na fakt, że samo XP w domyślnej konfiguracji, która np. zakłada, że użytkownik jest domyślnie administratorem, jest bardzo źle zaprojektowana ze względu na bezpieczeństwo.

Co by nie mówić o UAC (i o metodach jego obchodzenia), to jednak ma on w założeniu spowodować, że większość programów nie będzie działała z przywilejami administratora, co jest krokiem w dobrym kierunku. Dodatkowo Vista implementuje pewną ilość mechanizmów zapobiegających exploitowaniu programów (np. ASLR, /GS etc). Również spora część kodu została przepisana od nowa i poddana szczegółowemu audytowi i testowaniu ("fuzzing"), nie tylko przez Microsoft, ale również przez firmy trzecie.

Od lat specjalizujesz się w temacie rootkitów. Wiele osób wskazuje, iż najlepszą metodą wykrycia rootkita jest wykonanie obrazu pamięci RAM. Wykazałaś kilka sposobów, które umożliwiają oszukanie tej metody. Czy Twoim zdaniem jest to najskuteczniejsza metoda, mimo tych słabości czy też proponowałabyś coś innego? Ewentualnie jakie zmiany musiałyby być wprowadzone do systemów operacyjnych, aby móc zapobiec atakom przedstawianym przez Ciebie?

To pytanie jest zbyt skomplikowane, aby odpowiedzieć na nie w kilku zdaniach. Jest to temat na osobny artykuł, który i tak kończyłby się konkluzją, że dziś nie mamy dobrej metody wykrywania kompromitacji systemów operacyjnych.

Czy rozwijasz nadal System Virginity Verifier?

Nie. SVV, jak wiele innych moich programów, to tylko proof of concept napisany z myślą, aby coś zademonstrować. Wiem natomiast, że kilka popularnych programów anti-rootkitowych używa obecnie podejścia bazującego na tym, jakie zaimplementowałam w SVV.

Nad czym aktualnie pracujesz?

Tego oczywiście zdradzić nie mogę ;)

Czy lepiej czujesz się pracując nad bezpieczeństwem systemów MS Windows czy też Unix/Linux? Czy masz jakieś doświadczenie z systemami Solaris, AS/400, Mac OS X?

Mam duże doświadczenie z Linuxem, w szczególności programowaniem systemowym i kernelowym dla Linuxa, głównie 2.4 ale i 2.6 też liznęłam zanim zupełnie się przestawiłam na Windows kilka lat temu (co było podyktowane oczekiwaniami mojego ówczesnego pracodawcy). Bardzo chciałabym zająć się MacOS, ale jakoś cały czas tak wypadało, że moi pracodawcy, a obecnie klienci, nie byli i nie są zainteresowani tym systemem :( A szkoda, bo bardzo mi się podoba jego GUI :)

Jakie zagrożenia - według Ciebie - będą najpoważniejsze dla bezpieczeństwa informacji w najbliższych dwóch latach?

Szczerze mówiąc, nie wiem.

Z pewnością wiele osób chciałoby pójść Twoimi śladami. Co byś im poradziła? Czy specjalizować się w bardzo wąskiej dziedzinie, czy też zdobyć na początku szeroką wiedzę, a później dokonać specjalizacji? Czy wybór studiów jest ważny i ma wpływ na dalszą karierę? Jak znaleźć się w szerokim świecie bezpieczeństwa - udzielać się na forach dyskusyjnych, brać udział w międzynarodowych projektach, wysyłać zgłoszenia na konferencje?

Trudno jest udzielić jakiejkolwiek wskazówki pt. "jak się przebić". Generalnie, wydaje mi się, że w świecie IT security, przebić się jest dość łatwo, o ile tylko jest się w czymś naprawdę dobrym. W przeciwieństwie do wielu innych dziedzin, uważam, że tzw. znajomości i kontakty, nie są tu niezbędne.

Wydaje się, że większość osób przebija się jeżdżąc na różne konferencje i wygłaszając tam ciekawe wykłady, choć i to nie jest regułą. Przykładowo, nigdy nie widziałam na żadnej konferencji Michała Zalewskiego, a i tak jest bardzo znanym badaczem, nie tylko w Polsce ale i na świecie.

Z tego co słyszałem, to założyłaś w ostatnim czasie własną firmę. Czy możesz powiedzieć co to za firma, jakie usługi świadczycie i dla kogo, gdzie macie swoją siedzibę?

Moja firma nazywa się Invisible Things Lab i zajmujemy się ogólnie pojętymi badaniami i konsultacjami z dziedziny bezpieczeństwa systemów operacyjnych. Obecnie zatrudniam jeszcze jedna osobę, Alexandra Tereshkina, znanego badacza rootkitow i specjalistę od reverse engineeringu jądra Windows. Alex znany jest w społeczności "rootkitowcow" jako 90210.

Firma nie ma fizycznej siedziby. Ja mieszkam w Warszawie, Alex na południu Rosji, kolo Rostova. Wydaje mi się szczerze mówiąc że pojęcie fizycznej siedziby firmy to trochę przestarzała idea dziś, w dobie powszechnego dostępu do Internetu. Szczególnie w przypadku działalności, którą my prowadzimy, gdzie każdy może pracować w swoim domu (albo w hotelu, albo w samolocie).

Jakie są Twoje dalsze plany?

Prowadzić moją firmę z sukcesem. Przy czym przez sukces rozumiem oczywiście ciekawe kontrakty za dobre pieniądze :).

Ostatnio głośno było na temat wyzwania jakie Tobie rzucono - chodzi o niewykrywalnego rootkita. Czy na tym wyzwaniu się skończyło, czy też będziesz się tym zajmowała w najbliższym czasie w praktyce?

Trojka badaczy: Tom Ptacek z Matasano, Petter Ferrie z Symanteca oraz Nate Lawson (niezrzeszony) zgłosili na tegoroczny Black Hat w Las Vegas prezentacje pt. "Don't Tell Joanna, The Virtualized Rootkit is Dead". Po polsku można by to przetłumaczyć jako: "Nie mówcie Joannie, Wirtualny Rootkit Jest (już) Martwy". W opisie prezentacji obiecywali, że pokażą definitywne metody wykrywania rootkitów korzystających z wirtualizacji sprzętowej, takich jak np. mój Blue Pill.

Oczywiście nie udało im się tego dokonać. Podczas swojej prezentacji zademonstrowali jedynie kilka metod na wykrycie wirtualizacji, ale ani jednej metody na wykrycie wirtualnych rooktitów! Wydawać by się mogło, że to na jedno wychodzi - Blue Pill musi używać wirtualizacji, więc wykrywając (nieoczekiwaną) wirtualizację wykrywamy również Blue Pilla i wszystkie inne rootkity wirtualne. Niestety, sprawa nie jest tak prosta, o czym mówiłam wraz z Alexandrem Tereshkinem podczas naszej prezentacji na Black Hatcie (kilka godzin po prezentacji Ptack'a i sp-ki). Otóż już dziś zaczynają się pojawiać aplikacje np. Virtual PC 2007, które robią użytek ze sprzętowej wirtualizacji. Należy oczekiwać, że w ciągu najbliższych miesięcy pojawi się ich więcej (np. VMWare zacznie tez używać SVM/VT-x). Dodatkowo zakłada się, że w ciągu najbliższych lat większość serwerów będzie działać w maszynach wirtualnych.

Ogólnie rzecz ujmując, w ciągu najbliższych miesięcy sprzętowa wirtualizacja będzie coraz częściej używana, zarówno na serwerach jak i desktopach. Otóż w takiej sytuacji Blue Pill nie będzie musiał nikogo "oszukiwać", że wirtualizacja nie jest włączona, bo oczekuje się, że ona właśnie jest używana. W tej sytuacji wszelkie "detektory wirtualizacji", są kompletnie bezużyteczne.

Dla zdobycia rozgłosu Ptacek, Lawson i Ferrie postanowili na kilka tygodni przed Black Hatem wyjść z inicjatywą "wyzwania", które polegać miało na tym, że dostarczą oni parę laptopów, a ja zainstaluje Blue Pilla na kilku z nich, po czym oni pokażą, że są w stanie wykryć, gdzie Blue Pill został zainstalowany, a gdzie nie.

Autorzy wyzwania byli pewni wygranej, ponieważ wówczas nie rozróżniali problemu wykrywania wirtualizacji od wykrywania wirtualnych rootkitów. Mój plan wygranej polegał natomiast na zażądaniu, aby na wszystkich laptopach zainstalować Virtual PC 2007 albo Virtual Server 2005 R2.
Wówczas nasi adwersarze nie mogliby użyć swoich wspaniałych wykrywaczy wirtualizacji, a dokładniej mogliby ich użyć, ale nic by im to nie dało.

Oczywiście pomimo, że byłam pewna wygranej, nie mogłam wystartować w takiej grze z aktualnym kodem Nowego Blue Pilla, który rozwijamy dopiero od maja i jest on wciąż w stadium wczesnej wersji alfa. Na doprowadzenie obecnej wersji Blue Pilla do postaci "production quality" potrzebowalibyśmy kilku miesięcy pracy...

Dziękuję za rozmowę i życzę dalszych sukcesów oraz rozwoju działalności.

 

* Wywiad przeprowadzony w 2007 roku