Entenda a segurança e a conformidade do Amazon S3 na AWS
10 de maio de 2019
0 minutos de leituraNota do editor
Este blog foi publicado originalmente em fugue.co. A Fugue se juntou à Snyk em 2022 e é um componente essencial do Snyk IaC.
Se sua organização usa o Amazon Web Services (AWS) para computação em nuvem, é provável que o Amazon S3, ou Amazon Simple Storage Service, seja bastante utilizado. Esse serviço de armazenamento de objetos foi um dos primeiros serviços de nuvem oferecidos pela AWS (lá em 2006!) e conquistou muita popularidade pela facilidade de uso, confiabilidade e escalabilidade.
No entanto, a configuração inadequada dos recursos do S3 pode causar incidentes graves de segurança e conformidade. Violações de dados de grande repercussão causadas por configurações incorretas do S3 continuam estampando as manchetes, e outras ainda virão. Basta configurar incorretamente a política de acesso ou a criptografia de um “bucket” do S3 para que dados confidenciais acabem nas mãos de pessoas mal-intencionadas.
Independentemente de como a notícia é escrita, em todos esses casos a culpa foi do cliente da nuvem, não da AWS. A AWS tem um histórico impecável no cumprimento de sua parte do Modelo de Responsabilidade Compartilhada para Segurança na Nuvem, mas não pode impedir que você se prejudique com a configuração do S3 e coloque sua organização nas manchetes.
A conformidade provavelmente rege o uso do Amazon S3
Se sua organização precisa cumprir normas como HIPAA, PCI, SOC 2, GDPR ou NIST 800-53, saiba que todas incluem controles que regem o uso e a configuração do S3 (e de muitos outros serviços da AWS que sua organização provavelmente usa). Se nenhuma dessas normas se aplica à sua organização ou às suas cargas de trabalho, considere seriamente adotar o AWS CIS Benchmark para orientar o uso seguro da AWS.
Mantenha o controle de acesso aos buckets do Amazon S3
Muitas violações de dados relacionadas ao S3 acontecem por causa de políticas de acesso configuradas incorretamente. Quando um novo bucket do S3 é criado, a política de acesso padrão é “privada”, mas ela pode mudar — e muitas vezes muda — ao longo da vida útil do recurso. Os ambientes de nuvem mudam com o tempo, à medida que os desenvolvedores atualizam aplicações e infraestrutura e adicionam novos serviços. Durante essas atualizações, as políticas de acesso podem ser enfraquecidas ou desativadas sem querer.
Audite seus recursos do S3 e as respectivas políticas de acesso para garantir que estejam configurados com segurança e use o CloudTrail para acompanhar as mudanças. Para buckets do S3 que contenham dados confidenciais, considere uma solução como o Fugue, que detecta (e pode corrigir) qualquer “desvio” em relação à configuração de referência segura estabelecida, sem necessidade de código ou scripts adicionais.
O AWS CIS Benchmark é um bom exemplo de estrutura de conformidade que rege a configuração e o uso do S3. O CIS 2.6 exige que o registro de acesso aos buckets esteja habilitado. O CIS 3.8 exige que um filtro de métricas de log e um alarme sejam habilitados para todas as mudanças nas políticas dos buckets. Por fim, você precisa garantir que seus buckets do S3 com dados confidenciais não estejam acessíveis publicamente. Em vez disso, crie uma política do AWS IAM que permita o acesso ao bucket somente a usuários autorizados.
Use criptografia para proteger os dados do Amazon S3
Manter políticas de acesso seguras para os recursos do Amazon S3 é obrigatório, mas você também precisa garantir que a criptografia esteja sempre habilitada para impedir que pessoas sem autorização leiam os dados. Mais uma vez, audite seus recursos do S3 para verificar se a criptografia está habilitada e use logs para acompanhar todas as mudanças feitas nesses recursos, inclusive os casos em que a criptografia é desativada.
As normas de conformidade da sua organização provavelmente também se aplicam aqui. Dois exemplos são o NIST 800-53 SC-13: Proteção Criptográfica, que exige a implementação de criptografia quando pertinente, e o SOC 2 CC 6.1, que exige o uso de criptografia como complemento a outras medidas de proteção dos dados armazenados.
Então, a segurança e a conformidade da AWS são responsabilidade sua!
Cada organização é diferente, mas a responsabilidade pela segurança de dados críticos na AWS costuma ficar com um engenheiro de segurança de nuvem, um engenheiro de DevOps, um analista de conformidade ou um arquiteto de nuvem. Às vezes, algumas ou todas essas pessoas compartilham a responsabilidade pela segurança na nuvem, o que torna essencial colaborar de forma eficaz (uma prática muitas vezes chamada de “DevSecOps”).
Qualquer que seja seu cargo ou função, se você é responsável pela segurança e pela conformidade do seu ambiente AWS, uma parte importante do trabalho é garantir que os recursos críticos do S3 estejam configurados corretamente e continuem assim durante toda a vida útil deles.
Tarefa nº 1: certifique-se de que as configurações do S3 estejam em conformidade com as políticas
Se ainda não fez isso, você precisa certificar-se de que a configuração dos recursos do S3 existentes no seu ambiente AWS segue as políticas de segurança e conformidade aplicáveis. Isso geralmente envolve uma auditoria para verificar a configuração dos recursos do S3, manualmente pelo Console da AWS ou com uma ferramenta de auditoria.
Faça auditorias regulares e frequentes em todos os seus ambientes AWS. Para recursos críticos, realize auditorias contínuas com uma ferramenta que analise os recursos, valide as configurações de acordo com as políticas e informe violações de conformidade e sua postura geral de segurança. Verifique se você consegue detectar qualquer “desvio” da configuração original do S3 para determinar se a mudança viola alguma política.
Você também precisa trabalhar em estreita colaboração com as equipes de aplicação e DevOps para confirmar que as atividades delas (por exemplo, implantar novos ambientes ou atualizar os existentes) estão em conformidade com as políticas pertinentes. Como esse processo manual costuma consumir muito tempo e estar sujeito a erros, sua equipe deve buscar maneiras de “antecipar a segurança” (shift left), incorporando verificações de políticas nas etapas iniciais do ciclo de vida do desenvolvimento de software (SDLC), quando é mais fácil, rápido e barato fazer correções.
Tarefa nº 2: identifique e corrija configurações incorretas do Amazon S3
Pronto: você confirmou que seus recursos do AWS S3 estão em conformidade com as políticas e configurados com segurança. Ótimo! Agora vem a parte difícil: garantir que continuem assim.
O desvio de configuração em recursos de infraestrutura na nuvem é um problema generalizado e muitas vezes arriscado. As configurações dos buckets do S3 podem ser alteradas pelo Console da AWS e por uma interface de programação de aplicações (API), que pode ser usada com diversas ferramentas de automação. Você provavelmente verá que as configurações do S3 (assim como as de vários outros serviços da AWS) mudam com frequência, às vezes deixando de estar em conformidade e criando vulnerabilidades de segurança.
Você precisa de uma ferramenta que analise seu ambiente AWS e alerte sobre violações nas configurações do S3. É importante poder ignorar alertas de buckets do S3 que devem ter acesso público (como os que hospedam sites estáticos) e, ao mesmo tempo, sinalizar configurações incorretas nos que devem ser privados e criptografados. Os alertas devem trazer informações suficientes sobre o problema para facilitar a correção manual.
Para buckets críticos do S3 que contenham dados confidenciais, é essencial deixar de lado os processos manuais e corrigir automaticamente as configurações incorretas assim que ocorrerem. Nenhum processo manual consegue reduzir o tempo médio de correção (MTTR) a um nível seguro para incidentes críticos, pois as ameaças que tentam explorar vulnerabilidades da infraestrutura na nuvem, como configurações incorretas de buckets do S3, também são automatizadas. Com o tempo, você verá que a correção automatizada economiza muito tempo e poderá aplicá-la a mais recursos na nuvem.
Correção automática de configurações incorretas na AWS
Uma abordagem eficiente e abrangente para corrigir automaticamente configurações incorretas na AWS é estabelecer configurações de referência para que sua infraestrutura crítica se recupere sozinha. Com essa abordagem, você define uma configuração de referência conhecida como segura e em conformidade com as políticas. Depois de estabelecê-la, detecte e analise qualquer desvio em relação a ela. Para recursos críticos, reverta automaticamente os desvios para a configuração de referência estabelecida. Essa abordagem elimina a necessidade de prever tudo o que pode dar errado e criar listas de bloqueio. Além disso, as configurações de referência permitem antecipar a segurança e a conformidade.
O Fugue ajuda a manter a infraestrutura na nuvem com autorrecuperação. Assista ao nosso webinar para saber mais.
Tarefa nº 3: gere relatórios sobre configurações incorretas do AWS S3
Além de exigir relatórios periódicos de auditoria de segurança e conformidade, a maioria das organizações exige um relatório para cada incidente de configuração incorreta envolvendo um recurso crítico, como o Amazon S3. Em geral, esses relatórios precisam incluir as seguintes informações:
Qual recurso foi afetado (e em qual ambiente)?
O que mudou na configuração?
Quando ocorreu a configuração incorreta?
Quem foi responsável pela configuração incorreta?
Qual política, se alguma, foi violada por essa configuração incorreta?
Quando a configuração incorreta foi detectada?
Quando a configuração incorreta foi corrigida (e verificada)?
Quem corrigiu a configuração incorreta (ou como ela foi corrigida)?
O que está sendo feito para evitar que esse tipo de configuração incorreta volte a acontecer?
Você precisará reunir muitos dados de log para compilar esse relatório, então a automação também pode ajudar. Quanto ao último requisito, a correção automatizada é a única maneira de evitar que essas configurações incorretas voltem a ocorrer.
Considere medir o tempo médio de correção (MTTR) das configurações incorretas em recursos críticos da nuvem para acompanhar a resiliência dos seus esforços de segurança na nuvem. Um MTTR de muitas horas ou dias deve ser considerado um risco inaceitável, diante das ameaças automatizadas que tentam explorar esse tipo de configuração incorreta.
Mais uma coisa…
Se sua operação na nuvem é grande e você se preocupa com a segurança e a conformidade dos ambientes da sua infraestrutura em nuvem, o Fugue pode ajudar. Com o Fugue, você pode:
Validar a conformidade dos seus ambientes na nuvem com várias estruturas de políticas, como HIPAA, PCI, SOC 2, NIST 800-53, ISO 27001 e GDPR.
Ter visibilidade completa dos seus ambientes e configurações na nuvem com configurações de referência da infraestrutura na nuvem e detecção de desvios.
Proteger-se contra configurações incorretas da infraestrutura na nuvem, incidentes de segurança e violações de conformidade com uma infraestrutura que se recupera sozinha.
Antecipar a segurança e a conformidade da infraestrutura na nuvem com integração a CI/CD, ajudando os desenvolvedores a trabalhar com agilidade e segurança.
Obter visibilidade e relatórios contínuos de conformidade em toda a infraestrutura de nuvem da sua empresa.
Segurança de IaC pensada para quem desenvolve
A Snyk protege sua infraestrutura como código do ciclo de vida do desenvolvimento de software até a execução na nuvem, com um mecanismo unificado de políticas como código para que todas as equipes possam desenvolver, implantar e operar com segurança.


