Häufig gestellte Fragen zu SELinux (FAQ)

Hallo allerseits! Speziell für Studenten des Linux-Sicherheitskurses haben wir eine Übersetzung der offiziellen SELinux-FAQ vorbereitet. Es scheint uns, dass diese Übersetzung nicht nur für Studenten nützlich sein kann, deshalb teilen wir sie mit Ihnen.



Wir haben versucht, einige der am häufigsten gestellten Fragen zum SELinux-Projekt zu beantworten. Derzeit sind die Fragen in zwei Hauptkategorien unterteilt. Alle Fragen und Antworten finden Sie auf der FAQ-Seite .


Rückblick


Rückblick


  1. Was ist Linux mit erhöhter Sicherheit?
    Linux mit erweiterter Sicherheit (SELinux - Security Enhanced Linux) ist die Referenzimplementierung der Sicherheitsarchitektur von Flask für eine flexible, erzwungene Zugriffskontrolle. Es wurde erstellt, um die Nützlichkeit flexibler Mechanismen zur erzwungenen Zugriffskontrolle zu demonstrieren und um zu zeigen, wie solche Mechanismen dem Betriebssystem hinzugefügt werden können. Die Flask-Architektur wurde anschließend in Linux integriert und auf mehrere andere Systeme portiert, darunter das Solaris-Betriebssystem, das FreeBSD-Betriebssystem und den Darwin-Kernel, was zu einer Vielzahl verwandter Arbeiten führte. Die Flask-Architektur bietet allgemeine Unterstützung für die Anwendung vieler Arten von Richtlinien für die erzwungene Zugriffssteuerung, einschließlich solcher, die auf den Konzepten der Typdurchsetzung, der rollenbasierten Zugriffssteuerung und der mehrstufigen Sicherheit basieren.
  2. Was gibt Linux mit verbesserter Sicherheit, was Standard-Linux nicht bieten kann?
    Der Linux-Kernel mit erweiterter Sicherheit richtet Richtlinien für die erzwungene Zugriffskontrolle ein, die Benutzerprogramme und Systemserver auf die Mindestberechtigungen beschränken, die sie für ihre Arbeit benötigen. Mit dieser Einschränkung wird die Fähigkeit dieser Benutzerprogramme und Systemdämonen, im Falle eines Kompromisses (z. B. aufgrund eines Pufferüberlaufs oder einer falschen Konfiguration) Schaden anzurichten, verringert oder beseitigt. Dieser Einschränkungsmechanismus funktioniert unabhängig von herkömmlichen Linux-Zugriffskontrollmechanismen. Es verfügt nicht über das Root-Superuser-Konzept und weist nicht die bekannten Mängel herkömmlicher Linux-Schutzmechanismen auf (z. B. Abhängigkeit von setuid / setgid-Binärdateien).
    Die Sicherheit eines unveränderten Linux-Systems hängt von der Richtigkeit des Kernels, aller privilegierten Anwendungen und jeder Konfiguration ab. Ein Problem in einem dieser Bereiche kann zu einem Kompromiss des gesamten Systems führen. Im Gegenteil, die Sicherheit eines modifizierten Systems, das auf dem Linux-Kernel mit verbesserter Sicherheit basiert, hängt in erster Linie von der Richtigkeit des Kernels und der Konfiguration seiner Sicherheitsrichtlinie ab. Obwohl Probleme mit der Richtigkeit oder Konfiguration von Anwendungen möglicherweise nur begrenzte Kompromisse zwischen einzelnen Benutzerprogrammen und Systemdämonen ermöglichen, stellen sie kein Sicherheitsrisiko für andere Benutzerprogramme und Systemdämonen oder für die Sicherheit des gesamten Systems dar.
  3. Wofür ist es gut?
    Die neuen Linux-Funktionen mit verbesserter Sicherheit ermöglichen den Informationsaustausch auf der Grundlage von Vertraulichkeits- und Integritätsanforderungen. Sie sollen verhindern, dass Daten und Programme gelesen, Daten und Programme gefälscht, Anwendungssicherheitsmechanismen umgangen, nicht vertrauenswürdige Programme ausgeführt oder andere Prozesse unter Verstoß gegen die Sicherheitsrichtlinien des Systems gestört werden. Sie helfen auch dabei, den potenziellen Schaden zu begrenzen, der durch Malware oder falsche Programme verursacht werden kann. Sie sollten auch nützlich sein, um sicherzustellen, dass Benutzer mit unterschiedlichen Sicherheitsberechtigungen mit demselben System auf verschiedene Arten von Informationen mit unterschiedlichen Sicherheitsanforderungen zugreifen können, unbeschadet dieser Anforderungen.
  4. Wie bekomme ich eine Kopie?
    Viele Linux-Distributionen bieten SELinux-Unterstützung, die bereits als Standardfunktion oder als Add-On-Paket integriert ist. Der Hauptcode von Userland, SELinux, ist auf GitHub verfügbar. Endbenutzer sollten normalerweise die von ihrer Distribution bereitgestellten Pakete verwenden.
  5. Was ist in Ihrer Veröffentlichung enthalten?
    Die NSA SELinux-Version enthält den SELinux Userland-Kerncode. Die SELinux-Unterstützung ist bereits im Hauptkernel von Linux 2.6 enthalten, der unter kernel.org verfügbar ist. Der SELinux Userland-Kerncode besteht aus einer Bibliothek zum Bearbeiten von Binärrichtlinien (libsepol), einem Richtliniencompiler (checkpolicy), einer Bibliothek für Sicherheitsanwendungen (libselinux), einer Bibliothek für Richtlinienverwaltungstools (libsemanage) und mehreren richtlinienbezogenen Dienstprogrammen (policycoreutils).
    Zusätzlich zum SELinux-fähigen Kernel und dem Hauptbenutzerlandcode benötigen Sie eine Richtlinie und einige User-Space-Pakete, die für SELinux festgelegt wurden, um SELinux verwenden zu können. Die Richtlinie kann aus dem SELinux-Referenzrichtlinienprojekt bezogen werden .
  6. Kann ich Linux mit erweitertem Schutz auf einem vorhandenen Linux-System installieren?
    Ja, Sie können nur SELinux-Änderungen auf Ihrem vorhandenen Linux-System installieren oder eine Linux-Distribution installieren, die bereits SELinux-Unterstützung enthält. SELinux besteht aus einem Linux-Kernel mit SELinux-Unterstützung, einem Kernsatz von Bibliotheken und Dienstprogrammen, einigen modifizierten benutzerdefinierten Paketen und einer Richtlinienkonfiguration. Um es auf einem vorhandenen Linux-System zu installieren, das keine SELinux-Unterstützung bietet, müssen Sie in der Lage sein, die Software zu kompilieren und über andere erforderliche Systempakete zu verfügen. Wenn Ihre Linux-Distribution bereits SELinux-Unterstützung enthält, müssen Sie die NSA SELinux-Version nicht erstellen oder installieren.
  7. Wie kompatibel ist Linux mit erhöhter Sicherheit mit unverändertem Linux?
    Sicherheitsverbessertes Linux bietet Binärkompatibilität mit vorhandenen Linux-Anwendungen und mit vorhandenen Linux-Kernelmodulen. Einige Kernelmodule erfordern jedoch möglicherweise Änderungen, um ordnungsgemäß mit SELinux zu funktionieren. Diese beiden Kompatibilitätskategorien werden nachstehend ausführlich erläutert:
    • Anwendungskompatibilität
      SELinux bietet Binärkompatibilität mit vorhandenen Anwendungen. Wir haben die Kerneldatenstrukturen um neue Sicherheitsattribute erweitert und neue API-Aufrufe für Sicherheitsanwendungen hinzugefügt. Wir haben jedoch keine Datenstrukturen geändert, die für Anwendungen sichtbar sind, und die Schnittstelle vorhandener Systemaufrufe nicht geändert, sodass vorhandene Anwendungen ohne Änderungen funktionieren können, wenn die Sicherheitsrichtlinie dies zulässt.
    • Kernelmodul-Kompatibilität
      Anfänglich bot SELinux anfängliche Kompatibilität nur für vorhandene Kernelmodule. Es war notwendig, solche Module gemäß den geänderten Kernel-Headern neu zu kompilieren, um die neuen Schutzfelder abzufangen, die den Kernel-Datenstrukturen hinzugefügt wurden. Da LSM und SELinux jetzt in den Hauptkern von Linux 2.6 integriert sind, bietet SELinux jetzt Binärkompatibilität mit vorhandenen Kernelmodulen. Einige Kernelmodule interagieren jedoch möglicherweise nicht gut mit SELinux. Wenn ein Kernelmodul beispielsweise ein Kernelobjekt direkt zuweist und installiert, ohne die üblichen Initialisierungsfunktionen zu verwenden, verfügt das Kernelobjekt möglicherweise nicht über die richtigen Sicherheitsinformationen. Einige Kernelmodule verfügen möglicherweise auch nicht über die richtigen Sicherheitskontrollen für ihren Betrieb. Bei vorhandenen Aufrufen von Kernelfunktionen oder Berechtigungsfunktionen werden auch SELinux-Berechtigungsprüfungen ausgeführt. Zur Durchsetzung von MAC-Richtlinien sind jedoch möglicherweise detailliertere oder zusätzliche Steuerelemente erforderlich.
      Linux mit erweiterter Sicherheit sollte keine Interoperabilitätsprobleme mit regulären Linux-Systemen verursachen, wenn alle erforderlichen Vorgänge durch die Konfiguration der Sicherheitsrichtlinien zulässig sind.
  8. Was sind die Ziele des Konfigurationsbeispiels für Sicherheitsrichtlinien?
    Auf hoher Ebene soll die Flexibilität und Sicherheit von Zwangszugriffskontrollen demonstriert und ein einfaches Arbeitssystem mit minimalen Änderungen an den Anwendungen bereitgestellt werden. Auf einer niedrigeren Ebene hat eine Richtlinie eine Reihe von Zielen, die in der Richtliniendokumentation beschrieben sind. Zu diesen Zielen gehören die Verwaltung des Rohdatenzugriffs, der Schutz der Integrität des Kernels, der Systemsoftware, der Systemkonfigurationsinformationen und der Systemprotokolle, die Begrenzung des potenziellen Schadens, der durch das Ausnutzen einer Sicherheitsanfälligkeit in einem Prozess verursacht werden kann, für den Berechtigungen erforderlich sind, der Schutz privilegierter Prozesse vor der Ausführung von Schadcode. Schutz der Rolle des Administrators und der Domäne vor der Anmeldung ohne Benutzerauthentifizierung, um die Störung gewöhnlicher Benutzerprozesse im Systemprozess zu verhindern Prozesse oder Prozesse des Administrators sowie Schutz von Benutzern und Administratoren vor dem Ausnutzen von Schwachstellen in ihrem Browser mit bösartigem mobilen Code.
  9. Warum wurde Linux als Basisplattform ausgewählt?
    Linux wurde aufgrund seines wachsenden Erfolgs und seiner offenen Entwicklungsumgebung als Plattform für die erste Referenzimplementierung dieser Arbeit ausgewählt. Linux bietet eine hervorragende Gelegenheit, um zu demonstrieren, dass diese Funktionalität im Hauptbetriebssystem erfolgreich sein kann und gleichzeitig zur Sicherheit des weit verbreiteten Systems beiträgt. Die Linux-Plattform bietet auch eine hervorragende Gelegenheit für diese Arbeit, sich einen möglichst breiten Überblick zu verschaffen, und wird möglicherweise als Grundlage für zusätzliche Sicherheitsforschung durch andere Enthusiasten dienen.
  10. Warum hast du diesen Job gemacht?
    Das National Information Security Research Laboratory der National Security Agency ist für Forschung und fortschrittliche Technologieentwicklung verantwortlich, damit die NSA Informationssicherheitslösungen, Produkte und Dienstleistungen für Informationsinfrastrukturen bereitstellen kann, die für die nationalen Sicherheitsinteressen der USA von entscheidender Bedeutung sind.
    Die Schaffung eines funktionsfähigen, sicheren Betriebssystems bleibt eine wichtige Herausforderung für die Forschung. Unser Ziel ist es, eine effektive Architektur zu schaffen, die die notwendige Unterstützung für die Sicherheit bietet. Das Ausführen von Programmen ist für den Benutzer weitgehend transparent und für Lieferanten attraktiv. Wir glauben, dass ein wichtiger Schritt zur Erreichung dieses Ziels darin besteht, zu demonstrieren, wie erzwungene Zugriffskontrollmechanismen erfolgreich in das Hauptbetriebssystem integriert werden können.
  11. In welcher Beziehung steht dies zu früheren NSA-Forschungen?
    Forscher des National Information Reliability Research Laboratory der NSA haben zusammen mit der Secure Computing Corporation (SCC) eine leistungsstarke und flexible Architektur für die erzwungene Zugriffskontrolle entwickelt, die auf Type Enforcement basiert, einem Mechanismus, der erstmals für das LOCK-System entwickelt wurde. NSA und SCC entwickelten zwei Prototypen der Mach-basierten Architektur: DTMach und DTOS ( http://www.cs.utah.edu/flux/dtos/ ). Die NSA und SCC arbeiteten dann mit dem Flux-Forschungsteam der Universität von Utah zusammen, um die Architektur auf das Fluke-Forschungsbetriebssystem zu portieren. Während dieser Migration wurde die Architektur verfeinert, um dynamische Sicherheitsrichtlinien besser zu unterstützen. Diese verbesserte Architektur wurde Flask ( http://www.cs.utah.edu/flux/flask/ ) genannt. NSA hat jetzt die Flask-Architektur in das Linux-Betriebssystem integriert, um diese Technologie auf eine breitere Community von Entwicklern und Benutzern zu übertragen.
  12. Ist Linux mit erhöhter Sicherheit ein zuverlässiges Betriebssystem?
    Der Ausdruck "Vertrauenswürdiges Betriebssystem" bezieht sich in der Regel auf ein Betriebssystem, das den mehrstufigen Schutz und die Validierung ausreichend unterstützt, um bestimmte behördliche Anforderungen zu erfüllen. Linux mit verbesserter Sicherheit enthält nützliche Ideen aus diesen Systemen, konzentriert sich jedoch auf die erzwungene Zugriffskontrolle. Die anfängliche Aufgabe bei der Entwicklung von Linux mit verbesserter Sicherheit bestand darin, nützliche Funktionen zu erstellen, die in einer Vielzahl realer Umgebungen konkrete Sicherheitsvorteile bieten, um diese Technologie zu demonstrieren. SELinux selbst ist kein vertrauenswürdiges Betriebssystem, bietet jedoch eine wichtige Sicherheitsfunktion - erzwungene Zugriffskontrolle -, die für ein vertrauenswürdiges Betriebssystem erforderlich ist. SELinux wurde in Linux-Distributionen integriert, die gemäß dem Labeled Security Protection Profile bewertet wurden. Informationen zu getesteten und verifizierten Produkten finden Sie unter http://niap-ccevs.org/ .
  13. Ist sie wirklich beschützt?
    Das Konzept eines sicheren Systems umfasst viele Attribute (z. B. physische Sicherheit, Personalsicherheit usw.), und Linux mit erhöhter Sicherheit adressiert nur einen sehr engen Satz dieser Attribute (d. H. Zwangszugriffskontrollen im Betriebssystem). Mit anderen Worten bedeutet "sicheres System" sicher genug, um einige Informationen in der realen Welt vor einem realen Gegner zu schützen, vor dem der Eigentümer und / oder Benutzer von Informationen gewarnt wird. Linux mit erhöhter Sicherheit soll nur die wesentlichen Steuerelemente in einem modernen Betriebssystem wie Linux demonstrieren und dürfte daher für sich genommen keine interessante Definition eines sicheren Systems erfüllen. Wir glauben, dass die in Linux mit verbesserter Sicherheit demonstrierte Technologie für Menschen nützlich sein wird, die sichere Systeme erstellen.
  14. Was haben Sie getan, um Ihre Garantie zu erhöhen?
    Das Ziel dieses Projekts war es, Zugriffskontrollen durch minimale Änderungen an Linux hinzuzufügen. Dieses letzte Ziel schränkt die Möglichkeiten zur Erhöhung der Garantie erheblich ein. Daher gab es keine Arbeit zur Erhöhung der Linux-Garantie. Die Verbesserungen basieren andererseits auf früheren Arbeiten zur Entwicklung einer äußerst zuverlässigen Sicherheitsarchitektur, und die meisten dieser Entwurfsprinzipien wurden mit verbesserter Sicherheit auf Linux portiert.
  15. Wird CCEVS Linux mit erhöhter Sicherheit bewerten?
    Linux selbst mit erweiterter Sicherheit ist nicht dafür ausgelegt, alle Sicherheitsprobleme zu lösen, die durch das Sicherheitsprofil dargestellt werden. Obwohl es möglich wäre, nur die aktuelle Funktionalität zu bewerten, glauben wir, dass eine solche Bewertung nur einen begrenzten Wert haben wird. Wir haben jedoch mit anderen zusammengearbeitet, um diese Technologie in die evaluierten und evaluierten Linux-Distributionen zu integrieren. Informationen zu getesteten und verifizierten Produkten finden Sie unter http://niap-ccevs.org/ .
  16. Haben Sie versucht, Schwachstellen zu beheben?
    Nein, wir haben im Verlauf unserer Arbeit nicht gesucht und keine Schwachstellen gefunden. Wir haben nur ein Minimum gemacht, um unsere neuen Mechanismen hinzuzufügen.
  17. Ist dieses System für die Verwendung durch die Regierung zugelassen?
    Sicherheitsverbessertes Linux hat keine spezielle oder zusätzliche Genehmigung für die Verwendung durch die Regierung gegenüber anderen Linux-Versionen. Linux mit erweiterter Sicherheit verfügt nicht über spezielle oder zusätzliche Berechtigungen für die Verwendung durch die Regierung gegenüber anderen Linux-Versionen.
  18. Wie unterscheidet sich das von anderen Initiativen?
    Linux mit erhöhter Sicherheit verfügt über eine genau definierte Architektur für die flexible erzwungene Zugriffskontrolle, die experimentell mit mehreren Prototypsystemen (DTMach, DTOS, Flask) getestet wurde. Detaillierte Studien wurden zur Fähigkeit der Architektur durchgeführt, eine breite Palette von Sicherheitsrichtlinien zu unterstützen. Sie sind unter http://www.cs.utah.edu/flux/dtos/ und http://www.cs.utah.edu/flux/flask/ verfügbar.
    Die Architektur bietet eine detaillierte Kontrolle über viele Kernel-Abstraktionen und -Dienste, die nicht von anderen Systemen gesteuert werden. Einige der Unterscheidungsmerkmale eines Linux-Systems mit erweiterter Sicherheit sind:
    • Netto-Trennung der Richtlinie von den Anwendungsrechten
    • Klar definierte Richtlinienschnittstellen
    • Unabhängigkeit von bestimmten Richtlinien und Richtliniensprachen
    • Unabhängigkeit von bestimmten Formaten und Inhalten von Sicherheitsetiketten
    • Separate Beschriftungen und Steuerelemente für Kernelobjekte und -dienste
    • Caching Access-Lösungen für mehr Effizienz
    • Unterstützung für Richtlinienänderungen
    • Überwachung der Prozessinitialisierung sowie der Programmvererbung und -ausführung
    • Verwalten von Dateisystemen, Verzeichnissen, Dateien und Beschreibungen geöffneter Dateien
    • Socket-, Messaging- und Netzwerkschnittstellenverwaltung
    • Kontrolle über die Nutzung von "Opportunities"
  19. Was sind die Lizenzbeschränkungen für dieses System?
    Der gesamte Quellcode unter https://www.nsa.gov wird unter den gleichen Bedingungen wie der ursprüngliche Quellcode verteilt. Beispielsweise werden Patches für den Linux-Kernel und Patches für viele vorhandene Dienstprogramme, die hier verfügbar sind, unter den Bedingungen der GNU General Public License (GPL) veröffentlicht .
  20. Gibt es eine Exportkontrolle?
    Für Linux mit erhöhter Sicherheit gibt es im Vergleich zu anderen Linux-Versionen keine zusätzlichen Exportkontrollen.
  21. Plant die NSA, sie im Inland einzusetzen?
    Aus offensichtlichen Gründen äußert sich die NSA nicht zur betrieblichen Nutzung.
  22. Ändert die Garantieerklärung der Secure Computing Corporation vom 26. Juli 2002 die Position der NSA, die SELinux unter der GNU General Public License gewährt wurde?
    Die Position der NSA hat sich nicht geändert. Die NSA ist weiterhin der Ansicht, dass die Bedingungen der GNU General Public License die Verwendung, das Kopieren, die Verteilung und die Änderung von SELinux regeln. Siehe Pressemitteilung der NSA vom 2. Januar 2001 .
  23. Unterstützt NSA Open Source Software?
    Die Software-Sicherheitsinitiativen der NSA decken sowohl proprietäre als auch Open Source-Software ab, und wir haben sowohl proprietäre als auch Open Source-Modelle erfolgreich in unseren Forschungsaktivitäten eingesetzt. Die Bemühungen der NSA zur Verbesserung der Softwaresicherheit beruhen auf einer einfachen Überlegung: Unsere Ressourcen so effizient wie möglich zu nutzen, um den NSA-Kunden die bestmöglichen Sicherheitsoptionen für ihre am häufigsten verwendeten Produkte zu bieten. Der Zweck des NSA-Forschungsprogramms besteht darin, technologische Fortschritte zu entwickeln, die über verschiedene Übertragungsmechanismen mit der Softwareentwicklungsgemeinschaft geteilt werden können. Die NSA unterstützt oder bewirbt kein bestimmtes Softwareprodukt oder Geschäftsmodell. Vielmehr erhöht die NSA die Sicherheit.
  24. Unterstützt NSA Linux?
    Wie oben erwähnt, unterstützt oder bewirbt die NSA kein bestimmtes Softwareprodukt oder keine bestimmte Softwareplattform. Die NSA trägt nur zu mehr Sicherheit bei. Die in der SELinux-Referenzimplementierung demonstrierte Flask-Architektur wurde auf mehrere andere Betriebssysteme portiert, darunter Solaris, FreeBSD und Darwin, auf den Xen-Hypervisor portiert und auf Anwendungen wie das X Window System, GConf, D-BUS und PostgreSQL angewendet. Flaschenarchitekturkonzepte sind auf eine Vielzahl von Systemen und Umgebungen anwendbar.

Zusammenarbeit


  1. Wie wollen wir mit der Linux-Community interagieren?
    Wir haben eine Reihe von Webseiten bei NSA.gov , die als primäre Methode zur Veröffentlichung von Linux-Informationen mit erhöhter Sicherheit dienen. Wenn Sie an Linux mit erhöhter Sicherheit interessiert sind, empfehlen wir Ihnen, sich der Entwickler-Mailingliste anzuschließen, den Quellcode anzuzeigen und Ihr Feedback (oder Ihren Code) bereitzustellen. Informationen zum Beitritt zur Entwickler-Mailingliste finden Sie auf der Seite SELinux Developer Mailing List .
  2. Wer kann helfen?
    SELinux wird jetzt von der Open-Source-Community für Linux-Softwareentwicklung unterstützt und weiterentwickelt.
  3. Finanziert die NSA Folgemaßnahmen?
    Derzeit prüft die NSA keine Vorschläge für weitere Arbeiten.
  4. Welche Art von Support ist verfügbar?
    Wir beabsichtigen, Probleme über die Mailingliste selinux@tycho.nsa.gov zu lösen, können jedoch nicht alle Fragen zu einer bestimmten Site beantworten.
  5. Wer hat geholfen? Was haben sie gemacht?
    Der Linux-Prototyp mit erweiterter Sicherheit wurde von der NSA in Zusammenarbeit mit Forschungspartnern von NAI Labs, der Secure Computing Corporation (SCC) und der MITRE Corporation entwickelt. Nach der ersten Veröffentlichung folgten viele weitere Materialien. Siehe Teilnehmerliste .
  6. Wie kann ich mehr herausfinden?
    Wir empfehlen Ihnen, unsere Webseiten zu besuchen, Dokumentation und frühere Forschungsergebnisse zu lesen und an unserer Mailingliste selinux@vger.kernel.org teilzunehmen

Finden Sie die Übersetzung hilfreich? Schreibe Kommentare!

Source: https://habr.com/ru/post/de459598/


All Articles