Cześć wszystkim! Specjalnie dla studentów kursu przygotowaliśmy tłumaczenie oficjalnego FAQ projektu SELinux. Uważamy, że to tłumaczenie może być pomocne nie tylko studentom, dlatego dzielimy się nim z wami.

P próbowaliśmy odpowiedzieć na niektóre z najczęściej zadawanych pytań dotyczących projektu SELinux. Obecnie pytania są podzielone na dwie główne kategorie. Wszystkie pytania i odpowiedzi znajdują się .
Przegląd
Przegląd
- Czym jest Linux o podwyższonej bezpieczeństwie?
Linux o podwyższonej bezpieczeństwie (SELinux — Security-enhanced Linux) jest wzorcową realizacją architektury bezpieczeństwa Flask dla elastycznej, przymusowej kontroli dostępu. Został stworzony, aby zademonstrować przydatność elastycznych mechanizmów zarządzania przymusowym dostępem i jak takie mechanizmy mogą być dodane do systemu operacyjnego. Architektura Flask została później zintegrowana z Linuksem i przeniesiona na kilka innych systemów, w tym system operacyjny Solaris, system operacyjny FreeBSD i jądro Darwin, co zaowocowało szerokim zakresem powiązanej pracy. Architektura Flask zapewnia ogólne wsparcie dla stosowania wielu rodzajów przymusowych polityk kontroli dostępu, w tym opartych na koncepcjach Type Enforcement, Role-based Access Control i Multi-level Security. - Co daje Linux o podwyższonej bezpieczeństwie, czego standardowy Linux nie może zapewnić?
Jądro Linux o podwyższonej bezpieczeństwie ustala polityki przymusowej kontroli dostępu, które ograniczają programy użytkowników oraz serwery systemowe do minimalnego zestawu uprawnień, które są im potrzebne do wykonania swojej pracy. Dzięki takiemu ograniczeniu zdolność tych programów użytkowników i demonów systemowych do wyrządzania szkód w przypadku kompromitacji (na przykład wskutek przepełnienia bufora lub niewłaściwej konfiguracji) zmniejsza się lub jest wykluczona. Ten mechanizm ograniczeń działa niezależnie od tradycyjnych mechanizmów kontroli dostępu w Linuksie. Nie ma pojęcia superużytkownika „root” i nie dzieli publicznych wad tradycyjnych mechanizmów ochrony Linuksa (na przykład zależności od plików binarnych setuid/setgid).
Bezpieczeństwo niemodyfikowanego systemu Linux zależy od poprawności jądra, wszystkich aplikacji z podwyższonymi uprawnieniami i każdej z ich konfiguracji. Problemy w którejkolwiek z tych dziedzin mogą prowadzić do kompromitacji całego systemu. Z kolei bezpieczeństwo zmodyfikowanego systemu opartego na jądrze Linux o poprawionej bezpieczeństwie zależy przede wszystkim od poprawności jądra oraz konfiguracji jego polityki bezpieczeństwa. Chociaż problemy z poprawnością lub konfiguracją aplikacji mogą pozwolić na ograniczoną kompromitację pojedynczych programów użytkowych i demonów systemowych, nie stanowią one zagrożenia dla bezpieczeństwa innych programów użytkowych i demonów systemowych lub dla bezpieczeństwa systemu jako całości. - Do czego to służy?
Nowe funkcje Linux z poprawionym bezpieczeństwem mają na celu zapewnienie separacji informacji w oparciu o wymagania dotyczące poufności i integralności. Zostały zaprojektowane, aby zapobiegać procesom odczytu danych i programów, fałszowaniu danych i programów, omijaniu mechanizmów zabezpieczeń aplikacji, uruchamianiu niebezpiecznych programów lub zakłócaniu innych procesów w naruszeniu polityki bezpieczeństwa systemu. Pomagają również ograniczyć potencjalne szkody, jakie mogą wyrządzić złośliwe lub niepoprawne programy. Powinny być również przydatne do umożliwienia korzystania z jednego systemu użytkownikom o różnych uprawnieniach bezpieczeństwa, aby uzyskać dostęp do różnych rodzajów informacji z różnymi wymaganiami bezpieczeństwa bez uszczerbku dla tych wymagań. - Jak mogę otrzymać kopię?
Wiele dystrybucji Linux zawiera wsparcie SELinux, które jest już wbudowane jako funkcja domyślna lub jako dodatkowy pakiet. Podstawowy kod użytkownika SELinux jest dostępny pod adresem . Użytkownicy końcowi zazwyczaj muszą korzystać z pakietów dostarczanych przez ich dystrybucję. - Co zawiera twój wydanie?
Wydanie NSA SELinux zawiera podstawowy kod użytkownika SELinux. Wsparcie dla SELinux jest już zawarte w podstawowym jądrze Linux 2.6, dostępnym na kernel.org. Główny kod użytkownika SELinux składa się z biblioteki do manipulacji binarną polityką (libsepol), kompilatora polityki (checkpolicy), biblioteki dla aplikacji zapewniających bezpieczeństwo (libselinux), biblioteki dla narzędzi zarządzania polityką (libsemanage) oraz kilku powiązanych narzędzi związanych z politykami (policycoreutils).
Oprócz jądra z wsparciem dla SELinux i podstawowego kodu użytkownika, potrzebujesz polityki oraz niektórych pakietów użytkownika dostosowanych do SELinux, aby móc korzystać z SELinux. Politykę można uzyskać z . - Czy mogę zainstalować Linux z zaawansowanym bezpieczeństwem na istniejącym systemie Linux?
Tak, możesz zainstalować jedynie modyfikacje SELinux na istniejącym systemie Linux lub zainstalować dystrybucję Linux, która już zawiera wsparcie dla SELinux. SELinux składa się z jądra Linux z wsparciem dla SELinux, podstawowego zestawu bibliotek i narzędzi, niektórych zmodyfikowanych pakietów użytkownika oraz konfiguracji polityki. Aby zainstalować go w istniejącym systemie Linux, w którym brak wsparcia dla SELinux, musisz być w stanie skompilować oprogramowanie oraz mieć inne niezbędne pakiety systemowe. Jeśli twoja dystrybucja Linux już zawiera wsparcie dla SELinux, nie musisz kompilować ani instalować wydania NSA SELinux. - Jak bardzo Linux z poprawionym bezpieczeństwem jest zgodny z niemodyfikowanym Linux?
Linux z poprawionym bezpieczeństwem zapewnia binarną zgodność z istniejącymi aplikacjami Linux i istniejącymi modułami jądra Linux, ale niektóre moduły jądra mogą wymagać modyfikacji, aby poprawnie współdziałać z SELinux. Te dwie kategorie zgodności są omówione poniżej:- Zgodność aplikacji
SELinux zapewnia binarną zgodność z istniejącymi aplikacjami. Rozszerzyliśmy struktury danych jądra, wprowadzając nowe atrybuty zabezpieczeń, oraz dodaliśmy nowe wywołania API dla aplikacji zapewniających bezpieczeństwo. Nie zmieniliśmy jednak żadnych struktur danych widocznych dla aplikacji i nie zmieniliśmy interfejsu żadnych istniejących systemowych wywołań, dlatego istniejące aplikacje mogą działać bez zmian, jeśli polityka bezpieczeństwa na to zezwala. - Zgodność modułów jądra
Początkowo SELinux zapewniał pierwotną zgodność tylko dla istniejących modułów jądra; konieczne było ponowne kompilowanie tych modułów według zmienionych nagłówków jądra, aby uwzględnić nowe pola zabezpieczeń dodane do struktur danych jądra. Ponieważ LSM i SELinux są teraz zintegrowane z rdzeniem systemu Linux 2.6, SELinux zapewnia teraz binarną zgodność z istniejącymi modułami jądra. Jednak niektóre moduły jądra mogą źle współdziałać z SELinux bez zmian. Na przykład, jeśli moduł jądra bezpośrednio przydziela i ustawia obiekt jądra bez korzystania z normalnych funkcji inicjalizacji, może brakować odpowiednich informacji o bezpieczeństwie dla obiektu jądra. Niektóre moduły jądra mogą również nie mieć odpowiedniego nadzoru nad ich operacjami; wszelkie istniejące wywołania funkcji jądra lub funkcji uprawnień również będą wywoływać kontrole uprawnień SELinux, ale dla zapewnienia zgodności z politykami MAC mogą być wymagane bardziej szczegółowe lub dodatkowe mechanizmy kontrolne.
Linux z ulepszonym bezpieczeństwem nie powinien powodować problemów w interakcji z standardowymi systemami Linux, pod warunkiem że wszystkie niezbędne operacje są dozwolone przez konfigurację polityki bezpieczeństwa.
- Zgodność aplikacji
- Jakie są cele przykładu konfiguracji polityki bezpieczeństwa?
Na wysokim poziomie celem jest wykazanie elastyczności i bezpieczeństwa wymuszonych środków kontroli dostępu oraz dostarczenie prostej działającej systemu z minimalnymi zmianami w aplikacjach. Na niższym poziomie polityka ma szereg celów opisanych w dokumentacji polityki. Cele te obejmują zarządzanie nieskrępowanym dostępem do danych, ochronę integralności rdzenia, oprogramowania systemowego, informacji o konfiguracji systemu oraz dzienników systemowych, ograniczenie potencjalnych szkód, jakie mogą być spowodowane wykorzystaniem luk w procesie wymagającym uprawnień, ochronę uprzywilejowanych procesów przed wykonaniem złośliwego kodu, ochronę roli administratora i domeny przed dostępem bez uwierzytelnienia użytkownika, zapobieganie ingerencji zwykłych procesów użytkowników w procesy systemowe lub procesy administratora, a także ochronę użytkowników i administratorów przed wykorzystaniem luk w ich przeglądarkach przez złośliwy kod mobilny. - Dlaczego Linux został wybrany jako podstawowa platforma?
Linux został wybrany jako platforma dla początkowej referencyjnej realizacji tej pracy z powodu swojego rosnącego sukcesu i otwartego środowiska programistycznego. Linux oferuje doskonałą okazję, aby wykazać, że ta funkcjonalność może być skuteczna w głównym systemie operacyjnym i jednocześnie przyczyniać się do bezpieczeństwa szeroko stosowanego systemu. Platforma Linux zapewnia również doskonałą możliwość, aby ta praca uzyskała jak najszerszy przegląd i być może będzie podstawą do dodatkowych badań nad bezpieczeństwem przez innych entuzjastów. - Dlaczego wykonaliście tę pracę?
Agencja Bezpieczeństwa Narodowego odpowiada za badania i opracowywanie zaawansowanych technologii niezbędnych do tego, aby NSA mogła dostarczać rozwiązania, produkty i usługi zapewniające bezpieczeństwo informacji dla infrastruktury informacyjnej krytycznej dla interesów bezpieczeństwa narodowego USA.
Tworzenie funkcjonującego, bezpiecznego systemu operacyjnego pozostaje kluczowym zagadnieniem badawczym. Naszym celem jest stworzenie efektywnej architektury, która zapewnia niezbędne wsparcie dla bezpieczeństwa, uruchamiając programy w sposób w dużym stopniu transparentny dla użytkownika i atrakcyjny dla dostawców. Uważamy, że istotnym krokiem w osiągnięciu tego celu jest pokazanie, jak mechanizmy kontroli dostępu mogą być skutecznie zintegrowane z podstawowym systemem operacyjnym. - Jak to się ma do wcześniejszych badań nad systemami operacyjnymi NSA?
Badacze z Narodowego Laboratorium ds. Bezpieczeństwa Informacji NSA oraz Secure Computing Corporation (SCC) opracowali potężną i elastyczną architekturę wymuszonego dostępu opartą na Type Enforcement, mechanizmie po raz pierwszy stworzonym dla systemu LOCK. NSA i SCC opracowały dwa prototypy architektury opartej na Mach: DTMach i DTOS (). NSA i SCC współpracowały następnie z grupą badawczą Flux z Uniwersytetu Utah, aby przenieść architekturę do badawczego systemu operacyjnego Fluke. Podczas tej migracji architektura została udoskonalona, aby lepiej wspierać dynamiczne polityki bezpieczeństwa. Ta udoskonalona architektura została nazwana Flask (). Teraz NSA zintegrowało architekturę Flask z systemem operacyjnym Linux, aby przekazać tę technologię szerszej społeczności programistów i użytkowników. - Czy Linux z poprawionym bezpieczeństwem jest niezawodnym systemem operacyjnym?
Fraza „Zaufany system operacyjny” zazwyczaj odnosi się do systemu operacyjnego, który zapewnia odpowiednie wsparcie dla wielowarstwowej ochrony i weryfikacji poprawności, aby spełnić określony zestaw wymogów rządowych. Linux z podwyższoną bezpieczeństwem zawiera użyteczne pomysły z tych systemów, ale koncentruje się na wymuszeniu kontroli dostępu. Pierwotnym celem rozwoju Linuxa z podwyższonym bezpieczeństwem było stworzenie użytecznej funkcjonalności, która zapewnia zauważalne korzyści w zakresie ochrony w szerokim zakresie rzeczywistych środowisk w celu demonstrowania tej technologii. SELinux sam w sobie nie jest zaufanym systemem operacyjnym, ale zapewnia kluczową funkcję ochrony — wymuszającą kontrolę dostępu — niezbędną dla zaufanego systemu operacyjnego. SELinux został zintegrowany w dystrybucjach Linuxa, które zostały ocenione zgodnie z Profilami Ochrony Zabezpieczeń Etykietowanych. Informacje o certyfikowanych i weryfikowanych produktach można znaleźć pod adresem . - Czy jest naprawdę chronione?
Pojęcie zabezpieczonego systemu obejmuje wiele atrybutów (np. bezpieczeństwo fizyczne, bezpieczeństwo personelu itd.), a Linux z podwyższonym bezpieczeństwem odnosi się tylko do bardzo wąskiego zakresu tych atrybutów (czyli do elementów kontroli wymuszonego dostępu w systemie operacyjnym). Innymi słowy, „zabezpieczony system” oznacza wystarczające zabezpieczenie, aby chronić pewne informacje w rzeczywistym świecie przed rzeczywistym przeciwnikiem, przed którym ostrzega właściciel i/lub użytkownik informacji. Linux z podwyższonym bezpieczeństwem ma na celu wykazanie obowiązkowych elementów kontroli w nowoczesnym systemie operacyjnym, takim jak Linux, i dlatego sam w sobie raczej nie spełni żadnej interesującej definicji zabezpieczonego systemu. Wierzymy, że technologia ukazana w Linuxie z podwyższonym bezpieczeństwem będzie użyteczna dla osób tworzących zabezpieczone systemy. - Co zrobiłeś, aby zwiększyć zapewnienie?
Celem tego projektu było dodanie elementów sterujących wymuszonym dostępem przy minimalnych zmianach w Linux. Ostatni cel znacząco ogranicza to, co można zrobić w celu zwiększenia gwarancji, dlatego nie przeprowadzono żadnej pracy nad zwiększeniem gwarancji Linux. Z drugiej strony, ulepszenia opierają się na wcześniejszej pracy nad opracowaniem architektury bezpieczeństwa o wysokiej niezawodności, a większość tych zasad projektowania została przeniesiona do Linuxa z poprawionym bezpieczeństwem. - Czy CCEVS oceni Linux z poprawionym bezpieczeństwem?
Sam Linux z poprawionym bezpieczeństwem nie jest przeznaczony do rozwiązywania pełnego zestawu problemów bezpieczeństwa, przedstawionych w profilu ochrony. Mimo że byłoby możliwe ocenienie tylko jego bieżącej funkcjonalności, uważamy, że taka ocena będzie miała ograniczoną wartość. Niemniej jednak pracowaliśmy z innymi, aby uwzględnić tę technologię w dystrybucjach Linuxa, które zostały ocenione, oraz dystrybucjach, które są w trakcie oceny. Informacje o weryfikowanych i sprawdzanych produktach można znaleźć pod adresem . - Czy próbowaliście naprawić jakieś luki w zabezpieczeniach?
Nie, nie szukaliśmy ani nie znaleźliśmy żadnych luk w zabezpieczeniach podczas naszej pracy. Wprowadziliśmy tylko minimalne zmiany, aby dodać nasze nowe mechanizmy. - Czy ten system jest zatwierdzony do użytku rządowego?
Linux z poprawionym bezpieczeństwem nie ma specjalnego ani dodatkowego zatwierdzenia do użytku rządowego w stosunku do jakiejkolwiek innej wersji Linuxa. - Czym to się różni od innych inicjatyw?
Linux z poprawionym bezpieczeństwem ma wyraźnie zdefiniowaną architekturę dla elastycznej kontroli dostępu, która była eksperymentalnie sprawdzana za pomocą kilku prototypowych systemów (DTMach, DTOS, Flask). Szczegółowe badania zostały przeprowadzone w celu oceny zdolności architektury do wspierania szerokiego zakresu polityk bezpieczeństwa i są dostępne w i .
Architektura zapewnia szczegółowe zarządzanie wieloma abstrakcjami jądra i usługami, które nie są kontrolowane przez inne systemy. Niektóre z wyróżniających cech systemu Linux z rozszerzonym bezpieczeństwem to:- Czyste oddzielenie polityki od praw zastosowania
- Wyraźnie określone interfejsy polityk
- Niezależność od konkretnych polityk i języków polityk
- Niezależność od konkretnych formatów i treści znaczników bezpieczeństwa
- Oddzielne znaczniki i elementy sterujące dla obiektów i usług jądra
- Buforowanie decyzji o dostępie dla efektywności
- Wsparcie dla zmian polityki
- Kontrola nad inicjacją procesu oraz dziedziczeniem i wykonywaniem programu
- Zarządzanie systemami plików, katalogami, plikami i opisami otwartych plików
- Zarządzanie gniazdami, komunikatami i interfejsami sieciowymi
- Kontrola nad wykorzystaniem 'Możliwości'
- Jakie są ograniczenia licencyjne dla tego systemu?
Cały kod źródłowy dostępny na stronie , jest udostępniany na tych samych warunkach, co oryginalne kody źródłowe. Na przykład, poprawki dla jądra Linux i poprawki dla wielu istniejących narzędzi dostępnych tutaj, są wydawane na zasadach . - Czy istnieje kontrola eksportu?
Dla systemu Linux z zaawansowanym bezpieczeństwem nie ma dodatkowych elementów kontroli eksportu w porównaniu do jakiejkolwiek innej wersji Linux. - Czy NSA planuje używać go w kraju?
Z oczywistych powodów NSA nie komentuje operacyjnego użycia. - Czy Oświadczenie o gwarancjach z dnia 26 lipca 2002 roku Secure Computing Corporation zmienia stanowisko NSA w sprawie tego, że SELinux został udostępniony na zasadach GNU General Public License?
Stanowisko NSA się nie zmieniło. NSA nadal uważa, że przepisy i warunki Standardowej Ogólnodostępnej Licencji GNU regulują wykorzystanie, kopiowanie, dystrybucję i modyfikację SELinux. Zob. . - Czy NSA wspiera oprogramowanie z otwartym kodem źródłowym?
Inicjatywy NSA dotyczące zwiększenia bezpieczeństwa oprogramowania obejmują zarówno oprogramowanie własnościowe, jak i open source, a my skutecznie wykorzystaliśmy zarówno modele własnościowe, jak i open source w naszej działalności badawczej. Prace NSA nad zwiększeniem bezpieczeństwa oprogramowania są motywowane jedną prostą przesłanką: maksymalne wykorzystanie naszych zasobów, aby zapewnić klientom NSA najlepsze możliwe opcje bezpieczeństwa w najbardziej powszechnie używanych produktach. Celem programu badawczego NSA jest rozwijanie osiągnięć technologicznych, którymi można się podzielić ze społecznością programistów za pomocą różnych mechanizmów transferu. NSA nie wspiera ani nie promuje żadnego konkretnego produktu oprogramowania ani modelu biznesowego. Raczej NSA przyczynia się do zwiększenia bezpieczeństwa. - Czy NSA wspiera Linux?
Jak już wspomniano, NSA nie wspiera ani nie promuje żadnego konkretnego produktu oprogramowania ani platformy; NSA jedynie przyczynia się do zwiększenia bezpieczeństwa. Architektura Flask, pokazana w referencyjnej implementacji SELinux, została przeniesiona na kilka innych systemów operacyjnych, w tym Solaris, FreeBSD i Darwin, przeniesiona na hipernadzorcę Xen i zastosowana do takich aplikacji jak X Window System, GConf, D-BUS i PostgreSQL. Koncepcje architektury Flask mają szerokie zastosowanie w różnych systemach i środowiskach.
Współpraca
- Jak planujemy współpracować ze społecznością Linux?
Mamy , które będą naszym głównym sposobem publikowania informacji o Linuxie z poprawionym bezpieczeństwem. Jeśli jesteś zainteresowany Linuxem z poprawionym bezpieczeństwem, zalecamy dołączenie do listy dyskusyjnej dla deweloperów, zapoznanie się z kodem źródłowym i przekazanie swojej opinii (lub kodu). Aby dołączyć do listy dyskusyjnej dla deweloperów, zob. . - Kto może pomóc?
SELinux jest teraz wspierany i rozwijany przez społeczność programistów oprogramowania dla Linuxa o otwartym kodzie źródłowym. - Czy NSA finansuje jakąkolwiek dalszą pracę?
Obecnie NSA nie rozważa propozycji dotyczących dalszej pracy. - Jaki typ wsparcia jest dostępny?
Zamierzamy rozwiązywać kwestie poprzez listę mailingową selinux@tycho.nsa.gov, ale nie będziemy w stanie odpowiedzieć na wszystkie pytania związane z konkretną stroną. - Kto pomógł? Co zrobili?
Prototyp systemu Linux z ulepszonym bezpieczeństwem został opracowany przez NSA we współpracy z partnerami badawczymi z NAI Labs, Secure Computing Corporation (SCC) oraz MITER Corporation. Po początkowym publicznym wydaniu pojawiło się wiele innych materiałów. . - Jak mogę dowiedzieć się więcej?
Zalecamy odwiedzenie naszych stron internetowych, przeczytanie dokumentacji oraz wcześniejszych prac badawczych, a także dołączenie do naszej listy mailingowej selinux@vger.kernel.org
Czy uważasz, że tłumaczenie jest przydatne? Napisz komentarz!
Źródło: habr.com
