Aikido

Wie man ein sicheres Admin-Panel für seine SaaS-App erstellt

Willem DelbareWillem Delbare
|
Keine Elemente gefunden.

Wie können Sie häufige Fehler beim Aufbau eines SaaS-Admin-Panels vermeiden? Wir zeigen einige Fallstricke und potenzielle Lösungen speziell für alle SaaS-Entwickler auf!

Was passiert, wenn Sie eine SaaS-Anwendung entwickeln, die mehr als nur ein paar Kunden hat? Irgendwann geschieht das Unvermeidliche! Ihre Vertriebs- und Customer Success-Mitarbeiter kommen mit Anforderungen wie diesen auf das Entwicklungsteam zu:

  • Zeigen Sie mir, welche Konten aktiv genutzt werden
  • Mir den Zugriff auf ein Kundenkonto für den technischen Support ermöglichen
  • Eine spezifische Feature Flag für ein bestimmtes Konto aktivieren oder deaktivieren
  • Einige Nutzende können sich nicht anmelden. Können Sie mir sagen, welche Methode sie zur Authentifizierung verwenden?
  • Ich habe einen Reseller und dieser benötigt Zugriff auf seine Unterkonten
  • Ich muss einen kostenlosen Testzeitraum für ein Konto verlängern
  • Ein Konto benötigt eine spezifische Konfiguration, die nur von Customer Success Agents eingerichtet werden sollte.
  • Zeigen Sie mir den gesamten MRR für eine bestimmte Kundengruppe.

Eine Vielzahl von Tools kann einige dieser Anwendungsfälle abdecken. PLG-Tools wie Segment und journy.io können Aktivitäten verfolgen. Vielleicht nutzen Sie einen Feature-Flag-Dienst wie LaunchDarkly. Stripe oder Chargebee könnten einige der abrechnungsbezogenen Aspekte verwalten. Probleme im Zusammenhang mit der Authentifizierung könnten hingegen in Ihrem Auth0 sichtbar sein. Es ist jedoch unwahrscheinlich, dass Sie alle diese Plattformen nutzen. Selbst wenn Sie dies tun, können Sie wahrscheinlich einige Anwendungsfälle nicht abdecken.

Die Lösung ist der Aufbau eines benutzerdefinierten Admin-Panels. Es gibt anscheinend einige Frameworks und kommerzielle Dienste, um schnell loszulegen. Doch wie entscheidet man sich für eines davon, anstatt ein eigenes von Grund auf neu zu entwickeln?

Vermeiden Sie in Ihre App integrierte Admin-Panels

Grundsätzlich raten wir davon ab, ein Admin-Panel direkt in den Code Ihrer Hauptanwendung zu injizieren, wie es ActiveAdmin tut. Dies hat viele Nachteile:

  • Neue Admin-API-Routen können wahrscheinlich im Client-Code Ihrer App erkannt werden, und Angreifer können diese Schwachstelle sondieren oder angreifen.
  • Sie werden wahrscheinlich mehrere Arten von Benutzern innerhalb einer Codebase haben, was die Überprüfung der Zugriffskontrolle erschwert.
  • Das Hinzufügen zusätzlicher Schutzfunktionen, wie die Einschränkung des Zugriffs von einer einzelnen IP-Adresse, wird wesentlich schwieriger sein.
  • Wenn ein kritisches Problem im Admin-Panel-Code erkannt wird, ist es schwieriger, es offline zu nehmen, ohne Ihre App ebenfalls offline zu nehmen.

Apps, die diesem Prinzip nicht folgen, haben eine höhere Wahrscheinlichkeit, in Slashdot-Artikeln zu landen. Hier ist ein Beispiel: https://yro.slashdot.org/story/23/01/09/221207/researchers-track-gps-location-of-all-of-californias-new-digital-license-plates. Bemerkenswerterweise zeigt diese Geschichte, dass es möglich ist, ein Benutzerkonto zu einem Super-Admin-Konto hochzustufen, das Daten anderer Benutzer einsehen kann.

Wählen Sie ein Admin-Panel mit einem Audit-Log für Benutzeraktionen

Falls es gesagt werden muss: Das bedeutet, dass Ihre Admins sich mit separaten Benutzerkonten authentifizieren müssen. (Kein Login mit einem geteilten Passwort über support@app.io!). Was ist der Vorteil davon? Wenn sensible Kontoeinstellungen aktualisiert werden, können Sie später herausfinden, wer die Änderung vorgenommen hat.

Mindestens 2FA (oder 3FA) zur Authentifizierung von Admin-Benutzern durchsetzen

Wählen Sie eine Admin-Panel-Lösung, die es Ihnen ermöglicht, zusätzliche Faktoren über 2FA hinaus hinzuzufügen, wie IP-Beschränkungen oder den Zugriff über andere Zero-Trust-Lösungen.

Checkliste für sichere Admin-Panels. Vermeiden Sie Admin-Panels, die in Ihre App integriert sind. Wählen Sie ein Admin-Panel mit einem Audit-Log für Benutzeraktionen. Erzwingen Sie mindestens 2FA (oder 3FA) zur Authentifizierung von Admin-Benutzern.

Bonus: Verwenden Sie Content Security Policy (CSP) Header, um unbekanntes JavaScript zu blockieren

Das Blockieren unbekannten JavaScripts ist entscheidend, insbesondere auf internen Admin-Portalen. Unten ein Beispiel, wie Apple anfällig für eine E-Mail-Injection-Schwachstelle war, die mit einfachen CSP-Headern hätte behoben werden können.

Dieser Tweet erinnerte mich an eine Zeit, als ich am Bug-Bounty-Programm von Apple arbeitete. Ich fand, unter anderem, ein base64-kodiertes Harry-Potter-Zitat auf einer internen iCloud-Konto-Debug- und Administrationsseite. Dies ist das erste Mal, dass ich dies teile, da mehr als 90 Tage vergangen sind… https://t.co/CBc8QC5y3i pic.twitter.com/BNauDq7w01

— Sam Curry (@samwcyo) 24. Dezember 2023

Abschließende Gedanken zum Aufbau eines sicheren Admin-Panels

Ja, es ist möglich, ein sicheres Admin-Panel für Ihre App zu erstellen. Sie müssen sich entweder für ein Framework oder eine bestehende SaaS- oder Low-Code-Lösung entscheiden, um den Einstieg zu erleichtern. Solange Sie es von Ihrer Haupt-App getrennt halten und die Kommunikation mit Ihrer Haupt-App über private APIs erfolgt, sollte alles in Ordnung sein.

Aikido ein All-in-One-Tool für Anwendungssicherheit. Möchten Sie wissen, ob Ihre App sicher ist? Starten Sie einen kostenlosen Scan.

4.7/5

Sichern Sie Ihre Software jetzt.

Kostenlos starten
Ohne Kreditkarte
Demo buchen
Ihre Daten werden nicht weitergegeben · Nur Lesezugriff · Keine Kreditkarte erforderlich

Werden Sie jetzt sicher.

Sichern Sie Ihren Code, Ihre Cloud und Ihre Laufzeit in einem zentralen System.
Finden und beheben Sie Schwachstellen schnell und automatisch.

Keine Kreditkarte erforderlich | Scan-Ergebnisse in 32 Sek.
Keine Elemente gefunden.