Blog 24/7

zasada najmniejszych uprawnień

TAB. 1Hasłopo polsku
Po angielskuprinciple of least privilege
Którą formą pisaćpo polsku Polska nazwa przyjęła się w tekstach i w wyszukiwarce — używaj jej samodzielnie.
Inne formyzasada minimalnych uprawnień
KategoriaKryptografia, tożsamość i uwierzytelnianie

Zasada najmniejszych uprawnień to reguła nadawania każdemu użytkownikowi, procesowi i usłudze tylko tych uprawnień, które są niezbędne do wykonania zadania, i tylko na czas jego trwania. NIST definiuje ją jako zasadę bezpieczeństwa, według której system ogranicza uprawnienia użytkowników i działających w ich imieniu procesów do minimum potrzebnego do wykonania powierzonych zadań [1]. Zasada dotyczy ludzi, kont serwisowych, kluczy API, baz danych i plików. Jest jednym z fundamentów modelu Zero Trust. W publikacji SP 800-53 Rev. 5 NIST ujmuje ją od strony architektury: każdy podmiot dostaje minimum zasobów systemowych i autoryzacji potrzebnych do pełnienia swojej funkcji [1].

Jak działa

Zasada odwraca domyślne podejście. Zamiast odbierać zbędne prawa, zaczyna się od zera i dodaje tylko potrzebne. OWASP ujmuje to jako przydzielanie użytkownikom minimalnych uprawnień koniecznych do wykonania pracy [4]. Zaleca też, by aplikacja domyślnie odmawiała dostępu [4]. Każde nadane uprawnienie powinno mieć uzasadnienie.

OWASP podkreśla, że zasada obowiązuje w dwóch wymiarach: poziomym i pionowym [4]. W poziomie osoby o różnych funkcjach potrzebują dostępu do różnych zasobów. W pionie różnica dotyczy zakresu uprawnień na kolejnych szczeblach.

Cykl stosowania zasady pokazuje schemat poniżej.

RYS. 1Utrzymanie najmniejszych uprawnień

MITRE w opisie słabości CWE-250 zaleca podnosić uprawnienia jak najpóźniej i porzucać je jak najwcześniej [2]. Kod wymagający wyższych uprawnień warto wydzielić i scentralizować, a dane wejściowe do niego sprawdzać szczególnie starannie [2]. Na tej idei opiera się dostęp just-in-time.

Zastosowania

Zasada ma zastosowanie na każdej warstwie systemu. Tabela zestawia typowe przykłady.

ObszarNadmiar uprawnieńStan zgodny z zasadą
Administratorzypełny dostęp „na wszelki wypadek” [3]monitoring tylko z odczytem statusu i logów [3]
Konto do codziennej pracypraca stale na koncie uprzywilejowanym [3]osobne konto administracyjne [3]
Linuxstała praca jako root [3]sudo z ograniczoną listą poleceń [3]
Baza danych WordPressaprawa DROP, ALTER, GRANT [6]SELECT, INSERT, UPDATE, DELETE [6]
Tokeny OAuthtoken bez ograniczenia zakresutoken ograniczony do zasobów i akcji [7]

CERT Polska podaje przykład podziału: osobie od monitoringu wystarczy odczyt statusu i logów, operatorowi helpdesku prawo do odblokowania konta, a administratorowi aplikacji dostęp do jednej usługi [3]. Administrator jednego systemu nie powinien mieć dostępu do administracji innymi [3]. Typowy podział obejmuje trzy funkcje: operatora z dostępem tylko do odczytu, administratora zmieniającego konfigurację w wyznaczonym obszarze i audytora z wglądem w logi oraz historię zmian [3]. W systemach Windows tę samą ideę realizują delegacja uprawnień, Just Enough Administration i mechanizmy dostępu czasowego [3]. Organizacyjnym narzędziem zasady jest zarządzanie dostępem uprzywilejowanym (PAM), a technicznym model ról, taki jak RBAC.

W WordPressie

WordPress ma sześć predefiniowanych ról, od superadministratora po subskrybenta, a każda kolejna ma mniej uprawnień [5]. Subskrybent ma tylko uprawnienie read [5]. Typowe naruszenie zasady to nadawanie roli administratora osobom, które tylko piszą teksty. Wystarczy im rola autora albo współpracownika. Opis ról zawiera hasło role i uprawnienia użytkowników.

Na szczególną uwagę zasługuje uprawnienie unfiltered_html. Pozwala publikować HTML, a nawet JavaScript, a dokumentacja ostrzega, że nadanie go niezaufanym użytkownikom może skończyć się publikacją złośliwego kodu [5].

Zasada dotyczy też warstwy serwera. Podręcznik utwardzania WordPressa podaje, że użytkownik bazy danych MySQL potrzebuje tylko praw odczytu i zapisu: SELECT, INSERT, UPDATE i DELETE [6]. Prawa do struktury i administracji, takie jak DROP, ALTER i GRANT, można odebrać [6]. Podręcznik zastrzega, że aktualizacje wtyczek i głównych wersji WordPressa mogą wymagać zmian w schemacie bazy [6]. Pliki powinny należeć do konta użytkownika i być zapisywalne przez to konto [6]; zob. uprawnienia plików.

-- konto aplikacji WordPress tylko z prawami do danych
GRANT SELECT, INSERT, UPDATE, DELETE ON wp_example.* TO 'wp_app'@'localhost';

Tę samą logikę stosuje się do haseł aplikacji i kluczy integracji. Integracja, która tylko publikuje wpisy, powinna działać na koncie z rolą autora, a nie administratora.

Zagrożenia i skutki

MITRE opisuje CWE-250 jako wykonywanie operacji na poziomie uprawnień wyższym niż wymagane, co tworzy nowe słabości albo wzmacnia skutki innych [2]. Atakujący, który przejmie taki proces, uzyskuje dostęp do wszystkiego, na co pozwalają podwyższone uprawnienia: może wykonywać kod, wyłączać usługi i czytać zastrzeżone dane [2]. CERT Polska ujmuje to krótko: przydzielanie pełnych uprawnień „na wszelki wypadek” powiększa skutki każdej pomyłki i każdego przejętego konta [3].

Na stronie WordPress nadmiar uprawnień zamienia drobny błąd w poważny incydent. Przejęcie konta autora daje dostęp do wpisów. Przejęcie konta administratora daje dostęp do instalacji wtyczek i edytora plików, a przez nie do serwera. Zasada ogranicza też lateral movement i skutki eskalacji uprawnień.

Dobre praktyki

  • Każdy administrator ma indywidualne konto, a konto do codziennej pracy jest oddzielone od administracyjnego [3].
  • Kod działa z najniższymi uprawnieniami potrzebnymi do zadania, najlepiej na wydzielonych kontach o jednym przeznaczeniu [2].
  • Tokeny dostępu są ograniczone do konkretnego serwera zasobów oraz konkretnych zasobów i akcji [7].
  • Uprawnienia są sprawdzane przy każdym żądaniu [4]; w kodzie wtyczek służy do tego weryfikacja uprawnień.
  • Lista kont z wysokimi rolami jest regularnie przeglądana, a nieużywane konta są usuwane.

Zasada nie zastępuje innych zabezpieczeń. Zmniejsza powierzchnię ataku i ogranicza szkody, gdy inne zabezpieczenia zawiodą.

TAB. 2

Przypisy

7
  1. [1] least privilege — Glossary · NIST CSRC
  2. [2] CWE-250: Execution with Unnecessary Privileges · MITRE
  3. [3] Konfiguracja bezpiecznego dostępu administratora · CERT Polska
  4. [4] Authorization Cheat Sheet · OWASP
  5. [5] Roles and Capabilities · WordPress.org
  6. [6] Hardening WordPress — Advanced Administration Handbook · WordPress.org
  7. [7] Best Current Practice for OAuth 2.0 Security (RFC 9700) · IETF
TAB. 3

Hasła w tym artykule

14
TAB. 4

Linkują tutaj

95

Wszystkie kategorie → · Hasło w słowniku →

Blog 24/7
05.11CISA i FBI wzywają do zabezpieczenia sterowników chłodzenia po atakach w Europietherecord.media05.11Midnight Blizzard atakowała iPhone'y i Androidy przez zainfekowane strony w Europie i USAsecurityweek.com05.11APT29 kradła dane z iPhone'ów i Androidów przez przejęte i podrobione stronytherecord.media05.11Grupa APT29 przejęła skrypt Plerdy i atakowała niezałatane iPhone'y i Androidythehackernews.com05.11Microsoft wykrył 7,3 mld wiadomości phishingowych w III kwartale 2026microsoft.com05.11DigiCert ujawnia wyciek danych klientów i skanów dokumentów tożsamościbleepingcomputer.com05.11CWPdoor podmienia serwer cwpsrv w Control Web Panel i otwiera tylne wejście do Linuksableepingcomputer.com05.11Brytyjskie NCSC ostrzega, że narzędzia AI zwiększyły liczbę wykrywanych luk zero-daythehackernews.com05.11Skaner RootEvidence sprawdza starą lukę w Cisco IOS i dodaje nagłówki Opt-Outisc.sans.edu05.11Włamanie do portalu grantowego Norad, zagrożone dane 20 614 użytkownikówhelpnetsecurity.com