Zakres tokenu zmienia ryzyko automatyzacji serwera domowego, określając, jakie działania, zasoby, interfejsy API i systemy zależne może autoryzować skradzione poświadczenie.
Automatyzacje często potrzebują poświadczeń do magazynowania plików, DNS, powiadomień, urządzeń inteligentnego domu, kopii zapasowych w chmurze, kalendarzy, repozytoriów kodu i narzędzi AI. Globalny token administratora ułatwia konfigurację, ponieważ każdy przepływ pracy działa poprawnie, ale jednocześnie zamienia pojedynczą ujawnioną zmienną środowiskową, linię dziennika, wtyczkę lub przejęty kontener w uprawnienia do niezwiązanych ze sobą usług. Zakresy ograniczają te uprawnienia, zanim dojdzie do przejęcia. Poniższe sekcje rozdzielają zakres działań, odbiorców zasobów, czas życia tokenu, uprawnienia do odświeżania, tożsamość oraz testowanie odmowy dostępu.
Token typu bearer przekazuje uprawnienia każdemu, kto go posiada
Większość tokenów automatyzacji to poświadczenia typu bearer: odbierający interfejs API autoryzuje żądanie, ponieważ token został prawidłowo przedstawiony, a nie dlatego, że wie, który proces pierwotnie go uzyskał.
Tokeny dostępu OAuth reprezentują delegowane uprawnienia do chronionych zasobów. Jeśli atakujący wyodrębni token z pliku z sekretami, zmiennej środowiskowej, kopii zapasowej, sesji przeglądarki lub dziennika aplikacji, rzeczywiste ryzyko obejmuje pełny zakres uprawnień zakodowany w tych poświadczeniach lub z nimi powiązany.
Ochrona tokenu podczas przechowywania ma znaczenie, ale ograniczenie tego, co token może robić, zmniejsza szkody w przypadku niepowodzenia tej ochrony.
Zakresy działań oddzielają odczyt od operacji destrukcyjnych
Przepływ pracy, który wyświetla listę plików, nie musi mieć uprawnień do usuwania udziałów, zmiany użytkowników, rotacji kluczy ani administrowania usługą magazynowania. Zakresy wyrażają tę różnicę, gdy interfejs API oferuje wystarczająco szczegółowe uprawnienia.
Auth0 opisuje zakresy z minimalnymi uprawnieniami jako uprawnienia dostosowane do zadania biznesowego klienta. Automatyzacja powiadomień może potrzebować uprawnień do wysyłania wiadomości tylko na jednym kanale, podczas gdy weryfikator kopii zapasowej może potrzebować dostępu tylko do odczytu jednego repozytorium i żadnych uprawnień do zapisu.
Nie traktuj nazwy zakresu jako dowodu bezpieczeństwa. Sprawdź, które metody interfejsu API i zasoby faktycznie autoryzuje, w tym działania dziedziczone lub równoważne uprawnieniom administratora.
Oddziel zmiany wysokiego ryzyka do innego tokenu, który wymaga wyraźnej akceptacji lub działa wyłącznie w ramach wąskiego przepływu konserwacyjnego.
Ograniczenia odbiorcy decydują, która usługa akceptuje token
Token może obejmować niewiele działań, a mimo to pozostawać niebezpieczny, gdy akceptuje go kilka interfejsów API. Ograniczenia odbiorcy lub zasobu wiążą poświadczenie z przeznaczoną dla niego usługą.
Wskaźniki zasobów OAuth pomagają wydawać tokeny ograniczone do określonego odbiorcy, dzięki czemu poświadczenie przeznaczone dla jednego interfejsu API nie może być automatycznie używane wobec innego. Każdy serwer zasobów musi sprawdzać, czy jest zamierzonym odbiorcą.
Ma to znaczenie na serwerze domowym, gdzie jeden dostawca tożsamości może wydawać tokeny do magazynowania, paneli, automatyzacji i usług AI. Token akceptowany wszędzie znosi granice między tymi usługami.
Czas życia i uprawnienia do odświeżania określają okres narażenia
Wąski token, który pozostaje ważny bezterminowo, stwarza długą możliwość nadużycia. Krótkotrwałe tokeny dostępu skracają czas po kradzieży, ale tokeny odświeżania lub stałe klucze API mogą po cichu przywrócić te uprawnienia.
Wytyczne dotyczące bezpieczeństwa OAuth traktują czas życia tokenu jako mechanizm kontroli narażenia. Projekt automatyzacji musi również określać, gdzie następuje odnowienie, jaka tożsamość może o nie poprosić oraz czy odwołanie uprawnień obejmuje już wydane tokeny.
Stałych poświadczeń używaj tylko wtedy, gdy interfejs API nie oferuje bezpieczniejszego mechanizmu tożsamości maszynowej. Regularnie je zmieniaj, zapisuj informacje o właścicielu i spraw, aby proces wymiany był rutynowy, a nie awaryjny.
Jeden globalny token omija granice danych poszczególnych użytkowników
Automatyzacja może służyć kilku członkom rodziny, korzystając z jednego poświadczenia zaplecza. Jeśli ten token umożliwia odczyt każdej biblioteki lub konta, rozdzielenie użytkowników na poziomie aplikacji staje się pozorne.
Wyjaśnienie ZimaSpace dotyczące izolacji kontekstu poszczególnych użytkowników wskazuje, że globalny token może stać się sposobem na obejście uprawnień, których użytkownicy oczekują od pierwotnej usługi. W miarę możliwości zachowaj tożsamość inicjującą operację albo wymień ją na token usługi zależnej o węższym zakresie i ograniczonym odbiorcy.
Konta usług są odpowiednie do wspólnych zadań konserwacyjnych, ale ich zasoby należy wyraźnie oddzielić od osobistych bibliotek i elementów sterujących administratora.
Projekt zakresu trzeba weryfikować za pomocą działań odrzuconych
Wymień każdy etap automatyzacji, wywoływany interfejs API, używany obiekt, wykonywane działanie oraz informację, czy uprawnienie jest stale wymagane. Wydawaj osobny token dla każdej odrębnej roli zaufania, a nie dla każdego pliku skryptu.
Curity zaleca zarządzanie granicami zakresów, które pozostają zrozumiałe w miarę rozwoju interfejsów API. Sprawdź, czy zamierzone wywołanie kończy się powodzeniem, a następnie spróbuj wykonać niezwiązane odczyty, zapisy, operacje administracyjne oraz wywołanie dotyczące innego odbiorcy API, aby potwierdzić, że zostaną odrzucone.
Rejestruj tożsamość tokenu i przyznany zakres, ale nie zapisuj wartości tokenu. Alerty powinny wykrywać sytuacje, w których automatyzacja niskiego ryzyka nagle wywołuje punkty końcowe wysokiego ryzyka lub nietypowe zasoby.
Bezpieczny token to nie ten, który ułatwia każdy przyszły przepływ pracy; to ten, którego niewłaściwe użycie prowadzi do akceptowalnego i udokumentowanego maksymalnego skutku.
Najczęściej zadawane pytania
Czy token tylko do odczytu jest zawsze bezpieczny?
Nie. Szeroki dostęp tylko do odczytu może ujawnić prywatne pliki, dzienniki, tożsamości i sekrety. Zakres zasobów i odbiorca nadal mają znaczenie, nawet gdy operacje zapisu są zablokowane.
Czy każda automatyzacja powinna mieć własny token?
Używaj osobnych tokenów dla różnych ról zaufania, właścicieli, zasobów lub poziomów ryzyka. Niewielkie skrypty o identycznym przeznaczeniu mogą współdzielić jedną zarządzaną tożsamość usługi, jeśli własność i rotacja pozostają jasno określone.
Czy rotacja tokenu natychmiast unieważnia skradziony token?
Tylko wtedy, gdy system odwołuje stare poświadczenie lub przestaje je akceptować. Wcześniej wydane tokeny dostępu mogą pozostać ważne do czasu wygaśnięcia, chyba że serwer zasobów sprawdza stan odwołania.
Centrum Technologii i Sztucznej Inteligencji
Więcej do przeczytania

Stan bieżący a stan trwały w Home Assistant: co musi przetrwać ponowne uruchomienie?
Home Assistant nie zachowuje trwale każdej bieżącej wartości; konfiguracja, rejestry, wybrane przywracane stany, historia i dane wdrożeniowe pełnią różne funkcje podczas ponownego uruchamiania.

Jak Home Assistant uwierzytelnia sesje lokalne i zdalne?
Lokalne i zdalne sesje Home Assistant korzystają z tego samego modelu tożsamości po stronie serwera; zdalny dostęp zmienia trasę i granicę TLS, ale nie...

Dlaczego zapytania do historii Home Assistant mogą zwalniać w miarę przyrostu danych rejestratora?
Wzrost liczby rekordów może zwiększyć koszt zapytań do historii, gdy żądany zakres obejmuje więcej wierszy, rośnie liczba chybień pamięci podręcznej lub operacje na pamięci...

