Cześć, przedstaw się naszym czytelnikom, skąd jesteś i czym się zajmujesz w te upalne dni?
Hey, nazywam się Dawid Bałut, mieszkam rzut pakietem od Wrocławia :). W upalne dni zajmuję się dostarczaniem sporej ilości wody do organizmu, a w te mniej upalne bug huntingiem, czyli w moim przypadku szukaniem luk bezpieczeństwa na portalach internetowych.
Kiedy zaczęła się twoja przygoda z hackingiem?
Jakoś na początku maja ubiegłego roku. Brat będąc w empiku, kupił po przecenie „Sztukę infiltracji” Mitnicka. Leżała na półce przez dobre dwa miesiące, aż pewnego dnia był w mojej miejscowości problem z elektrycznością. Z braku laku wyciągnąłem książkę i przy świeczkach przeczytałem całą za jednym strzałem. Temat hackingu zaciekawił mnie na tyle, że następnego dnia zacząłem troszkę o tym googlować. Kilka dni później dostałem od brata kolejną książkę, tym razem Kevina Poulsena – „Haker: Prawdziwa historia szefa cybermafii”. Lektura traktuje o przygodach genialnego Hakera – Maxa Butlera, który aktualnie odsiaduje trzynastoletni wyrok i opuści więzienie w 2019 roku. Ta lektura wywołała u mnie taki apetyt, że musiałem wiedzieć jak to wszystko działa. No i dalej sprawy potoczyły się same…
Od kiedy zajmujesz się pentestami?
Tak „na poważnie” to od początku tego roku. Bodajże 14 stycznia dostałem pierwsze zlecenie na przeprowadzenie testu penetracyjnego średniego rozmiaru komercyjnej Webaplikacji. Jakiś czas później dostałem zlecenie zbadania sprawy włamania na sporego rozmiaru forum i przeprowadzenie pentestu. Od tego czasu do dziś trafiło się kilka kolejnych zleceń 🙂
Skończyłeś jakieś studia informatyczne czy jesteś samoukiem?
Od A do Ż samoukiem. Poziom edukacji, której miałem (nie)przyjemność doświadczyć nie za bardzo przekonał mnie do kontynuowania zdobywania wykształcenia. Wiem już co chcę w życiu robić, mam jasno wyznaczone cele i sukcesywnie do nich zmierzam. Mam nadzieję, że wszystko będzie szło zgodnie z planemJ
W jakich projektach dotąd brałeś udział i na jakich znanych stronach znalazłeś luki?
Hmm, z tych ostatnich to będą: Facebook, PayPal, Apple, Amazon, Steam, Slideshare, Pinterest, Pocket, Scoop.it, natomiast z polskich: Interia, wp.pl, o2, groupon, helion™, merlin, kilka banków i co najmniej po jednym bugu na każdym z portali Grupy Allegro.
Czy podzielasz opinię, że niezamówiony pentest powinien być karalny?
Poniekąd. Ciężko odpowiedzieć na to pytanie ogólnie, ale według mnie powinno to wyglądać w ten sposób, że jeśli ktoś znajduje błąd i go zgłasza, powinien otrzymać co najmniej podziękowania. Na pewno niezamówiony pentest nie powinien wyglądać tak, że rzucamy się na stronę, dosujemy, robimy dumpa bazy, kradniemy konta użytkowników i wgrywamy backdoora. Za takie coś jak najbardziej powinna przysługiwać kara. Często haker chce dać nauczkę programiście/adminowi w wyniku czego, jedyną osobą, która faktycznie obrywa jest użytkownik (na przykład przy zrzucie i sprzedaży bazy danych, w której zawarte są personalia użytkownika).
Jednak nieporozumieniem jest sytuacja kiedy zgłaszam komuś błąd i jestem straszony sądem. Zgłaszam błąd, załataj go i ewentualnie podziękuj. Niczego więcej nie wymagam, bo to niezamówiony pentest, ale hej – informuję Cię o tym, że dałeś ciała i nie zabezpieczyłeś strony poprawnie. Wyręczyłem Cię z trudnej roboty, może nawet właśnie zaoszczędziłeś pieniądze, które miałeś wydać na pentest. Miej trochę honoru i nie unoś się dumą tylko popraw się!
Oczywiście są programy bug bounty, gdzie niezamawiany pentest jest według wyników nagradzany, co jest super, ale częściej znajduje się błędy na „zwykłych” stronach. Jeśli używam danej strony, to chciałbym żeby moje dane były tam bezpieczne. Jednak trzeba mieć umiar i być ostrożnym by przypadkiem nie wyrządzić szkód, czyli np. nie zdosować serwera. Nasze dobre intencje mogą przynieść katastrofalne skutki, więc uważajmy na to jakie payloady wklepujemy.
Nie chcę robić z bug hunterów świętych krów, ale trochę szacunku im się należy. A niektóre krążące porównania, jak np. to „To tak jakby ktoś włamał Ci się do domu i powiedział, że masz słaby zamek w drzwiach” – są po prostu żałosne. My wskazujemy, że masz słaby zamek w drzwiach, ale do tego domu nie wchodzimy. Ciesz się, że znajdują to ludzie tacy jak my, bo równie dobrze mógł to znaleźć ktoś, kto wszedłby i ukradł ci telewizor.
Jak reagują firmy, u których znalazłeś luki na stronach? Czy zgłoszone błędy są szybko poprawiane?
Hehe, niektórzy wcale nie reagują ;]. Pewna firma hostingowa straszyła mnie sądem i mimo, że napisałem jej szczegóły błędów, to SQL injection wisi tam od ponad roku.
Kiedyś dostałem zlecenie zrobienia pentestu strony stworzonej na zamówienie i gdy znalazłem masę podatności, wysłałem je do klienta, otrzymując wiadomość, że producent oprogramowania twierdzi, że to głupie zabawy i błędy (XSSy, SQLi) nijak nie wpływają na bezpieczeństwo serwisu. Co więcej, później testując stronę tego producenta wyszło, że sami mają bSQLi 🙂
Żal jest tylko tego, że takie firmy inkasują spore kwoty za wykonanie strony, a oddają produkt tandetny, który można położyć w piętnaście minut. W moim świetle czarną sławą okryło się już kilka firm, w tym Groupon, który nie naprawił podesłanych błędów od około pół roku. Zgłosiłem dwa XSSy i dwa SQL injection, załatali tylko po jednym z nich nawet nie odzywając się do mnie. Już mam gdzieś wyniosłe uprzejmości, ale do cholery z ich serwisu korzysta masa ludzi. Czy dane użytkowników coś dla nich znaczą?
Mimo wszystko denerwuje mnie sytuacja, w której korporacja fixuje błędy i nie wysyła chociażby głupiego „dziękuję”. Przykładem niech będą Pinterest (3 x stored XSS) i Steam (1 x reflected XSS na steamcommunity.com; 1 x reflected na store.steampowered.com), choć tendencję do łatania po cichu mają też banki, co jest dla mnie niedorzeczne…
Na szczęście są ludzie, z którymi miło się współpracuje, jak na przykład Response Team LinkedIn czy Facebooka, gdzie w przeciągu 2 dni dziury zostają załatane i czujesz, że ktoś jest Ci wdzięczny za wykonaną robotę.
Scoop.it wysłał mi nawet firmową bluzkę 🙂 przypadku dużych korporacji, większość naprawia błędy w 2-3 dni robocze, choć PayPalowi zajmuje to średnio 3 miesiące a GA 2 tygodnie. Małe, ale zagranicznie firmy (np. Pocket) odpowiadają i łatają podatności bardzo szybko. Szczególnie mili są developerzy z Doliny Krzemowej. Mentalność polskich firm niestety zostawia wiele do życzenia.
Szyfrujesz swoje dyski?
Pewnie. I nie chodzi tutaj wcale o to, że mam coś do ukrycia przed wymiarem sprawiedliwości. Przykładowo: wychodzę do pracy/na zakupy/etc., wracam i komputera nie ma. Co może zrobić złodziej, gdy mój dysk jest niezaszyfrowany? Narobić ogromnego syfu w moim życiu, a także zdobyć dostęp do poufnym informacji przechowywanych na moim komputerze, jak na przykład szczegóły dotyczące znalezionych podatności/przetwarzanych raportów w ramach bug bounty/0-day`e/itp. Bardzo nieprzyjemna sytuacja – w tym momencie tracę wszystko…
A co może zrobić gdy mój dysk jest zaszyfrowany? Wyrzucić go, kupić nowy i korzystać z komputera.
Opowiedz naszym czytelnikom jak wyglądała rekrutacja do Allegro, gdzie znalazłeś ogłoszenie, na jakie stanowisko aplikowałeś, jakiego rodzaju zadania miałeś wykonać?
Ofertę znalazłem na stronie Allegro, w zakładce „Kariera”. Pojawiło się tam stanowisko „Młodszy specjalista ds. bezpieczeństwa”, no to stwierdziłem, że dobre i to – bo od czegoś korporacyjną karierę zacząć trzeba.
Osoba na tym stanowisku miała zajmować się „pilnowaniem bezpieczeństwa serwisu”, wewnętrznymi pentestami itp.
Najpierw rozmowa telefoniczna, wszystko super, umówiliśmy się na rozmowę kwalifikacyjną w Poznaniu. W międzyczasie, postanowiłem, że przygotuję sobie pewne fundamenty pod rozmowę i zacząłem szukać bugów na serwisach grupy allegro.
Nie ograniczyłem się tylko do samego Allegro, ale rzuciłem okiem na każdy portal z tej listy: https://pl.wikipedia.org/wiki/Grupa_Allegro . Kilkadziesiąt XSS’ów, CSRFy i 2 SQL injection.
Pojechałem na spotkanie i w gronie składającym się ze mnie, managera, jednego pracownika działu bezpieczeństwa i kobiety z Human Resources, przeprowadzona została godzinna rozmowa kwalifikacyjna.
Babka z HR’u powiedziała mi, że najdalej po dwóch tygodniach otrzymam informację z wynikiem rekrutacji, nawet jeśli będzie to wynik negatywny. Zadowolony jednak z lekkim niedosytem ze względu na niski poziom rozmowy technicznej, wróciłem do domu. Czekałem dwa tygodnie – zero kontaktu, mówię no dobra mogło się troszkę przeciągnąć. Po trzecim tygodniu wysłałem maila do pani z HR, zero odpowiedzi. Wysłałem maila do managera, z którym miałem rozmowę i miał być moim przełożonym i zero kontaktu. Minął miesiąc, wysłałem kolejnego maila z zapytaniem co jest grane. Również nie otrzymałem żadnej odpowiedzi. Później wysłałem jeszcze 2 maile, aż w końcu wielmożne Allegro, odezwało się do mnie po ponad dwóch miesiącach z informacją, że na moje miejsce zatrudniona została inna osoba. Kompletny nieprofesjonalizm… I nie mam żadnych pretensji o to, że nie zostałem zatrudniony, bo może faktycznie ktoś bardziej im się spodobał, ale to zachowanie – całkowite olanie mnie, nie odpowiadanie na maile, było wręcz żałosne. I kto by pomyślał, nie 😉 ? Allegro, taka miła firma…
Jak skończyła się historia z Allegro?
Niesmakiem i niechęcią do Allegro. Przykro jest, gdy ktoś traktuje Cię jak śmiecia, tym bardziej, gdy wcześniej poświęciłeś kilka nocek, na bug hunting w ich portalach. Niby i tak jestem zadowolony, że chociaż je załatali – przynajmniej dane użytkowników są bezpieczniejsze.
Czy w przeszłości inne firmy podobnie Cię potraktowały?
Jedna firma, dla której pracowałem tydzień „na okresie próbnym”, po czym kontakt się urwał i nie otrzymałem żadnej odpowiedzi odnośnie sprawy. Wysłałem maila z zapytaniem – „Co dalej?” i głucho na linii ;] Firmo, jeśli się nie nadaję to mi po prostu o tym napisz, a nie zachowujesz się jak dziecko i unikasz rozmowy.
Czy zamierzasz nadal aplikować do innych firm czy może skupiasz się na indywidualnych zleceniach?
Ja aplikować już nie zamierzam. Praca albo znajdzie mnie sama, albo nadal będę skupiał się na indywidualnych zleceniach, choć marzę o pracy w Dolinie Krzemowej 🙂
Czy można utrzymać się z pentestingu?
Jeśli masz skąd brać zlecenia to tak. Do tego potrzeba trochę znajomości i odrobinę szczęścia. W wolnym czasie można pobawić się w programy bug bounty i czasem wyciągnąć parę złotych.
Chociaż miałem taką historię… Helion po tym jak wysłałem im XSS’a występującego w silniku wyszukiwarki używanej na każdej ich stronie i kilka innych bugów – wysłał mi książkę natomiast później zaproponował mi przeprowadzenie pentestu w zamian za „dobrego ebooka” 😀 Więc z takich zleceń raczej się nie utrzymasz 😉
Jaki rodzaj luki jest twoim ulubionym i dlaczego?
Niewątpliwie najbardziej lubię XSSy i SQLi. Ze względu na bardzo szeroki zakres payloadów i kombinacji, jakich trzeba użyć by wyexploitować podatność :).
Niektórzy programiści mają tak abstrakcyjne pomysły, że trzeba się trochę napocić zanim uda się coś zrobić i to mi się podoba. Lubię się bawić i eksperymentować ze znalezionymi lukami. XSS i SQLi dają mi właśnie taką możliwość.
Oczywiście jest kilka ciekawych ataków, których rozbrajanie sprawia mi dużą przyjemność, jak np. CSRF i rozbrajanie/obchodzenie algorytmu, według którego generowany jest token zabezpieczający, ale to wyżej wymienione stoją na piedestale.
Fajne są też bugi, których całkowicie się nie spodziewam, tzn. kombinuję i szukam jakiegoś injectiona, a znajduję na przykład podatność na atak typu DOS. Nie chodzi mi o puszczenie botnetu na stronę, czy benchmarka do bazy danych, a błąd w logice aplikacji, która pozwala ją wyłożyć/zamulić.
Kilka dni temu znalazłem taką właśnie podatność na Amazonie. Odpowiednio modyfikując zapytanie, otrzymywałem request wykonujący się ponad sześć minut i zamulający przy okazji przeglądarkę (request zwracał ponad sto pięćdziesiąt tysięcy linii tekstu i zjadał 25% CPU. 25% gdyż taki limit na zużycie ma Firefox, którego używam).
Z jakich narzędzi korzystasz?
99% pracy wykonuję ręcznie. Nie raz spotkałem się z takimi przypadkami błędów, których nawet najznakomitszy automat nie byłby w stanie wykryć (przynajmniej tak mi się wydaje). Developerzy mają tyle pomysłów, że nie da się wszystkich zebrać i wrzucić w skaner. Co prawda czasem napiszę w Pythonie soft potrzebny do konkretnej operacji, ale jest tego naprawdę niewiele i częściej służy do funu aniżeli do ciężkiej pracy :). Testuję i na bieżąco widzę jak działa, i jak odpowiada mi aplikacja – payloady i sposoby exploitacji dobieram według konkretnej sytuacji. Najprościej mówiąc – skaner podatności nie potrafi myśleć i nie ma takiej heurystyki jak człowiek.
Czego zwykle słuchasz w głośnikach przy pracy?
Często jest to – cokolwiek, byleby zagłuszyć dźwięki otoczenia. Gdy potrzebuję się mocno skupić , to puszczam jakieś składanki drum&bass, jeśli potrzebuję polotu – słucham Beethovena, jeśli jest to tylko standardowe skanowanie (ofc manualne)/szukanie znanych bugów, to delektuje się albumami Presleya, Queenu i innych zespołów tego pokroju. Wielbię taką muzę 🙂
Uprawiasz jakieś sporty oprócz szukania luk na stronach?
Jeśli można to uznać za sport, to wkurzanie programistów. A tak na poważnie to czasem biegam – to tyle. Kiedyś miałem dość długą przygodę z kulturystyką, ale zdrowie pokrzyżowało mi plany i nie było już okazji wrócić do dawnej pasji.
Co miałbyś do powiedzenia ludziom, którzy chcieliby robić to co ty, jakieś złote rady?
Jeżeli ktoś chce coś robić, to niech to robi i nie ogląda się na innych – to złota rada. Zastanawiaj się czy chcesz raportować daną podatność i jakie to może konsekwencje. Nie odkrywaj wszystkich swoich kart. Dorzucę jeszcze myśl, którą kierował się Steve Jobs – „Stay hungry, stay foolish”.
Kontakt z panem Dawidem – GG:11647945