Logo StartupKit
PL

Kierowanie zgłoszeń do zespołów

Zbuduj katalog komponentów obejmujący obszary produktu, żeby napływające zgłoszenia podatności były sugerowane zespołowi, który nimi zarządza — i przez niego przejmowane.

Po co to?

W małym programie jedna osoba triażuje wszystkie zgłoszenia. W miarę jak program rośnie, pojedyncza kolejka staje się wąskim gardłem: błąd w Payments i błąd w aplikacji mobilnej trafiają na ten sam stos, a właściwy inżynier zobaczy zgłoszenie tylko wtedy, gdy ktoś pamięta, żeby go do niego dopisać.

Rozwiązuje to katalog komponentów. Obszary produktu opisujesz raz — „Payments API”, „Mobile App”, „Marketing Site” — a Kit dla każdego napływającego zgłoszenia sugeruje obszar, który je obejmuje, przekazuje własność domyślnej osobie odpowiedzialnej za ten obszar i pinguje kanał Slack odpowiedniego zespołu, gdy zgłoszenie zostanie zweryfikowane. Kierowanie działa w miarę możliwości i zawsze wymaga potwierdzenia przez człowieka: Kit proponuje, twój zespół decyduje.

Note

Komponenty są całkowicie opcjonalne. Bez nich zgłoszenia działają dokładnie tak jak wcześniej — zyskujesz jedynie kierowanie. Zacznij od dwóch–trzech obszarów, które odpowiadają wyraźnym granicom zespołów, i dodawaj kolejne w miarę potrzeb.

Czym jest komponent

Komponent to wpis w katalogu danego programu, opisujący jeden obszar produktu w ramach twojego programu ujawniania podatności (VDP). Każdy komponent niesie ze sobą cztery rzeczy:

Pole Do czego służy
Nazwa Etykieta obszaru pokazywana na zgłoszeniach i w Slacku (np. Payments API). Wymagana.
Opis Krótkie podsumowanie tego, co obejmuje dany obszar. Klasyfikator AI czyta go, gdy decyduje, do którego obszaru pasuje niejednoznaczne zgłoszenie — więc niech będzie konkretny.
Maski adresów URL (globy) Globy adresów URL dopasowywane do punktu końcowego, którego dotyczy zgłoszenie (zobacz Maski adresów URL (globy) poniżej).
Kanał Slack Kanał odpowiedniego zespołu. Otrzymuje powiadomienie „Przejmij” (Take it over), gdy skierowane zgłoszenie zostanie zweryfikowane.
Domyślna osoba odpowiedzialna Członek zespołu, który automatycznie przejmuje na własność zgłoszenia skierowane do tego obszaru, o ile zgłoszenie nie ma jeszcze przypisanej osoby.

Obowiązkowa jest tylko nazwa. Komponent z samą nazwą nadal działa jako ręczna etykieta; dodaj maski adresów URL, kanał i osobę odpowiedzialną, żeby odblokować automatyczne sugestie i kierowanie.

Konfigurowanie komponentów

Otwórz VDP > Ustawienia programu > Komponenty. Zakładka Komponenty to katalog — tutaj dodajesz, edytujesz i archiwizujesz obszary produktu.

Żeby dodać komponent, kliknij Nowy komponent, wypełnij pola i zapisz:

  • Nadaj obszarowi jasną nazwę i konkretny opis
  • Dodaj jedną lub więcej masek adresów URL, po jednym globie w wierszu
  • Wybierz kanał Slack odpowiedniego zespołu (opcjonalnie)
  • Wybierz domyślną osobę odpowiedzialną (opcjonalnie)

Nowi subskrybenci VDP widzą też opcjonalny krok „Skonfiguruj obszary produktu” podczas wdrożenia. Możesz go wtedy wykonać albo pominąć i zbudować katalog później — nic innego od niego nie zależy.

Maski adresów URL (globy)

Maski adresów URL to globy adresów URL, po jednym w wierszu, dopasowywane do punktu końcowego, którego dotyczy zgłoszenie, podanego przez badacza w zgłoszeniu. Napędzają deterministyczną połowę kierowania: jeśli punkt końcowy ze zgłoszenia pasuje do masek dokładnie jednego komponentu, ten komponent wygrywa bez dyskusji.

Jedna reguła, na której wszyscy się potykają: maska bez * na początku jest zakotwiczona na początku punktu końcowego. Ponieważ punkty końcowe to zwykle pełne adresy URL zaczynające się od https://, prawie zawsze warto owinąć istotną część w *, żeby dopasowanie działało jak podciąg.

Dopasowanie nie rozróżnia wielkości liter, a * obejmuje również /, więc *pay* to prawdziwe dopasowanie podciągu.

Dla punktu końcowego https://app.example.com/api/pay/charge:

Maska Pasuje? Dlaczego
*pay* * na początku i na końcu — dopasowuje „pay” w dowolnym miejscu ciągu
*/api/pay/* Wieloznaczniki po obu stronach dopasowują ten segment ścieżki, gdziekolwiek się pojawi
https://app.example.com/* Brak * na początku, ale punkt końcowy zaczyna się dokładnie od tego tekstu
app.example.com/* Zakotwiczona na początku — ale punkt końcowy zaczyna się od https://, a nie app.
/api/pay/charge Zakotwiczona na początku — punkt końcowy nie zaczyna się od /api/…

Tip

W razie wątpliwości owiń charakterystyczną część ścieżki w *: *payments* lub */api/pay/*. Maski zakotwiczone na początku (https://…/*) zostaw na sytuacje, gdy celowo chcesz dopasować jeden konkretny host od pierwszego znaku.

Jak działa kierowanie

Kierowanie tylko sugeruje. Kit nigdy po cichu nie przypisuje zgłoszenia ponownie — każdy z poniższych kroków pokazuje sugestię, którą twój zespół potwierdza.

1. Kit sugeruje obszar

Gdy zgłoszenie trafia do systemu, Kit wybiera komponent-kandydata w dwóch etapach:

  1. Dopasowanie deterministyczne — jeśli punkt końcowy ze zgłoszenia pasuje do masek adresów URL dokładnie jednego komponentu, jest to jednoznaczne dopasowanie z pełną pewnością.
  2. Klasyfikator AI — jeśli maski nie pasują do niczego albo niejednoznacznie pasują do dwóch lub więcej komponentów, klasyfikator AI zestawia zgłoszenie z opisami twoich komponentów i proponuje najlepsze dopasowanie albo none.

Kit pokazuje sugestię tylko wtedy, gdy jest wystarczająco pewny. Jeśli nic nie pasuje, zgłoszenie po prostu trafia bez sugerowanego obszaru — kierowanie nigdy nie blokuje ani nie opóźnia przyjęcia zgłoszenia.

2. Zespół potwierdza obszar

Na stronie zgłoszenia w panelu bocznym widać kartę „Obszar / odpowiedzialny zespół”. Gdy Kit ma sugestię, pojawia się ona jako „Sugerowany obszar” z procentem pewności i jednozdaniowym uzasadnieniem. Twój zespół może wtedy:

  • Zaakceptować sugestię,
  • wybrać inny obszar z listy,
  • albo zostawić pole puste.

Zaakceptowanie komponentu ustawia obszar zgłoszenia oraz, jeśli komponent ma domyślną osobę odpowiedzialną, przypisuje tę osobę jako właściciela zgłoszenia (chyba że ma ono już właściciela). Obszar możesz w każdej chwili wyczyścić lub zmienić z tej samej karty.

3. Odpowiedzialny zespół dostaje ping

Gdy skierowane zgłoszenie zostanie zweryfikowane (przejdzie triaż — zobacz Triaż zgłoszeń), a jego komponent ma przypisany kanał Slack, Kit publikuje na tym kanale kartę powiadomienia z przyciskiem „Przejmij” (Take it over). Dowolny członek zespołu może go kliknąć, żeby przejąć zgłoszenie i zostać jego właścicielem. Ping wysyła się dokładnie raz na zgłoszenie, więc ponowna weryfikacja czy zmiana przypisania nie zaśmieci kanału.

Note

Ping w Slacku wysyła się dopiero po weryfikacji, a nie przy przyjęciu zgłoszenia — dzięki temu kanał zespołu pozostaje cichy, dopóki zgłoszenie nie zostanie potwierdzone jako prawdziwe i mieszczące się w zakresie. Slack skonfigurujesz w Ustawienia konta > Integracje.

Dobre i złe praktyki

Rób tak Nie rób tak
Owijaj istotną część ścieżki w * (*payments*) Pomijaj * na początku i licz na dopasowanie podciągu
Pisz konkretne opisy — klasyfikator AI je czyta Polegaj wyłącznie na maskach adresów URL przy obszarach o rozmytych granicach URL
Traktuj każdą sugestię jako propozycję do potwierdzenia Zakładaj, że sugerowany obszar jest już przypisany — nie jest, dopóki go nie zaakceptujesz
Ustawiaj domyślną osobę odpowiedzialną dla obszarów z jasnym właścicielem Kieruj komponent na kanał Slack, do którego Kit nie należy
Archiwizuj obszary, które wycofujesz Usuwaj historię — archiwizacja ją zachowuje

Zarządzanie przez narzędzia MCP

Katalog jest też dostępny dla agentów AI i klientów API poprzez narzędzia MCP, więc możesz budować katalog i kierować zgłoszenia programowo:

  • csirt_list_components — wyświetla katalog (odczyt)
  • csirt_create_component / csirt_update_component — dodaje lub edytuje obszar (zapis)
  • csirt_archive_component — wycofuje obszar (zapis)
  • csirt_assign_component — ustawia, czyści lub pyta o sugerowany obszar na zgłoszeniu. Pomiń id komponentu, żeby dostać sugestię deterministyczną/AI bez wprowadzania zmian, a potem wywołaj ponownie z sugerowanym id, żeby ją potwierdzić.

Narzędzia zapisu wymagają zakresu csirt_write i zawsze proszą o potwierdzenie przed działaniem, odwzorowując znany z interfejsu przepływ „najpierw sugestia, potem potwierdzenie”. Pełną dokumentację narzędzi i konfigurację połączenia znajdziesz w Integracja z AI.

Archiwizowanie komponentu

Żeby wycofać obszar, kliknij Archiwizuj w zakładce Komponenty. Archiwizacja to miękkie usunięcie:

  • Zgłoszenia już skierowane do komponentu zachowują swoją historię — obszar nadal jest widoczny na tych zgłoszeniach.
  • Nowe zgłoszenia przestają być do niego kierowane — znika z sugestii i z listy wyboru.

To bezpieczny sposób na wygaszenie obszaru produktu bez przepisywania przeszłości. Interfejs nie pozwala na trwałe usunięcie; archiwizacja jest celowo bezpieczna i odwracalna, a nie destrukcyjna.

W skrócie

  • Utwórz komponent dla każdego obszaru produktu o wyraźnej granicy zespołu
  • Napisz konkretny opis — klasyfikator AI na nim polega
  • Dodaj maski adresów URL, owijając charakterystyczną ścieżkę w * (np. *payments*)
  • Ustaw kanał Slack, żeby odpowiedzialny zespół dostawał ping „Przejmij” (Take it over)
  • Ustaw domyślną osobę odpowiedzialną dla obszarów z jasnym właścicielem
  • Przy nowych zgłoszeniach potwierdzaj lub zmieniaj sugerowany obszar w karcie panelu bocznego
  • Archiwizuj wycofywane obszary zamiast je usuwać

Co dalej

  • Triaż zgłoszeń — tablica triażu, wskaźniki SLA i krok weryfikacji, który wyzwala powiadomienia zespołów
  • Konfigurowanie programu — zakres, SLA, matryca nagród i reszta ustawień programu
  • Integracja z AI — pełny zestaw narzędzi MCP, w tym narzędzia katalogu komponentów

Wpisz, aby wyszukać...