2004.03_Analiza powłamaniowa – podstawy.pdf
(
3140 KB
)
Pobierz
439170055 UNPDF
Analiza powłamaniowa
– podstawy
Marek Janiczek
Przedstawiamy zasady,
którymi należy się kierować
podczas przeprowadzania
analizy powłamaniowej oraz jej
sugerowany przebieg. Opisane
techniki i narzędzia umożliwią
określenie sposobu wtargnięcia
do systemu i prześledzenie
działań intruza.
sowane przy analizie powłamaniowej,
przeprowadzimy badanie przykładowo
skompromitowanego systemu pełniącego ro-
lę serwera WWW. Poszczególne etapy analizy
wykażą, jak dokonano włamania i jakie działa-
nia przeprowadził intruz. Analizę przeprowadzi-
my za pomocą systemu FreeBSD 5.0, podsta-
wowych narzędzi systemu operacyjnego oraz
pakietu SleuthKit (
http://www.sleuthkit.org
).
na przykład obejmować kolejno wykonywa-
ne polecenia wraz z odpowiednimi przełącz-
nikami). Ważne jest również przestrzeganie
kolejności gromadzenia danych w zależności
od ich ulotności. Dokument RFC 3227 zaleca
gromadzenie danych z systemu w następują-
cej kolejności:
• rejestry, bufory,
• tablica routingu, tablica arp, lista procesów,
statystyki jądra, pamięć,
• tymczasowe systemy plików
(np. ramdyski),
• dyski,
Podstawowe zasady
Istnieje szereg dokumentów (patrz Ramka
W sieci
) sugerujących zasady postępowania
w chwili wykrycia nieautoryzowanych działań
w systemie. Postępowanie zgodnie z wytycz-
nymi gwarantuje, że zgromadzone dowody bę-
dą pewne, a analiza będzie przeprowadzona
poprawnie. Oto kilka podstawowych zasad.
Z artykułu nauczysz się...
W jaki sposób przy użyciu narzędzi z pakietu Sleu-
thKit, własnej inteligencji, doświadczenia i odrobi-
ny szczęścia przeprowadzić analizę powłamanio-
wą systemu tak, by nie tylko nie zniszczyć śladów,
ale dowiedzieć się kto, kiedy i w jaki sposób doko-
nał włamania.
Co powinieneś wiedzieć...
Zakładamy, że Czytelnik jest przynajmniej średnio-
zaawansowanym administratorem systemów unik-
sowych.
Gromadzenie danych
niezbędnych do analizy
Proces gromadzenia danych należy dokład-
nie przemyśleć. Istotne jest posiadanie przy-
gotowanej i przetestowanej wcześniej proce-
dury lub planu, który umożliwi zgromadzenie
danych w optymalny sposób (plan ten może
58
www.hakin9.org
Hakin9 Nr 3/2004
A
by zaprezentować zasady i techniki sto-
Analiza powłamaniowa
Krótki opis systemu, do którego dokonano włamania
Podstawowa rola systemu: serwer WWW (statyczne strony HTML)
Platforma sprzętowa:
i386
System operacyjny:
FreeBSD 4.5
Zainstalowane komponenty oprogramowania systemowego:
bin
,
crypt
,
man
Oprogramowanie dodatkowe:
Apache 1.3.20
Adres IP serwera: 10.10.12.123
Nazwa symboliczna serwera:
www.wwwtest.pl
Użytkownicy:
Postępowanie w trakcie gromadze-
nia danych ze skompromitowane-
go systemu w dużej mierze zależy
od tego, czy system jeszcze działa
(
Przypadek I
), czy też został uprzed-
nio wyłączony, na przykład przez ad-
ministratora (
Przypadek II
).
Przypadek I
Jeżeli system działa, nie należy go
wyłączać lub restartować. W momen-
cie wykrycia włamania należy zało-
żyć, że w systemie zainstalowano pu-
łapki, bomby logiczne lub inny złośli-
wy kod, który może być aktywowany
w trakcie niestandardowej zmiany sta-
nu systemu, powodując całkowite lub
częściowe zatarcie śladów nieautory-
zowanych działań intruza. W przypad-
ku okoliczności zmuszających nas
do wyłączenia systemu należy tego
dokonać z pominięciem standardowej
procedury (na przykład bez polecenia
shutdown
) – po prostu odciąć zasila-
nie do systemu.
Jeżeli w skompromitowanym sys-
temie lub w jego bezpośrednim oto-
czeniu przechowywane są wrażli-
we informacje należy dokonać i l-
tracji ruchu lub odłączyć system
•
admin
– administrator systemu,
•
www
– administrator serwisu WWW (nie zna hasła do konta
www
– administrator serwisu WWW (nie zna hasła do konta
www
root
),
•
root
– użytkownik uprzywilejowany
root.
Dostęp do serwera nadzorowany przez i rewall:
• z sieci zewnętrznej dostęp wyłącznie do portu 80,
• z sieci wewnętrznej dostęp wyłącznie do portów 22 i 80.
System plików:
UFS
Partycje systemowe:
/
•
/tmp
- ad0s1f,
•
/var
- ad0s1e,
/var
•
/usr
- ad0s1g.
/usr
- ad0s1g.
• dzienniki zdarzeń przechowy-
wane w innych systemach (np.
dzienniki zdarzeń systemu i re-
wall),
• informacje o i zycznej koni gura-
cji i topologii sieci,
• dane archiwalne (np. zarchiwizo-
wane dzienniki zdarzeń).
Narzędzia do analizy powłamaniowej
– pakiet SleuthKit
SleuthKit (następca pakietu TASK) jest zbiorem narzędzi do
przeprowadzenia analizy powłamaniowej. Napisany został
w językach C i Perl. Działa w środowiskach Linux, OpenBSD,
FreeBSD, Solaris, Mac OS X i CYGWIN. Umożliwia analizę sys-
temów plików: NTFS, FAT, UFS, FFS, EXT2FS i EXT3FS (tak-
że obrazów plików utworzonych narzędziem
dd
– tryb surowy).
•
icat
– wyświetla zawartość pliku określonego przez metada-
ne zawarte w danym i-węźle,
•
ils
– wyświetla informacje zawarte w i-węzłach (domyślnie
– powiązanych wyłącznie z usuniętymi plikami),
•
mactime
– generuje czytelną historię operacji w systemie
plików na podstawie wyników poleceń
l s
i
ils,
•
istat
– wyświetla informacje zawarte w danym i-węźle, mię-
dzy innymi stan alokacji, UID, GID, wielkość, liczbę linków,
znaczniki czasu MAC oraz wskaźniki do jednostek alokacji
danych.
Narzędzia warstwy systemu plików:
Narzędzia warstwy jednostek alokacji danych:
•
fsstat
– wyświetla szczegółowe informacje dotyczące dane-
go systemu plików, między innymi jego typ, zakresy i-węzłów,
zakresy jednostek alokacji danych oraz wielkości jednostek
alokacji danych,
•
fi nd
– odnajduje nazwę pliku lub katalogu (również usunię-
tego) powiązanego z danym i-węzłem,
•
l s
– wyświetla listę nazw plików i katalogów (również usu-
niętych) w danym obrazie partycji.
•
dls
– wyświetla zawartość niezaalokowanej przestrzeni sys-
temu plików,
•
dcat
– wyświetla dane zawarte we wskazanej jednostce alo-
kacji danych,
•
dstat
– wyświetla status wskazanej jednostki alokacji da-
nych,
•
dcalc
– mapuje jednostki alokacji danych pomiędzy obra-
zem systemu plików i jego częścią zawierającą wyłącznie
niezaalokowaną przestrzeń (wynik działania polecenia
dls
).
Narzędzia warstwy metadanych:
•
ii nd
– odnajduje w danym obrazie partycji strukturę metada-
ii nd
– odnajduje w danym obrazie partycji strukturę metada-
Narzędzia warstwy nośników danych:
ii nd
nych (i-węzeł) powiązaną ze wskazaną jednostką alokacji da-
nych,
•
mmls
– wyświetla tablice partycji i etykiety dyskowe.
Hakin9 Nr 3/2004
www.hakin9.org
59
root
),
•
/
- ad0s1a,
/usr
dd
W skład pakietu wchodzą następujące elementy:
Podstawowe narzędzia – zawartość
płyty CD do gromadzenia danych
(FreeBSD)
•
uname
– wyświetla podstawowe informacje o platformie
sprzętowej i systemie operacyjnym.
•
ifconi g
– wyświetla koni gurację i status interfejsów sie-
ciowych. Pozwala np. stwierdzić, czy intefejs sieciowy jest
w trybie nasłuchu (
promiscous
w trybie nasłuchu ( ).
•
arp
– wyświetla informacje zawarte w tablicy
arp
(odwzo-
rowanie pomiędzy adresami sprzętowymi i adresami pro-
tokołu IP).
•
netstat
– wyświetla zawartość różnych struktur danych po-
wiązanych z siecią, między innymi połączenia sieciowe,
tablice routingu, statystyki interfejsów.
•
dd
– kopiuje plik (w trybie surowym) z wybranymi przez
użytkownika rozmiarami bloków wejścia/wyjścia. Narzę-
dzie
dd
wykorzystuje się do wykonania obrazów partycji
w trybie nasłuchu (
promiscous
•
vmstat
– wyświetla statystyki jądra dotyczące aktywności
procesora, procesów, pamięci wirtualnej i dysków. Wyniki
polecenia
vmstat
mogą być pomocne w określeniu elemen-
tu systemu, którego działanie odbiega od normy.
•
iostat
– wyświetla statystyki jądra dotyczące aktywno-
ści procesora, terminali i innych urządzeń podłączonych
do systemu. Wyniki
iostat
są bardziej szczegółowymi od-
powiednikami informacji uzyskanych za pomocą
vmstat
.
•
ps
– wyświetla listę aktywnych procesów w systemie. Po
ps
– wyświetla listę aktywnych procesów w systemie. Po
ps
zastosowaniu odpowiednich przełączników wyniki
ps
mo-
ps
mo-
dd
i dysków.
•
md5
(
md5sum
,
sha1
) – narzędzia do generowania skrótów
kryptograi cznych.
•
uptime
– wyświetla podstawowe informacje o działaniu
systemu: czas działania systemu, liczba zalogowanych
użytkowników oraz średnie obciążenie.
•
tcpdump
i
snort
– narzędzia umożliwiające nasłuch ruchu
ps
gą być pomocne w uzyskaniu informacji dotyczących użyt-
kownika, który uruchomił proces, ID procesu nadrzędne-
go, daty i godziny uruchomienia, numeru terminala itp.
•
ldd
– wyświetla wszystkie współdzielone obiekty (bibliote-
ki) niezbędne do uruchomienia programu lub załadowania
współdzielonego obiektu. Program
ldd
może być pomocny
ldd
w celu rozpoznania, z jakich współdzielonych obiektów ko-
rzysta podejrzany program wykonywalny.
•
nm
– wyświetla listę symboli z obiektu (programu, biblioteki)
– o ile nie zostały usunięte poleceniem
strip
. Umożliwia uzy-
skanie bardziej szczegółowych informacji niż
ldd
(np. na-
zwy funkcji).
•
readelf
– wyświetla szczegółowe informacje o plikach wy-
konywalnych typu ELF (ang.
executable and linking format
).
snort
w sieci z rozbudowanymi możliwościami i ltracji pakietów.
Z ich pomocą można nasłuchiwać w czasie rzeczywistym
lub zapisywać ruch do plików.
•
lsof
– wyświetla informacje o wszystkich plikach otwartych
przez procesy w systemie.
•
tripwire
i
aide
– narzędzia do sprawdzania integralności pli-
ków. Z ich pomocą możemy zorientować się, które pliki by-
ły modyi kowane.
•
netcat
,
cryptcat
i
executable and linking format
Program
readelf
można wykorzystać do zgromadzenia pod-
stawowych informacji o podejrzanym pliku wykonywalnym.
•
i le
– rozpoznaje typ danego pliku.
•
sysctl
– wyświetla wartości parametrów jądra. Z listy war-
tości parametrów można uzyskać między innymi szczegó-
łowe informacje dotyczące koni guracji poszczególnych
elementów systemu, w tym parametrów stosu TCP/IP.
•
last
– wyświetla historię sesji użytkowników w systemie
oraz historię pracy systemu.
•
kldstat
– wyświetla listę uruchomionych modułów jądra
systemu. Uzyskana lista może umozliwić wykrycie części
kodu dynamicznie dodanej do jądra systemu.
•
truss
– pozwala śledzić wywołania systemowe wykonywa-
ne przez dany program lub działający w systemie proces.
•
stat
– wyświetla informacje o danym pliku, między innymi
prawa dostępu, typ pliku, znaczniki czasu MAC.
•
strings
– wyświetla wszystkie drukowalne sekwencje zna-
ków z danego pliku, za którymi następuje znak niedruko-
walny. Wykorzystywany do wyszukiwania podejrzanych
sekwencji znaków.
•
w
– wyświetla informacje o zalogowanych użytkownikach
i ich procesach (między innymi nazwa użytkownika, na-
zwa terminala, zdalny host, czas zalogowania się, linia po-
leceń) oraz podstawowe informacje o działaniu systemu
(czas działania, liczba zalogowanych użytkowników, śred-
nie obciążenie).
•
who
– wyświetla informacje o aktualnie zalogowanych
użytkownikach (nazwa użytkownika, nazwa terminala, da-
ta i czas zalogowania się oraz nazwa lub adres IP hosta
w przypadku połączeń zdalnych).
socat
syłanie informacji przez sieć TCP/IP.
cryptcat
posiada
cryptcat socat
– narzędzia umożliwiające prze-
socat
– narzędzia umożliwiające prze-
cryptcat
mechanizmy kryptograi czne umożliwiające bezpieczną
transmisję danych.
socat
jest nową i znacznie rozszerzo-
ną implementacją
netcat
.
•
ktrace
– włącza śledzenie danego procesu na poziomie ją-
dra systemu. Śledzi między innymi wywołania systemowe,
przetwarzanie sygnałów oraz operacje I/O. Wyniki zapisy-
wane są do pliku (narzędzie to można wykorzystać wy-
łącznie jeżeli dane gromadzimy w dołączonej pamięci ze-
wnętrznej, np. Flash). Do przeglądania pliku wynikowego
należy zastosować narzędzie
kdump
.
•
gcore
– zapisuje do pliku obraz pamięci działającego pro-
cesu. Ponieważ
gcore
nie umożliwia zapisu danych w in-
nym miejscu niż do pliku, należy go stosować wyłącznie,
gdy dane gromadzimy w dołączonej pamięci zewnętrznej.
•
fsdb
– otwiera wskazaną partycję lub obraz partycji
i umożliwia interaktywne przeglądanie informacji zawar-
tych w i-węzłach.
•
dumpfs
– wyświetla informacje dotyczące super-bloku
i grup cylindrów dla wskazanego systemu plików.
•
disklabel
– wyświetla szczegółowe informacje o dysku, je-
go podziale na partycje i etykietach dyskowych.
SleuthKit
standardowe narzędzia systemowe tj.
ls, su, date, pwd, tail, he-
ad, more, less, i nd, mount, tar, gzip, sort, awk, crontab
itp., któ-
re powinno się stosować zamiast narzędzi dostępnych w skom-
promitowanym systemie.
60
www.hakin9.org
Hakin9 Nr 3/2004
Poza wymienionymi, na nośniku do gromadzenia danych po-
winny się znaleźć również narzędzia z pakietu
SleuthKit
oraz
Analiza powłamaniowa
od sieci – w takiej sytuacji oprócz
zmniejszenia wpływu zmian dokony-
wanych przez autoryzowanych użyt-
kowników unika się również poten-
cjalnego wycieku informacji lub moż-
liwości eskalacji ataku na inne sys-
temy. Można też za pomocą sniffe-
ra (np.
snifi t
lub
tcpdump
) urucho-
mionego na dodatkowym hoście za-
rejestrować ruch sieciowy, który mo-
że ujawnić istnienie nieautoryzowa-
nych połączeń.
Należy pamiętać również o tym,
że wszelkie gromadzone dane nie
mogą być zapisywane na dysku
skompromitowanego systemu. Naj-
lepszym sposobem gromadzenia da-
nych jest podłączenie do komputera
(np. do portu USB) nieulotnej pamię-
ci typu Flash lub wysyłanie danych
bezpośrednio przez sieć do zaufa-
nego systemu.
Do gromadzenia danych nie nale-
ży wykorzystywać narzędzi dostęp-
nych w skompromitowanym systemie.
Należy zastosować narzędzia skom-
pilowane statycznie (dla przypomnie-
nia: w celu statycznej kompilacji pro-
gramów należy zastosować przełącz-
nik
--static
kompilatora
gcc
) lub ko-
rzystające z bibliotek znajdujących się
na nośniku zewnętrznym (przykłado-
wa lista podstawowych narzędzi dla
systemu FreeBSD przedstawiona zo-
stała w Ramce). Można także skorzy-
stać z płytowych dystrybucji systemów
operacyjnych, o ile oferują one nie-
zbędne narzędzia. Przykładem takiej
dystrybucji może być F.I.R.E (
http://
i re.dmzs.com
), oferująca narzędzia
skompilowane dla systemów win32,
Solaris (SPARC) i Linux (x86).
Posiadanie statycznie skom-
pilowanych narzędzi jest bardzo
istotne przede wszystkim dlatego,
że wszelkie narzędzia dostępne
w systemie po jego kompromitacji
przestają być wiarygodne – mogły
zostać podmienione przez intruza
w celu ukrycia jego obecności i dzia-
łań. Poza tym każde użycie narzę-
dzi systemowych powoduje zmianę
ich znacznika czasu ostatniego do-
stępu (
accessed
), co nie jest pożą-
dane. Należy jednak również zazna-
czyć, że nawet statycznie skompi-
lowane narzędzia mogą nie dawać
wiarygodnych wyników, jeżeli intruz
w odpowiedni sposób zmodyi kował
jądro systemu lub dołączył do niego
obcy moduł. Jeżeli istnieje takie po-
dejrzenie, po zgromadzeniu ulotnych
danych z działającego systemu nale-
ży wyłączyć system i zgromadzić da-
ne nieulotne bezpośrednio w zaufa-
nym systemie – patrz
Przypadek II
.
na przykład przez podłączenie dys-
ku i zamontowanie go w trybie tylko
do odczytu lub wystartowanie syste-
mu z bootowalnej płyty CD.
Analiza powłamaniowa
Analizę powłamaniową należy prze-
prowadzić w zaufanym systemie, wy-
łącznie na danych stanowiących ko-
pie oryginalnych nośników skompro-
mitowanego systemu. Praca z orygi-
nalnymi nośnikami jest zbyt ryzykow-
na, ponieważ nawet niewielki błąd
może zakończyć się częściowym
zatarciem lub całkowitym zniszcze-
niem dowodów.
W trakcie przeprowadzania anali-
zy istotne jest również notowanie wy-
konanych działań, aby później w ła-
twy sposób można było zaprezento-
wać sposób dotarcia do dowodu.
Pierwsze kroki
w śledztwie –
gromadzenie dowodów
Po zamontowaniu nośnika z narzę-
dziami w skompromitowanym syste-
mie można przystąpić do pierwsze-
go etapu śledztwa. Jest nim zgro-
madzenie wszystkich niezbędnych
danych (dowodów). Na tym etapie
należy bardzo uważać na narzę-
dzia, które mogą tworzyć na dysku
tymczasowe bufory lub pliki wyni-
kowe. Do takich programów należy
lsof
,
lsof
,
Przypadek II
Jeżeli system został uprzednio wyłą-
czony, należy zgromadzić dane nie-
ulotne bezpośrednio w zaufanym
systemie. Możemy tego dokonać
lsof
wyświetlając listę plików otwar-
tych przez działające procesy. Uru-
chomienie programu
lsof
bez zasto-
sowania odpowiedniego przełącz-
nika (
-Di
) utworzy w katalogu do-
mowym użytkownika, na którego je-
steśmy zalogowani, plik buforujący
nazwy urządzeń w systemie.
Jednym z efektywnych sposobów
gromadzenia wyników poleceń wyda-
wanych w skompromitowanym syste-
mie (przynajmniej tych, które w wyni-
ku dają sekwencje drukowalnych zna-
ków) jest zastosowanie zdalnego reje-
strowania sesji. W tym celu włączamy
rejestrowanie sesji w zaufanym syste-
mie, a następnie logujemy się zdalnie
do skompromitowanego systemu i wy-
dajemy w nim polecenia. W przypad-
ku zaufanego systemu typu UNIX włą-
Zdalna rejestracja wyników poleceń
za pomocą narzędzia
script
Zaufany system – uruchomienie rejestrowania sesji i zdalne zalogowanie się do skom-
promitowanego systemu:
# script
# ssh nazwa_uzytkownika@skompromitowany_system
Uruchamianie poleceń w skompromitowanym systemie:
# ps ax
# ...
Zamknięcie zdalnej sesji ze skompromitowanym systemem:
# exit
Zaprzestanie rejestrowania sesji:
# exit
Hakin9 Nr 3/2004
www.hakin9.org
61
typescript
temie Windows można zastosować
np. program
putty
putty
.
putty
Innym sposobem, szczególnie
przydatnym do przesyłania przez
sieć większej ilości informacji lub da-
nych w postaci binarnej, jest zasto-
sowanie narzędzia
netcat
. Ten spo-
sób można również zastosować
do przesyłu danych, jeżeli jesteśmy
zalogowani bezpośrednio na konsoli
skompromitowanego systemu. Jeżeli
nie mamy zaufania do sieci, przez któ-
rą dane mają być transportowane, na-
leży rozważyć zastosowanie
cryptcat
umożliwiającego szyfrowanie transmi-
sji. Przykłady przesyłania danych do
zaufanego systemu z wykorzystaniem
narzędzi
script
,
netcat
oraz
typescript
), natomiast w sys-
wość odtworzenia jego stanu. Oto
przykład zgromadzonego zestawu
informacji (polecenia i ich przełącz-
niki dla systemu FreeBSD 4.5):
• szczegółowe informacje doty-
czące pliku wykonywalnego:
# readelf -a nazwa_pliku
,
• lista załadowanych modułów ją-
dra:
# kldstat -v
,
• zalogowani użytkownicy i ich pro-
cesy:
# who
i
# w -dn
,
• historia logowania się użyt-
kowników i historia systemu:
# last
,
• parametry jądra:
# sysctl -a
,
• czas działania systemu:
# uptime
,
• stan dysków i systemów plików:
# mount
,
# df -k
,
# swapinfo
,
# dumpfs /dev/ad0s1x
,
# disklabel
/dev/ad0s1x
(x – kolejna partycja),
• obrazy partycji (również partycji
swap i ramdysków) – patrz Ram-
ka,
• dzienniki zdarzeń przechowywa-
ne w innych systemach (system
i rewall, IDS),
• informacje dotyczące koni guracji
systemu i topologii sieci (wywiad
z administratorem),
netcat cryptcat
przedstawione są w Ramkach.
Dane, które zgromadzimy w za-
ufanym systemie, powinny w jak naj-
większym stopniu zapewnić możli-
• aktualny czas systemowy:
# date
,
• tablica routingu:
# netstat -nr
,
• tablica arp:
# arp -a
,
• aktywność procesorów, proce-
sów, pamięci wirtualnej, dysków:
# vmstat 3 10
,
• aktywność procesorów, dysków,
dysków wymiennych, terminali:
# iostat 3 10
,
• statystyki protokołów sieciowych:
# netstat -s
,
• stan interfejsów sieciowych:
# ifconfig -a
i
# netstat -i
,
• połączenia sieciowe:
# netstat -na
i
# lsof -Di -n -i4
,
• śledzenie działania podejrzanych
procesów:
# truss -p PID
,
• lista wymaganych przez dany
program współdzielonych biblio-
tek:
# ldd nazwa_programu
,
drów
drów dysku). Każda grupa cylindrów składa się z kopii super-
bloku (wielkość bloków i fragmentów danych, wielkość grup cy-
lindrów, ilość bloków i i-węzłów w grupie cylindrów), przestrze-
ni przeznaczonej na i-węzły, mapy bitowej określającej wolną
przestrzeń w grupie cylindrów, sumarycznych informacji doty-
czących wykorzystania bloków danych oraz właściwych blo-
ków danych.
Bloki danych mogą mieć wielkość dowolnej potęgi 2, ale
nie mniejszą niż 4096 bajtów (2^12). Wszystkie grupy cylin-
drów mają stałą liczbę i-węzłów zaalokowaną w momencie
tworzenia systemu plików.
I-węzeł
jest strukturą danych zawie-
drów
(jeden lub więcej kolejno następujących po sobie cylin-
miarach. W związku z tym alokacja całego bloku dla pliku o du-
żo mniejszym rozmiarze nie jest zbyt efektywnym rozwiąza-
niem. W celu wyeliminowania tej niedogodności wprowadzo-
no możliwość podziału bloków na mniejsze części zwane
frag-
mentami
. Wielkość fragmentu określana jest w momencie two-
rzenia systemu plików, każdy blok może być podzielony na 2, 4
lub 8 fragmentów. Dolną granicą wielkości fragmentu jest 512
bajtów. Każdy z fragmentów jest w pełni adresowalny, dlate-
go też bitowa mapa bloków powiązana z każdą grupą cylin-
drów przechowuje informacje o wolnej przestrzeni na pozio-
mie fragmentów.
Na przykład w systemie plików złożonym z bloków o wiel-
kości 4096 bajtów i fragmentów o wielkości 1024 bajtów plik
może być reprezentowany przez zero lub więcej bloków o wiel-
kości 4096 bajtów oraz, jeżeli będzie to konieczne, przez jeden
blok podzielony na fragmenty o wielkości 1024 bajtów. Pozo-
stałe niewykorzystane fragmenty z tego bloku będą dostępne
dla przechowania części innych plików.
System plików FFS wykorzystywany jest między innymi
w systemach FreeBSD, NetBSD, OpenBSD oraz Sun Solaris.
Również ext2 wykorzystywany w systemach Linux jest oparty
na koncepcji FFS. Podstawową różnicą pomiędzy systemem
FFS i ext2 jest zastosowanie w tym drugim (zamiast grup cylin-
drów) grup bloków nie powiązanych z cylindrami dysku.
Osoby zainteresowane szczegółami budowy systemu pli-
ków FFS odsyłamy do plików nagłówkowych znajdujących się
w katalogu
/usr/include/ufs/
systemu FreeBSD.
I-węzeł
rającą informacje o pliku – jego właścicielu, grupie, prawach
dostępu, znacznikach czasu, adresach bloków danych.
W systemie FFS stosowane są dwa typy adresowania
bloków danych. Pierwszy z nich to adresacja bezpośrednia
– adres bloku danych zapisany jest bezpośrednio w strukturze
i-węzła. Drugi typ to adresacja pośrednia – zamiast adresu blo-
ku danych w strukturze i-węzła przechowywany jest adres ta-
blicy zawierającej właściwe adresy bloków danych.
Podstawowym problemem związanym ze stosowaniem
bloków o wielkości nie mniejszej niż 4096 bajtów jest to, że
w systemach UNIX istnieje wiele plików o bardzo małych roz-
I-węzeł
jest strukturą danych zawie-
/usr/include/ufs/
systemu FreeBSD.
62
www.hakin9.org
Hakin9 Nr 3/2004
czenie rejestrowania sesji następuje
po wydaniu polecenia
script
(wyni-
ki domyślnie zapisywane są w pliku
o nazwie
typescript
), natomiast w sys-
Ogólna charakteryskyka systemu
plików BSD Fast File System (FFS)
W systemie plików FFS (Rysunek 1) wprowadzono podział
partycji na jeden lub więcej obszarów zwanych
grupami cylin-
drów
(jeden lub więcej kolejno następujących po sobie cylin-
Plik z chomika:
teresarobert
Inne pliki z tego folderu:
2003.02_Sieciowa analiza powłamaniowa - krok po kroku.pdf
(724 KB)
2007.10_Audyt systemów informatycznych.pdf
(165 KB)
2008.06_Monitoring zabezpieczeń.pdf
(420 KB)
2009.11_Audyt i kontrola danych osobowych.pdf
(272 KB)
2009.11_Informatyka śledcza.pdf
(357 KB)
Inne foldery tego chomika:
► Corel VideoStudio Ultimate X9 19
Aikido
Akademia Morska
angielski brytyjski
Angielski dla leniwych
Zgłoś jeśli
naruszono regulamin