Quadrical - Documentação de Segurança

Introdução

Este documento descreve as medidas, regras e serviços de segurança em vigor para a nossa plataforma de Software como Serviço (SaaS) e o aplicativo de painel (dashboard). É utilizado um webapp em Next.js. A aplicação é exposta somente por meio de um AWS Application Load Balancer (ALB) e é executada em um cluster Kubernetes (K8s). O Azure AD é utilizado para autenticação. Seus serviços de backend e bancos de dados não são expostos de forma alguma à internet, o que os torna totalmente seguros, e são gerenciados pela AWS.

Visão Geral de Segurança

Nossa aplicação foi projetada desde a base, em uma stack tecnológica com foco em segurança e privacidade, utilizando os robustos recursos de segurança da AWS e o Azure AD para autenticação. Nossa arquitetura foi projetada de forma que nenhum serviço de backend ou banco de dados fique diretamente acessível pela internet.

Application Load Balancer

A aplicação Quadrical utiliza o AWS Application Load Balancer para distribuir o tráfego de entrada da aplicação entre vários destinos, como instâncias EC2, em várias Zonas de Disponibilidade. Isso aumenta a disponibilidade e a tolerância a falhas da nossa aplicação.

O ALB realiza automaticamente verificações de integridade (health checks) nesses destinos e encaminha o tráfego somente para os que estão íntegros. Ele também é integrado ao AWS Certificate Manager (ACM), que cuida da complexidade de criar, armazenar e renovar certificados SSL/TLS.

Regras de Segurança

Os grupos de segurança são usados como um firewall virtual para controlar o tráfego de entrada e saída no nível da instância.

  • Listas de Controle de Acesso (ACLs) são usadas para negar ou permitir tráfego de endereços IP ou sub-redes específicos no nível da sub-rede.
  • O ALB criptografa e descriptografa automaticamente as solicitações e respostas dos clientes, usando Secure Socket Layer (SSL) ou Transport Layer Security (TLS).

Arquitetura de Análise de Dados

Do ambiente do cliente ao ambiente Quadrical: como os dados saem da planta, atravessam o gateway e chegam às camadas de frontend, backend e armazenamento.

Arquitetura de Análise de Dados

Monitoramento e Auditoria

  • O AWS CloudTrail é utilizado para governança, conformidade, auditoria operacional e auditoria de riscos da nossa conta AWS.
  • O AWS CloudWatch é utilizado para coletar e acompanhar métricas, coletar e monitorar arquivos de log, configurar alarmes e reagir automaticamente a mudanças nos recursos da AWS.

Como a Segurança é Construída

Cada camada da plataforma tem as suas próprias regras de segurança — da orquestração de contêineres à resposta a incidentes.

Cluster Kubernetes (K8s)

A aplicação Quadrical é executada em um cluster Kubernetes gerenciado pela AWS. Isso proporciona um serviço de orquestração de contêineres escalável e de alto desempenho, que oferece suporte a atualizações e patches automatizados de versão, escalonamento de instâncias e clusters Multi-AZ para alta disponibilidade.

Regras de Segurança

  • O AWS Identity and Access Management (IAM) é utilizado para gerenciar o acesso ao nosso cluster Kubernetes. Isso garante que SOMENTE pessoal autorizado possa acessar os recursos da Quadrical.
  • O AWS Key Management Service (KMS) é utilizado para criar e controlar as chaves criptográficas usadas para criptografar e descriptografar dados.
  • O AWS Secrets Manager é utilizado para proteger o acesso a aplicações, serviços e recursos de TI. Isso elimina o investimento inicial e contínuo na operação de uma infraestrutura própria para o gerenciamento de segredos.
Autenticação com Azure AD

O Azure Active Directory (AD) é utilizado para o gerenciamento seguro de identidades e acessos em nível corporativo. Dessa forma, cria-se uma camada adicional de segurança por meio de autenticação multifator, políticas de acesso condicional e proteção de identidade.

Regras de Segurança

  • Todos os usuários devem se autenticar via Azure AD antes de acessar o aplicativo da plataforma Quadrical.
  • As políticas de Acesso Condicional do Azure AD são utilizadas para tomar decisões automatizadas de controle de acesso ao aplicativo da plataforma, com base em condições.
Segurança do Banco de Dados

Nossos bancos de dados são gerenciados pela AWS e não são expostos à internet, garantindo a integridade e a privacidade dos dados.

Regras de Segurança

  • O acesso ao banco de dados é controlado por meio de funções (roles) e políticas do AWS IAM.
  • O AWS RDS é utilizado para fazer o backup automático dos bancos de dados, permitindo a recuperação pontual (point-in-time recovery).
  • Todos os dados armazenados no banco de dados são criptografados em repouso, usando chaves gerenciadas pelo AWS Key Management Service.
  • A atividade do banco de dados é monitorada por meio do AWS CloudTrail para detectar qualquer atividade suspeita ou tentativa de acesso não autorizado.
Segurança de Rede
  • Os VPC Flow Logs capturam informações sobre o tráfego IP de entrada e saída das interfaces de rede na VPC.
  • O AWS WAF é um firewall de aplicações web que ajuda a proteger nossas aplicações web contra explorações (exploits) comuns, como injeção de SQL e ataques de cross-site scripting (XSS). Ele oferece regras personalizadas que podem ser ajustadas às nossas necessidades específicas.
Segurança de Dados
  • Todos os dados transmitidos entre cliente e servidor são criptografados com SSL/TLS.
  • Os dados armazenados em nossos bancos de dados são criptografados em repouso, usando chaves gerenciadas pelo AWS Key Management Service.
Resposta e Gerenciamento de Incidentes

Há um plano de resposta a incidentes predefinido para garantir resposta e correção oportunas em caso de incidentes ou violações de segurança. Realizamos avaliações periódicas de segurança, varreduras de vulnerabilidades e testes de penetração para identificar e corrigir quaisquer fragilidades de segurança em nossa infraestrutura.

Boas Práticas de Segurança
  • Princípio do menor privilégio: seguindo o princípio do menor privilégio, garantimos conceder apenas o acesso mínimo necessário para que um usuário ou serviço desempenhe sua função.
  • Aplicação regular de patches: garantimos que nossos sistemas, aplicações e dependências sejam mantidos atualizados com os patches de segurança mais recentes.
  • Treinamento de funcionários: os membros da nossa equipe são treinados em boas práticas de segurança e devem seguir nossas políticas e diretrizes de segurança.
Conclusão

Nossa aplicação SaaS foi projetada com forte foco em segurança, aproveitando os robustos recursos e serviços de segurança da AWS, bem como o Azure AD para autenticação. Monitoramos e atualizamos continuamente nossa infraestrutura e nossas práticas para garantir o mais alto nível de segurança para nossos usuários e seus dados.

Implantado em 8500 MW Solar + 9000 MWh de Armazenamento + 200 MW Eólica