Instytut Elektroniki
Wydział Automatyki, Elektroniki i Informatyki
Politechniki Śląskiej
SIECI KOMPUTEROWE
LABORATORIUM
Instrukcja do ćwiczenia nr 8
Gliwice 2011
Ćwiczenie 8
Bezpieczeństwo i poufność
w sieci Internet i systemach
UNIX
8.1 Wstęp
Sieć Internet w swojej pierwotnej postaci, podobnie jak i system ope-
racyjny Unix, miała służyć przede wszystkim środowisku akademickiemu.
W ostatnich latach, ze względu na dynamiczny rozwój Internetu i jego wyko-
rzystywanie m.in. do celów komercyjnych, stało się jasne, że niezbędne jest
położenie większego niż do tej pory nacisku na kwestie bezpieczeństwa.
Jakie znaczenie ma zabezpieczenie systemów i sieci komputerowych na
ogół odczuwamy jedynie w przypadku - gdy coś zawodzi: gdy tracone są
cenne dane, gdy informacje poufne dostają się w niepowołane ręce, gdy tra-
cimy dostęp do informacji itp.
Utrata integralności poziomu bezpieczeństwa systemu jest najczęściej spo-
wodowana jednym z trzech czynników:
•
awarią sprzętu,
•
błędem oprogramowania,
•
niedozwoloną ingerencją z zewnątrz lub wewnątrz systemu.
Najczęstszymi sprawcami naruszenia bezpieczeństwa systemów kompute-
rowych jest mniej lub bardziej wyspecjalizowana grupa użytkowników, zaj-
mująca się włamaniami do systemów komputerowych (zwanej hackerami lub
intruderami). Do tego procederu wykorzystują oni błędy oprogramowania
Ćwiczenie 8 - Wstęp
3
i konfiguracji systemów komputerowych, oraz błędy i niedopatrzenia admini-
stratorów tych systemów, odpowiedzialnych za poprawne ich funkcjonowanie.
W sytuacji, gdy sieci komputerowe stają się coraz większe, powiększa się krąg
potencjalnego zagrożenia. W momencie gdy podłączymy nasz komputer do
sieci Internet, dostęp do niego mogą mieć setki tysięcy, albo nawet miliony
użytkowników na całym świecie.
8.1.1 Amerykański standard ”Pomarańczowa Księga”
TCSEC
Amerykański standard nazwany ”Kryteria oceny zaufania systemów kom-
puterowych” TCSEC (ang. Trusted Computer System Evaluation Criteria)
został opracowany przez Narodowe Centrum Bezpieczeństwa Komputerowe-
go w 1983 roku. Standard ten nazywany jest także ”Pomarańczową Księgą”
(ang. The Orange Book). Wyróżniono w nim cztery poziomy bezpieczeństwa:
•
Poziom D - (ang. unclassified) to całkowity brak zabezpieczeń lub ich
najniższy szczebel,
•
Poziom C - (ang. classified) zawiera w sobie możliwość rejestracji zda-
rzeń oraz możliwe jest ustalenie uprawnień poszczególnych użytkowni-
ków dostępu do plików i przeprowadzania na nich operacji.
•
Poziom B - (ang. secret) oznacza wprowadzenie dodatkowych w sto-
sunku do poziomu C zabezpieczeń.
•
Poziom A - (ang. top secret) oznacza najwyższy stopień zabezpiecze-
nia.
Poziomy podzielono na klasy bezpieczeństwa oznaczone liczbowo w ten
sposób, że bezpieczeństwo klasy w ramach danego poziomu rośnie razem ze
zwiększaniem się numeru klasy. Wszystkie poziomy i klasy charakteryzuje się
następującymi elementami:
•
polityka bezpieczeństwa (ang. security policy),
•
identyfikacja, kontrola i sprawdzanie podmiotu (ang. accountability),
•
ubezpieczenie eksploatacyjne i okres trwałości ubezpieczenia (ang. as-
surance),
•
testy sprawdzające system i opis idei bezpieczeństwa systemu (ang.
documentation).
Ćwiczenie 8 - Wstęp
4
Oto przykładowe klasy bezpieczeństwa:
•
Klasa D: Minimalne zabezpieczenie (ang. minimal protection). Do tej
klasy zalicza się systemy, które były ocenione, a nie zostały zakwali-
fikowane do żadnej z pozostałych klas. Jedyne co można zrobić aby
zabezpieczyć system to ograniczyć fizyczny dostęp do systemu. Każdy
użytkownik, który ma dostęp do systemu może z tym systemie zrobić
wszystko. (MS-DOS, Windows 95/98/Me)
•
Klasa C: Każdy użytkownik kontroluje dostęp do obiektów, których
jest właścicielem (np.plików) i udziela lub ogranicza dostęp do obiek-
tu wg swojego uznania. Dostęp może być różny dla właściciela pliku,
grupy i pozostałych użytkowników. Przed rozpoczęciem pracy użyt-
kownik musi zalogować się do systemu i podać hasło. (UNIX, Windows
NT/2000/XP/Vista/7)
•
Klasa C1: Dyskrecjonalne zabezpieczenie (ang. discretionary securi-
ty protection). W zakwalifikowanym do tej klasy systemie zapewniona
jest separacja użytkowników i danych. Uniemożliwia się odczyt, mody-
fikowanie lub usuwanie danych prywatnych użytkowników przez innych
użytkowników. Informacja o nazwach kont użytkowników oraz zakodo-
wane hasła są dostępne dla wszystkich użytkowników. Istnieje niebez-
pieczeństwo rozkodowania hasła na podstawie zaszyfrowanego ciągu,
choć najczęściej jest to niemożliwe.
•
Klasa C2: Zabezpieczenie kontrolowanego dostępu (ang. controlled ac-
cess protection). Silniejszy poziom ochrony niż w klasie C1 realizowany
jest przez wprowadzenie: procedur logowania, mechanizmów audytu,
mechanizmów izolacji zasobów. Zakodowane hasła użytkowników do-
stępne są tylko dla systemu operacyjnego. Istnieje możliwość dokład-
nego śledzenia działań użytkowników związanych z bezpieczeństwem
systemu.
•
Klasa B1: Etykietowane zabezpieczenie (ang. labeled security protec-
tion). Systemy zakwalifikowane do tej klasy posiadają oprócz wszyst-
kich właściwości systemów klasy C2 element etykietowania, czyli opi-
sywania właściwości podmiotów i obiektów w systemie bezpieczeństwa.
Blokada możliwości zmiany praw dostępu do obiektu przez właściciela
obiektu. Etykiety pozwalają na stopniowanie poziomu poufności obiek-
tów i poziomu zaufania do poszczególnych użytkowników.
•
Klasa B2: Strukturalne zabezpieczenie (ang. structured protection).
Systemy zakwalifikowane do tej klasy muszą posiadać: jasno zdefinio-
Ćwiczenie 8 - Wstęp
5
waną i udokumentowaną politykę bezpieczeństwa, wyodrębnioną część
krytyczna systemu bezpieczeństwa, dobrze zdefiniowany interfejs, od-
powiednie mechanizmy testowania. Wzmocnione muszą być także me-
chanizmy uwierzytelniania oraz narzędzia administrowania bezpieczeń-
stwem systemu. System musi być względnie odporny na penetrację.
Każdy z obiektów musi posiadać etykietę.
•
Klasa B3: Dziedziny bezpieczeństwa (ang. security domains). Wyma-
ga się by: mechanizm audytu został rozszerzony o reagowanie na sy-
gnały związane z bezpieczeństwem zostały opracowane procedury od-
twarzania stanu systemu. System jest wysoce odporny na penetrację.
Sprzętowe oddzielenie obszarów poufnych pomiędzy sobą. Procesy z
jednego obszaru nie mają dostępu do innego obszaru. Użytkownik ma
gwarancję, że jego terminal komunikuje się bezpośrednio z systemem
operacyjnym, a nie z tzw. koniem trojańskim (czyli programem pod-
stawionym przez włamywacza).
•
Klasa A1: Zweryfikowany projekt (ang. verified design). Systemy tej
klasy różnią się od systemów klasy B3 możliwością weryfikacji, czy sys-
tem informatyczny został poprawnie zaimplementowany.
8.1.2 Europejski standard bezpieczeństwa ITSEC
Europejski standard o nazwie ”Kryteria oceny bezpieczeństwa technolo-
gii informacyjnej” ITSEC (ang. Information Technology Security Evaluation
Criteria) opracowano w 1991 roku. ITSEC jest próbą rozszerzenia ”Poma-
rańczowej Księgi”.
W porównaniu z ”Pomarańczową Księgą” w ITSEC funkcjonalność sys-
temu oceniania jest dodatkowo w wymiarach:
•
wierności, która jest rozszerzeniem integralności o wykrywanie i pre-
wencję,
•
niezawodności pracy, która gwarantuje dostęp do zasobów systemu
w wymaganym czasie,
•
wymiany danych, która wiąże się z bezpieczeństwem transmisji da-
nych.
W ITSEC wyróżniono 10 klas funkcjonalności systemu:
•
Klasa F-C1 - jest odpowiednikiem klasy C1 z ”Pomarańczowej Księ-
gi”,
Ćwiczenie 8 - Wstęp
6
•
Klasa F-C2 - jest odpowiednikiem klasy C2 z ”Pomarańczowej Księ-
gi”,
•
Klasa F-B1 - jest odpowiednikiem klasy B1 z ”Pomarańczowej Księ-
gi”,
•
Klasa F-B2 - jest odpowiednikiem klasy B2 z ”Pomarańczowej Księ-
gi”,
•
Klasa F-B3 - jest odpowiednikiem klas B3 i A1 z ”Pomarańczowej
Księgi”,
pozostałe klasy zawierają dodatkowe wymagania, które nie zostały uwzględ-
nione w ”Pomarańczowej Księdze”:
•
Klasa F-IN - określa zwiększone wymagania związane z integralnością
danych,
•
Klasa F-AV - określa zwiększone wymagania związane z niezawodno-
ścią systemu,
•
Klasa F-DI - określa zwiększone wymagania związane z integralnością
danych w sieciach telekomunikacyjnych,
•
Klasa F-DC - określa zwiększone wymagania związane z tajnością
danych,
•
Klasa F-DX - określa zwiększone wymagania związane z tajnością
i integralnością danych.
Oprócz klas funkcjonalności w ITSEC zdefiniowano również 7 klas pew-
ności od poziomu E0 (najmniej pewny) do E6 (najbardziej pewny). Na każdy
wyższy poziom składają się wymagania poziomu niższego i wymagania do-
datkowe:
•
E0 - brak odpowiedniej pewności, co wiąże się z przerwaniem procedury
oceniania,
•
E1 - istnienie nieformalnego opisu architektury bezpieczeństwa,
•
E2 - istnienie nieformalnego opisu koncepcji szczegółowej, dostarczanie
dowodów testów, kontrola konfiguracji i proces nadzoru dystrybucji,
•
E3 - dostarczanie szczegółowej koncepcji i kodu źródłowego odpowia-
dającego funkcjom bezpieczeństwa,
Ćwiczenie 8 - Wstęp
7
•
E4 - istnienie formalnego modelu polityki bezpieczeństwa, rygorystycz-
ne podejście przy opisie koncepcji ogólnej i szczegółowej,
•
E5 - istnienie ścisłej relacji pomiędzy opisem formalnym koncepcji
szczegółowej i kodem źródłowym,
•
E6 - istnienie formalnego opisu architektury bezpieczeństwa kompaty-
bilnej z modelem formalnym polityki bezpieczeństwa, możliwość spraw-
dzenia, czy program wykonywany jest zgodny z odpowiednim kodem
źródłowym.
8.1.3 Wybrane zagadnienia dotyczące bezpieczeństwa
systemów UNIX
Uprawnienia użytkowników
Należy pamiętać, że bezpieczeństwo systemu zależy głównie od bezpie-
czeństwa najsłabszego jego ogniwa. Tym ogniwem jest zwykle sam użytkow-
nik, w związku z tym bezpieczeństwo systemu zależy od każdego użytkowni-
ka. I nie mają sensu wyrafinowane zabezpieczenia (np.szyfrowanie pakietów
w sieci lokalnej), gdy nie są przestrzegane podstawowe zasady bezpieczeń-
stwa. Każdy użytkownik systemu operacyjnego UNIX korzysta z konta do-
stępowego. Oznacza to, że gdzieś w pewnym obszarze systemu mogą być
zapisywane zdarzenia związane z danym kontem: np. włączenie się do syste-
mu, wyjście z systemu, uruchomienie programów, nieudane próby ingerencji
w system itp.
W systemie UNIX podstawowe informacje związane z zarządzaniem kon-
tami użytkowników znajdują się w dwóch plikach /etc/passwd i /etc/group.
W starszych wersjach w pliku /etc/passwd jest także zakodowane hasło. Po-
niżej jest przedstawiony plik /etc/passwd ze starszego systemu (klasa C1).
root:5NzCwssZ9agwA:O:O:Super user:/:/bin/sh
sysadm:9lvTfgoZw3SL2:0:0:SystemAdministration:/usr/sysadm:/bin/sh
backup:IkYjDAVTKJRxs:ll:lO:BackupUser:/usr/backup:/bin/sh
cron:NOLOGIN:1 :l:Cron daemon for periodic tasks:/:
bin:NOLOGIN:3:3:System file administration:/:
uucp:uaKzu3CVKsu.ab:4:4:Uucp:/usr/spool/uucppublic:/usr/lib/uucp/uucico
asg:NOLOGIN:6:6:Assignable device administration:/:
sysinfo:NOLOGIN:lO:lO:Access to system information:/:
network:NOLOGIN:l2:l2:Mail and Networkadministration:/usr/spool/micnet:
Ip:NOLOGIN:l4:3:Printspooleradministration:/usr/spool/Ip:
dos:NOLOGIN:l6:l0:Access to Dos devices:/:
janek:vcVae3btReoC:201:50:Jan Kowalski:/usr/janek:/bin/sh
corresp:ubKiqldTbw.To:202:50:Korespondencja:/usr/corresp;/bin/sh
Poniżej opisano poszczególne pola w rekordzie pliku /etc/passwd.
Ćwiczenie 8 - Wstęp
8
•
Nazwa konta - nazwa użytkownika
•
Hasło - zakodowane hasło danego konta. Sposób kodowania uniemoż-
liwia zdekodowanie hasła. Natomiast możliwe jest (dysponując kompu-
terem o stosunkowo dużej mocy) sprawdzenie wszystkich kombinacji
i w ten sposób określenie jawnej postaci hasła. Może tu też być infor-
macja o czasie ważności hasła itp.
•
Indentyfikator użytkownika (UID) - Jeśli jest on równy zeru, to
użytkownik ma uprawnienia root’a. Oprócz tego jeśli dwa konta ma-
ją ten sam numer użytkownika, to skutki działania drugiego z kolei
użytkownika będą przypisane pierwszemu. Natomiast drugi użytkow-
nik będzie miał wszystkie uprawnienia pierwszego.
•
Identyfikator grupy do której należy użytkownik (GID) W nie-
których systemach użytkownik może należeć do kilku grup jednocze-
śnie. Bieżąca grupa bezpośrednio po wejściu do systemu odpowiada
grupie z /etc/passwd . Zwykli użytkownicy nie powinni być członka-
mi grup zarządzających systemem (np. sys).
•
Katalog użytkownika - po włączeniu się do systemu ten katalog bę-
dzie bieżącym katalogiem użytkownika.
•
Środowisko użytkownika (shell) - interpreter poleceń użytkownika.
W niektórych środowiskach może być to specjalizowany program wsa-
dowy (shell script). Może to być także specjalny program mający na
celu ograniczenie możliwości użytkownika.
Informacja z pliku /etc/passwd jest używana przez wiele programów sys-
temowych i aplikacyjnych (np. mail). W związku z tym plik ten musi być
dostępny do odczytu dla wszystkich. W starszych wersjach systemu admini-
strator mógł osobiście zmieniać ten plik. W nowszych stosuje się do tego celu
oprogramowanie systemowe. Administrator powinien śledzić zawartość pliku
/etc/passwd
sprawdzając przede wszystkim, czy niektóre konta nie mają
numeru UID = 0 i czy nie ma dwóch kont o jednakowym numerze. Może to
świadczyć o nadużywaniu uprawnień i powoduje całkowitą niemożność roz-
dzielenia śladów działań tych użytkowników. Poniżej jest przedstawiony plik
/etc/passwd
z systemu Unix o klasie C2.
root:*:O:O:Super user:/:/bin/sh
sysadm:*:0:0:SystemAdministration:/usr/sysadm:/bin/sh
backup:*:ll:lO:BackupUser:/usr/backup:/bin/sh
cron:*:1 :l:Cron daemon for periodic tasks:/:
bin:*:3:3:System file administration:/:
uucp:*:4:4:Uucp:/usr/spool/uucppublic:/usr/lib/uucp/uucico
asg:*:6:6:Assignable device administration:/:
Ćwiczenie 8 - Wstęp
9
sysinfo:*:lO:lO:Access to system information:/:
network:*:l2:l2:Mail and Networkadministration:/usr/spool/micnet:
Ip:*:l4:3:Printspooleradministration:/usr/spool/Ip:
dos:*:l6:l0:Access to Dos devices:/:
andrzej:*:201:50:Andrzej Mazurkiewicz:/usr/and rzej:/bin/sh
corresp:*:202:50:Korespondencja:/usr/corresp;/bin/sh
W systemach klasy C2 zamiast zaszyfrowanego hasła jest gwiazdka albo pole
jest puste (dwa dwukropki obok siebie). Gwiazdka oznacza, że konto ma ha-
sło. Natomiast zakodowane hasła przechowywane są w innym miejscu. Może
to być oddzielny plik, do którego można ustawić prawa dostępu w sposób bar-
dziej restrykcyjny (np. /etc/shadow, /etc/master.passwd) albo mogą być
przechowywane poza systemem plików tak jak ma to miejsce w systemach
SCO UNIX. Na w takim przypadku zarządzanie kontami użytkowników jest
realizowane przy użyciu specjalnych komend systemowych. Sprawdzana jest
dodatkowo spójność pliku i przypisanie dwóm kontom tego samego nume-
ru konta spowoduje zablokowanie dostępu do serwera. Należy pamiętać, że
dostęp użytkowników do zakodowanych ciągów haseł dostępowych wiąże się
z poważnym obniżeniem poziomu bezpieczeństwa a systemie, można także
powiedzieć, że włamanie do takiego systemu jest tylko kwestią czasu.
Hasła dostępowe
Każde konto powinno mieć hasło, tzn. informację identyfikacyjną, któ-
rą użytkownik podaje systemowi. Po prawidłowym podaniu hasła system
przyjmuje, że przy danym terminalu znajduje się właściciel konta. Można tak
założyć konto bez hasła, jest to jednak praktyka zdecydowanie niebezpiecz-
na. W przypadku, gdy w systemie istnieje konto bez hasła, dowolna osoba
z zewnątrz może potencjalnie dostać się do systemu. Natomiast brak hasła
konta użytkownika najbardziej uprzywilejowanego użytkownika (root), nale-
ży traktować jak czyste szaleństwo. Najbezpieczniejsze systemy typu UNIX
nie pozwalają zalogować się na konta, które nie wymagają hasła oraz ni-
gdy nie pozwalają na zdalne zalogowanie się użytkownika root nawet jeśli
użytkownik poda prawidłowe hasło.
Zwykle jeśli użytkownik poda nieprawidłową nazwę konta to system i tak
zapyta o hasło. Ma to na celu uniemożliwienie rozpoznania w ten sposób
poprawnej nazwy konta danego systemu. Osoba włamująca się otrzyma bez-
pośrednio od systemu informację o tym czy konto o podanej nazwie istnieje
dopiero wtedy, gdy poda prawidłowo nazwę konta oraz hasło dostępowe do
konta.
Należy dbać oto aby hasło dostępowe oraz inne ważne dane nie były
transmitowane w postaci jawnego tekstu, np. jak to się dzieje podczas trans-
Ćwiczenie 8 - Wstęp
10
misji wykorzystującej usługę telnet. Przeważnie administrator serwera ma
możliwość wyboru algorytmu szyfrowania hasła. Przeważnie jest to algorytm
jednokierunkowy, tzn. taki który nie ma swojego odpowiednika umożliwia-
jącego ustalenie jawnego hasła na podstawie zaszyfrowanego ciągu. Na ser-
werze przechowywane są jedynie zaszyfrowane ciągi haseł dostępowych. Po
wprowadzeniu hasła przez użytkownika, serwer szyfruje hasło odpowiednim
algorytmem i porównuje zaszyfrowane ciągi. Gdy ciągi są identyczne ozna-
cza to że użytkownik podał prawidłowe hasło dostępowe. W nowoczesnych
systemach UNIX użytkownik nie ma dostępu do zaszyfrowanych haseł dostę-
powych, tak jak miało to miejsce w starszych wersjach systemu. Odrębnym
zagadnieniem jest wybór hasła. Dobre hasło to takie, które jest łatwo zapa-
miętywane przez właściciela konta, natomiast jest trudne do odgadnięcia dla
innych.
Dostęp do obiektów
W systemie UNIX w trakcie wykonywania procesu istnieje możliwość
chwilowego uzyskania przez danego użytkownika (lub wykonywany proces)
praw innego użytkownika (łącznie z użytkownikiem najbardziej uprzywilejo-
wanym root) lub praw innej grupy. Jest to możliwe poprzez ustawienie bitu
”set user-id” w artybucie uprawnień przypisanych danemu plikowi, będące-
go programem wykonywalnym lub procedurą interpretera poleceń. Działa to
w następujący sposób. Przy wywołaniu program (proces) otrzymuje dwa ze-
stawy identyfikatorów związanych z prawami dostępu: efektywny i rzeczywi-
sty indentyfikator użytkownika (effective user-id, real user-id) oraz efektywny
i rzeczywisty indentyfikator grupy (effective group-id, real group-id). Prawa
dostępu dla procesu wiążą się z identyfikatorami efektywnymi. Normalnie
proces przejmuje te identyfikatory od użytkownika wywołującego i identyfi-
katory efektywne są równe odpowiednim identyfikatorom rzeczywistym. Jeśli
plik programu odpowiadający danemu procesowi ma ustawiony bit ”set user-
id”, to efektywny identyfikator użytkownika procesu staje się równy identyfi-
katorowi właściciela pliku programu. Analogicznie działa bit ”set group-id”.
Weźmy pod uwagę historyczny już przykład z programem passwd.
sr-xr-xr-x 1 root wheel 72345 Jan 01 00:00 /bin/passwd
-rw-rw-r-- 1 root wheel
1431 Jan 01 00:00 /etc/passwd
Chcąc zmienić hasło za pomocą komendy passwd użytkownik musi uzyskać
chwilowe prawa dostępu grupy lub właściciela pliku /etc/passwd. Podobna
sytuacja dotyczy procesu logowania do systemu. W tym przypadku odpo-
wiednie uprawnienia musi posiadać proces login.
Ćwiczenie 8 - Wstęp
11
Powyższe mechanizmy stwarzają potencjalne zagrożenie naruszenia bez-
pieczeństwa w systemach UNIX. Przykładowo jeśli w katalogu użytkownika
pojawi się interpreter poleceń (shell) z następującymi artybutami:
sr-xr-xr-x 1 root wheel 32436 Jan 01 00:00 sh
to użytkownik uruchamiając program sh w swojej kartotece przejmie prawa
właściciela pliku (root), czyli użytkownika najbardziej uprzywilejowanego
bez wymogu jakiejkolwiek autoryzacji.
8.1.4 Bezpieczeństwo w sieci Internet
Zagrożenia bezpieczeństwa w sieci Internet można ogólnie podzielić na
następujące klasy:
•
uzyskanie dostępu do danych transmitowanych przez sieć lub przecho-
wywanych na dołączonych do sieci komputerach przez osoby niepowo-
łane;
•
uzyskanie dostępu do innych zasobów (moc obliczeniowa, pamięć kom-
puterów itd.) przez osoby niepowołane;
•
utrata danych na skutek złośliwej ingerencji zewnętrznej;
•
fałszerstwo danych (dotyczy zwłaszcza poczty elektronicznej, gdzie za-
chodzi m.in. możliwość podszywania się pod innego nadawcę).
Techniki, jakimi można posłużyć się dla osiągnięcia któregoś z w/w celów,
opierają się przede wszystkim na wykorzystaniu:
•
wad protokołu TCP/IP i protokołów pokrewnych (DNS, SMTP),
•
błędów w oprogramowaniu systemowym,
•
błędów administratora lub użytkownika systemu.
W każdej z powyższych kategorii można podać liczne przykłady, jak rów-
nież sposoby zabezpieczania się przed tymi metodami. I tak np. mechanizmy
TCP/IP pozwalają na fałszowanie adresu IP nadawcy pakietu. Komputer do
którego adresy te docierają, interpretuje je jako wysłane przez inny kompu-
ter, niż w rzeczywistości miało to miejsce. Sposobem na zabezpieczenie się
przed taką formą ataku jest rezygnacja z usług sieciowych, które sprawdzają
tożsamość użytkownika na podstawie jego adresu IP.
Ćwiczenie 8 - Wstęp
12
Protokół IPv4 nie zawiera wbudowanych mechanizmów szyfrowania prze-
syłanych danych. Umożliwia to przechwytywanie danych przez osoby niepo-
wołane. Tymczasowym rozwiązaniem jest stosowanie szyfrowania nie w war-
stwie transportowej (TCP) czy sieciowej (IP), lecz na poziomie aplikacji.
Najczęstszym sposobem naruszenia bezpieczeństwa w sieci jest pozyska-
nie dostępu do cudzego konta na komputerze pracującym w systemie wielo-
dostępnym (np. Unix) przyłączonym do sieci Internet. Cel ten można osią-
gnąć między innymi wykorzystując błędy w oprogramowaniu systemowym.
Włamanie na konto administratora jest szczególnie niebezpiecznym przypad-
kiem, umożliwia bowiem włamywaczowi dostęp do danych wszystkich użyt-
kowników danego komputera, a także ułatwia zatarcie w systemie śladów
włamania.
Usuwanie skutków włamania jest jednym z najbardziej niewdzięcznych
zadań administratora, głównie ze względu na konieczność upewnienia się,
czy nie zostały wprowadzone do systemu modyfikacje umożliwiające włamy-
waczowi powtórne wejście (tzw. backdoor). Istnieją narzędzia programowe
pozwalające na sprawdzenie czy newralgiczne pliki systemowe nie zostały
zmodyfikowane, utrzymując (w bezpiecznym miejscu) listę sum kontrolnych
tych plików i okresowo sprawdzając zgodność. Niestety najczęściej jedyną
deską ratunku pozostaje odtworzenie systemu kopii bezpieczeństwa lub rein-
stalacja systemu.
Brak świadomości wśród użytkowników jest prawdopodobnie najczęstszą
przyczyną naruszeń bezpieczeństwa. W większości systemów wielodostęp-
nych, włącznie z Unixem, dostęp do konta chroniony jest indywidualnym
hasłem użytkownika. Stosowanie trywialnych haseł jest przyczyną znakomi-
tej większości włamań - ok. 80% przypadków. Istnieją specjalizowane pro-
gramy służące do zautomatyzowanego (z użyciem słownika) określania haseł
dostępowych na podsiawie ich zaszyfrowanego ciągu lub bez. Dość skutecz-
nym zabezpieczeniem jest modyfikacja oprogramowania systemowego tak,
aby uniemożliwiało użytkownikowi wprowadzenie zbyt prostego hasła. Nawet
jednak najlepsze hasło nie zabezpiecza przed możliwością jego przechwyce-
nia przez osoby postronne, np. z użyciem narzędzia umożliwiającego podgląd
danych transmitowanych przez sieć komputerową. W takim wypadku można
skorzystać z metody identyfikacji użytkownika nie opierającej się na stałych
hasłach, np. tzw. challenge-response systems, w których system przedstawia
użytkownikowi pewien losowy (inny za każdym razem) ciąg znaków (tzw.
challenge string), zaś użytkownik powinien odpowiedzieć hasłem wygenero-
wanym na podstawie tego tekstu z użyciem tylko jemu znanego algorytmu.
Można także wykorzystać protokoły stosujące szyfrowanie zdalnej sesji.
Obecnie szereg programów wykorzystujących mocne algorytmy szyfrowania
(np. potrójny DES czy IDEA) można znaleźć w sieci Internet. Szczególną
Ćwiczenie 8 - Wstęp
13
karierę wśród nich robi program o nazwie PGP (Pretty Good Privacy), które-
go głównym przeznaczeniem jest szyfrowanie poczty elektronicznej. Program
ten, opracowany przez Phila Zimmermanna, opiera się na tzw. metodzie klu-
czy publicznych, a konkretnie na algorytmie RSA (Rivest-Shamir-Adleman).
Metoda kluczy publicznych pozwala rozwiązać typowy w przesyłaniu tek-
stów zaszyfrowanych problem: jak przekazać adresatowi klucz umożliwiający
odszyfrowanie? Nie możemy przecież przekazać go tym samym (narażonym
na podsłuch) kanałem, co zaszyfrowany dokument. Klucz publiczny (inny
dla każdego użytkownika) służy do zakodowania wiadomości. Użytkownik
- odbiorca wiadomości - może odszyfrować informacje za pomocą swojego
unikalnego, tajnego klucza prywatnego. PGP służy nie tylko do zapewnienia
tajności naszych listów, ale także do sygnowania (podpisywania) listów w celu
potwierdzenia ich autentyczności (tzn. umożliwia stwierdzenie, że autor listu
jest w posiadaniu klucza prywatnego, związanego ze znanym odbiorcy klu-
czem publicznym). W tym celu PGP oblicza rodzaj sumy kontrolnej z treści,
i dołącza ją do listu zaszyfrowaną kluczem prywatnym. Każdy kto posiada
klucz publiczny danego nadawcy, może sprawdzić zgodność sumy kontrolnej
i tym samym potwierdzić, czy list był sygnowany przez osobę będącą w posia-
daniu klucza prywatnego. Fakt, ze suma jest liczona na podstawie całej treści
listu, uniemożliwia wprowadzenie niewykrywalnych zmian w treści przez oso-
by postronne. PGP może być wykorzystywane nie tylko do wymiany poczty,
ale także np. do szyfrowania danych przechowywanych w plikach - wystarczy
w tym celu jako klucza szyfrowania użyć własnego klucza publicznego, aby
odszyfrowanie stało się możliwe tylko dla właściciela.
Ogromny sukces PGP wywołał duże zainteresowanie metodą klucza pu-
blicznego. Secure Shell (SSH) jest pakietem wykorzystującym algorytm RSA
w sposób analogiczny dla PGP dla szyfrowania zdalnej interakcyjnej sesji
użytkownika. Nawet w przypadku używania haseł przy identyfikacji użytkow-
ników, szyfrowanie całego przebiegu sesji (tak akcji użytkownika, jak i reakcji
systemu) zabezpiecza przed przechwyceniem hasła przez osoby postronne.
8.1.5 Zapora sieciowa (firewall) - filtrowanie pakietów
Zapora sieciowa (ang. firewall) - jeden ze sposobów zabezpieczania sieci i
systemów przed intruzami. Termin ten może odnosić się zarówno do dedyko-
wanego sprzętu komputerowego wraz ze specjalnym oprogramowaniem, jak i
do samego oprogramowania blokującego niepowołany dostęp do komputera,
na którego straży stoi. Pełni rolę połączenia ochrony sprzętowej i programo-
wej sieci wewnętrznej LAN przed dostępem z zewnątrz tzn. sieci publicznych,
Internetu. Często jest to komputer wyposażony w system operacyjny typu
UNUX z odpowiednim oprogramowaniem. Do jego podstawowych zadań na-
Ćwiczenie 8 - Wstęp
14
leży filtrowanie połączeń wchodzących i wychodzących oraz tym samym od-
mawianie żądań dostępu uznanych za niebezpieczne. Najczęściej używanymi
technikami obrony są: filtrowanie pakietów, czyli sprawdzanie pochodzenia
pakietów i akceptowanie pożądanych oraz zabezpieczanie programów obsłu-
gujących niektóre protokoły uznawane za niezbyt bezpieczne (np.FTP, TEL-
NET).
Bardzo ważną funkcją zapory przeciwogniowej jest monitorowanie ruchu
sieciowego i zapisywanie najważniejszych zdarzeń do dziennika (logu). Umoż-
liwia to administratorowi wczesne dokonywanie zmian konfiguracji. Popraw-
nie skonfigurowany firewall powinien odeprzeć wszelkie znane typy ataków.
Na zaporze można zdefiniować specjalna strefę zdemilitaryzowaną (DMZ -
Demilitarized Zone) - podsieć, która izoluje od wewnętrznej sieci lokalne ser-
wery udostępniające usługi na zewnątrz. [4]
Strefa zdemilitaryzowana (DMZ) bądź ograniczonego zaufania – jest to
wydzielany na zaporze sieciowej obszar sieci komputerowej nie należący ani
do sieci wewnętrznej (tj. tej chronionej przez zaporę), ani do sieci zewnętrz-
nej (tej przed zaporą; na ogół jest to Internet). W strefie zdemilitaryzowanej
umieszczane są serwery ”zwiększonego ryzyka włamania”, przede wszystkim
serwery świadczące usługi użytkownikom sieci zewnętrznej, którym ze wzglę-
dów bezpieczeństwa nie umożliwia się dostępu do sieci wewnętrznej (najczę-
ściej są to serwery WWW i FTP). W strefie zdemilitaryzowanej umieszczane
są także te serwery usług świadczonych użytkownikom sieci wewnętrznej,
które muszą kontaktować się z obszarem sieci zewnętrznej (serwery DNS,
proxy, poczty i inne). W przypadku włamania na serwer znajdujący się w
strefie DMZ intruz nadal nie ma możliwości dostania się do chronionego ob-
szaru sieci wewnętrznej. Określenie ”strefa zdemilitaryzowana” pochodzi z
terminologii wojskowej i oznacza obszar buforowy pomiędzy wrogimi siłami.
[4]
Zapora sieciowa jest najczęściej uruchamiana na serwerze pełniącym rolę
serwera dostępowego do sieci Internet (router), ale nie jest to regułą. W przy-
padku gdy serwer z firewall’em nie pełni roli routera, ograniczenia dotyczą
jedynie tego serwera. Zaleca się postawienie dwóch następujących po sobie
routerów z aktywnymi systemami firewall. Możliwe jest także ograniczenie
przepustowości bitowej routera lub wybranych stacji roboczych, a nawet ca-
łych podsieci.
System FreeBSD jest przystosowany do filtrowania pakietów. Należy jed-
nak pamiętać o tym , aby jądro systemowe (kernel) było skompilowane z
odpowiednią opcją:
options
IPFIREWALL
options
IPFIREWALL_VERBOSE
options
DUMMYNET
# niezbędne do ograniczenia przepustowości bitowej
Ćwiczenie 8 - Wstęp
15
Trzeba także uaktywnić funkcję firewall w pliku startowym serwera FreeBSD
o nazwie /etc/rc.conf:
gateway_enable="YES"
firewall_enable="YES"
firewall_script="/etc/rc.firewall"
firewall_type="open"
firewall_quiet="NO"
Konfiguracja usługi firewall polega na zapisaniu odpowiednich rekordów
zezwalających lub zabraniających połączenia za pomocą polecenia ipfw. Re-
kordom nadaje się numery porządkowe od 0 do 65535. Nadrzędnymi rekorda-
mi są rekordy o niższym numerze. Szczegółowe informacje dotyczące używa-
nia komendy ipfw są dostępne po wywołaniu polecenia man ipfw lub w sieci
Internet [2].
Ochrona za pomocą usługi firewall może dotyczyć: stacji roboczej, routera
i całej podsieci. Możliwe jest filtrowanie:
•
pakietów warstwy sieciowej IP,
•
pakietów warstwy transportowej TCP
•
pakietów warstwy transportowej UDP
•
połączeń przychodzących:
– z zastrzeżeniem źródłowych adresów IP
– z zastrzeżeniem źródłowych portów TCP lub UDP
•
połączeń wychodzących:
– z zastrzeżeniem docelowych adresów IP
– z zastrzeżeniem docelowych portów TCP lub UDP
Najnowsze wersje systemu FreeBSD mają zaimplementowane mechani-
zmy zapory sieciowej umożliwiające filtrowanie pakietów ze względu na ich
zawartość, a nie tylko ze względu na typ pakietu, jak to miało miejsce w
wersjach wcześniejszych.
Poniżej przedstawiono kilka przykładów zastosowanie usługi firewall:
•
Zablokowanie połączeń przychodzących typu TELNET
ipfw add deny tcp from any to 157.158.24.1 23
Ćwiczenie 8 - Wstęp
16
•
Zablokowanie wszystkich przychodzących połączeń FTP
ipfw add deny tcp from any to 157.158.24.1 20-21
•
Zablokowanie wszystkich połączeń FTP
ipfw add deny tcp from any to any 20-21
•
Ochrona przed intruzem o numerze IP 157.158.180.3
# ochrona całej sieci
ipfw add deny ip from 157.158.180.3 to any
# ochrona całej podsieci
ipfw add deny ip from 157.158.180.3 to 157.158.24.1/24
# ochrona wybranej maszyny
ipfw add deny ip from 157.158.180.3 to 157.158.24.1
Usługę firewall konfigurować można poprzez modyfikację zawartości skryp-
tu o nazwie /etc/rc.firewall,który jest automatycznie uruchamiany przy
każdym starcie systemu. Zaleca się jednak nie zmieniać zawartości tego pli-
ki i stworzyć własny skrypt. Poniżej przedstawiono przykładowe zawartości
trzech plików tego typu wraz z komentarzem.
•
Przykład 1: Ochrona sieci polegająca wyłączeniu z ruchu wybranych
maszyn oraz blokadzie połączeń typu telnet nawiązywanych z poza pod-
sieci lokalnej.
# dodanie rekordu 1000 zezwalającego na połączenie przez wszystkie protokoły
# z każdej maszyny do każdej
/sbin/ipfw add 1000 pass all from any to any
# zablokowanie połączenia (deny) z monitorowaniem w logach (log) z maszyn
# o numerach 193.59.31.* z każdą maszyną poprzez wszystkie protokoły
/sbin/ipfw add 600 deny log all from 193.059.031.078/24 to any
# zablokowanie połączenia TCP (deny) z każdej maszyny
# z maszyną o numerze 157.158.24.41 przez port 23 (telnet)
/sbin/ipfw add 302 deny tcp from any to 157.158.24.41 23
#zezwolenie na połączenie TCP do maszyny 157.158.24.41 przez port 23 (telnet)
#z maszyn o numerach 157.158.24.*, 157.158.17.*
/sbin/ipfw add 233 pass tcp from 157.158.24.38/24 to 157.158.24.41 23
/sbin/ipfw add 236 pass tcp from 157.158.17.01/24 to 157.158.24.41 23
Ćwiczenie 8 - Wstęp
17
•
Przykład 2: Ścisła ochrona podsieci polegająca na zablokowaniu wszyst-
kich nieużywanych usług.
# Szybkie przepuszczanie pakietów, których stan został zapamiętany
/sbin/ipfw add check-state
# Blokada intranetu - sieci z RFC 1918
/sbin/ipfw add drop all from 10.0.0.0/8 to any in via fxp0
/sbin/ipfw add drop all from 172.16.0.0/12 to any in via fxp0
/sbin/ipfw add drop all from 192.168.0.0/16 to any in via fxp0
# Stacje sieci wewnętrznej mogą wysyłać co tylko zechcą
/sbin/ipfw add pass tcp from any to any in via xl0
/sbin/ipfw add pass udp from any to any in via xl0
/sbin/ipfw add pass ip from any to any in via xl0
# Przepuszczanie wybranych usług protokołu TCP
# Przepuszczanie SSH
/sbin/ipfw add pass tcp from any to any 22 in via fxp0 setup keep-state
# Przepuszczanie SMTP jedynie do serwera poczty
/sbin/ipfw add pass tcp from any to relay 25 in via fxp0
# Informacje o obszarach mogą być przesyłane tylko przez podrzędny
# serwer nazw [dns2.nic.it]
/sbin/ipfw add pass tcp from 193.205.245.8 to ns 53 in via fxp0
# Przepuszczanie zapytań ident - takie rozwiązanie jest lepsze
# niż oczekiwanie na przekroczenie czasu
/sbin/ipfw add pass tcp from any to any 113 in via fxp0
# Przepuszczenie zakresu portów dynamicznych
/sbin/ipfw add pass tcp from any to any 49152-65535 in via fxp0
# Przepuszczanie wybranych usług protokołu UDP
# Przepuszczanie zapytań DNS jedynie do serwera DNS
/sbin/ipfw add pass udp from any to ns 53 in via fxp0
# Przepuszczenie zakresu portów dynamicznych
add pass udp from any to any 49152-65535 in via fxp0
# Protokół ICMP
# Przepuszczanie ’pingów’
/sbin/ipfw add pass icmp from any to any icmptypes 8
# Przepuszczanie komunikatów o błędach generowanych przez ’traceroute’
/sbin/ipfw add pass icmp from any to any icmptypes 3
Ćwiczenie 8 - Problemy do rozwiązania przed ćwiczeniem
18
/sbin/ipfw add pass icmp from any to any icmptypes 11
# Wszystko inne (podejrzane)jest filtrowane
/sbin/ipfw add drop log all from any to any
•
Przykład 3: Ograniczenie przepustowości bitowej połączeń wychodzą-
cych i przychodzących.
/sbin/ipfw add pipe 1 ip from any to any out
/sbin/ipfw add pipe 2 ip from any to any in
/sbin/ipfw pipe 1 config bw 64Kbit/s
/sbin/ipfw pipe 2 config bw 64Kbit/s
Literatura
1. FreeBSD Handbook , The FreeBSD Documentation Project - Copyright
c
by The FreeBSD Documentation Project
(http://www.freebsd.org/handbook)
.
2. FreeBSD Hypertext Man Pages
(http://www.freebsd.org/cgi/man.cgi?manpath=FreeBSD+6.0-STABLE)
.
3. Tanenbaum A.S Operating Systems - Design and Implementation, Pren-
tice Hall, New Jersey 1997.
4. Wikipedia (http://wikipedia.pl)
8.2 Problemy do rozwiązania przed ćwicze-
niem
a) Korzystając z dokumentacji systemu FreeBSD, publikacji ogólnodo-
stępnych oraz udostępnionych na Platformie Zdalnej Edukacji pod ad-
resem http://platforma.polsl.pl/rau3 uzupełnić swoją wiedzę z
zakresu tematyki niniejszego ćwiczenia w stopniu umożliwiającym jego
realizację.
b) Uzupełnić swoją wiedzę na temat usługi firewall oraz użycia polecenia
ipfw
korzystając z materiałów dostępnych w sieci Internet [2].
Ćwiczenie 8 - Program ćwiczenia
19
8.3 Program ćwiczenia
Uwaga 1: Większość działań w tym ćwiczeniu laboratoryjnym wykonuje się
z uprawnieniami użytkownika o największych uprawnieniach. W związ-
ku z tym proszę zachować szczególną ostrożność wykonując jakiekolwiek
operacje na serwerze. W przeciwnym wypadku może dojść do uszko-
dzenia serwera. W szczególności proszę pamiętać aby:
1. nie modyfikować żadnych plików konfiguracyjnych serwera bez wy-
raźnej zgody prowadzącego,
2. nie usuwać i nie modyfikować żadnych plików serwera chyba, że
znajdują się one w kartotece domowej użytkownika,
3. nie zakłócać pracy innym użytkownikom. Proszę pamiętać, że ser-
wer jest systemem wielozadaniowy i wielodostępnym oraz, że pra-
cują na nim także inni użytkownicy.
Uwaga 2: Nie modyfikować żadnych plików konfiguracyjnych w sys-
temie FreeBSD, a w szczególności dotyczących usługi firewall.
Uwaga 3: Ograniczenia wprowadzać bezpośrednio za pomocą pole-
cenia ipfw z konsoli lub poprzez stworzony przez sieci skrypt
w swojej kartotece domowej.
Uwaga 4: Wprowadzając jakiekolwiek ograniczenia uważać aby nie
zablokować siebie samego oraz innych użytkowników korzysta-
jących z serwera.
Uwaga 5: Przy wprowadzaniu nowych rekordów do usługi firewall
podać należy numer rekordu pod jakim reguła zostanie za-
pisana w systemie. Dla porządku należy przyjąć zasadę, aby
pierwsza cyfra numeru rekordu była równa numerowi sekcji.
Ułatwi to prowadzącemu ocenienie wykonania zadania.
8.3.1 Filtrowanie ramek IP
a) Zablokować za pomocą usługi firewall dostęp do wszystkich usług ser-
wera adresie www.polsl.pl. Sprawdzić działanie wprowadzonych ogra-
niczeń podejmując próbę nawiązania połączenia z hostem. Sprawdzić
czy ograniczenie działa dla komputerów znajdujących się w sali labo-
ratoryjnej. Skomentować otrzymane wyniki.
Ćwiczenie 8 - Program ćwiczenia
20
b) Zablokować za pomocą usługi firewall dostęp do wszystkich usług ser-
wera adresie www.ck.polsl.pl. Sprawdzić działanie wprowadzonych
ograniczeń podejmując próbę nawiązania połączenia z hostem. Spraw-
dzić czy ograniczenie działa dla komputerów znajdujących się w sali
laboratoryjnej. Skomentować otrzymane wyniki.
c) Zablokować za pomocą usługi firewall dostęp do wszystkich usług
serwera adresie www.aei.polsl.pl. Sprawdzić działanie wprowadzo-
nych ograniczeń podejmując próbę nawiązania połączenia z hostem.
Sprawdzić czy ograniczenie działa dla komputerów znajdujących się w
sali laboratoryjnej. Skomentować otrzymane wyniki.
d) Zablokować za pomocą usługi firewall dostęp do wszystkich usług
serwera adresie www.iele.polsl.pl. Sprawdzić działanie wprowadzo-
nych ograniczeń podejmując próbę nawiązania połączenia z hostem.
Sprawdzić czy ograniczenie działa dla komputerów znajdujących się w
sali laboratoryjnej. Skomentować otrzymane wyniki.
8.3.2 Filtrowanie pakietów TCP
a) Zablokować za pomocą usługi firewall dostęp do serwera WWW o
adresie www.polsl.pl. Sprawdzić działanie wprowadzonych ograniczeń
podejmując próbę nawiązania połączenia z hostem za pomocą wybra-
nego protokołu.
b) Zablokować za pomocą usługi firewall dostęp do serwera WWW o
adresie www.ck.polsl.pl. Sprawdzić działanie wprowadzonych ogra-
niczeń podejmując próbę nawiązania połączenia z hostem za pomocą
wybranego protokołu.
c) Zablokować za pomocą usługi firewall dostęp do serwera WWW o
adresie www.aei.polsl.pl. Sprawdzić działanie wprowadzonych ogra-
niczeń podejmując próbę nawiązania połączenia z hostem za pomocą
wybranego protokołu.
d) Zablokować za pomocą usługi firewall dostęp do serwera WWW o ad-
resie www.iele.polsl.pl. Sprawdzić działanie wprowadzonych ogra-
niczeń podejmując próbę nawiązania połączenia z hostem za pomocą
wybranego protokołu.
Ćwiczenie 8 - Program ćwiczenia
21
8.3.3 Filtrowanie pakietów TCP cd.
a) Zablokować za pomocą usługi firewall dostęp do serwerów WWW
o adresie www.google.pl. Sprawdzić działanie wprowadzonych ogra-
niczeń podejmując próbę nawiązania połączenia z hostem za pomocą
wybranego protokołu.
b) Zablokować za pomocą usługi firewall dostęp do serwerów WWW o
adresie www.msdn.com. Sprawdzić działanie wprowadzonych ograniczeń
podejmując próbę nawiązania połączenia z hostem za pomocą wybra-
nego protokołu.
c) Zablokować za pomocą usługi firewall dostęp do serwerów WWW o
adresie www.aol.com. Sprawdzić działanie wprowadzonych ograniczeń
podejmując próbę nawiązania połączenia z hostem za pomocą wybra-
nego protokołu.
d) Zablokować za pomocą usługi firewall dostęp do serwerów WWW o
adresie www.microsoft.pl. Sprawdzić działanie wprowadzonych ogra-
niczeń podejmując próbę nawiązania połączenia z hostem za pomocą
wybranego protokołu.
8.3.4 Ograniczenie przepustowości bitowej
a) Ograniczyć przepustowość bitową do 1 Mbps do serwera WWW o ad-
resie www.polsl.pl. Sprawdzić działanie wprowadzonych ograniczeń
podejmując próbę nawiązania połączenia z hostem za pomocą wybra-
nego protokołu. Zmierzyć przepustowość bitową.
b) Ograniczyć przepustowość bitową do 1 Mbps do serwera WWW o
adresie www.ck.polsl.pl. Sprawdzić działanie wprowadzonych ogra-
niczeń podejmując próbę nawiązania połączenia z hostem za pomocą
wybranego protokołu. Zmierzyć przepustowość bitową.
c) Ograniczyć przepustowość bitową do 1 Mbps do serwera WWW o
adresie www.aei.polsl.pl. Sprawdzić działanie wprowadzonych ogra-
niczeń podejmując próbę nawiązania połączenia z hostem za pomocą
wybranego protokołu. Zmierzyć przepustowość bitową.
d) Ograniczyć przepustowość bitową do 1 Mbps do serwera WWW o ad-
resie www.iele.polsl.pl. Sprawdzić działanie wprowadzonych ogra-
niczeń podejmując próbę nawiązania połączenia z hostem za pomocą
wybranego protokołu. Zmierzyć przepustowość bitową.
Ćwiczenie 8 - Program ćwiczenia
22
8.3.5 Blokowanie usług sieciowych
a) Zablokować usługi typu PING i TRACEROUTE dla hosta o adresie www.polsl.pl.
Wszystkie inne usługi mają być udostępnione. Sprawdzić działanie
wprowadzonych ograniczeń podejmując próbę nawiązania połączenia
z hostem za pomocą wybranego protokołu.
b) Zablokować usługi typu PING i TRACEROUTE dla hosta o adresie www.ck.polsl.pl.
Wszystkie inne usługi mają być udostępnione. Sprawdzić działanie
wprowadzonych ograniczeń podejmując próbę nawiązania połączenia
z hostem za pomocą wybranego protokołu.
c) Zablokować usługi typu PING i TRACEROUTE dla hosta o adresie www.aei.polsl.pl.
Wszystkie inne usługi mają być udostępnione. Sprawdzić działanie
wprowadzonych ograniczeń podejmując próbę nawiązania połączenia
z hostem za pomocą wybranego protokołu.
d) Zablokować usługi typu PING i TRACEROUTE dla hosta o adresie www.iele.polsl.pl.
Wszystkie inne usługi mają być udostępnione. Sprawdzić działanie
wprowadzonych ograniczeń podejmując próbę nawiązania połączenia
z hostem za pomocą wybranego protokołu.
8.3.6 Ocena poziomu bezpieczeństwa i wykrywanie za-
grożeń
a) Wykorzystując specjalistyczne oprogramowanie o nazwie COPS spraw-
dzić bezpieczeństwo na serwerze bsd.aei.polsl.pl.Ocenić na tej pod-
stawie obecny poziom bezpieczeństwa i ewentualne zagrożenia.
b) Zlokalizować inne podobne narzędzia programowe dostępne na serwe-
rze FreeBSD (/usr/ports/security) służące do oceny poziomu bez-
pieczeństwa i wskazywania ewentualnych zagrożeń.
c) Ocenić klasę bezpieczeństwa serwera FreeBSD posługując się Pomarań-
czową Księgą.
d) Zapoznać się ze skryptami dotyczącymi spraw bezpieczeństwa, które są
cyklicznie uruchamiane przez serwer FreeBSD.
e) Zaproponować oraz przeprowadzić czynności mające na celu usunięcie
ewentualnych zagrożeń i podwyższenie bezpieczeństwa na serwerze.
e) Zaproponować oraz przeprowadzić czynności mające na celu wykrycie
przypadków naruszenia bezpieczeństwa lub prób włamania na serwerze.
Ćwiczenie 8 - Program ćwiczenia
23
8.3.7 Podniesienie poziomu bezpieczeństwa systemu
a) Podnieść poziom bezpieczeństwa poprzez zablokowanie niepotrzebnych
(nieużywanych) usług internetowych.
b) Zablokowanie dostępu do katalogów użytkowników innym użytkowni-
kom.
c) Zablokowanie kont publicznych (bez hasła).
d) Zabezpieczenie kartoteki root przed dostępem innych użytkowników.
e) Odnalezienie na serwerze wszystkich plików posiadających atrybut s
oraz których właścicielem jest root.
f) Zablokowanie połączeń TELNET .
g) Uniemożliwienie zapisu użytkownikowi anonimowemu poprzez FTP.
h) Ograniczyć liczbę aktywnych sesji FTP.
i) Ograniczyć liczbę połączeń poprzez FTP z jednego numeru IP.
j) Ograniczyć liczbę nawiązywanych połączeń internetowych w czasie 1
minuty, tak aby ustrzec się przed skutkami tzw. bombardowania ram-
kami.
8.3.8 Analiza trzech wybranych aspektów bezpieczeń-
stwa systemu
a) Umieścić w katalogu użytkownika kowalski interpreter poleceń (sh) z
następującymi atrybutami i sprawdzić jego działanie.
-r-sr-xr-x 1 kowalski wheel 32436 Jan 01 00:00 sh
Następnie zmienić atrybuty na następujące:
-r-sr-xr-x 1 root wheel 32436 Jan 01 00:00 sh
Sprawdzić jego działanie oraz zastanowić się nad potencjalnymi zagro-
żeniami i pomyśleć jak nim przeciwdziałać.
Ćwiczenie 8 - Program ćwiczenia
24
b) Nawiązać połączenie z serwerem poczty elektronicznej za pomocą portu
25 i usługi TELNET. Wysłać pocztę do siebie wpisując w miejsce adre-
sata fałszywego nadawcę (np. Aleksander.Kwasniewski@prezydent.pl).
Zastanowić się nad potencjalnymi zagrożeniami i pomyśleć jak nim
przeciwdziałać.
c) Zapoznać się z kodem źródłowym polecenia login umieszczony w kata-
logu /usr/src/sbin/login. Przechować zawartość tego katalogu tak
aby był możliwy powrót do poprzedniej wersji plików. Dokonać mody-
fikacji w pliku źródłowym tak aby po wpisaniu ciągu znaków hacker
podczas logowania system nie pytając o hasło uruchomił sesję na serwe-
rze z uprawnieniami użytkownika root. Następnie skompilować źródła
polecenia login i zainstalować w systemie poleceniem make install.
Sprawdzić działanie ”tylnych drzwi” do systemu. Zastanowić się nad
potencjalnymi zagrożeniami i pomyśleć jak nim przeciwdziałać. Po prze-
prowadzeniu doświadczenia skompilować i zainstalować oryginalną wer-
sję polecenia login.