Debugging Linux Capabilities

OP #7272151
Lesenswert?
• ▲
▼
Hallo,

ich möchte gerne herausfinden, welche Linux Capabilities 
(capabilitites(7)) bestimmte Programme benötigen. Bei vielen ergibt sich 
das bereits aus der detaillierten Kenntnis ihrer Funktion. Aber es wäre 
natürlich viel schöner, wenn man diese Capabilities irgendwie "abfragen" 
könnte oder wenigstens die Kernel-Logs befragen könnte...

Kennt hier jemand eine Möglichkeit, die von einem Programm benötigten 
Capabilities in Erfahrung zu bringen, und könnte dazu bitte ein wenig 
erzählen? Lieben Dank für sachdienliche Hinweise. ;-)
Gast #7272314
Lesenswert?
• ▲
▼
> Kennt hier jemand eine Möglichkeit, die von einem Programm benötigten
> Capabilities in Erfahrung zu bringen

Schau in die Doku des Programms.  Wenn da nichts steht, frag den 
Programmierer (aber nicht wundern, wenn du nur ein "braucht 
root/CAP_SYS_ADMIN[1]" als Antwort bekommst).  Ein Automatismus zum 
Erkennen der benötigten Capabilities (statische und/oder dynamische 
Analyse) funktioniert nur in trivialen Fällen korrekt.

MMn sind Capabilities ein typische Beispiel, wie man es nicht machen 
sollte: mehr Sicherheit durch hohe Komplexität und einem daraus 
folgenden administrativen Alptraum - ist mMn mehr Augenwischerei als 
tatsächlicher Sicherheitsgewinn.




[1] Grob die Hälfte (Tendenz steigend) aller Tests im Kernel benutzen 
CAP_SYS_ADMIN - es ist dadurch ziemlich gleichbedeutend mit "root". 
Soviel zu "fine grained control" ...
OP #7272694
Lesenswert?
• ▲
▼
Vielen lieben Dank für die Antworten, wenngleich das Erhoffte -- 
irgendwas, das ich aktivieren und dann irgendwo Ausgaben oder 
Logmeldungen wie etwa "process 4711 requested CAP_RÜBENNASE" abgreifen 
kann -- leider nicht dabei ist. Als bekennender Faulpelz finde ich das 
natürlich schade.

Firejail kannte ich übrigens noch gar nicht, sieht aber sehr interessant 
aus und ist vielleicht weniger aufwändig als meine bisherige Methode mit 
AppArmor-Profilen. Mal sehen, ich bin gespannt, lieben Dank für den 
Tipp!
Gast #7272787
Lesenswert?
• ▲
▼
> irgendwas, das ich aktivieren und dann irgendwo Ausgaben oder
> Logmeldungen wie etwa "process 4711 requested CAP_RÜBENNASE"
> abgreifen kann

Wenn du unbedingt eine dynamische Analyse (mit fragwürdigem Ergebnis) 
durchführen willst, schau mal nach "capable"[1], ein Werkzeug aus "BCC" 
(BPF Compiler Collection) - das logged Capabilitytests, die das Kernel 
macht.  Evtl musst du aber dein Kernel umkonfigurieren, damit die dafür 
benötigten Features drin sind.  Kann sein, dass in 
dprobes/kprobes/ktrace/LTT auch was dabei ist.  Sind aber alles 
verhältnismäßig komplexe Developertools.

Boilerplate: Benutze selbst keine Capabilities und hab die Tools nie 
eingesetzt.

[1] https://github.com/iovisor/bcc/blob/master/tools/capable.py
OP #7272926
Lesenswert?
• ▲
▼
foobar schrieb:
> Wenn du unbedingt eine dynamische Analyse (mit fragwürdigem Ergebnis)
> durchführen willst, schau mal nach "capable"[1], ein Werkzeug aus "BCC"
> (BPF Compiler Collection) - das logged Capabilitytests, die das Kernel
> macht.

Wow, das sieht sehr nach dem aus, was ich suche, vielen lieben Dank für 
diesen wunderbaren Tipp! In Debian und Ubuntu sind sogar schon fertige 
Pakete in den Repositories der Distributionen vorhanden (unter Ubuntu 
heißt das Programm "capable-bpfcc" aus dem Paket "bpfcc-tools"), dann 
werden wohl auch deren Kernels schon dafür konfiguriert sein. Ein erster 
schneller Test sieht auch schon sehr vielversprechend aus, yay! 
Dankeschön! ;-)

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.