Dlaczego bug bounty – mimo wysokich zarobków – nadal jest traktowane jako hobby? Wywiad z Grzegorzem Niedzielą
– Bardzo wielu hunterów, nawet z samego topu, traktuje bug bounty hobbystycznie, mimo zarabiania setek tysięcy dolarów rocznie i są cały czas zatrudnieni w zespołach bezpieczeństwa – powiedział nam Grzegorz Niedziela, dawniej pentester, a teraz bug bounty hunter i autor kanału YouTube „Bug Bounty Reports Explained”. Rozmawialiśmy z nim o tym, jak od środka wygląda praca bug bounty huntera.
Spis treści
Czy Bug Bounty hunter to popularne określenie? Myślisz, że w polskiej branży IT jest sporo osób, które zajmuje się wyszukiwaniem luk bezpieczeństwa w dużych firmach?
Jest to bardzo niszowe zajęcie. Na polskim rankingu Hackerone – najpopularniejszej platformy bug bounty, mamy nieco ponad 30 osób, które w 2023 dostały jakiekolwiek bounty. Możemy ekstrapolować, że nawet biorąc pod uwagę wszystkie istniejące platformy i programy, mniej niż 100 osób w całym kraju w tym roku zgłosiło buga, który nie był duplikatem i był wystarczająco niebezpieczny, żeby te osoby dostały bounty.
Jakbyś określił, czym się zajmujesz? Co tak naprawdę ma na celu Twoja praca?
Aplikacje, które można testować w ramach programów bug bounty zwykle były już przetestowane wcześniej przez wewnętrzny zespół pentesterów. To oznacza, że często błędy, których szukamy jako bug hunterzy są bardziej złożone niż te znajdowane podczas pentestów. Każdy z nas ma podczas szukania takich podatności ma największą zabawę i czerpie satysfakcję. Chociaż prawda jest taka, że nie zawsze tak jest. Czasem błędy same w sobie nie są takie złożone, ale występują w części aplikacji, która jest na tyle stara, że nikt o niej nie pamięta, albo na tyle nowa, że jeszcze żaden wewnętrzny zespół jej nie testował. Tak czy inaczej, aplikacje w programach bug bounty są publicznie dostępne tak samo dla bug hunterów, jak i dla hackerów ze złymi intencjami. Odpowiadając na pytanie, naszym celem jest znalezienie tych podatności przed nimi, żeby firma mogła naprawić błąd zanim ucierpią użytkownicy.
Pamiętasz pierwszy błąd, który wykryłeś na stronie jakiejś firmy? Opowiedz proszę o tym, jak go wykryłeś, jak zgłosiłeś i co dalej działo się z tym tematem?
Myślę, że wspomnienie pierwszego buga zostanie ze mną na długo… Testowałem aplikację Gitter, która była własnością GitLaba. Jest to bardzo renomowany program bug bounty z dużymi wypłatami. Byłem wtedy na początku kariery, więc bardziej chciałem zobaczyć jak działa taka aplikacja, niż łudziłem się, że znajdę tam błąd. Konkretnie, interesował mnie mechanizm uwierzytelnienia przez Oauth. Podczas wysyłania jednego żądania, które potencjalnie mogłoby prowadzić do przejęcia konta ofiary, moja lokalna instancja Gittera przestała odpowiadać. Problemy z lokalnymi instancjami to niestety chleb powszedni, więc nie wyciągałem daleko idących wniosków. Ale sytuacja powtórzyła się drugi, trzeci raz… Kilka godzin później zdawałem sobie sprawę, że w kodzie jest nieobsłużony przypadek brzegowy, który nie występuje podczas normalnego użytkowania, ale ja dzięki niemu jestem w stanie jednym żądaniem wyłączyć dowolną instancję tego oprogramowania.
Następnie nadszedł czas na napisanie raportu, upewniając się tysiąc razy, że jest tam wszystko co potrzeba. Potem – czekanie, przeglądanie starych raportów w celu zobaczenia ile płacili za podobne błędy w przeszłości. No i oczywiście sprawdzanie maila setki razy dziennie w oczekiwaniu na kolejne decyzję. Ostatecznie wypłacili mi $1,000, co dla studenta pracującego na część etatu było bardzo znaczącą kwotą.
Jak Twoim zdaniem powinien wyglądać idealny program bug bounty?
Jest cała masa czynników, która wpływa na doświadczenia bug huntera. Oczywistą jest oczywiście struktura wypłat – oprócz tego, że im większe, tym lepiej, to dobrze też, żeby było jasno określone w jaki sposób firma będzie określać ryzyko danej podatności. Ponadto istotne jest jasne zdefiniowanie co można testować, a czego nie można, a najlepiej jeżeli jest też napisane jakie strony, a nawet jakie podatności byłyby dla tej firmy najgroźniejsze. Po przeczytaniu opisu programu często na pierwszy rzut oka widać, czy firma użyła gotowego szablonu dostarczonego przez platformę bug bounty, czy faktycznie ma zespół bezpieczeństwa, który chce prowadzić ten program i aktywnie angażować się we współpracę z bug hunterami.
Jak wybierasz aplikację, którą chcesz shackować?
Często kieruję się frajdą, którą mam z testowania danego celu. Na przykład, lubię hakować aplikacje, których sam używam. Oprócz tego, że zabezpieczam sam siebie, to startuję z lepszej pozycji, niż inni hackerzy, bo rozumiem kontekst biznesowy danej aplikacji i wiem, jakie podatności byłyby groźne. Jest to szczególnie prawdziwe, jeśli nie są to aplikacje, których używamy wszyscy, jak Gmail, ale na przykład takie, które wykorzystuję w biznesowej części swojej działalności. Jeszcze lepiej, jeżeli są to aplikacje płatne, bo wtedy konkurencja jest jeszcze mniejsza.
Jakich zasad starasz się trzymać?
Każdy program jasno wskazuje w swoim opisie, co można robić, a czego nie można. Na przykład wymaga od nas wrzucenia nicku z platformy bug bounty do każdego żądania, albo ogranicza ilość żądań na minutę.
Porozmawiajmy o zarobkach bug bounty huntera. Od czego one zależą? O jakich kwotach mówimy?
Zacznijmy od tego, że bug hunterzy zarabiają za efekty, a nie za czas poświęcony na pracę. W wielu programach, wypłaty za krytyczne błędy wynoszą $3,000-$5,000. Natomiast, większe firmy z renomowanymi programami płacą do $25,000, $50,000, a nawet do $200,000. Przez to i dzięki temu, na jednym programie można spędzić kilka tygodni nie znajdując niczego, a następnie w kilka godzin zarobić kilka, czy kilkadziesiąt tysięcy dolarów. Bardzo wielu hunterów, nawet z samego topu, traktuje bug bounty hobbystycznie mimo zarabiania setek tysięcy dolarów rocznie i są cały czas zatrudnieni w zespołach bezpieczeństwa. Bug bounty na pełen etat wymaga ciągłego szukania nowych celów, a nie tylko hackowania tego, na co mamy ochotę, więc stosunkowo niewiele osób utrzymuje taki styl życia przez dłuższy czas.
Jak myślisz, z czego wynika to, że bug bounty – mimo wysokich zarobków – nadal jest traktowane jako hobby, a nie normalna praca?
Na pewno jednym z powodów jest nieregularność zarobków w bug bounty. O ile finansowo jest to dość łatwy problem do rozwiązania – wystarczy poduszka z oszczędnościami na kilka miesięcy, o tyle pieniądze są też sposobem wyrażenia dobrze wykonanej pracy, więc trzeba przestawić też swoją głowę na to, że brak dobrze płatnych bugów przez kilka dni czy tygodni nie zawsze oznacza, że źle wykonujemy pracę.
Ponadto, podobnie jak ja, wielu hakerów kieruje się frajdą ze znajdowania bugów. Mamy ochotę pobawić się ze znanym i dobrze przetestowanym produktem? Żaden problem, nawet jeżeli nic nie znajdziemy. Nie mamy ochoty na bug bounty? Możemy poświęcić czas na coś innego, a nie musimy na siłę szukać nowego celu. Znaleźliśmy buga z kolegą i czujemy, że daliśmy z siebie 70%, a on tylko 30%? Możemy i tak standardowo podzielić bounty na pół, bo i tak się cieszymy ze znalezionej podatności.
Te aspekty wyglądałyby inaczej dla osoby, która polega na bug bounty jako jedynym źródle przychodu.
Czym praca bug bounty huntera różni się od pracy pentestera?
Dla osoby postronnej, zarówno bug hunter, jak i pentester hackuje, ale w praktyce jest wiele różnic. Pentester często jest pierwszą osobą testującą daną aplikację, więc musi postawić na pokrycie swoim testem wszystkich funkcjonalności. Musi być efektywny i raczej nie może spędzić kilku dni nad małą częścią aplikacji. Oprócz podatności, powinien też zgłosić mniejsze niedociągnięcia, które być może same w sobie nie są groźne, ale mogłyby się stać, gdyby były połączone z innymi mniej groźnymi błędami. Współpracuje też bliżej z zespołem programistów w celu naprawienia luk. Bug hunter natomiast częściej skupia się na konkretnej funkcjonalności i spędza tam dużo czasu. Żeby zgłosić podatność, musi być w stanie pokazać, że może ją wykorzystać. Nie może być to teoretyczny scenariusz ataku.
Jakie umiejętności są niezbędne w pracy bug bounty huntera?
Na pewno samodyscyplina i ogranizacja, bo nie mamy nad sobą szefa, który da nam konkretny projekt i deadline, a za to zawsze czeka pokusa, żeby skoczyć do innego programu bug bounty, który “na pewno będzie dużo lepszy, niż ten, na którym obecnie hackujemy”, albo zrobić sobie wolne w środku tygodnia.
Wymaga też więcej nieszablonowego i kreatywnego myślenia, bo często to, o czym mówią wszyscy to nie to, co da nam najlepszy zwrot z inwestycji naszego czasu.
Grzegorz Niedziela. Był pentesterem, ale podjął decyzję o odejściu z pracy na rzecz bug bounty i tworzenia treści na media społecznościowe. Dokumentuje swoją przygodę z bug bounty, tworząc materiały o web security w formie kanału YouTube „Bug Bounty Reports Explained”, podcastu, newslettera oraz na innych mediach społecznościowych.