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