Politechnika Warszawska - Centralny System UwierzytelnianiaNie jesteś zalogowany | zaloguj się
katalog przedmiotów - pomoc

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
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Laboratorium, 30 godzin, 24 miejsc więcej informacji
Wykład, 30 godzin, 24 miejsc więcej informacji
Koordynatorzy: Przemysław Dobrowolski
Prowadzący grup: Przemysław Dobrowolski
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Politechnika Warszawska.