Zarabianie na programach bug bounty – jak zacząć?
Każda większa korporacja IT utrzymuje dziś przynajmniej kilka rodzajów programów bug bounty. Dzięki nim, zgłaszając błąd – najczęściej lukę bezpieczeństwa – można w ramach przyjętego harmonogramu, nie tylko przyczynić się do zwiększenia poziomu cyberbezpieczeństwa, ale także nieźle lub świetnie zarobić. Nie brakuje już ekspertów, którzy z szukania dziur w oprogramowaniu i zgłaszania ich w ramach bug bounty uczynili swoje główne źródło utrzymania.
Bug bounty – o co chodzi?
Rzecz jasna poszczególne bug bounty będą się od siebie znacząco różnić, choćby ze względu na technologie, jakie zostały wykorzystane do budowania konkretnych aplikacji, jej zastosowania czy platformy, na której działa soft. Jak już jednak wspomniano, dziś najwięksi producenci oprogramowania czy dostawcy wszelakich usług wprowadzą niekiedy nawet dziesiątki dalece wyspecjalizowanych programów, spośród których każdy może wybrać taki, który będzie odpowiadał np. znanym już językom programowania.
Niedomówieniem byłoby jednak twierdzić, że błędów szukać można tylko w dużym komercyjnym oprogramowaniu. Wręcz przeciwnie – nieźle można zarobić także np. na otwartych protokołach, bibliotekach programistycznych czy frameworkach. Każdy może znaleźć coś dla siebie.
Skąd się wzięły programy bug bounty?
Pierwszym dużym programem bug bounty był ten uruchomionych przez twórców przeglądarki Netscape Navigator około roku 1995. Program rozwijał się wtedy w ogromnym tempie przez relatywnie niewielki zespół. Bug bounty powstało zatem z potrzeby – niewielki zespół nie mógł sobie pozwolić na intensywne testy bezpieczeństwa, więc postanowił skorzystać z pomocy społeczności. Pomysł podjęła później Mozilla i po kilkunastu latach, około roku 2015, swoje bug bounty mieli wszyscy najwięksi wówczas gracze, na czele z Google, Microsoftem, Facebookiem czy Apple.
Dziś ze względu popularność aplikacji webowych oraz stosowanie właśnie na ich gruncie licznych innowacji, dużym zainteresowaniem cieszą się programy bug bounty nagradzające właśnie za szukanie luk w aplikacjach działających w przeglądarce. Co roku organizowane są także liczne turnieje, w których łamie się same przeglądarki, ale także systemy operacyjne – zarówno te desktopowe, jak i serwerowe i mobilne.
Bug bounty – podstawowe wymagania
Od strony technicznej do szukania w powszechnych dziś programach bug bounty przygotować należy się oczywiście w zakresie bezpieczeństwa aplikacji webowych. Polecaną pozycją poruszającą ten temat jest „The Web Application Hacker's Handbook” autorstwa Marcusa Pinto, niemniej w popularnych internetowych zestawieniach każdy może znaleźć coś dla siebie, często wraz z kodami afiliacyjnymi umożliwiającymi zakup odpowiedniej literatury po obniżonych cenach.
Konieczna będzie też dobra znajomość wszystkiego, z czego budowane są aplikacje webowe: a zatem HTML, CSS, JavaScript, SQL oraz protokołów takich, jak HTTP, SSL czy FTP. Znów nie warto się tu szczególnie zagłębiać w szczegóły, gdyż znajomość konkretnych technologii determinowana będzie przede wszystkim przez specyfikę programu. Ponadto niezbędna będzie orientacja w temacie sieci komputerowych, np. tego, jak działają adresy IP i MAC, czy jak prezentują się kolejne warstwy modelu OSI.
Zdecydowanie warto także zapoznać się z systemami operacyjnymi wyspecjalizowanymi w kierunku poszukiwania podatności, przeprowadzania testów penetracyjnych. Najpopularniejsze z nich to Kali Linux i Black Linux. Zaraz po instalacji oferują one setki narzędzi o różnym stopniu zaawansowania i możliwości służących m.in. do analizy kodu źródłowego, inżynierii wstecznej, przeprowadzania ataków brute force czy ataków słownikowych czy ogromny wybór snifferów. Pozycja obowiązkowa.
Bug bounty – jak zacząć?
Osobną kwestię w zakresie przygotowań stanowi zapoznanie się z regulaminami poszczególnych programów. Rzecz w tym, że w światku bug bounty przyjęto dość powszechnie przestrzegane zasady, od których można uzależniać wypłacanie nagród. Jedną z nich jest na przykład zasada, że od zgłoszenia luki, producent ma 90 dni na jej załatanie (najczęściej 90, choć i tu bywa różnie, w przypadku poważnego zagrożenia za porozumieniem stron można decydować o przedłużeniu tego okresu), a następnie informacje o luce wraz z proof-of-concept można bezkarnie opublikować.
W ten sposób przechodzimy do kwestii kluczowej – dokumentowania odnalezionych podatności lub błędów oraz opracowywania proof-of-concept (PoC). Jest to opis metody wykorzystania jakiejś luki, najczęściej wykorzystujący pseudokod, który dowodzi, że można przez nią naruszyć bezpieczeństwo. PoC nie należy mylić z exploitem, czyli faktycznym skryptem czy kodem do wstrzyknięcia, z którego użyciem będzie można dokonać prawdziwego ataku. Ponadto, oprócz udokumentowanego PoC, warto nauczyć się także przynajmniej podstawowych czynników oceny zagrożenia w skali CVSS – relatywnie niewielkim nakładem pracy można wtedy samodzielnie kwalifikować podatności w respektowanym powszechnie systemie.
Rozpocząć eksplorację można na własną rękę, ale na początek warto skorzystać z witryn agregujących programy bug bounty, np. Google Bug Hunters czy Hacker One, choć podobnych witryn jest znacznie więcej. Znajdziemy tam przepastną bibliotekę różnych programów, organizowanych zarówno przez przedsiębiorstwa, jak i administracje państw, od których będzie można zacząć swoją przygodę. Bardzo ważne, aby każdorazowo zapoznawać się z zasadami danego programu – mogą się one od siebie znacząco różnic czy definiować specyficzne warunki zgłaszania podatności, co może wpłynąć na to, czy nagroda zostanie wypłacona oraz na jej wysokość.
Cierpliwość i upór w bug bounty
Wszystkie te czynniki mogą się przełożyć na sukces i nagrody, ale pamiętać jeszcze o jednym – o człowieku po drugiej stronie okienka, który będzie przyjmował zgłoszenie. Co prawda w firmach utrzymujących własne programy bug bounty siłą rzeczy jest to wysoko, jednak reakcja otrzymującego zgłoszenie nie zawsze musi być tak entuzjastyczna, jak można byłoby się tego spodziewać. Często zdarzają się przypadki, w których producent odmawia załatania luki, twierdząc, że odpowiedzialność na nim spoczywa na stronie trzeciej. Wówczas cierpliwość i upór, poprzedzona oczywiście weryfikacją, może być najlepszym doradcą.