S obzirom na to koliko je softver složen, teško je osigurati da nema grešaka. To je jednostavno put stvari koje su ljudi dizajnirali i vrlo su složene. Kako bi smanjili problem, tvrtke za razvoj softvera uključuju recenzije koda u svoj životni ciklus razvoja softvera. Ali ni pažljivim stručnim pregledom ne može se sve uhvatiti. Ograničenja u stvarnom vremenu i proračunska ograničenja to pogoršavaju. Zbog toga se greške probijaju do proizvodnih sustava. Neki bugovi imaju mali ili nikakav učinak, ali drugi mogu uvesti gadne sigurnosne ranjivosti.
Sigurnosna ranjivost je klasa bugova koja na neki način utječe na sigurnost sustava. Postoji širok raspon mogućih rezultata, ali na kraju su sve sigurnosne ranjivosti loše za sve. Nažalost, pronalaženje grešaka može biti teško i dugotrajno. Dok programeri mogu provesti samo ograničenu količinu vremena testirajući bugove, druga grupa zajedno provodi puno više vremena koristeći aplikaciju - korisnici.
Korisnici sustava zajedno provode mnogo više vremena na sustavu nego što bi programeri tog sustava ikada mogli. Oni također koriste mnogo veći izbor uređaja. U kombinaciji, ovo čini savršeno okruženje za pronalaženje grešaka—mnogo očiju i rubnih slučajeva.
Stavljanje korisnika na posao
Tradicionalni način korištenja korisnika za rješavanje grešaka je imati neku funkciju izvješćivanja o pogrešci koja korisnicima omogućuje da prijave grešku na koju naiđu. Razvojni programeri mogu koristiti ove informacije za repliciranje, identificiranje i saniranje problema. Problem je u tome što postoji minimalan poticaj za korisnika da prijavi probleme. To je proces koji traje, ima potencijalne implikacije na privatnost i općenito ne rezultira nikakvim povratnim informacijama, čak i ako je problem riješen.
Sigurnosne ranjivosti još su gore. Zlonamjerni korisnik može odlučiti koristiti ranjivost koju pronađe aktivno. Ovisno o problemu, može biti moguće dobiti pristup nečemu vrijednom, bilo na crnom tržištu ili putem otkupnine ili ucjene. Alternativno, moguće je prodati znanje o ranjivosti na crnom tržištu. U svakom slučaju, korisnici nisu motivirani prijaviti bugove i destimulirani su prijaviti sigurnosne propuste.
Okretanje tablica
Sustav nagrada za bugove je način da se preokrene ploča kako bi se potaknulo aktivno prijavljivanje sigurnosnih problema. Metoda je jednostavna, nagrađivanje. Standardna metoda je plaćanje novčane nagrade i davanje javne potvrde za doprinos. Ovo izravno nagrađuje korisnike za prijavu sigurnosne ranjivosti i potiče ih da učine pravu stvar.
Sustavi nagrada za bugove obično su otvoreni svima. Svaki korisnik koji identificira sigurnosnu ranjivost može je prijaviti i biti plaćen. Ipak, postoje neka upozorenja. Da biste bili plaćeni, općenito morate biti prva osoba koja je prijavila problem, iako ponekad postoje rijetke iznimke u iznimnim okolnostima. Također morate slijediti pravila.
Pravila sustava nagrada za bugove pružaju opću zaštitu od pravnih postupaka ako ih se pridržavate. Često su detaljni, ali relativno jasni. Ne pristupajte tuđim podacima, ne koristite ranjivosti zlonamjerno i otkrivajte ih privatno i odgovorno. Možda postoje i neke stvari koje se smatraju zabranjenim.
Kakve su nagrade?
Realno, nagrade se temelje na dobroj volji. Postoji i element "ako je ovo uzrokovalo povredu podataka, morali bismo platiti mnogo veću kaznu." Općenito, tvrtka plaća relativno nizak iznos za nju. To, međutim, može biti dosta za reportera. Neki se bugovi mogu platiti za manje od sto dolara. Međutim, u ekstremnim slučajevima, neke su tvrtke platile sto tisuća dolara za ozbiljne ranjivosti. Naravno, većina nagrada puno je niža od toga.
Povijesno gledano, nagrade za bugove bile su puno niže i ponekad više od jednostavnog zahvaljivanja. Na primjer, slanje besplatne majice ili pružanje besplatne doživotne pretplate na uslugu. Ipak, velike tehnološke tvrtke potaknule su tržište, kao i dolazak platformi za dodjelu grešaka. Bug bounty platforme su web stranice koje ugošćuju bug bounty programe mnogih klijenata. Grupiraju sve na jednom mjestu. Ovo znatno olakšava manjoj organizaciji pokretanje sustava nagrada za bugove. Jedan od načina na koji to čini jednostavno je standardiziranje procesa.
Naravno, nagrada u bug bounty-u mnogo je manja nego što bi se mogla postići prodajom buga na crnom tržištu. Koncept vjeruje da općenito većina ljudi želi učiniti pravu stvar. Ili barem ne žele da ih ponovno proganja rizik od kršenja zakona.
Zaključak
Bug bounty sustav je plaćanja nagrade za pronalaženje i odgovorno otkrivanje sigurnosne ranjivosti. Aktivno potiče korisnike na testiranje i poboljšanje sigurnosti proizvoda. Donosi mnogo novih očiju u proces testiranja, a sve uz minimalne troškove za tvrtku. Naravno, kao netko tko sudjeluje u sustavu dodjele nagrada za bugove, ključno je biti oprezan i razumjeti pravila.
Hakiranje je ilegalno; bug bounty program dopušta testiranje nekih stvari, ali obično uključuje ograničenja. Ako se ne pridržavate pravila, možete biti kazneno odgovorni. Ako slijedite pravila, pronađete i prijavite grešku, mogli biste dobiti lijepu isplatu i povećati sigurnost za sebe i druge korisnike.