staging.inyokaproject.org

Zertifikatsregeln unter Linux

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

Phoebus

Anmeldungsdatum:
25. September 2006

Beiträge: Zähle...

Ich plane folgendes:
Es wäre doch gut, wenn auf einem System, jede ausführbare Datei (Skript usw.) zertifiziert werden müsste.
Sprich:
Nur eine Datei, die root zertifiziert hat, darf ausgeführt werden.
Das hätte z.B. den Vorteil, dass quasi keine Schadsoftware liefe.
Denn sobald sich z.B. ein Virus in ein PHP Skript eingeschlichen hat, kann dieses nicht ausgeführt werden.
Oder jemand versucht via exec einen Virus zu starten - geht auch nicht mehr!

Unter Windows ist mir sowas über z.B. die lokale Sicherheitsrichtlinie bekannt.
Gibt es solche Konzepte auch für Linux?

cornelinux

Anmeldungsdatum:
4. Mai 2007

Beiträge: Zähle...

Wir können ja mal was rumspinnen.
Gut. D.h. also Du willst nur Programme ausführen, die eine entsprechende Signatur haben.
Beim Start des Porgrammes muss die Signatur mit dem entsprechenden öffentlichen Schlüssel überprüft werden. D.h. ich habe da zwei Angriffsmöglichkeiten:

1. Das überprüfende Programm
2. Den öffentlichen Schlüssel

1.
Im simpelsten - sprich leicht verständlichsten Szenario - würde das bspw. die shell machen. Der Programmcode und dessen Signatur wird genommen und mit dem öffentlichen Schlüssel überprüft. Hier kann ich hingehen und die Shell angreifen, dass sie bei einer solchen Überprüfung immer als Ergenis OK zurückliefert. Nachdem ich also die Shell angegriffen hätte, könnte ich nun meinen Schadcode ausführen.
Ergo: Das in der Shell zu machen ist schlecht. Also muss ich die Überprüfung in den Kernel einbauen, weil der Kernel ein wenig schwieriger anzugreifen ist.

2.
Der öffentliche Schlüssel wird zur Überprüfung der Signatur herangezogen. Wenn ich Punkt 1 nicht angreifen kann greife ich den öffentlichen Schlüssel an. D.h. ich tausche erstmal den öffentlichen Schlüssel gegen meinen eigenen, um danach Programm Code den ich selber signiert habe, ausführen zu können.
Ergo: Der Schlüssel muss irgendwie nicht austauschbar gehalten werden. Imho kommt hier nun das Stichwort TPM Chip ins Spiel.

Wie da so die Ideen und was da der aktuelle Stand der Unterstützung von TPM-Chips sind, weiß ich leider nicht.

Was aber evtl. weniger Aufwand bedeutet, ist die Nutzung von bspw. SELinux. Da kannst Du bspw. definieren, was manche Applikationen machen dürfen...

Schönen Gruß
Cornelius

Phoebus

(Themenstarter)

Anmeldungsdatum:
25. September 2006

Beiträge: Zähle...

Kennst du zufällig in Windows die Gruppenrichtlinien?
Windows unterstützt sowas nämlich.
Ich kann zentral jede Software per Hashwert oder Zertifikat zur Ausführung freischalten...

Ich denke auch das muss in den Kernel.
Der verwaltet ja alles und entscheidet auch über Dinge, wie "Anwendung darf HAL anstupsen" usw.

An ein TPM hab ich noch garnicht gedacht.
Das wäre natürlich eine Möglichkeit für sowas...

cornelinux

Anmeldungsdatum:
4. Mai 2007

Beiträge: Zähle...

Hi,

diese Gruppenrichtlinie kenne ich nicht. Wo ist die denn zu finden?

Mit Hash-Werten ist das natürlich wieder eine ganze Ecke einfacher.
Das, was es zur Zeit im Kernel gibt, ist wie gesagt bspw. SELinux, das vornerum nicht so toll (kein kryptographische überprüfung des Programms ansich) doch hintenrum wesentlich restriktiver in der Form, dass ich jede Funktion des Programms definieren kann.

Dann gibt es Möglichkeiten mit diversen File Intergrety checkern (bspw. tripwire).

Im Endeffekt muss man sich offensichtlich zur Zeit noch was stricken wie:
- Überprüfen, dass nur erlaubte Anwenungen installiert sind
- Beschränken der Möglichkeiten mit SELinux...

Schönen Gruß
Cornelius

Phoebus

(Themenstarter)

Anmeldungsdatum:
25. September 2006

Beiträge: 87

Es gibt 2 Möglichkeiten.
Entweder lokal auf deinem Rechner:
Systemsteuerung->Verwaltung->Lokale Sicherheitsrichtlinie->Richtlinien für Softwareeinschränkungen.
(aber Obacht - falsche Änderung und das wars mit deinem Rechner 😉)

Oder via Windows2003 Server über Gruppenrichtlinien im Active Directory.

Du kannst
- Hashregeln machen
- Pfadregeln machen
- Zertifikatsregeln machen

Normal nimmt man Zertifikate.

Antworten |