środa, 9 grudnia 2009

Fedora 12 bezpieczeństwo systemu

W przypadku stosowania wielu lokalnych kont użytkowników komputera, któży często instalują pakiety. W Fedorze 11, jeśli użytkownik chce zainstalować niepodpisane pakiety wymagane jest uwierzytelnianie. Użytkownik sysytemu jest zazwyczaj właścicielem i jedynym użytkownikiem komputera, domyślnie zostało to zmienione w Fedorze 12, aby umożliwić użytkownikowi lokalnemu instalowanie tylko podpisanych (trusted) pakietów. Niezależne pakiety nadal wymagają uwierzytelnienia.
Ta zmiana dotyczy tylko instalacji i aktualizacji za pośrednictwem interfejsu graficznego. Nie ma ona wpływu na pakiety które mają być usunięte bez ich uwierzytelnienia.

Niższe uprawnienia procesów
W systemie operacyjnym Linux Fedora 12 demony uruchomione jako root zostały przejrzane i załatane, aby pracować z niższymi uprawnieniami. Ogranicza to szansę ich wykożystania do eskalacji uprawnień. Dodatkowo uprawnienia pliku shadow zostały zmienione na 000, a wiele katalogów w $PATH zostało ustawionych na atrybut 555, żeby powstrzymać demony bez DAC_OVERRIDE przed prawdopodobnym dostępem do pliku shadow lub zapisem do katalogów $PATH.

Po zaatakowaniu systemu Fedora 12 zwykle nie można wyrządzić większych szkód systemu, chyba że dojdzie do eskalacji uprawnień. Ta zależność zmniejsza liczbę celów, których można użyć do eskalacji uprawnień. Jeżeli procesy roota nie posiadają wszystkich uprawnień, cięższe będzie użycie ich do uszkodzenia systemu.
Procesy z UID roota mogą nadal uszkodzić system, ponieważ mogą one zapisywać do prawie każdego pliku i oczywiście odczytywać plik /etc/shadow. Tymczasem jeśli system jest zabezpieczony w taki sposób, aby root wymagał możliwości DAC_OVERRIDE, tylko ograniczona liczba procesów może uszkodzić system. Nie ma to wpływu na możliwości administratora systemu, dlatego że oni zawsze posiadają pełne uprawnienia, włączając w to DAC_OVERRIDE. Więc nawet jeśli ktoś z powodzeniem zaatakuje proces roota, trudne jest wykorzystanie tego ataku.
Zabezpieczony system musi posiadać uprawnienia typu: 555 /bin, 555 /lib, 000 /etc/shadow i tak dalej. Obecnie zabezpieczono katalogi w zmiennej $PATH, katalogi bibliotek, partycje /boot i /root. Ten układ nie wpływa w żaden sposób na SELinuksa, ale uzupełnia go, gdyż te uprawnienia należą do DAC i są sprawdzane jako pierwsze przy udzielaniu dostępu.

Sandbox SELinuksa
Sandbox SELinuksa pozwala na wykonanie polecenia w silnie ograniczonym środowisku. Niestety z natury programów graficznych wynika, że niezwykle trudno jest użyć tej możliwości w tych aplikacjach, które szczególnie tego potrzebują.
Nowe polecenie sandbox -X pozwala na znaczne ograniczenie wielu programów graficznych. Przez urzycie tej funkcji w aplikacji WWW użytkownik może na przykład określić, że OpenOffice.org będzie uruchamiany normalnie, jeśli zostało uruchomiony przez użytkownika, ale powinno być ograniczone podczas wywołania z sieci.
Podczas uruchamiania z sandbox SELinuksa program graficzny ma dostęp tylko do niewielkiej struktury katalogów, która zostanie usunięta po zakończeniu pracy, nie ma dostępu do sieci i jest uruchamiana w odizolowanym serwerze X, co uniemożliwia jej dostęp do wielu innych programów X.