19.01.2024 Aufrufe

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?

MEHR ANZEIGEN
WENIGER ANZEIGEN

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>

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!