Bezpieczeństwo komputerowe (letni 2009/2010)
WykładyPracowniaFAQLiteratura
Wyniki końcowe

Ostatni termin - 7 VII, g 17.00



Wykłady

1. [24 II] Wprowadzenie. System DNS.

2. [3 III] Workshop: kradzieże sesji w aplikacjach www. Protokoły: TCP/IP, HTTP, WEP, WPA, SSL. Narzędzia: tcpdump, wireshark, aircrack.

3. [10 III] SQL injection, XSS. Materiały: Kompletny przewodnik po SQL injection dla developerów PHP (i nie tylko), Slajdy z XSS, OWASP XSS page, Slajdy z SQL injection

4. [17 III] Bezpieczne zarządzanie sesjami za pomocą cookies w aplikacjach webowych. Materiały: zarządzanie sesją, slajdy cookie, slajdy: zarządzanie sesją

5. [24 III] Protokoły sieciowe, model OSI

-. [31 III] środa to czwartek

6. [7 IV] Skanowanie sieci: wykrywanie usług/systemów (nmap). Wykrywanie podatności (Nessus, Nikto, Skipfish). Scenariusze ataków - przejmowanie kontroli/rozszerzanie uprawnień, ukrywanie aktywności - rootkity. Ochrona: prawa dostępu, SELinux, chroot, wirtualizacja. Do doczytania: Qubes, Qubes OS

7. [21 IV] Software independence na przykładzie systemów wyborów elektronicznych. Perspectives on E2E Voting Systems, TWIN, ThreeBallot

8. [28 IV] Systemy end-to-end (ciąg dalszy): Scantegrity, Pret a Voter. Wybory przez internet - zagrożenia. Wybory w Estonii. Helios. SCV.

9-11. [5,12,19 V] Memory Corruption. Przepełnienie bufora, "process memory layout", przepełnienie sterty, shellcode. Materiały: praca magisterska Grzegorza Rozpary Przepełnienie stosu

12. [26 V] Wirusy (polimorfizm, metamorfizm). Robaki. Materiały teoretyczne: (Viruses, Worms, Botnets). Crackowanie aplikacji (tutorial Bartłomieja Kucharczyka). Materiały praktyczne: OllyDbg, pluginy dla OllyDbg, program do binarnej edycji plików: HxD



Pracownia



Projekty

1. Napisz aplikację przechwytującą nieszyfrowane sesje www. Program ma nasłuchiwać ruch sieciowy, wynajdować identyfikatory sesji (dla predefiniowanych stron), a następnie (po wybraniu) zmieniać odpowiednie wpisy w ciasteczkach Twojej ulubionej przeglądarki. Wykorzystaj programy tcpdup i aircrack (dla sieci zabezpieczonych WEP/WPA).

2. Zmodyfikuj bibliotekę OpenSSL (zmiana dosłownie 2-3 linijek) w taki sposób, aby wartości losowe generowane w procesie uzgadniania kluczy były zależne od danych przesyłanych tekstem jawnym (w szczególności zależne od ClientHello). Napisz program, który wykorzystuje wiedzę o zmodyfikowanym procesie uzgadniania kluczy do dekodowania połączeń https.

3. Biometryczne czytniki mogą być wykorzystane do uwierzytelniania użytkowników systemów komputerowych. Systemy operacyjne wspierają tę formę logowania, po załadowaniu systemu. Możliwe jest też wykorzystanie czytnika do zabezpieczania samego uruchamiania komputera. Dane "odczytane przez BIOS" są przekazywane do systemu operacyjnego. Napisz/zaprojektuj aplikację, która przechwyci komunikację pomiędzy czytnikiem/biosem a systemem operacyjnym przekazującą "odcisk".

4. Wykorzystaj możliwości technologii CUDA do implementacji łamania kluczy w protokole uwierzytelniania RFID - HB (atak na HB) ew. (wersja Shamira).

5. Napisz prostą aplikację, np. kalkulator, która będzie zabezpieczona przed kopiowaniem. Wykorzystaj podpis elektroniczny, serwer licencji (ale aplikacja ma też działać offline), klucze licencyjne itp. Wykorzystaj techniki opisane tutaj

6. Napisz moduł do POSTFIXa (tudzież SpamAssasina) filtrujący spam w następujący sposób: ma przyjmować wszystkie maile z adresów znajdujących się na whitelist. Dla adresów nie znajdujących się na liście wykonywana jest następująca procedura: otrzymany email trafia do kolejki oczekującej, a do nadawcy wysyłana jest wiadomość z losowym ciągiem znaków (token) i linkiem do formularza www. Po wprowadzeniu poprawnego tokenu w formularzu: oryginalny email jest dostarczany, a adres nadawcy trafia na whitelist. Program ma umożliwić import adresów nadawców emaili znajdujących się w skrzynce do whitelist.

7. UWAGA: zaliczenie tego projektu odbywa się etapami. Prosze się zgłaszać w celu konsultacji wykonywanych czynności (jeden duży projekt wystarczający na zaliczenie całości) Przeprowadź analizę bezpieczeństwa schematu wyborów elektronicznych SCV (opis) zidentyfikuj potencjalne słabe strony. Przeprowadź audyt implementacji tego systemu (dostęp do działającej instancji zostanie przekazany po zgłoszeniu się).

8. Głosowanie norweskie "odwołane" ze względu na brak możliwości dotarcia do kodu programu.

9. Zweryfikuj tezy stawiane w artykule Certyfikaty SSL - domek z kart. Jeżeli nie jest prawdą, to uzadadnij dlaczego. Jeżeli artykuł jest prawdziwy, to: "zostań CA", wygeneruj i certyfikuj klucz ssl (RSA+MD5), a następnie wygeneruj kolejny klucz dla "innego podmiotu" z tym samym odciskiem klucza. Sprawdź, czy nadal można wykupić certyfikat z MD5.







FAQ

Jak można zaliczyć ten przedmiot?
FZ: Należy zdać ustny egzamin.

Wystarczy przyjść na egzamin?
FZ: Do egzaminu należy zostać dopuszczonym.

Jak wygląda dopuszczenie do egzaminu?
FZ: Należy podczas pracowni zrobić wszystkie zadania z list.

Jak dokładnie wyglądać będzie ocenianie?
FZ: Na 3 w zasadzie wystarczy zaliczyć pracownię i rozumieć pojęcia i koncepcje z wykładu. Oceny wyższe: realizacja 2-3 mikro-projektów (w grupach 2 osobowych).

Bibliografia
Security Power Tools - Bryan BurnsJennifer Stisa GranickSteve ManzuikPaul GuerschDave KillionNicolas BeauchesneEric MoretJulien SobrierMichael LynnEric MarkhamChris JezzoniPhilippe Biondi
Cryptography. Theory and practice - Douglas R. Stinson
Sztuka podstępu. Łamałem ludzi, nie hasła - Kevin MitnickWilliam L. Simon
The art of software security assessment. Identifying and preventing software vulnerabilities - Mark DowdJohn McDonaldJustin Schuh
Hack I. T. Testy bezpieczeństwa danych - T. J. KlevinskyS. LaliberteA. Gupta