Dataniedziela, 9 sierpnia 2026 Czas07:24:26
← Bezpieczeństwo i prawo w informatyce

Lekcja 3. Cyberbezpieczeństwo — malware, phishing i uwierzytelnianie dwuskładnikowe

Średni

Po co się tego uczymy?

Znasz już matematyczne podstawy szyfrowania i prawne zasady ochrony danych — ostatnim elementem układanki jest wiedza o tym, JAK w praktyce atakujący próbują obejść te zabezpieczenia, i jak skutecznie się przed tym bronić. To najbardziej praktyczna lekcja tego działu — wiedza przydatna każdego dnia, nie tylko na egzaminie.

Teoria

Malware (złośliwe oprogramowanie) — zbiorcza nazwa programów szkodzących użytkownikowi. Główne typy:

  • Wirus — dołącza się do innego, legalnego programu i rozprzestrzenia się, gdy zainfekowany plik jest uruchamiany/kopiowany.
  • Robak (worm) — samodzielnie rozprzestrzenia się przez sieć, BEZ potrzeby dołączania się do innego programu ani działania użytkownika.
  • Koń trojański (trojan) — udaje pożyteczny, legalny program (np. "darmowy program do konwersji plików"), a w rzeczywistości wykonuje szkodliwe działania w tle.
  • Ransomware — szyfruje pliki na dysku ofiary (wykorzystując kryptografię z poprzedniej lekcji, ale w CELACH SZKODLIWYCH) i żąda okupu za klucz odszyfrowujący.
  • Keylogger — rejestruje każde naciśnięcie klawisza, wykradając hasła i inne poufne dane wpisywane przez ofiarę.
  • Spyware — potajemnie zbiera informacje o użytkowniku (historia przeglądania, dane osobowe) i wysyła je do atakującego.

Phishing — próba OSZUSTWA polegająca na podszyciu się pod zaufaną instytucję (bank, znajomy, popularny serwis) w wiadomości e-mail/SMS, aby nakłonić ofiarę do podania danych logowania, numeru karty płatniczej albo kliknięcia w szkodliwy link. Rozpoznawalne cechy phishingu: presja czasu ("Twoje konto zostanie zablokowane w ciągu 24h!"), literówki w adresie nadawcy, link prowadzący do domeny PODOBNEJ, ale nie identycznej z prawdziwą (np. "paypa1.com" zamiast "paypal.com").

Inżynieria społeczna — szerszy termin obejmujący phishing: wykorzystywanie psychologicznych mechanizmów (zaufanie, strach, pośpiech, ciekawość) do nakłonienia ofiary, by SAMA ujawniła poufne informacje albo wykonała szkodliwą akcję — często skuteczniejsze niż łamanie zabezpieczeń technicznych.

Uwierzytelnianie dwuskładnikowe (2FA / MFA) — dodatkowa warstwa zabezpieczenia logowania: oprócz znanego hasła (coś, co WIESZ) wymagany jest drugi składnik, np. jednorazowy kod z aplikacji lub SMS-a (coś, co MASZ — telefon) albo odcisk palca (coś, czym JESTEŚ — biometria). Nawet jeśli atakujący pozna hasło (np. przez phishing), bez drugiego składnika NIE zaloguje się na konto.

Zapora sieciowa (firewall) — system kontrolujący ruch sieciowy wchodzący i wychodzący z komputera/sieci, blokujący nieautoryzowane połączenia zgodnie z ustalonymi regułami — pierwsza linia obrony przed atakami z zewnątrz.

Aktualizacje oprogramowania — producenci regularnie wydają poprawki (patch) naprawiające odkryte luki bezpieczeństwa (podatności) — ignorowanie aktualizacji systemu i programów pozostawia znane, udokumentowane "furtki" otwarte dla atakujących.

Silne hasło i menedżer haseł — silne hasło jest długie (min. 12+ znaków), unikalne dla każdego serwisu i nie zawiera oczywistych informacji (imię, data urodzenia). Menedżer haseł to program bezpiecznie przechowujący (w zaszyfrowanej formie) unikalne, losowe hasła do wszystkich kont, tak by użytkownik musiał pamiętać tylko JEDNO, główne hasło.

Schemat

WARSTWY OBRONY KONTA UŻYTKOWNIKA:

  Warstwa 1: SILNE, UNIKALNE HASŁO
             (menedżer haseł, 12+ znaków, różne dla każdego serwisu)
                          ↓
  Warstwa 2: UWIERZYTELNIANIE DWUSKŁADNIKOWE (2FA)
             (nawet wykradzione hasło nie wystarczy do zalogowania)
                          ↓
  Warstwa 3: CZUJNOŚĆ NA PHISHING
             (sprawdzanie adresu nadawcy i linku PRZED kliknięciem)
                          ↓
  Warstwa 4: AKTUALNE OPROGRAMOWANIE + ZAPORA SIECIOWA
             (łatanie znanych luk, blokowanie podejrzanego ruchu)

  (atakujący musi pokonać WSZYSTKIE warstwy, nie tylko jedną)

Przykład z życia

Pracownik firmy dostaje e-mail rzekomo "od działu IT", proszący o pilne zalogowanie się na podany link w celu "weryfikacji konta" pod groźbą jego zablokowania. Uważny odbiorca sprawdza adres nadawcy (widzi drobną literówkę w domenie), najeżdża myszką na link bez klikania (widzi, że prowadzi do zupełnie innej domeny niż firmowa) i zgłasza wiadomość jako phishing zamiast klikać — dokładnie tak rozpoznaje się i unika tego typu ataku.

walidator_hasla.py

# Prosty "walidator siły hasła" - demonstracja podstawowych zasad
# silnego hasła w Pythonie (nie zastępuje prawdziwych narzędzi
# bezpieczeństwa, ale ilustruje kryteria oceny)

def ocen_sile_hasla(haslo):
    uwagi = []
    punkty = 0

    if len(haslo) >= 12:
        punkty += 1
    else:
        uwagi.append("Hasło powinno mieć co najmniej 12 znaków")

    if any(znak.isupper() for znak in haslo):
        punkty += 1
    else:
        uwagi.append("Dodaj przynajmniej jedną wielką literę")

    if any(znak.isdigit() for znak in haslo):
        punkty += 1
    else:
        uwagi.append("Dodaj przynajmniej jedną cyfrę")

    if any(not znak.isalnum() for znak in haslo):
        punkty += 1
    else:
        uwagi.append("Dodaj znak specjalny (np. ! # $ %)")

    return punkty, uwagi


haslo_do_sprawdzenia = "kotek123"
punkty, uwagi = ocen_sile_hasla(haslo_do_sprawdzenia)

print(f"Hasło: {haslo_do_sprawdzenia}")
print(f"Wynik: {punkty}/4 punktów")
for uwaga in uwagi:
    print(f"- {uwaga}")

Komentarz i wyjaśnienie kodu

Funkcja any(znak.isupper() for znak in haslo) to WYRAŻENIE GENERUJĄCE (generator expression) połączone z funkcją any() — sprawdza, czy CHOĆ JEDEN znak w haśle spełnia warunek, bez konieczności pisania osobnej pętli for z flagą logiczną. To zwięzły, "pythonowy" sposób zapisu tego, co poznałeś jako zwykłą pętlę w dziale "Python — programowanie".

To narzędzie ocenia tylko PODSTAWOWE kryteria złożoności hasła — prawdziwe systemy bezpieczeństwa sprawdzają dodatkowo, czy hasło nie występuje w znanych bazach wyciekłych haseł, co jest znacznie skuteczniejszą metodą wykrywania słabych haseł niż same reguły składniowe.

Ćwiczenie samodzielne

Skopiuj powyższy kod do Plac zabaw poniżej lekcji i sprawdź wynik dla kilku różnych haseł — własnego (bez ujawniania go nikomu, wpisz coś podobnego strukturalnie), bardzo prostego (np. "12345678") i bardzo złożonego. Porównaj liczbę uzyskanych punktów.

Plac zabaw — wypróbuj online

Poniższy kod wykonuje się od razu w Twojej przeglądarce — nic nie trzeba instalować. Zmień kod i kliknij „Uruchom”.

PYTHON

Zadania do pracy własnej

  1. Wymień 3 charakterystyczne cechy wiadomości phishingowej, po których można ją rozpoznać, zanim kliknie się w jakikolwiek link.

  2. Rozbuduj powyższy kod Pythona o funkcję sprawdz_typowe_haslo(haslo, lista_typowych), która sprawdza, czy podane hasło znajduje się na przekazanej liście najpopularniejszych, najczęściej wykradanych haseł (np. ["123456", "password", "qwerty", "haslo123"]) i jeśli tak — zwraca ostrzeżenie, NIEZALEŻNIE od wyniku punktowego z poprzedniej funkcji.

  3. Napisz krótką (5-8 zdań) analizę: opisz różnicę między wirusem, robakiem i koniem trojańskim pod względem sposobu ROZPRZESTRZENIANIA się, a następnie wyjaśnij, dlaczego uwierzytelnianie dwuskładnikowe (2FA) skutecznie broni konto użytkownika nawet w sytuacji, gdy padł on ofiarą udanego ataku phishingowego i podał swoje hasło atakującemu.

Typowe błędy

Używanie tego samego hasła w wielu serwisach — wyciek hasła z JEDNEGO, mniej zabezpieczonego serwisu automatycznie zagraża WSZYSTKIM innym kontom używającym tego samego hasła.

Klikanie w linki z podejrzanych wiadomości bez sprawdzenia adresu — atakujący celowo tworzą adresy bardzo podobne do prawdziwych (literówki, inna domena najwyższego poziomu), licząc na nieuwagę ofiary.

Ignorowanie aktualizacji systemu/programów "bo działa i tak" — każda pominięta aktualizacja bezpieczeństwa pozostawia znaną, udokumentowaną publicznie lukę, którą mogą wykorzystać atakujący.

Wyłączanie 2FA "dla wygody" — rezygnacja z drugiego składnika logowania znacząco obniża bezpieczeństwo konta, zwłaszcza dla kont o wysokiej wartości (poczta główna, bankowość, media społecznościowe).

Nawiązanie do egzaminu zawodowego

Tą lekcją kończy się dział "Bezpieczeństwo i prawo", a wraz z nim CAŁY dział "Informatyka" tego kursu — od podstaw programowania w Pythonie, przez algorytmy, sprzęt i sieci, arkusz kalkulacyjny, grafikę i multimedia, aż po prawo i bezpieczeństwo cyfrowe. Wiedza z tego działu uzupełnia umiejętności programistyczne poznane w głównym torze kursu (INF.03/INF.04) o szerszy kontekst wymagany na maturze z informatyki.