Gdzie kończy się ochrona Crunu
Szyfrowanie na twoich urządzeniach sprawia, że serwer nie może odczytać twoich sekretów. Nie usuwa jednak każdego ryzyka. Oto każde znane nam ograniczenie, wzięte z modelu zagrożeń samego produktu, i co z każdym zrobić.
Czego szyfrowanie na urządzeniach nie powstrzyma
Crunu odszyfrowuje na twoich urządzeniach, więc to, co kontroluje urządzenie albo uruchomioną na nim stronę, widzi to, co to urządzenie odszyfrowuje. Szyfrowanie nie cofnie też tego, co ktoś już zobaczył.
- Zmodyfikowana strona mogłaby przechwycić twoje hasło i Secret Key.Strona app.crunu.com pochodzi z serwera, więc serwer, do którego się włamano lub który prowadzi ktoś w złej wierze, mógłby wysłać stronę zapisującą to, co wpisujesz. Aplikacja przy każdym ładowaniu sprawdza się względem podpisanego manifestu Crunu, ale to sprawdzenie działa w tej samej stronie. Na app.crunu.com w tej kwestii ufasz Crunu i jego hostingowi; na własnym serwerze – temu, kto go prowadzi. Co zrobić: jeśli aplikacja ostrzega „Build signature doesn’t match: do not enter your password”, nie wpisuj hasła, a jeśli strona musi pochodzić z kontrolowanej przez ciebie infrastruktury, prowadź własny serwer.
- Tego, co ktoś zobaczył, nie da się cofnąć.Usunięcie osoby lub odebranie dostępu maszynie wymienia klucze, więc nie odczyta ona niczego nowego. Wartości, które już widziała, nadal działają wszędzie tam, gdzie są ważne. Co zrobić: użyj Remove from organization, przejdź przez listę wartości do ponownego wygenerowania i wygeneruj każdą z nich ponownie u jej dostawcy, zaczynając od najważniejszych.
- Kto kontroluje urządzenie lub maszynę, widzi to, co ono odszyfrowuje.Złośliwe oprogramowanie, rozszerzenie przeglądarki albo root na twoim komputerze może odczytać to, co zostało na nim odszyfrowane. Root na maszynie z agentem widzi wszystko, co do niej dostarczono, a działający program zachowuje swoje zmienne do ponownego uruchomienia. Co zrobić: używaj urządzeń, które kontrolujesz, dawaj maszynom tylko to, co uruchamiają, a po przejęciu użyj Device compromised lub odbierz maszynie dostęp, a potem wygeneruj jej wartości ponownie.
Co serwer nadal może zrobić
Na app.crunu.com serwer prowadzi Crunu, a na twoim własnym – jego operator. W obu przypadkach te ograniczenia obejmują też każdego, kto się do niego włamie. Serwer nie może odczytać twoich środowisk, ale nie jest bezsilny.
- Widzi metadane.Serwer odczytuje nazwy organizacji, projektów, środowisk, maszyn i ludzi, adresy e-mail, dziennik audytu, to, kto otrzymał którą wersję i skąd, oraz czas i rozmiar każdej wersji. Nic wewnątrz środowiska – nawet nazw zmiennych ani plików. Co zrobić: nie umieszczaj sekretów w nazwach. Projekt nazwany od nieogłoszonej transakcji zdradza serwerowi tę transakcję.
- Może odmówić usługi albo pominąć zapisy.Serwer może przestać odpowiadać albo twierdzić, że nigdy nie dostał zmiany, a szyfrowanie nie zmusi go do obsługi. Co zrobić: co jakiś czas pobieraj kopię offline. Otwiera się twoim hasłem i Secret Key, bez żadnego serwera. Na własnym serwerze eksportuj bazę danych codziennie. We wczesnym dostępie app.crunu.com nie ma zobowiązań co do dostępności.
- Mógłby pokazać nowemu urządzeniu stary obraz twojej organizacji.Twoje urządzenia odrzucają wszystko, co starsze od tego, co już zaakceptowały, ale zupełnie nowe urządzenie nie ma z czym porównać. Przejęty serwer we współpracy z kimś, kogo usunięto, mógłby pokazać mu organizację taką, jaka była przed usunięciem. Crunu nie zamknie tego w pełni bez zewnętrznego źródła aktualności. Co zrobić: na nowym urządzeniu użyj Compare with your other devices w Organization settings, a jeśli liczby się różnią, nic z niego nie zapisuj i powiadom właściciela.
- Reguły sieciowe to jego reguły, a nie szyfrowanie.Przejęty serwer może zignorować ograniczenie IP. Wszyscy za tym samym NAT lub proxy mają jeden adres, więc wszyscy liczą się jako wewnątrz, a zawartość dostarczona przed ograniczeniem zostaje tam, dokąd trafiła. Co zrobić: stosuj reguły sieciowe jako dodatek do wąskiego dostępu, wiąż tokeny CI przez OIDC zamiast polegać na zakresach IP runnerów, a po zaostrzeniu reguły wygeneruj ponownie wartości, które już wyszły.
Odzyskiwanie ma twarde granice
Serwer nigdy nie ma twojego hasła ani Secret Key, więc nikt nie może ich za ciebie zresetować. O drogi powrotu dbasz samodzielnie, a otwierają one więcej, niż mogłoby się wydawać.
- Nikt nie zresetuje twojego hasła.Jeśli stracisz hasło, Secret Key i kod odzyskiwania, nikt nie otworzy twojego konta, łącznie z nami. Jeśli wszyscy właściciele i administratorzy stracą dostęp, nie zostanie nikt, kto zarządzałby organizacją. Co zrobić: wydrukuj Emergency Kit i trzymaj go z dala od swoich urządzeń, utwórz kod odzyskiwania i miej co najmniej dwóch właścicieli lub administratorów.
- Kod odzyskiwania pomija drugi składnik.Otwiera konto po okresie oczekiwania, domyślnie po godzinie. Czas oczekiwania odmierza serwer i on wysyła alert, więc przejęty serwer we współpracy z kimś, kto ma twój kod, mógłby oddać dostęp od razu. Co zrobić: przechowuj kod osobno od Emergency Kit i urządzeń, a jeśli dostaniesz alert o odzyskiwaniu, które nie wyszło od ciebie, anuluj je i usuń kod.
- Właściciele i administratorzy mogą otworzyć wspólne środowiska.Każdy klucz wspólnego środowiska jest zaszyfrowany także dla klucza odzyskiwania organizacji, który mają właściciele i administratorzy. Dopóki włączone jest odzyskiwanie środowisk osobistych – a jest domyślnie – mogą też otwierać osobiste środowiska członków. Co zrobić: ogranicz te role do kilku osób, które prowadzą organizację. Właściciel może wyłączyć odzyskiwanie środowisk osobistych, ale wtedy utracone konto traci swoje osobiste środowiska.
- Skradzione urządzenie ma twój Secret Key.Domyślnie przeglądarka przechowuje Secret Key, żeby nie trzeba było go wpisywać przy każdym logowaniu, więc ostatnią barierą zostaje hasło. Co zrobić: używaj silnego hasła, którego nie używasz nigdzie poza Crunu, ustaw krótką blokadę bezczynności, a z innego urządzenia usuń skradzione albo użyj Device compromised.
Jeśli prowadzisz własny serwer
Te punkty dotyczą tego, kto prowadzi serwer. Na app.crunu.com jest to Crunu. Jeden z nich dotyczy twoich urządzeń na każdym serwerze, także na app.crunu.com: przywrócenie bazy danych z kopii zapasowej cofa każdą zmianę wprowadzoną po jej wykonaniu.
- Bez poczty adresy w zaproszeniach nie są potwierdzane.Serwer bez skonfigurowanej poczty nie może wysłać kodu potwierdzającego adres w zaproszeniu, więc ktoś mógłby przejąć cudzy adres. Porównanie odcisku klucza nadal nie wpuści klucza obcej osoby. app.crunu.com ma skonfigurowaną pocztę. Co zrobić: ustaw
RESEND_API_KEYiALERT_EMAIL_FROM, zanim zaprosisz osoby spoza zespołu, i zawsze porównuj odcisk klucza. SERVER_KEYto własny sekret serwera.Podpisuje sesje, linki dostępu i zaproszenia oraz szyfruje sekrety aplikacji uwierzytelniających, ale nie twoje środowiska. Jego utrata wylogowuje wszystkich i psuje linki dostępu. Jeśli wycieknie razem z kopią bazy danych, osłabia kody z aplikacji uwierzytelniających. Co zrobić: trzymaj plik.envw menedżerze haseł, osobno od kopii zapasowych, i wymieniaj klucz zgodnie z opisaną procedurą.- Przywrócenie cofa wszystko.Przywrócenie kopii zapasowej cofa każdą późniejszą zmianę, a urządzenia, które widziały nowsze dane, zgłaszają cofnięcie i odrzucają te środowiska, dopóki ich zapisany stan nie zostanie zresetowany. Co zrobić: rób kopię zapasową codziennie, resetuj agentów i przeglądarki tylko po przywróceniu przeprowadzonym przez ciebie, a ostrzeżenie o cofnięciu bez takiego przywrócenia traktuj jako sygnał alarmowy.
- Starannie wybierz adres i platformę.Podpisy logowania, linki dostępu, klucze dostępu i agenci są powiązani z adresem serwera, więc nie da się go później zmienić. W darmowym planie Cloudflare Workers żądanie dostaje 10 ms czasu procesora, a na Google Cloud Run i AWS App Runner niektóre alerty przychodzą z opóźnieniem. AWS zamknął App Runner dla nowych klientów. Co zrobić: użyj domeny, którą zachowasz, dla zespołu planu Workers Paid, a jeśli te alerty są ważne – platformy z harmonogramem zadań.
Czego w Crunu nie ma z założenia albo jeszcze nie ma
Niektórych rzeczy Crunu nie robi. Jednej nie będzie robić nigdy, bo wymagałaby kluczy na serwerze. Pozostałych dziś brakuje, więc uwzględnij to w planach.
- Brak sekretów dynamicznych.Crunu nie tworzy na żądanie krótkotrwałych haseł do baz danych ani danych dostępowych do chmury. To wymaga kluczy na serwerze, a Crunu jest zbudowane właśnie tak, żeby ich nie mieć – i to się nie zmieni. Co zrobić: korzystaj z krótkotrwałych danych dostępowych dostawcy tam, gdzie je oferuje.
- Brak automatycznego ponownego generowania u dostawców.Rotacja w Crunu zmienia klucze szyfrowania. Same wartości generujesz ponownie u każdego dostawcy ręcznie, według listy kontrolnej. Co zrobić: generuj ponownie długoterminowe dane dostępowe według harmonogramu i zapisuj każdą nową wartość jako nową wersję.
- Brak dostępu na czas określony dla ludzi.Dostęp do środowiska nie ma daty wygaśnięcia. Termin ważności mają zaproszenia, linki dostępu, tokeny usługowe, dzierżawy maszyn i dostęp awaryjny. Co zrobić: sprawdzaj, kto ma dostęp do production, gdy ludzie zmieniają role, a do jednorazowych potrzeb używaj linku dostępu z terminem ważności.
Pytania o te ograniczenia
Czy pracownicy Crunu mogą odczytać moje sekrety?
Nie. Na app.crunu.com serwer prowadzi Crunu, a serwer ma tylko zaszyfrowane dane i żadnego klucza do ich odszyfrowania. Widzimy metadane, takie jak nazwy, adresy e-mail i dziennik audytu, wymienione w Polityce prywatności. Dotarcie do twoich wartości wymagałoby zmiany kodu działającego na twoim urządzeniu – to pierwsze ograniczenie na tej stronie.
Czy własny serwer usuwa te ograniczenia?
Część z nich przechodzi na ciebie. Decydujesz, kto prowadzi serwer, który wysyła stronę i widzi metadane, i bierzesz na siebie ograniczenia z części „Jeśli prowadzisz własny serwer”. Ograniczenia na twoich urządzeniach pozostają takie same.
Dlaczego nie możecie zresetować mojego hasła?
Klucz twojego konta jest wyprowadzany na twoim urządzeniu z hasła i Secret Key, a my nigdy nie dostajemy żadnego z nich. To właśnie sprawia, że nie możemy odczytać twoich danych. Drogą powrotu są Emergency Kit i kod odzyskiwania.
Co zrobić najpierw, gdy ktoś odchodzi?
Usuń tę osobę z organizacji. Crunu przestaje wydawać jej dane i wymienia każdy klucz, który miała. Potem przejdź przez listę kontrolną i wygeneruj ponownie u każdego dostawcy wartości, które widziała.
Czy Crunu doda sekrety dynamiczne?
Nie. Tworzenie danych dostępowych na żądanie wymaga kluczy na serwerze, a Crunu jest zbudowane tak, żeby serwer nigdy ich nie miał.
Znasz ograniczenie, którego nie ma na tej stronie?
Napisz na security@crunu.com. Wolimy wymienić je tutaj, niż narazić cię na odkrycie go na własnej skórze.
Umieść sekrety zespołu tam, gdzie serwer ich nie odczyta
Załóż konto na app.crunu.com. Twoje klucze powstają w przeglądarce, a serwer dostaje tylko zaszyfrowane dane.