Safari, Chrome, Edge, Firefox sandbox: Manfred Paul zajął pierwsze miejsce w tegorocznym międzynarodowym konkursie bezpieczeństwa Pwn2Own Vancouver i tym samym zdobył nagrodę pieniężną o wartości około 200 000 dolarów. Udało mu się nie tylko włamać do przeglądarek internetowych Apple Safari, Google Chrome i Microsoft Edge, ale także włamać się do piaskownicy Mozilli Firefox. W 2020 roku 21-letniemu Paulowi udało się wykorzystać lukę dnia zerowego w jądrze Linuksa w konkursie Pwn2Own. Rozmawialiśmy z nim o jego motywacjach i podejściu.
reklama
heise online: Opracowanie takich luk z pewnością wymaga czasu. Ile czasu w to zainwestowałeś?
Manfred Pohl: Trudno mi odpowiedzieć na to pytanie, zwłaszcza gdy patrzę na różne cele. Większość czasu spędzam na szukaniu rzeczy i nic nie znajduję. Zawsze szukam słabych stron, nawet jeśli ich nie znajduję na początku, później mogą się pojawić. Czas, w którym nie znajdziesz niczego namacalnego, nie jest czasem straconym. Uczysz się nowych rzeczy i rozumiesz rzeczy, które mogą pomóc ci później znaleźć słabość. Ale w pewnym stopniu jest to również kwestia szczęścia.
Co trwa dłużej? Znalezienie luki prawnej czy jej wykorzystanie?
Dla mnie zdecydowanie odkrycie, z kilkoma wyjątkami. Czasami możesz mieć więcej szczęścia, jeśli coś znajdziesz. Oczywiście zależy to również od metody. Często patrzę na kod ręcznie i próbuję w ten sposób znaleźć błędy. Inni mogą więcej pracować przy użyciu zautomatyzowanych narzędzi, a uruchomienie tych narzędzi z pewnością zajęło dużo czasu. To bardzo indywidualna sprawa. Dla mnie polowanie na robaki zdecydowanie zajmuje większość mojego czasu. Oczywiście wszystko idzie szybciej, jeśli masz już doświadczenie. Obecnie istnieje coraz większa liczba celów, w przypadku których stosuje się więcej środków łagodzących, co również wymaga dużo czasu.
Czy masz przepis, którego się trzymasz?
Nieprawdziwy. Jest też dużo intuicji. Zwykle patrzę na fragmenty kodu, w których czuję: „Jeśli coś tam znajdę, to znaczy, że jest to coś poważnego”. Nie ma sensu po prostu znajdować błędu, jeśli nie można go wykorzystać i w ogóle nie stanowi luki. Szczególną uwagę zwracam na interpreter, czyli kod, który w czasie wykonywania generuje nowy, zoptymalizowany kod maszynowy. Kiedy coś idzie nie tak, idzie dobrze. Ogólnie rzecz biorąc, pewna intuicja rozwija się z czasem. Cóż, chciałbym przyjrzeć się bliżej temu komponentowi lub tej części komponentu, która wykonuje powiązane czynności.
Czy wykonałeś już jakieś prace przygotowawcze w celu znalezienia luk w zabezpieczeniach? Czy używasz bazy danych lub czegoś podobnego?
Mam tendencję do bycia bardzo niezorganizowanym, jeśli chodzi o takie rzeczy. Niektórzy ludzie są nieco inni i czytają o przeszłych exploitach i szukają informacji z różnych źródeł. Jestem osobą, która niekoniecznie zewsząd otrzymuje wszystkie informacje, bo chcę podejść do nich bezstronnie. Jeśli podchodzę do tego z myślą: „Wszystko zostało znalezione”, zawsze mam wrażenie: „OK, teraz kod będzie w jakiś sposób poprawny”. Wtedy naprawdę nie mogę krytycznie spojrzeć na kod. Ogólnie rzecz biorąc, myślę, że to bardzo osobista sprawa, każdy ma swój własny sposób pracy.
Z jakiego exploita jesteś najbardziej dumny i dlaczego?
Trudno powiedzieć, bo jak mówiłem, zawsze jest w tym element szczęścia. Każdy ma swoje wyzwania. Z rzeczy, które zrobiłem w tym roku, Firefox był jedynym, w którym zaatakowałem także dużą piaskownicę. Ma to oczywiście większe znaczenie praktyczne, szczególnie dla użytkowników końcowych, ponieważ eliminuje się ten dodatkowy mechanizm ochronny. Ale myślę, że inne przeglądarki, Chrome i Safari, również miały kilka interesujących rzeczy pod względem technicznym.
Czy ktoś z Mozilli kontaktował się z Tobą?
Podczas zawodów mamy kontakt ze wszystkimi producentami, a na miejscu często są ludzie; Było kilka z Mozilli online. Odbyłem też krótką rozmowę z osobą z Mozilli i zdecydowanie uważam, że to dobrze, że tak szybko zajęto się kwestiami bezpieczeństwa. Luka została następnie naprawiona w rekordowym tempie, a aktualizacja została szybko udostępniona. To zawsze mnie uszczęśliwia. W przyszłości planowane są także systematyczne zmiany w przeglądarkach. Naturalnie, utrudniłoby mi to życie w przyszłości. Jednak zawsze jest walka z wiatrakami, gdy znajdziesz tylko pojedyncze błędy, a następnie je naprawisz – zawsze znajdzie się następny. Ale kiedy ludzie mówią: „OK, mamy tu problem systemowy i chcemy coś zmienić w przyszłości, aby zmniejszyć prawdopodobieństwo wystąpienia tego rodzaju błędu”, jest to w pewnym sensie nagroda za to, co osiągnąłeś dzięki swojej pracy .
Właśnie spaliłeś miliony swoją pracą. Jaka jest Twoja motywacja do tego? Nie martwisz się, że ludzie będą zdenerwowani, bo czegoś im brakuje?
Wiem, że mógłbym zarobić więcej, sprzedając swoje znaleziska temu, kto zaoferuje najwyższą cenę, ale nie chcę tego robić. Oprogramowanie musi być także bezpieczne dla wszystkich. Nie chcę być odpowiedzialny za to, że napastnicy – czy to rządowi, czy innym organizacjom – mogliby coś zrobić z moją pomocą. Dlatego bardzo się cieszę, kiedy luki są później korygowane. Chyba nikomu specjalnie nie przeszkadzałem. W ostatecznym rozrachunku znajdowanie i łatanie takich luk jest częścią życia także przestępców. Musieliby wtedy złościć się na producentów, gdyby zwiększyli bezpieczeństwo swoich kodów. Z technicznego punktu widzenia znalezienie czegoś jest wyzwaniem dla wszystkich zaangażowanych, bez względu na kogo. Kiedy przenoszę exploit bezpośrednio do producenta, kryje się za tym także pewna samoobrona, która zostaje naprawiona stosunkowo szybko. Nikt nie jest zainteresowany kradzieżą mi tego wcześniej. Dzięki temu mogę spać spokojniej.
Z jakiej przeglądarki osobiście korzystasz?
W przeglądarce liczy się nie to, z której przeglądarki korzystasz, ale ważniejsze jest „jak”. Nie chcę rekomendować. Powinieneś aktualizować oprogramowanie, a nie klikać każdy link i tym podobne. Większość przeglądarek ma sposoby na zwiększenie bezpieczeństwa, takie jak wyłączenie interpretera, co oczywiście również skutkuje spadkiem wydajności. Ale ci tłumacze mają wspólny cel. Niektóre przeglądarki oferują teraz dodatkowy tryb awaryjny, w którym kompilator JIT jest wyłączony. Można to znaleźć w ustawieniach większości przeglądarek. Dla mnie przeglądarka nie jest częścią aktywnej decyzji dotyczącej bezpieczeństwa, ale dla mnie i większości ludzi jest to także kwestia przyzwyczajenia i wygody.
Jak zacząłeś?
Jedną z wielkich rzeczy, która pomogła poważnie zająć się bezpieczeństwem IT, były konkursy w stylu „Capture the Flag”. To są zawody, w których czasami robisz bardzo podobne rzeczy i musisz znaleźć błędy. Ale słabe strony zostały napisane celowo. Wiele się nauczyłem w trakcie. Mam drużynę, z którą od czasu do czasu gram. Coś takiego jest bardzo pomocne na początku. Pomogły mi także studia matematyczne, na których poznałem metody. Czasami próbuję znaleźć mentalny dowód na to, że program jest poprawny.
Sekcja hakerów nie została jeszcze zamknięta, jak wielu domagało się. Czy na początku swojej kariery obawiałeś się, że ktoś oskarży Cię o nielegalną działalność?
Na pewno istnieje ogromny błąd, jeśli chodzi o przepisy. Dla społeczności zajmującej się bezpieczeństwem IT szkoda, że osoba, która zgłosiła lukę, została niedawno ponownie skazana. Mam nadzieję, że zmienią się pewne rzeczy w prawie, aby ludzie mogli zgłaszać luki w zabezpieczeniach w sposób prawnie bezpieczny. Szczególnie temat „inżynierii odwrotnej” jest w Niemczech bardzo trudny z prawnego punktu widzenia. Jest możliwe, że jako badacz bezpieczeństwa naruszysz prawo autorskie. Ryzyko dla mnie było jak dotąd mniejsze, ponieważ zajmowałem się głównie oprogramowaniem typu open source. Znalazłem pierwszą lukę w zabezpieczeniach jądra Linuksa. To nie jest infrastruktura, która jest niczyją własnością.
(Prochowiec)