Bezpieczeństwo i codzienna praca - Mattermost
Na tej stronie Zakres: konto i projekt
Zakres: konto i projekt
Konfiguracja Mattermost żyje w dwóch zakresach. Konto trzyma ustawienie domyślne dla wszystkich projektów subskrybenta. Projekt dziedziczy je automatycznie, ale dla każdego rodzaju zdarzenia może jawnie wybrać własny kanał albo wyłączyć wysyłkę - niezależnie od reszty konta. Jest też zakres platformowy, bez przypisanego konta: obsługuje wyłącznie projekty konta wewnętrznego Docka, subskrybent nigdy z niego nie korzysta.
Kto ma dostęp
Ekran wymaga uprawnienia do zarządzania projektami - mają je role developer, admin i owner (oraz superdeveloper dla kont wewnętrznych). To ta sama macierz co przy edycji samych projektów.
Jak przechowywany jest adres webhooka
Adres jest szyfrowany w bazie i nigdy nie wraca do formularza jawnym tekstem - puste pole przy zapisie oznacza „zostaw to, co jest'', nie „wyczyść''. Żeby faktycznie usunąć integrację, wyłącz dostawcę, zamiast tylko opróżniać pole.
Dlaczego adres webhooka jest tak dokładnie sprawdzany
Webhook to adres, pod który DockRay sam wysyła żądanie - w odróżnieniu od tokenu Slacka, który tylko uwierzytelnia wywołanie do stałego API. Pole z dowolnym adresem, które aplikacja sama odpytuje, jest klasycznym wektorem SSRF: bez kontroli dałoby się nim kazać serwerowi DockRay odpytać własną sieć wewnętrzną z uprawnieniami roli developer. Dlatego adres przechodzi tę samą walidację, co issuer firmowego SSO: musi być publicznym HTTPS, bez poświadczeń wpisanych w adres, a rozwiązanie DNS-u nie może wskazywać na adres prywatny ani zarezerwowany. Przy samej wysyłce DockRay nie podąża za przekierowaniami - inaczej sprawdzony adres i adres, pod który faktycznie trafia żądanie, mogłyby być dwiema różnymi rzeczami.
Jak nie zalać zespołu powiadomieniami
Pięć rodzajów zdarzeń to pięć niezależnych przełączników - rozdziel je na osobne kanały zamiast kierować wszystko na jeden ogólny. Nagły wzrost liczby błędów (error-spike) ma dodatkowy bezpiecznik niezależny od tej integracji: wykrywany co 15 minut, ale wysyłany dla tego samego projektu najwyżej raz na kilka godzin.
Wymiana webhooka
Webhooki Mattermost nie mają rotacji w sensie tokenu - w razie podejrzenia wycieku usuń stary webhook w ustawieniach kanału Mattermost i utwórz nowy. Nowy adres wklej w DockRay i wyślij test, zanim uznasz sprawę za zamkniętą - stary adres po usunięciu po stronie Mattermosta po prostu przestaje działać, więc lepiej to sprawdzić, niż zgadywać.
Odejście osoby z zespołu
Webhook nie jest przypisany do konkretnego konta użytkownika Mattermost, więc odejście kogoś z zespołu nie unieważnia go automatycznie. Jeśli ta osoba administrowała integracjami i mogła zobaczyć adres webhooka, potraktuj to jak podejrzenie wycieku i wymień go opisanym wyżej sposobem.