GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux oder Windows – das Sicherheitsproblem

Ich werde einige der schlechten Ideen hier anklopfen:

1) Linux ist aufgrund des geringeren Marktanteils sicherer.

Nicht im Servermarkt, wo öffentliche Maschinen den ganzen Tag von Bots, Viren, Hackern usw. angegriffen werden:

http://en.wikipedia.org/wiki/Usage_share_of_operating_systems#Servers

2) Windows ist in neueren Versionen sicherer.

Zumindest auf Kernel-Ebene sehen Sie mehr CVE-Berichte über Exploits zur Remote-Ausführung und Rechteausweitung in Windows, mehr lokale DoS-Angriffe auf eine Mehrbenutzerumgebung in Linux, außerdem finden Sie kritischere CVEs unter Windows (ich hatte ein paar statistische Aufschlüsselungen aus einer CVE-Datenbank, aber ich kann diesen Post, den ich vor Monaten gemacht habe, nicht finden, so frustrierend! Google hilft mir nicht, ihn zu finden ...).

Wie Sie sehen können, hat Server 2008 eine viel höhere Gewichteter Durchschnitt des CVE-Schweregrads:

http://www.cvedetails.com/top-50-product-cvssscore-distribution.php (plus alle Linux-Schwachstellen aus den 1,2-Tagen im Vergleich zu den letzten 5 Jahren der Entwicklung 2008!)

Natürlich laufen Sie mit etwas wie Ubuntu, das mit einem Haufen Software und Vorkonfigurationen oben drauf kommt, sie sind der Laune der darauf laufenden Software überlassen.

Meine Meinung zu diesem Thema:Linux ist um viele Unix-Konzepte herum aufgebaut, 40 Jahre der Softwareentwicklung und Menschen, die diese Kisten zu Tode prügeln, ist es hauptsächlich durch die Feuerprobe von Unix sicher, und dies hat immens geholfen, viele Lektionen wurden gelernt und direkt auf Linux angewendet.

Hat das irgendetwas mit der Open-Source-Natur von Linux zu tun?

Vieles hat damit zu tun, zumindest mit der Geschwindigkeit, mit der die höhere Lautstärke erreicht wird von CVEs werden angesprochen. Dadurch können auch viele kleinere Probleme gefunden und behoben werden (hauptsächlich aufgrund seiner Beliebtheit). , weil Open-Source ohne Popularität bedeutet, dass der Code wenig Augen hat und wenig Interesse an der Behebung).

Seine zugrunde liegende Architektur (und der Unterschied zu Windows)?

Um eine Multi-User-Umgebung herum aufgebaut zu sein, hilft enorm, diese Systeme wurden entwickelt, um tonnenweise Leute gleichzeitig zu haben, und kein Benutzer sollte in der Lage sein, einen anderen zu unterbrechen.


Gültige Gründe:

  1. Eine kleinere Benutzerbasis in Linux macht Desktop-Linux zu einem weniger attraktiven Ziel. Wenn nur 0,1 % der Computer Ubuntu 10.04 ausführen und Ihr Trojaner nur mit dieser bestimmten Linux-Version funktioniert, wird er sich wahrscheinlich nie durchsetzen. Wenn Ihr Trojanisches Pferd nur unter Windows XP funktioniert, können Sie immer noch ~25 % des Marktes angreifen.
  2. Oft (nicht immer) sachkundigere und sicherheitsbewusstere Benutzerbasis. Allerdings haben Betriebssysteme wie Ubuntu Linux zugänglicher gemacht, und Sie können Leute finden, die dumme Sachen damit machen.

Darüber hinaus könnte man aus etwas fragwürdigen Gründen argumentieren, dass Linux oft ein sichereres Design hat (das ist möglicherweise nicht mehr so ​​​​wahr, da andere Betriebssysteme aufgeholt haben).

  1. Gute Rechtetrennung und Zugriffskontrollen mit su /sudo , die es in älteren Windows-Versionen nicht wirklich gibt.
  2. Angenommen, Sie benötigen eine neue Software (Bildbearbeitung, LaTeX oder Python usw.), die nicht in Ihrem Betriebssystem vorinstalliert ist. Unter Linux verwenden Sie Ihren Paketmanager zu 99 %, um automatisch kryptografisch signierte Software herunterzuladen und zu installieren, die von einer Vertrauenskette validiert wurde. Es wird dies automatisch auch für Updates verwenden (so ist es einfach, die gesamte Software systemweit auf dem neuesten Stand zu halten und Sicherheitslücken schnell zu patchen). In Windows muss ich die meiste Zeit, wenn ich etwas Neues installieren muss, im Internet danach suchen, es von einer zufälligen http-Website herunterladen und installieren, die ihre Software mit Spyware/Bloatware/Trojanern laden könnte, oder ich könnte betroffen sein zu einem MITM-Angriff und laden/installieren Sie stattdessen einen Virus herunter, und jede Anwendung hat ihren eigenen (anderen) Installer/automatischen Updater. (Das heißt, ich finde, dass die Leute PPAs, zufälligen Skripten im Internet oder dem Hinzufügen von Browsererweiterungen als große Sicherheitslücken von Linux/Windows zu vertrauen).
  3. ssh . Ihre Standardverbindung zu einem anderen Remote-Rechner über ssh ist sehr bequem und leistungsfähig, was in Bezug auf die Sicherheit jeder Windows-Remote-Authentifizierung weit überlegen ist. Immer wenn Sie sich mit einer ssh-Maschine verbinden, überprüfen Sie kryptografisch, dass sich der Host-Schlüssel der anderen Maschine gegenüber dem zuvor verwendeten Schlüssel nicht geändert hat; Sie können Ihren privaten ssh-Schlüssel verwenden, um auf ein Challenge-Token zu antworten, ohne dass Lauscher Replay-Angriffe verwenden oder Keylogger Ihr Passwort sehen. Dann wird der gesamte Datenverkehr verschlüsselt zwischen den beiden Maschinen gesendet; außerdem ist es trivial, es auf einer Linux-Box einzurichten.
  4. Viele kostenlose Linux-Sicherheitstools:SELinux, AppArmor, Wireshark, iptables (oder ein Wrapper wie ufw), ssh, cron, top (wirklich htop), fail2ban, tripwire, GPG, OpenSSL, md5sum/sha256sum usw. Es ist auch sehr einfach, Skripte einzurichten, eine Protokolldatei zu scannen und eine Warnung per E-Mail zu senden und alles von der Befehlszeile aus zu erledigen usw. Zugegeben, die meisten (alle?) davon haben wahrscheinlich Windows-Äquivalente, aber sie neigen dazu, entweder nicht frei zu sein oder sich zu ändern viel zwischen den Versionen. Das Einrichten eines Cronjobs dient im Grunde dazu, einige Aufgaben zu automatisieren, und ist so ziemlich dasselbe wie in den letzten 20 Jahren. beim Einrichten einer automatisierten Aufgabe in Windows wird es dramatische Änderungen zwischen den Betriebssystemen geben.

Ungültige Gründe:

  1. Das Gesetz von Linus:„Bei genügend Augäpfeln sind alle Fehler oberflächlich“, daher ist Open-Source-Software sicherer als Closed-Source-Software. Ich finde dieses Argument nicht besonders überzeugend, da seit Monaten/Jahren erhebliche Sicherheitslücken in Open-Source-Sachen (z. B. Debian OpenSSL) gefunden wurden. Es ist sogar noch schlimmer, da Angreifer die Quelle lesen, nach Fehlern suchen (oder sogar versuchen können, getarnte Fehler in die Codebasis einzuführen). Allerdings glaube ich nicht, dass Close-Source-Software von Natur aus sicherer ist – Menschen machen immer noch Fehler und Sie können leicht jemanden dafür bezahlen, Löcher in eine proprietäre Codebasis einzubauen (und mit weniger Augäpfeln kann es unmöglich sein, dies zu bemerken); Offensichtlich existieren Sicherheitslücken und Backdoors oft in Close-Source-Software und werden ebenfalls angegriffen. (Ich betrachte dies mehr oder weniger als ein Unentschieden.)

Ich vermute, dass die Viren-/Malware-Situation unter Linux so ziemlich das ist, was "normal" wäre, und dass die Viren-/Malware-Situation unter Windows ein statistischer Freak ist, eher ein "Drachenkönig" als ein schwarzer Schwan.

Windows hat einen ungewöhnlich barocken Satz von APIs, Win32, native NT-API, und so weiter, und es gab einige Probleme zwischen ihnen, wie zum Beispiel, dass Win32 im Grunde eine ASCII-Schnittstelle ist, während NT native Unicode ist. Dies hat Malware zumindest erleichtert. Denken Sie als Beispiel für ein Rokoko-Detail an die magischen Gerätedateinamen AUX, CON, LP, die in jedem Verzeichnis funktionieren.

Die native Windows-API wurde nie wirklich dokumentiert, und dieser Mangel an Dokumentation führt zu anderen Dingen, wie zum Beispiel:Welcher Satz von Dateinamenerweiterungen ist für ausführbare Dateien? Warum bestimmt der Dateiname, ob eine Datei ausführbar ist oder nicht? Hat sich der NIMDA-Wurm beispielsweise nicht über ein Problem mit ".eml"-Dateien verbreitet? Niemand wusste damals, dass .eml-Dateien ausführbar waren.

Windows hat keine Tradition der Trennung von Rechten, es hat tatsächlich eine Tradition von einzelnen Root-Benutzern. Davon gehen noch viele Anwendungen aus. Windows hat keine Tradition der Trennung von Daten von ausführbaren Dateien. Ich gebe Ihnen in die .doc-Datei eingebettete Word-Makros als Beispiel für unseparierte Daten und Anweisungen, die in der Vergangenheit Virenprobleme verursacht haben.

Linux hat zumindest Traditionen, die allen oben genannten Punkten entgegengesetzt sind:leicht wirksame willkürliche Zugriffskontrollen, einfach genug, um täglich angewendet zu werden, und dennoch umfassend genug, um traditionelle Dateiviren in Schach zu halten. Die Systemaufrufschnittstelle ist nur mäßig kompliziert, und da der Quellcode frei verfügbar ist, existieren mehrere Dokumentationsquellen. Ausführbare Dateien befinden sich normalerweise in "bin"-Verzeichnissen und Daten in einem anderen. Jede ausführbare Datei hat ihre eigene Konfigurationsdatei, anstatt die große alte Registrierung zu teilen. Datendateien befinden sich in Benutzerverzeichnissen und enthalten fast nie die Art von allmächtigen Makros, die Datendateien von Word usw. enthalten.

Außerdem existiert "Linux" nicht wirklich so wie "Windows". Es gibt Hunderte von Distributionen, von denen jede fast jeden Aspekt von Low-Level-Details anpasst. Verschiedene Compiler-Versionen, verschiedene Linux-Kernel, manche komplett modular, manche ohne Module. Das gilt für praktisch jeden Softwareaspekt eines Systems, vom Kernel bis zu den E-Mail-Clients. Wo "Windows"-Benutzer im Großen und Ganzen Outlook-E-Mail-Clients verwenden, verwenden Linux-Benutzer eine Reihe von Hunderten verschiedener Clients, jeder in Dutzenden von Versionen. Es gibt keine Benutzerbasis für eine bestimmte Version einer bestimmten Software:Die Benutzerbasis ist nicht nur gebrochen, sie ist zerschmettert. Dies macht es viel schwieriger, eine Schwachstelle auf einer geeigneten Anzahl von Hosts zu finden oder einen Exploit zu schreiben, der auf einer ausreichend großen Anzahl von Softwareinstanzen funktioniert.


Linux
  1. Linux-Sicherheit:8 weitere Systemsperrkontrollen

  2. 13 Linux-Sicherheits-Tutorials

  3. Backspace-Problem bei Linux-Datei

  4. Was ist der schnellste Weg, zwei oder mehr Dateien in Linux zu kombinieren?

  5. BCRYPT - Warum verwenden die Linux-Distributionen es nicht standardmäßig?

So verbessern Sie die Sicherheit von Linux-Systemen mit Firejail

Der Timer-Befehl in Linux

Die 50 besten Sicherheitstipps zur Linux-Härtung:Eine umfassende Checkliste

Linux vs. Windows-Sicherheit

Die 20 besten Linux-Sicherheitstools:Die Wahl des Linux-Experten

Die 8 besten sicheren Linux-Telefone für Datenschutz und Sicherheit