Materiał do egzaminu INF.11 — instalacja utwardzona, uprawnienia, usługi, hardening, audyt, kopie, wirtualizacja i chmura

Systemy Windows i Linux

Architektura i mechanizmy ochrony systemów, kontrola dostępu i uprawnienia, usługi i skrypty z pomocą AI, utwardzanie, zapory, logi i audyt, ochrona przed malware oraz kopie zapasowe, wirtualizacja, kontenery i chmura.

38lekcji
7zadań praktycznych
76pytań „Sprawdź się”
Spis treści

Kurs łączy materiał przedmiotów „Systemy operacyjne” oraz „Użytkowanie, konfiguracja i utwardzanie systemu Windows i Linux”. Każde zagadnienie jest pokazane w obu systemach: najpierw zasada, potem polecenia w PowerShell i w powłoce Linux, a na końcu pułapki i dobre praktyki. Na egzaminie ważne jest rozpoznanie polecenia lub ustawienia po opisie oraz ocena, czy konfiguracja jest bezpieczna.

Kurs jest podzielony na siedem części. Każda lekcja kończy się krótkimi pytaniami „Sprawdź się” ze schowaną odpowiedzią, a każda część zadaniem praktycznym. Wszystkie ćwiczenia wykonuj na własnych maszynach wirtualnych lub w laboratorium, nigdy na systemach, do których nie masz uprawnień.

Część A

Architektura systemów i mechanizmy bezpieczeństwa

Rozruch, systemy plików, tryb jądra i użytkownika, ochrona pamięci, Secure Boot oraz modele uprawnień w Windows i Linux.

Lekcja 1 · Część A

Rozruch systemu: BIOS/UEFI i bootloader

Rozruch to ciąg etapów, od włączenia komputera do uruchomienia systemu. Każdy etap przekazuje sterowanie następnemu, a atakujący, który przejmie wcześniejszy etap, może ukryć się przed zabezpieczeniami działającymi później.

EtapWindowsLinux
1. Oprogramowanie sprzętoweBIOS lub UEFI, test POSTBIOS lub UEFI, test POST
2. BootloaderWindows Boot Manager (bootmgfw.efi)GRUB 2 (lub systemd-boot)
3. Jądrontoskrnl.exe i sterowniki rozruchowevmlinuz i initramfs
4. Pierwszy procesSession Manager (smss.exe)systemd (PID 1)
5. Usługi i logowanieusługi, ekran logowaniausługi, getty lub menedżer logowania
CechaBIOS + MBRUEFI + GPT
Rozmiar dyskudo 2 TBpraktycznie bez ograniczeń
Partycjedo 4 podstawowychdo 128 w Windows
Bezpieczny rozruchbrakSecure Boot, Trusted Boot z TPM
Rozruchkod w pierwszym sektorze dyskuplik .efi na partycji ESP
Sprawdzenie trybu rozruchu
# Linux: istnieje katalog tylko w UEFI
[ -d /sys/firmware/efi ] && echo "UEFI" || echo "BIOS (Legacy)"

# Windows (PowerShell, administrator)
bcdedit /enum
msinfo32      # pole „Tryb BIOS”
Zagrożenia rozruchu

Bootkity i rootkity modyfikują bootloader lub jądro, aby uruchomić się przed zabezpieczeniami. Ochrona: Secure Boot, hasło do ustawień UEFI, szyfrowanie dysku z TPM i aktualizacje oprogramowania sprzętowego.

Sprawdź się — zadanie 1

Który element uruchamia jądro systemu Linux?

Pokaż przykładową odpowiedź

Bootloader (najczęściej GRUB 2), który ładuje jądro i obraz initramfs do pamięci.

Sprawdź się — zadanie 2

Dlaczego zabezpieczenie rozruchu jest ważne?

Pokaż przykładową odpowiedź

Kod uruchamiany przed systemem ma pełną kontrolę nad komputerem i może wyłączyć późniejsze zabezpieczenia. Przejęcie bootloadera lub jądra pozwala atakującemu pozostać niewykrytym.

Lekcja 2 · Część A

Systemy plików i struktura katalogów

System plikówSystemCechy
NTFSWindowsuprawnienia i ACL, szyfrowanie EFS, dziennik, kompresja, duże pliki
ReFSWindows Serverodporność na uszkodzenia, sumy kontrolne danych
FAT32wiele systemówbrak uprawnień, pliki do 4 GB, nośniki wymienne
exFATwiele systemówbrak uprawnień, brak limitu 4 GB, karty pamięci i pendrive’y
ext4Linuxuprawnienia POSIX, dziennik (journaling), domyślny w wielu dystrybucjach
XFS, BtrfsLinuxduże wolumeny; Btrfs ma migawki i sumy kontrolne

System plików bez uprawnień (FAT32, exFAT) nie pozwala chronić plików przed innymi użytkownikami na tym samym komputerze, dlatego do danych systemowych i użytkowników stosuje się NTFS lub ext4.

Ścieżka Linux (FHS)ZawartośćWindows
/korzeń drzewaC:\
/etcpliki konfiguracyjnerejestr, C:\Windows\System32\config
/homekatalogi użytkownikówC:\Users
/vardane zmienne: logi, kolejkiC:\ProgramData, C:\Windows\Logs
/tmppliki tymczasowe (dostępne dla wszystkich)%TEMP%
/bin, /usr/binprogramy systemoweC:\Windows\System32, C:\Program Files
/dev, /procurządzenia, informacje o procesach (pliki wirtualne)Menedżer urządzeń, Menedżer zadań
Sprawdź się — zadanie 1

Dlaczego nie warto używać FAT32 do przechowywania poufnych danych na komputerze współdzielonym?

Pokaż przykładową odpowiedź

FAT32 nie ma uprawnień do plików ani ACL, więc każdy użytkownik komputera może odczytać i zmienić dane. Do ochrony potrzebny jest system plików z uprawnieniami, np. NTFS lub ext4.

Sprawdź się — zadanie 2

W którym katalogu Linux znajdziesz zwykle pliki konfiguracyjne systemu i usług?

Pokaż przykładową odpowiedź

W katalogu /etc.

Lekcja 3 · Część A

Tryb użytkownika, tryb jądra i powierzchnia ataku

Procesory rozróżniają poziomy uprawnień (pierścienie ochrony). Tryb jądra (ring 0) ma pełny dostęp do sprzętu i pamięci. W trybie użytkownika (ring 3) działają programy, które nie mogą bezpośrednio sięgać do sprzętu, tylko proszą jądro o usługi przez wywołania systemowe. Dzięki temu błąd w aplikacji nie zawiesza całego systemu.

  • jądro zarządza procesami, pamięcią, urządzeniami, systemem plików i uprawnieniami,
  • sterowniki działają w trybie jądra, więc podatny lub złośliwy sterownik daje atakującemu pełną kontrolę,
  • przejście z trybu użytkownika do jądra to granica zaufania: błąd w jej obsłudze umożliwia eskalację uprawnień.

Powierzchnia ataku

Powierzchnia ataku to wszystkie miejsca, przez które atakujący może próbować wejść lub zaszkodzić: otwarte porty i usługi sieciowe, zainstalowane programy i pakiety, sterowniki, konta i hasła, udziały sieciowe, interfejsy zdalnego zarządzania. Im mniej składników, tym mniejsza powierzchnia.

Zagrożenie architekturyPrzykładOchrona
Lokalna eskalacja uprawnieńpodatność w jądrze, sterowniku lub programie z bitem SUIDaktualizacje, najmniejsze uprawnienia, minimalizacja SUID
Złośliwy lub podatny sterownikzaładowanie niepodpisanego sterownikawymuszanie podpisów sterowników, Secure Boot
Rootkit i bootkitukrycie procesu i plików, modyfikacja bootloaderaSecure Boot, Trusted Boot, sprawdzanie integralności
Wykorzystanie błędów pamięciprzepełnienie buforaASLR, DEP/NX, aktualizacje
Zbędne usługiwłączony Telnet, SMBv1, domyślne kontawyłączanie niepotrzebnych komponentów
Sprawdź się — zadanie 1

Dlaczego sterowniki urządzeń są szczególnie wrażliwym elementem systemu?

Pokaż przykładową odpowiedź

Działają w trybie jądra, więc błąd lub złośliwy kod w sterowniku daje pełną kontrolę nad systemem i może wyłączyć zabezpieczenia.

Sprawdź się — zadanie 2

Co to jest powierzchnia ataku i jak ją zmniejszyć?

Pokaż przykładową odpowiedź

To zbiór miejsc, przez które można zaatakować system (usługi, porty, programy, konta). Zmniejsza się ją przez usuwanie zbędnych komponentów, wyłączanie nieużywanych usług, aktualizacje i ograniczanie uprawnień.

Lekcja 4 · Część A

Ochrona pamięci: ASLR, DEP i inne mechanizmy

Wiele ataków wykorzystuje błędy zarządzania pamięcią (np. przepełnienie bufora), aby wykonać własny kod. Systemy wprowadzają mechanizmy, które utrudniają takie ataki.

MechanizmJak działaUtrudnia
DEP / NXstrony pamięci z danymi (stos, sterta) są oznaczone jako niewykonywalneuruchomienie wstrzykniętego kodu
ASLRlosowy układ adresów (stos, sterta, biblioteki) przy każdym uruchomieniuodgadnięcie adresów potrzebnych w exploicie
Stack canarywartość kontrolna przed adresem powrotu; zmiana oznacza przepełnienie i przerwanie programuklasyczne przepełnienie stosu
PIEprogram kompilowany tak, by działał pod losowym adresemominięcie ASLR
CFG (Windows)kontroluje, czy skoki pośrednie trafiają w dozwolone celeprzejęcie przepływu sterowania
Sprawdzenie ASLR i DEP
# Linux: 0 = wyłączone, 1 = częściowe, 2 = pełne ASLR
cat /proc/sys/kernel/randomize_va_space

# Windows PowerShell: mitygacje procesu i systemu
Get-ProcessMitigation -System
Zapamiętaj

Żaden z tych mechanizmów nie usuwa podatności, tylko utrudnia jej wykorzystanie (mitygacja). Dlatego równie ważne są aktualizacje.

Sprawdź się — zadanie 1

Co robi ASLR?

Pokaż przykładową odpowiedź

Losuje rozmieszczenie obszarów pamięci procesu przy każdym uruchomieniu, więc atakujący nie zna stałych adresów potrzebnych do skutecznego exploita.

Sprawdź się — zadanie 2

Jak działa DEP/NX?

Pokaż przykładową odpowiedź

Oznacza obszary pamięci przeznaczone na dane jako niewykonywalne. Próba uruchomienia kodu ze stosu lub sterty kończy się przerwaniem programu.

Lekcja 5 · Część A

Łańcuch rozruchu: Secure Boot, Trusted Boot i integralność jądra

Secure Boot (funkcja UEFI) uruchamia tylko komponenty podpisane zaufanym kluczem: oprogramowanie sprzętowe weryfikuje podpis bootloadera, bootloader weryfikuje jądro. Zmodyfikowany lub niepodpisany bootloader nie zostanie uruchomiony.

MechanizmZadanie
Secure Bootsprawdza podpisy cyfrowe kolejnych komponentów rozruchu (klucze PK, KEK, db, lista unieważnionych dbx)
Trusted Boot (Windows)po bootloaderze weryfikuje jądro, sterowniki rozruchowe i uruchamia ochronę ELAM (wczesny antymalware)
Measured Boot i TPMmoduł TPM zapisuje „pomiary” (skróty) komponentów w rejestrach PCR; zmiana wykrywana, a klucze (np. BitLocker) nie zostaną odblokowane
Wymuszanie podpisów sterownikówWindows wymaga podpisanych sterowników w trybie jądra; Linux może wymagać podpisanych modułów
Sprawdzenie stanu
# Windows (PowerShell jako administrator)
Confirm-SecureBootUEFI
Get-Tpm

# Linux
mokutil --sb-state
dmesg | grep -i "secure boot"

Autentyczność sterowników i obrazów

  • sterowniki Windows podpisuje producent i Microsoft (program WHQL); stan podpisu sprawdzisz Get-AuthenticodeSignature plik.sys lub narzędziem sigcheck,
  • obrazy instalacyjne i pakiety weryfikuj sumą kontrolną i podpisem (np. gpg --verify),
  • nigdy nie wyłączaj wymuszania podpisów sterowników dla wygody.
Sprawdź się — zadanie 1

Co sprawdza Secure Boot?

Pokaż przykładową odpowiedź

Podpisy cyfrowe komponentów rozruchu (bootloadera i jądra). Niepodpisany lub zmodyfikowany komponent nie zostanie uruchomiony.

Sprawdź się — zadanie 2

Do czego w procesie rozruchu służy moduł TPM?

Pokaż przykładową odpowiedź

Przechowuje klucze i „pomiary” komponentów rozruchu (Measured Boot). Jeśli komponenty zostaną zmienione, TPM nie odblokuje kluczy, np. szyfrowania dysku.

Lekcja 6 · Część A

Modele uprawnień: SID, UID i GID

CechaWindowsLinux
Identyfikator użytkownikaSID, np. S-1-5-21-…-1001UID, np. 1000 (root ma 0)
GrupySID grup (Administratorzy, Użytkownicy)GID, plik /etc/group
Baza kont lokalnychSAM (lokalnie), Active Directory (domena)/etc/passwd, skróty haseł w /etc/shadow
Kontrola dostępu do plikówACL (DACL) z wpisami ACEprawa rwx i opcjonalnie ACL
Podniesienie uprawnieńUAC, runassudo, su
Podstawowe poleceniawhoami /user, whoami /groupsid, groups

Po zalogowaniu system tworzy dla procesu token (Windows) lub zestaw UID/GID (Linux). Każda próba dostępu do zasobu porównuje tożsamość procesu z uprawnieniami zasobu.

  • konto root (UID 0) i Administrator (oraz SYSTEM) mają bardzo szerokie uprawnienia: pracuj na nich tylko w razie potrzeby,
  • konta usług powinny mieć własne tożsamości bez możliwości logowania interaktywnego,
  • bit SUID w Linux uruchamia program z uprawnieniami jego właściciela, więc podatny program SUID umożliwia eskalację uprawnień.
Sprawdź się — zadanie 1

Jakim identyfikatorem w Linux oznaczany jest użytkownik root?

Pokaż przykładową odpowiedź

UID równym 0.

Sprawdź się — zadanie 2

Czym jest SID w systemie Windows?

Pokaż przykładową odpowiedź

Unikalnym identyfikatorem zabezpieczeń użytkownika, grupy lub komputera, według którego system przydziela i sprawdza uprawnienia.

Zadanie praktyczne

Audyt zabezpieczeń architektury systemu

Szacowany czas: 50 minZakres: Lekcje 1–6Forma: tabela wyników i rekomendacje

Zadanie

Na maszynach wirtualnych Windows i Linux zbierz informacje o stanie zabezpieczeń architektury i oceń ryzyko.

Założenia

  • Ustal tryb rozruchu (UEFI lub BIOS) i stan Secure Boot na obu systemach.
  • Sprawdź na Linux wartość randomize_va_space, a na Windows mitygacje procesów (Get-ProcessMitigation -System).
  • Zapisz tożsamość konta, na którym pracujesz (whoami /user i id) oraz jego grupy.
  • Wypisz nasłuchujące porty (netstat -ano i ss -tulpn) i wskaż te, które nie są potrzebne.
  • Wypełnij tabelę: element, stan, ocena (dobrze, do poprawy), rekomendacja. Napisz 4–5 zdań o największym ryzyku.

Ocenie podlegać będzie

  • poprawne wykonanie poleceń i zapis wyników,
  • trafna ocena stanu zabezpieczeń,
  • rozpoznanie zbędnej powierzchni ataku,
  • konkretne rekomendacje,
  • czytelność tabeli.
Wskazówki
  • Polecenia znajdziesz w lekcjach 1, 4 i 5.
  • Brak Secure Boot w maszynie wirtualnej wynika z jej konfiguracji (np. rozruch w trybie BIOS): opisz to w uwagach.
  • Do oceny skorzystaj z tabeli zagrożeń w lekcji 3.

Część B

Instalacja utwardzona i tożsamość

Weryfikacja nośników, instalacja w standardzie utwardzonym, zero trust, grupy i sudo, MFA, ochrona poświadczeń oraz MAC.

Lekcja 7 · Część B

Nośnik instalacyjny i weryfikacja obrazu

Instalację zaczynamy od zaufanego obrazu systemu. Pobranie obrazu z nieoficjalnego źródła lub bez weryfikacji pozwala atakującemu zainstalować system z wbudowanym złośliwym oprogramowaniem.

  • pobieraj obrazy tylko ze stron producenta (Microsoft, dystrybucja Linux),
  • sprawdź sumę kontrolną (np. SHA-256) obrazu,
  • dla pewności autentyczności sprawdź podpis cyfrowy pliku z sumami (GPG) lub podpis instalatora,
  • nośnik przygotuj narzędziem producenta (Media Creation Tool, Rufus, dd, Etcher).
Weryfikacja obrazu
# Linux: suma kontrolna z pliku SHA256SUMS
sha256sum -c SHA256SUMS --ignore-missing

# podpis pliku z sumami (po zaimportowaniu klucza producenta)
gpg --verify SHA256SUMS.gpg SHA256SUMS

# Windows PowerShell
Get-FileHash .\obraz.iso -Algorithm SHA256
Get-AuthenticodeSignature .\instalator.exe
Tworzenie nośnika w Linux (uwaga: błędne urządzenie nadpisze dane!)
lsblk                                   # sprawdź nazwę pendrive'a, np. /dev/sdb
sudo dd if=obraz.iso of=/dev/sdb bs=4M status=progress conv=fsync
Skrót nie wystarcza sam

Jeśli skrót i plik pochodzą z tego samego, przejętego serwera, atakujący podmieni oba. Autentyczność gwarantuje podpis cyfrowy lub skrót pobrany z zaufanego, niezależnego źródła.

Sprawdź się — zadanie 1

Jak sprawdzisz, że pobrany obraz systemu nie został zmieniony?

Pokaż przykładową odpowiedź

Obliczam jego skrót (np. SHA-256) i porównuję z wartością publikowaną przez producenta. Dla pewności autentyczności weryfikuję podpis cyfrowy pliku z sumami.

Sprawdź się — zadanie 2

Dlaczego samo porównanie skrótu może nie wystarczyć?

Pokaż przykładową odpowiedź

Jeśli atakujący przejął serwer, mógł podmienić zarówno obraz, jak i opublikowany skrót. Podpis cyfrowy zweryfikowany kluczem producenta pozwala potwierdzić autentyczność.

Lekcja 8 · Część B

Instalacja w standardzie utwardzonym

Instalacja utwardzona od początku ogranicza powierzchnię ataku i izoluje składniki systemu. Wiele ustawień łatwo zrobić podczas instalacji, a trudno lub kosztownie później.

Partycjonowanie i opcje montowania

  • osobne partycje dla /, /boot, /home, /var i /tmp: wypełnienie jednego obszaru (np. logami) nie zatrzyma systemu,
  • dla obszarów zapisywalnych przez użytkowników wyłączaj wykonywanie kodu opcjami: noexec (zakaz uruchamiania programów), nosuid (ignorowanie SUID), nodev (brak plików urządzeń),
  • szyfrowanie całego dysku (LUKS w Linux, BitLocker w Windows) już przy instalacji.
Fragment /etc/fstab z ograniczeniami
# urządzenie       punkt   system  opcje                      dump fsck
UUID=...           /home   ext4    defaults,nodev,nosuid      0    2
tmpfs              /tmp    tmpfs   defaults,noexec,nosuid,nodev  0  0

Po instalacji

  • ustaw język, strefę czasową i synchronizację czasu (ważne dla logów i certyfikatów),
  • skonfiguruj parametry sieciowe zgodnie z planem adresacji,
  • wyłącz zbędne usługi i usuń niepotrzebne pakiety,
  • zainstaluj aktualizacje od razu (apt update && apt upgrade, dnf upgrade, Windows Update),
  • wyłącz lub zmień nazwę wbudowanego konta Administrator, nie zostawiaj haseł domyślnych.
Sprawdź się — zadanie 1

Po co montuje się /tmp z opcją noexec?

Pokaż przykładową odpowiedź

Aby uniemożliwić uruchamianie programów zapisanych w tym katalogu. Wiele ataków zapisuje złośliwy plik do /tmp i próbuje go uruchomić.

Sprawdź się — zadanie 2

Dlaczego osobna partycja dla /var jest dobrym pomysłem?

Pokaż przykładową odpowiedź

Logi i dane zmienne mogą szybko rosnąć. Na osobnej partycji ich nadmiar nie zapełni dysku systemowego i nie zatrzyma działania systemu.

Lekcja 9 · Część B

Model zerowego zaufania i konta techniczne

Zero Trust (zerowe zaufanie) zakłada, że żadne urządzenie, użytkownik ani połączenie nie jest zaufane tylko dlatego, że znajduje się „wewnątrz” sieci. Zasady: nigdy nie ufaj, zawsze weryfikuj, dawaj najmniejsze potrzebne uprawnienia i zakładaj, że naruszenie już nastąpiło.

ZasadaZastosowanie w systemach
Weryfikuj jawniesilne uwierzytelnianie (MFA), kontrola stanu urządzenia przed udzieleniem dostępu
Najmniejsze uprawnieniakonta bez praw administratora, dostęp tylko do potrzebnych zasobów, uprawnienia czasowe
Zakładaj naruszeniesegmentacja, szyfrowanie, rejestrowanie zdarzeń, szybkie wykrywanie anomalii

Konta techniczne i serwisowe

Konta, na których działają usługi i zadania, nie powinny pozwalać na logowanie interaktywne (przez konsolę ani zdalny pulpit) i nie powinny mieć praw administratora.

Linux: konto usługi bez możliwości logowania
sudo useradd --system --no-create-home --shell /usr/sbin/nologin appsvc
sudo passwd -l appsvc          # zablokowane hasło
grep appsvc /etc/passwd

W Windows analogiczne ustawienia to odmowa prawa Logowanie lokalne i Logowanie przez usługi pulpitu zdalnego dla konta usługi (secpol.msc) oraz używanie kont zarządzanych (gMSA) w domenie.

Sprawdź się — zadanie 1

Dlaczego konto usługi nie powinno mieć powłoki logowania?

Pokaż przykładową odpowiedź

Aby atakujący, który przejmie konto usługi, nie mógł się nim zalogować interaktywnie i swobodnie wykonywać poleceń. Konto ma służyć wyłącznie do uruchamiania usługi.

Sprawdź się — zadanie 2

Na czym polega zasada „zakładaj naruszenie” w modelu zerowego zaufania?

Pokaż przykładową odpowiedź

Projektuje się systemy tak, aby skutki naruszenia były ograniczone i szybko wykrywane: segmentacja, szyfrowanie, rejestrowanie zdarzeń, najmniejsze uprawnienia i stałe monitorowanie.

Lekcja 10 · Część B

Grupy, RBAC, sudo i UAC

Uprawnienia nadaje się grupom odpowiadającym rolom (RBAC), a użytkowników dodaje do grup. Dzięki temu zmiana stanowiska to zmiana członkostwa w grupie, a nie przepisywanie uprawnień do wielu zasobów.

Linux: grupy i konta
sudo groupadd helpdesk
sudo useradd -m -G helpdesk anna
sudo usermod -aG helpdesk bartek       # dodanie do grupy (-a koniecznie!)
id anna
sudo chage -M 90 -W 14 anna            # hasło ważne 90 dni, ostrzeżenie 14 dni
Windows PowerShell: konta i grupy lokalne
New-LocalGroup -Name "Helpdesk" -Description "Pomoc techniczna"
New-LocalUser -Name "anna" -Password (Read-Host -AsSecureString "Hasło") -FullName "Anna K."
Add-LocalGroupMember -Group "Helpdesk" -Member "anna"
Get-LocalGroupMember -Group "Helpdesk"

Podnoszenie uprawnień

MechanizmSystemOpis
sudoLinuxwykonanie polecenia z uprawnieniami innego użytkownika (zwykle roota), konfigurowane w /etc/sudoers
UACWindowsżądanie zatwierdzenia przy operacjach administracyjnych (tryb zatwierdzania przez administratora)
runasWindowsuruchomienie programu jako inny użytkownik
Linux: sudo dla roli helpdesk, tylko jedno polecenie (edytuj przez visudo)
# /etc/sudoers.d/helpdesk
%helpdesk ALL=(root) /usr/bin/systemctl restart nginx
Zapamiętaj

Zamiast dawać pełny dostęp do konta roota, w sudoers wymieniaj konkretne polecenia. Plik edytuj poleceniem visudo, które sprawdza składnię.

Sprawdź się — zadanie 1

Co zrobi polecenie usermod -G helpdesk bartek bez opcji -a?

Pokaż przykładową odpowiedź

Zastąpi wszystkie dotychczasowe grupy dodatkowe użytkownika grupą helpdesk, co może odebrać mu dostęp. Aby dodać grupę, trzeba użyć usermod -aG.

Sprawdź się — zadanie 2

Czym jest UAC?

Pokaż przykładową odpowiedź

Mechanizmem Windows, który wymaga zatwierdzenia przy operacjach wymagających praw administratora, dzięki czemu program nie uzyskuje ich po cichu.

Lekcja 11 · Część B

MFA, ochrona poświadczeń i magazyny kluczy

Hasła użytkowników są przechowywane w postaci skrótów, ale w pamięci systemu mogą istnieć też dane pozwalające przejąć sesję (skróty NTLM, bilety Kerberos). Atakujący z uprawnieniami administratora próbuje je wydobyć z procesu odpowiedzialnego za logowanie (LSASS w Windows).

ZabezpieczenieOpis
MFAdrugi składnik (aplikacja TOTP, klucz FIDO2, Windows Hello for Business); w Linux np. moduł PAM z TOTP dla logowania SSH
Credential Guard (Windows)izoluje sekrety logowania w wirtualizowanym, odizolowanym obszarze, niedostępnym nawet dla administratora
Ochrona LSApozwala ładować do LSASS tylko podpisane moduły
Magazyny kluczyWindows: Menedżer poświadczeń i DPAPI; Linux: GNOME Keyring, KWallet, pass

Monitorowanie prób dostępu do poświadczeń i logowań

ZdarzenieWindows (dziennik Zabezpieczeń)Linux
Udane logowanie4624/var/log/auth.log lub /var/log/secure, last
Nieudane logowanie4625„Failed password”, lastb
Przydzielenie uprawnień specjalnych4672wpisy sudo
Utworzenie konta / zmiana grupy4720, 4732wpisy useradd, usermod
Przeglądanie nieudanych logowań
# Windows PowerShell
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625} -MaxEvents 20 |
    Select-Object TimeCreated, @{n='Konto';e={$_.Properties[5].Value}}

# Linux
sudo journalctl _COMM=sshd | grep "Failed password" | tail -20
sudo lastb | head
Sprawdź się — zadanie 1

Do czego służy Credential Guard?

Pokaż przykładową odpowiedź

Chroni sekrety logowania (skróty NTLM, bilety Kerberos) w izolowanym środowisku opartym na wirtualizacji, tak że nie można ich odczytać z pamięci nawet z uprawnieniami administratora.

Sprawdź się — zadanie 2

Które zdarzenie Windows rejestruje nieudane logowanie?

Pokaż przykładową odpowiedź

Zdarzenie o identyfikatorze 4625 w dzienniku Zabezpieczeń.

Lekcja 12 · Część B

Obowiązkowa kontrola dostępu: AppArmor, SELinux i integralność

Klasyczne uprawnienia (DAC) pozwalają właścicielowi decydować o dostępie. MAC (obowiązkowa kontrola dostępu) dodaje politykę systemową, której nie może zmienić zwykły użytkownik ani proces, nawet jeśli działa jako root. Ogranicza skutki przejęcia usługi.

MechanizmSystemyZasada
AppArmorUbuntu, Debian, SUSEprofile przypisane do programów, oparte na ścieżkach plików; tryby: enforce i complain
SELinuxRHEL, Fedora, CentOSetykiety kontekstu na procesach i plikach; polityka określa, który typ procesu może dotknąć którego typu pliku; tryby: enforcing, permissive, disabled
Mandatory Integrity ControlWindowspoziomy integralności (niski, średni, wysoki, systemowy): proces o niższym poziomie nie zapisuje do obiektów wyższego
Polecenia podstawowe
# AppArmor
sudo aa-status
sudo aa-enforce /etc/apparmor.d/usr.sbin.nginx
sudo aa-complain /etc/apparmor.d/usr.sbin.nginx    # tylko loguje naruszenia

# SELinux
getenforce
sestatus
ls -Z /var/www/html
sudo restorecon -Rv /var/www/html
sudo ausearch -m avc -ts recent | sudo audit2why
Nie wyłączaj z wygody

Gdy usługa przestaje działać po włączeniu SELinux lub AppArmor, nie wyłączaj ochrony. Użyj tryb permissive/complain, odczytaj w logach, co zostało zablokowane, i popraw politykę lub etykiety.

Sprawdź się — zadanie 1

Czym różni się SELinux od klasycznych uprawnień plików?

Pokaż przykładową odpowiedź

Uprawnienia klasyczne (DAC) ustawia właściciel pliku. SELinux stosuje politykę systemową z etykietami, której nie zmienia użytkownik, i ogranicza nawet procesy działające jako root.

Sprawdź się — zadanie 2

Co zrobisz, gdy po włączeniu SELinux usługa WWW nie może odczytać plików?

Pokaż przykładową odpowiedź

Sprawdzam odmowy w logach (ausearch -m avc, audit2why) i poprawiam etykiety plików (restorecon) lub politykę, zamiast wyłączać SELinux.

Zadanie praktyczne

Utwardzona konfiguracja kont i dostępu

Szacowany czas: 60 minZakres: Lekcje 7–12Forma: ćwiczenie na maszynach wirtualnych i krótka dokumentacja

Zadanie

Na maszynie wirtualnej Linux (i opcjonalnie Windows) przygotuj konta i dostęp dla firmy zgodnie z zasadą najmniejszych uprawnień.

Założenia

  • Sprawdź sumę kontrolną obrazu, z którego powstała maszyna (lub opisz, jak to zrobisz).
  • Utwórz grupy helpdesk i ksiegowosc oraz po dwóch użytkowników w każdej.
  • Utwórz konto usługi appsvc bez możliwości logowania i bez powłoki.
  • Skonfiguruj sudo tak, aby helpdesk mógł tylko restartować wybraną usługę.
  • Ustaw opcje montowania noexec,nosuid,nodev dla /tmp (lub opisz wpis do /etc/fstab) i sprawdź stan AppArmor lub SELinux.
  • Napisz notatkę (4–5 zdań), w której wyjaśnisz, dlaczego takie ustawienia zmniejszają skutki przejęcia konta.

Ocenie podlegać będzie

  • poprawność kont, grup i uprawnień sudo,
  • konto usługi bez logowania,
  • poprawne opcje montowania,
  • zrozumienie MAC i najmniejszych uprawnień,
  • zwięzła dokumentacja.
Wskazówki
  • Skorzystaj z poleceń w lekcjach 8–12.
  • Plik sudoers edytuj wyłącznie przez visudo.
  • Przed zmianami w /etc/fstab zrób kopię pliku.

Część C

Systemy plików i kontrola dostępu do danych

Uprawnienia NTFS i Linux, udziały sieciowe, szyfrowanie danych, zajętość dysku, montowanie i integralność systemu plików.

Lekcja 13 · Część C

Uprawnienia NTFS i ACL w Windows

W NTFS każdy plik i folder ma listę kontroli dostępu (ACL) złożoną z wpisów (ACE): komu (użytkownik lub grupa) co wolno albo czego zabroniono. Uprawnienia są dziedziczone z folderu nadrzędnego, chyba że dziedziczenie wyłączono.

Uprawnienie podstawoweCo pozwala
Odczytwyświetlanie zawartości, odczyt atrybutów
Zapistworzenie plików i folderów, zapis danych
Odczyt i wykonanieodczyt oraz uruchamianie programów
Modyfikacjaodczyt, zapis, wykonanie i usuwanie
Pełna kontrolawszystko oraz zmiana uprawnień i przejęcie na własność
  • uprawnienia sumują się z wszystkich grup użytkownika, ale jawny zakaz (Deny) zwykle wygrywa z zezwoleniem,
  • uprawnienia nadawaj grupom, nie pojedynczym użytkownikom,
  • przy kopiowaniu obiekt dziedziczy uprawnienia z nowego miejsca, a przy przenoszeniu w obrębie tego samego woluminu zachowuje swoje.
icacls: odczyt i zmiana uprawnień
icacls C:\Dane\Ksiegowosc
icacls C:\Dane\Ksiegowosc /inheritance:r
icacls C:\Dane\Ksiegowosc /grant "Ksiegowosc:(OI)(CI)M"
icacls C:\Dane\Ksiegowosc /grant "Administratorzy:(OI)(CI)F"
icacls C:\Dane\Ksiegowosc /remove "Uzytkownicy"
Znaczenie przełączników

(OI) = dziedziczenie przez pliki, (CI) = dziedziczenie przez foldery, M = modyfikacja, F = pełna kontrola, /inheritance:r = usuń odziedziczone uprawnienia.

Sprawdź się — zadanie 1

Użytkownik należy do grup A (Odczyt) i B (Zapis). Jakie ma efektywne uprawnienia do pliku, jeśli żadna grupa nie ma zakazu?

Pokaż przykładową odpowiedź

Odczyt i zapis, bo uprawnienia z różnych grup się sumują.

Sprawdź się — zadanie 2

Dlaczego uprawnienia nadaje się grupom, a nie pojedynczym użytkownikom?

Pokaż przykładową odpowiedź

Ułatwia to zarządzanie i audyt: zmiana roli użytkownika to zmiana członkostwa w grupie, bez przepisywania uprawnień na wielu folderach, a ryzyko pomyłek jest mniejsze.

Lekcja 14 · Część C

Uprawnienia plików w Linux: rwx, SUID i ACL

Każdy plik w Linux ma właściciela, grupę i trzy zestawy uprawnień (właściciel, grupa, pozostali): r (odczyt, 4), w (zapis, 2), x (wykonanie lub wejście do katalogu, 1). Zapis ósemkowy sumuje wartości: rwxr-x--- to 750.

Podstawowe polecenia
ls -l plik
chmod 640 plik.txt           # rw- r-- ---
chmod u+x skrypt.sh          # dodaj wykonanie właścicielowi
chown anna:ksiegowosc plik.txt
umask                        # np. 0022: nowe pliki 644, katalogi 755
umask 027                    # nowe pliki 640, katalogi 750
Bit specjalnyZapisZnaczenie
SUIDchmod 4755 lub u+splik wykonywany z uprawnieniami właściciela (np. passwd)
SGIDchmod 2755 lub g+swykonanie z uprawnieniami grupy; w katalogu: nowe pliki dziedziczą grupę
Sticky bitchmod +tw katalogu (np. /tmp): usuwać plik może tylko jego właściciel
ACL i wyszukiwanie plików SUID
setfacl -m u:anna:rw plik.txt          # prawo dla jednego użytkownika
setfacl -m g:audyt:r-- plik.txt
getfacl plik.txt

# audyt: programy z bitem SUID
find / -perm -4000 -type f 2>/dev/null
Nigdy chmod 777

Prawa 777 dają zapis wszystkim użytkownikom i są częstym błędem (także w skryptach generowanych automatycznie). Dobierz najmniejsze prawa, które wystarczają.

Sprawdź się — zadanie 1

Jakie uprawnienia oznacza zapis 640?

Pokaż przykładową odpowiedź

Właściciel: odczyt i zapis (6), grupa: odczyt (4), pozostali: brak dostępu (0), czyli rw-r-----.

Sprawdź się — zadanie 2

Po co stosuje się sticky bit na katalogu /tmp?

Pokaż przykładową odpowiedź

Aby każdy użytkownik mógł tworzyć pliki w /tmp, ale usuwać lub zmieniać nazwy mógł tylko właściciel pliku (lub root).

Lekcja 15 · Część C

Udziały sieciowe i ochrona dostępu do danych

Udział sieciowy udostępnia folder innym komputerom. W Windows służy do tego SMB, w Linux często Samba (zgodna z SMB) lub NFS. Dostęp do pliku przez udział zależy od dwóch zestawów uprawnień: uprawnień udziału i uprawnień NTFS, a obowiązuje bardziej restrykcyjne.

Windows: tworzenie udziału
New-SmbShare -Name "Dane" -Path "C:\Dane" -FullAccess "Administratorzy" -ChangeAccess "Ksiegowosc"
Get-SmbShare
Get-SmbShareAccess -Name "Dane"
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol    # wyłącz stary, niebezpieczny SMBv1
Linux: NFS (fragment /etc/exports) i Samba
# /etc/exports - tylko dla sieci 192.168.10.0/24, root_squash
/srv/dane  192.168.10.0/24(rw,sync,root_squash,no_subtree_check)

# /etc/samba/smb.conf
[dane]
   path = /srv/dane
   valid users = @ksiegowosc
   read only = no
   guest ok = no

Zasady ochrony

  • wyłącz SMBv1 i dostęp anonimowy (gość),
  • włącz podpisywanie SMB, a w razie potrzeby szyfrowanie,
  • ogranicz dostęp zaporą do zaufanych sieci,
  • w NFS stosuj root_squash (zdalny root traktowany jak zwykły użytkownik),
  • dostęp przydzielaj grupom i przeglądaj go regularnie.
Sprawdź się — zadanie 1

Udział ma uprawnienie Pełna kontrola dla Wszyscy, a NTFS tylko Odczyt dla grupy Uczniowie. Co może zrobić uczeń?

Pokaż przykładową odpowiedź

Tylko odczytywać pliki, bo przy dostępie przez sieć obowiązuje bardziej restrykcyjne z dwóch uprawnień.

Sprawdź się — zadanie 2

Dlaczego wyłącza się SMBv1?

Pokaż przykładową odpowiedź

To stary protokół z poważnymi lukami, wykorzystywany m.in. przez robaki sieciowe (np. w atakach ransomware). Nowoczesne systemy go nie potrzebują.

Lekcja 16 · Część C

Szyfrowanie plików i wolumenów

Szyfrowanie danych w spoczynku chroni informacje, gdy ktoś zdobędzie nośnik (zgubiony laptop, wyjęty dysk). Można szyfrować cały wolumen lub pojedyncze pliki.

NarzędzieSystemZakres
BitLockerWindowscały wolumen; zwykle z TPM i opcjonalnie PIN-em
EFSWindows (NTFS)pojedyncze pliki i foldery, powiązane z kontem użytkownika
LUKS (dm-crypt)Linuxcała partycja lub dysk
VeraCryptwiele systemówkontenery i całe wolumeny
gocryptfs, GnuPGLinuxszyfrowane katalogi, pliki
BitLocker i LUKS
# Windows: stan szyfrowania wolumenów
manage-bde -status

# Linux: szyfrowanie nowej partycji LUKS (uwaga: kasuje dane!)
sudo cryptsetup luksFormat /dev/sdb1
sudo cryptsetup open /dev/sdb1 dane
sudo mkfs.ext4 /dev/mapper/dane
sudo mount /dev/mapper/dane /mnt/dane
# zamknięcie
sudo umount /mnt/dane && sudo cryptsetup close dane
Klucze odzyskiwania

Zapisz klucz odzyskiwania w osobnym, bezpiecznym miejscu (nie na zaszyfrowanym dysku). Bez niego po awarii TPM lub utracie hasła dane są nie do odzyskania.

Sprawdź się — zadanie 1

Przed czym chroni szyfrowanie całego dysku?

Pokaż przykładową odpowiedź

Przed dostępem do danych po fizycznym zdobyciu dysku lub laptopa (kradzież, zgubienie). Nie chroni przed użytkownikiem, który jest zalogowany i ma dostęp do odszyfrowanych danych.

Sprawdź się — zadanie 2

Dlaczego klucz odzyskiwania BitLocker nie może leżeć na tym samym szyfrowanym dysku?

Pokaż przykładową odpowiedź

Gdyby dysk stał się niedostępny, nie dałoby się odczytać klucza, a więc i danych. Klucz należy przechowywać osobno, w zabezpieczonym miejscu.

Lekcja 17 · Część C

Przestrzeń dyskowa, montowanie i integralność systemu plików

Monitorowanie zajętości

Zajętość dysku
# Linux
df -h
du -sh /var/* | sort -h | tail
sudo ncdu /var

# Windows PowerShell
Get-PSDrive -PSProvider FileSystem
fsutil volume diskfree C:

Kwoty dyskowe (quota) ograniczają miejsce, które może zająć użytkownik (w Windows: NTFS Quotas, w Linux: quota). Nagłe zapełnienie dysku (np. rosnące logi) może zatrzymać usługi, więc to też kwestia dostępności.

Montowanie w Linux

Punkty montowania
lsblk -f
blkid                                    # UUID partycji
sudo mount /dev/sdb1 /mnt/dane
sudo mount -o ro,noexec /dev/sdb1 /mnt/dane
findmnt                                  # aktualne montowania
# trwałe montowanie: wpis w /etc/fstab (najlepiej przez UUID)
sudo findmnt --verify                    # sprawdzenie składni fstab

Integralność systemu plików po awarii

Sprawdzanie i naprawa
# Windows: skanowanie bez naprawy, a potem naprawa
chkdsk C: /scan
chkdsk D: /f

# Linux: tylko na odmontowanym systemie plików!
sudo umount /dev/sdb1
sudo fsck -f /dev/sdb1

Dziennik (journaling, np. w NTFS i ext4) zapisuje zamiar wykonania operacji, więc po nagłej awarii zasilania system plików szybko wraca do spójności.

Sprawdź się — zadanie 1

Dlaczego fsck uruchamia się na odmontowanym systemie plików?

Pokaż przykładową odpowiedź

Naprawa podczas użycia przez system może uszkodzić dane, bo struktury zmieniają się w trakcie sprawdzania. Odmontowanie gwarantuje, że nic innego nie zapisuje na nośniku.

Sprawdź się — zadanie 2

Jakie ryzyko dla bezpieczeństwa niesie zapełnienie dysku?

Pokaż przykładową odpowiedź

Może zatrzymać usługi i uniemożliwić zapis logów (utrata dostępności i śladów audytu), a atakujący może to wykorzystać do ukrycia swoich działań.

Zadanie praktyczne

Struktura uprawnień do katalogu działowego

Szacowany czas: 50 minZakres: Lekcje 13–17Forma: ćwiczenie w obu systemach i dokumentacja

Zadanie

Przygotuj w Windows i Linux katalog dla działu księgowości zgodnie z zasadą najmniejszych uprawnień.

Założenia

  • Utwórz katalog Ksiegowosc i dwie grupy: ksiegowosc (modyfikacja) oraz audyt (tylko odczyt).
  • W Windows użyj icacls (wyłącz dziedziczenie i usuń grupę Użytkownicy), w Linux chmod, chown i setfacl.
  • Udostępnij katalog przez sieć (SMB lub NFS) z ograniczeniem do zaufanej sieci.
  • Zaszyfruj wolumen lub kontener z danymi (BitLocker lub LUKS) i opisz, gdzie zapisano klucz odzyskiwania.
  • Przetestuj: konto bez uprawnień nie może wejść do katalogu, konto z grupy audyt nie zapisuje. Dołącz wyniki poleceń (icacls, getfacl).

Ocenie podlegać będzie

  • poprawne uprawnienia i dziedziczenie,
  • zgodność z zasadą najmniejszych uprawnień,
  • bezpieczne udostępnienie przez sieć,
  • poprawne szyfrowanie i ochrona klucza,
  • testy potwierdzające działanie.
Wskazówki
  • Polecenia znajdziesz w lekcjach 13–16.
  • Pamiętaj o prawie wejścia (x) do katalogu w Linux.
  • Przed szyfrowaniem partycji upewnij się, że nie zawiera potrzebnych danych.

Część D

Usługi, harmonogram, skrypty i AI

Zarządzanie usługami i ich zależnościami, harmonogram zadań, skrypty PowerShell i Bash oraz bezpieczne wykorzystanie narzędzi AI.

Lekcja 18 · Część D

Zarządzanie usługami systemowymi

Usługa (w Linux: demon) to program działający w tle, bez udziału użytkownika, np. serwer WWW, SSH, drukowanie. Usługi mają stan (uruchomiona, zatrzymana) i tryb uruchamiania.

Tryb uruchamianiaWindowsLinux (systemd)
AutomatycznyAutomatyczniesystemctl enable
Ręczny (na żądanie)Ręcznieusługa włączona przez inną usługę lub gniazdo
WyłączonyWyłączonasystemctl disable; mask blokuje całkowicie
Windows PowerShell
Get-Service | Where-Object Status -eq Running
Get-Service -Name Spooler
Stop-Service -Name Spooler
Set-Service -Name Spooler -StartupType Disabled
Start-Service -Name Spooler
Linux (systemd)
systemctl status ssh
sudo systemctl restart nginx
sudo systemctl enable --now nginx        # uruchom teraz i przy starcie
sudo systemctl disable --now telnet.socket
systemctl list-units --type=service --state=running
systemctl list-dependencies nginx
Utwardzanie

Wyłącz usługi, których nie potrzebujesz (Telnet, FTP, SMBv1, Print Spooler na serwerach bez drukowania). Każda zbędna usługa to dodatkowa powierzchnia ataku.

Sprawdź się — zadanie 1

Jak sprawdzisz w Linux, które usługi są uruchomione i czy włączą się przy starcie?

Pokaż przykładową odpowiedź

systemctl list-units --type=service --state=running pokazuje działające usługi, a systemctl list-unit-files --type=service ich tryb uruchamiania (enabled, disabled).

Sprawdź się — zadanie 2

Czym różni się systemctl disable od mask?

Pokaż przykładową odpowiedź

Disable usuwa uruchamianie przy starcie, ale usługę nadal można uruchomić ręcznie lub przez zależność. Mask całkowicie blokuje uruchomienie usługi.

Lekcja 19 · Część D

Harmonogram zadań: Task Scheduler, cron i timery

Zadania cykliczne (kopie zapasowe, czyszczenie logów, aktualizacje) uruchamia się automatycznie według harmonogramu. W Windows służy do tego Harmonogram zadań, a w Linux cron lub timery systemd.

Windows: zadanie codziennie o 2:00 jako SYSTEM
schtasks /create /tn "KopiaDziennik" /tr "C:\Skrypty\kopia.cmd" /sc daily /st 02:00 /ru SYSTEM
schtasks /query /tn "KopiaDziennik" /fo list
schtasks /delete /tn "KopiaDziennik" /f
Linux: cron
crontab -e                    # edycja własnych zadań
# minuta godzina dzień-miesiąca miesiąc dzień-tygodnia polecenie
30 2 * * *  /usr/local/bin/kopia.sh          # codziennie 2:30
0 3 * * 0   /usr/local/bin/czyszczenie.sh    # w niedzielę o 3:00
crontab -l
systemctl list-timers
Harmonogram a bezpieczeństwo

Zadania uruchamiane jako SYSTEM lub root to częsty sposób na utrwalenie się atakującego i eskalację uprawnień. Chroń pliki skryptów (nie mogą być zapisywalne dla zwykłych użytkowników) i regularnie przeglądaj listę zadań (schtasks /query, crontab -l, /etc/cron.d).

Sprawdź się — zadanie 1

Co oznacza wpis cron: 0 3 * * 0 /usr/local/bin/skrypt.sh?

Pokaż przykładową odpowiedź

Uruchomienie skryptu w każdą niedzielę o godzinie 3:00 (minuta 0, godzina 3, dowolny dzień miesiąca i miesiąc, dzień tygodnia 0 = niedziela).

Sprawdź się — zadanie 2

Dlaczego skrypt uruchamiany z uprawnieniami roota nie powinien być zapisywalny dla wszystkich?

Pokaż przykładową odpowiedź

Użytkownik mógłby go zmienić i uzyskać wykonanie własnych poleceń z uprawnieniami roota, co oznaczałoby eskalację uprawnień.

Lekcja 20 · Część D

Skrypty PowerShell i Bash w administracji

Skrypty automatyzują powtarzalne czynności: tworzenie kont, zbieranie informacji, audyt, kopie zapasowe. Dobry skrypt jest czytelny, bezpieczny i wykonuje tylko to, co ma.

PowerShell: aktywne konta lokalne i ostatnie logowanie
Get-LocalUser |
    Where-Object { $_.Enabled } |
    Select-Object Name, LastLogon, PasswordRequired |
    Sort-Object LastLogon -Descending |
    Format-Table -AutoSize
Bash: konta bez hasła, uprawnienia katalogów domowych
#!/usr/bin/env bash
set -euo pipefail

echo "Konta z pustym hasłem:"
sudo awk -F: '($2 == "") { print $1 }' /etc/shadow

echo "Katalogi domowe dostępne dla wszystkich:"
find /home -maxdepth 1 -type d -perm -o+r

Zasady bezpiecznych skryptów

  • nie zapisuj haseł i kluczy w skrypcie (używaj magazynów sekretów, zmiennych środowiskowych lub monitów),
  • waliduj dane wejściowe i cytuj zmienne w Bash ("$plik"),
  • używaj set -euo pipefail w Bash i $ErrorActionPreference = 'Stop' w PowerShell,
  • testuj bezpiecznie: PowerShell -WhatIf, opcje dry-run, maszyna testowa,
  • ogranicz uprawnienia pliku skryptu i konto, na którym działa,
  • w Windows pamiętaj o polityce wykonywania skryptów (Get-ExecutionPolicy) i podpisywaniu skryptów.
Sprawdź się — zadanie 1

Co robi w skrypcie Bash opcja set -euo pipefail?

Pokaż przykładową odpowiedź

Przerywa skrypt przy błędzie (-e), przy użyciu niezdefiniowanej zmiennej (-u) i gdy zawiedzie dowolne polecenie w potoku (pipefail), co zmniejsza ryzyko niezamierzonych skutków.

Sprawdź się — zadanie 2

Dlaczego nie wolno zapisywać haseł w treści skryptu?

Pokaż przykładową odpowiedź

Skrypt często jest czytelny dla wielu osób, trafia do repozytoriów i kopii zapasowych. Hasło w kodzie można łatwo wykraść, więc sekrety trzyma się w magazynach sekretów lub podaje w czasie działania.

Lekcja 21 · Część D

Narzędzia AI w administracji systemami

Narzędzia generatywnej AI potrafią napisać szkic skryptu PowerShell lub Bash, wyjaśnić komunikat błędu, zoptymalizować kod i przygotować dokumentację. Odpowiedzialność za wykonane polecenia zawsze ponosi administrator, a nie narzędzie.

ZastosowanieKorzyśćRyzyko
Generowanie skryptuszybki szkic, składniakod może być błędny lub niebezpieczny
Interpretacja błędówwyjaśnienie komunikatu, propozycja przyczynpodpowiedź może być nietrafiona
Optymalizacja i refaktoryzacjaczytelniejszy i krótszy kodzmiana działania skryptu
Dokumentacja skryptówkomentarze, opis parametrówopis niezgodny z kodem
Wyszukiwanie podatności w skryptachdodatkowa kontrolafałszywe alarmy i pominięcia

Zasady bezpiecznej pracy z AI

  • nie wklejaj haseł, kluczy, danych osobowych ani konfiguracji z sekretami do narzędzi zewnętrznych,
  • przeczytaj i zrozum każde polecenie, zanim je uruchomisz,
  • najpierw uruchamiaj w maszynie testowej, z opcją -WhatIf lub dry-run,
  • sprawdź w dokumentacji producenta, czy opcje istnieją i robią to, co opisano,
  • uważaj na polecenia niszczące lub osłabiające bezpieczeństwo: rm -rf, chmod -R 777, wyłączanie zapory lub Defendera, curl ... | sudo bash.
Przykład niebezpiecznego wyniku AI do poprawienia
# „Napraw uprawnienia, żeby aplikacja działała”
sudo chmod -R 777 /var/www
sudo setenforce 0
sudo systemctl stop firewalld

Taki szkic „naprawia” problem, ale otwiera zapis dla wszystkich, wyłącza SELinux i zaporę. Poprawna odpowiedź to: nadać właściciela i grupę usługi (chown), prawa 750/640 i poprawić etykiety (restorecon).

Sprawdź się — zadanie 1

Wygenerowany przez AI skrypt zawiera polecenie chmod -R 777. Jak postąpisz?

Pokaż przykładową odpowiedź

Nie uruchomię go w tej postaci. Zrozumiem, po co wprowadzono tę zmianę, i zastąpię ją najmniejszymi potrzebnymi uprawnieniami (właściciel, grupa, np. 750 lub 640), a zmianę przetestuję na maszynie testowej.

Sprawdź się — zadanie 2

Jakich danych nie należy wklejać do zewnętrznych narzędzi AI podczas diagnozowania problemu?

Pokaż przykładową odpowiedź

Haseł, kluczy API, certyfikatów prywatnych, danych osobowych, pełnych konfiguracji z sekretami i innych poufnych informacji organizacji.

Lekcja 22 · Część D

Zależności usług i diagnozowanie błędów startu

Usługi często zależą od siebie: aplikacja potrzebuje bazy danych, ta z kolei sieci. Gdy zawiedzie ogniwo niżej, powstaje błąd kaskadowy: kolejne usługi nie startują, choć same są poprawne. Diagnozę zaczyna się od przyczyny najgłębiej w łańcuchu zależności.

Linux: diagnoza usługi
systemctl status nginx
journalctl -u nginx -b --no-pager | tail -30
journalctl -xe
systemctl list-dependencies nginx
systemd-analyze blame | head
Windows: błędy usług w dzienniku System
Get-WinEvent -FilterHashtable @{LogName='System'; ProviderName='Service Control Manager'; Level=2} -MaxEvents 15 |
    Select-Object TimeCreated, Id, Message
Get-Service -Name W3SVC | Select-Object Name, Status, DependentServices, ServicesDependedOn
Kroki diagnozyOpis
1. Stan usługiuruchomiona, zatrzymana, błąd
2. Dziennikkomunikat błędu z czasem startu (journalctl, Podgląd zdarzeń)
3. Zależnościczy usługi, od których zależy, działają
4. Konfiguracjaostatnia zmiana pliku, uprawnień, portu zajętego przez inny proces
5. Zasobywolne miejsce na dysku, pamięć, uprawnienia konta usługi
Sprawdź się — zadanie 1

Usługa aplikacji nie startuje, bo wymaga bazy danych, która też nie działa. Od czego zaczniesz?

Pokaż przykładową odpowiedź

Od usługi bazy danych (przyczyny w łańcuchu zależności): sprawdzam jej stan i dziennik. Po jej naprawie usługa aplikacji powinna wystartować.

Sprawdź się — zadanie 2

Które polecenie pokazuje komunikaty dziennika konkretnej usługi w Linux od ostatniego startu systemu?

Pokaż przykładową odpowiedź

journalctl -u nazwa_usługi -b.

Zadanie praktyczne

Skrypt audytowy z wykorzystaniem AI

Szacowany czas: 60 minZakres: Lekcje 18–22Forma: skrypt, raport z weryfikacji i dokumentacja

Zadanie

Przygotuj skrypt, który zbiera informacje o bezpieczeństwie systemu, a następnie krytycznie zweryfikuj kod wygenerowany przez AI.

Założenia

  • Poproś narzędzie AI (zgodnie z regulaminem szkoły, bez wklejania danych poufnych) o skrypt Bash lub PowerShell, który wypisuje: konta z uprawnieniami administratora, nasłuchujące porty, uruchomione usługi i zadania zaplanowane.
  • Przeczytaj skrypt i zapisz listę znalezionych problemów (błędy, ryzykowne polecenia, brak walidacji, sekrety).
  • Popraw skrypt: dodaj obsługę błędów, cytowanie zmiennych, ograniczenie uprawnień, tryb bezpieczny.
  • Uruchom skrypt na maszynie testowej, zapisz wynik do pliku z datą i dołącz fragment.
  • Zaplanuj uruchamianie skryptu co tydzień (cron lub Harmonogram zadań) z kontem o najmniejszych uprawnieniach. Opisz, jak zabezpieczysz plik skryptu.

Ocenie podlegać będzie

  • poprawność i działanie skryptu,
  • trafna krytyczna ocena kodu AI,
  • bezpieczne praktyki (brak sekretów, walidacja, najmniejsze uprawnienia),
  • poprawnie skonfigurowany harmonogram,
  • kompletna dokumentacja.
Wskazówki
  • Skorzystaj z listy zasad w lekcjach 20 i 21.
  • Sprawdzaj opcje poleceń w dokumentacji (man, Get-Help).
  • Skrypt testuj wyłącznie na własnej maszynie wirtualnej.

Część E

Utwardzanie systemów Windows i Linux

Zasady lokalne i AppLocker, ochrona rozruchu i rejestru, SSH, sysctl, redukcja powierzchni ataku oraz audyt zgodny z benchmarkami.

Lekcja 23 · Część E

Utwardzanie Windows: zasady, AppLocker i prywatność

Utwardzanie (ang. hardening) to takie skonfigurowanie systemu, aby ograniczyć jego powierzchnię ataku i skutki naruszenia. W Windows większość ustawień zapisuje się w zasadach: lokalnych (secpol.msc, gpedit.msc) lub grupowych (GPO) w domenie Active Directory.

ObszarPrzykładowe ustawienia
Zasady kontaminimalna długość hasła, historia haseł, blokada konta po kilku nieudanych logowaniach
Zasady lokalnewyłączenie konta Gość, zmiana nazwy konta Administrator, prawa użytkowników (kto może logować się lokalnie, zdalnie, wyłączać system)
Opcje zabezpieczeńwymuszanie podpisywania SMB, ograniczenie NTLM, UAC w trybie zatwierdzania
Ograniczenie uruchamiania aplikacjiAppLocker lub Windows Defender Application Control (WDAC)
Prywatność i telemetriapoziom danych diagnostycznych, aplikacje działające w tle, uprawnienia aplikacji do kamery i mikrofonu

AppLocker

AppLocker pozwala uruchamiać tylko dozwolone aplikacje. Reguły mogą opierać się na wydawcy (podpis), ścieżce lub skrócie pliku. Typowy sposób wdrożenia: utwórz reguły domyślne, włącz tryb Tylko inspekcja (audit), sprawdź w dzienniku, co zostałoby zablokowane, a następnie przełącz na Wymuszaj.

Eksport i przegląd ustawień
secedit /export /cfg C:\Raporty\sec.cfg
Get-AppLockerPolicy -Effective | Select-Object -ExpandProperty RuleCollections
Get-WinEvent -LogName "Microsoft-Windows-AppLocker/EXE and DLL" -MaxEvents 20
Zapamiętaj

Najpierw audyt (tylko rejestrowanie), potem wymuszanie. Gwałtowne włączenie ograniczeń bez testów może zablokować potrzebne programy.

Sprawdź się — zadanie 1

Do czego służy AppLocker?

Pokaż przykładową odpowiedź

Do ograniczania, które aplikacje, skrypty i instalatory mogą być uruchamiane, według reguł (wydawca, ścieżka, skrót), co zmniejsza ryzyko uruchomienia złośliwego oprogramowania.

Sprawdź się — zadanie 2

Dlaczego nowe reguły AppLocker wdraża się najpierw w trybie inspekcji?

Pokaż przykładową odpowiedź

Aby sprawdzić w dzienniku, jakie legalne programy zostałyby zablokowane, i poprawić reguły, zanim zaczną faktycznie blokować pracę użytkowników.

Lekcja 24 · Część E

Utwardzanie Windows: bootloader, rejestr i ochrona przed exploitami

Ochrona rozruchu

  • włącz Secure Boot i ustaw hasło do ustawień UEFI,
  • zaszyfruj dysk systemowy BitLockerem z TPM (a dla większego bezpieczeństwa z dodatkowym PIN-em przed rozruchem),
  • ograniczaj dostęp do wiersza poleceń środowiska odzyskiwania i sprawdzaj konfigurację rozruchu: bcdedit /enum.

Kopia i przywracanie rejestru

Rejestr to baza ustawień systemu i programów. Błędna zmiana może uniemożliwić uruchomienie systemu, dlatego przed każdą modyfikacją wykonaj kopię odpowiedniej gałęzi.

Kopia i przywracanie gałęzi rejestru
reg export "HKLM\SOFTWARE\Policies" C:\Kopie\policies.reg
reg import C:\Kopie\policies.reg
# gałęzie autostartu warte przeglądu
reg query "HKLM\Software\Microsoft\Windows\CurrentVersion\Run"
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Run"

Ochrona przed exploitami i wbudowane zabezpieczenia

  • Microsoft Defender: ochrona w czasie rzeczywistym, SmartScreen, ochrona przed exploitami (Exploit protection),
  • reguły Attack Surface Reduction (ASR): blokują typowe techniki, np. uruchamianie plików wykonywalnych z załączników e-mail,
  • Controlled Folder Access: chroni foldery przed zmianami przez nieznane programy (pomaga przeciw ransomware),
  • wyłączenie przestarzałych komponentów, np. SMBv1: Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol.
Sprawdź się — zadanie 1

Co zrobisz przed ręczną modyfikacją gałęzi rejestru?

Pokaż przykładową odpowiedź

Wykonam jej kopię (reg export lub eksport w Edytorze rejestru), aby w razie błędu przywrócić poprzedni stan (reg import).

Sprawdź się — zadanie 2

Jak BitLocker z TPM chroni bootloader i dane?

Pokaż przykładową odpowiedź

Klucz szyfrowania zostaje odblokowany tylko wtedy, gdy pomiary rozruchu zgadzają się z oczekiwanymi. Zmodyfikowany bootloader lub przeniesienie dysku do innego komputera uniemożliwia odszyfrowanie danych.

Lekcja 25 · Część E

Utwardzanie Linux: SSH, root, pliki konfiguracyjne i jądro

Bezpieczny dostęp zdalny i konto root

/etc/ssh/sshd_config
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
AllowUsers anna bartek
MaxAuthTries 3
LoginGraceTime 30
X11Forwarding no
Sprawdzenie i zastosowanie
sudo sshd -t                      # test składni, bez restartu
sudo systemctl reload ssh
sudo passwd -l root               # zablokowanie hasła roota (logowanie przez sudo)

Ochrona plików konfiguracyjnych

Uprawnienia i atrybut niezmienności
sudo chmod 600 /etc/ssh/sshd_config
sudo chown root:root /etc/ssh/sshd_config
sudo chattr +i /etc/resolv.conf       # atrybut niezmienności: nawet root nie zmieni bez chattr -i
lsattr /etc/resolv.conf
umask 027

Utwardzanie jądra (sysctl)

/etc/sysctl.d/99-hardening.conf
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1
kernel.randomize_va_space = 2
Zastosowanie ustawień
sudo sysctl --system
sysctl net.ipv4.tcp_syncookies
Sprawdź się — zadanie 1

Dlaczego w SSH wyłącza się PermitRootLogin?

Pokaż przykładową odpowiedź

Konto root jest oczywistym celem ataków. Wyłączenie logowania wymusza użycie zwykłego konta i podniesienie uprawnień przez sudo, co zostawia ślady i zmniejsza ryzyko.

Sprawdź się — zadanie 2

Do czego służy atrybut niezmienności ustawiany poleceniem chattr +i?

Pokaż przykładową odpowiedź

Uniemożliwia zmianę, usunięcie lub zmianę nazwy pliku, nawet dla roota, dopóki atrybut nie zostanie zdjęty (chattr -i). Chroni krytyczne pliki przed przypadkową lub złośliwą zmianą.

Lekcja 26 · Część E

Redukcja powierzchni ataku: pakiety, usługi i autostart

Każdy zainstalowany program, działająca usługa i otwarty port to potencjalna podatność. Zasada: im mniej, tym bezpieczniej. Utwardzanie obejmuje inwentaryzację i usuwanie zbędnych składników.

Co usuwaćLinuxWindows
Zbędne pakiety i programyapt purge pakiet, apt autoremove, dnf removeAplikacje i funkcje, Get-WindowsOptionalFeature -Online
Usługi sieciowess -tulpn → systemctl disable --nowGet-NetTCPConnection -State Listen → Set-Service ... -StartupType Disabled
Wpisy autostartu~/.config/autostart, cron, jednostki systemd, ~/.bashrcklucze Run, folder Autostart, zadania zaplanowane, usługi
Inwentaryzacja autostartu i usług sieciowych
# Linux
systemctl list-unit-files --state=enabled
ss -tulpn
ls /etc/cron.d /var/spool/cron/crontabs 2>/dev/null

# Windows PowerShell
Get-CimInstance Win32_StartupCommand | Select-Object Name, Command, Location
Get-NetTCPConnection -State Listen | Sort-Object LocalPort
Narzędzie pomocnicze

W Windows program Autoruns z pakietu Sysinternals pokazuje wszystkie miejsca autostartu i pozwala sprawdzić podpis wydawcy.

Sprawdź się — zadanie 1

Dlaczego usuwanie nieużywanych pakietów poprawia bezpieczeństwo?

Pokaż przykładową odpowiedź

Mniej oprogramowania oznacza mniej podatności i usług, które można zaatakować, oraz mniej rzeczy do aktualizowania i monitorowania.

Sprawdź się — zadanie 2

Gdzie atakujący może ukryć mechanizm uruchamiania swojego programu po restarcie?

Pokaż przykładową odpowiedź

W autostarcie: kluczach Run w rejestrze, folderze Autostart, zadaniach zaplanowanych, usługach (Windows) oraz w cron, jednostkach systemd, plikach powłoki i rc.local (Linux).

Lekcja 27 · Część E

Audyt konfiguracji i benchmarki bezpieczeństwa

Benchmark bezpieczeństwa to opracowana przez ekspertów lista zalecanych ustawień systemu. Porównując z nią konfigurację, można ocenić stan zabezpieczeń i znaleźć odstępstwa.

Źródło wzorcaOpis
CIS Benchmarksszczegółowe zalecenia dla wielu systemów i usług; profile poziom 1 (podstawowy) i poziom 2 (wyższe wymagania)
Microsoft Security Baselines / Security Compliance Toolkitzalecane ustawienia GPO dla Windows oraz narzędzia do porównania (Policy Analyzer, LGPO)
DISA STIGwytyczne stosowane m.in. w środowiskach wojskowych
NarzędzieSystemZastosowanie
LynisLinuxaudyt konfiguracji i podatności, wynik ogólny „hardening index”
OpenSCAPLinuxsprawdzanie zgodności z profilami (np. CIS) i raport
Microsoft Security Compliance ToolkitWindowsporównanie z bazami bezpieczeństwa Microsoft
Przykładowe użycie
sudo lynis audit system
sudo oscap xccdf eval --profile xccdf_org.ssgproject.content_profile_cis \
     --report raport.html /usr/share/xml/scap/ssg/content/ssg-ubuntu2204-ds.xml

Proces utwardzania

  • zmierz stan wyjściowy (audyt), zastosuj zmiany w sposób kontrolowany, zmierz ponownie,
  • każdą zmianę testuj (wpływ na stabilność i działanie usług) i dokumentuj,
  • przed zmianami zrób kopię konfiguracji,
  • nie stosuj ślepo wszystkich zaleceń: oceń je w kontekście zadań systemu.
Sprawdź się — zadanie 1

Do czego służy Lynis?

Pokaż przykładową odpowiedź

Do audytu konfiguracji i bezpieczeństwa systemów Linux: wskazuje ustawienia do poprawy i podaje ogólny wskaźnik utwardzenia.

Sprawdź się — zadanie 2

Dlaczego po zastosowaniu zaleceń benchmarku wykonuje się ponowny audyt?

Pokaż przykładową odpowiedź

Aby potwierdzić, że zmiany zostały wprowadzone poprawnie, i ocenić poprawę wyniku oraz upewnić się, że nie spowodowały nowych problemów.

Zadanie praktyczne

Hardening challenge: system Linux i Windows

Szacowany czas: 90 minZakres: Lekcje 23–27Forma: raport z audytu przed i po utwardzaniu

Zadanie

Przygotuj dwa świeżo zainstalowane systemy (Linux i Windows) i doprowadź je do określonego poziomu zabezpieczeń.

Założenia

  • Wykonaj audyt wyjściowy: Lynis (Linux) i przegląd ustawień zasad lokalnych oraz Defendera (Windows). Zapisz wyniki.
  • Linux: skonfiguruj SSH (bez roota, bez hasła), ustaw sysctl, ogranicz uprawnienia kluczowych plików, usuń zbędne pakiety i usługi.
  • Windows: skonfiguruj zasady haseł i blokady konta, wyłącz konto Gość, włącz AppLocker w trybie inspekcji, wyłącz SMBv1 i ogranicz telemetrię.
  • Przed zmianą ustawień rejestru wykonaj kopię odpowiednich gałęzi.
  • Wykonaj audyt końcowy i porównaj wyniki. Napisz raport (1–2 strony): co zmieniono, jaki jest efekt, jakie ryzyka pozostały.

Ocenie podlegać będzie

  • zakres i poprawność wprowadzonych zmian,
  • kopie i kontrola zmian,
  • porównanie wyników audytów,
  • trafna ocena ryzyk szczątkowych,
  • kompletność dokumentacji.
Wskazówki
  • Zmiany wprowadzaj stopniowo i sprawdzaj działanie systemu po każdej.
  • Przed zmianami w SSH utrzymaj otwarte drugie połączenie, aby się nie zablokować.
  • Skorzystaj z lekcji 23–27.

Część F

Bezpieczeństwo hosta, audyt i ochrona przed malware

Zapory hosta, monitorowanie procesów i połączeń, dzienniki i audyt, ochrona przed złośliwym oprogramowaniem, reverse shell i ataki DoS.

Lekcja 28 · Część F

Zapora Windows Defender Firewall

Zapora hosta filtruje ruch na poziomie pojedynczego komputera. W Windows działa w trzech profilach: domenowym, prywatnym i publicznym (stosowanym w sieciach niezaufanych). Reguły dotyczą ruchu przychodzącego i wychodzącego; domyślnie ruch przychodzący jest blokowany, a wychodzący dozwolony.

Konfiguracja przez PowerShell
Get-NetFirewallProfile | Select-Object Name, Enabled, DefaultInboundAction, DefaultOutboundAction
Set-NetFirewallProfile -Profile Domain,Private,Public -Enabled True -DefaultInboundAction Block
Set-NetFirewallProfile -Profile Public -LogBlocked True -LogFileName "%systemroot%\system32\LogFiles\Firewall\pfirewall.log"

New-NetFirewallRule -DisplayName "Zablokuj Telnet" -Direction Inbound -Protocol TCP -LocalPort 23 -Action Block
New-NetFirewallRule -DisplayName "RDP z sieci admin" -Direction Inbound -Protocol TCP -LocalPort 3389 -RemoteAddress 192.168.10.0/24 -Action Allow
Get-NetFirewallRule -Enabled True -Direction Inbound | Select-Object DisplayName, Action | Sort-Object DisplayName
Test skuteczności reguł
Test-NetConnection -ComputerName 192.168.10.20 -Port 3389
  • ruch wychodzący też można ograniczać (np. blokować połączenia programów, które nie powinny łączyć się z internetem),
  • reguły ogranicz do potrzebnych adresów i portów,
  • włącz logowanie zablokowanych połączeń,
  • regularnie przeglądaj reguły i usuwaj nieużywane.
Sprawdź się — zadanie 1

Jak w PowerShell zablokujesz przychodzące połączenia na port 23?

Pokaż przykładową odpowiedź

New-NetFirewallRule -DisplayName "Zablokuj Telnet" -Direction Inbound -Protocol TCP -LocalPort 23 -Action Block.

Sprawdź się — zadanie 2

Po co istnieją trzy profile zapory?

Pokaż przykładową odpowiedź

Aby stosować różne zasady zależnie od zaufania do sieci: surowsze w sieci publicznej (kawiarnia, hotel), łagodniejsze w sieci domenowej firmy.

Lekcja 29 · Część F

Zapora w Linux: ufw, nftables i ochrona przed nadużyciami

W Linux jądro filtruje pakiety (netfilter), a administrator zarządza regułami przez narzędzia: iptables, nowszy nftables lub proste nakładki ufw (Ubuntu) i firewalld (RHEL, z strefami zaufania).

ufw: domyślna odmowa i dostęp SSH z jednej sieci
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow from 192.168.10.0/24 to any port 22 proto tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status verbose
nftables: minimalny zestaw reguł (/etc/nftables.conf)
table inet filter {
  chain input {
    type filter hook input priority 0; policy drop;
    iif lo accept
    ct state established,related accept
    ip saddr 192.168.10.0/24 tcp dport 22 accept
    tcp dport 443 accept
  }
}
Zastosowanie i sprawdzenie
sudo nft -f /etc/nftables.conf
sudo nft list ruleset
# test z innej maszyny w laboratorium
nc -zv 192.168.10.20 22
nc -zv 192.168.10.20 3306

Ochrona przed nadużyciami

  • fail2ban blokuje adresy po wielu nieudanych logowaniach (na podstawie logów),
  • ograniczanie liczby nowych połączeń na zaporze (rate limiting),
  • blokowanie wszystkich nieużywanych portów i usług nasłuchujących na wszystkich interfejsach.
Nie zablokuj sobie dostępu

Zmieniając zaporę na zdalnym serwerze, najpierw dodaj regułę dla swojego połączenia SSH, a dopiero potem włączaj odmowę domyślną. Utrzymaj drugą sesję otwartą do czasu sprawdzenia.

Sprawdź się — zadanie 1

Co oznacza policy drop w łańcuchu input w nftables?

Pokaż przykładową odpowiedź

Że pakiety przychodzące, które nie pasują do żadnej reguły zezwalającej, są odrzucane (domyślna odmowa).

Sprawdź się — zadanie 2

Jak sprawdzisz skuteczność reguł zapory z innego komputera?

Pokaż przykładową odpowiedź

Próbą połączenia z zablokowanym i dozwolonym portem (np. nc -zv host port lub Test-NetConnection) i porównaniem wyniku z założeniami polityki.

Lekcja 30 · Część F

Monitorowanie połączeń i procesów, wykrywanie anomalii

Połączenia i procesy
# Linux
ss -tunap | head -30
sudo lsof -i -P -n | grep ESTABLISHED
ps aux --sort=-%cpu | head
top -b -n1 | head -15

# Windows PowerShell
Get-NetTCPConnection -State Established | Select-Object LocalPort, RemoteAddress, RemotePort, OwningProcess
Get-Process | Sort-Object CPU -Descending | Select-Object -First 10 Name, Id, CPU, Path
Get-AuthenticodeSignature (Get-Process -Id 4242).Path
Podejrzana obserwacjaCo może oznaczaćCo sprawdzić
proces o nazwie podobnej do systemowej (np. svch0st.exe)złośliwy program udający systemowyścieżka pliku, podpis wydawcy, rodzic procesu
proces uruchomiony z katalogu tymczasowego lub Pobranedropper, malwareścieżka, skrót w serwisie reputacji, czas uruchomienia
wysokie, ciągłe użycie CPU przez nieznany proceskoparka kryptowalutnazwa procesu, połączenia sieciowe
nasłuch na nietypowym porciebackdoor lub usługa zdalnego dostępuss -tulpn, który proces i konto
połączenia wychodzące do nieznanych adresów lub w nocykomunikacja z serwerem atakującego (C2), wyciek danychadres w serwisach reputacji, powiązany proces
proces potomny nietypowego rodzica (np. edytor tekstu uruchamia powłokę)wykorzystanie makr lub exploitadrzewo procesów, dziennik zdarzeń

Dokładniejszą telemetrię procesów i połączeń zapewnia Sysmon (Sysinternals): zdarzenie 1 rejestruje utworzenie procesu, a zdarzenie 3 połączenie sieciowe.

Sprawdź się — zadanie 1

W Menedżerze zadań widzisz proces svchost.exe uruchomiony z folderu Pobrane. Co z tego wynika?

Pokaż przykładową odpowiedź

Prawdziwy svchost.exe działa z katalogu System32. Plik w folderze Pobrane to bardzo prawdopodobnie złośliwe oprogramowanie udające proces systemowy. Sprawdzam podpis i skrót pliku i izoluję system.

Sprawdź się — zadanie 2

Jak w Linux sprawdzisz, który proces utrzymuje połączenia z internetem?

Pokaż przykładową odpowiedź

ss -tunap lub lsof -i -P -n pokazuje połączenia wraz z nazwą i PID procesu.

Lekcja 31 · Część F

Logi i audyt zdarzeń

Dzienniki zdarzeń rejestrują działania w systemie: logowania, zmiany kont, uruchomienia usług, błędy. Umożliwiają wykrywanie incydentów, ustalanie przyczyn (rozliczalność) i dowodzenie.

Zdarzenie Windows (dziennik Zabezpieczeń)ID
Udane logowanie4624
Nieudane logowanie4625
Użycie jawnych poświadczeń do logowania4648
Przydzielono uprawnienia specjalne4672
Utworzono proces (przy włączonym audycie)4688
Utworzono konto użytkownika4720
Dodano użytkownika do grupy lokalnej4732
Wyczyszczono dziennik zdarzeń1102
Windows: polityka audytu
auditpol /get /category:*
auditpol /set /subcategory:"Logon" /success:enable /failure:enable
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625,4720,4732} -MaxEvents 30
Linux: dzienniki i auditd
sudo journalctl -u ssh --since "1 hour ago"
sudo tail -f /var/log/auth.log

# auditd: obserwuj zmiany w /etc/passwd i /etc/sudoers
sudo auditctl -w /etc/passwd -p wa -k zmiany_kont
sudo auditctl -w /etc/sudoers -p wa -k zmiany_sudo
sudo ausearch -k zmiany_kont
# trwale: pliki w /etc/audit/rules.d/

Rotacja i centralizacja logów

  • rotacja (logrotate w Linux) zapobiega zapełnieniu dysku i archiwizuje stare logi,
  • centralizacja (np. przekazywanie do serwera przez rsyslog lub agent SIEM, w Windows przekazywanie zdarzeń) chroni logi przed usunięciem przez włamywacza i ułatwia korelację,
  • synchronizuj czas na wszystkich systemach, aby logi dało się porównywać.
Wykrywanie ataku siłowego w logach SSH
grep "Failed password" /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -rn | head
Sprawdź się — zadanie 1

Co oznacza wiele zdarzeń 4625 z jednego adresu w krótkim czasie, po których następuje 4624?

Pokaż przykładową odpowiedź

Prawdopodobny atak siłowy lub słownikowy na konto, zakończony powodzeniem (udane logowanie po wielu próbach). Wymaga natychmiastowej reakcji: blokady, zmiany hasła, analizy działań konta.

Sprawdź się — zadanie 2

Po co przekazuje się logi na osobny serwer?

Pokaż przykładową odpowiedź

Aby atakujący, który przejmie system, nie mógł usunąć lub zmienić śladów, oraz aby ułatwić korelację zdarzeń z wielu systemów.

Lekcja 32 · Część F

Ochrona przed szkodliwym oprogramowaniem i analiza incydentu

ZabezpieczenieOpis
Antywirus / EDRMicrosoft Defender (Windows), ClamAV (Linux), rozwiązania EDR analizujące zachowanie programów
Aktualizacje sygnatur i systemuUpdate-MpSignature, freshclam, aktualizacje poprawek
Białe listy aplikacjiAppLocker i WDAC (Windows), AppArmor/SELinux, montowanie z noexec (Linux)
Najmniejsze uprawnieniaograniczają skutki uruchomienia malware
Kopie zapasoweodtworzenie po ransomware
Skanowanie
# Windows
Get-MpComputerStatus
Update-MpSignature
Start-MpScan -ScanType QuickScan

# Linux (ClamAV)
sudo freshclam
sudo clamscan -r --infected /home

Jak działa typowe złośliwe oprogramowanie

  • dostarczenie: załącznik, pobrany plik, exploit,
  • uruchomienie i utrwalenie: wpisy autostartu, zadania zaplanowane, usługi,
  • komunikacja z serwerem atakującego (C2) i pobieranie kolejnych modułów,
  • działanie końcowe: kradzież, szyfrowanie, rozprzestrzenianie.

Reverse shell: pojęcie i wykrywanie

W ataku typu reverse shell to zainfekowany komputer sam nawiązuje połączenie wychodzące do atakującego i oddaje mu powłokę poleceń. Zapory często zezwalają na ruch wychodzący, dlatego taki sposób omija ochronę. Ćwiczenie symulujące ten atak wykonuje się wyłącznie w izolowanym laboratorium, zgodnie ze scenariuszem nauczyciela.

WskaźnikGdzie szukać
proces powłoki (bash, sh, powershell, cmd) z aktywnym połączeniem do obcego adresuss -tnp, Get-NetTCPConnection + OwningProcess
nietypowy proces potomny usługi lub aplikacjidrzewo procesów, Sysmon (zdarzenie 1)
długotrwałe połączenie wychodzące na nietypowy portmonitor połączeń, logi zapory
zmiany w autostarcie i zadaniachAutoruns, crontab -l, schtasks /query

Reakcja: odizoluj system od sieci, zachowaj dowody (zrzut pamięci, logi), zidentyfikuj proces i sposób wejścia, usuń mechanizmy utrwalenia, zmień narażone hasła i klucze, odtwórz ze znanej dobrej kopii, udokumentuj i zgłoś incydent.

Sprawdź się — zadanie 1

Dlaczego reverse shell trudno zatrzymać zaporą, która blokuje tylko ruch przychodzący?

Pokaż przykładową odpowiedź

Połączenie inicjuje zainfekowany komputer (ruch wychodzący), a taki ruch zwykle jest dozwolony. Skuteczna jest kontrola ruchu wychodzącego i monitorowanie nietypowych połączeń procesów powłoki.

Sprawdź się — zadanie 2

Jaki jest pierwszy krok po stwierdzeniu aktywnego reverse shella na serwerze?

Pokaż przykładową odpowiedź

Odizolowanie systemu od sieci (z zachowaniem dowodów), aby przerwać komunikację atakującego i ograniczyć szkody, a następnie analiza i usunięcie przyczyny.

Lekcja 33 · Część F

Ochrona hosta przed atakami typu Denial of Service

Atak DoS na host ma na celu wyczerpanie jego zasobów: łączy sieciowych, pamięci, procesora, miejsca na dysku lub liczby procesów. Skutkiem jest utrata dostępności usług.

ZagrożenieDziałanieOchrona
SYN floodzalew segmentami SYN, tablica półotwartych połączeń się zapełniaSYN cookies, limity połączeń, zapora
Wyczerpanie procesów (fork bomb)program tworzy procesy bez końcalimity procesów (ulimit, LimitNPROC)
Zapełnienie dyskurosnące logi lub plikikwoty, rotacja logów, osobne partycje
Wyczerpanie pamięciproces zajmuje całą pamięćlimity zasobów (cgroups), monitoring
Brute-force na usługiliczne próby logowaniafail2ban, blokada konta, MFA
Ustawienia obronne w Linux
# SYN cookies
sudo sysctl -w net.ipv4.tcp_syncookies=1

# limit procesów i plików dla użytkownika (/etc/security/limits.conf)
anna  hard  nproc   200
anna  hard  nofile  4096

# w jednostce systemd
[Service]
LimitNPROC=200
MemoryMax=512M

# ograniczenie liczby nowych połączeń SSH na zaporze
sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m limit --limit 10/min --limit-burst 20 -j ACCEPT

W Windows ochronę zapewniają zapora, ograniczenia zasobów dla usług, aktualizacje oraz monitorowanie liczników wydajności (procesor, pamięć, dysk, połączenia). Dla ataków wolumetrycznych potrzebne są też zabezpieczenia na poziomie sieci i operatora.

Sprawdź się — zadanie 1

Czym jest SYN flood i jak się przed nim bronić?

Pokaż przykładową odpowiedź

Atakujący wysyła ogromną liczbę segmentów SYN bez kończenia uzgodnienia, przez co tablica półotwartych połączeń serwera się zapełnia. Pomaga włączenie SYN cookies, limity połączeń i filtrowanie zaporą.

Sprawdź się — zadanie 2

Dlaczego limitowanie liczby procesów chroni przed fork bombą?

Pokaż przykładową odpowiedź

Fork bomba tworzy procesy w nieskończoność i wyczerpuje zasoby. Limit liczby procesów dla użytkownika lub usługi zatrzymuje wzrost, zanim system przestanie odpowiadać.

Zadanie praktyczne

Zabezpieczenie hosta i analiza incydentu na podstawie logów

Szacowany czas: 75 minZakres: Lekcje 28–33Forma: raport z analizy i konfiguracji

Zadanie

Zabezpiecz serwer Linux zaporą i przeanalizuj dziennik zdarzeń z podejrzaną aktywnością.

Fragment dziennika /var/log/auth.log do analizy:

Oct  5 03:12:44 srv sshd[2210]: Failed password for root from 203.0.113.50 port 51822 ssh2
Oct  5 03:12:46 srv sshd[2212]: Failed password for root from 203.0.113.50 port 51830 ssh2
Oct  5 03:12:48 srv sshd[2214]: Failed password for invalid user admin from 203.0.113.50 port 51836 ssh2
Oct  5 03:12:51 srv sshd[2216]: Failed password for invalid user test from 203.0.113.50 port 51842 ssh2
Oct  5 03:13:02 srv sshd[2220]: Failed password for anna from 203.0.113.50 port 51850 ssh2
Oct  5 03:13:05 srv sshd[2222]: Accepted password for anna from 203.0.113.50 port 51858 ssh2
Oct  5 03:13:40 srv sudo:     anna : TTY=pts/0 ; PWD=/home/anna ; USER=root ; COMMAND=/usr/bin/useradd -m support
Oct  5 03:14:10 srv crontab[2301]: (anna) REPLACE (anna)

Założenia

  • Skonfiguruj zaporę (ufw lub nftables) z domyślną odmową, dostępem SSH tylko z sieci administracyjnej i HTTPS dla wszystkich; sprawdź skuteczność reguł z drugiej maszyny.
  • Przeanalizuj dostarczony fragment dziennika auth.log: ustal, co się wydarzyło, kiedy, z jakiego adresu i jakie konto zostało skompromitowane.
  • Wypisz wskaźniki naruszenia (IOC) i działania atakującego po zalogowaniu (nowe konto, zmiana zadań cron).
  • Zaplanuj reakcję: izolacja, zbieranie dowodów, usunięcie utrwalenia, zmiana haseł i kluczy, odtworzenie, zgłoszenie.
  • Zaproponuj trzy zmiany konfiguracji, które zapobiegłyby takiemu incydentowi (np. wyłączenie logowania hasłem, fail2ban, MFA) i opisz, jak sprawdzisz ich skuteczność.

Ocenie podlegać będzie

  • poprawna konfiguracja zapory i jej testy,
  • trafna interpretacja logów,
  • komplet wskaźników naruszenia,
  • poprawny plan reakcji,
  • sensowne środki zapobiegawcze.
Wskazówki
  • Zwróć uwagę na kolejność zdarzeń: wiele nieudanych prób, następnie udane logowanie.
  • Skorzystaj z tabeli wskaźników w lekcji 32 i poleceń z lekcji 31.
  • Ćwiczenia wykonuj wyłącznie w środowisku laboratoryjnym.

Część G

Kopie zapasowe, wirtualizacja, kontenery i chmura

Planowanie kopii i odtwarzania, maszyny wirtualne i ich sieci, bezpieczeństwo kontenerów oraz bezpieczne wdrażanie Linux i kontenerów w chmurze.

Lekcja 34 · Część G

Kopie zapasowe i odtwarzanie systemów

Kopia zapasowa to zapasowy egzemplarz danych lub systemu, z którego można odtworzyć stan po awarii, błędzie lub ataku (zwłaszcza ransomware). Kopia, której odtwarzania nigdy nie sprawdzono, nie jest gwarancją.

Rodzaj kopiiCo zapisujeZaletyWady
Pełnawszystkie wybrane danenajprostsze odtwarzanienajdłużej trwa, zajmuje najwięcej miejsca
Różnicowazmiany od ostatniej kopii pełnejodtwarzanie z dwóch kopii (pełna + ostatnia różnicowa)z czasem rośnie
Przyrostowazmiany od ostatniej dowolnej kopiinajszybsza i najmniejszaodtwarzanie wymaga całego łańcucha kopii

Zasada 3-2-1

  • 3 kopie danych (oryginał i dwie kopie),
  • na 2 różnych rodzajach nośników,
  • z 1 kopią przechowywaną w innym miejscu (poza lokalizacją lub w chmurze).
  • Rozszerzenie: kopia niezmienialna lub odłączona od sieci (ochrona przed ransomware) i test odtwarzania bez błędów (3-2-1-1-0).

Dwa parametry planowania: RPO (ile danych możemy stracić, czyli jak często robić kopie) i RTO (jak szybko system ma być odtworzony).

Windows i Linux: przykłady
# Windows: kopia systemu na dysk E:
wbadmin start backup -backupTarget:E: -include:C: -allCritical -quiet
# kopiowanie folderu (UWAGA: /MIR usuwa w celu pliki, których nie ma w źródle)
robocopy C:\Dane E:\Kopia\Dane /MIR /Z /R:2 /W:5 /LOG:E:\Kopia\robocopy.log

# Linux: rsync z zachowaniem uprawnień, tar z kompresją
sudo rsync -aAXv --delete /home/ /mnt/kopia/home/
sudo tar -czpf /mnt/kopia/etc-$(date +%F).tar.gz /etc
Weryfikacja integralności po przywróceniu
sha256sum /home/anna/dokument.odt /mnt/kopia/home/anna/dokument.odt
diff -r /home/anna /mnt/kopia/home/anna && echo "Zgodne"
Sprawdź się — zadanie 1

Wyjaśnij zasadę 3-2-1.

Pokaż przykładową odpowiedź

Trzy kopie danych, na dwóch różnych typach nośników, z jedną kopią przechowywaną poza miejscem głównym (inna lokalizacja lub chmura). Zmniejsza to ryzyko utraty wszystkich kopii jednocześnie.

Sprawdź się — zadanie 2

Dlaczego kopia przyrostowa wymaga całego łańcucha kopii do odtworzenia?

Pokaż przykładową odpowiedź

Każda kopia przyrostowa zawiera tylko zmiany od poprzedniej, więc odtworzenie wymaga kopii pełnej i wszystkich kolejnych przyrostowych w prawidłowej kolejności.

Lekcja 35 · Część G

Wirtualizacja: maszyny wirtualne, migawki i sieci

Wirtualizacja pozwala uruchomić wiele odizolowanych systemów na jednym sprzęcie. Hiperwizor dzieli zasoby (procesor, pamięć, dysk, sieć) między maszyny wirtualne.

Typ hiperwizoraDziałaniePrzykłady
Typ 1 (bare-metal)działa bezpośrednio na sprzęcie, wydajny, stosowany w serwerowniachHyper-V, VMware ESXi, KVM, Xen
Typ 2 (hostowany)działa jako program w systemie gospodarza, wygodny do nauki i testówVirtualBox, VMware Workstation

Migawki a kopie zapasowe

Migawka (snapshot) zapisuje stan maszyny w danym momencie i pozwala szybko do niego wrócić (ułatwia testy i aktualizacje). To nie jest kopia zapasowa: zależy od tego samego dysku, więc jej utrata lub uszkodzenie oznacza utratę danych. Długi łańcuch migawek obniża wydajność.

Tryb sieciDostęp do internetuKomunikacja z gospodarzemZastosowanie
NATtakograniczonapodstawowy dostęp maszyny do internetu
Bridged (most)taktak, jak zwykły host w sieciusługi dostępne w sieci lokalnej
Host-onlynietakizolowane laboratorium z dostępem z gospodarza
Internal (wewnętrzna)nieniecałkowicie odizolowane laboratorium, np. do testów malware
  • do ćwiczeń ofensywnych i analizy malware używaj sieci Host-only lub Internal, nigdy sieci Bridged,
  • optymalizuj zasoby: przydziel tylko potrzebną pamięć i liczbę procesorów, dyski thin provisioning,
  • migracja między platformami: eksport do formatu OVA/OVF lub konwersja dysków (qemu-img convert -O qcow2 dysk.vmdk dysk.qcow2), a po migracji sprawdź działanie usług,
  • aktualizuj hiperwizor i dodatki gościa, ogranicz funkcje współdzielenia schowka i folderów, szyfruj maszyny z danymi wrażliwymi.
Sprawdź się — zadanie 1

Czym różni się migawka maszyny wirtualnej od kopii zapasowej?

Pokaż przykładową odpowiedź

Migawka jest zapisana na tym samym nośniku i szybko przywraca stan maszyny, ale nie chroni przed awarią dysku ani utratą danych. Kopia zapasowa jest niezależną kopią przechowywaną osobno.

Sprawdź się — zadanie 2

Którego trybu sieci użyjesz do bezpiecznej analizy podejrzanego programu?

Pokaż przykładową odpowiedź

Sieci wewnętrznej (Internal) lub Host-only, bez dostępu do internetu i sieci lokalnej, aby malware nie mogło się rozprzestrzenić.

Lekcja 36 · Część G

Docker i bezpieczeństwo kontenerów

Kontener to odizolowany proces z własnym widokiem systemu plików, sieci i procesów, współdzielący jądro systemu gospodarza. Jest lżejszy niż maszyna wirtualna, ale izolacja jest słabsza: błąd w jądrze lub nadmierne uprawnienia kontenera mogą zagrozić hostowi. Obraz to niezmienny szablon, z którego uruchamia się kontenery.

Podstawowy cykl życia
docker pull nginx:1.27
docker run -d --name www -p 127.0.0.1:8080:80 nginx:1.27
docker ps
docker logs www
docker stop www && docker rm www
docker images
docker rmi nginx:1.27
Dockerfile z dobrymi praktykami
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
RUN useradd --system --no-create-home appuser
USER appuser
EXPOSE 8000
CMD ["python", "app.py"]

Zasady bezpieczeństwa kontenerów

  • uruchamiaj proces jako użytkownik nie-root (USER),
  • używaj minimalnych obrazów bazowych (slim, alpine) i przypinaj wersje (nie latest),
  • nie używaj --privileged i nie montuj /var/run/docker.sock do kontenera,
  • ogranicz możliwości: --cap-drop ALL, --read-only, limity --memory i --cpus,
  • otwieraj tylko wymagane porty i wiąż je z konkretnym interfejsem (127.0.0.1:8080:80),
  • nie zapisuj sekretów w obrazie ani w zmiennych w Dockerfile; skanuj obrazy narzędziem (np. Trivy) i aktualizuj.
Sprawdź się — zadanie 1

Czym różni się kontener od maszyny wirtualnej?

Pokaż przykładową odpowiedź

Kontener współdzieli jądro systemu gospodarza i izoluje tylko procesy, więc jest lżejszy i szybszy, ale ma słabszą izolację. Maszyna wirtualna ma własny system operacyjny i jest silniej odizolowana.

Sprawdź się — zadanie 2

Dlaczego nie należy uruchamiać kontenera z opcją --privileged ani montować gniazda Dockera?

Pokaż przykładową odpowiedź

Dają kontenerowi niemal pełną kontrolę nad hostem. Atakujący, który przejmie taki kontener, może przejąć cały system gospodarza.

Lekcja 37 · Część G

Chmura obliczeniowa i model współdzielonej odpowiedzialności

Chmura obliczeniowa to model udostępniania zasobów informatycznych przez sieć na żądanie: samoobsługa, szeroki dostęp sieciowy, współdzielenie zasobów, szybka elastyczność i pomiar zużycia (płatność za użycie).

Model usługiDostawca zarządzaKlient zarządzaPrzykład
IaaSsprzęt, sieć, wirtualizacjasystem operacyjny, aplikacje, dane, konfiguracjamaszyna wirtualna w chmurze
PaaStakże system, środowisko uruchomienioweaplikacja i daneplatforma do uruchamiania aplikacji
SaaSprawie wszystko, w tym aplikacjadane, konta, konfiguracja dostępupoczta i pakiet biurowy online
Model wdrożeniaOpis
Publicznazasoby dostawcy współdzielone przez wielu klientów
Prywatnainfrastruktura wyłącznie dla jednej organizacji (własna lub dzierżawiona)
Hybrydowapołączenie chmury prywatnej i publicznej
Model współdzielonej odpowiedzialności

Dostawca odpowiada za bezpieczeństwo chmury (infrastruktura, sprzęt), a klient za bezpieczeństwo w chmurze: dane, konta i uprawnienia, konfigurację, aplikacje. Im bliżej IaaS, tym więcej odpowiedzialności po stronie klienta. Dane i tożsamości zawsze należą do klienta.

Typowe zagrożenia w chmurze

  • błędna konfiguracja (publicznie dostępne magazyny danych, otwarte porty),
  • nadmierne uprawnienia kont i ról, brak MFA,
  • wyciekłe klucze dostępu w kodzie lub repozytoriach,
  • brak monitorowania i dzienników audytu.
Sprawdź się — zadanie 1

Kto odpowiada za łatanie systemu operacyjnego maszyny wirtualnej w modelu IaaS?

Pokaż przykładową odpowiedź

Klient. Dostawca zarządza infrastrukturą i wirtualizacją, a system gościa, aplikacje i konfiguracja należą do klienta.

Sprawdź się — zadanie 2

Podaj jedną typową przyczynę wycieków danych z chmury.

Pokaż przykładową odpowiedź

Błędna konfiguracja, np. magazyn danych ustawiony jako publicznie dostępny, albo zbyt szerokie uprawnienia i wyciek kluczy dostępu.

Lekcja 38 · Część G

Bezpieczne wdrażanie systemu Linux i kontenerów w chmurze

Wdrażając instancję Linux lub kontener w chmurze, stosuje się te same zasady co lokalnie, uzupełnione o mechanizmy dostawcy. Poniższa lista jest niezależna od konkretnej platformy.

ObszarDobra praktyka
Obrazutwardzony, aktualny obraz (wzorzec CIS lub własny, zweryfikowany); ograniczony zestaw pakietów
Dostęp administracyjnyklucze SSH, wyłączone logowanie hasłem i dostęp roota; najlepiej bastion lub usługa sesji zamiast otwartego SSH do całego internetu
Zapora chmurowagrupy zabezpieczeń i listy ACL sieci z zasadą domyślnej odmowy; otwarte tylko potrzebne porty i adresy
Tożsamość usługrole tożsamości przypisane instancji lub kontenerowi zamiast statycznych kluczy dostępu zapisanych na dysku lub w kodzie
Sekretyusługa zarządzania sekretami zamiast haseł w plikach i zmiennych
Daneszyfrowanie dysków i magazynów w spoczynku, szyfrowanie w ruchu (TLS)
Konteneryizolacja sieciowa, prywatny rejestr obrazów i skanowanie obrazów pod kątem podatności, brak uprawnień roota
Monitorowaniedziennik audytu działań na koncie chmurowym, logi systemowe wysyłane poza instancję, alerty
Utwardzenie SSH na nowej instancji
sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
sudo sshd -t && sudo systemctl reload ssh
Klucze w kodzie

Wyciek klucza dostępu zapisanego w repozytorium to jedna z najczęstszych przyczyn przejęcia kont w chmurze. Używaj ról i krótkotrwałych poświadczeń, włącz skanowanie repozytoriów pod kątem sekretów i MFA dla kont administratorów.

Sprawdź się — zadanie 1

Dlaczego instancja w chmurze powinna używać roli tożsamości zamiast statycznego klucza dostępu?

Pokaż przykładową odpowiedź

Rola dostarcza krótkotrwałe, automatycznie odnawiane poświadczenia, więc nie ma klucza do wykradzenia z dysku czy repozytorium, a uprawnienia można ograniczyć do minimum.

Sprawdź się — zadanie 2

Co oznacza zasada Default Deny w chmurowej zaporze?

Pokaż przykładową odpowiedź

Blokowany jest cały ruch, który nie został jawnie dozwolony regułą. Dzięki temu otwarte są tylko potrzebne porty i adresy.

Zadanie praktyczne

Bezpieczne środowisko: kopia, maszyna wirtualna, kontener i chmura

Szacowany czas: 90 minZakres: Lekcje 34–38Forma: ćwiczenie, plan i dokumentacja

Zadanie

Przygotuj plan i prototyp bezpiecznego środowiska dla małej aplikacji WWW.

Założenia

  • Przygotuj maszynę wirtualną Linux w sieci Host-only, wykonaj migawkę i zapisz różnicę między migawką a kopią zapasową.
  • Zaplanuj kopie zapasowe według zasady 3-2-1: wskaż rodzaje kopii, częstotliwość (RPO) i szacowany czas odtworzenia (RTO). Wykonaj kopię katalogu i sprawdź odtworzenie (diff -r lub skróty).
  • Przygotuj Dockerfile prostej aplikacji z użytkownikiem nie-root i minimalnym obrazem; uruchom kontener z ograniczonymi możliwościami i jednym portem.
  • Opisz wdrożenie tej aplikacji w chmurze: modele usługi i odpowiedzialności, zasady zapory, tożsamość usługi, sekrety i szyfrowanie.
  • Wskaż trzy największe ryzyka całego rozwiązania i środki ograniczające.

Ocenie podlegać będzie

  • poprawny plan kopii zapasowych i test odtwarzania,
  • poprawna konfiguracja sieci wirtualnej,
  • bezpieczny Dockerfile i uruchomienie kontenera,
  • trafny opis zabezpieczeń w chmurze,
  • ocena ryzyka.
Wskazówki
  • Skorzystaj z zasad w lekcjach 34–38.
  • Dockerfile i polecenia uruchamiaj wyłącznie w środowisku laboratoryjnym.
  • Do kopii i odtworzenia użyj niewielkiego katalogu testowego.