Wstęp do Cyberbezpieczeństwa i Kryptografii (d. 1000-215bBSK) 1000-2M24WCK
Wykład będzie składał się z trzech segmentów.
Na początek zaplanowano przeglądowy opis klasycznej kryptografii (szyfrowanie symetryczne i asymetryczne, podpis cyfrowy itp.) oraz jej podstaw matematycznych (np. roli krzywych eliptycznych).
W drugiej części przedstawiony zostanie zarys (w ujęciu teoretycznym) zastosowań tych mechanizmów (VPN, TOR, blockchain itp.) oraz klasycznych i historycznych ataków na nie.
Ostatni segment będzie spojrzeniem w przyszłość, tzn. omówiony zostanie wybór istniejących pomysłów matematycznych, które jeszcze nie są w powszechnym użyciu, ale przypuszczalnie mają szansę być istotne w przyszłości. Omówione zostaną m.in.: multi-party computation, e-voting, zero-knowledge oraz podstawy bezpieczeństwa świata postkwantowego.
Na zajęciach laboratoryjnych studenci będą atakować źle zabezpieczone systemy - a dzięki temu poznają różne rodzaje podatności i dowiedzą się, jak pisać bezpieczniejszy kod. W trakcie zajęć omówione zostanie m.in., w jaki sposób można złamać zabezpieczenia aplikacji webowej, łamać szyfry, wykorzystywać niskopoziomowe podatności takie jak np. przepełnienie bufora, a także przeprowadzać inżynierię wsteczną skompilowanych programów. Zajęcia będą zawierały dużą liczbę ćwiczeń, w ramach których zadaniem studentów będzie przede wszystkim znalezienie i wykorzystanie luki w zabezpieczeniach. Jednak oprócz technik ataków, przedstawione zostaną również sposoby zabezpieczania się przed nimi.
Rodzaj przedmiotu
Koordynatorzy przedmiotu
Kryteria oceniania
Ocena końcowa wystawiana jest na podstawie sumy punktów uzyskanych z 4 zadań laboratoryjnych (łącznie 0 do 40) i egzaminu (0 do 15).
Egzamin jest pisemny i składa się z 15 krótkich pytań.
UWAGA: jedna z grup może być grupą gwiazdkową (o zwiększonym stopniu trudności), szczegóły znajdują się w opisach poszczególnych grup.
// edycja 24/25: gwiazdkowa będzie grupa piątkowa
Literatura
Kryptografia
Yehuda Lindell, Jonathan Katz, “Introduction to Modern Cryptography”;
Jean-Philippe Aumasson, “Serious Cryptography: A Practical Introduction to Modern Encryption”;
Serwis Coursera.org: kurs internetowy Cryptography I (darmowy w wersji bez certyfikatu);
Serwis Cryptopals (https://cryptopals.com/): zbiór zadań na implementację różnych konstrukcji kryptograficznych oraz klasycznych ataków;
Laurens Van Houtven “Crypto101” (https://www.crypto101.io/);
Miesięcznik “Delta”: rubryka “A jednak się da” (https://www.deltami.edu.pl/delta/rubryka/a_jednak_sie_da/).
Aplikacje webowe
Serwis Sekurak (https://sekurak.pl/): artykuły na temat różnych rodzajów podatności (XSS, SQL Injection, XXE itp.);
Serwis PortSwigger (https://portswigger.net/web-security): artykuły z sekcji Web Security Academy;
Serwis Root Me (https://root-me.org/): zadania z kategorii Web;
Michał Bentkowski, Gynvael Coldwind i inni: “Bezpieczeństwo Aplikacji Webowych”.
Inżynieria wsteczna
Gynvael Coldwind, “FAQ: How to learn reverse-engineering” (https://gynvael.coldwind.pl/?id=664);
Dennis Yurishev, “Reverse Engineering for Beginners” (https://beginners.re/);
Dennis Andriesse, “Practical Binary Analysis”.
Eksploitacja binarna
Serwis https://pwnable.kr/: zadania;
Serwis https://pwnable.xyz/: zadania;
Serwis https://pwn.college/: zadania oraz kurs.
Inne
Serwis zespołu CERT Polska (https://hack.cert.pl/): zadania;
Kanał YT Gynvaela Coldwinda (https://www.youtube.com/user/GynvaelColdwind): streamy o programowaniu niskopoziomowym i bezpieczeństwie;
Kanał YT LiveOverflow (https://www.youtube.com/c/LiveOverflow): filmiki o bezpieczeństwie;
Tzw. “write-upy”, czyli dostępne w Internecie w różnych miejscach (np. na blogach) opisy, w jaki sposób skutecznie dokonano konkretnych ataków (np. na zawodach CTF). Można ich szukać, wpisując w wyszukiwarce odpowiednią frazę, np. “sql injection with no space write-up”.
Uwagi
W cyklu 2024Z:
Grupa piątkowa jest grupą gwiazdkową, tzn. o zwiększonym stopniu trudności. |
Więcej informacji
Więcej informacji o poziomie przedmiotu, roku studiów (i/lub semestrze) w którym się odbywa, o rodzaju i liczbie godzin zajęć - szukaj w planach studiów odpowiednich programów. Ten przedmiot jest związany z programami:
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i terminach zajęć) mogą być dostępne w serwisie USOSweb: