Descubra como criar uma infraestrutura ideal para executar a ferramenta do Sistema Eletrônico de Informações para gerenciar documentos de forma segura e flexível.

 

Criar uma infraestrutura flexível e segura para rodar o SEI é um desafio que não deve ser subestimado, pois as facilidades oferecidas pelos provedores de nuvem, se não adotadas corretamente, negligenciam decisões arquiteturais importantes, comprometendo a manutenção, evolução e, principalmente, a segurança das aplicações.

Aplicações como o SEI, que processam dados sensíveis, devem buscar o conceito de zero-trust como premissa fundamental, porém zero-trust não é uma funcionalidade, um check-box de simples ativação, mas, sim, o resultado de um ciclo contínuo de melhorias ancorado em tecnologia e processos.

A boa notícia é que você pode começar com o pé direito, reaproveitando melhores práticas testadas pela Oracle e certificadas pelo CIS (Center of Internet Security) para criar via Terraform uma infraestrutura flexível e segura para o SEI.

A Oracle oferece gratuitamente para esta tarefa uma ferramenta chamada CIS Landing Zone (CLZ), capaz de criar a infraestrutura básica para rodar uma aplicação 3 camadas como o SEI, de forma declarativa, consistente e repetitiva. Aqui vale lembrar que o CLZ pode ser usado de duas maneiras. A primeira é por meio do Quick Start, um template parametrizável composto por módulos Terraform reutilizáveis, ideal para atender os casos de uso mais comuns. O Quick Start, como o nome sugere, é o mecanismo preferencial para o primeiro contato com o CLZ e será o objeto desse artigo. Já a segunda maneira, prioriza o uso direto dos módulos Terraform para construção de arquiteturas altamente customizadas. Essa opção se destina aos usuários mais avançados. Em ambos os casos, conhecimentos sobre o ciclo de vida de um projeto de IaC (Infrastructure as Code) em Terraform são recomendados, em especial, boas práticas sobre a gestão dos arquivos de estado do Terraform. Para auxiliar nessa tarefa, a Oracle oferece gratuitamente um serviço chamado Resource Manager.

 

RMS
Figura 1: Exemplo de configuração do Resource Manager

 

Outro ponto importante é definir que não é responsabilidade do CLZ criar os recursos como máquinas virtuais e bancos de dados, já que o foco da ferramenta é a criação das redes virtuais e seus subcomponentes, bem como a configuração dos serviços compartilhados, entre eles, gestão de identidades e acessos, monitoração e notificação de eventos.

Em relação às redes virtuais, o CLZ permite a construção de arquiteturas consagradas como a hub-and-spoke, onde as várias camadas do SEI são segregadas em redes virtuais específicas, posteriormente interligadas por uma rede virtual central, responsável pelo roteamento seguro. Essa topologia de rede, favorece a evolução e manutenção do SEI e vai ao encontro do objetivo de alcançar um ambiente zero-trust no futuro, pois todo tráfego leste-oeste poderá ser inspecionado na rede virtual central sem intervenções desnecessárias nas redes específicas de cada camada. Além disso, diversas soluções de mercado como firewalls de última geração e soluções de detecção e prevenção de intrusões estão aptas a operar nesse modelo de rede. Já em relação aos subcomponentes das redes virtuais, o CLZ cria as tabelas de roteamento e as regras de segurança para os principais protocolos de comunicação, incluindo o acesso remoto via bastion, utilizando para isso, network security groups, que são mais restritivos e vinculados diretamente às interfaces de rede virtuais de cada recurso. Opcionalmente, o CLZ pré-configura o acesso ao ambiente on-premises a partir da rede virtual central, ficando sob responsabilidade do administrador de redes a configuração dos serviços de VPN e/ou Link Dedicado (Fast Connect) e seus respectivos circuitos virtuais redundantes. A opção de anexar os circuitos virtuais ao roteador dinâmico da rede virtual central favorece o compartilhamento seguro do meio de acesso ao ambiente on-premises e, no futuro, facilitará a configuração de casos de uso mais sofisticados como o roteamento in-transit.

 

Image 2
Figura 2: Arquitetura de referência para o SEI baseada no CLZ

 

Agora iremos abordar como o CLZ acelera a configuração dos serviços compartilhados, principalmente, a gestão de identidades e acessos. Não é por acaso que esse serviço detém um dos maiores números de recomendações listadas pelo CIS, pois falhas em sua configuração geram severas vulnerabilidades associadas ao acúmulo desnecessário de privilégios. Nessa área em particular, o CLZ agrega bastante valor com seu modelo pré-definido de compartimentos, grupos de usuários e políticas de acesso, todos construídos com o conceito de menor privilégio e segregação de tarefas em mente, uma vez que os reproduzir manualmente demandaria conhecimento avançado sobre a sintaxe das políticas de acesso e um profundo entendimento sobre os papéis de administrador, operador e usuário de recursos, assim como o mapeamento dos potenciais conflitos de interesses entre eles.
 

Image 3
Figura 3: Lista com os grupos de usuários criados pelo CLZ

 

Ainda sobre a segregação de tarefas, o CLZ impõe, por padrão, restrições às operações destrutivas, em especial, as relacionadas aos serviços de armazenamento de dados e backup, limitando seu uso somente aos administradores. Essa prática é vital para conter danos irreversíveis em caso de um ataque.

O exemplo abaixo detalha as políticas de acesso criadas pelo CLZ para segregar as operações destrutivas relacionadas aos volumes de armazenamento de dados.

Os usuários vinculados ao grupo elz-appdev-admin-group podem criar volumes no compartimento elz-appdev-cmp, mas não os destruir.

 

allow group elz-appdev-admin-group to manage volume-family in compartment elz-appdev-cmp where all {request.permission != 'VOLUME_BACKUP_DELETE', request.permission != 'VOLUME_DELETE', request.permission != 'BOOT_VOLUME_BACKUP_DELETE'}

 

Somente os usuários vinculados ao grupo elz-storage-admin-group podem destruir volumes localizados no compartimento elz-appdev-cmp

 

allow group elz-storage-admin-group to manage volume-family in compartment elz-appdev-cmp where any {request.permission = 'VOLUME_DELETE', request.permission = 'VOLUME_BACKUP_DELETE', request.permission = 'BOOT_VOLUME_BACKUP_DELETE'}

 

Esse exemplo mostra o nível de conhecimento exigido para implementar manualmente um caso de segregação de tarefas, evidenciando como o CLZ acelera esse processo, principalmente, quando extrapolamos o mesmo conceito para os demais recursos utilizados.

 

Outra área que o CLZ agrega valor é a observabilidade. O CLZ configura o serviço de movimentação de dados (Connector Hub) para ativar a coleta das trilhas de auditoria e dos registros de log, bem como a imediata retenção dessas evidências em buckets do serviço de armazenamento de objetos.
 

Figura 4.
Figura 4. Exemplo de configuração do Connector Hub

 

Opcionalmente, políticas de acesso do tipo WORM (Write Once Read Many) podem ser aplicadas aos buckets, os tornando imutáveis. Essa prática é fundamental para preservar a integridade das evidências e atender às normas de conformidade vigentes. Ainda no campo da observabilidade, o CLZ habilita o envio de eventos relacionados ao ciclo de vida dos recursos, ou seja, toda vez que o estado de um recurso é alterado uma notificação é enviada para os interessados subscritos. Essa funcionalidade é imprescindível para monitorar eventos sensíveis como ações destrutivas em volumes de dados.

 

Figura 5:
Figura 5: Exemplo de configuração de eventos sensíveis como destruição de volumes de dados

 

Já no espectro dos controles detectivos e corretivos, o CLZ pré-configura o serviço de varredura, que por sua vez, detecta vulnerabilidades conhecidas em máquinas virtuais e imagens de contêineres, como portas de comunicação abertas desnecessariamente, pacotes defeituosos e recursos expostos diretamente à internet. Para cada problema detectado um evento é disparado, ocasionando a execução de contramedidas automáticas. Aqui se abre uma porta para futuras integrações, pois os eventos disparados podem ser enfileirados em streams de dados e processados em tempo real por ferramentas de correlação de eventos ou, até mesmo, funções nativas do tipo serverless.

Como descrito acima, o CIS Landing Zone acelera o provisionamento da infraestrutura necessária para rodar o SEI e fortalece a postura de segurança por meio da implementação de dezenas de recomendações do CIS, pavimentando o início da jornada até o zero-trust. A lista completa, com cerca de 50 recomendações e seus controles sugeridos, pode ser encontrada em https://www.cisecurity.org/benchmark/Oracle_Cloud.

Teste agora mesmo o CLZ em seu ambiente Always Free. Acesse https://docs.oracle.com/en/solutions/cis-oci-benchmark/index.html para mais instruções.

 

 

Referências

https://www.oracle.com/a/ocom/docs/industries/government/gov-zero-trust-cloud-adoption-bb.pdf

https://github.com/oracle-quickstart/oci-cis-landingzone-quickstart