carlosscheffer Postado Dezembro 8, 2021 Compartilhar Postado Dezembro 8, 2021 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: 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 🤩 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". 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 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 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 😅 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 😆 2 Link to comment Compartilhe em outros sites Outras opções de compartilhamento...
Postagens Recomendadas
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.
Criar minha conta agoraÉ bem rápido!
Entrar
Você já tem uma conta?
Entrar agoraFaça o login agora.