Um grande vazamento de dados na Microsoft ilustra a importância da implementação de processos de segurança robustos, já que a empresa revelou que um funcionário divulgou acidentalmente um token de assinatura de acesso compartilhado (SAS) “excessivamente permissivo” enquanto treina um modelo de inteligência artificial (IA). Quando até as maiores empresas multinacionais de tecnologia podem expor-se a violações de segurança SAS, o que os indivíduos devem fazer para manter os seus dados seguros?
O que aconteceu na Microsoft?
Em 2020, enquanto contribuía para modelos de aprendizagem de IA de código aberto para um repositório público do GitHub, um funcionário da Microsoft compartilhou uma URL usando o recurso de token SAS da plataforma de computação em nuvem da Microsoft Azure, que permite aos usuários compartilhar dados de contas de armazenamento do Azure. A URL incluía um token SAS para uma conta de armazenamento interno, que tinha privilégios excessivos que permitiam o acesso às informações.
A conta continha 38 TB de dados privados, incluindo um backup em disco de perfis de estações de trabalho de dois ex-funcionários. O backup incluiu chaves privadas, senhas de serviços Microsoft e mais de 30.000 mensagens internas do Microsoft Teams de 359 funcionários.
A ameaça à segurança não foi identificada até junho de 2023, quando analistas da empresa de segurança em nuvem Wiz.io encontrado a exposição acidental de dados durante uma varredura na Internet em busca de contêineres de armazenamento mal configurados. Wiz.io trabalhou com a Microsoft para revogar o token SAS, impedir o acesso externo à conta e investigar qualquer impacto nos clientes ou na continuidade dos negócios. “Nenhum dado de cliente foi exposto e nenhum outro serviço interno foi colocado em risco por causa deste problema”, afirmou a Microsoft.
Além de fornecer acesso, o token foi configurado incorretamente para permitir “controle total” em vez de permissões somente leitura. Isso significava que um invasor poderia não apenas visualizar os arquivos privados, mas também excluí-los ou substituí-los. Como o token compartilhava os dados com o repositório GitHub, um invasor poderia ter injetado código malicioso em todos os modelos de IA na conta de armazenamento, infectando todos os usuários.
O serviço de verificação do GitHub monitora todas as alterações de código-fonte público aberto para exposição de credenciais e dados privados. Isto inclui a deteção SAS que sinaliza URLs SAS do Armazenamento do Azure que apontam para conteúdo sensível. Ainda assim, a Microsoft expandiu essa detecção para incluir qualquer token SAS que possa ter privilégios ou prazos de expiração excessivamente permissivos.
O que é um token SAS?
Um token SAS é um token de segurança ou URL que se destina a fornecer acesso limitado e com prazo determinado a recursos específicos em um serviço baseado em nuvem. Funciona como o URL compartilhado que você pode enviar a um amigo para acessar um arquivo em seu Microsoft OneDrive ou Google Drive. Existem três tipos de tokens SAS: conta, serviço e delegação de usuário. Um token SAS da conta foi usado no repositório da Microsoft.
O Microsoft Azure normalmente usa tokens SAS, mas também em outras plataformas de nuvem, como Amazon Web Services (AWS) e Google Cloud Platform (GCP). Os tokens SAS são frequentemente usados para conceder acesso temporário e controlado a dados ou serviços sem expor credenciais confidenciais ou permitir acesso irrestrito.
Os tokens SAS podem dar aos usuários acesso a um único arquivo, um contêiner ou uma conta de armazenamento inteira. As permissões de token para acessar os dados podem ser personalizadas, como leitura, gravação, exclusão ou lista, variando de somente leitura até controle total, e podem restringir o acesso a recursos específicos. Eles têm um prazo de validade totalmente personalizável, o que limita quando podem ser usados para reduzir o risco de exposição a longo prazo. Eles também podem ser revogados antes do vencimento, encerrando o acesso aos dados.
Os tokens SAS são frequentemente anexados à URL do arquivo, pasta ou outro recurso ao qual fornecem acesso, eliminando a necessidade de o usuário ter as credenciais da conta.
Para gerar um token SAS, você precisa das permissões apropriadas para o recurso ao qual deseja conceder acesso e de um método ou ferramenta específica do serviço – como Azure SDK, Azure Portal ou ferramentas de linha de comando – para criar o token com o direito permissões e duração.
Benefícios e deficiências dos tokens SAS
Os tokens SAS fornecem um mecanismo seguro para dar aos utilizadores acesso a dados específicos dentro de uma conta de armazenamento, ao contrário de uma chave partilhada, que tem acesso total a uma conta inteira. Os tokens SAS podem restringir os recursos que um usuário pode acessar, quais operações um usuário pode realizar, de qual rede um cliente pode acessar e por quanto tempo ele tem acesso. Isso proporciona controle para o emissor do token e agilidade para o usuário, mas também cria o risco de conceder acesso demais – como no caso da Microsoft.
Os tokens SAS podem ser configurados para durar “efetivamente para sempre”, observou Wiz.io. O primeiro token que a Microsoft compartilhou com o repositório AI GitHub foi adicionado em julho de 2020 e permaneceu válido até 5 de outubro de 2021, mas em 6 de outubro de 2021, a validade foi atualizada para 6 de outubro de 2051.
O problema é que existe não há como um administrador de conta do Azure saber quando um usuário cria um token altamente permissivo e que não expira ou onde ele está circulando. E revogar um token também torna ineficazes todos os outros tokens assinados pela mesma chave. Isso torna os tokens SAS atraentes para invasores que buscam explorar a exposição não intencional de dados.
“Um relatório recente da Microsoft indica que os invasores estão aproveitando a falta de recursos de monitoramento do serviço para emitir tokens SAS privilegiados como backdoor”, disseram os analistas do Wiz.io.
Melhores práticas para usar tokens SAS
Grandes violações de dados podem custar aos indivíduos os seus recursos pessoais e a segurança e custar às empresas milhões de dólares em multas regulamentares, medidas corretivas e a confiança dos clientes. Como o acesso não autorizado aos tokens SAS pode resultar em acesso não autorizado aos seus dados ou serviços na nuvem, é essencial gerenciá-los com cuidado. Aqui estão algumas práticas recomendadas a serem seguidas:
- Proteja sua rede. Antes de adotar o Microsoft Azure, considere como proteger o acesso à rede na nuvem, como com grupos de segurança de rede e o Firewall do Azure.
- Limitar permissões. Ao gerar URLs SAS, aplique o princípio do menor privilégio e restrinja-os apenas aos recursos necessários, como um único arquivo ou pasta, com apenas as permissões que o usuário precisa para realizar seu trabalho, como acesso somente leitura ou somente gravação .
- Defina tempos de expiração curtos. Sempre defina um prazo de validade relativamente curto e faça com que os usuários solicitem novos tokens SAS conforme necessário.
- Crie contas de armazenamento dedicadas para compartilhamento externo. Ter contas separadas para recursos que serão compartilhados com usuários externos limita o impacto potencial de um token de permissão excessiva ou de uma violação de segurança.
- Precaução no exercício. Trate os tokens como dados confidenciais e compartilhe-os apenas com usuários que necessitam de acesso a uma conta de armazenamento específica.
- Evite usar a conta SAS para compartilhamento externo. A falta de segurança e governança sobre os tokens SAS da conta significa que eles devem ser considerados tão sensíveis quanto uma chave de conta e não devem ser compartilhados externamente.
- Estabeleça uma estratégia para revogar tokens. Defina uma política de acesso armazenada e esteja preparado para revogar o acesso ao token caso ele seja comprometido.
- Monitore e audite aplicativos. Acompanhe a atividade e verifique como as solicitações para sua conta de armazenamento são autenticadas. Defina uma política de expiração para identificar usuários com URLs SAS de longa duração.
- Treine usuários ou funcionários. Eduque os usuários sobre a importância de manter as URLs SAS seguras para limitar quem tem acesso a elas.
Seguir as práticas recomendadas para criar e lidar adequadamente com tokens SAS pode ajudar a minimizar o risco de acesso ou abuso não intencional.
Após a violação, a Microsoft disse que melhorará suas ferramentas de detecção e verificação para identificar proativamente URLs SAS superprovisionados e melhorar sua postura de segurança padrão.
O resultado final
A violação de segurança da Microsoft destaca os riscos de compartilhamento excessivo de dados e ataques à cadeia de suprimentos. O token SAS com permissão excessiva concedeu acesso total de gravação à conta de armazenamento, de modo que um invasor mal-intencionado teria sido capaz de infectá-lo com código malicioso que poderia atacar outros pesquisadores que acessassem o repositório GitHub e poderia ter causado mais danos se o código se tornasse acessível para o público.
Estas ameaças só aumentarão à medida que mais investigadores e empresas trabalharem na partilha de grandes conjuntos de dados com modelos de IA. É fundamental que as equipes de segurança definam diretrizes claras para o compartilhamento externo de dados, seguindo as práticas recomendadas para o uso de tokens SAS e outras formas de acesso à nuvem, como limitar permissões e isolar dados de IA compartilhados.
“Este caso é um exemplo dos novos riscos que as organizações enfrentam quando começam a aproveitar o poder da IA de forma mais ampla”, afirmaram os analistas do Wiz.io. “À medida que os cientistas e engenheiros de dados correm para trazer novas soluções de IA para a produção, as enormes quantidades de dados que eles manipulam exigem verificações e proteções de segurança adicionais.”