API-Key-Check

Der API-Key-Check überprüft die Konfiguration der im System hinterlegten API-Keys auf sicherheitsrelevante Aspekte. Ziel ist es, das Risiko bei einem Kompromittieren eines API-Keys zu minimieren, indem deren Berechtigungsumfang und Gültigkeitsdauer eingeschränkt werden.

Folgende Aspekte werden geprüft:

  • Berechtigungsumfang: Es wird geprüft, ob einem API-Key zu viele Organisationen, Rollen oder Rechte zugewiesen sind. Ein API-Key sollte nach dem Prinzip der minimalen Rechtevergabe (Least Privilege) konfiguriert sein.

  • Gültigkeitsdauer: API-Keys mit einer sehr langen oder unbegrenzten Gültigkeitsdauer stellen ein erhöhtes Risiko dar. Der Check prüft, ob die Laufzeit einen konfigurierten Schwellwert überschreitet.

  • Schlüssel-Länge: Um Brute-Force-Angriffe zu erschweren, wird die Länge des API-Keys geprüft.

  • Kritische Rollen: Es wird explizit gewarnt, wenn einem API-Key die Rolle bpcadmin zugewiesen wurde, da dies Vollzugriff auf das System ermöglicht.

Konfiguration des Checks

Die Schwellwerte für die Prüfung können in der Konfigurationsdatei KARAF/etc/de.virtimo.bpc.core.security.checks.cfg angepasst werden.

Parameter Standardwert Beschreibung

apiKeyMaxOrganisations

1

Maximale Anzahl an Organisationen, die einem API-Key zugewiesen sein dürfen.

apiKeyMaxRoles

2

Maximale Anzahl an Rollen, die einem API-Key zugewiesen sein dürfen.

apiKeyMaxRights

15

Maximale Anzahl an Rechten, die einem API-Key zugewiesen sein dürfen.

apiKeyMaxDurationMonths

6

Maximale Gültigkeitsdauer des API-Keys in Monaten.

apiKeyMinLength

40

Minimale erforderliche Länge des API-Keys in Zeichen.

Beispiel KARAF/etc/de.virtimo.bpc.core.security.checks.cfg
# API-Key Security Check Configuration
apiKeyMaxOrganisations=1
apiKeyMaxRoles=2
apiKeyMaxRights=15
apiKeyMaxDurationMonths=6
apiKeyMinLength=40

Vorgehen zur Absicherung

Wenn der Check Fehler oder Warnungen meldet, sollten die betroffenen API-Keys überprüft und gegebenenfalls angepasst werden:

  • Rechte einschränken: Reduzieren Sie die zugewiesenen Organisationen, Rollen und Rechte auf das absolut notwendige Minimum.

  • Laufzeit begrenzen: Erstellen Sie API-Keys mit kürzerer Laufzeit und etablieren Sie einen Prozess zur regelmäßigen Erneuerung (Rotation).

  • Lange Schlüssel verwenden: Stellen Sie sicher, dass neu generierte API-Keys die Mindestlänge von 40 Zeichen erfüllen.

  • Administrative Rollen vermeiden: Entziehen Sie API-Keys die Rolle bpcadmin. Nutzen Sie stattdessen spezifische Rollen mit eingeschränkten Berechtigungen.