Kā ieviest bug bounty programmu soli pa solim
Veiksmīga bug bounty programma ir tikpat daudz process, cik tehnoloģija. Šis ceļvedis apkopo soļus, kā to palaist tā, lai atradumi tiešām tiktu izlaboti, un skaidri nošķir termiņus, ko nosaka Latvijas likums, no tiem, ko organizācija sola pati.
Pirms atver durvis
Programma ir tik laba, cik ātri tu spēj pārbaudīt ziņojumus un novērst kļūdas. Ja pamata drošība nav sakārtota, pirmās nedēļas ziņojumi atkārtos to, ko komanda jau zina, un pētnieki, kuru laiks ir ierobežots, aizies pie citas programmas.
Bug bounty vairs nav eksperiments. HackerOne ziņojuma “Hacker-Powered Security Report” 9. izdevumā norādīts, ka platformā līdz šim apstiprinātas vairāk nekā 580 000 ievainojamību un darbojas gandrīz 2 000 uzņēmumu programmu. Tas nozīmē, ka pētnieki zina, kā izskatās labi uzstādīta programma, un salīdzina tavējo ar tām.
Tvērums un ārpus tvēruma saraksts
Tvērumā uzskaiti konkrētus domēnus, lietotnes un API. Skaidri nosaki arī neatļautās sistēmas, trešās puses un testēšanas metodes. Neuzskaitītas sistēmas nedrīkst uzskatīt par automātiski atļautām; neskaidrības jānoskaidro pirms testēšanas.
Tikpat svarīgs ir ārpus tvēruma saraksts. Tajā parasti nonāk trešo pušu pakalpojumi, ko tu nekontrolē, reālu maksājumu plūsmas, klientu dati un testēšanas metodes, kas rada pieejamības risku. Ja to nepasaki, pētnieki to noskaidros eksperimentāli.
- Uzskaiti sistēmas pēc nosaukuma un adreses, ne pēc apraksta.
- Norādi, kuras testēšanas metodes ir aizliegtas, un kāpēc – piemēram, slodzes testi vai sociālā inženierija pret darbiniekiem.
- Pasaki, ko darīt, ja pētnieks nejauši ieguvis piekļuvi reāliem personas datiem: apturēt, nesaglabāt, ziņot.
- Norādi testa kontu izveides kārtību, lai pētniekiem nav jāizmanto svešu cilvēku konti.
- Pievieno izdošanas datumu un versiju, lai vēlāk var pierādīt, kādi noteikumi bija spēkā.
Termiņi: kas ir likums un kas ir tavs solījums
Daļa termiņu Latvijā nav sarunas jautājums. Nacionālās kiberdrošības likuma 39. un 40. pants nosaka gan to, cik ātri atradējam jāziņo kompetentajai kiberincidentu novēršanas institūcijai, gan to, cik ilgi subjekts drīkst ievainojamību novērst. Pārējie termiņi ir tavs publisks solījums, un tieši tos pētnieki vērtēs.
| Posms | Ko dara | Termiņš |
|---|---|---|
| Ziņojuma saņemšana | Automātisks apstiprinājums un reģistrācija sistēmā | Ieteikums: uzreiz |
| Pirmā cilvēka atbilde | Ziņojums izlasīts, iesniedzējam pateikts, kas notiek tālāk | Ieteikums: 1–2 darbdienas |
| Atradēja ziņojums institūcijai | Ziņojumu kompetentajai kiberincidentu novēršanas institūcijai iesniedz ievainojamības atradējs, ne programmas īpašnieks | Likums: 5 darbdienas no konstatēšanas |
| Triāža un smaguma piešķiršana | Reproducēšana, dublikātu pārbaude, CVSS vērtējums | Ieteikums: 5 darbdienas |
| Labojums | Ievainojamības novēršana un informēšana par gaitu | Likums subjektiem: 90 dienas |
| Pagarinājums | Ja objektīvu iemeslu dēļ termiņu nevar ievērot | Likums: ne vairāk kā 180 dienas no ziņojuma |
| Atkārtota pārbaude un izmaksa | Apstiprina labojumu, izmaksā atlīdzību, informē pētnieku | Ieteikums: 10 darbdienas pēc labojuma |
Publicē tikai tos ieteicamos termiņus, kurus komanda tiešām spēj ievērot arī sliktā nedēļā. Nokavēts publiskots solījums nodara vairāk ļauna nekā vispār nepublicēts.
Kā notiek triāža
Triāža ir programmas sirds. Katrs ziņojums jāreproducē, jāatsijā dublikāti un ārpus tvēruma esošie atradumi, jāpiešķir smaguma pakāpe un jānodod izstrādes komandai ar skaidru prioritāti.
- Pārbaudi tvērumu. Ja sistēma nav tvērumā, pasaki to uzreiz un norādi, kurā politikas punktā tas ir rakstīts.
- Reproducē. Izpildi iesniedzēja aprakstīto darbību secību. Ja tā neatkārtojas, prasi papildu informāciju, nevis noraidi klusējot.
- Piešķir smagumu. Izmanto CVSS un pieraksti vektoru, lai vēlāk var izskaidrot, kāpēc pakāpe ir tāda.
- Novērtē ietekmi kontekstā. Tehniskais vērtējums nav tas pats, kas ietekme uz tavu biznesu – ja atradums skar maksājumus vai personas datus, pakāpi paaugstini apzināti.
- Nodod tālāk. Izveido uzdevumu ar termiņu un atbildīgo, nevis pārsūti e-pastu.
- Atbildi iesniedzējam. Pasaki, kāda pakāpe piešķirta un kāds ir plānotais labošanas logs.
Dublikāti, strīdi un noraidīti ziņojumi
Dublikāti ir neizbēgami – vairāki pētnieki atrod to pašu kļūdu vienā nedēļā. Politikā ir vērts iepriekš pateikt, ka atlīdzību saņem pirmais derīgais ziņojums un ka dublikāta gadījumā iesniedzējam parāda oriģinālā ziņojuma iesniegšanas laiku.
Strīdi visbiežāk rodas nevis par to, vai kļūda pastāv, bet par tās smagumu. Tāpēc CVSS vektora pierakstīšana nav birokrātija: tā pārvērš strīdu par vērtējumu diskusiju par konkrētu metriku, ko var pārrunāt.
- Noraidot ziņojumu, vienmēr pasaki iemeslu: ārpus tvēruma, dublikāts, nav drošības ietekmes vai nav reproducējams.
- Ja iesniedzējs nepiekrīt pakāpei, piedāvā pārskatīt vērtējumu ar citu cilvēku komandā.
- Ja saruna iestrēgst, Latvijā kompetentā kiberincidentu novēršanas institūcija pēc kādas puses lūguma sniedz atbalstu saziņā (40. panta ceturtā daļa).
- Neaizmirsti, ka informācija par ievainojamību ir ierobežotas pieejamības informācija un par tās neizpaušanu atbild abas puses (39. panta piektā daļa).
Labošana, atkārtota pārbaude un atklāšana
Programma dod vērtību tikai tad, ja atradums kļūst par izlabotu kļūdu. Pēc labojuma veic atkārtotu pārbaudi un apstiprini pētniekam, ka ievainojamība ir novērsta. Tas ir arī brīdis, kad pārbaudīt, vai tā pati kļūdas klase nav atrodama citās sistēmās.
Novērsts nenozīmē publiskojams. Publiskošanas kārtību saskaņo ar kompetento institūciju un iesaistītajām pusēm; kāpēc novēršanas termiņš pats par sevi nav publiskošanas atļauja, skaidrots ceļvedī VDP vai bug bounty.
Kā tas sader ar ielaušanās testiem
Programma neaizstāj plānotu testēšanu. Ministru kabineta noteikumu Nr. 397 131. punkts A klases informācijas sistēmām paredz ielaušanās testus pirms nodošanas ekspluatācijā un vismaz reizi trijos gados ekspluatācijas laikā. Trīs gadi ir garš laiks, ja sistēma mainās katru nedēļu.
Tieši šo starpu programma aizpilda: tests dod dziļumu un dokumentu, programma dod nepārtrauktu ārējo uzmanību starp testiem. Kā abi atšķiras pēc būtības, skaidrots ceļvedī kas ir bug bounty.
Biežākās kļūdas
- Neskaidrs tvērums. Pētnieki testē nepareizās sistēmas, un tu tērē triāžas laiku noraidījumiem.
- Lēna vai klusa triāža. Labi pētnieki aiziet pirmie, jo viņiem ir izvēle.
- Atlīdzības neatbilst ietekmei. Ja kritiska kļūda maksā tikpat, cik vidēja, motivācija meklēt dziļāk pazūd.
- Atradumi netiek izlaboti. Programma pārvēršas par ievainojamību sarakstu, ko neviens neslēdz.
- Publiska programma pirms privātās. Slodzi nevar novērtēt teorētiski – to var tikai izmērīt.
Palaišanas plāns
- Pirms atvēršanas. Sagatavo aktīvu sarakstu, tvērumu, ārpus tvēruma sarakstu, safe harbor formulējumu un atlīdzību tabulu pa smaguma pakāpēm.
- Pirmā nedēļa privāti. Uzaicini nedaudzus pētniekus, mēri reālo ziņojumu plūsmu un savu atbildes laiku, nevis plānoto.
- Pirmais mēnesis. Pārskati, cik ziņojumu bija ārpus tvēruma vai dublikāti, un precizē noteikumus tieši tajās vietās.
- Pirms publiskošanas. Pārliecinies, ka triāža iztur slodzi arī tad, kad galvenais atbildīgais nav pieejams.
- Pēc atvēršanas. Publicē statistiku par atbildes un labošanas laikiem – tā ir vienīgā reklāma, kas pētniekiem tiešām rūp.
Avoti
- Nacionālās kiberdrošības likums 39. panta pirmā, piektā un sestā daļa un 40. pants – ziņošanas termiņš, 90 un 180 dienu novēršanas termiņi un institūcijas atbalsts saziņā.
- Ministru kabineta noteikumi Nr. 397 “Minimālās kiberdrošības prasības” 131. punkts nosaka, kad A klases informācijas sistēmām veic ielaušanās testus.
- BOD 20-01: Develop and Publish a Vulnerability Disclosure Policy Avots 45–90 dienu publiskošanas atskaites punktam un politikas obligātajiem elementiem.
- Common Vulnerability Scoring System v3.1: Specification Document Smaguma pakāpju skala un vektora pieraksts, uz ko balstās triāžas vērtējums.
- Koordinētas ievainojamību atklāšanas process (CVD) Kompetentās institūcijas apraksts par CVD ieviešanu un ievainojamību ziņošanas platformu cvd.cert.lv.
- Hacker-Powered Security Report (9. izdevums) Ziņojuma 9. izdevumā publicētie apkopotie rādītāji par apstiprinātajām ievainojamībām un uzņēmumu programmu skaitu.
Biežāk uzdotie jautājumi
Saistītie jautājumi
Cik lielai jābūt atlīdzībai?
Atlīdzībai jāatbilst ievainojamības ietekmei un tirgum. Standartizētu summu nav – pakāpes nosaka pēc CVSS, bet naudas apmēru izvēlas programmas īpašnieks. Sāc ar saprātīgiem diapazoniem pa pakāpēm un pielāgo tos pēc pirmajiem mēnešiem.
Vai vajag ārēju partneri?
Ne vienmēr, bet partneris, kas jau pārvalda triāžu un pazīst pētnieku kopienu, būtiski atvieglo sākumu un uztur kvalitāti. Galvenais ieguvums ir nevis platforma, bet gan tas, ka ziņojumu pirmajā dienā izlasa cilvēks, kurš saprot, ko lasa.
Cik ātri jāizlabo atrastā ievainojamība?
Nacionālās kiberdrošības likuma subjektiem 40. panta pirmā daļa nosaka novēršanu ne vēlāk kā 90 dienu laikā pēc informācijas saņemšanas, un objektīvu iemeslu dēļ termiņu var pagarināt ne vairāk kā līdz 180 dienām no ziņojuma iesniegšanas. Kritisku atradumu gadījumā organizācijai praksē jārīkojas daudz ātrāk nekā prasa normatīvais griestu termiņš.
Ko darīt ar dublikātiem?
Iepriekš politikā pasaki, ka atlīdzību saņem pirmais derīgais ziņojums, un dublikāta gadījumā parādi oriģinālā ziņojuma iesniegšanas laiku. Caurskatāmība šeit ir svarīgāka par pašu lēmumu.
Vai programma aizstāj ielaušanās testu?
Nē. MK noteikumu Nr. 397 131. punkts A klases informācijas sistēmām prasa ielaušanās testus pirms nodošanas ekspluatācijā un vismaz reizi trijos gados. Programma darbojas starp testiem un pamana to, kas mainījies pēc pēdējā laidiena.
Turpini lasīt
Citi ceļveži
-
Kas ir bug bounty un kā tas darbojas
Kā darbojas kļūdu atlīdzības programma: tvērums, ziņojuma saturs, smaguma pakāpes pēc CVSS, safe harbor un Latvijas koordinētās atklāšanas regulējums.
Lasīt ceļvedi -
VDP vai bug bounty: ar ko sākt
Ievainojamību atklāšanas politika ir pamats, bug bounty pievieno atlīdzības. Ko VDP obligāti jāsatur, ko prasa Latvijas likums un kad pāriet uz nākamo soli.
Lasīt ceļvedi