IT Security Januar / Februar 2024
Effiziente Cybersicherheit – Ökosysteme aus Menschen, Expertise, Services und Technologie Im Visier der Cyberkriminellen – Effektive Abwehr durch sichere Authentifizierung Von wegen Drahtseilakt! So gelingt Unternehmen der sichere Einsatz von KI-Lösungen Fein-granulare Autorisierung – Warum der Hype?
Effiziente Cybersicherheit – Ökosysteme aus Menschen, Expertise, Services und Technologie
Im Visier der Cyberkriminellen – Effektive Abwehr durch sichere Authentifizierung
Von wegen Drahtseilakt! So gelingt Unternehmen der sichere Einsatz von KI-Lösungen
Fein-granulare Autorisierung – Warum der Hype?
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
<strong>IT</strong> SECUR<strong>IT</strong>Y | 43<br />
➤ eine Ressource, auf welcher die Aktion<br />
ausgeführt werden soll, etwa<br />
ein Dokument oder eine Datei<br />
Diese „Triplets“ aus SUBJEKT, AKTION<br />
und RESOURCE werden in Policies verwendet,<br />
um die Anforderungen für gewährte<br />
oder verweigerte Zugriffe zu<br />
formulieren. Eine Beispiel-Policy könnte<br />
besagen, dass „eine Ressource nur gelöscht<br />
werden darf, wenn das Subjekt<br />
sich per MFA angemeldet hat und entweder<br />
Mitglied in der Gruppe „admin“<br />
ist ODER Eigentümer der Ressource“.<br />
Listing 2 zeigt, wie solch eine Policy am<br />
Beispiel von REGO mit dem Open Policy<br />
Agent umgesetzt werden könnte:<br />
Standardmäßig wird Zugriff verweigert<br />
(Zeile 2 als Default-Wert). In den<br />
folgenden Zeilen werden Teil-Policies<br />
geprüft: Ist das Subjekt in bekannter<br />
Gruppe (Zeile 4-8), bzw. ist es Ressourceneigentümer<br />
(Zeile 9-11) oder per<br />
MFA authentifiziert (Zeile 12-15). Das<br />
Herzstück der Policy sind die Bedingungen<br />
in den darauffolgenden Blöcken<br />
(Zeile 16-27), die die Anforderungen<br />
kombinieren und nur bei Erfüllung<br />
„true“ für das Policy-Ergebnis „allow“<br />
zurückgeben.<br />
Mit einer solchen Policy kann eine Anwendung<br />
alle Autorisierungsentscheidungen<br />
an einen externen PDP wie den<br />
Open Policy Agent auslagern. Die Anwendung<br />
muss nur den Kontext mitliefern:<br />
Subjekt, Ressource und Aktion. Die<br />
Entscheidung des PDP („allow“) wird<br />
von der Anwendung ausgewertet und<br />
umgesetzt. Das Beispiel zeigt die<br />
Grundprinzipien, ohne fortgeschrittene<br />
Techniken wie wiederverwendbare<br />
Sub-Policies oder externe Datenbankintegration<br />
als Policy Information Service<br />
(PIP). Dennoch demonstriert es die Stärke<br />
des Ansatzes:<br />
LISTING 2<br />
1 authz.check_permission<br />
2 default allow := false<br />
3 allowed_groups := [‟admin”, ‟member”] # required user groups<br />
4 # check if user has required group<br />
5 group_permitted if {<br />
6 user_group := input.group<br />
7 user_group in allowed_groups<br />
8 }<br />
9 resource_owner if {<br />
10 input.resource.owner == input.user<br />
11 }<br />
12 # check if user has MFA enabled<br />
13 mfa_enabled if {<br />
14 input.mfa == true<br />
15 }<br />
16 # allow if: mfa-enabled AND user in permitted group<br />
17 allow if {<br />
18 mfa_enabled == true<br />
19 input.action == ‟delete”<br />
20 group_permitted == true<br />
21 }<br />
22 # OR allow if: mfa-enabled AND user is resource owner<br />
23 allow if {<br />
24 mfa_enabled == true<br />
25 input.action == ‟delete”<br />
26 resource_owner == true<br />
27 }<br />
➤ Zugriffsregeln werden in einer universellen<br />
Beschreibungssprache formuliert<br />
und im zentralen Policy-Register<br />
gesammelt.<br />
➤ Policies können einen gemanagten<br />
Review- und Freigabeprozess durchlaufen.<br />
➤ Die Entscheidungslogik wird an einen<br />
PDP delegiert, der Auswertung<br />
und Protokollierung vereinheitlicht.<br />
➤ Feingranulares Zugriffsmanagement<br />
kann konsistent über die gesamte<br />
Applikationslandschaft realisiert<br />
werden, dank einer universellen Beschreibungssprache,<br />
und unabhängig<br />
von der Programmierumgebung<br />
der jeweiligen Anwendung.<br />
Fazit<br />
Das Thema feingranulare Autorisierung<br />
ist für alle Unternehmen mit eigenen<br />
Projekten in der Softwareentwicklung<br />
ein relevanter Agendapunkt für den<br />
Austausch zwischen CTO, CIO und der<br />
Anwendungsentwicklung. Gerade bei<br />
agilen Entwicklungsprojekten und einem<br />
dynamischen Umfeld in der <strong>IT</strong> sollte<br />
über eine weitergehende Zentralisierung<br />
des Access Management und eine<br />
Ergänzung um Authorization Services<br />
nachgedacht werden. Für lediglich<br />
„konsumierende“ <strong>IT</strong>-Abteilungen mit<br />
vornehmlich SaaS-basierten externen<br />
Services kann FGA zwar interessant<br />
sein, allerdings wird die Anwendung<br />
hier eher auf Attribut- und Kontext-bezogene<br />
Policy-Erweiterung für einfache<br />
„JA/NEIN“ Entscheidungen limitiert,<br />
da eine direkte Anpassung der Applikationslogik<br />
häufig nicht möglich ist.<br />
Sebastian Rohr, Roland Baum<br />
https://www.umbrella.associates/<br />
www.it-daily.net | <strong>Januar</strong>/<strong>Februar</strong> <strong>2024</strong>