Aikido

Como construir um painel de administração seguro para sua aplicação SaaS

Willem DelbareWillem Delbare
|
Nenhum item encontrado.

Como você pode evitar erros comuns ao construir um painel de administração SaaS? Apresentaremos algumas armadilhas e soluções potenciais especificamente para todos vocês, construtores de SaaS!

O que acontece quando você está construindo um aplicativo SaaS que tem mais do que alguns clientes? Em algum momento, o inevitável acontece! Suas equipes de vendas e sucesso do cliente chegam à equipe de desenvolvimento com requisitos como:

  • Mostre-me quais contas estão sendo usadas ativamente
  • Permita-me acessar uma conta de cliente para suporte técnico
  • Habilitar ou desabilitar um feature flag específico para alguma conta
  • Alguns usuários não conseguem fazer login, você pode me dizer qual método eles usam para autenticar?
  • Tenho um revendedor e ele precisa de acesso às suas subcontas
  • Preciso estender um período de teste gratuito para uma conta
  • Uma conta precisa de uma configuração específica que apenas agentes de sucesso do cliente devem poder configurar
  • Mostre-me o MRR total para um grupo específico de clientes.

Uma variedade de ferramentas pode cobrir alguns desses casos de uso. Ferramentas PLG como Segment e journy.io podem rastrear atividades. Talvez você use um serviço de sinalização de recursos, como o LaunchDarkly. O Stripe ou o Chargebee podem gerenciar alguns dos aspectos relacionados ao faturamento. Enquanto isso, problemas relacionados à autenticação podem ser visíveis na sua Auth0 . No entanto, é improvável que você esteja usando todas essas plataformas. Mesmo que esteja, provavelmente não conseguirá cobrir alguns casos de uso.

A solução é construir um painel de administração personalizado. Parece haver alguns frameworks e serviços comerciais disponíveis para começar rapidamente. Mas, como escolher um em vez de construir o seu próprio do zero?

Evite painéis de administração integrados ao seu aplicativo

Como primeiro princípio, defendemos evitar qualquer painel de administração injetado no código do seu aplicativo principal, como faz o ActiveAdmin. Isso apresenta muitas desvantagens:

  • Novas rotas de API de administração podem ser detectadas no código cliente do seu aplicativo, e atacantes podem sondar ou explorar essa vulnerabilidade
  • Você provavelmente acabará com múltiplos tipos de usuários dentro de uma única base de código, complicando as revisões de controle de acesso.
  • Adicionar recursos de proteção extras, como restringir o acesso a partir de um único endereço IP, será muito mais difícil
  • Se um problema crítico for detectado no código do painel de administração, é mais difícil tirá-lo do ar sem tirar seu aplicativo do ar.

Aplicativos que não seguem este princípio têm uma chance maior de aparecer em notícias do Slashdot. Aqui está uma: https://yro.slashdot.org/story/23/01/09/221207/researchers-track-gps-location-of-all-of-californias-new-digital-license-plates. Notavelmente, esta história demonstra que é possível atualizar uma conta de usuário para uma conta de superadministrador que pode visualizar dados de outros usuários.

Escolha um painel de administração com um log de auditoria de ações do usuário

Caso precise ser dito, isso significa que seus administradores precisarão se autenticar com contas de usuário separadas. (Nada de fazer login com uma senha compartilhada usando support@app.io!). Qual a vantagem disso? Se alguma configuração de conta sensível for atualizada, você poderá descobrir mais tarde quem fez a alteração.

Imponha pelo menos 2FA (ou 3FA) para autenticar usuários administradores

Escolha uma solução de painel de administração que permita adicionar fatores extras além do 2FA, como restrições de IP ou acesso via outras soluções zero-trust.

Checklist de painel de administração seguro. Evite painéis de administração integrados ao seu aplicativo. Escolha um painel de administração com um log de auditoria de ações do usuário. Imponha pelo menos 2FA (ou 3FA) para autenticar usuários administradores.

Bônus: Use cabeçalhos de Content Security Policy (CSP) para bloquear javascript desconhecido

Bloquear javascript desconhecido é crítico, especialmente em portais de administração internos. Abaixo, um exemplo de como a Apple foi vulnerável a uma falha de injeção de e-mail, que poderia ter sido resolvida com cabeçalhos CSP simples.

Este tweet me lembrou de uma época em que eu estava trabalhando no programa de bug bounty da Apple. Encontrei, entre outras coisas, uma citação de Harry Potter codificada em base64 em uma página interna de depuração e administração de conta do iCloud. Esta é a primeira vez que compartilho isso, pois mais de 90 dias se passaram... https://t.co/CBc8QC5y3i pic.twitter.com/BNauDq7w01

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

Considerações finais sobre a construção de um painel de administração seguro

Sim, é possível construir um painel de administração seguro para o seu aplicativo. Você terá que escolher um framework para ajudá-lo ou uma solução SaaS ou low-code existente para começar. Desde que você o mantenha separado do seu aplicativo principal e o faça se comunicar com seu aplicativo principal por meio de APIs privadas, você estará pronto para prosseguir.

Aikido uma ferramenta de segurança de aplicações tudo-em-um. Quer verificar se a sua aplicação está segura? Comece a fazer a verificação gratuitamente.

4.7/5

Proteja seu software agora

Comece Gratuitamente
Não é necessário cc
Agendar uma demonstração
Seus dados não serão compartilhados · Acesso somente leitura · Não é necessário cartão de crédito

Fique seguro agora

Proteja seu código, Cloud e runtime em um único sistema centralizado.
Encontre e corrija vulnerabilidades rapidamente de forma automática.

Não é necessário cartão de crédito | Resultados da varredura em 32 segundos.
Nenhum item encontrado.