Wprowadzenie do zawodów CTF
Informacje ogólne
Kod przedmiotu: | 1120-IN000-ISP-0699 |
Kod Erasmus / ISCED: | (brak danych) / (brak danych) |
Nazwa przedmiotu: | Wprowadzenie do zawodów CTF |
Jednostka: | Wydział Matematyki i Nauk Informacyjnych |
Grupy: |
Przedmioty obieralne, Informatyka Przedmioty obieralne, wydz. MiNI PW |
Punkty ECTS i inne: |
4.00
|
Język prowadzenia: | polski |
Skrócony opis: |
Wymagania wstępne / przedmioty poprzedzające Systemy operacyjne, Algebra liniowa, Algorytmy i struktury danych Celem przedmiotu jest wprowadzenie uczestników w świat "zawodów dla hakerów”, czyli konkursów Capture the Flag (CTF). W ramach zajęć omówione zostaną wybrane zagadnienia z zakresu bezpieczeństwa, których znajomość może okazać się przydatna podczas zmagań z zadaniami konkursowymi. |
Pełny opis: |
Przedmiot skierowany jest do osób zainteresowanych tematyką bezpieczeństwa informatycznego i ma za zadanie zachęcić słuchaczy do spróbowania własnych sił w konkursach CTF. Przedmiot prowadzony będzie we współpracy ze specjalistami z tej dziedziny, w tym osobami posiadającymi doświadczenie w startach w konkursach CTF. Kurs ilustrowany będzie przykładami archiwalnych zadań konkursowych. Wykład: 1. Zawody CTF – wprowadzenie. Przedstawienie typów (jeopardy, attack-defence) i zasad konkursów. Krótki przegląd kategorii zadań konkursowych. 2. Ataki na aplikacje internetowe (6 godzin wykładu, 6 godzin laboratorium): a. Omówienie najważniejszych grup podatności na przykładzie rankingów organizacji OWASP między innymi: SQL injection, Cross-site scripting (XSS), Cross-site request forgery (CSRF), Clickjacking. b. Opisanie metod obronnych używanych w przeglądarkach internetowych, w szczególności CSP, SOP, XSS prevention. c. Directory traversal. Session poisoning. Luki w konfiguracji (np. w plikach .htaccess, robots.txt, .git) d. Błędy w implementacjach dla wybranych technologii (np. PHP – type juggling). 3. Kryptografia (8 godzin wykładu, 8 godzin laboratorium) a. Kryptosystem RSA, wybrane metody faktoryzacji (algorytm p-1 Pollarda, rho Pollarda, sito kwadratowe, sito ciała liczbowego), metody kratowe (redukcja LLL), fault injection. b. Funkcje haszujące - konstrukcje (schemat Merkle–Damgård), odporność/podatność na kolizje (na przykładzie funkcji MD5 i SHA1), length extension attack, programowanie z więzami (zastosowanie narzędzi typu SAT/SMT solver). c. Szyfry blokowe. Sposób działania szyfrów blokowych na przykładzie AES. Różnica między szyframi blokowymi a strumieniowymi. Tryby wiązania bloków (ECB, CBC, CTR). Szyfry blokowe jako prymityw w kryptografii. Sposoby projektowania szyfrów blokowych (iterowane szyfry blokowe, sieci feistela, sieci podmiana-permutacja). Praktyczne ataki na szyfry blokowe (slide attack, square attack). d. Inne, wybrane zagadnienia: algorytm podpisu elektronicznego, kryptosystem oparte o krzywe eliptyczne, generatory pseudolosowe. 4. Inżynieria wsteczna oprogramowania (8 godzin wykładu, 8 godzin laboratorium). a. Architektura x86, działanie systemu operacyjnego oraz debuggerów. Metody wykrywania obecności debuggera. b. Identyfikacja kluczowych elementów programu w kodzie asemblera. c. Kompresja plików wykonywalnych (narzędzia typu packer). 5. Ataki niskopoziomowe (Exploitacja) (8 godzin wykładu, 8 godzin laboratorium). a. Ataki wykorzystujące przepełnienie bufora (buffer overflow). b. Organizacja sterty i możliwe podatności (heap exploitation). Ataki typu use-after-free i double-free. c. Podatność “uncontrolled format string”. d. Nadpisanie struktur Global Offset Table (GOT), metody obrony (RELRO). e. Shellcoding i Return-Oriented Programming (ROP). Laboratorium: Szukanie i wykorzystywanie podatności w ćwiczeniowych programach |
Literatura: |
1. Zadania archiwalne z konkursów CTF i ich omówienia dostępne w Internecie. 2. J. Erickson, Hacking: The Art of Exploitation, 2nd Edition. No Starch Press, 2008. 3. M. Dowd, J. McDonald, J. Schuh, The Art of Software Security Assessment: Identifying and Preventing Software Vulnerabilities. Pearson Education, 2006. 4. P.H. Engebretson, The Basics of Hacking and Penetration Testing: Ethical Hacking and Penetration Testing Made Easy. Syngress/Elsevier, 2013. 5. G. Coldwind, M. Jurczyk (red.), Praktyczna inżynieria wsteczna. Metody, techniki i narzędzia. PWN, 2016. 6. Wybrane materiały (ziny) w serwisie sekurak.pl |
Metody i kryteria oceniania: |
Po dwa zadania (jedno łatwe, jedno trudne) z każdej kategorii: WEB, Crypto, RE, PWN do rozwiązania jako praca domowa. Zadanie łatwe: 10 pkt, trudne: 15 pkt. Można zdobyć dodatkowe punkty za udział w wybranych zawodach CTF. Skala liniowa, zaliczenie od 50%. |
Zajęcia w cyklu "rok akademicki 2017/2018 - sem. zimowy" (zakończony)
Okres: | 2017-10-01 - 2018-02-18 |
![]() |
Typ zajęć: |
Laboratorium, 30 godzin, 24 miejsc
Wykład, 30 godzin, 24 miejsc
|
|
Koordynatorzy: | Przemysław Dobrowolski | |
Prowadzący grup: | Przemysław Dobrowolski | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: |
Przedmiot -
Ocena łączna
Laboratorium - Zaliczenie Wykład - Zaliczenie na ocenę |
Właścicielem praw autorskich jest Politechnika Warszawska.