Bezpieczeństwo systemów informatycznych
Transkrypt
Bezpieczeństwo systemów informatycznych
Bezpieczeństwo systemów informatycznych Ćwiczenia laboratoryjne nr 2 Temat: Ochrona haseł, funkcje hash, uwierzytelnienie i autoryzacja w systemie Linux • Cel: Wykorzystać funkcje hash, oraz mechanizmy ochrony danych systemu Linux, wykorzystać systemowe metody uwierzytelnienia we własnej aplikacji Zadania: 1. Oblicz sumę kontrolną pliku /etc/passwd wykorzystując program md5sum. 2. Zmień jego zawartość (na kopii we własnym katalogu home !!) – zmień UID dowolnego użytkownika na 0 (superuser) 3. Zmodyfikuj plik, nie naruszając jego struktury (formatu), tak aby jego rozmiar oraz ostatnie dwie cyfry sumy kontrolnej były identyczne jak dla pierwotnej wersji kodu. 4. Utwórz katalog /public z odpowiednimi prawami tak aby wszyscy użytkownicy mogli tworzyć w nim pliki ale jedynie właściciele plików mieli prawo ich zmieniania (usuwania) 5. Czy zadanie z pkt. 4 można zrealizować przy zachowaniu zasady mandatory access control ? 6. Jakie prawa powinien mieć: a) plik z hasłami /usr/etc/APP_passwd jeżeli każdy użytkownik powinien móc go czytać oraz zmieniać za pomocą programu chgpasswd będącego własnością użytkownika pwdadmin ? b) sam plik wykonywalny chgpasswd ? Zakładamy, że program chgpasswd zmienia jedynie hasło użytkownika, który go wywołał. Zwróć uwagę na odpowiednie przyporządkowanie właściciela i grupy plików. 7. Co należałoby jeszcze zmienić, tak aby członkowie grupy admin mogli zmieniać hasła wszystkich użytkowników ? 8. Jakiego szyfrowania używa systemowy plik haseł Twojego systemu ? Wskazówka:Wykorzystaj manual systemowy lub załączony plik manuala funkcji crypt. 9. Załóż w systemie konta kilku dodatkowych użytkowników (user1, user2, user3...) nadaj im takie samo (trywialne:) hasło. Sprawdź zawartość systemowego pliku haseł. 10. Sprawdź wyniki następującego skryptu w języku pyton dla wybranego hasła (wskazówka – wykorzystaj wartości salt odczytane z systemowego pliku haseł): python -c "import crypt, getpass, pwd; print crypt.crypt('password','\$6\$saltsalt\$')" Zadania dodatkowe: W jakim zakresie system SELinux (np. w wersji Fedora 21) realizuje zasadę Mandatory Access Control ? Jakie dodatkowe zabezpieczenia może „narzucić” administrator użytkownikom, aby zwiększyć bezpieczeństwo systemu ? Maciej Burak Katedra Zastosowań Informatyki Zachodniopomorski Uniwersytet Technologiczny