Arquitetura

O Blazon é uma plataforma de Gestão de Identidade projetada para oferecer os mais altos níveis de qualidade em vários aspectos fundamentais, tais como usabilidade, segurança, desempenho, dentre outros. Modelada de acordo com as melhores práticas e padrões de engenharia de software, o Blazon foi construído tendo por base conceitos modernos em termos de alta disponibilidade e escalabilidade.

Componentes

A arquitetura é composta por um conjunto de camadas, estruturadas por uma série de componentes, responsáveis por prover todas as funcionalidades requeridas por processos corporativos relacionados à Gestão de Identidades, entregando um alto valor a processos ligados a Gerência de Segurança, Auditorias e Governança corporativa em Sistemas de Informação.

Principais componentes da arquitetura do Blazon.

Admin Console

O Admin Console é a aplicação destinada aos administradores para configuração, monitoramento da plataforma, acompanhamento dos processos em execução e acesso ao diretório de acessos.

Workspace

O Workspace é a aplicação utilizada pelos usuários para realizar atividades como solicitação e aprovação de acessos, certificações, acompanhamento de requisições, gestão de times e acesso ao cofre de senhas.

Access Management

O Access Management é a aplicação que permite a autenticação dos usuários, usando contexto e autenticação multifator (MFA) via protocolo SAML2.

Troca de senha

O Troca de Senha é uma aplicação web que permite ao usuário solicitar a alteração de sua senha. O processo inclui desafios de segurança, como envio de token por e-mail, SMS ou Google Authenticator. Após a validação desses desafios, a senha é atualizada conforme a política definida no Admin Console, sincronizando as alterações no Blazon e nas aplicações integradas.

Reset OTP

A aplicação Reset OTP permite redefinir a semente usada pelo aplicativo de HASH OTP.

Job Manager

Para garantir alta escalabilidade e desempenho, o sistema utiliza um modelo baseado em tarefas assíncronas. O Job Manager é o responsável por gerenciar essas tarefas.

Core Engine

Principal aplicação, é aqui que a orquestração de fluxos de trabalhos, lógicas e demais aspectos fundamentais da governança e administração de identidades corporativas são executados;

Resource Adapter

O Resource Adapter é o componente responsável por integrar o Blazon às aplicações corporativas. Ele abstrai as particularidades e complexidades de cada sistema, como protocolos LDAP, HTTP, proprietários, entre outros.

Resource Adapter Interface

O Resource Adapter Interface é uma camada de API que viabiliza a comunicação entre o Blazon e os Resource Adapters.

API Server

O API Server é uma API HTTP aberta para desenvolvimento de aplicações e integrações.

OAuth2 Authorization Server

O OAuth2 Authorization Server é o componente responsável por autenticar e autorizar o acesso às APIs, garantindo segurança no uso dos recursos.

Modelo de processamento

Essencial para decisões de projeto, o Modelo de Processamento implica diretamente na arquitetura de um sistema. Considerando os requisitos não funcionais atuais (segurança, alta disponibilidade, escalabilidade, usabilidade, accountability) e os cenários de operação (on premise e borda/nuvem), o projeto da arquitetura considerou o seguinte:

  • A arquitetura em seu todo utiliza um modelo de processamento no qual todo o trabalho necessário é divido temporal e espacialmente, visando a não sobrecarga da plataforma como um todo e, tampouco, seus módulos em particular;

  • Todas as requisições são tratadas de forma assíncrona, permitindo que os módulos sejam desacoplados (podendo inclusive ser instalados em sites completamente distintos) e, deste modo, reduz-se ao máximo timeouts e notificações de exceções;

  • Este modelo de processamento evita que um grande volume de trabalho sobrecarregue e interrompa o funcionamento da plataforma, e é essencial para escalabilidade horizontal.

Gerenciamento de sessão

Uma sessão é caracterizada pelo intervalo de tempo decorrido entre o instante em que um usuário é autenticado até o instante em que o acesso é encerrado, sendo que neste intervalo de tempo, o usuário pode requerer a execução de tarefas. Gerenciar uma sessão é então o processo de garantir que um usuário somente terá o acesso para o intervalo de tempo que lhe é outorgado e que esse usuário somente execute tarefas para as quais possui direito. Do mesmo modo, a gerência de sessão deve garantir que apenas o usuário autenticado poderá executar tarefas na sessão para a qual foi autenticado e registrar todas as atividades visando a rastreabilidade do acesso. Os seguintes componentes listados abaixo possuem manutenção de estado para sessão web:

  • Admin console;

  • Password Reset;

  • Workspace;

  • OTP Management; e

  • Web SSO.

Existem várias abordagens para a manutenção deste estado. A manutenção deste estado foi projetada para ser feita localmente, por meio de memória local, ou descentralizada por meio de configuração, utilizando Memcached, Redis ou uma base de dados relacional.

Resource Adapters

A Gestão de Identidade permeia todos os sistemas e recursos da corporação, desde sistemas pré-existentes na organização, bem como novos sistemas. Além disso, recursos físicos tais como catracas e portas podem (e deveriam) fazer parte de uma plataforma de Gestão de Identidade. Deste modo, integração de sistemas é uma das chaves para o sucesso de um projeto bem sucedido.

A arquitetura tem uma camada (Resource Adapters Layer) especialmente projetada para integrar transparentemente todos os sistemas existentes numa corporação. Visando escalabilidade e funcionamento em nuvem, esta camada foi projetada completamente desacoplada do Core Engine da plataforma, permitindo que esses adaptadores (RA) rodem em um mesmo ambiente ou em ambientes distintos, incluindo diferentes nuvens. Esses adaptadores podem ser construídos facilmente, inclusive desenvolvidos pela equipe de TI da organização, a partir de um template de RA. A Blazon Technologies oferece a capacidade de Add-on, com a finalidade de dar o máximo de independência aos clientes. A arquitetura foi projetada com as seguintes abordagens:

  • Comunicações entre a plataforma e aplicações/sistemas se dão por meio de componentes do tipo Resource Adapter;

  • Resource Adapters se comunicam com o módulo Core Engine por meio de comunicação assíncrona utilizando um Modelo de Pulling;

  • Aplicações indisponíveis não interferem no funcionamento e na garantia dos processos de provisionamento/reconciliação da plataforma;

  • Aspectos de segurança nas comunicações entre o módulo Core Engine e RAs são garantidos por meio de HTTPS e OAUTH2.

Escalabilidade

Escalabilidade é essencial quando se olha para os requisitos de alta disponibilidade e experiência de usuários (tempo de resposta). A arquitetura foi projetada para suportar escalabilidade horizontal, na qual instâncias podem ser invocadas em diferentes sites, transparentemente à operação, e passam a responder automaticamente por requisições. Esta capacidade resolve questões ligadas a alta disponibilidade, balanceamento de carga e tempo de resposta a solicitações de usuários. Os seguintes aspectos merecem ser ressaltados:

  • Com exceção do módulo Job Manager, todos os demais componentes da arquitetura são passíveis de ser escalados horizontalmente fácil e transparentemente;

  • Componentes que requerem Gerenciamento de Sessão Web precisam de garantir o correto uso da sessão e, para isto, pode-se delegar a sessão para algum componente, como já descrito ou pode-se também utilizar de mecanismos como Sticky Session.

Segurança

Segurança é um assunto transversal à estrutura organizacional das corporações, que permeia os aspectos físicos, lógicos e virtuais estruturados em três camadas: Física, de Controle e de Aplicação. Além de aspectos básicos, tais como antivírus e zonas militarizadas, a complexidade aumenta consideravelmente para atender leis, normas, padrões e políticas corporativas, tais como LGPD, ISO 27001, PCI, SOX e HIPAA, entre outros, visando a governança TI da organização.

Adicionalmente, foi feita uma análise meticulosa das fragilidades críticas de segurança em aplicativos Web, reportadas pela Fundação OWASP (Open Web Application Security Project). O projeto de cada camada, cada módulo e cada aplicação incluiu controles pró ativos de segurança, além de garantir que novos desenvolvedores continuem a proteger a manutenção e o desenvolvimento de novos módulos. Foram, portanto, utilizadas as melhores práticas de segurança de modo a atingir um alto padrão em todos os aspectos de projeto nesta disciplina.

Independentemente dos aspectos e das camadas de Segurança, há quatro propriedades que devem ser garantidas onde quer que um módulo, uma aplicação ou um sistema opere: Integridade – que garante a não alteração de dados/informações durante seu transporte; Confidencialidade – que garante que dados/informações só serão conhecidas por aqueles que portem as credenciais devidas; Disponibilidade – que garante que dados/informações estejam disponíveis quando requeridos; e Não Repúdio – que garante que um acesso feito por um colaborador não possa ser negado de tê-lo feito.

Gerência de vulnerabilidades

Considerando que vivemos em mundo altamente conectado e móvel, é impossível garantir que um ambiente é 100% seguro e, portanto, ameaças são uma constante. Isto posto, é necessário cuidar pró ativamente para que os riscos sejam monitorados, detectados, controlados e mitigados, protegendo e dando segurança ao negócio em toda a estrutura da organização.

Atuar preditiva e preventivamente é fundamental para se antecipar às ameaças e suas consequências. Gestão de Vulnerabilidades é o processo que monitora, detecta, identifica, analisa, classifica e trata eventos associados a vulnerabilidades. O saneamento de vulnerabilidades consiste na prevenção de fraquezas, controle e aplicação de correções e minimização/mitigação de efeitos colaterais na organização. A gestão de vulnerabilidades é um processo contínuo, sistemático, e que precisa monitoração pormenorizada.

Pensando em todos os aspectos descritos anteriormente, o Blazon se preocupa em garantir uma plataforma livre das vulnerabilidades abaixo (mas não se limitando apenas a elas):

  • Controle de injeção;

  • Exposição de dados desnecessários;

  • Cross-Site Scripting (XSS);

  • Cross-Site Request Forgery (XSRF);

  • Gerenciamento correto de sessões Web.

Além disso, a equipe de profissionais do Blazon se preocupa em garantir um ambiente configurado seguindo as melhores práticas de mercado, evitando a exposição desnecessária de informações e impedindo ataques como escalação de privilégios.

Cifragem

Cifragem é um método de embaralhamento de dados, baseado em algoritmos de criptografia, fundamental para garantir a confidencialidade. Sistemas/Aplicações, em geral, utilizam esses métodos de duas formas: i) embaralhamento irreversível, em geral utilizado para a confidencialidade de autenticação; e ii) embaralhamento reversível, utilizado para o transporte confidencial de dados/informações.

Todas as credenciais utilizadas por colaboradores (usuários) da organização são criptografadas utilizando o algoritmo de codificação SHA-512, não sendo possível a reversão das cifragens. Na realidade, é possível a configuração de outros algoritmos de criptografia, se for um requisito da corporação.

O armazenamento de dados/informações (ii), que requerem a remoção da cifragem, tais como o nosso cofre de senha, utilizam o método de criptografia simétrica baseado no algoritmo AES (Curvas Elípticas) de 256 bits. É interessante frisar que o método de criptografia baseado em algoritmos AES oferece uma confidencialidade superior aos demais algoritmos, sendo comprovado que AES 256 bits é mais do que suficiente para as necessidades atuais de confidencialidade.

As chaves utilizadas para cifrar/decifrar são armazenadas em locais seguros e possuem um processo em camadas, que minimizam/evitam suas utilizações indevidas. Além das chaves, cada transação necessária possui um salto que aumenta o nível de dificuldade de possíveis atacantes que queiram obter acesso indevido a dados/informações contidas na plataforma.

Autenticação

A autenticação é o ato de provar uma afirmação, como a Identidade de um usuário (Username) de sistemas computacionais, onde um usuário precisa provar que ele é quem diz ser. Em contraste com a identificação, o ato de indicar a identidade de uma pessoa ou coisa, a autenticação é o processo de verificação dessa identidade. Um usuário pode provar que ele é quem diz ser de, basicamente, três modos: i) algo que o usuário sabe – em geral uma senha; ii) algo que o usuário tem – em geral um dispositivo, como um token; e iii) algo que o usuário é – em geral biometria.

O processo de autenticação pode exigir alguns desses fatores (i, ii ou iii), dependendo do contexto de utilização, o que é denominado autenticação por meio de Múltiplos Fatores de Autenticação (MFA – Multi Factor Authentication), que implica na necessidade de oferecer dois ou mais fatores de autenticação. A autenticação é um processo que pode envolver:

  • Múltiplos Fatores de Autenticação:

    • Username/Password;

    • Perguntas secretas;

    • Google Authenticator; e

    • Canal seguro (email/SMS/App).

  • Controle de risco:

    • Solicitação de mais Fatores de Autenticação baseada em contexto:

      • Origem do acesso;

      • Horário;

      • Dispositivo conhecido.

    • Negação de acesso baseado em contexto:

      • Origem do acesso;

      • Horário;

      • Dispositivo conhecido.

  • Controles contra ataques de força bruta:

    • Muitas tentativas de logins com falha do mesmo endereço IP;

    • Logins com vários nomes de usuários do mesmo endereço IP;

    • Logins para uma única conta provenientes de muitos endereços IP diferentes.

Gerenciamento de senhas

Senha é um dos fatores de autenticação mais largamente utilizados devido à facilidade de ser algo que pode ser memorizado e, portanto, não requer nenhum artefato adicional. Por outro lado, memorizar sequência longa de caracteres, principalmente se se inclui caracteres especiais, pode levar ao esquecimento frequente de senhas. Ausência de critério na criação de senha leva ao risco de se criar senhas fáceis e fracas. Nas organizações, além de ser requeridas senhas fortes, há políticas de segurança que impõem a troca sistemática de senhas, incluindo o requisito de não se repetir senhas. Todos esses requisitos implicam na necessidade de se constituir um processo que gerencie as senhas de usuários, sendo oferecidas as seguintes funcionalidades:

  • Política de Complexidade de senha: maiúscula, minúscula, números, caracteres especiais, tamanho mínimo;

  • Não reutilização de senhas;

  • Expiração de senhas;

  • Sincronismo de senhas;

  • Armazenamento seguro (baseado no item ‘i’ descrito em cifragem);

  • Troca de senha pelo usuário:

    • Identificação do usuário;

    • Perguntas secretas;

    • Inativação do usuário;

    • Token secreto no e-mail;

    • Nova senha baseada na Política de Complexidade.

Integrações de Sistemas

A Gestão de Identidade permeia todos os sistemas e recursos da corporação, desde sistemas pré-existentes na organização, bem como novos sistemas. Além disso, recursos físicos tais como catracas e portas podem (e deveriam) fazer parte de uma plataforma de Gestão de Identidade. Deste modo, integração de sistemas é uma das chaves para o sucesso de um projeto bem sucedido.

A arquitetura Blazon tem uma camada (Resource Adapters Layer) especialmente projetada para integrar transparentemente todos os sistemas existentes numa corporação. Visando escalabilidade e funcionamento em nuvem, esta camada foi projetada completamente desacoplada do Módulo Core Engine, permitindo que esses adaptadores (RA) operem em um mesmo ambiente ou em ambientes distintos, incluindo diferentes nuvens.

Blazon permite que esses adaptadores sejam construídos facilmente, podendo ser inclusive desenvolvidos pela equipe de TI da organização. Os seguintes aspectos de segurança são especialmente tratados:

  • Integridade e Confidencialidade

    • Comunicações entre o Módulo Core Engine e cada RA é passível de utilização de HTTPS, sendo esta recomendada;

    • Eventos de provisionamento contendo informações sensíveis são criptografados, tais como:

      • Criação de contas;

      • Mudança de Senhas;

      • Atualização de contas.

  • Disponibilidade

    • Toda e qualquer comunicação realizada entre o Módulo Core Engine e um RA, é feita no modelo de polling, sendo responsabilidade do RA buscar eventos relativos a provisionamento/reconciliação;

    • Caso um RA se torne indisponível, assim que ele se torne novamente disponível, os eventos em aguardo são processados;

    • Caso algum sistema (integrado) se torne indisponível para provisionamento, foram desenvolvidas políticas de resiliência, que tentam o provisionamento até que um limite máximo de tentativas especificado (configurado) seja alcançado.

Acesso à Plataforma

Todo e qualquer acesso ao Blazon pode ser disponibilizado a partir de HTTPS, sendo que todos estes acessos são registrados via log. Este requisito de acessos via HTTPS é fundamental para a confidencialidade dos acessos e, é importante frisar que, a Política de Log foi desenvolvida para garantir o Não-repúdio, que, como dito anteriormente, é uma garantia de comprovação da origem e autoria de um determinado acesso. A plataforma garante que o autor (usuário) não negue ter feito o acesso.

Controle de permissões internas

Blazon conta com um conjunto de permissões internas que permitem que apenas as funcionalidades necessárias sejam disponíveis para um usuário. Desta forma controles como Segregação de Responsabilidade, que reduzem em até 40% tentativas de fraudes, podem ser aplicados na própria plataforma, garantindo um alto nível de confiabilidade e diminuição de riscos.

Gerenciamento de sessões

Uma sessão é caracterizada pelo intervalo de tempo decorrido entre o instante em que um usuário é autenticado até o instante em que o acesso é encerrado, sendo que neste intervalo de tempo, o usuário pode requerer a execução de tarefas. Gerenciar uma sessão é então o processo de garantir que um usuário somente terá o acesso para o intervalo de tempo que lhe é outorgado e que esse usuário somente execute tarefas para as quais possui direito. Do mesmo modo, a gerência de sessão deve garantir que apenas o usuário autenticado poderá executar tarefas na sessão para a qual foi autenticado e registrar todas as atividades visando a rastreabilidade do acesso.

Sendo considerado um item extremamente relevante no controle de vulnerabilidades, há especial atenção ao gerenciamento adequado de sessões Web para evitar que ataques sejam realizados por meio de tais sessões. Dentre algumas preocupações, abaixo temos alguns dos controles realizados pela plataforma:

  • Controle de timeout absoluto;

  • Controle de sessão por tempo de inatividade;

  • Session ID Name Fingerprinting.

Além disso, nossa equipe se preocupa na utilização/configuração de um setup que contemple a utilização de HTTPS, evitando o sequestro das sessões por meio de técnicas como Man-in-the-middle.

Logging

O projeto da plataforma inclui um completo sistema de Logging para que Analistas de Segurança possam rastrear atividades visando a gerência da segurança da informação, de infraestrutura, auditoria de segurança e governança. Em casos necessários, a plataforma permite a consolidação de loggings em um repositório central. A seguir são listados três exemplos de registros:

  • Logging de alteração dos principais objetos/processos do sistema;

  • Logging de acessos;

  • Trilhas de auditoria e governança.

Disponibilidade

Pensando em garantir um dos pilares fundamentais na segurança da informação, o Blazon conta com uma arquitetura capaz de ser disponibilizada em alta disponibilidade. Todos os seus principais componentes podem escalar de forma horizontal, de tal forma a mitigar eventuais riscos de indisponibilidade.

Há uma versão, que pode ser contratada sob demanda, que dota a Plataforma Blazon de escalabilidade, permitindo-lhe operar a partir de diversos sites (Datacenter/Nuvem), de tal modo que se uma instância se torna indisponível, outra instância passa a responder pelas funcionalidades da plataforma.

Resumo

Modelada para operar em nuvem, as camadas da arquitetura foram projetadas a partir de componentes bem definidos e com alto grau de desacoplamento, permitindo a instalação e operação independentes, requisito essencial de plataformas em nuvem.

Visando a experiência de usuários (QoE – Quality of Experience), a arquitetura foi projetada para garantir os tempos de respostas independentemente do volume de acessos, permitindo afirmar que todos os componentes apresentados na figura anterior podem ser escalados horizontalmente, independentemente da localização e distribuição geográfica, como se espera de uma plataforma cloud enabled.

Altamente modularizada, se houver necessidade, sob demanda, quaisquer dos componentes apresentados na figura podem ser adicionados à medida que a maturidade em governança e administração de Identidade evolua ao longo do tempo. Isto permite que uma organização planeje seus investimentos de acordo com sua maturidade e somente tenha desembolsos à medida que os componentes da plataforma sejam mandatórios em seus processos de segurança, governança e auditorias.

Atualizado

Isto foi útil?