Luki w systemie PAM (Pluggable Authentication Modules): Jak ominąć uwierzytelnianie w Linuxie
Cyberbezpieczeństwo Linux

Luki w systemie PAM (Pluggable Authentication Modules): Jak ominąć uwierzytelnianie w Linuxie

🔐 Luki w systemie PAM (Pluggable Authentication Modules): Jak ominąć uwierzytelnianie w Linuxie


🧭 Wprowadzenie

Współczesne systemy operacyjne muszą zapewniać zarówno elastyczność, jak i bezpieczeństwo w zakresie mechanizmów uwierzytelniania. W przypadku systemów opartych na Linuxie, kluczowym elementem tej infrastruktury jest PAM (Pluggable Authentication Modules) – modularny system pozwalający na łatwe zarządzanie procesami uwierzytelniania, autoryzacji oraz sesji użytkowników.

Pomimo swojej potężnej funkcjonalności, PAM nie jest wolny od podatności, które — przy odpowiednich warunkach — mogą zostać wykorzystane przez atakujących do obejścia procedur logowania, eskalacji uprawnień lub uzyskania trwałego dostępu do systemu. W tym artykule dokonamy głębokiej analizy architektury PAM, wskażemy znane i potencjalne luki bezpieczeństwa oraz omówimy metody ich wykorzystania w rzeczywistych scenariuszach.

Luki w systemie PAM (Pluggable Authentication Modules): Jak ominąć uwierzytelnianie w Linuxie
Luki w systemie PAM (Pluggable Authentication Modules): Jak ominąć uwierzytelnianie w Linuxie

🧩 Czym jest PAM?

PAM (Pluggable Authentication Modules) to warstwa abstrakcji między aplikacjami użytkownika a mechanizmami uwierzytelniania systemu. Umożliwia systemom Linux/Unix integrację różnych metod uwierzytelniania (np. hasła, odciski palców, tokeny sprzętowe, LDAP, Kerberos) bez konieczności ich bezpośredniego implementowania przez każdą aplikację.

Architektura PAM opiera się na czterech głównych filarach funkcjonalnych:

  • auth – uwierzytelnianie użytkownika (np. hasła)
  • account – sprawdzanie stanu konta (np. wygaśnięcie)
  • session – zarządzanie sesją logowania
  • password – zarządzanie zmianą hasła
Czytaj  Kernel Windows 11: Analiza podatności na ataki typu Ring 0. Jak hakerzy próbują przejąć pełną kontrolę nad systemem

Moduły PAM znajdują się zazwyczaj w katalogu /lib/security/ lub /lib64/security/, a konfiguracje — w /etc/pam.d/.


🚨 Znane luki w systemie PAM

🛠️ 1. CVE-2010-3316 – Błędna obsługa ustawień pam_namespace.so

Moduł pam_namespace.so, służący do izolowania przestrzeni nazw dla użytkowników, zawierał lukę umożliwiającą wykonanie dowolnego kodu z uprawnieniami roota w przypadku błędnej konfiguracji katalogów domowych. Choć nie jest to luka bezpośrednio w PAM, pokazuje, jak błędna konfiguracja jednego z jego modułów może prowadzić do eskalacji uprawnień.

🧨 2. CVE-2018-1050 – Atak przez symlinki na pam_motd.so

Moduł pam_motd.so wykorzystywany do wyświetlania komunikatu dnia (Message of the Day) ładował pliki z katalogów dostępnych dla użytkownika. Atakujący mógł utworzyć symlinki prowadzące do wrażliwych plików systemowych, co prowadziło do wycieku informacji lub wykonania kodu.

🧫 3. Nieuświadomione ryzyko w pam_exec.so

Moduł pam_exec.so pozwala na wykonywanie zewnętrznych skryptów jako część procesu uwierzytelniania. Jest to szczególnie niebezpieczne, jeśli skrypty nie są odpowiednio kontrolowane – możliwe jest podsunięcie złośliwego skryptu, który zostanie uruchomiony z uprawnieniami systemowymi.


🎯 Metody obchodzenia uwierzytelniania z wykorzystaniem PAM

🔓 1. Zamiana pliku konfiguracyjnego PAM

Zmieniając konfigurację plików w /etc/pam.d/, atakujący z odpowiednimi uprawnieniami może pominąć lub osłabić procesy uwierzytelniania. Przykład:

auth required pam_permit.so

Zamiast standardowej metody uwierzytelniania (np. pam_unix.so), użycie pam_permit.so spowoduje, że każde logowanie zostanie zaakceptowane, niezależnie od poprawności danych logowania.

🧬 2. Tworzenie własnych modułów PAM

Doświadczony atakujący może stworzyć i zainstalować własny moduł PAM, który np. loguje dane uwierzytelniające do ukrytego pliku lub zapewnia dostęp „tylnymi drzwiami” (backdoor).

// Przykład fragmentu kodu modułu PAM logującego hasła
pam_get_authtok(pamh, PAM_AUTHTOK, &password, NULL);
fprintf(logfile, "Password: %s\n", password);

🕳️ 3. Manipulacja zmiennymi środowiskowymi

Ataki typu LD_PRELOAD pozwalają na podstawienie złośliwej biblioteki dynamicznej, która modyfikuje zachowanie procesu logowania.

Czytaj  Diagnostyka dysku twardego Linux program

🛡️ Jak chronić system PAM?

✅ 1. Ograniczenie dostępu do plików konfiguracyjnych

Ustaw odpowiednie prawa dostępu do katalogów /etc/pam.d/ oraz /lib/security/, aby tylko root mógł je modyfikować.

chmod 600 /etc/pam.d/*
chmod 700 /lib/security/

✅ 2. Monitorowanie nieautoryzowanych zmian

Zastosuj narzędzia typu AIDE, Tripwire lub Auditd, aby wykrywać zmiany w plikach PAM. Możesz również skonfigurować auditctl, by śledził próby edycji krytycznych plików:

auditctl -w /etc/pam.d/ -p wa -k pam_watch

✅ 3. Regularne aktualizacje i kontrola modułów

Utrzymuj aktualne wersje pakietów PAM i weryfikuj, które moduły są aktywne. Wyłącz nieużywane lub eksperymentalne moduły.

✅ 4. Bezpieczna konfiguracja pam_exec.so

Unikaj uruchamiania zewnętrznych skryptów w ramach procesu logowania. Jeśli to konieczne, ogranicz ich uprawnienia i przetestuj pod kątem podatności.


🧠 Znaczenie PAM dla bezpieczeństwa w erze nowoczesnych ataków

System PAM jest jednym z najważniejszych punktów kontaktu między użytkownikiem a jądrem systemu. Jego błędna konfiguracja, zaniedbanie lub zaufanie nieznanym modułom może prowadzić do katastrofalnych w skutkach naruszeń bezpieczeństwa. Dlatego w dobie rosnących zagrożeń w internecie, wiedza o tym, jak działa PAM i jak go zabezpieczać, jest obowiązkowa dla administratorów systemów Linux.


🧾 Podsumowanie

System PAM, pomimo swojego zaawansowania, nie jest pozbawiony wad i potencjalnych punktów ataku. Od luk w poszczególnych modułach, przez błędne konfiguracje, aż po celowe nadużycia w kodzie — każde z nich może stanowić zagrożenie dla integralności i bezpieczeństwa systemu. Świadome zarządzanie PAM, audyt bezpieczeństwa oraz edukacja to klucze do zbudowania odpornego środowiska pracy w systemach linuksowych.


📎 Dalsza lektura

Aby lepiej zrozumieć ogólny kontekst ryzyk związanych z bezpieczeństwem w sieci, odwiedź poradnik dotyczący zagrożeń w internecie.

 

Polecane wpisy
Konfiguracja APF – Zaawansowane opcje
Konfiguracja APF - Zaawansowane opcje

Konfiguracja APF - Zaawansowane opcje Ten poradnik rozszerza podstawową konfigurację firewalla APF, przedstawiając bardziej zaawansowane opcje umożliwiające dostosowanie ochrony sieciowej Czytaj dalej