<Insert Picture Here> Ich bin /root ich darf das! Oder etwa nicht??? Eine Einführung in Role Based Access Control unter Solaris Stefan Hinker EMEA Hardware Principal Sales Consultant
Agenda /root darf alles, warum eigentlich? Solaris RBAC Rollen, Rechte & Profile Wozu das alles Zwei Beispiele Das 4-Augen Prinzip Ein drittes Beispiel <Insert Picture Here> 3
Rechte in traditionellen Unix-Systemen /root und normale Benutzer Datei-Rechte, ACLs Set-UID & Co. Probleme: Alles oder Nichts Zielkonflikt Sicherheit oder Funktion Fehlende Nachvollziehbarkeit Workarounds: Personalisierte Accounts mit UID 0 sudo 4
Role Based Access Control als Lösung Ausgangspunkt ist der normale Benutzer Zusätzliche Rechte je nach Aufgabengebiet Benutzer /root kann ganz vermieden werden Feinkörnige Rechtevergabe Vollständige Nachvollziehbarkeit Verbesserte Systemsicherheit /root 5
RBAC Komponenten (1) Privileges Feinkörnige Berechtigungen eines Prozesses z.b. FILE_DAC_READ oder NET_ACCESS Definiert im Kernel Vergeben an Benutzer oder Rolle /etc/user_attr /etc/security/prof_attr Vergeben an Anwendung /etc/security/exec_attr Überwacht durch Kernel Siehe privileges (5) Setzen und abfragen mit ppriv (1) 6
RBAC Beispiel Privileges pfexec ppriv S 1158 1158: /usr/apache2/2.2/bin/httpd k start flags = <none> E: basic I: basic P: basic L: all ppriv l basic file_link_any file_read file_write net_access proc_exec proc_fork proc_info proc_session 7
RBAC Komponenten (2) Authorizations Beliebige Berechtigungen Definiert in /etc/security/auth_attr Zugewiesen an Benutzer oder Rolle /etc/user_attr /etc/security/prof_attr Abgefragt durch Anwendung nicht durch Kernel! 8
RBAC Beispiel Authorizations /etc/user_attr: zfssnap::::type=role;auths=solaris.smf.manage.zfsauto snapshot;profiles=zfs File System Management /etc/security/auth_attr: solaris.smf.manage.zfs auto snapshot:::manage the ZFS Automatic Snapshot Service:: 9
RBAC Komponenten (3) Profile Zusammenfassung von Rechten Erleichtert die Verwaltung und Zuweisung Einem User oder Rolle zugewiesen Rollen Spezieller Typ von Account Kein direkter Login Zugänglich nur für definierte Benutzer 10
RBAC Beispiel Profile /etc/security/prof_attr Object Access Management:::Change ownership and permission on files:help=rtobaccessmngmnt.html Console User:::Manage System as the Console User:profiles=Desktop Removable Media User,Suspend To RAM,Suspend To Disk,Brightness,CPU Power Management,Network Autoconf /etc/security/exec_attr Object Access Management: solaris:cmd:::/usr/bin/chgrp:privs=file_chown 11
RBAC Beispiel Rollen: /etc/user_attr root::::type=role;auths=solaris.*,solaris.grant; profiles=web Console Management, All; lock_after_retries=no;clearance=admin_high; min_label=admin_low shinker::::type=normal;roles=root,webservd webservd::::type=role; auths=solaris.smf.manage.apache/server 12
Agenda /root darf alles, warum eigentlich? Solaris RBAC Rollen, Rechte & Profile Wozu das alles Zwei Beispiele Das 4-Augen Prinzip Ein drittes Beispiel <Insert Picture Here> 13
Beispiel 1 Webserver mit minimalen Rechten Webserver muss priviligierten Port 80 verwenden Dafür braucht man das Privileg net_privaddr Lösung: Webserver als User webservd starten, nicht als /root Beim Start das Privileg net_privaddr mitgeben, bspw. per SMF Ggf. nicht benötigte Rechte entfernen z.b. proc_session, proc_info, file_link_any Ggf. Rechte für Logfiles etc. anpassen 14
Beispiel 1 Webserver mit minimalen Rechten # svccfg s apache2 svc:/network/http:apache2> setprop start/user = astring: webservd svc:/network/http:apache2> setprop start/group = astring: webservd svc:/network/http:apache2> setprop start/privileges = astring: basic,!proc_session,! proc_info,!file_link_any,net_privaddr svc:/network/http:apache2> setprop start/limit_privileges = astring: :default 15
Beispiel 2 Eingeschränkte Admin-Rechte Anforderung: Administratoren ohne Zugriff auf Anwendungsdaten Lösung: Profil Restricted Admin Kein Object Access Management Keine Passwort-Vergabe etc. Abgeleitet von System Administrator Entsprechende Rolle hierzu Es verbleiben wenige Admin-Aufgaben, die weiterhin mit vollen Rechten ausgeführt werden müssen 16
Beispiel 2 Eingeschränkte Admin-Rechte Implementierung (1) /etc/security/prof_attr Restricted System Administrator:::Can perform most non security administrative tasks but has no access to other user data:profiles=audit Review,Printer Management,Cron Management,Device Management,File System Management,Mail Management,Maintenance and Repair,Name Service Management,Network Management,Process Management,Software Installation,Project Management,All 17
Beispiel 2 Eingeschränkte Admin-Rechte Implementierung (2) Rolle mit Profil Restricted System Administrator roleadd c Restricted System Admin Role b /export/home m g 10 u 333 s /bin/pfsh P Restricted System Administrator restadmin Zuweisen der Rolle an einen Benutzer usermod R restadmin mueller Neuer Benutzer mit zugewiesener Rolle useradd c Otto Mayer b /export/home m g 10 u 12345 s /bin/bash R restadmin mayer 18
Beispiel 2 Eingeschränkte Admin-Rechte Ergebnis Nur definierte Benutzer haben Zugang zu den Administrations-Rollen Passwort-Kenntnis allein reicht nicht aus! Damit ist auch eine 4-Augen Regelung bspw. für /root möglich Restricted Admin hat u.a. keinen Zugriff auf mount, chown, setfacl, getfacl, svcadm, svccfg Dateien, deren Rechte ihm keinen Zugang erlauben Bei Bedarf: Auditing Logins und Rollenwechsel Kommandos... 19
Agenda /root darf alles, warum eigentlich? Solaris RBAC Rollen, Rechte & Profile Wozu das alles Zwei Beispiele Das 4-Augen Prinzip Ein drittes Beispiel <Insert Picture Here> 20
4-Augen-Prinzip mit RBAC Anforderung Bestimmte Berechtigungen sind besonders sensitiv 2 unterschiedliche Personen zur Authorisierung notwendig Umsetzung Rolle mit Rechten an sensitiven Operationen Benutzer mit Zugriff auf diese Rolle Ohne Kenntnis des Rollen-Passworts Zweite Person kennt das Rollen-Passwort Diese hat selbst keinen Zugriff auf die Rolle Verschiedene andere Varianten denkbar 21
4-Augen-Prinzip Beispiel /root als Rolle /etc/user_attr: root::::min_label=admin_low;lock_after_retries=no; auths=solaris.*,solaris.grant;audit_flags=lo\:no;p rofiles=all;clearance=admin_high;type=role User otto darf /root werden: /etc/user_attr: otto::::type=normal;roles=root Otto kennt das Passwort der Rolle root nicht 22
23
24