Dlaczego systemy operacyjne Linux są uważane za bezpieczniejsze niż Windows? [Zamknięte]

19

Słyszę, że systemy oparte na systemie Linux są lepsze pod względem bezpieczeństwa. Najwyraźniej nie mają wirusów i nie potrzebują oprogramowania antywirusowego. Nawet moja uczelnia twierdzi, że tak - odmawiają posiadania systemu Windows na swoich serwerach, co jest ogromnym wstydem, ponieważ chcieliśmy wykorzystać platformę .NET do tworzenia niektórych stron internetowych.

Jedynym powodem, dla którego widzę, że Linux jest bezpieczniejszy, jest to, że jest open source, więc błędy teoretycznie zostałyby złapane i naprawione wcześniej.

Wiem trochę o tym, jak działają systemy operacyjne, ale tak naprawdę nie zagłębiłem się w sposób, w jaki Linux i Windows implementują swój system operacyjny. Czy ktoś może wyjaśnić różnicę, która sprawia, że ​​systemy oparte na systemie Linux są bardziej bezpieczne?

echoblaze
źródło
5
Nie odpowiadam dokładnie na twoje pytanie, ale chcę trochę bronić wyboru twojej szkoły. Moja szkoła obsługuje zarówno system Windows, jak i system Linux, które (próbują) współdzielić wspólny system plików. Ale w praktyce może to być kosztowne, ponieważ okna i domeny unix w sieci naprawdę nie dogadują się, niestety. Biorąc pod uwagę, że widzimy, że użytkownicy Windows muszą korzystać z jakiegoś komponentu open source bardziej niż na odwrót (przepraszam za .net), więc jest to rozsądny wybór, że obsługują Linux tylko na podstawowym podstawowym sprzęcie, takim jak serwery. Linux obsługuje dziś najważniejsze usługi
Notmyfault
dziękuję za twoją odpowiedź - a także innym użytkownikom, zdecydowanie pomogło mi to wyjaśnić. Dla przypomnienia, byłem bardziej sceptyczny niż zły na twierdzenie mojego uniwersytetu.
echoblaze

Odpowiedzi:

55

Nie sądzę, aby system operacyjny był „bezpieczny”. Konkretna konfiguracja systemu operacyjnego ma szczególny stopień odporności na ataki.

Prawdopodobnie zostanę oskarżony o bycie „apologetą Microsoftu” tutaj, ale ten wątek jest bardzo ukierunkowany na uogólnienia na temat „Windows”, które nie są prawdą.

Windows 1.0 - 3.11, 95, 98 i ME są oparte na DOS. Ta linia systemów operacyjnych nie miała żadnych zabezpieczeń w sensie formalnym (chronione przestrzenie adresowe, separacja trybu jądra / użytkownika itp.). Na szczęście, gdy mówimy dziś o „Windows”, nie mówimy o tych systemach operacyjnych.

Rodzina systemów operacyjnych Windows NT (Windows NT 3.5, 3.51, 4.0, 2000, XP, 2003, Vista, 2008 i 7) ma bardzo rozsądny system bezpieczeństwa „zaprojektowany” od pierwszej wersji w 1992 roku. System operacyjny był zaprojektowany z myślą o „Pomarańczowej książce” TCSEC i chociaż nie jest doskonały, uważam, że jest on dość dobrze zaprojektowany i wdrożony.

  • Windows NT od samego początku był „wieloużytkownikowy” (chociaż funkcjonowanie wielu użytkowników otrzymujących jednocześnie graficzny interfejs użytkownika z tego samego serwera nie działało aż do Citrix WinFrame w erze Windows NT 3.51). Istnieje separacja trybu jądra od trybu użytkownika, z ochroną przestrzeni adresowej zależną od podstawowych funkcji sprzętowych MMU i CPU. (Powiedziałbym, że to bardzo „Unix-y”, ale tak naprawdę to „VMS-y”.)

  • Model uprawnień systemu plików w NTFS jest dość „bogaty” i chociaż ma brodawki w stosunku do „dziedziczenia” (lub jego braku - zobacz Jak obejść wadę projektu przenoszenia / kopiowania NTFS? ), Nie było to do przez ostatnie 10 lat systemy operacyjne w stylu uniksowym wdrożyły podobną funkcjonalność. (Novell NetWare pokonał Microsoft na tym, choć myślę, że MULTICS pobił ich obu ...> uśmiech <)

  • Menedżer kontroli usług, w tym system uprawnień do kontrolowania dostępu do programów serwisowych uruchamiania / zatrzymywania / wstrzymywania, jest bardzo dobrze zaprojektowany i ma znacznie solidniejszą konstrukcję niż różne architektury skryptów „init.d” (bardziej przypominające „umowy dżentelmeńskie”) ”) w wielu dystrybucjach Linuksa.

  • Menedżer obiektów wykonawczych (patrz http://en.wikipedia.org/wiki/Object_Manager_(Windows) ), który jest luźno podobny do systemu plików / proc i systemu plików / dev w połączeniu, ma model ACL podobny do systemu plików i znacznie, znacznie bogatszy niż każdy model uprawnień, o którym wiem dla / proc lub / dev w dowolnej dystrybucji Linuksa.

  • Chociaż moglibyśmy omówić zalety i wady rejestru, model uprawnień dla kluczy w rejestrze jest znacznie bardziej szczegółowy niż model ustawiania uprawnień do plików w katalogu / etc. (Szczególnie podoba mi się komentarz Roba Shorta dotyczący rejestru w wywiadzie dla „Behind the Code”:http://channel9.msdn.com/shows/Behind+The+Code/Rob-Short-Operating-System-Evolution Rob był początkowo jedną z głównych osób odpowiedzialnych za rejestr systemu Windows i myślę, że bezpiecznie jest powiedzieć, że nie jest niekoniecznie szczęśliwy z tym, jak się potoczyło.)

Sam Linux jest tylko jądrem, podczas gdy Windows jest bardziej podobny do dystrybucji Linuksa. Porównujesz jabłka i pomarańcze, aby porównać je w ten sposób. Zgadzam się, że trudniej jest „rozebrać” system Windows niż niektóre systemy oparte na Linuksie. Z drugiej strony niektóre dystrybucje Linuksa są dostarczane z włączoną dużą ilością „badziewia”. Wraz z pojawieniem się różnych „wbudowanych” smaków systemu Windows możliwe jest (choć nie dla ogółu społeczeństwa) budowanie „dystrybucji” systemu Windows, które różnią się swoim zachowaniem od ustawień domyślnych Microsoft (z wyłączeniem różnych usług, zmiany domyślnych uprawnień itp.) .

Różne wersje systemu Windows miały swój udział w źle dobranych ustawieniach domyślnych, błędach, które umożliwiały nieautoryzowanym użytkownikom uzyskanie uprawnień, ataki typu „odmowa usługi” itp. Jądra systemu Unix (i wiele aplikacji opartych na systemie Unix domyślnie uruchamianych jako root) te same problemy. Microsoft wykonał niesamowitą robotę, od Windows 2000, ułatwiając podział aplikacji na części, uruchamianie programów z najmniejszymi uprawnieniami i usuwanie niepotrzebnych funkcji systemu operacyjnego.

Krótko mówiąc, myślę, że to, co mówię, to to, że konkretna konfiguracja danego systemu operacyjnego dla twoich potrzeb, w odniesieniu do bezpieczeństwa, ma większe znaczenie niż typ używanego systemu operacyjnego. Dystrybucje Windows i Linux mają bardzo podobne możliwości w zakresie funkcji bezpieczeństwa. Możesz zastosować solidne techniki bezpieczeństwa (najmniej uprzywilejowane, ograniczona instalacja opcjonalnych komponentów, kryptograficznie bezpieczne mechanizmy uwierzytelniania itp.) W dowolnym systemie operacyjnym. Czy faktycznie to robisz, czy nie - to jest ważne.

Evan Anderson
źródło
dla kogoś takiego jak ja, który nie ma pojęcia, jak zbudowano systemy Windows i Linux, twój post był niezwykle pouczający
echoblaze
Zgoda. Słuszne uwagi.
Kyle Hodgson
1
+1 - Jestem użytkownikiem Linuksa w domu i pracuję głównie z bezpieczeństwem Windows. Konfiguracja ma znacznie większe znaczenie niż sam system operacyjny i na pewno musisz porównać dystrybucje Linuksa z Windows, a nie tylko „Linux” a jądro.
romandas
3
wolne klaskanie +1
chickeninabiscuit
Jedną z rzeczy, która naprawdę bolała świat Windows od dłuższego czasu (nawet jeśli jest to teraz głównie historia), jest to, że przez bardzo długi czas musiałeś być lokalnym administratorem, aby robić wiele rzeczy, podczas gdy w świecie * nix po prostu bądź sudoer na tej maszynie. Problem polegał oczywiście na tym, że wszystko obsługiwane przez lokalnego administratora na większości maszyn może zrobić wszystko z maszyną. Byłoby to równe zagrożenie dla systemu Linux / Unix, gdyby nie zawsze była to dobrze znana praktyka nie rootowania, ale robienia sudo / su w razie potrzeby. Wydaje mi się, że to nie był problem z systemem Windows, ale problem z oprogramowaniem, a w UAC jest to w większości naprawione.
Fredrik,
16

Inną rzeczą, o której nie wspomniano, jest to, że bezpieczeństwo w systemie Windows jest znacznie bardziej niejasne niż w systemie Linux.

Na przykład mogę spojrzeć na kilka plików tekstowych i zobaczyć dokładnie, co działa mój serwer WWW. IIS? Nie tyle - wyniki konfiguracji można zobaczyć za pomocą narzędzia GUI, ale są ukryte ustawienia. Następnie musisz użyć innego zestawu narzędzi do przeglądania list ACL plików itp.

Podobnie jest z większością programów w świecie Windows - bardzo trudno jest dokładnie zrozumieć, co wpływa na środowisko wykonawcze, między rejestrem a listami ACL.

Chris
źródło
11

Nie wiem o porównaniu uprawnień do plików ... kiedy byłem administratorem UNIX / Linux, NT4 miał listy ACL, które były znacznie bardziej szczegółowe niż tradycyjne uprawnienia w stylu „777” w systemie UNIX / Linux. Uprawnienia to oczywiście nie wszystko i jestem pewien, że nowoczesne dystrybucje Linuksa przynajmniej udostępniają drobnoziarniste listy ACL, nawet jeśli nie są domyślnie implementowane. Moim zdaniem koncepcje sudo i root zawsze istniały w systemie UNIX, chociaż system Windows stale dodaje te koncepcje i prawdopodobnie są teraz na równi.

Moja własna interpretacja jest taka, że ​​ponieważ kod jądra Linuksa, a także wiele jego sterowników i narzędzi, są otwarte - prawdopodobnie został poddany szerszej analizie i jest naprawiany znacznie częściej pod kątem błędów kodowania, które mogą prowadzić do zdalnych luk, które może wykorzystać haker. Teoria ta jest w mojej głowie, że skoro Linux nie jest własnością korporacji, może on lepiej zbadać cel w zakresie bezpieczeństwa niż korporacja. Firmy muszą zarabiać; podczas gdy grupy open source po prostu nie mają tego ograniczenia.

O wiele łatwiej jest wejść do systemu Linux i po prostu zamknąć cały system okienkowy, demony RPC itd. - system Linux lub BSD można obniżyć do jednego lub dwóch otwartych portów przy minimalnej liczbie zainstalowanych pakietów i nadal bardzo łatwo mieć bardzo użyteczny system. Prawdopodobnie ma to więcej wspólnego z dziedzictwem UNIX jako systemu operacyjnego programisty; wszystko zostało zbudowane tak, aby było modułowe, a nie nadmiernie połączone. Prowadzi to do znacznie bardziej konfigurowalnego systemu, w którym można po prostu usunąć rzeczy, które nie są istotne. Nie sądzę, że tak łatwo jest zahartować serwery Windows w ten sposób.

Grupa OpenBSD doprowadziła skrajnie tę koncepcję. Głównym celem numer jeden programu jest przeglądanie każdego wiersza kodu pod kątem możliwych wad bezpieczeństwa. Dowód znajduje się w puddingu, na przestrzeni lat znaleziono niewiarygodnie małą liczbę luk w OpenBSD z powodu tej niemal fanatycznej (używam tego słowa z szacunkiem) dbałości o szczegóły.

Korporacje, chociaż tworzą wspaniałe oprogramowanie (MSSQL, Exchange, Windows Server 2003 są w mojej książce cudowne), mają po prostu inne cele.

Kyle Hodgson
źródło
5
Tak; Listy ACL systemu Windows są bardziej szczegółowe niż Linux / Unix bez list ACL (chociaż większość współczesnych wersji ma opcje korzystania z list ACL). Istotna różnica polega na tym, że ludzie są zwykle zalogowani do systemu Windows jako administrator - to wciąż standardowa konfiguracja na laptopach XP dostarczanych przez firmę - podczas gdy ludzie w systemie Linux / Unix nie wykonują większości operacji jako root. Ogranicza to szkody, które można wyrządzić w systemie Linux / Unix w porównaniu do systemu Windows - domyślnie. Jeśli ktoś przez cały czas działa jako root, wszystkie zakłady są wyłączone (poza tym, że prędzej czy później będzie miał żałosny - i żałował - wypadek).
Jonathan Leffler
„To prawda, że ​​koncepcje sudo i root były zawsze dostępne w systemie UNIX i dopiero teraz pojawiają się w systemie Windows”. O czym mówisz? Windows NT nie jest tak stary jak Unix, ale Windows NT ma bardzo rozsądne zabezpieczenia „zaprojektowane” od czasu wydania w 1992 roku. Szkoda, że ​​wielu administratorów Windows nie wdraża użytkowników z kontami „ograniczonego użytkownika” (jak powinny być, od samego początku), ale to nie powinno przekląć systemu operacyjnego.
Evan Anderson
Z perspektywy serwera, przyznane. Ale typowy użytkownik systemu Windows potrzebował dostępu administracyjnego, aby mieć nawet dość komfortowe środowisko aż do Visty. Widzę „kliknięcie prawym przyciskiem myszy, uruchom jako administrator” Visty jako porównywalne do sudo.
Kyle Hodgson
3
Całkowicie się nie zgadzam. Wdrożyłem tysiące komputerów od Windows NT 4.0 z ograniczonymi kontami użytkowników. „RunAs”, które jest nieco podobne do „sudo”, działa w systemie operacyjnym od Windows 2000 („kliknięcie prawym przyciskiem myszy, funkcja Uruchom jako”). Powiem, że kontrola konta użytkownika jest głupią funkcją i nie powinna być włączona do systemu operacyjnego. Microsoft zrobił coś złego, czyniąc „bezpieczniejszym” działanie jako „Administrator”, zamiast uczynić go trudniejszym i bolesnym, jednocześnie zachęcając programistów do pracy nad pisaniem oprogramowania, które nie jest do bani (tj. Wymaga uprawnień „Administratora”).
Evan Anderson
2
Użytkownicy systemu Vista w witrynach moich klientów nigdy nie widzą UAC, ponieważ działają jako konta z ograniczoną liczbą użytkowników. UAC zobaczysz tylko wtedy, gdy działasz jako „Administrator”. Możesz wyłączyć UAC za pomocą zasad grupy, ale nigdy nie powinnaś tego robić.
Evan Anderson
9

Moim zdaniem, jeśli skonfigurowane wystarczająco dobrze, systemy oparte na Linuksie są bardziej bezpieczne niż systemy Windows. Oto niektóre z powodów:

  1. Przejrzystość i liczne proste narzędzia sieciowe: Na przykład administratorowi Linuksa bardzo łatwo jest zobaczyć bieżącą konfigurację zapory sieciowej, wpisując „iptables -L -n” na powłoce. Możesz również sprawdzić, które porty są otwarte na komputerze, uruchamiając „nmap” z innego komputera z systemem Linux. To sprawia, że ​​życie jest o wiele łatwiejsze, ponieważ można bardzo dokładnie określić, które porty mogą być dostępne i z jakich adresów itp.

  2. Tekstowe pliki dziennika w jednej lokalizacji: tekstowe pliki dziennika w jednej lokalizacji „/ var / log” można łatwo tworzyć kopie zapasowe i analizować. Również narzędzia takie jak Logwatch, które mogą monitorować te pliki dziennika i wysyłać e-maile do ważnych linii, ułatwiają wszystko. Możemy nawet napisać własne narzędzia do analizy plików dziennika i znaleźć informacje, które nas interesują. Dzienniki można nawet wyeksportować na zdalny serwer syslog, na wypadek gdybyśmy nie chcieli, aby dzienniki były obecne na tym samym serwerze.

  3. Nie martw się o wirusy: czy wirusów jest mniej w Linuksie, ponieważ jest mniej systemów opartych na Linuksie LUB dlatego, że wszyscy użytkownicy kochają Linuksa lub dlatego, że Linux jest bezpieczniejszy. Powód nie ma znaczenia. Jeśli na końcu Linux ma mniejsze zagrożenie wirusami, to dobrze, że jest to Linux. Osobiście widziałem, jak ludzie instalują dwa programy antywirusowe, antyspyware i adware na tym samym komputerze. Wszystkie te narzędzia ochrony pochłaniają dużo procesora i pamięci.

  4. Obsługa wielu języków programowania: Kodowanie w systemie Linux jest bardzo łatwe. C, C ++, Python, Perl, Java itp. Po prostu działają bez potrzeby instalowania dodatkowego pakietu. (To w przypadku, gdy zainstalujesz dużą dystrybucję, taką jak Fedora, która jest dostarczana na DVD.) Zwiększa to bezpieczeństwo, ponieważ możemy wykonywać powtarzalne zadania przez kodowanie. Więc jeśli popełnisz błąd i wystąpi problem, będzie to dotyczyć wszystkich kont i łatwo będzie je wykryć i naprawić. Gdybyśmy musieli ręcznie wprowadzić te same zmiany w dużej liczbie kont / katalogów, moglibyśmy popełnić błąd w jednym lub dwóch i znalezienie takich błędów może zająć dużo czasu. Możemy również poprawić błędy i poszukać prostych błędów za pomocą kodu. Ponieważ wszystkie pliki konfiguracyjne, pliki informacji użytkownika, pliki dziennika itp. Są w tekście, bardzo łatwo jest zakodować wszystko, co chcemy osiągnąć, i istnieje wiele sposobów wykonania tych samych czynności.

  5. Kod open source: ponieważ prawdopodobnie wiele osób widziało kod, bardzo rzadko niektóre programy szpiegujące / reklamowe są częścią aplikacji dostarczanych z Linuksem. Możesz także zobaczyć kod źródłowy, jeśli bezpieczeństwo jest bardzo ważne dla niektórych usług i zobaczyć, jak to działa. Jeśli wiesz dokładnie, jak to działa, znasz ograniczenia i kiedy się złamie. W rzeczywistości, jeśli istnieją dobrze znane ograniczenia bezpieczeństwa, które zostałyby udokumentowane na stronach podręcznika man, stronie pakietu oraz w komentarzach w plikach konfiguracyjnych. Programiści nie mają nic do stracenia, mówiąc, że korzystanie z naszego narzędzia w takim scenariuszu jest ryzykowne. Organizacje, które sprzedają oprogramowanie, mogą nie przynosić lukratywnych ograniczeń w oprogramowaniu, a ich wygląd może źle wyglądać i może zmniejszyć sprzedaż / zysk.

  6. Darmowy i interoperacyjny: chociaż nie jest to związane z bezpieczeństwem. Na uniwersytecie, gdzie koszty mają znaczenie, systemy oparte na systemie Linux są znacznie bardziej ekonomiczne niż systemy oparte na systemie Windows i nie ma potrzeby kupowania licencji na system operacyjny, a także na dodatkowe oprogramowanie, które instalowalibyśmy po zainstalowaniu systemu operacyjnego. Jeśli chodzi o interoperacyjność, możemy łączyć się z maszynami z systemem Linux do innych systemów operacyjnych i łatwo udostępniać pliki. W systemie Linux możemy zamontować wiele systemów plików, w tym FAT, NTFS, HFSPLUS. Możemy udostępniać rzeczy za pomocą ftp, http, ssh, samba, nfs itp. I wszystkie te rzeczy są instalowane lub mogą być instalowane za pomocą jednego polecenia. Inne systemy operacyjne zazwyczaj zapewniają tylko jedną opcję udostępniania rzeczy.

Ale jeśli nie zostanie poprawnie skonfigurowany, systemy oparte na systemie Linux mogą powodować więcej problemów, niż można sobie wyobrazić. Wielu użytkowników może zalogować się do komputera w tym samym czasie i robić prawie wszystko z poziomu powłoki. Bardzo łatwo jest opuścić backdoora, trojany na wypadek, gdyby zapora ogniowa nie została poprawnie skonfigurowana. Atakujący może usunąć plik dziennika lub manipulować nim, aby ukryć swoje ślady. Atakujący może kodować na zaatakowanym komputerze, ponieważ wszystkie edytory, kompilatory i debuggery są łatwo dostępne, gdy atakujący ma dostęp do powłoki. Wszystkie serwery ftp, http, mogą być uruchamiane z konta użytkownika, ale nie na bezpiecznych portach (1-1024). Atakujący może więc pobrać kod serwera HTTP, skompilować go i uruchomić serwer HTTP na porcie 6000, aby wyglądał jak X Server.

Dzięki temu systemy Linux są bezpieczniejsze, pod warunkiem, że administrator wie, co robi, lub przynajmniej zadaje sobie trud wyszukania informacji na stronach podręcznika i dokumentacji przed wprowadzeniem jakiejś nowej zmiany.

Saurabh Barjatiya
źródło
6

Bezpieczeństwo serwera to coś więcej niż tylko system operacyjny. Powiedziałbym, że większym czynnikiem bezpieczeństwa serwera jest osoba zarządzająca serwerem i ich ostrożność w blokowaniu.

To powiedziawszy, jeśli uniwersytet jest sklepem z Linuksem, nie pozwolą ci używać Windows Servera, niezależnie od tego, jakie dane znajdziesz na zabezpieczeniach serwera Windows. Sprawdziłbym za pomocą Mono (www.mono-project.com), jeśli chcesz korzystać z frameworku .Net.

Adam Brand
źródło
6

Przejrzystość

  • Uruchom ps auxfi wiesz, jakie usługi są uruchomione, w ramach którego konta.
  • Uruchom netstat -lnpi wiesz, jakie programy mają otwarte porty TCP.
  • Uruchom iptables -Li wiesz, jakie reguły ma Twój firewall.
  • Uruchom stracelub, lsofaby sprawdzić aktywność procesu.
  • Uruchom ls -lahlub tree -pugwiesz dokładnie, jakie prawa własności i uprawnienia posiada cały folder.
  • Logi są dostępne /var/logi można je przeglądać za pomocą prostego „przeszukiwania plików”.
  • Brak ukrytych ustawień. Wszystko jest czytelne dla człowieka /etc. Przeszukiwanie plików tekstowych, ich archiwizowanie lub stosowanie kontroli wersji (subversion / git) jest naprawdę łatwe.

Wyczyść system uprawnień

  • W bazie są tylko uprawnienia do plików. Brak „uprawnień do kluczy regex”, odziedziczone uprawnienia ACL, konteksty zabezpieczeń na proces lub inne ukryte funkcje.
  • Bity uprawnień są proste:
    • Zapisz na plikach = edytuj zawartość pliku
    • Napisz do folderów = utwórz / zmień nazwę / usuń węzły plików.
    • Przyklejony = edytuj tylko własne pliki.
    • Pliki z uprawnieniami do wykonywania lub ustawiania setuid są podświetlone (w lstrybie koloru).
  • Proste „znajdź wszystkie pliki” ujawnia, jakie uprawnienia ma użytkownik.
  • Ponadto list ACL można używać tylko tam, gdzie jest to potrzebne.
  • Konta użytkowników mają domyślnie tylko dwa miejsca do zapisywania plików: ich $HOMEi /tmp.

Zaawansowane opcje bezpieczeństwa

  • SELinux / AppArmor może ograniczyć procesy dostępu do określonego zestawu plików (oprócz uprawnień do plików)
  • Więzienie Chroot umożliwia administratorom uruchamianie programu całkowicie odizolowanego od reszty. Jakby był zainstalowany na pustym dysku twardym, z tylko potrzebnymi plikami.
  • Dzięki tym sudoużytkownikom i procesom można przyznać uprawnienia do uruchamiania tylko kilku poleceń administracyjnych.

Pojedyncze punkty za wejście i podniesienie uprawnień

  • Sam proces nie może uzyskać więcej uprawnień. Jedynym sposobem jest uruchomienie innego programu „SetUID Root”, na przykład sudoskontaktowanie się z usługą DBus, która najpierw sprawdza PolicyKit. Te programy SetUID można znaleźć za pomocą pojedynczego polecenia „Wyszukaj wszystkie pliki”.
  • IPC między procesami jest dość ograniczone, co zmniejsza wektory ataku.
  • Dostęp do systemu (konsola tekstowa, pulpit zdalny, RPC, usuwanie wywołań poleceń itp.) Odbywa się poprzez ssh. To tunel SSL z funkcją sprawdzania klucza publicznego / prywatnego.

Bezpieczne procesy w tle

  • Usługi działające w tle działają tak szybko, jak to możliwe, z niższymi uprawnieniami. Usługi takie jak Apache, Dovecot i Postfix jak najszybciej przekazują połączenie przychodzące do procesu o niskich uprawnieniach.
  • Domyślnie zablokowane. Microsoft również teraz zastosował to podejście w systemie Windows Server 2008.

Dobre narzędzia do audytu

  • Narzędzia podoba nmap, ncatinspekcję zabezpieczeń Make Easy.
  • Usługi działające w tle można kontrolować z poziomu wiersza poleceń.
  • Narzędzia do kontroli dzienników są powszechne.
  • Kodowanie bezpiecznej usługi jest łatwiejsze, ponieważ można to zrobić modułowo.
  • Dostępnych jest wiele bezpłatnych narzędzi wykrywania włamań.
  • Narzędzia wiersza poleceń są zaprojektowane tak, aby można je było tworzyć skrypty, dzięki czemu administratorzy mogą automatyzować zadania.

Dobre aktualizacje bezpieczeństwa

  • Każda część systemu operacyjnego otrzymuje aktualizacje zabezpieczeń. Gdy Apache, Python lub PHP zostaną zainstalowane za pośrednictwem menedżera pakietów, również otrzymają aktualizacje.
  • To, co naprawia aktualizacja zabezpieczeń, jest bardzo otwarte, więc możesz dowiedzieć się, jak to na ciebie wpływa.
  • Wszystkie pakiety oprogramowania współużytkują te same biblioteki. Nie wysyłają osobnych kopii, pozostawiając dostępne do wykorzystania wersje.
  • Bez wtorkowych łatek, czekających na poprawkę, gdy hakerzy już wykorzystują błąd na wolności.
  • Programiści mogą łatwo testować aktualizacje zabezpieczeń i wdrażać je.
  • Nie trzeba planować ponownego uruchomienia w celu wykonania aktualizacji. Pliki można zastąpić, podczas gdy istniejące procesy nadal uzyskują dostęp do starych danych na dysku. Następnie możesz dowiedzieć się, jakie usługi wymagają ponownego uruchomienia ( lsof | grep =).
  • Cały system operacyjny można zaktualizować bez ponownej instalacji!

Wszystko, o czym tu mowa, jest dostarczane lub każda główna dystrybucja Linuksa, tj. Red Hat, Debian, openSUSE lub Ubuntu.

vdboor
źródło
5

Linux od samego początku był przeznaczony dla wielu użytkowników, więc ma znacznie silniejszy system uprawnień niż Windows. Został również zaprojektowany tak, abyś nie działał z prawami administracyjnymi (dostępem do roota), więc wszystkie programy są zaprojektowane tak, aby nie potrzebować praw. Oznacza to, że jeśli Twoje konto zostanie przejęte, cały system nie.

Część tego prawdopodobnie wynika również z faktu, że ludzie z Linuksem są (ogólnie rzecz biorąc), bardziej techniczni, a zatem rzadziej popełniają głupie błędy, które prowadzą do zhakowania komputerów.

Dentrasi
źródło
2
Niektóre różnice między systemami operacyjnymi dla wielu użytkowników i dla jednego użytkownika: jdurrett.ba.ttu.edu/courseware/opsys/os01a.htm
moshen
7
OK, używam Linuksa od ponad 12 lat i systemów operacyjnych typu UNIX jeszcze dłużej. O ile lubię Linuksa, nie można powiedzieć, że ma silniejszy system uprawnień niż Windows. Ma lepszy model bezpieczeństwa niż wcześniejsze wersje systemu Windows (tj. Nie zawsze jest administratorem), ale WinNT i później ma silny system uprawnień, który po prostu nie został wykorzystany z dobrym skutkiem. Najnowsze wersje Linuksa mają selinux, który jest jeszcze silniejszy, ale jest to stosunkowo nowy (choć bardzo potężny) dodatek.
Eddie,
5

„Bezpieczeństwo to kontrola”

Z mojego punktu widzenia w systemie Windows masz mniejszą kontrolę niż w systemie Linux. Hartowanie systemu Windows jest ... trudniejsze :). Chociaż każde narzędzie zależy od umiejętności dzierżącego, rozważę następujące kwestie:

  • Windows ma więcej luk w ryzyku i więcej automatycznej eksploatacji (wirus, botnety)
  • Administratorzy Windows są (lub powinni być) paranoikami (ze strachu przed wtargnięciem) i dokonali pewnego rodzaju stwardnienia
  • Administratorzy systemu Linux czasami zbytnio ufają bezpieczeństwu systemu operacyjnego i zapominają o hartowaniu
  • Po zhakowaniu w systemie Linux możesz zrobić więcej niż w systemie Windows, ponieważ istnieją potężniejsze narzędzia do komend

Więc chociaż wolę Linuxa niż Windowsa, uważam, że nie powinieneś ufać domyślnym instalacjom.

chmeee
źródło
3

Większość poprzednich postów koncentrowała się na włamaniach, i zrobiono dobrą robotę, zajmując się tym, jeden z punktów twojego pytania dotyczył wirusów. Największe powody, dla których dystrybucje Linuksa mają mniej problemów z wirusami, to fakt, że jest tam więcej okien Windows niż razem Linux i Mac. Twórcy wirusów chcą uzyskać największe zyski, dlatego piszą dla systemu Windows.

Wszystkie systemy są zdolne do włamania i infekcji. Każdy, kto mówi ci inaczej, czy to Twoi instruktorzy, czy inni, albo głupcy, mają nieruchomość nad oceanem w Utah, aby cię sprzedać.

WolfmanDragon
źródło
3

Sądząc po poprawkach zabezpieczeń WSZYSTKIEGO oprogramowania, myślę, że problemem nie jest oprogramowanie, ale liczba komputerów z systemem Windows. To jest cel tworzenia botnetów. Jeśli Linux naprawdę naprawdę powiększy się na pulpicie, zostanie zaatakowany również bardziej. Myślę, że Mac OSX już to widzi.

James Risto
źródło
2

Jest jeden bardzo ważny powód, dla którego Linux i OpenBSD mogą być bezpieczniejsze niż Windows. Taka jest zdolność systemu operacyjnego do zapory ogniowej przed atakami sieciowymi.

W systemie Windows przychodzące pakiety sieciowe były narażone na znaczną część systemu operacyjnego na długo zanim zapora systemu Windows może odrzucić pakiet. W systemie Linux, przy użyciu IPTables lub na OpenBSD przy użyciu PF można znacznie wcześniej izolować nieuczciwe pakiety w procesie otrzymywania nowego pakietu sieciowego przez system operacyjny - zmniejszając narażenie.

Jednak gdy otworzysz port i uruchomisz na nim usługę - tj. Sprawisz, że komputer w sieci będzie użyteczny - będziesz tak bezpieczny, jak kod, który uruchamia tę usługę.

Michael Shaw
źródło
2

Nie ma czegoś takiego jak system operacyjny, który byłby bardziej bezpieczny niż inny. Wszystko zależy od wiedzy osób zarządzających systemem.

Przez lata spotkałem się z kilkoma niezwykle utalentowanymi administratorami * nix, którzy mogli skonfigurować wyjątkowo bezpieczny * serwer * nix. Jednak trzymaj je przed hostem Windows, a nie będą mieli pojęcia, jak zablokować maszynę. To samo dzieje się w drugą stronę, znam przyzwoitą kwotę na temat zabezpieczenia hosta Windows, ale postawiłem mnie przed polem * nix i nie miałbym pojęcia, co robię.

Żaden system operacyjny nie jest mniej lub bardziej bezpieczny niż inne. Pewnie, że możemy porozmawiać o historii platform i wykorzystać to do debaty, która z nich była bezpieczniejsza w czasie, ale nie mówimy o systemach operacyjnych * nix sprzed 10 lat i wdrażaniu Windows NT 4 w środowiskach produkcyjnych, prawda? . Mówimy o nowoczesnych systemach operacyjnych (a przynajmniej powinniśmy być) i które z nich można lepiej zabezpieczyć.

Widziałem, jak ktoś powiedział coś w odpowiedzi na temat pakietów przychodzących do zapory systemu Windows dotykających więcej części systemu operacyjnego niż zapora systemu Linux. Przez pytanie do niego staje się, kto do diabła ufa zaporze programowej działającej na hoście? Do tego służą zapory ogniowe typu punkt końcowy / front. Aby chronić sieć. Host, na którym działa usługa, ma ujawnioną usługę. Zadaniem gospodarzy jest zapewnienie, że usługa ta nie zostanie naruszona. Jest to zadanie urządzeń sieciowych przed nim, aby zapobiec dostawaniu się innych pakietów z Internetu do hostów innych usług.

Po prawidłowym zabezpieczeniu sieci wszystko zależy od tego, jak dobrze zabezpieczona jest aplikacja działająca na hoście. Czy ta aplikacja ma jakieś przepełnienia buforów, które można wykorzystać? Czy w ujawnionej aplikacji są jakieś sposoby uzyskania dostępu do systemu operacyjnego i uzyskania wyższego poziomu uprawnień? Jeśli nie, to dobrze zabezpieczona aplikacja. Jeśli tak, masz problem, który należy ujawnić.

Jeśli ktoś nie weźmie pod uwagę innego systemu operacyjnego w swoim centrum danych, to oznaka ignorancji (dotyczy sklepu z całym systemem Linux, a także sklepu z całym systemem Windows). Oba systemy mają takie zastosowania i powinny być używane jako takie. Nie ma ani lepszego ani gorszego od drugiego. (I tak, mamy kilka maszyn Linux w naszym środowisku obsługującym usługi produkcyjne.)

mrdenny
źródło
1
Różniłbym się opinią, że wszystko zależy od wiedzy administratorów. Jeśli zostaniesz poproszony o obronę fortu przed atakiem przeciwko namiotowi, myślę, że masz pewną przewagę dzięki fortowi. Jeśli porównywane są tutaj Linux i Windows, to zostały one zaprojektowane z dwiema różnymi filozofiami obsługi wielu użytkowników i jednoczesnego dostępu do systemu. Chociaż dobrzy administratorzy mogą pomóc w usuwaniu braków, nadal istnieją zalety od jednego do drugiego jako punkt wyjścia.
Bart Silverstrim,
1

Nie ma potrzeby przeklinania uniwersytetu za korzystanie z serwerów linuksowych, zgodnie ze swoimi konkretnymi wymaganiami, jak powiedział AdamB, użyj Mono (www.mono-project.com). Profesor zwykle zainteresowany systemem operacyjnym, preferuje Linuksa, nawet każdy entuzjasta systemu wolałby Linuksa, dla prostych ciekawości, jak to działa w praktyce poza książkami.

  • Teraz jeśli chodzi o bezpieczeństwo,

linux podąża teraz za DAC (uznaniową kontrolą dostępu), swoim inteligentniejszym systemem kontroli dostępu. Jak wspomniano w innych odpowiedziach, tak, Linux był dla wielu użytkowników z powrotem, a zatem system kontroli dostępu stał się lepszy od innych.

Ale bezpieczeństwo, o którym mówisz, wygląda jak bezpieczeństwo serwera, które nie jest tak samo problemem systemu operacyjnego, jak problemami całej sieci serwerowej. gdzie mam na myśli listy kontroli dostępu Firewall, router itp. Aktualizacje są bezpłatne przez całe życie. jest otwarty, więc przetestował wiele, co jest bardzo ważne.

oprócz bezpieczeństwa ekonomiczna opłacalność sprawia, że ​​Linux jest najlepszą opcją dla serwerów, których jest bardzo niewiele, ale aplikacje mają uruchamiać lub hostować usługi. Te aplikacje są do nich bardzo dobrze przeniesione. Np. - Apache.

Myślę, że to nie tylko bezpieczeństwo, ale inne czynniki, które sprawiają, że podobnie jak większość reszty uniwersytetu wybiera Linux na serwerach.

Vivek Sharma
źródło
1

Chociaż jest tu wiele świetnych odpowiedzi, chcę tylko dodać, że nie ma czegoś takiego jak bezpieczny system operacyjny.

Wiadomo, że jeśli człowiek stworzył „bezpieczną” platformę, inny człowiek może z czasem znaleźć dziury w tej platformie.

Zgadzam się, że dwa pierwsze zdania Evana najlepiej podsumowują bezpieczeństwo systemu operacyjnego:

Nie sądzę, aby system operacyjny był „bezpieczny”. Konkretna konfiguracja systemu operacyjnego ma szczególny stopień odporności na ataki.

Nie ma więc znaczenia, czy porównamy GNU / Linux, systemy BSD (Free / Open / Net), Microsoft, Windows, Mac OSX, Symbian, PalmOS, Cisco IOS, AIX, QNX, Solaris, z / OS lub dowolny z inne „systemy operacyjne”, które obsługują takie rzeczy jak telewizor, odtwarzacz MP3, kuchenka mikrofalowa itp.

Każdy z nich ma część całości, która może być wykorzystywana przez określoną osobę.

Z tego powodu większość dostawców ma oficjalne dokumenty na temat tego, jak skonfigurować swoje systemy, aby uzyskać jak najbezpieczniejszą konfigurację. Oznacza to stosowanie innych technologii w celu zminimalizowania powierzchni.

na przykład:

  • NAT
  • zwrotny serwer proxy
  • zapory ogniowe
Wayne
źródło
1
Nadal kładę swoje pieniądze na openbsd każdego dnia, aby „najmniej prawdopodobne było, że będą podatne na zagrożenia”.
Kyle Hodgson,
Nie wystawię też pieniędzy na twoje! Chyba że mówimy o DOS <= 4 (chyba nie ma sterowników NDIS przed 5.5)?
Wayne
1

Fakt bezpieczeństwa systemu operacyjnego dotyczący frameworków jest nieco więcej niż tylko kwestią typu jądra. Indywidualnie każda z platform ma swoje zgodne mechanizmy bezpieczeństwa. Specyfikacja konta dla wielu użytkowników w systemie Microsoft Windows pozwala na nieco większą elastyczność w zakresie masowego wdrażania, jednak w Linuksie masz możliwość kontrolowania aż do samego początku - wgląd w uprawnienia i delegowanie uprawnień.

Poziom zabezpieczeń .NET Framework dotyczy głównie zasad grupy, ustawień programu PowerShell i konsoli netsh. Powodem jest telemetria jądra przy niskim poziomie parametrów dostępu z dynamicznymi żądaniami dostępu w pamięci. Frameworki Linuksa często wymagają podobnego poziomu uwagi, ale przede wszystkim dotyczą flag, które określasz podczas konfigurowania języka. Okazuje się, że system Linux po prawidłowym skonfigurowaniu jest bezpieczniejszy niż zabezpieczenia skonfigurowane w systemie Microsoft Windows. Chociaż na „przyzwoitym” poziomie konfiguracji; narzędzia mogą prześlizgnąć się bezpośrednio przez IIS i przejść bezpośrednio do twoich usług przy użyciu określonego identyfikatora GUID. Ogólnie Linux pozwala na większą kontrolę nad aspektami niż

Główne punkty:

inodes and NTFS index primers and permissions in Windows (including registry) 
    are easier to sift through than an EXT hardnened Linux 

protocol traversal within Linux for exception handling are easier to find 
    than a solid configured Windows Firewall. 

cache indexes within ASP.NET are easier to violate than cache management    
    technologies which are well handled within GNU and C++ libraries
    they are practically built for parallel systems now. 

SQL parse queries, have been proven over and over again; MySQL is faster. 
    than MSSQL, though Oracle has been pushing the belt. Transactional 
    security is proven to be more secure on Windows, but for performance 
    and sheer flexibility shows that MySQL should be used or something 
    along the lines of a iSQL or NSQL (not SQLAB like Berkeley SQL which 
    MSSQL is based on) 

Gateway permissions, Linux has an amazing ability to fondle packets and tiny 
    little things that Windows can only put into sorting bins. This being 
    said, if you are running a Windows network, you have more network auditing 
    than a Linux network because the packages are easier to apply walls to 
    than DLL files and protocol requests. 

Surface layer GUI, .NET Framework offers strict field definitions; while Linux 
    allows intense PCRE and other Regular Expressions. 

Statusy rządowe:

OWASP proves over and over again that it is harder to crack a hardened Linux Server 
than it is to crack a hardened Windows Server. Why? Because the firewall and Group 
Policy does not allow as far a tuned key for aspects of the closed source framework 
within ASP.NET; Linux will let you choose a color for every letter on your command. 

NIST Shows over time that SQL management permissions are harder to parse with Windows 
while Linux PCRE makes it harder to bypass SQL queries whether it be within a GUI or 
a Web Interface. 

Carnagie Mellon shows that ASP.NET can hold higher regulations because it is built 
in a more module based context which employs the use of MVC frameworks and can potentially 
have a higher restriction. Meanwhile PHP and Java show that they are incredibly robust 
with their Obfuscation and encapsulation methodologies.

Osobiste opinie:

Każdy system operacyjny może być bezpieczniejszy niż reszta po wyjęciu z pudełka. Na podstawie surowego porównania frameworków, które działają na wyższym poziomie bezpieczeństwa z Linuksem lub Windowsem, muszę powiedzieć, że główna część bezpieczeństwa w sieci wykorzystuje najbardziej niekompatybilne, ale wydajne ramy. W ten sposób znacznie trudniej jest zatrzasnąć się w natywnych uprawnieniach dostępu do dysku twardego i uchwytach biblioteki. W ten sposób masz nieco przyspawaną miskę na swoim systemie operacyjnym. Jak powiedział Evan z uprawnieniami NTFS i / proc lub / dev. Jeśli używasz czegoś, co nie może z tym rozmawiać; trudniej go złamać.

Czego nauczyłem się z tworzenia stron internetowych, nigdy nie lekceważ swojego frameworka. .NET ma uprawnienia do tworzenia współużytkowanych zamontowanych woluminów i mechanizmów kontrolnych dla klastrów SQL Server; podczas gdy Apache Source może zrobić to samo z systemami operacyjnymi używającymi Linuksa. To całkiem przyzwoite pytanie, choć muszę powiedzieć, że Linux pozwala na większe bezpieczeństwo kontroli poszczególnych aspektów oraz ograniczeń i monitorowania w wielu językach; podczas gdy system Windows ma szerokie możliwości inspekcji i rejestrowania za pomocą interfejsu logicznego debugowania na wysokim poziomie. Oba są porównywalne, w końcu zawęża się do „jak dobrze - zamykasz” i „ile jest dzwonków i gwizdków?”. w ramach. Apache ma więcej dodatków zwiększających bezpieczeństwo;

W chwili obecnej przy kompilowaniu PHP w systemie Linux lub Windows oczywiste jest, że istnieje więcej rozszerzeń, których można użyć w systemie operacyjnym Linux; System Windows ma inny poziom zarządzania uprawnieniami niż PHP, co utrudnia zarządzanie katalogami i dostępem do plików. W przypadku Apache, na przykład XAMPP, LAMPP lub WAMP, czułbym, że Windows jest nieco mniej bezpieczny, biorąc pod uwagę fakt, że jego ograniczenia dotyczące zapory są łatwiejsze do naruszenia, ponieważ dzieli te same reguły tunelowania, co przeglądarka internetowa. Z drugiej strony Linux może korzystać z pul aplikacji i mechanizmów zabezpieczeń na poziomie pakietów, które są znacznie bardziej skomplikowane do emulacji. Windows wymagałby użycia wszystkich aspektów systemu operacyjnego, aby zwiększyć bezpieczeństwo sieci.

Usługi IIS (na serwerze Microsoft Server, a nie Windows Client) w systemie Windows z ASP.NET z najnowszymi miksami SEC_ATL mogą być również bardzo bezpieczne.

Tylko sam Apache, możesz chcieć uruchomić go z Linuksem, aby włączyć sterowniki wyższego i niższego poziomu, SMIME, kodeki i zabezpieczenia na poziomie pakietów. Podczas gdy system Windows wymagałby zainstalowania nakładających się mechanizmów bezpieczeństwa, które w przeciwnym razie zablokowałyby ruch nieco bardziej, niż byś chciał, jeśli chodzi o uruchamianie tysięcy serwerów.

W Linuksie im bardziej smukłe jest jądro i im bardziej optymalne dla bezpieczeństwa sieci, tym lepiej (jak łączenie się w Apache z NSLUG).

W systemie Windows lepiej lubisz programować moduły Powershell i dodatkowe nakładanie zabezpieczeń na platformę ASP.NET i konfigurować zasady grupy na USGS, ponieważ w większości przypadków naprawdę potrzebuje to, aby odciąć ruch, którego Linux automatycznie odmawia i nie myśli o.

Równie mogą być silni. Po wyjęciu z pudełka dystrybucja systemu Linux na żywo będzie silniejsza niż nieskonfigurowany system Microsoft Windows Server skonfigurowany za pomocą Kreatora.

Z czasem Linux prześcignie Windowsa w grze bezpieczeństwa. Serwery Debian 3 są dziś silniejsze niż Microsoft Server 2008 R2 po wyjęciu z pudełka i zgadnij, co mogą obsługiwać te same technologie bez przebudowy jądra. Debian wciąż może go palić i widziałem to na własne oczy.

Chociaż, jak już powiedziano, jestem tego pewien. Wszystko sprowadza się do personelu, z którym pracujesz, i dbałości o szczegóły. To zawsze robi największą różnicę, jeśli chodzi o pracę w dużej sieci serwerów.

VLi
źródło
0

Przede wszystkim uważam, że Linux jest bezpieczniejszym wyborem ze względu na wszechobecne korzystanie z oprogramowania typu open source.

Ta swoboda wynika z pomysłu, że „społeczność” zauważy, że coś podejrzanego zostanie gdzieś dodane (powiedzmy, że jeśli openSSH nagle zacznie dzwonić do domu z hasłami), nie pozostanie na długo.

Ale nie mogę powtórzyć wystarczająco tego, co już powiedzieli inni: bezpieczeństwo zależy w dużej mierze od konfiguracji: kogo to obchodzi, jeśli openSSH nie dzwoni do domu, jeśli nie masz firewalla, hasło roota zerowe i PermitRootLogin włączone w sshd;)

msanford
źródło
0

Krótka odpowiedź: początkowo system UNIX miał być bezpieczny; System Windows został zaprojektowany tak, aby był prosty. Teraz potomkowie UNIXa będą udawać, że są prostsi dla swoich użytkowników; Windows udaje, że jest bardziej bezpieczny.

Jeszcze się nie spotkali

dmityugov
źródło
2
Bah! System Windows NT był bardziej przemyślany pod względem bezpieczeństwa w swoim pierwotnym projekcie niż system Unix. W późniejszym czasie Unix włączył zabezpieczenia. Nowoczesne systemy operacyjne uniksopodobne (takie jak Linux, który tak naprawdę nie jest systemem operacyjnym „Unix”, ponieważ jest to całkowicie nowa baza kodu), znacznie się poprawiły w stosunku do oryginalnego systemu Unix, ale system Windows NT od samego początku był zaprojektowany do spełniają amerykańskie wymagania bezpieczeństwa „Orange Book”.
Evan Anderson
0

Poprzednie wersje systemu Windows miały aplikacje działające w tej samej przestrzeni adresowej, dzięki czemu mogły między sobą przenosić wskaźniki. Opierali się również na wielozadaniowości kooperacyjnej i czasami nie współpracowali.

Nawet bardzo wczesne wersje Linux / Unix miały partycjonowanie między aplikacjami oraz między O / S a warstwą aplikacji. Podział zadań, choć nie zawsze idealny, był przynajmniej sprawiedliwy.

Stąd spuścizna Unixa (lub Linuksa) dla bardziej niezawodnych systemów, które wymagają większej dostępności.

Czy to wszystko obowiązuje do dziś? To kolejne pytanie.

kmarsh
źródło
Oczywiście, że nie. Wiele negatywnych nacisków, jakie Windows otrzymuje od społeczności Linuksa, jest bezpośrednio ukierunkowanych na poprzednie wersje i nie bierze pod uwagę faktu, że sprawy potoczyły się dalej. Ostatnią wersją systemu Windows, która używała coop m / t, była wersja 3.1, a ostatnią wersją systemu Windows, w której DOS biło w sercu, była ME.
Maximus Minimus
0

Teraz, gdy NT dogonił Unixa w wielu wcześniej brakujących miejscach, uprawnienia do plików i ochrona pamięci nie są już dużymi różnicami.

Ale .... W systemach Unix cały dostęp do wszystkich urządzeń przechodzi przez pliki, dla których można łatwo zarządzać bezpieczeństwem. Na przykład, czy wiesz, jak uniemożliwić użytkownikowi X dostęp do karty dźwiękowej w systemie Windows, jednocześnie pozwalając użytkownikowi Y? W Uniksie takie rzeczy są łatwe.

b. Struktura katalogów jest znacznie bardziej rozsądna. (Na przykład aplikacja użytkownika musi mieć dostęp tylko do zapisu w folderze domowym itp.) Poprawiło się to również w systemie Windows w ciągu kilku lat.

re. To jest biggie: SELinux (oraz funkcja piaskownicy „Seatbelt” firmy Trusted Solaris i Mac OS). Jest to znane jako NDAC (niedyskrecjonalna kontrola dostępu). Jeśli korzystasz z dystrybucji systemu operacyjnego z tymi funkcjami, wówczas zasadniczo działają dwie warstwy zabezpieczeń, normalny DAC (system uprawnień), który zawsze miał Unix, a nowoczesne wersje systemu Windows mają - a ponadto „firewall aplikacji”, który nakładają SELinux i podobne systemy. Na przykład możesz ustawić zasadę, że serwer WWW Apache może zapisywać do / tmp i czytać z / var / www i / etc / apache. Wszelki pozostały dostęp do dysku zostanie odmówiony niezależnieuprawnień. Podobnie można określić, że może on akceptować połączenia przychodzące tylko przez port 80 i nie wykonywać połączeń wychodzących. Wtedy, nawet jeśli istnieje błąd, który pozwoliłby komuś zrobić coś bardzo złego, a nawet gdyby apache działał jako root, nie miałoby to znaczenia - polityka by temu zapobiegała. Wymaga to (bardzo niewielkiej) kary prędkości i może być uciążliwe, jeśli używasz nietypowej konfiguracji, ale w normalnym przypadku może znacznie zwiększyć poziom bezpieczeństwa zarówno w starym systemie Unix, jak i Windows.

mi. Warstwy - systemy Unix składają się z wielu bardziej dyskretnych warstw i usług, które można wymieniać. Oznacza to, że można je indywidualnie analizować pod kątem poprawności i bezpieczeństwa, wymieniać itp. W przypadku prawie każdego z nich nie ma potrzeby ponownego uruchamiania. To duży plus w systemach typu serwerowego. Ponadto łatwiej jest wyłączyć (i odinstalować) rzeczy, których nie potrzebujesz w systemie Unix. Na przykład, po co uruchamiać GUI na serwerze sieciowym? Zwiększa powierzchnię ataku i zajmuje pamięć RAM.

fa. Dla tych, którzy mówili, że system Windows NT został zaprojektowany od podstaw pod kątem bezpieczeństwa ... to prawda, jądro zostało zaprojektowane od samego początku z zaawansowanymi funkcjami bezpieczeństwa i wieloma użytkownikami, ale są dwa główne problemy: 1. Słabe osiągnięcia Microsoft w zakresie bezpieczeństwa oraz 2. Cały system operacyjny został zaprojektowany tak, aby był kompatybilny ze starszymi aplikacjami Windows, co oznaczało wiele kompromisów. Unix zawsze był wieloużytkownikowy, więc aplikacje nie są zaskoczeniem, gdy egzekwowane jest bezpieczeństwo - co oznacza mniej kompromisów.

Noah
źródło
Zabezpieczenia dostępu do „plików urządzeń” w systemie Windows NT są realizowane przez listy ACL stosowane w menedżerze obiektów wykonawczych. Ma w przybliżeniu ten sam model ACL co system plików. Re: Twój punkt „a”: Aplikacje oznaczone logo, które są zgodne z wytycznymi programistycznymi Microsoft, nie potrzebują również dostępu do zapisu poza katalogiem osobistym użytkownika. re: „b”: Zgadzam się, że funkcjonalność MAC w systemie Windows jest ograniczona. Poziomy integralności dodane w systemie Vista są formą MAC. „Zaawansowana zapora ogniowa” (również dodana w systemie Vista) może ograniczyć ruch wychodzący w sposób opisany przez użytkownika, jeśli zostanie on skonfigurowany w ten sposób.
Evan Anderson
re: „e”: Zasadniczo zgadzam się, że mniej oprogramowania oznacza mniejszą szansę na awarię. Istnieją wewnętrzne kompilacje systemu Windows, które nie mają graficznego interfejsu użytkownika, ale Microsoft zdecydował się ich nie wydawać. re: „f”: zewnętrzni programiści byli większym problemem re: uzyskanie rozsądnych domyślnych zasad bezpieczeństwa ustawionych w systemie Windows niż Microsoft. Osobiście uważam, że Microsoft powinien bardziej nieufnie podchodzić do źle działających aplikacji, ale żyją one w innej „przestrzeni” niż twórcy darmowych i otwartych systemów operacyjnych, jeśli chodzi o zapewnienie działania aplikacji swoich klientów.
Evan Anderson
re: „System operacyjny jako całość ... zaprojektowany w celu zapewnienia zgodności ...” Win32 jest podsystemem jądra - to nie jest NT. Jeśli Microsoft chciał (lub pozwoliłby komuś innemu), mógłbyś zbudować „dystrybucję” Windows NT, która nie miała podsystemu Win32, bez GUI i uruchamiała się, powiedzmy, z podsystemem jądra POSIX „Interix”. Praktycznie cały interfejs użytkownika w systemie operacyjnym NT jest oparty na systemie Win32, ale jądro doskonale obsługuje środowisko inne niż Win32.
Evan Anderson
0

Istnieje kilka powodów, dla których systemy oparte na systemie Linux są często uważane za bezpieczniejsze niż systemy Windows.

Jednym z nich jest umiejętność właściciela. Jeśli przejdziesz do Best Buy lub Wal-mart (tutaj w USA) i kupisz komputer, nie zastanawiając się nad tym dużo, uruchomi on system Microsoft Windows. Oznacza to, że istnieje ogromna liczba systemów Windows obsługiwanych przez ludzi, którzy nie mają pojęcia. Ponieważ prawie nikt nie kupuje komputera z systemem Linux przypadkowo (przynajmniej odkąd Microsoft przeprowadził kontratak na netbookach), większość użytkowników Linuksa albo wie coś o komputerach, albo też ich komputer został skonfigurowany przez kogoś, kto to robi. Dotyczy to wszystkich środowisk, w których występują osoby, które nie wiedzą, co robią; ci, którzy nie korzystają z systemu Windows, i ci, którzy mają różne systemy operacyjne.

Jednym z nich jest liczba atakujących. Microsoft Windows jest znacznie bardziej atrakcyjnym celem ze względu na wszystkie źle administrowane maszyny. Istnieje wiele wartościowych celów Linuxa, ale ogólnie są one dobrze administrowane (wraz z wieloma wartościowymi celami Windows). W rozsądnym przybliżeniu nikt w ogóle nie atakuje komputerów z systemem Linux.

Jednym z nich jest kultura. W każdym środowisku Unix / Linux istnieje wyraźne rozróżnienie między kontami root a użytkownikami, a prawie we wszystkich przypadkach ludzie pracują na swoich kontach użytkowników, gdy nie muszą być rootami. Z mojego doświadczenia wynika, że ​​rozróżnienie to nie jest tak silne w środowiskach Windows, że każdy użytkownik zwykle ma jedno konto, bez względu na związane z nim uprawnienia. Teraz pracuję na komputerze, na którym mam jedno konto - konto administratora. Wszystko, co robię, odbywa się na koncie z wysokimi uprawnieniami. Kiedy wracam do domu do mojego Linux-a, zrobię prawie wszystko na koncie z ograniczonymi uprawnieniami i eskaluję, kiedy będę musiał. Moja żona musiała się kłócić, żeby założyć w pracy dwa konta, jedno normalne konto administratora i jedno konto z ograniczonymi uprawnieniami, aby mogła sprawdzić, czy zwykli użytkownicy mają uprawnienia do uruchamiania tego, co pisze.

Jednym z nich jest kompatybilność wsteczna. Chociaż Unix nie zaczynał jako bezpieczny system operacyjny, wcześnie zyskał bezpieczeństwo. Programy dla systemu Linux nie wymagają uruchamiania jako root, chyba że faktycznie wykonują funkcje root. Z drugiej strony, Windows uruchamia dużą liczbę programów, które wymagają kont administratora, ponieważ na tym właśnie działali programiści i testowali je (patrz powyższy akapit), a ci programiści zwykle nie zwracali uwagi na bezpieczeństwo i to działało dobrze. To duży problem, który Microsoft próbował rozwiązać za pomocą UAC. Nie sądzę, aby było to szczególnie dobre rozwiązanie, ale szczerze mówiąc, Microsoft nie znajdzie tutaj dobrego rozwiązania (nie sądzę, aby rezygnacja z kompatybilności wstecznej była tutaj dobrym rozwiązaniem).

Prowadzi to do tego, że większość problemów związanych z bezpieczeństwem na dużą skalę będzie dotyczyć systemów Microsoft, niezależnie od zalet modeli bezpieczeństwa, i postrzegania, że ​​Microsoft ma duże problemy z bezpieczeństwem. Ze względu na heurystykę dostępności fakt, że ludzie mogą myśleć o większej liczbie problemów związanych z bezpieczeństwem Microsoft, wpływa na ich osąd.

Są to moim zdaniem uzasadnione powody. Nie dotknąłem rzeczywistych zabezpieczeń systemu operacyjnego, ponieważ nie wiem, czy dystrybucja Windowsa lub Linuxa jest bardziej podatna na zagrożenia, gdy jest prowadzona przez znającego się na rzeczy administratora. Linux ma tę zaletę, że jest open source, ponieważ każdy może znaleźć i naprawić błędy, podczas gdy Microsoft wprowadził praktyki bezpieczeństwa, które mogą, ale nie muszą, działać lepiej. (Gdybym chciał uruchomić naprawdę bezpieczny system operacyjny, wybrałbym OpenBSD, system operacyjny typu open source, który stara się być bezpieczny). Oba systemy mają dobre systemy uprawnień (preferuję system uniksowy, ale inni rozsądni ludzie się nie zgadzają).

Istnieją oczywiście złe powody, by uważać systemy operacyjne za mniej bezpieczne. Niektóre osoby mają ulubiony system operacyjny i nie marnują okazji, aby badmouth innych. Niektóre osoby nie lubią Microsoft, Richarda Stallmana lub innej osoby lub organizacji i oczerniają powiązane systemy operacyjne. Niektóre osoby nie zauważyły, że Microsoft zmienił się przez lata, ponieważ nie tak dawno temu Microsoft naprawdę nie dbał o bezpieczeństwo, a Windows naprawdę był mniej bezpieczny niż Linux.

David Thornley
źródło
-1

Nie ma prawdziwego powodu poza bezwładnością. Widziałem wielu zwolenników Linuksa, którzy argumentowali przeciwko Windowsowi (i to nie tylko ze względów bezpieczeństwa), które na pierwszy rzut oka wydają się prawidłowe, ale - które przy odrobinie kopania dotyczą tylko Windows 3.1 lub 95/98.

Powiedziałem to wcześniej, ale chociaż system Windows może zawierać więcej poprawek / etc, są to poprawki zidentyfikowanych luk w zabezpieczeniach . I to nie te, które zostały naprawione , musisz się martwić, prawda? Nie sądzę, aby bycie otwartym oprogramowaniem było wewnętrznie bezpieczniejsze. Tworzenie własnych poprawek może być w porządku dla użytkownika domowego, ale użytkownik korporacyjny lub administrator zawsze będzie chciał Rzeczywistej Rzeczy, która jest certyfikowana do pracy (i została w pełni przetestowana) z różnymi aplikacjami i która ma certyfikat, aby nie zepsuć następna aktualizacja jądra. To samo dotyczy poprawek od społeczności FOSS.

Tak więc w mojej książce jest to mieszanka bezwładności, uprzedzeń i bycia osadzonym w kulturze UNIX, z wyłączeniem alternatyw.

Maximus Minimus
źródło
-2

Procesy w systemie Linux / Unix nie mogą zmienić swoich uprawnień po przypisaniu użytkownika, procesy w systemie Windows mogą zmienić swoje uprawnienia użytkownika i zmienić użytkownika podczas jego trwania.

To jest istota, dlaczego Windows jest mniej bezpieczny niż Linux / UNIX.

Fire Crow
źródło
2
Jest to prawdą tylko wtedy, gdy kontekst, w którym działa proces, ma uprawnienia „Działaj jako część systemu operacyjnego” (SE_TCB PRIVILEGE). Jeśli rozpoczniesz proces z kontekstem bezpieczeństwa, który nie ma SE_TCB PRIVILEGE, wówczas proces nie będzie mógł po prostu losowo „podszyć się” (system NT przy zakładaniu innego kontekstu bezpieczeństwa) do innego użytkownika. Jeśli uruchamiasz aplikację z SE_TCB PRIVILEGE bez powodu, otrzymujesz to, na co zasłużyłeś, IMO.
Evan Anderson
Bezpieczeństwo jest więc egzekwowane przez „kontekst” w stosunku do reguły systemowej, dlatego system Windows jest mniej bezpieczny niż unix / linux.
Fire Crow