Szczegółowy program,,laboratorium Bezpieczeństwa Systemów Informatycznych Opis treści dydaktycznych: Celem przedmiotu jest praktyczne zapoznanie studentów z podstawowymi problemami zabezpieczania danych w systemach informatycznych. Zagadnienie bezpieczeństwa występują we wszystkich obszarach informatyki. Ze względu na szerokie spektrum tematyki ćwiczenia zostały pogrupowane ćwiczeń w czterech głównych grupach tematycznych: kryptograficzne podstawy ochrony danych w systemach informatycznych, tworzenie bezpiecznych programów komputerowych, administracja systemami informatycznymi oraz zarządzanie bezpieczeństwem. Opisywane Laboratorium może być wykorzystywane na różnych przedmiotach, w różnym wymiarze godzin dydaktycznych. Dlatego też lista przygotowanych ćwieczeń powinna być każdorazowo traktowana jako repozytorium tematów ćwiczeniowych, z którego prowadzący zajęcia wybiera ćwieczenia na podstawie umiejętności i oczekiwań uczestników. Zasady zaliczenia przedmiotu: 1. Zaliczenie przedmiotu następuje na podstawie sumy punktów otrzymywanych z realizacji każdego ćwiczenia. Zaleca się wystawienie oceny dostatecznej po przekroczeniu progu 50% punktów. 2. Zaliczenie ćwieczenia z opóźnieniem oznacza stratę 20% należnych punktów. Dopuszczalne opóźnienie odnosi się tylko do następnego terminu zajęć. 3. Ocena ćwiczenia związana jest za każdym razem z prezentacją wyniku i jego ustną obroną. Zasady współpracy studenckiej: 4. Zalecana jest współpraca pomiędzy studentami w celu przygotowania się do zajęć, a także w celu nadrobienia zaległych punktów. 5. W przypadku ćwiczeń indywidualnych nie jest dozwolona żadna formy współpracy pomiędzy studentami w czasie zajęć. 6. W przypadku ćwiczeń zespołowych współpraca musi ograniczać się tylko do członków zespołu. 7. Pierwsze złamanie zasad współpracy skutkować będzie usunięciem z zajęć. Drugie wykroczenie usunięciem z listy uczestników wraz z powiadomieniem Dziekanatu.
I. Kryptograficzne podstawy ochrony danych Lista ewentualnego wyposażenia, oprogramowania i dodatków multimedialnych: Uczestnicy zajęć muszą mieć indywidualny dostęp do komputerów. Wymagane oprogramowanie to: środowisko programowania w języku Perl, środowisko programowania w języku C, program CrypTool. Bibliografia: Kryptografia. Teoria i praktyka zabezpieczania systemów komputerowych: Kutyłowski Mirosław, Strothmann Willy-B; Wydawnictwo Read Me, 2000 Kryptografia. W teorii i w praktyce: Douglas R. Stinson; WNT, Warszawa, 2005 Scenariusze pracy studenta: 1. Historyczne algorytmy kryptograficzne. (d) (e) Wykorzystanie programu dydaktycznego CrypTool do zapoznania się z historią kryptografii. Algorytmy szyfrujące przez podstawienie oraz przez transpozycje. Algorytmy jednoznakowe i poligraficzne. Algorytmy mono i polialfabetyczne. Atak przez analizę statystyczno-lingwistyczną. 2. Implementacja algorytmów ROT13/Cezara w językach Perl i C. Badanie cech algorytmów polegających na cyklicznym przesunięciu alfabetu. Zapoznanie się z programami przygotowanymi przez prowadzących. Zaimplementowanie algorytmu ROT13/Cezara dla określonego przesunięcia. Zbadanie kiedy cykliczne przesuwanie do przodu kryptogramu da w wyniku tekst jawny. 3. Badanie podatności algorytmów monoalfabetycznych na kryptoanalizę. Statystyczne cechy języka polskiego i angielskiego. Próba odszyfrowania kryptogramy przygotowanego przez prowadzących. 4. Współczesne algorytmy szyfrujące symetryczne. Strumieniowe i blokowe. Ćwiczenia demonstracyjne w programie dydaktycznym CrypTool. Szyfrowanie i odszyfrowanie algorytmami symetrycznymi DES, AES Badanie trybów pracy ECB, CBC, OFB
5. Jednokierunkowe, kryptograficzne funkcje skrótu. Wykorzystanie algorytmu MD5 do zabezpieczenia hasła. Badanie znaczenia 'soli' (ang. salt). solą. Tworzenie programu, który stworzy funkcje skrótu dla hasła zabezpieczając ją losową Tworzenie programu, który będzie weryfikował hasła w oparciu o bazę programu htpasswd Przeprowadzenie ataku brutalnej siły na łatwe hasło. Szasowanie czasu niezbędnego do łamania mocnych haseł. 6. Badanie odporności funkcji skrótu na kolizje. Ćwiczenie w programie CrypTool. Implementacja ataku na MAC poprzez wykorzystanie paradoksu urodzinowego. Stworzenie dwóch dokumentów, które będą miały identyczny skrót, a inną treść. 7. Protokoły uwierzytelniania. Badania odporności różnych schematów uwierzytelniania. Ćwiczenia w programie CrypTool. Wykorzystanie programu CrypTool do przedstawienia problemu odporności protokołu uwierzytelniania na podsłuch. 8. Kryptografia asymetryczna (RSA, ElGamal, ECC). Tworzenie pary kluczy. Schemat szyfrowania i podpisu cyfrowego. Ćwiczenia z wykorzystaniem programów: SSH, GPG, CrypTool.
II. Bezpieczne programowanie Lista ewentualnego wyposażenia, oprogramowania i dodatków multimedialnych: Uczestnicy zajęć muszą mieć indywidualny dostęp do komputerów. Wymagane oprogramowanie to: środowisko programowania w języku C, serwer witualny z oprogramowaniem podatnym na błąd przepełnienia bufora, środowisko programowanie w języku Java, środowisko programowania w języku PHP oraz serwer http. Bibliografia: Jon Erickson: "Hacking - sztuka penetracji", Helion 2004 David Wheeler: Secure Programming for Linux and Unix HOWTO, http://www.dwheeler.com/secure-programs/, 2003 materiały szkoleniowe OWASP, http://www.owasp.org/ Scenariusze pracy studenta: 1. Wykorzystanie błędu przepełnienia bufora do ataku na zmienną. Metody obrony przed tym atakiem. Ćwiczenie w języku C. Zapoznanie się z programami przygotowanymi przez prowadzących. Wprowadzenie własnych poprawek eliminujących błędy. 2. Wykorzystanie błędu przepełnienia bufora do wrogiego przejęcia serwera przez tzw. 'shellcode'. Metody obrony. (d) Zalogowanie się na przygotowany serwer, jako użytkownik. Przeprowadzenie ataku na podstawiony program z uprawnieniami suid. Wstrzyknięcie 'shellcode' i odpowiedniego adresu powrotu. Uzyskanie uprawnień administracyjnych. 3. Błędy w typie zmiennych jako możliwe źródło ataku. Ćwiczenia w języku C. Zapoznanie się z programami przygotowanymi przez prowadzących. Wprowadzenie własnych poprawek eliminujących błędy. 4. Ćwiczenia z popularnych błędów i zagrożeń aplikacji pisanych w języku Java. 5. Ataki na aplikacje internetowe i metody obrony. Ataki na sesje. Ataki typu injection (XSS, SQLinjection). Ćwiczenia w języku PHP.
III. Administracja systemami informatycznymi Lista ewentualnego wyposażenia, oprogramowania i dodatków multimedialnych: Uczestnicy zajęć muszą mieć dostęp do komputerów i infrastruktury sewerów wirtualnych. Ważne jest aby studenci mieli pełne uprawnienia administracyjne na swoich serwerach. Bibliografia: Słowa kluczowe: FreeBSD Handbook, Apache, OpenSSL Scenariusze pracy studenta: 1. Podstawowa instalacja i konfiguracja systemu informatycznego na przykładzie FreeBSD. a) Zapoznanie się z środowiskiem serwerów wirtualnych. b) Zdefiniowanie swojego komputera wirtualnego i uruchomienie systemu typu LiveCD. c) Podstawowe zainstalowanie systemu FreeBSD. 2. Instalacja i konfiguracja oprogramowania. Zapoznanie się z metodami aktualizacji oprogramowania. a) Instalowanie oprogramowanie z pakietów binarnych. b) Instalowanie oprogramowania z pakietów źródłowych. c) Aktualizacja oprogramowania. 3. Konfiguracja bezpiecznego serwera WWW, na przykładzie Apache+SSL. Generowanie certyfikatów dla serwera. a) Uruchomienie i konfiguracja serwera Apache. b) Testowanie połączenia przeglądarki z serwerem. c) Wygenerowanie certyfikatów serwera. Uruchomienie usługi https. d) Sprawdzenie poprawności działania usługi https. 4. Ćwiczenia z pełnego procesu certyfikacji w oparciu o bibliotekę OpenSSL. Urząd certyfikujący, CommonName, daty ważności certyfikatu, unieważnienie certyfikatu. a) Wygenerowanie certyfikatu urzedu certyfikujacego CA. b) Wygenerowanie poprawnej prośby o certyfikacje zewnętrzną. c) Podpisanie prośby i stworzenie pełnego certyfikatu. d) Zaimportowanie do przeglądarki certyfikatu CA.
e) Testowanie poprawności 5. Analiza ruchu i zagrożeń sieciowych. Wykorzystanie programów tcpdump, nmap, snort. a) Analiza ruchu sieciowego wybranej usługi nieszyfrowanej (np. POP3) za pomocą tcpdump. b) Ćwiczeniowe podsłuchanie hasła użytkownika. c) Próba analizy szyfrowanego ruchu sieciowego. d) Zdalna identyfikcja serwera i jego usług przy pomocy programu nmap. e) Uruchomienie systemu Snort do wykrywania intruzów w sieci. 6. Wdrożenie systemu kopii zapasowych. Ćwiczenia z odzyskiwania danych w sytuacji awaryjnej. a) Określenie kluczowych zasobów danych w systemie. b) Opracowanie procedury kopii zapasowych. c) Napisanie skryptu cyklicznie wykonujacego kopie w ustalonym czasie.
IV. Zarządzanie bezpieczeństwem informatycznymi Lista ewentualnego wyposażenia, oprogramowania i dodatków multimedialnych: Uczestnicy zajęć powinni mieć dostęp do komputerów i infrastruktury serwerów wirtualnych. Większość ćwiczeń jest jednak realizowana w formie dyskusji i opracowywania dokumentów, a więc wymagania są mniejsze. Bibliografia: Polska norma: Praktyczne zasady zarządzania bezpieczeństwem informacji PN-ISO/IEC 17799 Normy z serii ISO/IEC 27001 Scenariusze pracy studenta: 1. Analiza obiegu informacji i klasyfikacja poziomu poufności danych w przykładowej firmie. Dobór zabezpieczeń informatycznych według zasady optymalizacji kosztów. Zespół studentów dostaje przygotowany przez prowadzącego opis przykładowej firmy. Studenci opisują procesy biznesowe i klasyfikują dane pod kątem ich bezpieczeństwa. 2. Opracowanie dokumentu polityki bezpieczeństwa dla przykładowej firmy. (d) Zespół studentów dostaje przygotowany przez prowadzącego opis przykładowej firmy. Studencii przygotowują ramowy dokumentu polityki bezpieczeństwa. Dyskutują z prowadzącym przygotowany dokument. Studenci przygotowują ostateczną wersje dokumentu polityki bezpieczeństwa i prezentują ją całej grupie. 3. Przygotowanie systemu informatycznego do audytu bezpieczeństwa. Studenci przygotowują swój system operacyjny na potrzeby audytora. Sprawdzają zgodność z dokumentem polityki bezpieczeństwa. Przeprowadzają audyt wewnętrzny. 4. Przeprowadzanie audytu bezpieczeństwa systemu informatycznego. Audyt polityki bezpieczeństwa, audyt teleinformatyczny, oraz testy penetracyjne. (d) W drodze losowania zostają przydzielone systemy do audytowania. Studenci przeprowadzają audyt polityki bezpieczeństwa. Studenci przeprowadzają audyt teleinformatyczny Testy penetracyjne w ograniczonym zakresie.
(e) Wyniki audytu są opracowowywane w formie raportu zawierającego błędy i zalecane sposoby ich usunięcia.