Biorąc pod uwagę złożoność oprogramowania, trudno jest upewnić się, że nie ma błędów. Jest to po prostu sposób rzeczy, które zostały zaprojektowane przez człowieka i bardzo złożone. Aby zminimalizować ten problem, firmy zajmujące się tworzeniem oprogramowania uwzględniają przeglądy kodu w swoim cyklu życia oprogramowania. Ale nawet uważna recenzja eksperta nie jest w stanie uchwycić wszystkiego. Pogarszają to bardzo ograniczenia czasowe i budżetowe. Z tego powodu błędy przedostają się do systemów produkcyjnych. Niektóre błędy mają niewielki lub żaden wpływ, ale inne mogą wprowadzać paskudne luki w zabezpieczeniach.
Luka w zabezpieczeniach to klasa błędów, które w jakiś sposób wpływają na bezpieczeństwo systemu. Istnieje szeroki zakres możliwych wyników, ale ostatecznie wszystkie luki w zabezpieczeniach są złe dla wszystkich. Niestety znalezienie błędów może być trudne i czasochłonne. Podczas gdy programiści mogą spędzić tylko ograniczoną ilość czasu na testowaniu błędów, inna grupa łącznie spędza znacznie więcej czasu na korzystaniu z aplikacji — użytkownicy.
Łącznie użytkownicy systemu spędzają w systemie znacznie więcej czasu, niż twórcy tego systemu mogliby kiedykolwiek. Używają też znacznie szerszej gamy urządzeń. W sumie tworzy to idealne środowisko do wyszukiwania błędów — wiele oczu i przypadków skrajnych.
Wdrażanie użytkowników do pracy
Tradycyjnym sposobem wykorzystywania użytkowników do rozwiązywania błędów jest posiadanie funkcji raportowania błędów, która pozwala użytkownikom zgłaszać napotkany błąd. Deweloperzy mogą użyć tych informacji do replikacji, identyfikacji i rozwiązania problemu. Problem polega na tym, że istnieje minimalna zachęta dla użytkownika do zgłaszania jakichkolwiek problemów. Jest to proces, który wymaga czasu, może mieć wpływ na prywatność i generalnie nie skutkuje żadną informacją zwrotną, nawet jeśli problem został rozwiązany.
Luki w zabezpieczeniach są jeszcze gorsze. Złośliwy użytkownik może aktywnie wykorzystać wykrytą lukę. W zależności od problemu, może być możliwe uzyskanie dostępu do czegoś cennego, na czarnym rynku lub poprzez okup lub szantaż. Alternatywnie, istnieje możliwość sprzedaży wiedzy o luce na czarnym rynku. Tak czy inaczej, użytkownicy nie są zachęcani do zgłaszania błędów i zniechęceni do zgłaszania luk w zabezpieczeniach.
Odwracanie tabel
System nagród za błędy to sposób na odwrócenie sytuacji w celu zachęcenia do aktywnego zgłaszania problemów z bezpieczeństwem. Metoda jest prosta, nagradzanie ich. Standardową metodą jest zapłacenie nagrody pieniężnej i publiczne potwierdzenie wkładu. To bezpośrednio nagradza użytkowników za zgłaszanie luk w zabezpieczeniach i zachęca ich do właściwego postępowania.
Systemy nagród za błędy są zazwyczaj otwarte dla każdego. Każdy użytkownik, który zidentyfikuje lukę w zabezpieczeniach, może ją zgłosić i otrzymać zapłatę. Istnieją jednak pewne zastrzeżenia. Aby otrzymać płatność, zazwyczaj musisz być pierwszą osobą, która zgłosi problem, chociaż czasami zdarzają się rzadkie wyjątki w wyjątkowych okolicznościach. Trzeba też przestrzegać zasad.
Zasady systemu bug bounty zapewniają całkowitą ochronę przed działaniami prawnymi, jeśli nie będziesz ich przestrzegać. Często są szczegółowe, ale stosunkowo proste. Nie uzyskuj dostępu do danych innych osób, nie wykorzystuj luk w zabezpieczeniach w złośliwy sposób i ujawniaj je prywatnie i odpowiedzialnie. Mogą również istnieć pewne rzeczy, które są uważane za niedostępne.
Jakie są nagrody?
Realistycznie nagrody są oparte na dobrej woli. Jest też element „gdyby to spowodowało naruszenie danych, musielibyśmy zapłacić znacznie wyższą grzywnę”. Generalnie firma płaci za to stosunkowo niską kwotę. Dla reportera może to być jednak całkiem sporo. Za niektóre błędy można zapłacić mniej niż sto dolarów. Jednak w skrajnych przypadkach niektóre firmy zapłaciły sto tysięcy dolarów za poważne luki w zabezpieczeniach. Oczywiście większość nagród jest znacznie niższa.
W przeszłości nagrody za błędy były znacznie niższe, a czasami były bardziej zwykłym podziękowaniem. Na przykład wysłanie bezpłatnej koszulki lub zapewnienie bezpłatnej dożywotniej subskrypcji usługi. Jednak duże firmy technologiczne wzmocniły rynek, podobnie jak pojawienie się platform z nagrodami za błędy. Platformy bug bounty to strony internetowe, na których znajdują się programy bug bounty wielu klientów. Skupiają wszystko w jednym miejscu. To znacznie ułatwia mniejszej organizacji prowadzenie systemu nagród za błędy. Jednym ze sposobów, w jaki to robi, jest po prostu standaryzacja procesu.
Oczywiście nagroda w postaci nagrody za błąd jest znacznie mniejsza niż można by osiągnąć, sprzedając błąd na czarnym rynku. Koncepcja polega na tym, że generalnie większość ludzi chce postępować właściwie. A przynajmniej nie chcą, by ryzyko złamania prawa ich prześladowało.
Wniosek
Nagroda za błąd to system wypłacania nagrody za znalezienie i odpowiedzialne ujawnienie luki w zabezpieczeniach. Aktywnie zachęca użytkowników do testowania i poprawy bezpieczeństwa produktów. Wnosi wiele nowych oczu do procesu testowania, a wszystko to przy minimalnych kosztach dla firmy. Oczywiście, jako osoba biorąca udział w systemie nagród za błędy, konieczne jest zachowanie ostrożności i zrozumienie zasad.
Hakowanie jest nielegalne; program bug bounty pozwala na testowanie niektórych rzeczy, ale zazwyczaj zawiera ograniczenia. Jeśli nie będziesz przestrzegać zasad, możesz zostać pociągnięty do odpowiedzialności karnej. Jeśli zastosujesz się do zasad, znajdziesz i zgłosisz błąd, możesz otrzymać niezłą wypłatę i zwiększyć bezpieczeństwo swoje i innych użytkowników.