[ Pobierz całość w formacie PDF ]
.Co więcej, może on zmienić ctime, wykonując zapisy bezpośrednio dosterownika dysku i omijając w ten sposób wszelkie sprawdzenia wykonywane przez system.Wprzypadku systemu plików ext2 Linuxa napastnik może zmienić zawartość węzła bezpośrednio zapomocą polecenia debugfs.Z tego powodu w systemie, w którym przejęty jest dostęp do uprawnień superużyt-kownika, nienależy polegać na żadnej z tych trzech wartości czasów zarówno dla plików, jak i katalogów.UWAGANiektóre programy zmieniają wartość ctime pliku bez faktycznego zmieniania samego pliku.Możeto być zwodnicze w przypadku poszukiwania podejrzanych operacji.Jednym z winowajców jestpolecenie file.Nieporozumienie pojawia się dlatego, że polecenie file otwiera plik do odczytu wcelu określenia jego typu - co powoduje zmianę wartości atime.Domyślnie większość wersjipolecenia/ż'/e ustawia ponownie atime na wartość poprzednią, ale ta operacja powoduje zmianępola ctime.Niektóre programy skanujące związane z bezpieczeństwem wykorzystują program filewewnętrznie (lub stosują podobne mechanizmy), co może powodować zmiany wartości ctime naszeroką skalę, chyba że skaner zostanie uruchomiony w systemie znajdującym się w trybie tylkodo odczytu.Uprawnienia do plikówUprawnienia podawane w każdym wierszu wyświetlanym przez polecenie ls informują o tym, zjakim plikiem mamy do czynienia i jakiego rodzaju dostęp do niego (możliwość odczytu, zapisuczy wykonywania) jest oferowany różnym użytkownikom systemu.Oto dwa przykłady uprawnień:-rw-------drwxr-xr-xPierwszy znak decyduje o typie pliku (patrz tabela 5-3).Tabela 5-3.Typ plikuZnak Opis- Zwykły plikd Katalogc Urządzenie znakowe (tty lub drukarka)b Urządzenie blokowe (najczęściej dysk twardy lub CD-ROM)l Aącze symboliczne (BSD lub V.4)s Gniazdo (BSD lub V.4)= lup p FIFO (System V, Linux)Następnych dziewięć znaków pogrupowanych po trzy wskazuje, kto w systemie może wykonywaćoperacje i jakie te operacje mogą być.Istnieją trzy rodzaje uprawnień:r Odczyt (ang.read)w Zapis (ang.write)x Wykonywanie (ang.execute)Są również trzy klasy uprawnień:właściciel Uprawnienia właściciela plikugrupa Uprawnienia użytkowników należących do tej samej grupy co plikinni Uprawnienia wszystkich innych użytkowników systemu (nie liczącsuperużytkownika)Poniżej przedstawiono graficzną ilustrację uprawnień polecenia /s -/ (rysunek 5-2).Rysunek 5-2: Podstawowe uprawnienia Szczegółowe Omówienie uprawnień do plikówWyrazy odczyt, zapis i wykonywanie mają bardzo specyficzne znaczenie dla plików (patrz tabela5-4).Tabela 5-4.Uprawnienia do plikówZnak Uprawnienie Opisr ODCZYT Dostęp w trybie odczytu oznacza dokładnieto, że można otworzyć plik, posługując sięfunkcją systemową open() i że możnaodczytywać jego zawartość za pomocąfunkcji read().w ZAPIS Dostęp w trybie zapisu oznacza możliwośćzastąpienia pliku jego nową wersją lub poprostu możliwość modyfikacji jegozawartości.Oznacza również możliwośćzastosowania funkcji writeO w celudopisania czegoś do pliku bądz funkcjitruncateO lubftruncateO w celu skróceniapliku.x WYKONYWANIE Dostęp w trybie wykonywania ma sensjedynie w odniesieniu do programów.Plik,który ma ustawiony bit wykonywania,można uruchomić, wpisując jego ścieżkę wwierszu poleceń lub posługując sięwywołaniem systemowym exec().Jak pro-gram się wykonuje, zależy od pierwszychdwóch bajtów jego zawartości.Pierwsze dwa bajty pliku wykonywalnego stanowią magiczną liczbę, która określa rodzaj pliku.Niektóre liczby wskazują na przykład na określony typ kodu maszynowego.Specjalna sekwencjadwubajtowa #!" oznacza wykonywalny skrypt pewnego typu.Wszystko, co ma numernietypowy, kwalifikowane jest jako skrypt powłoki.Uprawnienia do plików stosują się do urządzeń, gniazd i potoków FIFO dokładnie tak samo jak doplików.Mając dostęp w trybie do zapisu możemy zapisać dane w pliku lub skierować je do innegoobiektu.W trybie odczytu możemy dane odczytać.Jeśli nie mamy żadnego z tych uprawnień, topo prostu brak nam szczęścia.Uprawnienia do plików nie odnoszą się do łączy symbolicznych.To, czy można uzyskać dostęp dopliku wskazywanego przez łącze symboliczne, zależy od uprawnień do samego pliku, a nie łącza.Prawdę mówiąc, łącza do plików są prawie zawsze tworzone z uprawnieniami rwxrwxrwx" (lub0777, o czym dalej w rozdziale), które i tak są ignorowane przez system operacyjny
[ Pobierz całość w formacie PDF ]