Warum gelten Linux-basierte Betriebssysteme als sicherer als Windows? [geschlossen]

19

Ich höre, dass Linux-basierte Systeme für die Sicherheit besser sind. Anscheinend haben sie keine Viren und benötigen keine Antivirensoftware. Sogar meine Universität behauptet dies - sie lehnen es ab, Windows auf ihren Servern zu haben, was wirklich schade ist, weil wir das .NET-Framework zum Erstellen einiger Websites verwenden wollten.

Der einzige Grund, warum ich Linux als sicherer empfinde, ist, dass es Open Source ist, weshalb Fehler theoretisch früher entdeckt und behoben würden.

Ich weiß ein wenig über die Funktionsweise von Betriebssystemen Bescheid, habe aber noch nicht genau untersucht, wie Linux und Windows ihre Betriebssysteme implementieren. Kann jemand den Unterschied erklären, der Linux-basierte Systeme sicherer macht?

Echoblaze
quelle
5
Ich beantworte Ihre Frage nicht genau, aber ich möchte die Wahl Ihrer Schule ein wenig verteidigen. Meine Schule betreibt sowohl ein Windows-System als auch ein Linux-System, die sich ein gemeinsames Dateisystem teilen (versuchen). In der Praxis kann dies jedoch teuer sein, da die Windows- und Unix-Domänen im Netzwerk leider nicht miteinander auskommen. Angesichts der Tatsache, dass Windows-Benutzer eine Open-Source-Komponente häufiger als das Gegenteil verwenden müssen (Entschuldigung zu .net), ist es eine seriöse Entscheidung, dass sie nur Linux auf der grundlegenden Kernhardware wie Servern unterstützen. Linux unterstützt heute die wichtigsten Dienste
Notmyfault
Vielen Dank für Ihre Antwort - und auch an die anderen Antwortenden, die mir definitiv geholfen haben, die Dinge zu klären. Ich war eher skeptisch als verärgert über die Behauptung meiner Universität.
Echoblaze

Antworten:

55

Ich denke nicht, dass ein Betriebssystem "sicher" ist. Eine bestimmte Konfiguration eines Betriebssystems ist besonders widerstandsfähig gegen Angriffe.

Ich werde wahrscheinlich in Flammen aufgehen, weil ich hier ein "Microsoft-Apologet" bin, aber dieser Thread neigt zu Verallgemeinerungen über "Windows", die nicht wahr sind.

Windows 1.0 - 3.11, 95, 98 und ME basieren auf DOS. Diese Reihe von Betriebssystemen hatte keine Sicherheit im formalen Sinne (geschützte Adressräume, Trennung von Kernel und Benutzermodus usw.). Wenn wir heute über "Windows" sprechen, sprechen wir glücklicherweise nicht über diese Betriebssysteme.

Die Windows NT-Betriebssystemfamilie (Windows NT 3.5, 3.51, 4.0, 2000, XP, 2003, Vista, 2008 und 7) verfügt seit der ersten Veröffentlichung im Jahr 1992 über ein sehr vernünftiges Sicherheitssystem Es wurde unter Berücksichtigung des TCSEC "Orange Book" entworfen und, obwohl es nicht perfekt ist, denke ich, dass es einigermaßen gut entworfen und implementiert ist.

  • Windows NT war von Anfang an "Mehrbenutzer" (obwohl die Funktionalität mehrerer Benutzer, die gleichzeitig eine grafische Benutzeroberfläche vom selben Server erhalten, erst mit Citrix WinFrame im Zeitalter von Windows NT 3.51 gegeben war). Es gibt eine Trennung zwischen Kernel und Benutzermodus, wobei der Adressraumschutz von den zugrunde liegenden Hardwarefunktionen der MMU und der CPU abhängt. (Ich würde sagen, es ist sehr "Unix-y", aber eigentlich ist es sehr "VMS-y".)

  • Das Dateisystem-Berechtigungsmodell in NTFS ist ziemlich "umfangreich", und obwohl es einige Warzen in Bezug auf "Vererbung" (oder das Fehlen davon - siehe Umgehung des Konstruktionsfehlers von NTFS Move / Copy? ) Aufweist , war dies erst möglich In den letzten 10 Jahren haben Betriebssysteme im Unix-Stil ähnliche Funktionen implementiert. (Novell NetWare hat Microsoft in diesem Fall geschlagen, obwohl ich glaube, dass MULTICS beide geschlagen hat ...> smile <)

  • Der Dienststeuerungsmanager, einschließlich des Berechtigungssystems zum Steuern des Zugriffs auf Dienstprogramme zum Starten, Stoppen und Anhalten, ist sehr gut konzipiert und wesentlich robuster als die verschiedenen "init.d" -Skriptarchitekturen (eher "Gentleman's Agreements") ") in vielen Linux - Distributionen.

  • Der ausführende Objektmanager (siehe http://en.wikipedia.org/wiki/Object_Manager_(Windows) ), das dem Dateisystem / proc und dem Dateisystem / dev in nichts nachsteht, verfügt über ein ACL-Modell, das dem Dateisystem ähnelt und wesentlich umfangreicher ist als Jedes mir bekannte Berechtigungsmodell für / proc oder / dev auf jeder Linux-Distribution.

  • Während wir die Vor- und Nachteile der Registrierung diskutieren könnten, ist das Berechtigungsmodell für Schlüssel in der Registrierung weitaus detaillierter als das Modell zum Festlegen von Berechtigungen für Dateien im Verzeichnis / etc. (Ich mag besonders Rob Shorts Kommentare zu: der Registry in seinem "Behind the Code" -Interview:http://channel9.msdn.com/shows/Behind+The+Code/Rob-Short-Operating-System-Evolution Rob war anfangs einer der Hauptverantwortlichen für die Windows-Registrierung unbedingt froh w / wie es ausgegangen ist.)

Linux selbst ist nur ein Kernel, während Windows einer Linux-Distribution ähnlicher ist. Sie vergleichen Äpfel und Orangen, um sie so zu vergleichen. Ich würde zustimmen, dass es schwieriger ist, Windows "herunterzufahren" als einige Linux-basierte Systeme. Einige Linux-Distributionen hingegen werden mit viel "Mist" ausgeliefert, der auch eingeschaltet ist. Mit dem Aufkommen der verschiedenen "eingebetteten" Windows-Varianten ist es möglich (wenn auch nicht für die breite Öffentlichkeit), "Distributionen" von Windows zu erstellen, die sich in ihrem Verhalten von den Microsoft-Standardeinstellungen unterscheiden (ausgenommen verschiedene Dienste, Ändern von Standardberechtigungen usw.). .

Die verschiedenen Windows-Versionen hatten eine Reihe von schlecht gewählten Standardeinstellungen, Bugs, die es nicht autorisierten Benutzern ermöglichten, Privilegien zu erlangen, Denial-of-Service-Angriffe usw. Unix-Kernel (und viele Unix-basierte Anwendungen, die standardmäßig als Root ausgeführt werden) hatten die gleiche Probleme. Microsoft hat seit Windows 2000 erstaunliche Arbeit geleistet, indem es einfacher war, Anwendungen zu unterteilen, Programme mit geringsten Rechten auszuführen und nicht benötigte Funktionen des Betriebssystems zu entfernen.

Kurz gesagt, ich denke, ich sage, dass die spezifische Konfiguration eines bestimmten Betriebssystems für Ihre Anforderungen in Bezug auf die Sicherheit wichtiger ist als die Art des von Ihnen verwendeten Betriebssystems. Windows- und Linux-Distributionen verfügen über sehr ähnliche Funktionen in Bezug auf Sicherheitsfunktionen. Sie können in beiden Betriebssystemen solide Sicherheitstechniken anwenden (geringste Berechtigungen, eingeschränkte Installation optionaler Komponenten, kryptografisch sichere Authentifizierungsmechanismen usw.). Ob Sie es tatsächlich tun oder nicht - darauf kommt es an.

Evan Anderson
quelle
für jemanden wie mich, der keine Ahnung hat, wie Windows und Linux-Systeme gebaut wurden, war Ihr Beitrag unglaublich informativ
Echoblaze
Einverstanden. Gute Argumente.
Kyle Hodgson
1
+1 - Ich bin ein Linux-Benutzer zu Hause und hauptsächlich ein Windows-Sicherheitsprofi bei der Arbeit. Die Konfiguration ist viel wichtiger als das Betriebssystem selbst, und Sie müssen auf jeden Fall Linux-Distributionen mit Windows vergleichen, nicht nur 'Linux' nach dem Kernel.
Romandas
3
langsames Klatschen +1
Chickeninabiscuit
Eine Sache, die der Windows-Welt lange Zeit wirklich wehgetan hat (auch wenn sie jetzt größtenteils Geschichte ist), ist, dass Sie lange Zeit lokaler Administrator sein mussten, um eine Menge Dinge zu tun, während Sie es in der * nix-Welt einfach taten Seien Sie Sudoer auf dieser Maschine. Das Problem war offensichtlich, dass alles, was von einem lokalen Administrator ausgeführt wurde, auf den meisten Computern alles mit dem Computer tun konnte. Es wäre eine gleichwertige Bedrohung für Linux / Unix gewesen, wenn es nicht immer eine bekannte Praxis gewesen wäre, nicht root zu sein, sondern sudo / su bei Bedarf auszuführen. Ich denke, es war nicht wirklich ein Windows-Problem, sondern eine Software, und mit der Benutzerkontensteuerung ist es meistens behoben.
Fredrik
16

Eine andere Sache, die nicht erwähnt wird, ist, dass die Sicherheit unter Windows viel undurchsichtiger ist als unter Linux.

Zum Beispiel kann ich mir einige Textdateien ansehen und genau sehen, was auf meinem Webserver läuft. IIS? Nicht so sehr - Sie können die Ergebnisse der Konfiguration über das GUI-Tool sehen, aber es gibt versteckte Einstellungen. Dann müssen Sie einen anderen Satz von Tools verwenden, um die ACLs für die Dateien usw. zu überprüfen.

Ähnlich verhält es sich mit den meisten Programmen in der Windows-Welt - es ist sehr schwierig, schnell genau zu verstehen, was die Laufzeitumgebung zwischen Registrierung und ACLs beeinflusst.

chris
quelle
11

Ich kenne diesen Vergleich der Dateiberechtigungen nicht ... Als ich ein UNIX / Linux-Administrator war, verfügte NT4 über Datei-ACLs, die viel detaillierter waren als die herkömmlichen UNIX / Linux-777-Berechtigungen. Berechtigungen sind natürlich nicht alles, und ich bin mir sicher, dass moderne Linux-Distributionen zumindest fein abgestimmte ACLs zur Verfügung stellen, auch wenn sie nicht standardmäßig implementiert sind. Meiner Ansicht nach gab es in UNIX schon immer die Konzepte sudo und root, obwohl Windows diese Konzepte stetig hinzugefügt hat und sie jetzt wahrscheinlich auf dem gleichen Stand sind.

Meine eigene Interpretation ist, dass der Linux-Kernelcode und viele seiner Treiber und Dienstprogramme offen sind. Er wurde wahrscheinlich viel ausführlicher überprüft und viel häufiger auf Codierungsfehler korrigiert, die zu Sicherheitslücken führen können, die ein Hacker ausnutzen kann. Meiner Meinung nach geht die Theorie dahin, dass Linux, da es sich nicht im Besitz eines Unternehmens befindet, das Sicherheitsziel umfassender erforschen kann als ein Unternehmen. Unternehmen müssen Geld verdienen; Open-Source-Gruppen haben diese Einschränkung einfach nicht.

Es ist viel einfacher, in ein Linux-System einzusteigen und einfach das gesamte Fenstersystem, RPC-Dämonen usw. herunterzufahren. Sie können ein Linux- oder BSD-basiertes System mit einem Minimum an installierten Paketen auf einen oder zwei offene Ports herunterfahren habe ein sehr nützliches System sehr leicht. Dies hat wahrscheinlich mehr mit dem UNIX-Erbe als Betriebssystem eines Entwicklers zu tun. Alles war modular aufgebaut und nicht übermäßig miteinander verbunden. Dies führt zu einem viel besser konfigurierbaren System, in dem Sie einfach Dinge entfernen können, die nicht relevant sind. Ich denke, es ist nicht so einfach, Windows-Server auf diese Weise zu härten.

Die OpenBSD-Gruppe hat dieses Konzept auf die Spitze getrieben. Das Hauptziel Nummer eins des Programms ist es, jede Codezeile auf mögliche Sicherheitslücken zu überprüfen. Der Beweis dafür liegt im Pudding. Im Laufe der Jahre wurde eine unglaublich geringe Anzahl von Schwachstellen für OpenBSD gefunden, da die Liebe zum Detail fast fanatisch ist (ich verwende das Wort mit Respekt).

Unternehmen haben zwar wunderbare Software (MSSQL, Exchange, Windows Server 2003 sind in meinem Buch alle wundervoll), aber unterschiedliche Ziele.

Kyle Hodgson
quelle
5
Ja; Windows-ACLs sind detaillierter als Linux / Unix ohne ACLs (obwohl die meisten modernen Versionen Optionen zur Verwendung von ACLs haben). Der wesentliche Unterschied besteht darin, dass Benutzer in der Regel als Administrator bei Windows angemeldet sind - dies ist immer noch die Standardkonfiguration für von Unternehmen bereitgestellte XP-Laptops -, während Benutzer unter Linux / Unix die meisten Vorgänge nicht als Root ausführen. Dies begrenzt den Schaden, der unter Linux / Unix im Vergleich zu Windows angerichtet werden kann - standardmäßig. Wenn jemand die ganze Zeit als root ausgeführt wird, sind alle Wetten ungültig (mit der Ausnahme, dass er früher oder später einen bedauerlichen - und bedauerlichen - Unfall haben wird).
Jonathan Leffler
"Es ist sehr richtig, dass die Konzepte sudo und root unter UNIX schon immer existierten und erst jetzt unter Windows verfügbar sind." Worüber redest du? Windows NT ist nicht so alt wie Unix, aber Windows NT verfügt seit seiner Veröffentlichung im Jahr 1992 über eine sehr vernünftige "eingebaute" Sicherheit. Es ist bedauerlich, dass viele Windows - Administratoren keine Benutzer mit "eingeschränkten" Benutzerkonten bereitstellen (wie z Das hätte von Anfang an so sein sollen, aber das sollte das Betriebssystem nicht verdammen.
Evan Anderson
Aus Server-Sicht selbstverständlich. Ein typischer Windows-Benutzer benötigte jedoch Administratorzugriff, um bis Vista eine noch einigermaßen komfortable Umgebung zu haben. Ich sehe Vista "Rechtsklick, als Administrator ausführen" als vergleichbar mit sudo.
Kyle Hodgson
3
Ich stimme überhaupt nicht zu. Ich habe seit Windows NT 4.0 Tausende von Desktops mit eingeschränkten Benutzerkonten depoyed. "RunAs", ähnlich wie "sudo", ist seit Windows 2000 im Betriebssystem ("Rechtsklick, Ausführen als" -Funktionalität). Ich werde sagen, dass die Benutzerkontensteuerung eine blöde Funktion ist und nicht im Betriebssystem enthalten sein sollte. Microsoft hat das Falsche getan, indem es es "sicherer" machte, als "Administrator" zu arbeiten, anstatt es schwieriger und schmerzhafter zu machen, und gleichzeitig die Entwickler dazu ermutigte, Software zu schreiben, die nicht schlecht ist (dh "Administrator" -Rechte erfordert).
Evan Anderson
2
Vista-Benutzer an meinen Kundenstandorten sehen die Benutzerkontensteuerung nie, da sie als eingeschränkte Benutzerkonten ausgeführt werden. Die Benutzerkontensteuerung wird nur angezeigt, wenn Sie als "Administrator" angemeldet sind. Sie können die Benutzerkontensteuerung mithilfe von Gruppenrichtlinien deaktivieren, dies sollte jedoch nie erforderlich sein.
Evan Anderson
9

Meiner Meinung nach sind Linux-basierte Systeme sicherer, wenn sie gut genug konfiguriert sind als Windows-Systeme. Einige der Gründe sind:

  1. Transparenz und zahlreiche einfache Netzwerk-Tools: Zum Beispiel ist es für Linux-Administratoren sehr einfach, die aktuelle Firewall-Konfiguration durch Eingabe von "iptables -L -n" auf der Shell zu sehen. Sie können auch sehen, welche Ports auf dem Computer geöffnet sind, indem Sie "nmap" von einem anderen Linux-Computer ausführen. Dies macht das Leben so viel einfacher, da Sie sehr genau angeben können, welche Ports von welchen Adressen usw. aus zugänglich sein dürfen.

  2. Textprotokolldateien an einem Ort: Textbasierte Protokolldateien an einem Ort "/ var / log" sind einfach zu sichern und zu analysieren. Auch Tools wie logwatch, die diese Protokolldateien überwachen und Ihnen wichtige Zeilen per E-Mail senden können, machen die Sache sehr einfach. Wir können sogar unsere eigenen Tools schreiben, um die Protokolldateien zu analysieren und Informationen zu finden, die uns interessieren. Die Protokolle können sogar auf einen Remote-Syslog-Server exportiert werden, falls keine Protokolle auf demselben Server vorhanden sein sollen.

  3. Keine Angst vor Viren: Ob Viren in Linux weniger sind, weil es weniger Linux-basierte Systeme gibt, ODER weil alle Benutzer Linux lieben oder weil Linux sicherer ist. Der Grund spielt keine Rolle. Wenn Linux am Ende weniger Viren bedroht, ist das eine gute Sache für Linux. Ich habe persönlich gesehen, wie Leute zwei Antiviren-, Anti-Spyware- und Anti-Adware-Programme auf demselben Computer installiert haben. Alle diese Schutztools verbrauchen viel CPU und Speicher.

  4. Unterstützung für viele Programmiersprachen: Es ist sehr einfach, unter Linux zu programmieren. C, C ++, Python, Perl, Java usw. funktionieren einfach, ohne dass ein zusätzliches Paket installiert werden muss. (Dies gilt für den Fall, dass Sie eine große Distribution wie Fedora installieren, die auf DVD geliefert wird.) Dies erhöht die Sicherheit, da wir durch Codierung sich wiederholende Aufgaben ausführen können. Wenn Sie also einen Fehler machen und ein Problem vorliegt, ist dies bei allen Konten der Fall und lässt sich leicht erkennen und beheben. Wenn wir die gleichen Änderungen an einer großen Anzahl von Konten / Verzeichnissen von Hand vornehmen müssen, machen wir möglicherweise einen oder zwei Fehler, und es kann lange dauern, bis solche Fehler gefunden werden. Außerdem können wir die Fehler korrigieren und mithilfe von Code nach einfachen Fehlern suchen. Da alle Konfigurationsdateien, Benutzerinformationsdateien, Protokolldateien usw. in Textform vorliegen, ist es sehr einfach, alles zu codieren, was wir erreichen möchten, und es gibt viele Möglichkeiten, die gleichen Aufgaben zu erledigen.

  5. Open Source Code: Da wahrscheinlich viele Leute den Code gesehen haben, ist es sehr selten, dass Spyware / Adware Teil der Anwendungen ist, die mit Linux geliefert werden. Sie können auch den Quellcode anzeigen, wenn die Sicherheit für einen Dienst sehr wichtig ist, und sehen, wie er funktioniert. Wenn Sie genau wissen, wie es funktioniert, dann kennen Sie die Grenzen und wann es brechen wird. In der Tat, wenn es bekannte Sicherheitsbeschränkungen gibt, die in Manpages, auf der Paket-Website und in Kommentaren in Konfigurationsdateien dokumentiert wären. Die Entwickler haben nichts zu verlieren, wenn Sie unser Tool in einem solchen Szenario verwenden, ist es riskant. Für Unternehmen, die Software verkaufen, ist es möglicherweise nicht lukrativ, Einschränkungen für Software anzugeben, und dies würde dazu führen, dass ihre Software schlecht aussieht und möglicherweise den Verkauf / Gewinn verringert.

  6. Kostenlos und Interoperabilität: Obwohl dies nicht mit Sicherheit zu tun hat. Für Universitäten, an denen Kosten eine Rolle spielen, sind Linux-basierte Systeme viel wirtschaftlicher als Windows-basierte Systeme und es ist nicht erforderlich, Lizenzen für das Betriebssystem sowie zusätzliche Software zu erwerben, die wir nach der Installation des Betriebssystems installieren würden. Im Hinblick auf die Interoperabilität können wir eine Verbindung von Linux-Computern zu anderen Betriebssystemen herstellen und Dateien problemlos gemeinsam nutzen. Unter Linux können wir viele Dateisysteme mounten, einschließlich FAT, NTFS, HFSPLUS. Wir können Dinge mit ftp, http, ssh, samba, nfs usw. teilen und all diese Dinge werden installiert oder können mit einem einzigen Befehl installiert werden. Andere Betriebssysteme bieten im Allgemeinen nur eine Option zum Teilen von Dingen.

Aber wenn Linux-basierte Systeme nicht richtig konfiguriert sind, kann dies mehr Probleme verursachen, als man sich vorstellen kann. Viele Benutzer können sich gleichzeitig in die Maschine einloggen und fast alles nur von der Shell aus erledigen. Es ist sehr einfach, Hintertüren zu verlassen, Trojaner, falls die Firewall nicht richtig konfiguriert ist. Der Angreifer kann die Protokolldatei löschen oder daran manipulieren, um seine Spuren zu verbergen. Angreifer können Code auf dem angegriffenen Computer erstellen, da alle Editoren, Compiler und Debugger sofort verfügbar sind, sobald der Angreifer über Shell-Zugriff verfügt. Alle FTP- und HTTP-Server können von einem Benutzerkonto aus ausgeführt werden, jedoch nicht an sicheren Ports (1-1024). Der Angreifer kann also HTTP-Server-Code herunterladen, kompilieren und HTTP-Server auf Port 6000 ausführen, damit er wie X-Server aussieht.

Daher sind Linux-Systeme sicherer, vorausgesetzt, der Administrator weiß, was er tut, oder er versucht zumindest, Informationen in Manpages und Dokumentationen nachzuschlagen, bevor er neue Änderungen vornimmt.

Saurabh Barjatiya
quelle
6

Serversicherheit ist mehr als nur das Betriebssystem. Ich würde sagen, ein größerer Faktor für die Serversicherheit ist die Person, die den Server betreibt, und wie vorsichtig sie beim Sperren von Dingen war.

Wenn es sich bei der Universität um einen Linux-Shop handelt, können Sie keinen Windows-Server verwenden, unabhängig davon, welche Daten Sie zur Sicherheit von Windows-Servern finden. Ich würde mit Mono (www.mono-project.com) untersuchen, ob Sie das .Net-Framework verwenden möchten.

Adam Brand
quelle
6

Transparenz

  • Führen ps auxfSie aus, und Sie wissen, welche Dienste unter welchem ​​Konto ausgeführt werden.
  • Führen netstat -lnpSie und Sie wissen, welche Programme welche TCP-Ports geöffnet haben.
  • Führen iptables -LSie und Sie wissen, welche Regeln Ihre Firewall hat.
  • Führen Sie straceoder aus lsof, um die Prozessaktivität zu überprüfen.
  • Führen Sie ls -lahoder aus, tree -pugund Sie wissen genau, über welche Eigentumsrechte und Berechtigungen ein vollständiger Ordner verfügt.
  • Protokolle sind angemeldet /var/logund können mit einer einfachen "Suche in Dateien" eingesehen werden.
  • Keine versteckten Einstellungen. Alles ist menschlich lesbar /etc. Das Durchsuchen oder Archivieren von Textdateien oder das Anwenden der Versionskontrolle (Subversion / Git) ist wirklich einfach.

Berechtigungssystem löschen

  • In der Basis gibt es nur Dateiberechtigungen. Keine "Berechtigungen für Regex-Schlüssel", geerbten ACL-Berechtigungen, Sicherheitskontexte pro Prozess oder andere versteckte Funktionen.
  • Berechtigungsbits sind einfach:
    • In Dateien schreiben = Dateiinhalt bearbeiten
    • In Ordner schreiben = Dateiknoten erstellen / umbenennen / entfernen.
    • Sticky = nur eigene Dateien bearbeiten.
    • Dateien mit Ausführungs- oder Setuid-Berechtigungen werden hervorgehoben (im lsFarbmodus).
  • Ein einfaches "Alle Dateien suchen" zeigt, welche Berechtigungen ein Benutzer hat.
  • Darüber hinaus können ACLs nur dort verwendet werden, wo dies erforderlich ist.
  • Benutzerkonten haben standardmäßig nur zwei Orte zum Schreiben von Dateien: ihre $HOMEund /tmp.

Erweiterte Sicherheitsoptionen

  • SELinux / AppArmor kann Prozesse einschränken, um nur auf einen bestimmten Satz von Dateien zuzugreifen (zusätzlich zu den Dateiberechtigungen).
  • Ein Chroot-Gefängnis ermöglicht es Administratoren, Programme vollständig isoliert von den anderen auszuführen. Als ob es auf einer leeren Festplatte installiert wäre, mit nur den Dateien, die es wirklich braucht.
  • Mit sudokönnen Benutzer und Prozesse die Berechtigung erhalten, nur wenige Verwaltungsbefehle auszuführen.

Einzelne Punkte für die Zugangsberechtigung und die Berechtigungserhöhung

  • Ein Prozess kann nicht alleine mehr Privilegien erlangen. Die einzige Möglichkeit besteht darin, ein anderes "SetUID Root" -Programm auszuführen, z. B. sudoeinen DBus-Dienst zu kontaktieren, der PolicyKit zuerst überprüft. Diese SetUID-Programme können mit einem einzigen Befehl "Alle Dateien durchsuchen" gefunden werden.
  • IPC zwischen Prozessen ist ziemlich eingeschränkt, wodurch Angriffsvektoren reduziert werden.
  • Der Zugriff auf das System (Textkonsole, Remotedesktop, RPC, Aufruf zum Entfernen von Befehlen usw.) erfolgt über ssh. Dies ist ein SSL-Tunnel mit Prüfung des öffentlichen / privaten Schlüssels.

Sichere Hintergrundprozesse

  • Hintergrunddienste werden so schnell wie möglich mit niedrigeren Berechtigungen ausgeführt. Dienste wie Apache, Dovecot und Postfix übergeben die eingehende Verbindung so schnell wie möglich an einen Prozess mit geringen Rechten.
  • Standardmäßig gesperrt. Microsoft hat diesen Ansatz jetzt auch in Windows Server 2008 übernommen.

Gute Auditing-Tools

  • Tools wie nmap, ncatSicherheitsüberprüfungen leicht machen.
  • Hintergrunddienste können über die Befehlszeile überwacht werden.
  • Protokollüberwachungstools sind weit verbreitet.
  • Das Codieren eines sicheren Dienstes ist einfacher, da dies modular erfolgen kann.
  • Es gibt viele kostenlose Intrusion Detection-Tools.
  • Die Befehlszeilentools sind skriptfähig, sodass Administratoren Aufgaben automatisieren können.

Gute Sicherheitsupdates

  • Jeder Teil des Betriebssystems erhält Sicherheitsupdates. Wenn Apache, Python oder PHP über den Paketmanager installiert werden, erhalten sie auch Updates.
  • Es ist sehr offen, was ein Sicherheitsupdate behebt, sodass Sie herausfinden können, wie sich dies auf Sie auswirkt.
  • Softwarepakete teilen sich alle die gleichen Bibliotheken. Sie versenden keine separaten Kopien und lassen ausnutzbare Versionen übrig.
  • Kein Patch dienstags und wartet auf ein Update, wenn Hacker den Bug bereits in der Wildnis ausnutzen.
  • Entwickler können Sicherheitsupdates problemlos testen und bereitstellen.
  • Es muss kein Neustart geplant werden, um ein Update durchzuführen. Dateien können ersetzt werden, während die vorhandenen Prozesse weiterhin auf die alten Daten auf der Festplatte zugreifen. Anschließend können Sie herausfinden, welche Dienste neu gestartet werden müssen ( lsof | grep =).
  • Das gesamte Betriebssystem kann ohne Neuinstallation aktualisiert werden!

Alles, was hier erwähnt wird, wird geliefert oder jede gängige Linux-Distribution, z. B. Red Hat, Debian, openSUSE oder Ubuntu.

vdboor
quelle
5

Linux wurde von Anfang an als Mehrbenutzersystem konzipiert, daher verfügt es über ein viel stärkeres Berechtigungssystem als Windows. Es wurde auch dafür entwickelt, dass Sie nicht mit Administratorrechten ausgeführt werden (Root-Zugriff), sodass alle Programme so konzipiert sind, dass sie diese Rechte nicht benötigen. Das heißt, wenn Ihr Konto kompromittiert wird, ist dies nicht das gesamte System.

Ein Teil davon ist wahrscheinlich auch darauf zurückzuführen, dass Linux-Benutzer (im Allgemeinen) technischer sind und daher weniger wahrscheinlich dumme Fehler machen, die dazu führen, dass Computer gehackt werden.

Dentrasi
quelle
2
Einige Unterschiede zwischen Mehrbenutzer- und Einzelbenutzer-Betriebssystemen: jdurrett.ba.ttu.edu/courseware/opsys/os01a.htm
moshen
7
OK, ich benutze Linux seit über 12 Jahren und UNIX-ähnliche Betriebssysteme noch länger. So sehr ich Linux mag, kann man nicht sagen, dass es ein stärkeres Berechtigungssystem als Windows hat. Es hat ein besseres Sicherheitsmodell als frühere Windows-Versionen (dh, Sie müssen nicht immer Administrator sein), aber WinNT und höher verfügen über ein starkes Berechtigungssystem, das einfach nicht effektiv eingesetzt wurde. Neuere Linux-Versionen haben Selinux, was sogar noch stärker ist, aber dies ist eine relativ neue (wenn auch sehr mächtige) Erweiterung.
Eddie
5

"Sicherheit ist Kontrolle"

Aus meiner Sicht haben Sie unter Windows weniger Kontrolle als unter Linux. Das Härten von Windows ist ... schwieriger :). Obwohl jedes Werkzeug von den Fähigkeiten des Anwenders abhängt, würde ich Folgendes in Betracht ziehen:

  • Windows weist mehr Sicherheitslücken mit hohem Risiko und eine stärkere automatische Ausnutzung (Viren, Botnets) auf.
  • Windows-Administratoren sind (oder sollten) paranoid (aus Angst vor Eingriffen) und haben eine Art Verhärtung vorgenommen
  • Linux-Systemadministratoren vertrauen manchmal zu sehr auf die Sicherheit des Betriebssystems und vergessen das Härten
  • Einmal gehackt, können Sie in einem Linux-System mehr als in einem Windows-System tun, da es leistungsfähigere Befehlstools gibt

Obwohl ich Linux gegenüber Windows bevorzuge, denke ich, dass Sie Standardinstallationen nicht vertrauen sollten.

chmeee
quelle
3

Die meisten vorherigen Beiträge haben sich auf das Eindringen konzentriert, und es wurde gute Arbeit geleistet, um diesen Punkt abzudecken. Einer der Punkte Ihrer Frage betraf Viren. Der Hauptgrund, warum Linux-Distributionen weniger Probleme mit Viren haben, ist, dass es mehr Windows-Boxen gibt, als Linux und Mac zusammen. Virenschreiber wollen das Beste für ihr Geld bekommen, deshalb schreiben sie für Windows.

Alle Systeme können eingreifen und infiziert werden. Jeder, der Ihnen etwas anderes sagt, seien es Ihre Lehrer oder andere, entweder sind Dummköpfe, die in Utah direkt am Meer Grundstücke besitzen, um Sie zu verkaufen.

WolfmanDragon
quelle
3

Nach Sicherheitsupdates bei ALLER Software in diesen Tagen zu urteilen, liegt das Problem nicht an der Software, sondern an der Anzahl der Desktops, auf denen Windows ausgeführt wird. Dies ist das Ziel, Botnets zu erstellen. Wenn Linux jemals wirklich auf dem Desktop wächst, wird es auch mehr angegriffen. Ich denke, dass Mac OSX dies bereits sieht.

James Risto
quelle
2

Es gibt einen sehr wichtigen Grund, warum Linux und OpenBSD das Potenzial haben, sicherer zu sein als Windows. Das ist die Fähigkeit des Betriebssystems, sich selbst vor Netzwerkangriffen zu schützen.

Unter Windows wurden eingehende Netzwerkpakete wesentlichen Teilen des Betriebssystems ausgesetzt, lange bevor eine Windows-Firewall das Paket ablehnen kann. Unter Linux, mit IPTables oder unter OpenBSD mit PF können Sie unerwünschte Pakete viel früher isolieren, wenn das Betriebssystem ein neues Netzwerkpaket empfängt.

Wenn Sie jedoch einen Port öffnen und einen Dienst darauf ausführen, dh einen vernetzten Computer nützlich machen, sind Sie nur so sicher wie der Code, der diesen Dienst ausführt.

Michael Shaw
quelle
2

Es gibt kein Betriebssystem, das sicherer ist als ein anderes. Alles hängt vom Wissen der Personen ab, die das System verwalten.

Ich habe im Laufe der Jahre einige äußerst talentierte * nix-Administratoren getroffen und mit ihnen zusammengearbeitet, die einen äußerst sicheren * nix-Server konfigurieren konnten. Stecken Sie sie jedoch vor einen Windows-Host, und sie wissen nicht, wie sie den Computer sperren sollen. Das gleiche gilt auch für den umgekehrten Fall. Ich kenne mich mit der Sicherung eines Windows-Hosts gut aus, stelle mich aber vor eine * nix-Box und hätte keine Ahnung, was ich tat.

Kein Betriebssystem ist mehr oder weniger sicher als das andere. Sicher, wir könnten über die Geschichte der Plattformen sprechen und damit darüber diskutieren, welches mit der Zeit sicherer war, aber wir sprechen nicht über * nix-Betriebssysteme vor 10 Jahren und die Bereitstellung von Windows NT 4 in Produktionsumgebungen . Wir sprechen über moderne Betriebssysteme (oder sollten es zumindest sein) und welche können besser gesichert werden.

Ich sah jemanden in einer Antwort etwas darüber sagen, dass Pakete, die an die Windows-Firewall gesendet wurden, mehr Teile des Betriebssystems als die Linux-Firewall berührten. Durch eine Frage an ihn wird, wer zum Teufel einer Software-Firewall vertraut, die auf dem Host läuft? Dafür sind Endpunkt- / Frontend-Firewalls gedacht. Zum Schutz des Netzwerks. Auf dem Host, auf dem ein Dienst ausgeführt wird, ist ein Dienst verfügbar. Es ist die Aufgabe des Hosts, sicherzustellen, dass der Service nicht beeinträchtigt wird. Es ist die Aufgabe der Netzwerkgeräte, zu verhindern, dass andere Pakete vom Internet zu den anderen Diensten des Hosts gelangen.

Sobald das Netzwerk ordnungsgemäß gesichert ist, hängt alles davon ab, wie gut die auf dem Host ausgeführte Anwendung gesichert ist. Verfügt diese Anwendung über Pufferüberläufe, die ausgenutzt werden können? Gibt es innerhalb der exponierten Anwendung irgendwelche Möglichkeiten, zum Betriebssystem zu gelangen und auf irgendeine Weise eine höhere Berechtigungsstufe zu erhalten? Wenn nicht, dann ist es eine gut gesicherte Anwendung. Wenn ja, dann haben Sie ein Problem, das aufgedeckt werden muss.

Wenn jemand kein anderes Betriebssystem in seinem Rechenzentrum in Betracht zieht, ist dies ein Zeichen der Unkenntnis (gilt sowohl für einen All-Linux-Shop als auch für einen All-Windows-Shop). Beide Betriebssysteme haben dort Verwendung und sollten als solche verwendet werden. Keiner ist besser oder schlechter als der andere. (Und ja, wir haben ein paar Linux-Maschinen in unserer Umgebung, die Produktionsservices verwalten.)

mrdenny
quelle
1
Meiner Meinung nach hängt alles vom Wissen der Administratoren ab. Wenn Sie aufgefordert werden, eine Festung vor Angriffen gegen ein Zelt zu schützen, haben Sie mit einer Festung einen gewissen Vorteil. Wenn die beiden hier verglichen werden, Linux und Windows, dann wurden sie mit zwei unterschiedlichen Philosophien für den Umgang mit mehreren Benutzern und den gleichzeitigen Zugriff auf das System entworfen. Gute Administratoren können zwar bei der Behebung von Mängeln behilflich sein, es gibt jedoch als Ausgangspunkt immer noch Vorteile.
Bart Silverstrim
1

Es ist nicht nötig, Ihre Universität für die Verwendung von Linux-Servern zu verfluchen. Verwenden Sie für Ihre spezifischen Anforderungen, wie AdamB sagte, Mono (www.mono-project.com). Normalerweise bevorzugen Professoren, die sich für OS interessieren, Linux, und selbst OS-Enthusiasten würden Linux bevorzugen, weil sie wissen, wie es in der Praxis mit Büchern funktioniert.

  • Nun in Bezug auf die Sicherheit,

Linux folgt jetzt DAC (Discretionary Access Control), einem intelligenteren System für die Zugriffskontrolle. Wie bereits in anderen Antworten erwähnt, war Linux schon vor langer Zeit ein Mehrbenutzer-Betriebssystem, und daher wurde das Zugriffskontrollsystem besser als andere.

Die Sicherheit, auf die Sie sich beziehen, ähnelt jedoch der Serversicherheit, bei der es weniger um das Betriebssystem als um das gesamte Servernetzwerk geht. Wobei ich Firewalls Access Control Lists, Router usw. meine ... Updates sind kostenlos, lebenslang. Es ist offen und daher viel getestet, was sehr wichtig ist.

Abgesehen von der Sicherheit ist Linux aufgrund seiner Wirtschaftlichkeit die beste Option für Server, auf denen nur sehr wenige Server ausgeführt werden. Es wird jedoch davon ausgegangen, dass Anwendungen Dienste ausführen oder hosten. Und diese Anwendungen sind sehr gut auf sie portiert. ZB - Apache.

Ich denke, es war nicht nur die Sicherheit, sondern auch andere Faktoren, die Sie dazu veranlassen, sich für Linux auf Servern zu entscheiden.

Vivek Sharma
quelle
1

Obwohl es hier viele gute Antworten gibt, möchte ich nur hinzufügen, dass es kein sicheres Betriebssystem gibt.

Es ist bekannt, dass ein Mensch mit der Zeit Löcher in dieser Plattform finden kann, wenn er eine „sichere“ Plattform erstellt.

Ich bin damit einverstanden, dass Evans erste beiden Sätze die Sicherheit des Betriebssystems am besten zusammenfassen:

Ich denke nicht, dass ein Betriebssystem "sicher" ist. Eine bestimmte Konfiguration eines Betriebssystems ist besonders widerstandsfähig gegen Angriffe.

Es spielt also keine Rolle, ob wir GNU / Linux, die BSD-Systeme (Free / Open / Net), Microsoft, Windows, Mac OS X, Symbian, PalmOS, Cisco IOS, AIX, QNX, Solaris, z / OS oder eines der folgenden Systeme vergleichen andere "Betriebssysteme", die Dinge wie Fernseher, MP3-Player, Mikrowelle usw. ausführen.

Jeder von ihnen hat einen Teil des Ganzen, der von einem entschlossenen Individuum ausgenutzt werden kann.

Aus diesem Grund haben die meisten Anbieter Whitepapers zur Einrichtung ihrer Systeme, um eine möglichst sichere Konfiguration zu gewährleisten. Dies bedeutet die Verwendung anderer Technologien zur Minimierung der Oberfläche.

z.B:

  • NAT
  • Reverse Proxy
  • Firewalls
Wayne
quelle
1
Ich würde mein Geld trotzdem jeden Tag auf OpenBSD setzen, um "am wenigsten anfällig für Fernangriffe zu sein".
Kyle Hodgson
Ich werde mein Geld auch nicht gegen dein Geld einsetzen! Es sei denn, wir sprechen über DOS <= 4 (keine NDIS-Treiber vor 5.5, glaube ich?)
Wayne
1

Die Tatsache der Betriebssystemsicherheit in Bezug auf Frameworks ist etwas mehr als nur ein Kernel-Typ-Problem. Jedes der Frameworks verfügt einzeln über konforme Sicherheitsmechanismen. Die Mehrbenutzerkontospezifikation in Microsoft Windows bietet zwar etwas mehr Flexibilität in Bezug auf die Massenbereitstellung, unter Linux haben Sie jedoch die Möglichkeit, die einzelnen Berechtigungen und die Delegierung selbst zu steuern.

Die .NET Framework-Sicherheitsstufe hat hauptsächlich mit Ihren Gruppenrichtlinien-, Powershell- und Netsh-Konsoleneinstellungen zu tun. Der Grund dafür ist die Kernel-Telemetrie bei niedrigen Zugriffsparametern mit dynamischen Zugriffsanforderungen im Speicher. Linux-Frameworks erfordern häufig ein ähnliches Maß an Aufmerksamkeit, dies hängt jedoch hauptsächlich mit den Flags zusammen, die Sie beim Konfigurieren der Sprache angeben. Wenn Linux richtig konfiguriert ist, ist es nachweislich sicherer als die von Microsoft Windows konfigurierte Sicherheit. Obwohl auf einer "anständigen" Ebene der Konfiguration; Tools können direkt durch Ihren IIS gleiten und mithilfe einer bestimmten GUID direkt in Ihre Dienste eintauchen. Insgesamt ermöglicht Linux mehr Aspektkontrolle als

Hauptpunkte:

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. 

Regierungsstatur:

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.

Persönliche Meinungen:

Jedes Betriebssystem hat das Potenzial, sicherer zu sein als der Rest der Box. Im Vergleich von Frameworks, die unter Linux oder Windows mit einer höheren Sicherheit arbeiten, würde ich sagen, dass der Hauptteil der Websicherheit in der Verwendung des inkompatibelsten, aber effizientesten Frameworks liegt. Auf diese Weise wird es viel schwieriger, sich an die Zugriffsberechtigungen für die native Festplatte und die Bibliothekshandles zu halten. Auf diese Weise haben Sie eine geschweißte Schüssel auf Ihrem Betriebssystem. Wie Evan gesagt hatte mit NTFS und / proc oder / dev Berechtigungen. Wenn Sie etwas verwenden, mit dem Sie nicht sprechen können; es ist schwerer zu knacken.

Was ich aus der Webentwicklung gelernt habe, ist, unterschätzen Sie niemals Ihr Framework. .NET verfügt über Berechtigungen zum Erstellen von gemeinsam genutzten bereitgestellten Volumes und Steuerungsmechanismen für SQL Server-Cluster. Apache Source kann dasselbe mit Betriebssystemen unter Linux tun. Es ist eine ziemlich anständige Frage, obwohl ich sagen müsste, dass Linux mehr Sicherheit bei der Kontrolle einzelner Aspekte und bei mehrsprachigen Einschränkungen und Überwachungen bietet. Windows verfügt über die umfassende Funktion zum Überwachen und Protokollieren mit einer logischen Debug-Oberfläche auf hoher Ebene. Beide sind vergleichbar, es wird schlussendlich "wie gut - sperren Sie es ein" und "wie viele Schnickschnack gibt es?" im Rahmen von. Apache bietet zusätzliche Sicherheitsfunktionen.

Gegenwärtig ist es für PHP unter Linux oder Windows ziemlich offensichtlich, dass es weitere Erweiterungen gibt, die Sie in einem Linux-Betriebssystem verwenden können. Windows hat eine andere Berechtigungsverwaltungsebene als PHP, was die Verwaltung von Verzeichnissen und den Dateizugriff erschwert. In Apache, zum Beispiel XAMPP, LAMPP oder WAMP, ist Windows meiner Meinung nach etwas weniger sicher, wenn man bedenkt, dass die Einschränkungen der Firewall leichter verletzt werden können, da dieselben Tunnelregeln gelten wie für Ihren Webbrowser. Auf der anderen Seite kann Linux App-Pools und weitere Sicherheitsmechanismen auf Paketebene verwenden, deren Emulation viel komplizierter ist. Windows würde erfordern, dass Sie alle Aspekte des Betriebssystems verwenden, um das Netzwerk sicherer zu machen.

IIS (auf einem Microsoft-Server, nicht Windows-Client) unter Windows mit ASP.NET mit den neuesten SEC_ATL-Mischungen kann ebenfalls sehr sicher sein.

Nur Apache, möglicherweise möchten Sie es mit Linux ausführen, um die höheren und niedrigeren Treiber-, SMIME-, Codec- und Paket-Sicherheitsstufen zu aktivieren. Während Windows erfordert, dass Sie überlagernde Sicherheitsmechanismen installieren, die den Datenverkehr ansonsten ein wenig stärker beeinträchtigen, als Sie es vielleicht für den Betrieb von Tausenden von Servern möchten.

Je schlanker der Kernel unter Linux ist und je optimaler die Netzsicherheit ist, desto besser (wie das Zusammenführen von Apache mit NSLUG).

Unter Windows bevorzugen Sie die Programmierung von Powershell-Modulen und die zusätzliche Überlagerungssicherheit für Ihr ASP.NET-Framework sowie die Konfiguration Ihrer Gruppenrichtlinie für USGS, da diese meistens wirklich benötigt wird, um den Datenverkehr auszuschließen, den Linux automatisch ablehnt und nicht denkt Über.

Ebenso können sie stark sein. Standardmäßig ist eine Live-Distribution von Linux stärker als ein nicht konfigurierter Microsoft Windows Server, der nur mit dem Assistenten eingerichtet wurde.

Im Laufe der Zeit wird Linux Windows im Sicherheitsspiel überholen. Debian 3-Server sind heute noch stärker als Microsoft Server 2008 R2 und können dieselben Technologien unterstützen, ohne dass der Kernel neu erstellt werden muss. Debian kann es immer noch rauchen, und das habe ich mit eigenen Augen gesehen.

Aber wie gesagt, da bin ich mir sicher. Es kommt auf das Personal an, mit dem Sie arbeiten, und auf Ihre Liebe zum Detail. Das macht immer den größten Unterschied, wenn es darum geht, in einem großen Servernetzwerk zu arbeiten.

VLi
quelle
0

Ich bin der Meinung, dass Linux aufgrund des allgegenwärtigen Einsatzes von Open-Source-Software eine sicherere Wahl ist.

Die At-Eseness kommt von der Idee, dass "die Community" bemerken wird, wenn irgendwo etwas Fischiges hinzugefügt wird (sagen wir, wenn openSSH plötzlich anfängt, mit Passwörtern nach Hause zu telefonieren), dass es nicht lange anhält.

Aber ich kann nicht genug wiederholen, was andere bereits gesagt haben: Die Sicherheit hängt weitgehend von der Konfiguration ab: Wen kümmert es, wenn openSSH nicht nach Hause telefoniert, wenn Sie keine Firewall, ein Null-Root-Passwort und PermitRootLogin in sshd aktiviert haben;)

msanford
quelle
0

Kurze Antwort: Ursprünglich war UNIX auf Sicherheit ausgelegt. Windows wurde so konzipiert, dass es einfach ist. Nun geben Nachkommen von UNIX vor, für ihre Benutzer einfacher zu sein. Windows gibt vor, sicherer zu sein.

Sie haben sich noch nicht getroffen

dmityugov
quelle
2
Bah! Windows NT war in seinem ursprünglichen Entwurf mehr auf Sicherheit bedacht als Unix. Unix hatte die Sicherheit später als ein nachträglicher Gedanke angeschraubt. Moderne Unix-ähnliche Betriebssysteme (wie Linux, das eigentlich kein "Unix" -Betriebssystem ist, da es sich um eine völlig neue Codebasis handelt) haben sich gegenüber dem ursprünglichen Unix erheblich verbessert, Windows NT wurde jedoch von Anfang an so entwickelt Erfüllen Sie die US DoD "Orange Book" -Sicherheitsanforderungen.
Evan Anderson
0

In früheren Windows-Versionen wurden Anwendungen im selben Adressraum ausgeführt, sodass Zeiger untereinander ausgetauscht werden konnten. Sie verließen sich auch auf kooperatives Multitasking und arbeiteten manchmal nicht zusammen.

Selbst sehr frühe Versionen von Linux / Unix hatten eine Partitionierung zwischen Anwendungen und zwischen Betriebssystem und Anwendungsebene. Das Aufteilen von Aufgaben war zwar nicht immer ideal, aber zumindest fair.

Dies ist das Erbe von Unix (oder Linux) für robustere Systeme, die eine höhere Verfügbarkeit erfordern.

Gilt das alles heute noch? Das ist eine andere Frage.

kmarsh
quelle
Natürlich nicht. Viele der negativen Meldungen, die Windows von der Linux-Community erhält, richten sich direkt gegen frühere Versionen und berücksichtigen nicht die Tatsache, dass sich die Dinge weiterentwickelt haben. Die letzte Windows-Version, die coop m / t verwendete, war 3.1, und die letzte Windows-Version, bei der DOS das Herz schlug, war ME.
Maximus Minimus
0

Jetzt, da NT Unix an vielen der zuvor unzulänglichen Stellen eingeholt hat, sind Dateiberechtigungen und Speicherschutz keine großen Unterscheidungsmerkmale mehr.

Aber ... a. In Unix-Systemen erfolgt der Zugriff auf alle Geräte über Dateien, für die die Sicherheit einfach verwaltet werden kann. Wissen Sie beispielsweise, wie Sie verhindern können, dass Benutzer X auf die Soundkarte in Windows zugreift, während Benutzer Y weiterhin zugelassen wird? Unter Unix ist das ganz einfach.

b. Die Verzeichnisstruktur ist viel vernünftiger. (Beispielsweise muss eine Benutzeranwendung nur Schreibzugriff auf Ihren Basisordner usw. haben.) Dies hat sich jedoch in den letzten Jahren auch in Windows verbessert.

d. Dies ist eine große Herausforderung: SELinux (und die Sandbox-Funktion "Seatbelt" von Trusted Solaris und Mac OS). Dies wird als NDAC (Non-Discretionary Access Control) bezeichnet. Wenn Sie eine Betriebssystemdistribution mit diesen Funktionen ausführen, werden im Wesentlichen zwei Sicherheitsebenen gleichzeitig ausgeführt: der normale DAC (Berechtigungssystem), den Unix immer hatte, und moderne Versionen von Windows - und darüber hinaus die "Application Firewall", die SELinux und ähnliche Systeme auferlegen. Beispielsweise können Sie eine Richtlinie festlegen, die besagt, dass der Apache-Webserver in / tmp schreiben und aus / var / www und / etc / apache lesen darf. Alle anderen Datenträgerzugriffe werden verweigert unabhängigvon Berechtigungen. Ebenso können Sie festlegen, dass eingehende Verbindungen nur auf Port 80 akzeptiert und keine ausgehenden Verbindungen hergestellt werden. Dann, selbst wenn es einen Fehler gibt, der es jemandem erlaubt, etwas sehr Schlimmes zu tun, und selbst wenn Apache als Root ausgeführt wird, wäre es egal - die Richtlinie würde es verhindern. Dies erfordert eine (sehr geringfügige) Geschwindigkeitsstrafe und kann bei Verwendung einer ungewöhnlichen Konfiguration schmerzhaft sein, kann jedoch im Normalfall die Sicherheitsstufe gegenüber Unix und Windows im Vergleich zu früheren Versionen erheblich erhöhen.

e. Ebenen - Unix-Systeme bestehen aus viel mehr diskreten Ebenen und Diensten, die ausgetauscht werden können. Dies bedeutet, dass sie einzeln auf Richtigkeit und Sicherheit analysiert, ausgetauscht usw. werden können. In fast allen Fällen ist kein Neustart erforderlich. Dies ist ein großes Plus bei Servertypsystemen. Außerdem ist es einfacher, Dinge zu deaktivieren (und zu deinstallieren), die Sie auf einem Unix-System nicht benötigen. Warum zum Beispiel eine grafische Benutzeroberfläche auf einem Webserver ausführen? Es vergrößert die Angriffsfläche und beansprucht RAM.

f. Für diejenigen, die sagten, dass Windows NT von Grund auf für die Sicherheit entwickelt wurde ... das ist wahr, der Kernel wurde von Anfang an mit erweiterten Sicherheits- und Mehrbenutzerfunktionen entwickelt, aber es gibt zwei Hauptprobleme: 1. Die schlechte Erfolgsbilanz von Microsoft bei der Sicherheit , und 2. Das Betriebssystem als Ganzes wurde so konzipiert, dass es mit älteren Windows-Anwendungen kompatibel ist, was viele Kompromisse bedeutete. Unix war schon immer mehrbenutzerfähig, daher sind Anwendungen bei der Durchsetzung der Sicherheit nicht überraschend - was weniger Kompromisse bedeutet.

Noah
quelle
Der Sicherheitszugriff auf "Gerätedateien" in Windows NT erfolgt über ACLs, die im Executive Object Manager angewendet werden. Es hat ungefähr dasselbe ACL-Modell wie das Dateisystem. Betreff: Ihr Punkt "a": Mit einem Logo versehene Anwendungen, die den Microsoft-Entwicklungsrichtlinien entsprechen, benötigen auch außerhalb des Benutzerverzeichnisses keinen Schreibzugriff. re: "b": Ich stimme zu, dass Windows nur eingeschränkte MAC-Funktionen bietet. Integritätsstufen, die in Vista hinzugefügt wurden, sind eine Form von MAC. Die "erweiterte Firewall" (ebenfalls in Vista hinzugefügt) kann den ausgehenden Datenverkehr auf die von Ihnen beschriebene Weise begrenzen, wenn Sie diese so konfigurieren.
Evan Anderson
re: "e": Ich stimme im Prinzip zu, dass weniger Software weniger Ausfallwahrscheinlichkeit bedeutet. Es gibt interne Builds von Windows ohne GUI, aber Microsoft hat beschlossen, diese nicht freizugeben. re: "f": Entwickler von Drittanbietern waren eher ein Problem, wenn es darum ging, vernünftige Standardsicherheitsrichtlinien in Windows als in Microsoft festzulegen. Persönlich denke ich, dass Microsoft in Bezug auf schlecht verhaltene Anwendungen strenger sein sollte, aber sie leben in einem anderen "Raum" als die Entwickler von kostenlosen und Open Source-Betriebssystemen, wenn es darum geht, sicherzustellen, dass die Anwendungen ihrer Kunden ausgeführt werden.
Evan Anderson
Betreff: "Das Betriebssystem als Ganzes ... auf Kompatibilität ausgelegt ..." Win32 ist ein Kernel-Subsystem - es ist kein NT. Wenn Microsoft jemanden zulassen wollte, könnten Sie eine "Distribution" von Windows NT erstellen, die kein Win32-Subsystem, keine GUI und beispielsweise das POSIX-Kernel-Subsystem "Interix" enthält. Praktisch die gesamte Benutzeroberfläche eines NT-Betriebssystems basiert auf Win32, der Kernel unterstützt jedoch problemlos eine Nicht-Win32-Umgebung.
Evan Anderson
0

Es gibt mehrere Gründe, warum Linux-basierte Systeme häufig als sicherer gelten als Windows-Systeme.

Eines ist die Fähigkeit des Eigentümers. Wenn Sie sich für Best Buy oder Wal-Mart (hier in den USA) entscheiden und einen Computer kaufen, ohne viel darüber nachzudenken, wird Microsoft Windows ausgeführt. Das heißt, es gibt eine große Anzahl von Windows-Systemen, die von Menschen ohne Ahnung ausgeführt werden. Da fast niemand versehentlich einen Linux-Computer kauft (zumindest seit Microsoft gegen die Netbooks vorgegangen ist), wissen die meisten Linux-Benutzer entweder etwas über Computer oder haben ihren Computer von jemandem einrichten lassen, der dies tut. Dies gilt für alle Umgebungen, in denen Sie Leute finden, die nicht wissen, was sie tun. diejenigen, die Windows nicht ausführen, und diejenigen, die verschiedene Betriebssysteme ausführen.

Eins ist die Anzahl der Angreifer. Microsoft Windows ist aufgrund all der schlecht verwalteten Computer ein viel attraktiveres Ziel. Es gibt viele hochwertige Linux-Ziele, aber sie sind im Allgemeinen gut verwaltet (zusammen mit vielen hochwertigen Windows-Zielen). In vernünftiger Näherung zielt niemand auf Linux-Computer im Allgemeinen ab.

Eines ist die Kultur. In jeder Unix / Linux-Umgebung gibt es eine klare Unterscheidung zwischen Root- und Benutzerkonten. In fast allen Fällen arbeiten Benutzer in ihren Benutzerkonten, wenn sie nicht als Root angemeldet sein müssen. Meiner Erfahrung nach ist der Unterschied in Windows-Umgebungen nicht so ausgeprägt, da normalerweise jeder Benutzer ein Konto mit den ihm zugeordneten Berechtigungen hat. Ich bin jetzt auf meinem Arbeitscomputer, wo ich ein Konto habe, ein Administratorkonto. Alles, was ich tue, erfolgt über ein Konto mit hohen Berechtigungen. Wenn ich zu meiner Linux-Box nach Hause gehe, mache ich fast alles in einem Konto mit eingeschränkten Rechten und eskaliere, wenn ich muss. Meine Frau musste sich schwer streiten, um zwei Konten auf ihrem Computer bei der Arbeit zu bekommen, eines mit normalem Administratorkonto und eines mit eingeschränkten Rechten, damit sie sehen konnte, ob reguläre Benutzer die Rechte haben, das auszuführen, was sie schreibt.

Eines ist die Abwärtskompatibilität. Während Unix nicht als sicheres Betriebssystem begann, bekam es schon früh Sicherheit. Programme für Linux müssen nicht als root ausgeführt werden, es sei denn, sie führen tatsächlich root-Funktionen aus. Auf der anderen Seite führt Windows eine große Anzahl von Programmen aus, für die Administratorkonten erforderlich sind, da diese von den Entwicklern ausgeführt und getestet wurden (siehe oben). Diese Entwickler waren normalerweise nicht sicherheitsbewusst und funktionierten früher einwandfrei. Das ist das große Problem, das Microsoft mit der Benutzerkontensteuerung lösen wollte. Ich denke nicht, dass es eine besonders gute Lösung ist, aber um ehrlich zu sein, wird Microsoft hier keine gute Lösung finden (ich denke nicht, dass es eine gute Lösung ist, die Abwärtskompatibilität zu verringern).

Diese führen dazu, dass die meisten großen Sicherheitsprobleme auf Microsoft-Systemen auftreten, unabhängig von den Vorteilen der Sicherheitsmodelle und der Annahme, dass Microsoft die großen Sicherheitsprobleme hat. Aufgrund der heuristischen Verfügbarkeit ist die Tatsache, dass Menschen an mehr Sicherheitsprobleme von Microsoft denken können, ein Fehlurteil.

Das sind meiner Meinung nach die triftigen Gründe. Ich habe die tatsächliche Sicherheit des Betriebssystems nicht angesprochen, da ich nicht weiß, dass Windows oder eine Linux-Distribution anfälliger sind als die andere, wenn sie von einem sachkundigen Administrator ausgeführt werden. Linux hat den Vorteil von Open Source, dass jeder Fehler finden und beheben kann, während Microsoft Sicherheitspraktiken eingeführt hat, die möglicherweise besser funktionieren oder nicht. (Wenn ich ein wirklich sicheres Betriebssystem ausführen möchte, würde ich OpenBSD wählen, ein Open-Source-Betriebssystem, das Sicherheit anstrebt.) Beide Betriebssysteme haben gute Berechtigungssysteme (meine Präferenz ist das Unix-Betriebssystem, aber andere vernünftige Leute sind anderer Meinung).

Es gibt natürlich schlechte Gründe, Betriebssysteme für weniger sicher zu halten. Einige Leute haben ein Lieblings-Betriebssystem und verpassen keine Gelegenheit, andere schlecht zu reden. Einige Leute mögen Microsoft oder Richard Stallman oder eine andere Person oder Organisation nicht und verunglimpfen die zugehörigen Betriebssysteme. Einige Leute haben nicht bemerkt, dass sich Microsoft im Laufe der Jahre verändert hat, da es nicht allzu lange her ist, dass Microsoft sich wirklich nicht um Sicherheit kümmert und Windows wirklich weniger sicher ist als Linux.

David Thornley
quelle
-1

Es gibt keinen anderen Grund als Trägheit. Ich habe viele Linux-Befürworter gesehen, die Argumente gegen Windows (und nicht nur auf der Sicherheitsseite) vorbrachten, die auf den ersten Blick als gültig erscheinen, die aber - wenn Sie ein wenig graben - nur für Windows 3.1 oder 95/98 gelten.

Ich habe es schon einmal gesagt, aber während Windows möglicherweise mehr Patches / etc hat, sind dies Fixes für Sicherheitslücken, die identifiziert wurden . Und es ist nicht die, die haben festgelegt , dass Sie zu befürchten haben, ist es? Ich glaube auch nicht, dass Open Source an sich sicherer ist. Das Rollern eigener Patches ist für einen Heimanwender in Ordnung, aber ein Unternehmensanwender oder Administrator möchte immer, dass das Real Thing, das zertifiziert ist, mit einer Vielzahl von Apps funktioniert (und vollständig getestet wurde) und nicht beschädigt wird das nächste Kernel-Update. Gleiches gilt für Fixes aus der FOSS Community.

In meinem Buch ist es also eine Mischung aus Trägheit, Vorurteilen und der Einbettung in die UNIX-Kultur unter Ausschluss von Alternativen.

Maximus Minimus
quelle
-2

Prozesse unter Linux / Unix können ihre Berechtigungen nicht ändern, nachdem sie einem Benutzer zugewiesen wurden. Prozesse unter Windows können ihre Benutzerberechtigungen und Benutzer während des Vorgangs ändern.

Aus diesem Grund ist Windows weniger sicher als Linux / Unix.

Feuerkrähe
quelle
2
Dies gilt nur, wenn der Kontext, in dem der Prozess ausgeführt wird, über die Berechtigung "Als Teil des Betriebssystems handeln" (SE_TCB PRIVILEGE) verfügt. Wenn Sie einen Prozess mit einem Sicherheitskontext starten, der nicht über SE_TCB PRIVILEGE verfügt, kann der Prozess nicht zufällig einen anderen Benutzer "verkörpern" (der NT-Ismus für die Annahme eines anderen Sicherheitskontexts). Wenn Sie eine Anwendung mit SE_TCB PRIVILEGE ohne triftigen Grund ausführen, erhalten Sie, was Sie verdienen, IMO.
Evan Anderson
Die Sicherheit wird also durch einen "Kontext" erzwungen, der einer systemweiten Regel unterliegt, weshalb Windows weniger sicher ist als Unix / Linux.
Fire Crow