Logo StartupKit
PL

Integracja z Linear

Przesyłaj zwalidowane zgłoszenia podatności do Linear jako tickety i odczytuj status naprawy, bez wynoszenia szczegółów exploita poza Kit.

Dlaczego to ważne

Osoby, które triażują zgłoszenie podatności, prawie nigdy nie są tymi, które je naprawiają. Triaż dzieje się w Kit, naprawa na tablicy zespołu inżynierskiego. Bez powiązania między nimi ktoś ręcznie przekleja zgłoszenie do Linear i od tego momentu oba systemy się rozjeżdżają. Ticket pokazuje „In Review”, zgłoszenie „Validated”, nikt nie umie odpowiedzieć, czy podatność faktycznie jest naprawiona, a badacz czeka.

Połączenie z Linear zamyka ten obieg. Jedno kliknięcie w zgłoszeniu tworzy ticket, a powiązanie między nimi to prawdziwy rekord utrzymywany przez Kit, a nie adres URL wklejony przez kogoś w komentarzu.

Rozwiązuje też mniej oczywisty problem. Ręczne przeklejanie zwykle przenosi wszystko, łącznie z krokami reprodukcji i adresem e-mail badacza, do przestrzeni roboczej, której faktycznego kręgu odbiorców nikt nie sprawdził. Integracja w Kit wysyła zamiast tego świadomie okrojony ticket.

Note

Kit łączy się z jednym trackerem na program. Linear i Jira nie działają równolegle — jeśli istnieje już połączenie z Jira, rozłącz je przed połączeniem z Linear.

Czego potrzebujesz

  • Konto Kit z włączonym dodatkiem VDP
  • Przestrzeń robocza Linear
  • Administrator przestrzeni roboczej Linear, który wykona krok łączenia — szczegóły poniżej
  • Uprawnienia administratora modułu w Kit — podłączenie trackera to decyzja na poziomie całej organizacji

Warning

Kit instaluje się w Linear jako użytkownik aplikacji. Taką instalację może zatwierdzić wyłącznie administrator przestrzeni roboczej — zwykły członek dostanie odmowę. Tickety i komentarze Kit publikuje więc w imieniu aplikacji Kit, a nie osoby, która wykonała połączenie. W audit trail to dokładnie to, czego chcesz, ale oznacza to, że krok łączenia musi wykonać administrator.

Konfiguracja

1. Połącz swoją przestrzeń roboczą Linear

  1. Wejdź na VDP > Ustawienia > Tracker ticketów
  2. Wybierz Linear na ekranie wyboru trackera
  3. Kliknij Połącz z Linear
  4. Zaloguj się do Linear i zatwierdź żądany dostęp

Kit prosi o dostęp do odczytu oraz o prawo tworzenia ticketów i komentarzy — nic ponadto. Token Linear obejmuje jedną przestrzeń roboczą, więc jedno połączenie oznacza jedną przestrzeń.

Zgoda należy do osoby, która jej udzieliła. Kit zapisuje, kto to był, bo kiedy ta osoba odejdzie z organizacji, połączenie przestanie działać i trzeba wiedzieć, czyj dostęp odnowić.

2. Wybierz zespół

  1. Na stronie ustawień kliknij Wybierz zespół
  2. Wskaż zespół, do którego ma trafiać praca nad podatnościami

W Linear tickety powstają w ramach zespołu, a nie projektu — projekty w Linear rozciągają się na wiele zespołów i są opcjonalnym grupowaniem, więc nie ma tam czego wybierać. Nie ma też kroku z typem ticketu: w Linear typy ticketów nie istnieją.

Kit mapuje poziomy ważności zgłoszeń na cztery priorytety w Linear:

Poziom ważności w Kit Priorytet w Linear
Superkrytyczny Urgent
Krytyczny Urgent
Wysoki High
Średni Medium
Niski Low
Informacyjny Low

Inaczej niż w Jira, nazwy priorytetów są tu takie same w całej przestrzeni roboczej, więc nie trzeba sprawdzać mapowania osobno dla każdego zespołu. Jeśli poziom ważności nie ma mapowania, Kit nie wysyła żadnego priorytetu i obowiązuje domyślny priorytet zespołu — nigdy nie wysyła wartości „No priority”, która nadpisałaby ten domyślny priorytet, zamiast mu ustąpić. Poziom ważności i tak zawsze trafia do opisu ticketu.

Żeby samodzielnie zarządzać mapowaniem, ustaw na połączeniu nadpisanie priority_map — na razie nie ma na to ekranu.

3. Potwierdź, że działa

Kliknij Przetestuj połączenie. Kit wykonuje uwierzytelnione zapytanie do Linear i pokazuje wynik.

Przesyłanie zgłoszenia

Otwórz dowolne zgłoszenie. W prawej kolumnie znajdziesz kartę Tracker ticketów.

  1. Kliknij Utwórz ticket
  2. Przeczytaj panel z informacją, co zostanie wysłane, a co zostaje w Kit
  3. Kliknij Utwórz ticket

Na czas tworzenia ticketu karta pokazuje wskaźnik postępu, a potem identyfikator ticketu, jego status i link otwierający Linear w nowej karcie.

Może to zrobić każdy członek zespołu, który ma wgląd w zgłoszenie. To zwykła czynność triażowa, na tym samym poziomie uprawnień co dodanie linku. Tylko konfiguracja połączenia jest zarezerwowana dla administratora.

Note

Po przeniesieniu ticketu do innego zespołu Linear nadaje mu nowy identyfikator (ENG-123). Jako powiązanie Kit zapisuje stały wewnętrzny identyfikator z Linear, a ten widoczny odświeża przy każdej synchronizacji, więc przenoszenie ticketów między zespołami niczego nie psuje.

Co opuszcza Kit

Ten fragment warto przeczytać uważnie. Domyślnie wysłany ticket jest okrojony: zawiera tyle, ile inżynier potrzebuje, żeby zaplanować pracę, i nic ponadto.

Trafia do Linear Zostaje w Kit
Tytuł zgłoszenia i jego identyfikator w Kit Opis podatności
Poziom ważności i wynik CVSS Kroki reprodukcji
Typ podatności Endpoint, którego dotyczy
Obszar produktu Pliki proof of concept i zrzuty ekranu
Termin naprawy Imię i nazwisko, adres e-mail oraz dane do wypłaty badacza
Link zwrotny do zgłoszenia w Kit Notatki wewnętrzne i wątek rozmowy

Nie chodzi o ostrożność dla samej ostrożności. Z poziomu Kit nie da się ustalić, kto naprawdę ma wgląd w Linear: widoczność w całej przestrzeni roboczej, integracje z prawem odczytu, eksporty, kopie zapasowe przechowywane dłużej niż sam ticket. Pola, których Kit nie wysyła, to dokładnie te, które szyfruje w spoczynku, więc ich przesłanie przeniosłoby najlepiej chronione dane do systemu, nad którym masz najmniejszą kontrolę.

Tożsamości badacza ani kwot nagród nie da się włączyć żadnym przełącznikiem. Brak takiej opcji jest właśnie gwarancją.

Udostępnianie pełnych szczegółów mimo wszystko

Niektóre zespoły jednak chcą mieć opis w tickecie. Wymaga to przejścia dwóch niezależnych zabezpieczeń:

  1. Administrator włącza Zezwól na pełne szczegóły podatności w VDP > Ustawienia > Tracker ticketów
  2. Osoba przesyłająca zgłoszenie zaznacza pole wyboru przy tym konkretnym tickecie

Oba są domyślnie wyłączone. Przy wyłączonym ustawieniu na poziomie programu pola wyboru w ogóle się nie pokazują, a ręcznie spreparowane zapytanie ich nie obejdzie: Kit sprawdza ustawienie programu ponownie w momencie budowania danych do wysyłki.

Opisy ticketów w Linear to Markdown. Dołączony tekst zgłoszenia trafia do bloku kodu, więc Linear wyświetla go dokładnie tak, jak napisał go badacz, zamiast interpretować jako znaczniki.

Tip

Zostaw wyłączone. Ticket prowadzi z powrotem do Kit, a inżynier, który potrzebuje kroków reprodukcji, może otworzyć zgłoszenie: pod twoją kontrolą dostępu i z zapisem tego wglądu w systemie.

Komentarze o zmianach statusu

Przy włączonym ustawieniu Komentuj zmiany statusu Kit dodaje krótki komentarz w Linear, gdy zgłoszenie zostanie zweryfikowane, rozwiązane, sprawdzone lub odrzucone albo zmieni się jego poziom ważności. Komentarz to jedno zdanie plus link zwrotny do Kit.

Ta granica jest celowo szczelniejsza niż w treści ticketu: komentarze wysyłają się automatycznie i nikt nie przegląda ich tekstu, więc na tej ścieżce nie ma żadnej furtki „dołącz pełne szczegóły”. Żadnego opisu, kroków reprodukcji, tożsamości badacza ani kwot nagród.

Kit prosi też Linear, żeby nie subskrybować aplikacji do komentowanych ticketów, dzięki czemu komentowanie nie wciąga Kit w ruch powiadomień w twojej przestrzeni roboczej.

Status naprawy

Karta pokazuje własną etykietę statusu ticketu, w brzmieniu z twojej przestrzeni roboczej („In Review”, „Ready for QA”), bo dokładnie to widzi inżynier. Wewnętrznie Kit mapuje ją na jeden z pięciu stanów. Opiera się przy tym na stałych typach stanów workflow w Linear, a nie na ich nazwach — nazwy to dowolny tekst, inny w każdym zespole, a typy się nie zmieniają:

Typ stanu w Linear Status naprawy w Kit
Triage, Backlog, Unstarted Nierozpoczęte
Started W toku
Completed Naprawione
Canceled, Duplicate Nie zostanie naprawione

Duplikat liczy się jako Nie zostanie naprawione, a nie Naprawione — taki ticket zamknięto bez żadnej naprawy, więc liczenie go jako ukończonego zawyżałoby wskaźnik napraw.

Status jest odczytywany na żądanie, kiedy ktoś otwiera zgłoszenie, i krótko buforowany, żeby wyświetlenie zgłoszenia nie generowało lawiny zapytań do API. Webhooków na razie nie ma: Kit odpytuje, Linear niczego nie wypycha.

Kit nigdy nie rozwiązuje zgłoszenia tylko dlatego, że w Linear pojawiło się „Done”. Na tablicy inżynierskiej „Done” regularnie znaczy „scalone, ale nie wdrożone”, a rozwiązanie zgłoszenia pociąga za sobą skutki, których osoba przeciągająca kartę wcale nie musi mieć na myśli: badacz dostaje powiadomienie, otwiera się proces wypłaty nagrody, ruszają liczniki ujawnienia. Kit pokazuje ukończony ticket, a decyzję zostawia człowiekowi.

Odpinanie i ponowne próby

  • Odepnij usuwa powiązanie wyłącznie po stronie Kit. Ticket zostaje w Linear, gdzie może już mieć komentarze inżynierów i gałąź z poprawką. Tam Kit nie jest systemem źródłowym.
  • Spróbuj ponownie powtarza nieudane wysłanie. Można nacisnąć dwa razy bez obaw: Kit sam generuje identyfikator ticketu i wysyła ten sam przy każdej próbie. Jeśli zapytanie przekroczyło limit czasu już po tym, jak ticket powstał w Linear, kolejna próba podłączy istniejący zamiast tworzyć drugi.
  • Rozłączenie integracji usuwa przechowywaną w Kit zgodę i powiązane z nią wpisy. Wszystkie utworzone wcześniej tickety zostają w Linear.

Rozwiązywanie problemów

Objaw Przyczyna Rozwiązanie
„Połączyć Kit może tylko administrator przestrzeni roboczej w Linear” Krok łączenia wykonał zwykły członek Poproś o ten krok administratora przestrzeni roboczej
„Dostęp do Linear został cofnięty” Zgoda została cofnięta w Linear albo autoryzujący użytkownik został dezaktywowany Połącz ponownie na stronie ustawień; autoryzacji może udzielić inny administrator
„W odpowiedzi z Linear zabrakło przestrzeni roboczej” Autoryzacja zakończyła się bez przyznania dostępu do przestrzeni roboczej Połącz ponownie po zalogowaniu do właściwej przestrzeni roboczej
„Nie znaleziono zespołów w tej przestrzeni roboczej Linear” Połączone konto nie należy do żadnego widocznego zespołu Sprawdź przynależność tego konta do zespołów i spróbuj ponownie
Nie widać przycisku Utwórz ticket Żaden tracker nie jest połączony albo dodatek VDP jest nieaktywny Połącz tracker w VDP > Ustawienia > Tracker ticketów

Checklist

  • Dodatek VDP aktywny na koncie
  • Ewentualne wcześniejsze połączenie z Jira rozłączone — jeden tracker na program
  • Administrator przestrzeni roboczej Linear dostępny, żeby wykonać krok łączenia
  • Przestrzeń robocza połączona i wiadomo, kto udzielił autoryzacji
  • Wybrany docelowy zespół
  • Test połączenia kończy się powodzeniem
  • Świadoma decyzja, czy pełne szczegóły podatności mogą być udostępniane

Wpisz, aby wyszukać...