Probleme mit SELinux reparieren

SELinux mal wieder mal um die Ohren geflogen? Vielleicht kann dieser Artikel helfen.

Es war einmal eine neue SSD …

Vor einigen Tagen habe ich meine Systemfestplatte durch eine SSD ersetzt. Da die ganze Platte verschlüsselt war, folgte ein ziemlich aufwändiger Prozess um die Inhalte zu kopieren. Dabei wurde SELinux allerdings vergessen, was dazu geführt hat, daß Linux danach nicht mehr ganz störungsfrei lief.

Alles in allem häuften sich Meldungen wie diese :

Mar 22 23:10:48 eve python: SELinux is preventing /usr/lib64/firefox/plugin-container from open access on the file .

Da stellt sich einem Admin erstmal die Frage, welches File er da nicht öffnen konnte und wieso nicht. Leider bleibt diese Frage unbeantwortet, da das Audit von SELinux dazu schweigt. Dummerweise weiss man nicht welche Datei gemeint ist und was falsch sein könnte. Solange mein Bugreport nicht zu einer Änderung führt, werden wir das auch nie erfahren, da nicht mal strace herausfindet, welche Datei gemeint ist.

Wie Anfangs schon erwäht, wurden Daten von einer Platte auf eine andere kopiert und letztlich war das das Problem.

Was macht SELinux ?

SELinux (ab jetzt nur SEL ) kennt für fast jede Datei einen Zugriffscontext, fcontext genannt. Mit einem ls sieht man diesen Context nicht gleich, dazu muß man die -Z Option benutzen :

# ls -lad /home/
drwxr-xr-x. 4 root root 4096 20. Mär 07:03 /home/

# ls -ladZ /home/
drwxr-xr-x. root root system_u:object_r:home_root_t:s0 /home/

Das Verzeichnis /home/ hat also als Defaultcontext „home_root_t“ ( die enden fast alle auf _t, nicht fragen ). Alle Dateien in /home/ bekommen auch erstmal diesen Context. Programm die in einem Context gestartet wurden, können erstmal nicht auf Dateien in einem anderen Context zugreifen. Das verhindert, daß man durch den Hack z.b. des Apache Webservers auf systemrelevante Dateien zugreifen kann, auch wenn man durch den Hack Rootuser geworden ist. An sich eine Supersache was Security angeht.

Damit das klappt gibt es unter „/etc/selinux/targeted/contexts/files“ eine Liste mit Contexten, die Dateien zugeordnet sind. Wenn man jetzt TAR benutzt um den Inhalt einer Platte von A-> B zu kopieren, geht der Context verloren, aber SELinux findet beim Start seine Configdateien und handelt danach.

Jetzt wurden aus Platzgründen auf der SSD diese Dateien beim Kopieren beschädigt, weswegen der Rechner überhaupt gebootet hat, weil damit der Regelsatz gelöscht war. Da aber andere Dateien mit Contexten versehen wurden, was automatisch beim Anlegen einer Datei passiert (z.b. mit cp a b/) , gab es einige Contexte und andere nicht. Besonders das Home-Verzeichnis strotzt nur so vor Contexten.

Jede Fehlermeldung von SELinux wird dem User präsentiert. Dazu poppt auf dem Desktop eine Warnung auf. In dieser Warnung steht auch, was man dem System zu sagen hat, damit es diesen Zugriff zuläßt. Diese Ausnahmen muß es geben, damit Programme über verschiedene Contexte hinweg Daten austauschen können, z.b. Dateien per SSH ins Webverzeichnis spielen, per Samba Dateien kopieren usw.

Heute morgen hat das Chaos dann komplett zugeschlagen. Systemd konnte nicht mehr booten, da erneut SEL-rechte geändert wurden. Das führte zum komischsten Bootbug bisher. „failure to access /dev/initctl“, wo Systemd auf den „initctl“ Socket nicht mehr zugreifen konnte, also auf den eigentlichen Initprozess.

Wie man es behebt

In meinem Fall habe ich von der „alten“ Platte gebootet und systemd neu installiert, damit waren die komischen Bootprobleme behoben, aber die Gnomeshell startete trotzdem nicht. Was im Einzelnen nicht lief, lies sich nicht feststellen, damit man nicht mal mehr im Debugmodus ins System kam.

Abhilfe schaffte das Abschalten von SEL in /etc/selinux/config :

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing – SELinux security policy is enforced.
#     permissive – SELinux prints warnings instead of enforcing.
#     disabled – No SELinux policy is loaded.
SELINUX=permissive
#SELINUX=enforcing
# SELINUXTYPE= can take one of these two values:
#     targeted – Targeted processes are protected,
#     minimum – Modification of targeted policy. Only selected processes are protected.
#     mls – Multi Level Security protection.
SELINUXTYPE=targeted

Der Permissive Modus ist eine Art Debugmode, SEL meckert zwar über die Sicherheitsprobleme, verhindert Sie aber nicht. Damit kann das System wieder booten und man kann die SEL Einstellungen und Probleme reparieren.

Ursachenbeseitigung

Wie sich nach nun umfassender Analyse der SEL Konfigurationen gezeigt hat, war der Policyordner defekt. Dateien mit 0 Bytegröße waren die Regel ( weil die Platte zwischenzeitlich voll war ) .

Das Verzeichnis /etc/selinux/targeted stellt den Regelsatz dar, den SEL befolgen soll, so stehts in der config (siehe oben). Diesen Ordner löscht man und ersetzt ihn anschliessend mit einer alten Kopie. In meinem Fall, von der alten Festplatte. Die Verzeichnisstruktur hat sich nicht geändert, also paßt der Regelsatz, da er „Laufwerke“ nicht beachtet, sondern nur „Pfade“ enthält. Der Name des Bootdevices spielt also keine Rolle.

Nun gibt man noch ein :

# restorecond -R -v /*

Das dauert eine Weile, weil alle Files auf der Platte auf den im Regelsatz enthaltenen Wert zurück gesetzt werden. Mit einer SSD ist man in Minuten durch, mit einer SATA dauert es eine halbe Ewigkeit. Vor den vielen Ausgaben nicht erschrecken, es werden fast alle Dateien auf der Platte gerichtet!

Nun stellt man noch SEL in der /etc/selinux/config auf enforcing um :

# SELINUX=permissive
SELINUX=enforcing

Nun kann man rebooten und der Rechner läuft wieder.

Kleiner Tip an die Gemeinde: Kauft gleich eine TB große SSD, wenn Ihr Videos auf der Platte habt. Spart euch das Linken auf die alte Platte, damit spart Ihr euch eine Menge zusätzlichen Ärgers. Das Musik-  und Videos-Verzeichnis hat genauso Contexte wie alles andere und die müssen passen.

So habe ich das gemacht :

# ls -ladZ /home/marius/Videos
lrwxrwxrwx. marius marius unconfined_u:object_r:user_home_t:s0 /home/marius/Videos -> /sata_home/marius/Videos

]$ ls -ladZ /sata_home /sata_home/marius/
drwxr-xr-x. root root system_u:object_r:user_home_dir_t:s0 /sata_home/
drwx——. marius marius unconfined_u:object_r:user_home_dir_t:s0 /sata_home/marius/

In der /etc/fstab dann noch :

/dev/mapper/luks-53246778-9093-123d-235b-4f35522234211 /sata_home ext4 defaults,x-systemd.device-timeout=0 1 2

Eingetragen um die alte Home Partition als /sata_home zu mounten. Da die Passwörter für die Platten gleich sind ( beim Einrichten & Partitionieren der neuen Platte einfach so eintippen ) , wird diese Lukspartition auch automatisch beim Booten entschlüsselt und kann dann gemountet werden.

 

 

Sicherheitslücke im Gnome 3 Desktop

Im Gnome 3 Desktop klafft mindestens seit der Version für Fedora 18 eine Sicherheitslücke.

Diese betrifft i.d.R. Benutzer eines Laptops, da diese das Laptop öfters in den Suspend-on-Disk Modus versetzen um Energie zu sparen, auf Deutsch: Den Deckel zu machen 😉

Wenn das passiert, wird der Bildschirm schwarz, weil er ausgeht. Wenn der Bildschirm wieder angeht, sieht man auf einigen Rechnern den Inhalt des Desktops vor dem Suspend, bis der Screensafer einsetzt und dem ganzen einen Riegel vorschiebt:

Am 9.12.2015 wurde die Lücke zum zweiten Mal an Fedora und damit an Gnome gemeldet.

Ein zweites Mal ? Ja, genau. Schon in Fedora 18 wurde auf einem Laptop dieser Effekt bemerkt und an Fedora gemeldet. Da es sich um einen Security-Bug handelt, wurde darüber nichts bekannt. Im Laufe der nächsten Tage, kamen die Redhat- und Gnome-Entwickler zu dem Schluß, des es an dem „alten“ „langsamen“ Laptop liegen mußte und es modernen nicht reproduziert werden konnte.

Nun sind 2,5 Jahre rum und ich habe ein neues Laptop…. und den gleichen Bug wie vor 2,5 Jahren.

Diesmal gab es aber eine Fristsetzung für Gnome. Das Sie diesen Beitrag lesen können, bedeutet, daß die Schweigefrist von 90 Tagen um ist.

Wie können Sie diesen Bug ausnutzen um an Informationen zu gelangen ?

Eine Voraussetzung ist natürlich, daß das Opfer sensitive Daten angezeigt hat, bevor der Suspendmodus eingeleitet wurde. Ansonsten sehen Sie zwar den Desktop, aber außer einigen anrüchigen Pornohintergründen, wenden Sie vermutlich kaum etwas „entdecken“ können 🙂

Wie exploiten wird dies nun ?

Das ist schon so trivial, daß man sich schämen muß es zu erwähnen:

Handy nehmen
Videoaufnahme starten
auf den Bildschirm richten
Leertaste auf dem Opfer Laptop benutzen
etwas warten bis das Bild kommt.
Weggehen.

Spulen Sie die Videoaufnahme langsam ab und halten Sie einfach in dem Moment an, wenn der Bildschirm zusehen ist.

Kleiner Tip:

Das Laptop und der Monitor sollten in einer hellen Umgebung aufgenommen werden, also nicht nur den Bildschirm sondern auch etwas Dekor, weil dann der Videochip die Aufnahme nicht überstrahlt, wenn es von schwarz auf weiß umschlägt.

Gegenmaßnahmen:

Zuerst den Screensafer starten, dann den Suspendmodus benutzen.

Betroffen:

min. Fedora 18,19,20,21,22,23 mit Gnomedesktop
vermutlich: Ubuntu, Debian mit Gnome und alle Fedora vor 18 mit Gnome

:facepalm: BSI-Checkliste unsinnig

„Gut gemeint ist nicht immer gut gemacht.“

Zum heutigen Safer-Internet-Day hat das BSI Checklisten zum sicheren Surfen  in Form von Postern veröffentlicht. Das Motto lautet „Surfen, aber sicher! Basis-Schutz für den Computer“.  Darin finden sich neben sinnvollen Hinweise auch unsinnige wie :

Fertigen Sie regelmäßig Sicherheitskopien an.

Das hilft jetzt genau wie gegen Angriffe aus dem Netz ?

Laden Sie Daten nur aus vertrauenswürdigen Quellen herunter.

Wie genau sieht denn eine vertrauenswürdige Quelle aus ?

Seien Sie vorsichtig bei E-Mails und deren Anhängen. Fragen Sie im Zweifelsfall beim Absender nach.

Ich frage beim Absender des Trojaners nach, ob das wirklich virenfrei ist. Klar doch, der wird auch bestimmt sagen, daß ein Trojaner oder anderer Exploit in dem PDF drin ist.

Echte Hilfe

Wenn Sie jetzt darauf hoffen, daß das BSI Ihnen die einzelnen Punkte erläutert und damit obenstehende naheliegende Fragen beantwortet haben Sie auf das falsche Pferd gesetzt.  Also mache ich das jetzt für Sie :

Fertigen Sie regelmäßig Sicherheitskopien an.

Frage: Das hilft jetzt genau wie gegen Angriffe aus dem Netz ?
Antwort: gar nicht. Das Backup sorgt nur dafür, daß der Datenverlust beim Neuinstallierten von Windows in Grenzen bleibt.

Laden Sie Daten nur aus vertrauenswürdigen Quellen herunter.

Frage: Wie genau sieht denn eine vertrauenswürdige Quelle aus ?
Antwort: Software sollte man nur von der Herstellerseite herunterladen und selbst das kann gefährlich sein, da auch deren Webseiten gelegentlich gehackt werden. Softwarearchive wie http://software.heise.de können auch als sicher gelten, da hier ein Verlag mit einem Sicherheitsbewußtsein sein Fachwissen nutzt um soviel Sicherheit wie möglich zu gewährleisten. Aber schon beim Downloadarchiv von CNET wäre ich persönlich nicht mehr so sicher. Anderes Beispiel: Der Computer Bild DVD traue ich persönlich gar nicht.

Frage: Wie bekomme ich denn die Herstellerseite einer Software raus ?
Antwort: Wenn das Programm in einer alten Version bereits installiert ist, gibt es im Programm meistens einen Menüpunkt „Über uns/diese Software“ o.ä. . Dort steht dann die Webadresse unter der man ein Update laden kann, wenn dort nicht gleich ein Updatebutton platziert ist.  Wenn es eine neue Software ist, dann fragt man hier am besten Google mit „Softwarename homepage download“. Im Suchergebnis muß man dann die üblichen Downloadarchive ausfiltern. Nach neusten Studien verteilen einige nur noch Viren und keine Software mehr.

Beispiel: „winff download homepage“

WinFF ist die Windowsversion vom freien Videoencoder FFMpeg. Bei der Suche bekommen wir mehrere Suchergebnisse. Zum Glück ist das erste bereits das richtige:

Wo Sie auf keinen Fall draufklicken sollten ist das hier: Platz 10 linux.softpedia.com  Das ist ein Softwararchiv, bei dem selbst ich nicht weiß, ob es ok ist. Da wir aber die echte Homepage gefunden haben, brauchen wir dort auch gar nicht zu klicken.

Seien Sie vorsichtig bei E-Mails und deren Anhängen. Fragen Sie im Zweifelsfall beim Absender nach.

Frage: Kann ich dem Absender soweit trauen, daß ich Ihn frage ?
Antwort: Nein. Und nu ?

Zunächst mal das allgemeine: Emailabsender kann man fälschen und selbst wenn der Absender echt ist, muß die Email nciht missbraucht worden sein, der Absender könnte also ein echter Angreifer sein. Daher muß folgende Sicherheitsmaßnahme gelten:

Öffnen Sie keine Emailanhänge, wenn Sie nicht drauf warten! Alles was ihnen ungefragt zugeschickt wird, kann ein Virus sein.

Wenn es sich um eine unbekannte Adresse handelt, die mir nicht von einem „Geschäftspartner“ vorab angekündigt wurde, geht die EMail in die Tonne.  Derjenige könnte Sie im Fehlerfall ja nochmal senden.

Außerdem kann man mit einfachen Prüfungen, die in meinem Blog nun schon mehrfach an vielen Beispielemails durchgeführt wurden, feststellen, ob es ein Virus ist. Wenn das alles nichts hilft, kann man das Attachement bei Virustotal.com hochladen und überprüfen lassen. Meisten ist das aber nicht nötig. Kurzform :

1. Prüfen Sie den Emailheader
2. Wo kommt die Email wirklich her? Steht da ein Absender aus Deutschland dran ( .de ) und kommt die Email vielleicht China , dann weg damit.
3. heißt das Attachement vielleicht dateiname.pdf.zip oder dateiname.exe.zip ? Dann weg damit. Das ZIP wurde in dem Fall nur benutzt um den Inhalt vor einem Virenscanner zu verstecken.

Mit den drei Tests filtern Sie schon 99% aller Angriffe aus.

4. Doppelklicken Sie auf keinen Fall blind ein unbekanntes Attachement auf.

Forderung an das BSI

Keine sinnfreien Poster mehr, nur um der Poster willen! Gebt echte Tips raus!

Verschweigen möchte ich hier nicht, daß es auf der Seite des BSI tatsächlich noch eine Broschüre mit detaillierteren Informationen gibt. Leider nicht zum Thema „Sicher Surfen!“  :FACEPALM: