Como proteger a sua aplicação web na AWS usando WAF (Web Application Firewall)

Atualmente na era digital, a segurança online se tornou uma prioridade, especialmente quando se trata da proteção de aplicações web contra ameaças cibernéticas. No ecossistema da Amazon Web Services (AWS), a implementação de medidas robustas de segurança é fundamental para garantir a integridade e disponibilidade de seus recursos na nuvem. Neste post, exploraremos em detalhes a utilização do WAF (Web Application Firewall) na AWS, uma ferramenta essencial para fortificar a segurança de suas aplicações web. Descubra como o WAF pode ser uma barreira eficaz contra ameaças do tipo: ataques DDoS, injeção de SQL e outros exploits comuns, proporcionando uma camada adicional de proteção para o seu site hospedado na AWS. Prepare-se para aprofundar seus conhecimentos e elevar o nível de segurança de sua presença online na nuvem.

Essa publicação demonstrará como configurar o WAF como a primeira camada de proteção da aplicação, trabalhando em conjunto com o CloudFront (CDN).

O Cloud Front é uma CDN (Content Delivery Network) da AWS para entrega de conteúdo com alta velocidade e baixa latência devido a sua quantidade de (PoPs) Pontos de Presença espalhados pelo mundo.  
Mais detalhes sobre esse serviço aqui: https://aws.amazon.com/pt/cloudfront/

Acessando a console do WAF pela primeira vez, será exibida uma janela similar a essa abaixo, clique no botão laranja Create web ACL:

Será carregada uma janela de configuração da Web ACL, nessa primeira etapa será necessário informar o tipo de recurso que você irá associar a essa ACL, existem duas opções CloudFront distributions (opção padrão) ou recursos regionais, por exemplo: Application Load Balancers, API Gateway entre outros serviços.

Nessa demonstração iremos criar a ACL para o CloudFront, inserindo o nome da Web ACL, o campo CloudWatch metric name será automaticamente preenchido, esse nome será para indentificar as métricas da Web ACL no Cloud Watch:

No próximo bloco de configurações podemos definir o Body size limit que o WAF irá inspecionar, esse limite se aplica ao request body, headers e cookies. Para essa demonstração, iremos deixar a opção Default (Padrão) que é 16 KB, pagando um valor adicional, esse valor pode ser alterado até 64 KB conforme imagem abaixo:

Definido o Body size limit, iremos selecionar o CloudFront Distribution que iremos associar a Web ACL que estamos criando.

Clicando no botão Add AWS resource conforme imagem acima, irá carregar uma janela com as Distributions existentes, selecione o Distribution e clique no botão Add conforme imagem abaixo:

Irá voltar para a tela anterior (imagem abaixo), clique no botão Next:

Nessa etapa, iremos definir as regras conforme os comportamentos das requisições web e de acordo com o que for identificado na requisição, a ação que será tomada. Por exemplo, se será liberado (Allow) ou bloqueado (Block).

Clicando em Add rules e depois em Add managed rule groups, será carregado uma tela com as regras gerenciadas, existem regras da própria AWS (que iremos usar aqui) e também de outros diversos fabricantes. Clicando em AWS managed rule groups vai expandir as regras gerenciadas pela AWS…

Iremos selecionar as regras gratuitas da AWS chamada Core rule set, que inclui proteções para aplicações Web incluindo OWASP publications (publicações OWASP) e Amazon IP reputation list que é baseada na Amazon threat intelligence (Inteligência de Ameaças Amazon) e irá bloquear IPs associados a bots entre outras ameaças já conhecidas pela AWS.

Após selecionar as regras desejadas, basta clicar no botão Add rules no final da página.

Um ponto importante que deve ser considerado é que cada regra (Rules) tem um limite de capacidade que é de 5000 WCUs, mas usando acima de 1500 WCUs existirá um custo adicional.
O WCU é basicamente uma unidade de medida de capacidade da Web ACL, que a AWS utiliza para calcular e controlar os recursos necessários para executar as regras.
Para saber dos custos envolvidos nas regras, acesse: https://aws.amazon.com/waf/pricing/

Entendendo a regra abaixo, no nosso cenário usamos somente duas regras que utilizam uma capacidade de 725 WCUs e estaremos liberando o tráfego das requisições que o comportamento não for o esperado nas regras adicionadas na sessão Rules:

Clique no botão Next.

Após configurar as regras e seu comportamento, iremos definir a prioridade de processamento delas no WAF, quando uma requisição chegar eles serão avaliadas de cima para baixo.

No cenário da nossa Web ACL, é necessário que o WAF faça o bloqueio de qualquer IP que esteja na lista AWS-AWSManagedRulesAmazonIpReputationList, antes que ele faça a análise da regra AWS-AWSManagedRulesCommonRuleSet, com isso será alterada a ordem de processamento. Observe no vídeo abaixo:

Nessa etapa, iremos configurar o nome que as métricas serão enviadas para o CloudWatch para monitoramento, deixaremos com as opções padrão:

Ao clicar no botão Next será exibida a tela de Review (análise), onde você poderá visualizar o que foi configurado em todas as etapas da configuração da Web ACL, caso esteja de acordo, é só clicar no botão Create web ACL para criar a Web ACL.

Finalizada a criação da Web ACL, navegaremos pelo Dashboards e analisaremos o tráfego. Para popular os Dashboards, foi realizado um teste online através de sites gratuitos para gerar tráfego e conseguirmos ver o WAF em funcionamento.
Acessando a Web ACL criada, iremos selecionar a aba Traffic overview. Conforme janela abaixo:

Na primeira parte temos o resumo com a quantidade total do tráfego, o que foi liberado (allow), bloqueado (blocked) e em qual regra foi bloqueado:

Na segunda parte (Traffic characteristics), conseguimos ver a característica do tráfego que são informações importantes, tais como: o tipo do cliente, os tipos de ataques, se é tráfego de Bot ou não e o país de origem do tráfego.

Já nessa última parte, é possível ver em qual regra / grupo de regra a requisição foi categorizada.

A partir de agora, teremos mais uma camada de proteção na aplicação web.

É fundamental destacar que nessa demonstração, foram empregadas apenas duas regras. Isso se deu com o propósito de elucidar o funcionamento da solução de WAF da AWS. No entanto, ao lidar com um ambiente que envolva uma aplicação real e crítica, é imperativo realizar uma análise detalhada da aplicação. Essa análise permitirá identificar quais regras (proteções) devem ser configuradas na WebACL, garantindo uma abordagem personalizada e eficaz para a segurança do ambiente.

Abaixo, observe algumas regras que poderiam ser adicionadas a WebACL:

Espero que essa publicação possa ser uma contribuição valiosa para a comunidade da AWS, como um auxílio para quem está buscando conhecimento na área de Cloud.

Até breve!!

Automatizando os backups de Instâncias EC2 com o AWS Backup

Mesmo utilizando os recursos computacionais da nuvem AWS que são altamente disponíveis, a responsabilidade dos Backups será de responsabilidade do proprietário da conta. Para maiores informações sobre o Modelo de Responsabilidade Compartilhada basta conferir no link a seguir:

https://aws.amazon.com/pt/compliance/shared-responsibility-model/

Nesse post buscarei demonstrar como automatizar os backups de instâncias EC2 utilizando o AWS Backup. Com esse serviço é possível realizar o backup também dos serviços Amazon RDS, DynamoDB, EFS, FSx entre outros. Um ponto importante é que o AWS Backup está em conformidade com a PCI e a ISO e está qualificado pela HIPAA.

Então vamos lá!

Ao acessar a console do AWS Backup, uma janela similar a imagem abaixo irá aparecer:

Para que o backup funcione será necessário criar o Backup Vault, nesse cofre (Vault) serão armazenados os backups.

Uma boa prática é criar o Backup Vault referenciando ao tipo do backup, nesse caso o nome do Vault foi Backup_Semanal, pois ele será criado para armazenar os backups semanais, maiores detalhes na imagem a seguir.

Após a criação do Backup Vault, criamos o Plano de Backup (Backup Plan), também como boa prática, colocamos o nome do Backup Plan igual ao nome do Backup Vault para facilitar a identificação.

Clicando no botão Create Backup plan, a janela abaixo será carregada (Detalhes nas imagens):

Após a criação do Backup Plan, precisaremos definir o Resource assignments, no momento da criação iremos definir uma Tag e quando ela for especificada na Instância EC2, o Backup será realizado de acordo com o plano criado anteriormente (Backup Plan).

Na janela Assign resources, podemos escolher os recursos de acordo com o tipo/ID ou especificando a TAG.

Outra opção é definir uma TAG selecionando no campo Assign by a opção Tags e definindo os valores Key e Value conforme imagem abaixo. Iremos seguir utilizando as Tags conforme especificado na próxima imagem.

Com a Key = Backup e a Value = Semanal, temos o serviço configurado e pronto para realizar os backups de Instâncias EC2.

Foi anunciado recentemente o AWS Backup Audit Manager que permite auditar e relatar a conformidade das políticas de proteção de dados, possibilitando um melhor controle das atividades de backup e geração de relatórios.

Então é isso, espero ter ilustrado bem esse passo a passo de realização do Backup.

Até Breve!

Usando AWS System Manager para In-place Upgrade de Instâncias EC2 Windows

Nesse post irei demonstrar o procedimento de in-place upgrade na Nuvem AWS, onde através do AWS System Manager, usando automation document iremos atualizar a versão do Windows sem remover as aplicações instaladas, ou seja, não teremos a necessidade de fazer uma nova instalação do Windows e migrar as aplicações manualmente. Além disso, esse upgrade ajudará a mitigar os riscos de segurança e compliance do seu ambiente possibilitando uso de versões mais atuais do Sistema Operacional e poderá reduzir o tempo necessário para a migração para uma nova versão do Windows Server.

Os caminhos suportados para atualização (DE-PARA), são os seguintes:
Windows Server 2008 R2 para Windows Server 2012 R2.
Windows Server 2012 R2 para Windows Server 2016.
Windows Server 2012 R2 para Windows Server 2019.
Windows Server 2016 para Windows Server 2019.

Inicialmente, iremos aos pré-requisitos necessários para a atualização:
– É recomendado ter 20 GB de espaço no disco de boot;
– Agent SSM instalado na EC2 que será atualizada: https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-install-ssm-win.html
– Esse Automation funciona somente em instâncias com o EBS Volume Root não encriptado. Instâncias com EBS encriptado, o Automation irá falhar;
– Esse Automation funciona somente nas instâncias com as versões Windows Server 2008 R2, 2012 R2 e 2016 edições Standard e Datacenter.

Limitações:
Esse Automation não dará suporte ao upgrade de Domain Controllers, Clusters ou Sistemas Operacionais Windows de desktop. Também não são suportados instâncias com as seguintes Windows Server Roles:

– Remote Desktop Session Host (RDSH)
– Remote Desktop Connection Broker (RDCB)
– Remote Desktop Virtualization Host (RDVH)
– Remote Desktop Web Access (RDWA)

Referências:
https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-awsec2-CloneInstanceAndUpgradeWindows.html

Cenário:
Na demonstração abaixo, estou realizando o upgrade de uma Instância EC2 com Windows Server 2012 R2 com IIS para o Windows Server 2019 mantendo todas as aplicações instaladas. Foi criada uma página simples em HTML no IIS para validação do funcionamento da aplicação após o upgrade.

Para que o upgrade funcione, precisaremos dar permissão para que o AWS System Manager consiga executar o upgrade na Instância EC2. Com isso, a nossa primeira etapa será criar uma Role no IAM com as devidas permissões. Então vamos lá!

Acessando a console do IAM, clique na opção Role do menu lateral e depois no botão Create role, conforme imagem abaixo:

Na tela abaixo, selecione EC2 e clique no botão Next: Permissions.

A seguir, iremos dar um “Attach” na policy AmazonEC2RoleforSSM para que o AWS System Manager tenha as permissões necessárias para executar o procedimento de upgrade.

Na etapa abaixo, você poderá especificar as Tags. Mas para essa demonstração não utilizei Tags.

Para a etapa final, colocaremos um nome para a Role.

Ao clicar no botão Create role irá aparecer a mensagem seguinte, informando que a Role foi criada com sucesso. Anote o nome da Role, pois iremos utilizá-la na etapa de execução do Automation Document.

Com a Role criada e suas devidas permissões, vamos para o que interessa. Iremos acessar o AWS System Manager e utilizar o recurso de Automation. Na tela do System Manager iremos clicar na opção Automation, no Menu lateral e depois no botão Execute automation conforme a descrição da imagem abaixo:

Será carregado uma tela onde você poderá pesquisar e selecionar o Document desejado. Para esse post iremos utilizar o AWSEC2-CloneInstanceAndUpgradeWindows, basta você digitar uma pequena parte do nome conforme a imagem abaixo:

Após pesquisar o nome do Document, você deverá selecionar o Document AWSEC2-CloneInstanceAndUpgradeWindows e clicar no botão Next conforme as imagens abaixo:

Na próxima etapa, iremos configurar o parâmetros para execução do Automation Document:

Nas imagens abaixo, definimos os parâmetros para a execução do Automation, inserindo o ID da Instância que será atualizada, a Role do IAM que criamos, versão do Windows que queremos que a Instância seja atualizada e a subnet onde o processo de atualização será executado. É recomendando utilizar uma subnet para o Automation, diferente da subnet onde está a Instância que será atualizada. A subnet utilizada deverá ter ainda, conexão de saída para os serviços AWS, S3 e Microsoft para download de patches (Windows Update).
Após inserir os parâmetros e clicar no botão Execute o processo de in-place upgrade será iniciado:

Com o Automation em execução, podemos acompanhar com detalhes todas as etapas do procedimento de upgrade conforme as imagens:

Esse procedimento poderá levar algumas horas para finalizar e durante a execução do procedimento, podemos verificar algumas modificações no ambiente. Na execução foi criada uma instância para a realização do procedimento de upgrade e executado o terminate da mesma, após o término do procedimento conforme as imagens:

Como pode ser visto na próxima imagem, o Automation criou uma AMI da Instância original e uma AMI de “pre-upgrade” para instalação dos drives e updates necessários.

Após o término do procedimento de upgrade, será criada uma AMI da sua instância atualizada com o Windows Server 2019 com o nome similar ao da imagem:

Após dar um Launch na AMI atualizada com Windows Server 2019, foi possível acessar a página web publicada no IIS, que havia sido criada ainda na Instância com o Windows Server 2012 .

Com isso podemos concluir que esse documento do AWS System Manager Automation pode ser útil para que você possa atualizar o seu ambiente de Instâncias EC2 Windows, minimizando os riscos de segurança e compliance.

Espero que esse post possa contribuir/auxiliar a comunidade de Cloud AWS.

Até breve!!!

Migração para AWS com Cloud Endure

Olá!!
Se essa é a sua primeira vez por aqui, eu sugiro que você leia o post anterior, sobre Migração para a Nuvem, no seguinte link: https://brenocarvalho.cloud/2020/07/04/migracao-para-nuvem/ ou através da barra lateral do site.


Irei demonstrar nesse post, como é possível migrar os seus servidores para o ambiente da AWS através do Cloud Endure.

Então, vamos lá! Mas, primeiramente faremos o nosso registro para obter a licença para a utilização gratuita.

Ao clicar no botão, Obtenha licenças gratuitas do Cloud Endure Migration, irá carregar a página de registro conforme abaixo:

Após o preenchimento dos seus dados, você irá receber um e-mail similar ao e-mail abaixo, para confirmação do seu cadastro.

Após clicar no link, confirm your account request, irá carregar a página abaixo, informando que sua conta está ativada.

Após efetuar o logon, você deverá criar o seu projeto para que possa sincronizar às máquinas que deseja migrar para a AWS.

Com o projeto criado, agora iremos configurar o Cloud Endure para que ele possa acessar a sua conta da AWS, para onde serão migrados os servidores, nessa etapa serão necessárias algumas permissões para que o Cloud Endure funcione, veja abaixo:

Após a configuração das chaves, iremos realizar a configuração de replicação, nesse lab, configurei o Replication Settings conforme abaixo e o restante das configurações eu deixei padrão (Default):

Ao clicar em SHOW ME HOW, serão carregadas as informações para a instalação dos agentes nas máquinas Windows e Linux:

Instalação Servidores Windows:
Vamos iniciar demostrando a instalação em servidores Windows, após fazer o download do Agent através do link https://console.cloudendure.com/installer_win.exe copiei o arquivo para a pasta C:\Temp\, executei a linha de comando, conforme a imagem anterior para a instalação em Servidores Windows:

Instalação Servidores Linux:
Na imagem abaixo, o primeiro comando é para fazer o download do instalador do Agent, e o segundo é o comando de instalação.

Após a instalação do Agent, será possível visualizar na console do Cloud Endure que a replicação do máquina foi iniciada:

Enquanto a replicação é realizada, devemos configurar o Blue Print onde iremos informar as configurações da máquina, tais como, tipo de instância, subnet, security group e etc. Nesse post, configurei da seguinte forma, veja abaixo:

Após a replicação, as máquinas que estiverem prontas para serem migradas estarão com o status conforme a imagem:

Iremos realizar o teste clicando em LAUNCH TARGET MACHINES, depois em Test Mode e no botão Continue.
Obs.: Para esse demonstração usei somente o Test Mode.

O progresso do deploy de teste, pode ser acompanhado clicando na Guia Job Progress, conforme exemplo abaixo:

Na imagem a seguir, podemos visualizar o servidor que foi migrado funcionando como uma Instância EC2:

O procedimento para servidores Linux e Windows são os mesmos.

Podemos utilizar o Cloud Endure Migration para migrar os seguintes sistemas, Windows Server versões 2003/2008/2012/2016/2019 e distribuições Linux, como CentOS, RHEL, OEL, SUSE, Ubuntu e Debian. O CloudEndure Migration oferece suporte a bancos de dados comuns, tais como, Oracle e SQL Server, além de aplicativos de missão crítica, como o SAP.

Até breve!!

Migração para a Nuvem

No atual contexto em que vivemos, das constantes e aceleradas mudanças, para continuar crescendo nessa era digital e nos prepararmos para as próximas revoluções pós-digitais e as transformações necessárias para a continuidade dos negócios, uma tecnologia importante e necessária para ajudar nesse crescimento é a utilização da nuvem (Cloud Computing). Migrando seus workloads para Nuvem possibilitará que as empresas façam um maior investimento em dados e também em infraestrutura social ao invés do investimento em infraestrutura de TI dentro da empresa (on-premises).

Conforme estudo da IDC #US43535718, Fostering Business and Organizational Transformation to Generate Business Value com Amazon Web Services foram levantados os seguintes dados:

Podemos ter até 31% de economia média de custos com infraestrutura em comparação ao ambiente on premises*.

Ocorreram 7x menos horas de inatividade em 2018 em comparação ao próximo maior provedor de serviços de nuvem*

62% mais eficiente em termos de gerenciamento da infraestrutura de TI em comparações a soluções no local*

A adoção da nuvem nas empresas passa por uma ampla mudança, que impacta a cultura, processos e tecnologias da TI. Mas a boa notícia é que existem boas práticas e frameworks para ajudar nessa transição. Uma ferramenta que pode ajudar no processo de preparação para adoção da Nuvem AWS e a elaboração do plano de migração seria o CART:
https://cloudreadiness.amazonaws.com/
O CART é uma ferramenta que irá guiar a sua empresa na sua jornada para a nuvem de acordo com as diretrizes do CAF – Cloud Adoption Framework.

Mas então vamos lá, falando da parte técnica:
A migração para a nuvem AWS deixou de ser complexa com a sua solução de Cloud Migration, o Cloud Endure Migration reduz os custos da migração, pois simplifica e acelera os procedimentos necessários para a migração de uma infraestrutura física, virtual ou baseada em nuvem, transformando um processo complexo em um processo simples e rápido.
Em poucos minutos você pode configurar a solução e estará pronto para migrar seu primeiro workload.

No próximo post, irei mostrar como configurar e migrar seus servidores do ambiente On-Premises para Nuvem AWS utilizando as soluções Cloud Endure Migration.
Veja no link abaixo:

Outra opção é utilizar AWS Server Migration Service. Post em breve!

Até breve!