Każda krawędź w mapie dostępu niesie dwa niezależne fakty: czy dostęp jest dozwolony i czy został zaobserwowany. Różnica między tymi dwiema warstwami jest wyróżnikiem — to ona zmienia statyczny graf w odkrycie.
Dwie warstwy na jednej krawędzi
Mapa nie utrzymuje oddzielnego “grafu polityk” i “grafu telemetrii”. Każda krawędź to pojedyncza relacja (pochodzenie do zasobu, typowana odczyt lub odczyt-zapis), która niesie obie flagi:
- Dozwolone — nadanie lub polityka pozwala na ten dostęp. Źródłem sygnału jest sama zadeklarowana polityka.
- Obserwowane — dostęp faktycznie został zaobserwowany, wynikający z telemetrii i natywnego audytu (OpenTelemetry od kooperacyjnych agentów, PostgreSQL pgAudit, logi audytu chmury, backstop na poziomie jądra eBPF).
Jeden niuans istotny dla uczciwości: nie dozwolone oznacza “nie wiadomo, czy dozwolone”, a nie “zabronione”. Mapa rejestruje to, co może udowodnić z zadeklarowanych nadań; brak nadania to luka do zbadania, nie werdykt egzekucji.
Różnica: gdzie tkwi wartość
Dryf najniższych uprawnień to po prostu zbiór krawędzi, w których dwie flagi się nie zgadzają. Dzieli się na dwa operacyjnie odmienne odkrycia:
- Nieoczekiwany dostęp — obserwowany, ale nie dozwolony. Agent dotknął zasobu, którego żadne nadanie nie obejmuje. To połowa istotna dla bezpieczeństwa, ujawniana jako główne odkrycie.
- Nieużywane uprawnienia — dozwolone, ale nigdy nie zaobserwowane. Nadanie, z którego nikt nigdy nie skorzystał. To twoja konkretna lista do porządkowania najniższych uprawnień, a nie ogólne przypomnienie “przejrzyj swoje IAM”.
Krawędzie, w których obie flagi się zgadzają — dozwolone i używane, lub żadne z nich — to nudny, oczekiwany stan ustalony. Różnica to mały, akcjonowalny wycinek pomiędzy.
Uczciwości wewnątrz różnicy
Naiwna różnica produkuje fałszywe odkrycia, więc uzgodnienie jest celowo konserwatywne.
Oczekujące na uzgodnienie
Audyt przypisuje dostęp do poświadczenia lub roli; nadanie jest zapisane wobec
tożsamości; kooperacyjny sygnał nazywa agenta lub sesję. Gdy mapa dostępu nie może
jeszcze pewnie powiązać działającego agenta z tożsamością, dla której napisano
jego nadanie, nie może udowodnić, że dostęp jest dozwolony — ale nie może też
nagłówkować go jako naruszenie. Takie krawędzie są flagowane jako
reconciliation_pending: uczciwa niepewność, nie sfabrykowane odkrycie. Rozwiązują
się czysto, gdy tożsamość per-agent łączy poświadczenie z agentem.
Nadania na zasobach, których nikt nie obserwuje
Niektóre nadania dotyczą rodzajów zasobów, które nie mają kolektora po stronie obserwacji — nikt nie śledzi, kto faktycznie używał katalogu LDAP lub przypisania aplikacji IdP. Dla tych “nigdy nie zaobserwowane” to oczekiwany stan ustalony, a nie dowód nadmiernego uprawnienia. Są trzymane z dala od głównej listy nieużywanych nadań, zamiast zaśmiecać ją szumem.
Pokrycie i atrybucja nadal podróżują z krawędzią
Różnica dziedziczy warstwową wierność bazowych
krawędzi. Na magazynie opaque (Redis, SQLite, D1) nie ma żadnego pasywnego
sygnału odczyt/zapis, więc brak zaobserwowanej krawędzi nie jest dowodem, że
dostęp nie nastąpił — to cisza. Podobnie współdzielone konto serwisowe składa
atrybucję do approximate. Różnica nigdy nie przedstawia odkrycia o niskiej
pewności tak, jakby było pewne.
Gdy różnica jest obliczana na częściowym oknie (bardzo duża infrastruktura przekraczająca limit strony), wynik jest wyraźnie oznaczony jako częściowy, a nie prezentowany jako autorytatywny.
Detektywistyczny, nie na ścieżce
Produkowanie tej różnicy to czynność poza pasmem, detektywistyczna. Płaszczyzna kontrolna działa w twojej własnej infrastrukturze (i może być izolowana sieciowo); obserwuje przez logi, OpenTelemetry i natywny audyt i nie siedzi na ścieżce zadań między agentem a jego zasobami. Awaria kolektora nigdy nie przerywa ruchu produkcyjnego.
Wynikają z tego dwie konsekwencje. Po pierwsze, różnica to raport, nie brama: ujawnia to, co już się wydarzyło. Tam, gdzie produkt działa na podstawie odkrycia, robi to domyślnie odrzucając i na żądanie — nigdy jako ogólny wykonawca. Po drugie, czytanie różnicy samo w sobie jest uprzywilejowaną, ograniczoną do dzierżawcy, w pełni audytowaną akcją: akt sprawdzania kto-może-sięgnąć-co jest istotny rozpoznawczo, a odczyt jest rejestrowany w rejestrze audytu tylko-do-dopisywania zanim jakakolwiek krawędź zostanie zwrócona.
Dlatego też różnica jest bezpieczna do uruchamiania na wrażliwych infrastrukturach: mapa przechowuje relacje — pochodzenie, zasób, odczyt/zapis, źródło, pewność, znaczniki czasu — nigdy ładunków, treści SQL, sekretów czy PII, które płynęły przez krawędź. To, co nie jest przechowywane, nie może wyciec.
Powiązane
- Mapa dostępu odczyt/zapis — graf, na którym ta różnica działa.
- Wierność — jak wyprowadzane są poziomy pokrycia i atrybucji.
- Zarządzaj i zatwierdzaj — działanie na podstawie odkrycia.
- Prezentacja mapy dostępu — nakładka dozwolone-vs-obserwowane na prawdziwym przechwyceniu.