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?
Antworten:
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.
quelle
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.
quelle
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.
quelle
Meiner Meinung nach sind Linux-basierte Systeme sicherer, wenn sie gut genug konfiguriert sind als Windows-Systeme. Einige der Gründe sind:
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.
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.
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.
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.
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.
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.
quelle
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.
quelle
Transparenz
ps auxf
Sie aus, und Sie wissen, welche Dienste unter welchem Konto ausgeführt werden.netstat -lnp
Sie und Sie wissen, welche Programme welche TCP-Ports geöffnet haben.iptables -L
Sie und Sie wissen, welche Regeln Ihre Firewall hat.strace
oder auslsof
, um die Prozessaktivität zu überprüfen.ls -lah
oder aus,tree -pug
und Sie wissen genau, über welche Eigentumsrechte und Berechtigungen ein vollständiger Ordner verfügt./var/log
und können mit einer einfachen "Suche in Dateien" eingesehen werden./etc
. Das Durchsuchen oder Archivieren von Textdateien oder das Anwenden der Versionskontrolle (Subversion / Git) ist wirklich einfach.Berechtigungssystem löschen
ls
Farbmodus).$HOME
und/tmp
.Erweiterte Sicherheitsoptionen
sudo
können Benutzer und Prozesse die Berechtigung erhalten, nur wenige Verwaltungsbefehle auszuführen.Einzelne Punkte für die Zugangsberechtigung und die Berechtigungserhöhung
sudo
einen DBus-Dienst zu kontaktieren, der PolicyKit zuerst überprüft. Diese SetUID-Programme können mit einem einzigen Befehl "Alle Dateien durchsuchen" gefunden werden.ssh
. Dies ist ein SSL-Tunnel mit Prüfung des öffentlichen / privaten Schlüssels.Sichere Hintergrundprozesse
Gute Auditing-Tools
nmap
,ncat
Sicherheitsüberprüfungen leicht machen.Gute Sicherheitsupdates
lsof | grep =
).Alles, was hier erwähnt wird, wird geliefert oder jede gängige Linux-Distribution, z. B. Red Hat, Debian, openSUSE oder Ubuntu.
quelle
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.
quelle
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:
Obwohl ich Linux gegenüber Windows bevorzuge, denke ich, dass Sie Standardinstallationen nicht vertrauen sollten.
quelle
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.
quelle
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.
quelle
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.
quelle
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.)
quelle
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.
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.
quelle
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:
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:
quelle
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:
Regierungsstatur:
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.
quelle
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;)
quelle
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
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle