Aikido

Cómo construir un panel de administración seguro para tu aplicación SaaS

Willem DelbareWillem Delbare
|
No se encontraron elementos.

¿Cómo puedes evitar errores comunes al construir un panel de administración SaaS? Describiremos algunos escollos y posibles soluciones específicamente para todos los desarrolladores de SaaS.

¿Qué sucede cuando estás desarrollando una aplicación SaaS que tiene más de unos pocos clientes? En algún momento, ¡lo inevitable ocurre! Tu equipo de ventas y de éxito del cliente se acerca al equipo de desarrollo con requisitos como:

  • Muéstrame qué cuentas se utilizan activamente
  • Permítame acceder a una cuenta de cliente para soporte técnico
  • Habilitar o deshabilitar una feature flag específica para alguna cuenta
  • Algunos usuarios no pueden iniciar sesión, ¿podrías decirme qué método utilizan para autenticarse?
  • Tengo un revendedor y necesita acceso a sus subcuentas.
  • Necesito extender una prueba gratuita para una cuenta.
  • Una cuenta necesita una configuración específica que solo los agentes de éxito del cliente deberían poder configurar.
  • Muéstrame el MRR total para un grupo específico de clientes.

Hay una variedad de herramientas que pueden cubrir algunos de estos casos de uso. Las herramientas PLG como Segment y journy.io pueden realizar un seguimiento de la actividad. Quizás utilices un servicio de indicadores de funciones como LaunchDarkly. Stripe o Chargebee podrían gestionar algunos de los aspectos relacionados con la facturación. Por otra parte, los problemas relacionados con la autenticación podrían ser visibles en tu Auth0 . Sin embargo, es poco probable que utilices todas estas plataformas. Incluso si lo hicieras, probablemente no podrías cubrir algunos casos de uso.

La solución es construir un panel de administración personalizado. Parece que hay algunos frameworks y servicios comerciales disponibles para empezar rápidamente. Pero, ¿cómo eliges uno frente a construir el tuyo propio desde cero?

Evita los paneles de administración integrados en tu aplicación

Como principio fundamental, abogamos por evitar cualquier panel de administración inyectado en el código de su aplicación principal, como hace ActiveAdmin. Esto presenta muchas desventajas:

  • Es probable que se detecten nuevas rutas de API de administración en el código cliente de su aplicación, y los atacantes pueden sondear o explotar esta vulnerabilidad.
  • Es probable que termine con múltiples tipos de usuarios dentro de una única base de código, lo que complica las revisiones de control de acceso.
  • Añadir funciones de protección adicionales, como restringir el acceso desde una única dirección IP, será mucho más difícil.
  • Si se detecta un problema crítico en el código del panel de administración, es más difícil desconectarlo sin desconectar tu aplicación.

Las aplicaciones que no siguen este principio tienen una mayor probabilidad de aparecer en historias de Slashdot. Aquí hay una: https://yro.slashdot.org/story/23/01/09/221207/researchers-track-gps-location-of-all-of-californias-new-digital-license-plates. Cabe destacar que esta historia demuestra que es posible actualizar una cuenta de usuario a una cuenta de superadministrador que puede ver datos de otros usuarios.

Elija un panel de administración con un registro de auditoría de acciones de usuario.

Por si hay que decirlo, eso significa que tus administradores deberán autenticarse con cuentas de usuario separadas. (¡Nada de iniciar sesión con una contraseña compartida usando support@app.io!). ¿Cuál es la ventaja de esto? Si se actualiza alguna configuración de cuenta sensible, podrás averiguar más tarde quién realizó el cambio.

Exigir al menos 2FA (o 3FA) para autenticar a los usuarios administradores

Elige una solución de panel de administración que te permita añadir factores adicionales además de la 2FA, como restricciones de IP o acceso a través de otras soluciones de confianza cero.

Lista de verificación para un panel de administración seguro. Evita los paneles de administración integrados en tu aplicación. Elige un panel de administración con un registro de auditoría de acciones de usuario. Aplica al menos 2FA (o 3FA) para autenticar a los usuarios administradores.

Bonus: Usa cabeceras de Content Security Policy (CSP) para bloquear JavaScript desconocido

Bloquear JavaScript desconocido es crítico, especialmente en portales de administración internos. A continuación, un ejemplo de cómo Apple fue vulnerable a una vulnerabilidad de inyección de correo electrónico, que podría haberse resuelto con simples cabeceras CSP.

Este tuit me recordó una vez que estaba hackeando en el programa de recompensas por errores de Apple. Encontré, entre otras cosas, una cita de Harry Potter codificada en base64 en una página interna de depuración y administración de cuentas de iCloud. Esta es la primera vez que comparto esto, ya que han pasado más de 90 días… https://t.co/CBc8QC5y3i pic.twitter.com/BNauDq7w01

— Sam Curry (@samwcyo) 24 de diciembre de 2023

Reflexiones finales sobre la construcción de un panel de administración seguro

Sí, es posible construir un panel de administración seguro para tu aplicación. Tendrás que elegir un framework que te ayude o una solución SaaS o low-code existente para empezar. Siempre que lo mantengas separado de tu aplicación principal y se comunique con ella a través de APIs privadas, no deberías tener problemas.

Aikido es una herramienta de seguridad para aplicaciones todo en uno. ¿Quieres saber si tu aplicación es segura? Empieza a escanearla gratis.

4.7/5

Protege tu software ahora.

Empieza gratis
Sin tarjeta
Solicitar una demo
Sus datos no se compartirán · Acceso de solo lectura · No se requiere tarjeta de crédito

Asegúrate ahora.

Proteja su código, la nube y el entorno de ejecución en un único sistema central.
Encuentre y corrija vulnerabilidades de forma rápida y automática.

No se requiere tarjeta de crédito | Resultados del escaneo en 32 segundos.
No se encontraron elementos.