Jump to content

Como remover "fingerprint" no header de aplicação hospedada no AmazonS3 + CloudFront


Postagens Recomendadas

Fala pessoal, tudo bem? Espero que sim!

Meu primeiro post aqui na Casa do Desenvolvedor, e vim trazer uma experiência que estava me incomodando um tempo, pois não encontrávamos uma solução satisfatória para uma brecha de segurança em uma aplicação que minha equipe é responsável.

A aplicação é portal web onde é feito um gerenciamento por software-houses, este portal é construído em VueJs, e hospedado na Amazon através do S3, com o Cloudfront.

 

O que é fingerprint? 

"Fingerprint" vem do inglês, e sua tradução significa impressão digital. É uma analogia ao rastreamento de uma impressão digital humana, onde é possível rastreá-la até uma pessoa. Em software este conceito é empregado quando algo é possível rastrear até uma tecnologia, serviço, etc. 

O caso que estava incomodando a nossa equipe, foi a sinalização de uma brecha de segurança, onde havia essa tal "fingerprint" que nada mais era de um header de resposta dizendo qual era o serviço que está sendo hospedada nossa aplicação. O header era assim:

image.png

Sim! Este header de resposta parece inofensivo, mas isto é considerado, por analistas de segurança, uma brecha de segurança, pois uma pessoa mal-intencionada pode explorar brechas existentes sobre a tecnologia e/ou serviço utilizado.  Então supomos neste caso que o AmazonS3 tenha alguma brecha de segurança, a pessoa mal-intencionada conseguirá facilmente saber onde focar seus esforços de intrusão, pois afinal de contas ela já sabe que tal serviço dispõe dessa falha.

 

A solução

Pois, bem! Não encontrávamos de uma maneira muito clara a solução para este problema de maneira simples no CloudFront ou S3, então estávamos cogitando a possibilidade da utilização de um proxy reverso, ou então a utilização de lamba@edge, porém a utilização de ambas soluções além de demandar um esforço de configuração, uma camada a mais para aplicação, iria acarretar algum aumento de custos. 

Insistência de minha parte em tentar achar uma solução mais simples para este caso, e fuçando no Console da AWS encontrei um novo item no menu, de Cloudfront e fui buscar do que se tratava, e adivinhem só, era o que estávamos sentindo falta 🤩

image.png

 

Este novo recurso do Cloudfront permite criar políticas de cache, requests a origem (S3) e políticas de headers de resposta, podendo inclusive sobrescrever headers da origem.

Então para fazer a remoção, realizei a criação de uma nova política de header de resposta, que a chamei de "Remove-Fingerprints" a qual adicionei um header personalizado, "Server" com o valor "TecnoSpeed SA" e sinalizando para sobrescrever o header da Origem, que vinha com o valor "AmazonS3". 

image.png

 

Em seguida salvei, e fui em minha distribuição em "Cloudfront > Distribuitions > XX0XX0X0X0XXXX  > Edit behavior" e procurei por "Response headers policy" onde bastou eu selecionar a política que acabei de criar

image.png

Em seguida, salvei a minha alteração e criei uma invalidação de cache (CloudFront > Distributions > XX0XX0X0X0XXXX > Create invalidation), para forçar a aplicação a carregar minhas alterações imediatamente

image.png

 

Agora só esperar a invalidação ser completada , e prontinho! A aplicação de meu squad está um pouquinho mais segura e o pessoal da equipe segurança mais feliz 😅

image.png

 

Espero ter de alguma forma ter colaborado! Para ler mais sobre esse novo recurso do CloudFront clique aqui.

Até a próxima, se ajudou, dê um curtir logo abaixo 😆 

  • Curtir 2
Link to comment
Compartilhe em outros sites

  • carlosscheffer mudou o título para Como remover "fingerprint" no header de aplicação hospedada no AmazonS3 + CloudFront

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...