Portal badacza
Jak badacze przesyłają zgłoszenia, śledzą status, odwołują się od decyzji i konfigurują dane do wypłat przez bezpieczny portal.
Dlaczego to ważne
Badacze znacznie chętniej zgłaszają podatności przez przejrzysty, uporządkowany portal niż na ślepy adres security@. Czytelny proces zgłaszania z wbudowanym śledzeniem statusu pokazuje badaczom, że ich praca jest traktowana poważnie — to przyciąga zgłoszenia wyższej jakości i buduje długoterminowe zaufanie w społeczności bezpieczeństwa.
Portal badacza w Kit wykorzystuje uwierzytelnianie przez magic link — bez haseł do zarządzania, bez kont do tworzenia. Eliminuje to barierę wejścia dla jednorazowych badaczy, zachowując jednocześnie odpowiedzialność i bezpieczny kanał komunikacji dla każdego zgłoszenia.
Co widzą badacze
Portal badacza znajduje się pod osobnym adresem URL niż panel administracyjny:
/security/{program-slug}/
To portal publiczny — odrębny od interfejsu administracyjnego Kit używanego przez zespół. Doświadczenie użytkownika opiera się na trzech zasadach:
Własna domena (VDP Add-on)
Dzięki dodatkowi programu ujawniania podatności (VDP) portal bezpieczeństwa można udostępniać pod własną domeną — na przykład security.yourcompany.com — zamiast domyślnej ścieżki subdomeny Kit. Wystarczy skierować rekord DNS CNAME na Kit i dodać domenę w Account Settings > Custom Domains. Po zweryfikowaniu i aktywowaniu domeny wszystkie adresy URL portalu (/policy, /report, /hall-of-fame, /.well-known/security.txt) są serwowane bezpośrednio z własnej domeny bez prefiksu ścieżki.
Własne domeny portalu bezpieczeństwa wymagają VDP Add-on (49 USD/mies.).
- Niski próg wejścia — do przesłania zgłoszenia nie jest wymagane logowanie. Badacz potrzebuje jedynie adresu e-mail.
- Przejrzystość po zgłoszeniu — po przesłaniu zgłoszenia badacz otrzymuje magic link e-mailem umożliwiający dostęp do portalu. Stamtąd można przeglądać przesłane zgłoszenia, bieżący status każdego z nich, wątek wiadomości z zespołem oraz oś czasu zdarzeń.
- Ścisła izolacja — badacze nie widzą wewnętrznych notatek zespołu, zgłoszeń innych badaczy ani żadnych szczegółów wykraczających poza własne zgłoszenia.
Przesyłanie zgłoszenia
Publiczny formularz zgłoszeniowy jest dostępny pod adresem /security/{program-slug}/report. Konto nie jest wymagane — badacz podaje adres e-mail, a Kit zajmuje się resztą.
Wymagane pola
| Pole | Opis |
|---|---|
| Title | Krótkie podsumowanie podatności |
| Vulnerability Type | Kategoria OWASP wybierana z listy rozwijanej (SQL Injection, XSS, Broken Auth, IDOR, SSRF, RCE itp.) |
| Affected Endpoint | Adres URL lub komponent systemu, w którym występuje podatność |
| Description | Pełne szczegóły podatności z obsługą Markdown |
| Reproduction Steps | Instrukcje krok po kroku umożliwiające odtworzenie problemu |
| Severity (Self-Assessed) | Własna ocena badacza — nie jest wiążąca dla końcowej oceny zespołu |
| Email Address | Używany do dostępu do portalu przez magic link oraz do wszystkich powiadomień |
Badacze mogą również załączać pliki — zrzuty ekranu, kod proof-of-concept lub nagrania wideo. Załączniki są opcjonalne, ale zalecane w przypadku złożonych podatności.
Przy zgłoszeniu wyświetlane jest wyzwanie CAPTCHA, a rate limiting stosowany jest per adres IP, aby zapobiec przedostawaniu się automatycznego spamu do kolejki triażu. Poza tym Kit śledzi każdy adres e-mail i adres IP, z którego przychodzą zgłoszenia, i blokuje serię: większą liczbę zgłoszeń, niż dopuszcza skonfigurowany próg w krótkim przedziale czasu. Badacz pracujący spokojnie przez wiele dni czy miesięcy nigdy jej nie wywoła, bo licznik zeruje się z końcem każdego przedziału.
Tip
Jeśli badacz napisze, że formularz go odrzucił, jego adres e-mail znajdzie się w VDP > Spam Records: otwórz wpis, żeby zobaczyć powód, i odblokuj go jednym kliknięciem. Submission Limits and Spam Blocks opisuje każdy filtr, przez który przechodzi zgłoszenie, i to, co widzi badacz na każdym z nich.
Po zgłoszeniu
Po przesłaniu zgłoszenia natychmiast następują dwie rzeczy:
- Zgłoszenie pojawia się w kolejce triażu zespołu (zob. Triaging Reports)
- Badacz otrzymuje e-mail z potwierdzeniem zawierający magic link do portalu
Magic link zapewnia dostęp do portalu bez hasła. Każde kolejne powiadomienie e-mailowe również zawiera nowy link do portalu za pośrednictwem zmiennej szablonowej {{ portal_link }}.
Uwierzytelnianie przez magic link
Portal wykorzystuje magic linki oparte na e-mailu zamiast haseł. Oto jak to działa:
- Badacz odwiedza
/security/{program-slug}/i podaje swój adres e-mail - Kit wysyła jednorazowy link logowania na ten adres
- Kliknięcie linku uwierzytelnia badacza i otwiera portal
- Sesja trwa do zamknięcia przeglądarki lub wygaśnięcia linku
Jeśli badacz nie ma aktywnej sesji, w każdej chwili może poprosić o nowy magic link na stronie logowania portalu. Na stronie logowania dostępny jest również link „Submit a new report” dla osób odwiedzających portal po raz pierwszy.
Przeglądanie statusu zgłoszenia
W portalu badacze widzą listę wszystkich przesłanych zgłoszeń. Każda karta zgłoszenia zawiera:
| Element | Szczegóły |
|---|---|
| Report ID | Unikalny identyfikator z prefiksem (np. RPT-abc123) |
| Title | Tytuł podatności z formularza zgłoszenia |
| Severity | Wyświetlany po zakończeniu oceny przez zespół |
| Status | Bieżący status w zrozumiałym języku (np. „Validated”, „In Progress”, „Resolved”) |
| Bounty | Kwota i status, jeśli nagroda została zatwierdzona. Wewnętrzna propozycja nagrody, o której zespół wciąż dyskutuje, nigdy się tu nie pojawia i nigdy nie wywołuje e-maila. |
| Payout prompt | Zachęta do uzupełnienia danych do wypłaty, gdy czeka na nie zatwierdzona nagroda. Płatność, która później nie doszła, nie jest oznaczana na karcie — ta informacja pojawia się po otwarciu zgłoszenia oraz w e-mailu (zobacz Gdy płatność się nie powiedzie) |
| Submitted Date | Data pierwotnego zgłoszenia |
Kliknięcie zgłoszenia wyświetla widok szczegółowy: oryginalną treść zgłoszenia, bieżący status z wyjaśnieniem, wątek wiadomości (tylko wiadomości zewnętrzne — wewnętrzne notatki zespołu są ukryte) oraz oś czasu wszystkich zmian statusu.
Badacze nie mogą edytować szczegółów zgłoszenia po przesłaniu. Komunikacja z zespołem odbywa się przez wysyłanie wiadomości w wątku zgłoszenia, który jest głównym kanałem do zapytań wyjaśniających i aktualizacji statusu. Zob. Communicating with Researchers, aby poznać sposób zarządzania tymi rozmowami przez zespół.
Odwołania
Gdy zespół odrzuci zgłoszenie, badacz ma możliwość odwołania się od decyzji bezpośrednio z portalu.
Jak działają odwołania
- Badacz otwiera odrzucone zgłoszenie w portalu
- Klika Appeal i podaje pisemne uzasadnienie (minimum 10 znaków)
- Odwołanie zostaje przesłane; Kit powiadamia osobę na dyżurze i publikuje odpowiedź w wątku Slack zgłoszenia (jeśli Slack jest podłączony) — oba prowadzą prosto do panelu odwołania na zgłoszeniu. Badacz dostaje e-mail z potwierdzeniem przyjęcia odwołania.
- Zespół rozpatruje odwołanie w widoku szczegółowym zgłoszenia i albo je akceptuje, albo odrzuca:
- Akceptacja — zespół zgadza się z badaczem. Jeśli zgłoszenie było odrzucone, akceptacja otwiera je ponownie i kieruje z powrotem do triażu. Badacz otrzymuje e-mail z informacją, że odwołanie zostało zaakceptowane.
- Odrzucenie — zespół podtrzymuje pierwotną decyzję. Badacz otrzymuje e-mail z informacją, że decyzja pozostaje w mocy.
Niezależnie od wyniku decyzja, osoba rozpatrująca i znacznik czasu są zapisywane w zgłoszeniu. Zob. Triaging Reports, aby poznać tę ścieżkę od strony zespołu.
Limity odwołań
Każde zgłoszenie ma konfigurowalną maksymalną liczbę odwołań. Domyślnie to 3 odwołania na zgłoszenie. Limit można zmienić w ustawieniach triażu programu (Triage Settings). Portal wyświetla liczbę wykorzystanych odwołań (np. „Appeals used: 1 of 3”), aby badacze wiedzieli, ile pozostało.
Umowa NDA / porozumienie
Opcjonalnie można wymagać od badaczy zaakceptowania umowy programowej przed wypłatą nagrody. Jest to przydatne w przypadku umów o zachowaniu poufności lub warunków skoordynowanego ujawniania.
- Treść umowy konfiguruje się w Program Settings za pomocą edytora rich text
- Gdy nagroda zostanie zatwierdzona, badacz widzi w portalu monit Accept Agreement
- Badacz akceptuje umowę elektronicznie jednym kliknięciem — nie ma żadnego dokumentu do podpisania ani przesłania
- Akceptacja jest rejestrowana wraz z dokładną treścią obowiązującej umowy, znacznikiem czasu oraz adresem IP badacza
Akceptacja umowy jest warunkiem koniecznym wypłaty — jeśli funkcja jest włączona, proces wypłaty nie będzie kontynuowany, dopóki badacz nie zaakceptuje umowy.
Konfiguracja wypłat (VDP Add-on)
Po zatwierdzeniu nagrody przez zespół badacz jest proszony w portalu o podanie danych do wypłaty. Ta sekcja jest dostępna wyłącznie z VDP Add-on (49 USD/mies.).
Obsługiwane metody wypłat zależą od konfiguracji w Program Settings:
- Bank Transfer — badacz podaje nazwę banku, numer rachunku i numer rozliczeniowy (routing number)
- PayPal — badacz podaje swój adres e-mail PayPal
Dane do wypłat są szyfrowane w spoczynku. Widzi je wyłącznie zalogowany badacz, na własnej stronie wypłaty — może więc sprawdzić i poprawić to, co jest zapisane, a właśnie tego zwykle wymaga nieudana płatność. Twój zespół nigdy nie widzi pełnych danych. Ekrany zespołu pokazują tylko zamaskowany identyfikator (••••4321 dla rachunku bankowego, j•••@example.com dla PayPal). Pełny numer rachunku i numer rozliczeniowy pojawiają się dokładnie w jednym miejscu: w jednorazowym, ważnym 90 dni linku potwierdzającym wysyłanym na skrzynkę finansów — to bezpieczny kanał, którego naprawdę potrzebuje osoba planująca przelew. Zob. Bounties and Payouts, aby poznać pełny proces wypłat.
Gdy płatność się nie powiedzie
Jeśli płatność nagrody nie dojdzie, strona szczegółów zgłoszenia pokazuje badaczowi baner — Your $X bounty needs new payout details — z wyjaśnieniem, że płatności nie udało się dostarczyć, a pełna kwota wciąż jest dla niego zarezerwowana. Przycisk Update payout details na banerze otwiera stronę wypłaty.
Plakietka nagrody na tej stronie śledzi tę pętlę w dwóch krokach. Needs payout details oznacza, że płatność nie doszła i Kit czeka na nowe dane. Resending payout oznacza, że badacz podał nowe dane i Twój zespół może ponownie zlecić wypłatę.
Na stronie wypłaty wyróżniona wskazówka wskazuje (po zamaskowanym identyfikatorze) kanał płatności, który zawiódł, i prosi o podanie innego konta albo o wcześniejsze wyjaśnienie sprawy z dostawcą płatności. Pole, którego dotyczyło niepowodzenie, ma dopasowaną podpowiedź z datą.
Kit wysyła też badaczowi e-mail z magic linkiem, który jednym kliknięciem przenosi go na stronę wypłaty. Ten e-mail podaje przyczynę prostym językiem, ale nigdy nie cytuje niczego, co wpisał Twój zespół ani kontakt w finansach.
Ponowienie wypłaty to działanie zespołu. Gdy badacz zapisze nowe dane, jego plakietka pozostaje w stanie Resending payout, dopóki ktoś z Twojego zespołu nie kliknie Retry — portal mówi o tym wprost, zamiast sugerować, że pieniądze są już w drodze.
Dokumenty podatkowe (VDP Add-on)
W przypadku programów wymagających dokumentacji podatkowej przed wypłatą badacze przesyłają formularze bezpośrednio przez portal. Ta sekcja jest dostępna wyłącznie z VDP Add-on (49 USD/mies.).
| Dokument | Kto potrzebuje | Cel |
|---|---|---|
| W-9 | Badacze z USA | Wymagany przez IRS dla płatności krajowych przekraczających 600 USD/rok |
| W-8BEN | Badacze spoza USA | Poświadcza status zagraniczny i pozwala skorzystać z ulg traktatowych obniżających podatek u źródła |
Proces przesyłania:
- Po zatwierdzeniu nagrody badacz widzi w portalu monit o przesłanie odpowiedniego dokumentu podatkowego
- Badacz wybiera typ dokumentu (W-9 lub W-8BEN) i przesyła plik
- Zespół weryfikuje dokument i oznacza go jako verified lub rejected w kolejce Tax Documents w panelu administracyjnym
- W przypadku odrzucenia badacz otrzymuje powiadomienie i może przesłać poprawioną wersję
Cykliczne zadanie w tle monitoruje daty wygaśnięcia dokumentów i wysyła przypomnienia do badaczy, gdy ich dokumenty zbliżają się do terminu ważności. Weryfikacja dokumentów podatkowych jest warunkiem koniecznym wypłaty, gdy wymaganie jest włączone w ustawieniach programu.
Kontrola dostępu na zaproszenie
Domyślnie portal bezpieczeństwa jest publicznie dostępny dla każdego znającego adres URL. Przełączenie na tryb tylko na zaproszenie pozwala ograniczyć krąg osób mogących przesyłać zgłoszenia — przydatne w programach prywatnych, wczesnym dostępie beta lub programach ograniczonych do wyselekcjonowanej listy badaczy.
Aby to włączyć, otwórz VDP > Security Portal Settings i ustaw Access Control na Invite Only. Kit automatycznie wygeneruje tajny token dostępu. Wynikowy adres URL zaproszenia udostępnia się bezpośrednio zaufanym badaczom — zawiera token i po kliknięciu przyznaje trwałą sesję przeglądarki.
Formularz żądania dostępu
Gdy odwiedzający trafia na zablokowany portal bez ważnego tokenu, zamiast ślepego zaułka widzi krótki formularz Request Access. Może podać adres e-mail i opcjonalną wiadomość wyjaśniającą zainteresowanie. Nie ma obowiązku zatwierdzania każdego żądania, a przesłanie formularza nie ujawnia odwiedzającemu, czy dany adres e-mail był już w kolejce — zapobiega to enumeracji.
Gdy wpłynie żądanie:
- Na adres kontaktowy z
security.txt(lub zapasowo na e-mail rozliczeniowy konta) wysyłane jest powiadomienie e-mail - Pozycja Access Requests pojawia się w pasku bocznym VDP w sekcji Configuration z odznaką pokazującą liczbę oczekujących żądań
- Otwórz VDP > Access Requests, aby przejrzeć oczekujące żądania — wyświetlany jest adres e-mail, opcjonalna wiadomość i data zgłoszenia
- Kliknięcie Approve & Send Invite wysyła osobisty link zaproszenia w jednym kroku
Link zaproszenia wysyłany po zatwierdzeniu jest tym samym adresem URL opartym na tokenie, który można udostępnić ręcznie. Po kliknięciu badacz uzyskuje trwałą sesję i może normalnie przesyłać zgłoszenia.
Hall of Fame
Publiczny Hall of Fame programu wyróżnia badaczy, którzy zgłosili prawidłowe podatności. Obecność na liście zawsze wynika ze zgody: żaden badacz nie zostanie opublikowany, dopóki sam tego nie wybierze albo zespół nie odnotuje zgody, którą badacz wyraził bezpośrednio.
Preferencje wyróżnienia. W profilu portalu każdy badacz wybiera jedną z trzech opcji; dopóki nie odpowie, jego stan to „Bez odpowiedzi”:
- Imiennie — badacz jest wyróżniany publicznie pod nazwą użytkownika (albo pod imieniem i nazwiskiem, jeśli nazwy nie podał). Adres e-mail nigdy nie jest widoczny.
- Anonimowo — wpis pojawia się jako Anonimowy badacz: zachowuje miejsce w rankingu i liczbę zgłoszeń, ale nie pokazuje nazwy.
- Poza listą — badacz nie jest publikowany nigdzie. To twarda odmowa: zespół nie może jej zmienić.
- Bez odpowiedzi — badacz nigdy nie odpowiedział na pytanie. Zespół może go zapytać (zob. niżej) albo wyróżnić go, odnotowując zgodę wyrażoną inną drogą.
Prośba o zgodę. Nie trzeba czekać, aż badacz sam odpowie. Otwórz jego profil w panelu administracyjnym i kliknij Poproś o zgodę — Kit wyśle mu mailem link ważny 30 dni, który otwiera się bez logowania i daje te same trzy opcje. To, co badacz wybierze, staje się jego preferencją wyróżnienia wszędzie, dokładnie tak, jakby ustawił ją sam w swoim portalu, a osoba, która wysłała prośbę, dostaje powiadomienie o odpowiedzi.
Przy opcji Wyróżnij mnie pod moją nazwą jest pole na nazwę, wypełnione wstępnie tym, co Kit już o badaczu wie, i możliwe do zmiany przed wysłaniem odpowiedzi. Nikt nie powinien zgadzać się na wyróżnienie, którego wcześniej nie zobaczył. To, co badacz wpisze, staje się jego publiczną nazwą wszędzie, nie tylko w twoim Hall of Fame, a badacz bez żadnej zapisanej nazwy musi ją podać, zanim ten wybór da się zapisać.
Opcja pojawia się tylko przy badaczu, który nigdy nie odpowiedział i ma co najmniej jedno prawidłowe zgłoszenie w twoim programie. Badacza, który wybrał Poza listą, nie da się zapytać nigdy — ta odmowa obowiązuje. Poza tym w danym momencie może być otwarta tylko jedna prośba, przypomnienie można wysłać po siedmiu dniach, a gdy ktoś już odpowie, kolejne pytanie jest możliwe dopiero po 30 dniach.
„Tak” wciąż nikogo nie publikuje. Zespół dodaje wpis do Hall of Fame ręcznie, jak zawsze, wybierając rok, nazwę i link. Zmienia się to, że zgoda pochodzi teraz z pierwszej ręki: wpis odnotowuje własną odpowiedź badacza i datę, w której jej udzielił, zamiast potwierdzenia od zespołu.
Zarządzanie listą. Strona zarządzania Hall of Fame w panelu administracyjnym pozwala zespołowi:
- Dodawać badaczy, którzy mają co najmniej jedno prawidłowe zgłoszenie w programie (zgłaszających z samymi odrzuconymi zgłoszeniami nie da się dodać). Jeśli badacz, który ma być wyróżniony imiennie, nie ma zapisanej żadnej nazwy, formularz poprosi cię o nazwę publiczną. Bez niej wpis opublikowałby go jako Anonimowego badacza, czyli dokładnie odwrotnie, niż się zgodził
- Publikować badacza ze stanem „Bez odpowiedzi” przez potwierdzenie zgody wyrażonej w wątku zgłoszenia lub e-mailem — Kit zapisuje, kto ją odnotował, kiedy i skąd zgoda pochodzi. Badacz, który odpowiedział na prośbę o zgodę, nie wymaga żadnego potwierdzenia
- Wyróżnić kogoś innego: ręczny wpis dla osoby zgłaszającej spoza platformy (zgłoszenie wysłane wyłącznie e-mailem albo poprawka sprzed uruchomienia programu) z nazwą, opcjonalnym linkiem i krótką notatką publiczną
- Edytować nazwę, notatkę publiczną, link i datę wyróżnienia dowolnego wpisu
- Przypinać wpisy (przycisk „Przypnij”) — przypięte wpisy naprawdę sortują się na początku strony publicznej
- Widzieć od razu stan publikacji każdego wpisu: Opublikowany, Prywatny (anonimowy), Poza listą albo Ręczny
Kogo wyróżnić w następnej kolejności. Zakładka Rekomendowani na stronie zarządzania pokazuje badaczy, którzy złożyli prawidłowe zgłoszenia w twoim programie, ale nie zostali jeszcze wyróżnieni publicznie, zaczynając od tych, którym należy się to najbardziej. O kolejności decyduje waga ich znalezisk (zgłoszenie krytyczne liczy się dużo bardziej niż niskie), liczba prawidłowych zgłoszeń oraz to, czy za te zgłoszenia wypłacono nagrodę. Spam i zgłoszenia niskiej jakości w historii badacza działają na jego niekorzyść. Zgłoszenie, którego nikt jeszcze nie ocenił, też się liczy, choć tylko trochę: brak oceny to nie to samo co brak znaczenia. Kwoty nagród są pokazane dla kontekstu, ale nigdy nie zmieniają kolejności, bo programy płacą w różnych walutach. Każdy wiersz pokazuje przesłanki jako etykiety, a nie jako jedną punktację, więc zawsze widać, dlaczego ktoś znalazł się w tym miejscu.
Akcja dostępna w wierszu zależy od zgody badacza. Kogoś, kto już powiedział, jak chce być wyróżniony, można stąd od razu dodać do Hall of Fame. Przy kimś, kto tego nie zrobił, pojawia się zamiast tego Poproś o zgodę, bo Kit nigdy nie publikuje nazwy, na którą nikt się nie zgodził. Trzecia zakładka pokazuje, kogo już zapytano i kto jeszcze nie odpowiedział. Badacz, który wybrał Poza listą, nie pojawia się w żadnej z nich.
Strona publiczna. Wpisy są pogrupowane według roku wyróżnienia, od najnowszego, a każdy wpis ma własny permalink pod adresem /security/{program-slug}/hall-of-fame/{entry-id} z wyróżnieniem, liczbą zgłoszeń, notatką i moderowanym linkiem. Liczba zgłoszeń odświeża się automatycznie, gdy zmienia się status zgłoszenia. Lista jest dostępna pod adresem /security/{program-slug}/hall-of-fame.
Hall of Fame to niskokosztowy sposób motywowania, który szczególnie dobrze sprawdza się w programach opartych wyłącznie na uznaniu (bez nagród pieniężnych). Włączenie w Program Settings daje badaczom powód do udziału.
W skrócie
-
Weryfikacja adresu URL formularza zgłoszeniowego (
/security/{program-slug}/report) i udostępnienie go w pliku security.txt oraz w stopce strony -
(VDP Add-on) Konfiguracja własnej domeny (np.
security.yourcompany.com) w Account Settings > Custom Domains dla spójnego doświadczenia marki - Przetestowanie przepływu magic link przez przesłanie testowego zgłoszenia z osobistego adresu e-mail
- Dostosowanie szablonu e-mail Zgłoszenie potwierdzone, aby badacze wiedzieli, czego się spodziewać po zgłoszeniu
- Konfiguracja limitu odwołań w Triage Settings (domyślnie: 3 na zgłoszenie)
- Ustawienie umowy NDA/porozumienia, jeśli program wymaga tego przed wypłatą
- Włączenie Hall of Fame w Program Settings, aby zachęcić badaczy do udziału
- W przypadku programu prywatnego: włączenie kontroli dostępu na zaproszenie w Security Portal Settings i udostępnienie adresu URL zaproszenia zaufanym badaczom
- W przypadku VDP Add-on: sprawdzenie, czy metody wypłat i wymagania dotyczące dokumentów podatkowych są prawidłowo skonfigurowane
Co dalej
- Bounties and Payouts — pełny proces wypłat, dokumenty podatkowe i księga finansowa
- Communicating with Researchers — wątki wiadomości i szablony e-mail
- Submission Limits and Spam Blocks — dlaczego zgłoszenie może zostać odrzucone i jak odblokować badacza